tempest-react-sdk 0.48.0 → 0.49.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 (194) hide show
  1. package/dist/audio/sfx-pool.cjs +1 -1
  2. package/dist/audio/sfx-pool.cjs.map +1 -1
  3. package/dist/audio/sfx-pool.js +16 -7
  4. package/dist/audio/sfx-pool.js.map +1 -1
  5. package/dist/audio/use-sfx-pool.cjs +1 -1
  6. package/dist/audio/use-sfx-pool.cjs.map +1 -1
  7. package/dist/audio/use-sfx-pool.js +3 -8
  8. package/dist/audio/use-sfx-pool.js.map +1 -1
  9. package/dist/auth/passkey.cjs +1 -1
  10. package/dist/auth/passkey.cjs.map +1 -1
  11. package/dist/auth/passkey.js +79 -81
  12. package/dist/auth/passkey.js.map +1 -1
  13. package/dist/charts.cjs +1 -1
  14. package/dist/charts.js +4 -4
  15. package/dist/components/BarList/BarList.cjs +1 -1
  16. package/dist/components/BarList/BarList.cjs.map +1 -1
  17. package/dist/components/BarList/BarList.js +31 -24
  18. package/dist/components/BarList/BarList.js.map +1 -1
  19. package/dist/components/BarList/bar-list-model.cjs +1 -1
  20. package/dist/components/BarList/bar-list-model.cjs.map +1 -1
  21. package/dist/components/BarList/bar-list-model.js +5 -5
  22. package/dist/components/BarList/bar-list-model.js.map +1 -1
  23. package/dist/components/ClickOutside/ClickOutside.cjs +1 -1
  24. package/dist/components/ClickOutside/ClickOutside.cjs.map +1 -1
  25. package/dist/components/ClickOutside/ClickOutside.js +13 -14
  26. package/dist/components/ClickOutside/ClickOutside.js.map +1 -1
  27. package/dist/components/DataTable/DataTable.cjs +1 -1
  28. package/dist/components/DataTable/DataTable.cjs.map +1 -1
  29. package/dist/components/DataTable/DataTable.js +124 -122
  30. package/dist/components/DataTable/DataTable.js.map +1 -1
  31. package/dist/components/FilterBar/filter-apply.cjs +1 -1
  32. package/dist/components/FilterBar/filter-apply.cjs.map +1 -1
  33. package/dist/components/FilterBar/filter-apply.js +35 -38
  34. package/dist/components/FilterBar/filter-apply.js.map +1 -1
  35. package/dist/components/FilterBar/filter-query.cjs +1 -1
  36. package/dist/components/FilterBar/filter-query.cjs.map +1 -1
  37. package/dist/components/FilterBar/filter-query.js +16 -13
  38. package/dist/components/FilterBar/filter-query.js.map +1 -1
  39. package/dist/geo/use-position-tracker.cjs +1 -1
  40. package/dist/geo/use-position-tracker.cjs.map +1 -1
  41. package/dist/geo/use-position-tracker.js +25 -26
  42. package/dist/geo/use-position-tracker.js.map +1 -1
  43. package/dist/hooks/use-async.cjs +1 -1
  44. package/dist/hooks/use-async.cjs.map +1 -1
  45. package/dist/hooks/use-async.js +27 -30
  46. package/dist/hooks/use-async.js.map +1 -1
  47. package/dist/hooks/use-click-outside.cjs +1 -1
  48. package/dist/hooks/use-click-outside.cjs.map +1 -1
  49. package/dist/hooks/use-click-outside.js +8 -9
  50. package/dist/hooks/use-click-outside.js.map +1 -1
  51. package/dist/hooks/use-countdown.cjs +1 -1
  52. package/dist/hooks/use-countdown.cjs.map +1 -1
  53. package/dist/hooks/use-countdown.js +8 -13
  54. package/dist/hooks/use-countdown.js.map +1 -1
  55. package/dist/hooks/use-event-listener.cjs +1 -1
  56. package/dist/hooks/use-event-listener.cjs.map +1 -1
  57. package/dist/hooks/use-event-listener.js +6 -6
  58. package/dist/hooks/use-event-listener.js.map +1 -1
  59. package/dist/hooks/use-interval.cjs +1 -1
  60. package/dist/hooks/use-interval.cjs.map +1 -1
  61. package/dist/hooks/use-interval.js +5 -6
  62. package/dist/hooks/use-interval.js.map +1 -1
  63. package/dist/hooks/use-latest-ref.cjs.map +1 -1
  64. package/dist/hooks/use-latest-ref.js.map +1 -1
  65. package/dist/hooks/use-long-press-handlers.cjs +1 -1
  66. package/dist/hooks/use-long-press-handlers.cjs.map +1 -1
  67. package/dist/hooks/use-long-press-handlers.js +8 -10
  68. package/dist/hooks/use-long-press-handlers.js.map +1 -1
  69. package/dist/hooks/use-long-press.cjs +1 -1
  70. package/dist/hooks/use-long-press.cjs.map +1 -1
  71. package/dist/hooks/use-long-press.js +6 -6
  72. package/dist/hooks/use-long-press.js.map +1 -1
  73. package/dist/hooks/use-online.cjs +1 -1
  74. package/dist/hooks/use-online.cjs.map +1 -1
  75. package/dist/hooks/use-online.js +10 -10
  76. package/dist/hooks/use-online.js.map +1 -1
  77. package/dist/hooks/use-service-worker-update.cjs +1 -1
  78. package/dist/hooks/use-service-worker-update.cjs.map +1 -1
  79. package/dist/hooks/use-service-worker-update.js +24 -25
  80. package/dist/hooks/use-service-worker-update.js.map +1 -1
  81. package/dist/hooks/use-stable-callback.cjs +1 -1
  82. package/dist/hooks/use-stable-callback.cjs.map +1 -1
  83. package/dist/hooks/use-stable-callback.js +4 -3
  84. package/dist/hooks/use-stable-callback.js.map +1 -1
  85. package/dist/hooks/use-timeout.cjs +1 -1
  86. package/dist/hooks/use-timeout.cjs.map +1 -1
  87. package/dist/hooks/use-timeout.js +5 -6
  88. package/dist/hooks/use-timeout.js.map +1 -1
  89. package/dist/hooks/use-typewriter.cjs +1 -1
  90. package/dist/hooks/use-typewriter.cjs.map +1 -1
  91. package/dist/hooks/use-typewriter.js +9 -18
  92. package/dist/hooks/use-typewriter.js.map +1 -1
  93. package/dist/http/api-client.cjs +1 -1
  94. package/dist/http/api-client.cjs.map +1 -1
  95. package/dist/http/api-client.js +11 -16
  96. package/dist/http/api-client.js.map +1 -1
  97. package/dist/http/describe-api-error.cjs +1 -1
  98. package/dist/http/describe-api-error.cjs.map +1 -1
  99. package/dist/http/describe-api-error.js +12 -15
  100. package/dist/http/describe-api-error.js.map +1 -1
  101. package/dist/http/errors.cjs +1 -1
  102. package/dist/http/errors.cjs.map +1 -1
  103. package/dist/http/errors.js +18 -6
  104. package/dist/http/errors.js.map +1 -1
  105. package/dist/http/resumable-upload.cjs +1 -1
  106. package/dist/http/resumable-upload.cjs.map +1 -1
  107. package/dist/http/resumable-upload.js +60 -61
  108. package/dist/http/resumable-upload.js.map +1 -1
  109. package/dist/http/retry.cjs +1 -1
  110. package/dist/http/retry.cjs.map +1 -1
  111. package/dist/http/retry.js +20 -16
  112. package/dist/http/retry.js.map +1 -1
  113. package/dist/http/use-describe-api-error.cjs +1 -1
  114. package/dist/http/use-describe-api-error.cjs.map +1 -1
  115. package/dist/http/use-describe-api-error.js +2 -2
  116. package/dist/http/use-describe-api-error.js.map +1 -1
  117. package/dist/i18n/create-i18n.cjs +1 -1
  118. package/dist/i18n/create-i18n.cjs.map +1 -1
  119. package/dist/i18n/create-i18n.js +6 -6
  120. package/dist/i18n/create-i18n.js.map +1 -1
  121. package/dist/icons/material-symbols.cjs +1 -1
  122. package/dist/icons/material-symbols.cjs.map +1 -1
  123. package/dist/icons/material-symbols.js +136 -5
  124. package/dist/icons/material-symbols.js.map +1 -1
  125. package/dist/icons.d.ts +17 -5
  126. package/dist/offline/create-offline-sync.cjs +1 -1
  127. package/dist/offline/create-offline-sync.cjs.map +1 -1
  128. package/dist/offline/create-offline-sync.js +17 -9
  129. package/dist/offline/create-offline-sync.js.map +1 -1
  130. package/dist/offline/use-offline-sync.cjs +1 -1
  131. package/dist/offline/use-offline-sync.cjs.map +1 -1
  132. package/dist/offline/use-offline-sync.js +7 -8
  133. package/dist/offline/use-offline-sync.js.map +1 -1
  134. package/dist/push/use-push-subscription.cjs +1 -1
  135. package/dist/push/use-push-subscription.cjs.map +1 -1
  136. package/dist/push/use-push-subscription.js +13 -12
  137. package/dist/push/use-push-subscription.js.map +1 -1
  138. package/dist/query/retry-policy.cjs +1 -1
  139. package/dist/query/retry-policy.cjs.map +1 -1
  140. package/dist/query/retry-policy.js +3 -3
  141. package/dist/query/retry-policy.js.map +1 -1
  142. package/dist/sse/use-event-stream.cjs +1 -1
  143. package/dist/sse/use-event-stream.cjs.map +1 -1
  144. package/dist/sse/use-event-stream.js +19 -20
  145. package/dist/sse/use-event-stream.js.map +1 -1
  146. package/dist/tabular/use-tabular-predictor.cjs +1 -1
  147. package/dist/tabular/use-tabular-predictor.cjs.map +1 -1
  148. package/dist/tabular/use-tabular-predictor.js +20 -17
  149. package/dist/tabular/use-tabular-predictor.js.map +1 -1
  150. package/dist/tempest-react-sdk.cjs +1 -1
  151. package/dist/tempest-react-sdk.d.ts +363 -149
  152. package/dist/tempest-react-sdk.js +143 -143
  153. package/dist/theme/ThemeProvider.cjs +1 -1
  154. package/dist/theme/ThemeProvider.cjs.map +1 -1
  155. package/dist/theme/ThemeProvider.js +12 -17
  156. package/dist/theme/ThemeProvider.js.map +1 -1
  157. package/dist/utils/base64.cjs +2 -0
  158. package/dist/utils/base64.cjs.map +1 -0
  159. package/dist/utils/base64.js +16 -0
  160. package/dist/utils/base64.js.map +1 -0
  161. package/dist/utils/compare-values.cjs +1 -1
  162. package/dist/utils/compare-values.cjs.map +1 -1
  163. package/dist/utils/compare-values.js +4 -3
  164. package/dist/utils/compare-values.js.map +1 -1
  165. package/dist/utils/compressed-storage.cjs +1 -1
  166. package/dist/utils/compressed-storage.cjs.map +1 -1
  167. package/dist/utils/compressed-storage.js +16 -46
  168. package/dist/utils/compressed-storage.js.map +1 -1
  169. package/dist/utils/storage.cjs +1 -1
  170. package/dist/utils/storage.cjs.map +1 -1
  171. package/dist/utils/storage.js +37 -17
  172. package/dist/utils/storage.js.map +1 -1
  173. package/dist/vision/use-camera-stream.cjs +1 -1
  174. package/dist/vision/use-camera-stream.cjs.map +1 -1
  175. package/dist/vision/use-camera-stream.js +34 -33
  176. package/dist/vision/use-camera-stream.js.map +1 -1
  177. package/dist/vite/base-url.cjs +2 -0
  178. package/dist/vite/base-url.cjs.map +1 -0
  179. package/dist/vite/base-url.js +8 -0
  180. package/dist/vite/base-url.js.map +1 -0
  181. package/dist/vite/tempest-pwa-dev-sw.cjs +1 -1
  182. package/dist/vite/tempest-pwa-dev-sw.cjs.map +1 -1
  183. package/dist/vite/tempest-pwa-dev-sw.js +54 -29
  184. package/dist/vite/tempest-pwa-dev-sw.js.map +1 -1
  185. package/dist/vite/tempest-pwa-manifest.cjs +2 -2
  186. package/dist/vite/tempest-pwa-manifest.cjs.map +1 -1
  187. package/dist/vite/tempest-pwa-manifest.js +15 -14
  188. package/dist/vite/tempest-pwa-manifest.js.map +1 -1
  189. package/dist/vite.d.ts +2 -2
  190. package/dist/ws/use-web-socket.cjs +1 -1
  191. package/dist/ws/use-web-socket.cjs.map +1 -1
  192. package/dist/ws/use-web-socket.js +40 -42
  193. package/dist/ws/use-web-socket.js.map +1 -1
  194. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"retry-policy.js","names":[],"sources":["../../src/query/retry-policy.ts"],"sourcesContent":["import { isApiError } from \"../http/errors\";\n\n/**\n * Statuses in the 4xx range that are still worth replaying.\n *\n * `429` is a refusal that explicitly means \"later\", and `408` is the server\n * saying the request itself timed out — both describe a condition that changes on\n * its own. Every other 4xx is the server refusing on purpose, and repeating it\n * changes nothing.\n */\nconst RETRIABLE_CLIENT_STATUSES: ReadonlySet<number> = new Set([408, 429]);\n\n/** How many times a retriable failure is replayed. */\nconst MAX_RETRIES = 1;\n\n/**\n * Default `retry` for SDK queries: replay transport and server failures, never a\n * deliberate client-side refusal.\n *\n * A flat `retry: 1` replays a 403 on an admin-only listing and a 404 for a record\n * somebody deleted. The server meant both — the second attempt returns the same\n * answer, doubles the network log and holds the spinner on screen for the length\n * of another round trip. A network failure or a 5xx is a different thing: it may\n * well succeed on the next try, so those keep the previous behaviour.\n *\n * @example\n * new QueryClient({ defaultOptions: { queries: { retry: shouldRetryQuery } } });\n *\n * @param failureCount - Attempts already made, as react-query counts them.\n * @param error - The rejection value from the query function.\n * @returns Whether react-query should try again.\n */\nexport function shouldRetryQuery(failureCount: number, error: unknown): boolean {\n if (failureCount >= MAX_RETRIES) return false;\n if (!isApiError(error)) return true;\n if (error.status === 0) return true;\n if (error.status >= 400 && error.status < 500) {\n return RETRIABLE_CLIENT_STATUSES.has(error.status);\n }\n return true;\n}\n"],"mappings":";;AAUA,IAAM,oBAAiD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAGnE,IAAc;AAmBpB,SAAgB,EAAiB,GAAsB,GAAyB;CAO5E,OANI,KAAgB,IAAoB,KACpC,CAAC,EAAW,CAAK,KACjB,EAAM,WAAW,IAAU,KAC3B,EAAM,UAAU,OAAO,EAAM,SAAS,MAC/B,EAA0B,IAAI,EAAM,MAAM,IAE9C;AACX"}
1
+ {"version":3,"file":"retry-policy.js","names":[],"sources":["../../src/query/retry-policy.ts"],"sourcesContent":["import { isApiError, isRetriableStatus } from \"../http/errors\";\n\n/** How many times a retriable failure is replayed. */\nconst MAX_RETRIES = 1;\n\n/**\n * Default `retry` for SDK queries: replay transport and server failures, never a\n * deliberate client-side refusal.\n *\n * A flat `retry: 1` replays a 403 on an admin-only listing and a 404 for a record\n * somebody deleted. The server meant both — the second attempt returns the same\n * answer, doubles the network log and holds the spinner on screen for the length\n * of another round trip. A network failure or a 5xx is a different thing: it may\n * well succeed on the next try, so those keep the previous behaviour.\n *\n * The status list is {@link isRetriableStatus}, shared with the client's own\n * policy. It used to be a second copy here, and the copy was missing `425` — so\n * a `425 Too Early` was replayed by `createApiClient({ retry: true })` and not\n * by a query, for the same error in the same app.\n *\n * @example\n * new QueryClient({ defaultOptions: { queries: { retry: shouldRetryQuery } } });\n *\n * @param failureCount - Attempts already made, as react-query counts them.\n * @param error - The rejection value from the query function.\n * @returns Whether react-query should try again.\n */\nexport function shouldRetryQuery(failureCount: number, error: unknown): boolean {\n if (failureCount >= MAX_RETRIES) return false;\n if (!isApiError(error)) return true;\n return isRetriableStatus(error.status);\n}\n"],"mappings":";;AAGA,IAAM,IAAc;AAwBpB,SAAgB,EAAiB,GAAsB,GAAyB;CAG5E,OAFI,KAAgB,IAAoB,KACxC,CAAK,EAAW,CAAK,KACd,EAAkB,EAAM,MAAM;AACzC"}
@@ -1,2 +1,2 @@
1
- const e=require("./create-event-stream.cjs");let t=require("react");function n(n,r={}){let{enabled:i=!0,onMessage:a,...o}=r,[s,c]=(0,t.useState)(`idle`),[l,u]=(0,t.useState)(null),d=(0,t.useRef)(null),f=(0,t.useRef)(a);return(0,t.useEffect)(()=>{f.current=a},[a]),(0,t.useEffect)(()=>{if(!i||!n){c(`idle`);return}let t=e.createEventStream(n,{...o,onStatusChange:c,onMessage:e=>{u(e),f.current?.(e)}});return d.current=t.reconnect,()=>{t.close(),d.current=null}},[n,i]),{status:s,lastMessage:l,reconnect:()=>d.current?.()}}exports.useEventStream=n;
1
+ const e=require("../hooks/use-latest-ref.cjs"),t=require("./create-event-stream.cjs");let n=require("react");function r(r,i={}){let{enabled:a=!0,onMessage:o,...s}=i,[c,l]=(0,n.useState)(`idle`),[u,d]=(0,n.useState)(null),f=(0,n.useRef)(null),p=e.useLatestRef(o);return(0,n.useEffect)(()=>{if(!a||!r){l(`idle`);return}let e=t.createEventStream(r,{...s,onStatusChange:l,onMessage:e=>{d(e),p.current?.(e)}});return f.current=e.reconnect,()=>{e.close(),f.current=null}},[r,a]),{status:c,lastMessage:u,reconnect:()=>f.current?.()}}exports.useEventStream=r;
2
2
  //# sourceMappingURL=use-event-stream.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-event-stream.cjs","names":[],"sources":["../../src/sse/use-event-stream.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport {\n createEventStream,\n type CreateEventStreamOptions,\n type EventStreamMessage,\n type EventStreamStatus,\n} from \"./create-event-stream\";\n\nexport interface UseEventStreamOptions<T> extends Omit<\n CreateEventStreamOptions<T>,\n \"onStatusChange\"\n> {\n /** When false, the stream is not opened. Useful for \"wait for auth\". Default: true. */\n enabled?: boolean;\n}\n\nexport interface UseEventStreamResult<T> {\n status: EventStreamStatus;\n /** Last message received (excluding heartbeats). */\n lastMessage: EventStreamMessage<T> | null;\n /** Force a reconnect. */\n reconnect: () => void;\n}\n\n/**\n * React hook wrapper around {@link createEventStream}. Connection lifecycle is\n * tied to the component (and the `url`/`enabled` dependencies); the stream\n * closes on unmount.\n *\n * @example\n * useEventStream<Notification>(`${API}/notifications/stream`, {\n * enabled: !!user,\n * withCredentials: true,\n * onMessage: ({ data }) => addNotification(data),\n * });\n */\nexport function useEventStream<T = unknown>(\n url: string,\n options: UseEventStreamOptions<T> = {},\n): UseEventStreamResult<T> {\n const { enabled = true, onMessage, ...rest } = options;\n const [status, setStatus] = useState<EventStreamStatus>(\"idle\");\n const [lastMessage, setLastMessage] = useState<EventStreamMessage<T> | null>(null);\n const reconnectRef = useRef<(() => void) | null>(null);\n\n const onMessageRef = useRef(onMessage);\n useEffect(() => {\n onMessageRef.current = onMessage;\n }, [onMessage]);\n\n useEffect(() => {\n if (!enabled || !url) {\n setStatus(\"idle\");\n return;\n }\n\n const controller = createEventStream<T>(url, {\n ...rest,\n onStatusChange: setStatus,\n onMessage: (message) => {\n setLastMessage(message);\n onMessageRef.current?.(message);\n },\n });\n reconnectRef.current = controller.reconnect;\n\n return () => {\n controller.close();\n reconnectRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, enabled]);\n\n return {\n status,\n lastMessage,\n reconnect: () => reconnectRef.current?.(),\n };\n}\n"],"mappings":"oEAoCA,SAAgB,EACZ,EACA,EAAoC,CAAC,EACd,CACvB,GAAM,CAAE,UAAU,GAAM,YAAW,GAAG,GAAS,EACzC,CAAC,EAAQ,IAAA,EAAa,EAAA,SAAA,CAA4B,MAAM,EACxD,CAAC,EAAa,IAAA,EAAkB,EAAA,SAAA,CAAuC,IAAI,EAC3E,GAAA,EAAe,EAAA,OAAA,CAA4B,IAAI,EAE/C,GAAA,EAAe,EAAA,OAAA,CAAO,CAAS,EA4BrC,OA3BA,EAAA,EAAA,UAAA,KAAgB,CACZ,EAAa,QAAU,CAC3B,EAAG,CAAC,CAAS,CAAC,GAEd,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,CAAC,GAAW,CAAC,EAAK,CAClB,EAAU,MAAM,EAChB,MACJ,CAEA,IAAM,EAAa,EAAA,kBAAqB,EAAK,CACzC,GAAG,EACH,eAAgB,EAChB,UAAY,GAAY,CACpB,EAAe,CAAO,EACtB,EAAa,UAAU,CAAO,CAClC,CACJ,CAAC,EAGD,MAFA,GAAa,QAAU,EAAW,cAErB,CACT,EAAW,MAAM,EACjB,EAAa,QAAU,IAC3B,CAEJ,EAAG,CAAC,EAAK,CAAO,CAAC,EAEV,CACH,SACA,cACA,cAAiB,EAAa,UAAU,CAC5C,CACJ"}
1
+ {"version":3,"file":"use-event-stream.cjs","names":[],"sources":["../../src/sse/use-event-stream.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { useLatestRef } from \"@/hooks/use-latest-ref\";\nimport {\n createEventStream,\n type CreateEventStreamOptions,\n type EventStreamMessage,\n type EventStreamStatus,\n} from \"./create-event-stream\";\n\nexport interface UseEventStreamOptions<T> extends Omit<\n CreateEventStreamOptions<T>,\n \"onStatusChange\"\n> {\n /** When false, the stream is not opened. Useful for \"wait for auth\". Default: true. */\n enabled?: boolean;\n}\n\nexport interface UseEventStreamResult<T> {\n status: EventStreamStatus;\n /** Last message received (excluding heartbeats). */\n lastMessage: EventStreamMessage<T> | null;\n /** Force a reconnect. */\n reconnect: () => void;\n}\n\n/**\n * React hook wrapper around {@link createEventStream}. Connection lifecycle is\n * tied to the component (and the `url`/`enabled` dependencies); the stream\n * closes on unmount.\n *\n * @example\n * useEventStream<Notification>(`${API}/notifications/stream`, {\n * enabled: !!user,\n * withCredentials: true,\n * onMessage: ({ data }) => addNotification(data),\n * });\n */\nexport function useEventStream<T = unknown>(\n url: string,\n options: UseEventStreamOptions<T> = {},\n): UseEventStreamResult<T> {\n const { enabled = true, onMessage, ...rest } = options;\n const [status, setStatus] = useState<EventStreamStatus>(\"idle\");\n const [lastMessage, setLastMessage] = useState<EventStreamMessage<T> | null>(null);\n const reconnectRef = useRef<(() => void) | null>(null);\n\n const onMessageRef = useLatestRef(onMessage);\n\n useEffect(() => {\n if (!enabled || !url) {\n setStatus(\"idle\");\n return;\n }\n\n const controller = createEventStream<T>(url, {\n ...rest,\n onStatusChange: setStatus,\n onMessage: (message) => {\n setLastMessage(message);\n onMessageRef.current?.(message);\n },\n });\n reconnectRef.current = controller.reconnect;\n\n return () => {\n controller.close();\n reconnectRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, enabled]);\n\n return {\n status,\n lastMessage,\n reconnect: () => reconnectRef.current?.(),\n };\n}\n"],"mappings":"6GAqCA,SAAgB,EACZ,EACA,EAAoC,CAAC,EACd,CACvB,GAAM,CAAE,UAAU,GAAM,YAAW,GAAG,GAAS,EACzC,CAAC,EAAQ,IAAA,EAAa,EAAA,SAAA,CAA4B,MAAM,EACxD,CAAC,EAAa,IAAA,EAAkB,EAAA,SAAA,CAAuC,IAAI,EAC3E,GAAA,EAAe,EAAA,OAAA,CAA4B,IAAI,EAE/C,EAAe,EAAA,aAAa,CAAS,EAyB3C,OAvBA,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,CAAC,GAAW,CAAC,EAAK,CAClB,EAAU,MAAM,EAChB,MACJ,CAEA,IAAM,EAAa,EAAA,kBAAqB,EAAK,CACzC,GAAG,EACH,eAAgB,EAChB,UAAY,GAAY,CACpB,EAAe,CAAO,EACtB,EAAa,UAAU,CAAO,CAClC,CACJ,CAAC,EAGD,MAFA,GAAa,QAAU,EAAW,cAErB,CACT,EAAW,MAAM,EACjB,EAAa,QAAU,IAC3B,CAEJ,EAAG,CAAC,EAAK,CAAO,CAAC,EAEV,CACH,SACA,cACA,cAAiB,EAAa,UAAU,CAC5C,CACJ"}
@@ -1,32 +1,31 @@
1
- import { createEventStream as e } from "./create-event-stream.js";
2
- import { useEffect as t, useRef as n, useState as r } from "react";
1
+ import { useLatestRef as e } from "../hooks/use-latest-ref.js";
2
+ import { createEventStream as t } from "./create-event-stream.js";
3
+ import { useEffect as n, useRef as r, useState as i } from "react";
3
4
  //#region src/sse/use-event-stream.ts
4
- function i(i, a = {}) {
5
- let { enabled: o = !0, onMessage: s, ...c } = a, [l, u] = r("idle"), [d, f] = r(null), p = n(null), m = n(s);
6
- return t(() => {
7
- m.current = s;
8
- }, [s]), t(() => {
9
- if (!o || !i) {
10
- u("idle");
5
+ function a(a, o = {}) {
6
+ let { enabled: s = !0, onMessage: c, ...l } = o, [u, d] = i("idle"), [f, p] = i(null), m = r(null), h = e(c);
7
+ return n(() => {
8
+ if (!s || !a) {
9
+ d("idle");
11
10
  return;
12
11
  }
13
- let t = e(i, {
14
- ...c,
15
- onStatusChange: u,
12
+ let e = t(a, {
13
+ ...l,
14
+ onStatusChange: d,
16
15
  onMessage: (e) => {
17
- f(e), m.current?.(e);
16
+ p(e), h.current?.(e);
18
17
  }
19
18
  });
20
- return p.current = t.reconnect, () => {
21
- t.close(), p.current = null;
19
+ return m.current = e.reconnect, () => {
20
+ e.close(), m.current = null;
22
21
  };
23
- }, [i, o]), {
24
- status: l,
25
- lastMessage: d,
26
- reconnect: () => p.current?.()
22
+ }, [a, s]), {
23
+ status: u,
24
+ lastMessage: f,
25
+ reconnect: () => m.current?.()
27
26
  };
28
27
  }
29
28
  //#endregion
30
- export { i as useEventStream };
29
+ export { a as useEventStream };
31
30
 
32
31
  //# sourceMappingURL=use-event-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-event-stream.js","names":[],"sources":["../../src/sse/use-event-stream.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport {\n createEventStream,\n type CreateEventStreamOptions,\n type EventStreamMessage,\n type EventStreamStatus,\n} from \"./create-event-stream\";\n\nexport interface UseEventStreamOptions<T> extends Omit<\n CreateEventStreamOptions<T>,\n \"onStatusChange\"\n> {\n /** When false, the stream is not opened. Useful for \"wait for auth\". Default: true. */\n enabled?: boolean;\n}\n\nexport interface UseEventStreamResult<T> {\n status: EventStreamStatus;\n /** Last message received (excluding heartbeats). */\n lastMessage: EventStreamMessage<T> | null;\n /** Force a reconnect. */\n reconnect: () => void;\n}\n\n/**\n * React hook wrapper around {@link createEventStream}. Connection lifecycle is\n * tied to the component (and the `url`/`enabled` dependencies); the stream\n * closes on unmount.\n *\n * @example\n * useEventStream<Notification>(`${API}/notifications/stream`, {\n * enabled: !!user,\n * withCredentials: true,\n * onMessage: ({ data }) => addNotification(data),\n * });\n */\nexport function useEventStream<T = unknown>(\n url: string,\n options: UseEventStreamOptions<T> = {},\n): UseEventStreamResult<T> {\n const { enabled = true, onMessage, ...rest } = options;\n const [status, setStatus] = useState<EventStreamStatus>(\"idle\");\n const [lastMessage, setLastMessage] = useState<EventStreamMessage<T> | null>(null);\n const reconnectRef = useRef<(() => void) | null>(null);\n\n const onMessageRef = useRef(onMessage);\n useEffect(() => {\n onMessageRef.current = onMessage;\n }, [onMessage]);\n\n useEffect(() => {\n if (!enabled || !url) {\n setStatus(\"idle\");\n return;\n }\n\n const controller = createEventStream<T>(url, {\n ...rest,\n onStatusChange: setStatus,\n onMessage: (message) => {\n setLastMessage(message);\n onMessageRef.current?.(message);\n },\n });\n reconnectRef.current = controller.reconnect;\n\n return () => {\n controller.close();\n reconnectRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, enabled]);\n\n return {\n status,\n lastMessage,\n reconnect: () => reconnectRef.current?.(),\n };\n}\n"],"mappings":";;;AAoCA,SAAgB,EACZ,GACA,IAAoC,CAAC,GACd;CACvB,IAAM,EAAE,aAAU,IAAM,cAAW,GAAG,MAAS,GACzC,CAAC,GAAQ,KAAa,EAA4B,MAAM,GACxD,CAAC,GAAa,KAAkB,EAAuC,IAAI,GAC3E,IAAe,EAA4B,IAAI,GAE/C,IAAe,EAAO,CAAS;CA4BrC,OA3BA,QAAgB;EACZ,EAAa,UAAU;CAC3B,GAAG,CAAC,CAAS,CAAC,GAEd,QAAgB;EACZ,IAAI,CAAC,KAAW,CAAC,GAAK;GAClB,EAAU,MAAM;GAChB;EACJ;EAEA,IAAM,IAAa,EAAqB,GAAK;GACzC,GAAG;GACH,gBAAgB;GAChB,YAAY,MAAY;IAEpB,AADA,EAAe,CAAO,GACtB,EAAa,UAAU,CAAO;GAClC;EACJ,CAAC;EAGD,OAFA,EAAa,UAAU,EAAW,iBAErB;GAET,AADA,EAAW,MAAM,GACjB,EAAa,UAAU;EAC3B;CAEJ,GAAG,CAAC,GAAK,CAAO,CAAC,GAEV;EACH;EACA;EACA,iBAAiB,EAAa,UAAU;CAC5C;AACJ"}
1
+ {"version":3,"file":"use-event-stream.js","names":[],"sources":["../../src/sse/use-event-stream.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { useLatestRef } from \"@/hooks/use-latest-ref\";\nimport {\n createEventStream,\n type CreateEventStreamOptions,\n type EventStreamMessage,\n type EventStreamStatus,\n} from \"./create-event-stream\";\n\nexport interface UseEventStreamOptions<T> extends Omit<\n CreateEventStreamOptions<T>,\n \"onStatusChange\"\n> {\n /** When false, the stream is not opened. Useful for \"wait for auth\". Default: true. */\n enabled?: boolean;\n}\n\nexport interface UseEventStreamResult<T> {\n status: EventStreamStatus;\n /** Last message received (excluding heartbeats). */\n lastMessage: EventStreamMessage<T> | null;\n /** Force a reconnect. */\n reconnect: () => void;\n}\n\n/**\n * React hook wrapper around {@link createEventStream}. Connection lifecycle is\n * tied to the component (and the `url`/`enabled` dependencies); the stream\n * closes on unmount.\n *\n * @example\n * useEventStream<Notification>(`${API}/notifications/stream`, {\n * enabled: !!user,\n * withCredentials: true,\n * onMessage: ({ data }) => addNotification(data),\n * });\n */\nexport function useEventStream<T = unknown>(\n url: string,\n options: UseEventStreamOptions<T> = {},\n): UseEventStreamResult<T> {\n const { enabled = true, onMessage, ...rest } = options;\n const [status, setStatus] = useState<EventStreamStatus>(\"idle\");\n const [lastMessage, setLastMessage] = useState<EventStreamMessage<T> | null>(null);\n const reconnectRef = useRef<(() => void) | null>(null);\n\n const onMessageRef = useLatestRef(onMessage);\n\n useEffect(() => {\n if (!enabled || !url) {\n setStatus(\"idle\");\n return;\n }\n\n const controller = createEventStream<T>(url, {\n ...rest,\n onStatusChange: setStatus,\n onMessage: (message) => {\n setLastMessage(message);\n onMessageRef.current?.(message);\n },\n });\n reconnectRef.current = controller.reconnect;\n\n return () => {\n controller.close();\n reconnectRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, enabled]);\n\n return {\n status,\n lastMessage,\n reconnect: () => reconnectRef.current?.(),\n };\n}\n"],"mappings":";;;;AAqCA,SAAgB,EACZ,GACA,IAAoC,CAAC,GACd;CACvB,IAAM,EAAE,aAAU,IAAM,cAAW,GAAG,MAAS,GACzC,CAAC,GAAQ,KAAa,EAA4B,MAAM,GACxD,CAAC,GAAa,KAAkB,EAAuC,IAAI,GAC3E,IAAe,EAA4B,IAAI,GAE/C,IAAe,EAAa,CAAS;CAyB3C,OAvBA,QAAgB;EACZ,IAAI,CAAC,KAAW,CAAC,GAAK;GAClB,EAAU,MAAM;GAChB;EACJ;EAEA,IAAM,IAAa,EAAqB,GAAK;GACzC,GAAG;GACH,gBAAgB;GAChB,YAAY,MAAY;IAEpB,AADA,EAAe,CAAO,GACtB,EAAa,UAAU,CAAO;GAClC;EACJ,CAAC;EAGD,OAFA,EAAa,UAAU,EAAW,iBAErB;GAET,AADA,EAAW,MAAM,GACjB,EAAa,UAAU;EAC3B;CAEJ,GAAG,CAAC,GAAK,CAAO,CAAC,GAEV;EACH;EACA;EACA,iBAAiB,EAAa,UAAU;CAC5C;AACJ"}
@@ -1,2 +1,2 @@
1
- const e=require("./cache.cjs"),t=require("./predictor.cjs");let n=require("react");function r(r,i={}){let[a,o]=(0,n.useState)(null),[s,c]=(0,n.useState)(`idle`),[l,u]=(0,n.useState)(null),[d,f]=(0,n.useState)(0),p=(0,n.useRef)(i);(0,n.useEffect)(()=>{p.current=i}),(0,n.useEffect)(()=>{if(r===null){c(`idle`);return}let n=!1,i=null;return c(`loading`),u(null),(async()=>{try{let a=p.current,s=a.cache??!0,l=typeof r==`string`&&s!==!1?await e.fetchModelBytes(r,typeof s==`object`?s:{}):r,u=await t.TabularPredictor.create(l,{providers:a.providers,warmup:a.warmup,sessionOptions:a.sessionOptions});if(i=u,n){await u.dispose();return}o(u),c(`ready`)}catch(e){if(n)return;o(null),u(e instanceof Error?e:Error(String(e))),c(`error`)}})(),()=>{n=!0,o(null),i?.dispose()}},[r,d]);let m=(0,n.useCallback)(async e=>{if(a===null)throw Error("predict() was called before the model finished loading. Gate on `isReady`.");return await a.predict(e)},[a]),h=(0,n.useCallback)(()=>f(e=>e+1),[]);return{predictor:a,status:s,error:l,isReady:s===`ready`&&a!==null,predict:m,reload:h}}exports.useTabularPredictor=r;
1
+ const e=require("../hooks/use-latest-ref.cjs"),t=require("./cache.cjs"),n=require("./predictor.cjs");let r=require("react");function i(i,a={}){let[o,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(`idle`),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(0),m=e.useLatestRef(a);(0,r.useEffect)(()=>{if(i===null){l(`idle`);return}let e=!1,r=null;return l(`loading`),d(null),(async()=>{try{let a=m.current,o=a.cache??!0,c=typeof i==`string`&&o!==!1?await t.fetchModelBytes(i,typeof o==`object`?o:{}):i,u=await n.TabularPredictor.create(c,{providers:a.providers,warmup:a.warmup,sessionOptions:a.sessionOptions});if(r=u,e){await u.dispose();return}s(u),l(`ready`)}catch(t){if(e)return;s(null),d(t instanceof Error?t:Error(String(t))),l(`error`)}})(),()=>{e=!0,s(null),r?.dispose()}},[i,f,m]);let h=(0,r.useCallback)(async e=>{if(o===null)throw Error("predict() was called before the model finished loading. Gate on `isReady`.");return await o.predict(e)},[o]),g=(0,r.useCallback)(()=>p(e=>e+1),[]);return{predictor:o,status:c,error:u,isReady:c===`ready`&&o!==null,predict:h,reload:g}}exports.useTabularPredictor=i;
2
2
  //# sourceMappingURL=use-tabular-predictor.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-tabular-predictor.cjs","names":[],"sources":["../../src/tabular/use-tabular-predictor.ts"],"sourcesContent":["/**\n * React binding for {@link TabularPredictor}.\n *\n * Loading a model is async, cancellable, and has to be undone on unmount —\n * three things every component that touches inference gets wrong the same\n * way. The hook owns that lifecycle so a component only deals with\n * `status` and `predict`.\n */\n\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { fetchModelBytes, type ModelCacheOptions } from \"./cache\";\nimport { TabularPredictor } from \"./predictor\";\nimport type {\n FeatureRow,\n TabularModelSource,\n TabularPrediction,\n TabularPredictorOptions,\n} from \"./types\";\n\n/** Lifecycle of the model behind the hook. */\nexport type TabularPredictorStatus = \"idle\" | \"loading\" | \"ready\" | \"error\";\n\n/** Options for {@link useTabularPredictor}. */\nexport interface UseTabularPredictorOptions extends TabularPredictorOptions {\n /**\n * Cache the model bytes on the device, so later loads work offline.\n *\n * On by default when the source is a URL: an app that runs inference in\n * the browser almost always wants it to keep working without a network,\n * and the failure mode of not caching only shows up in a tunnel.\n */\n readonly cache?: boolean | ModelCacheOptions;\n}\n\n/** What {@link useTabularPredictor} returns. */\nexport interface UseTabularPredictorResult {\n /** The loaded predictor, or `null` while loading or on error. */\n readonly predictor: TabularPredictor | null;\n /** Where the load is. */\n readonly status: TabularPredictorStatus;\n /** Why the load failed. */\n readonly error: Error | null;\n /** Whether the model is loaded and can answer. */\n readonly isReady: boolean;\n /**\n * Predict for a batch of rows.\n *\n * @throws When called before the model is ready — awaiting `isReady`\n * is the caller's job, and a silent empty result would hide the bug.\n */\n readonly predict: (rows: readonly FeatureRow[]) => Promise<TabularPrediction>;\n /** Load the model again, e.g. after a failure or a new version. */\n readonly reload: () => void;\n}\n\n/**\n * Load a tabular model and keep it for the component's lifetime.\n *\n * @example\n * ```tsx\n * function RiskWidget() {\n * const { predict, isReady } = useTabularPredictor(\"/models/risk-v3.onnx\");\n * const [score, setScore] = useState<number | null>(null);\n *\n * async function onSubmit(features: number[]) {\n * const { probabilities } = await predict([features]);\n * setScore(probabilities[0]?.[1] ?? null);\n * }\n *\n * return <button disabled={!isReady} onClick={() => onSubmit([1, 2, 3, 4])}>Score</button>;\n * }\n * ```\n *\n * @param source Model URL, or the bytes when the app already has them.\n * Pass `null` to hold off loading (a gate, a lazy tab).\n * @param options Predictor options plus caching.\n * @returns The predictor, its status, and a `predict` bound to it.\n */\nexport function useTabularPredictor(\n source: TabularModelSource | null,\n options: UseTabularPredictorOptions = {},\n): UseTabularPredictorResult {\n const [predictor, setPredictor] = useState<TabularPredictor | null>(null);\n const [status, setStatus] = useState<TabularPredictorStatus>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const [attempt, setAttempt] = useState(0);\n\n const optionsRef = useRef(options);\n\n useEffect(() => {\n optionsRef.current = options;\n });\n\n useEffect(() => {\n if (source === null) {\n setStatus(\"idle\");\n return;\n }\n\n let cancelled = false;\n let loaded: TabularPredictor | null = null;\n\n setStatus(\"loading\");\n setError(null);\n\n void (async () => {\n try {\n const current = optionsRef.current;\n const cache = current.cache ?? true;\n const bytes =\n typeof source === \"string\" && cache !== false\n ? await fetchModelBytes(source, typeof cache === \"object\" ? cache : {})\n : source;\n const created = await TabularPredictor.create(bytes, {\n providers: current.providers,\n warmup: current.warmup,\n sessionOptions: current.sessionOptions,\n });\n loaded = created;\n if (cancelled) {\n await created.dispose();\n return;\n }\n setPredictor(created);\n setStatus(\"ready\");\n } catch (caught) {\n if (cancelled) return;\n setPredictor(null);\n setError(caught instanceof Error ? caught : new Error(String(caught)));\n setStatus(\"error\");\n }\n })();\n\n return () => {\n cancelled = true;\n setPredictor(null);\n void loaded?.dispose();\n };\n }, [source, attempt]);\n\n const predict = useCallback(\n async (rows: readonly FeatureRow[]): Promise<TabularPrediction> => {\n if (predictor === null) {\n throw new Error(\n \"predict() was called before the model finished loading. \" +\n \"Gate on `isReady`.\",\n );\n }\n return await predictor.predict(rows);\n },\n [predictor],\n );\n\n const reload = useCallback(() => setAttempt((value) => value + 1), []);\n\n return {\n predictor,\n status,\n error,\n isReady: status === \"ready\" && predictor !== null,\n predict,\n reload,\n };\n}\n"],"mappings":"mFA+EA,SAAgB,EACZ,EACA,EAAsC,CAAC,EACd,CACzB,GAAM,CAAC,EAAW,IAAA,EAAgB,EAAA,SAAA,CAAkC,IAAI,EAClE,CAAC,EAAQ,IAAA,EAAa,EAAA,SAAA,CAAiC,MAAM,EAC7D,CAAC,EAAO,IAAA,EAAY,EAAA,SAAA,CAAuB,IAAI,EAC/C,CAAC,EAAS,IAAA,EAAc,EAAA,SAAA,CAAS,CAAC,EAElC,GAAA,EAAa,EAAA,OAAA,CAAO,CAAO,GAEjC,EAAA,EAAA,UAAA,KAAgB,CACZ,EAAW,QAAU,CACzB,CAAC,GAED,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,IAAW,KAAM,CACjB,EAAU,MAAM,EAChB,MACJ,CAEA,IAAI,EAAY,GACZ,EAAkC,KAiCtC,OA/BA,EAAU,SAAS,EACnB,EAAS,IAAI,GAEP,SAAY,CACd,GAAI,CACA,IAAM,EAAU,EAAW,QACrB,EAAQ,EAAQ,OAAS,GACzB,EACF,OAAO,GAAW,UAAY,IAAU,GAClC,MAAM,EAAA,gBAAgB,EAAQ,OAAO,GAAU,SAAW,EAAQ,CAAC,CAAC,EACpE,EACJ,EAAU,MAAM,EAAA,iBAAiB,OAAO,EAAO,CACjD,UAAW,EAAQ,UACnB,OAAQ,EAAQ,OAChB,eAAgB,EAAQ,cAC5B,CAAC,EAED,GADA,EAAS,EACL,EAAW,CACX,MAAM,EAAQ,QAAQ,EACtB,MACJ,CACA,EAAa,CAAO,EACpB,EAAU,OAAO,CACrB,OAAS,EAAQ,CACb,GAAI,EAAW,OACf,EAAa,IAAI,EACjB,EAAS,aAAkB,MAAQ,EAAa,MAAM,OAAO,CAAM,CAAC,CAAC,EACrE,EAAU,OAAO,CACrB,CACJ,EAAA,CAAG,MAEU,CACT,EAAY,GACZ,EAAa,IAAI,EACjB,GAAa,QAAQ,CACzB,CACJ,EAAG,CAAC,EAAQ,CAAO,CAAC,EAEpB,IAAM,GAAA,EAAU,EAAA,YAAA,CACZ,KAAO,IAA4D,CAC/D,GAAI,IAAc,KACd,MAAU,MACN,4EAEJ,EAEJ,OAAO,MAAM,EAAU,QAAQ,CAAI,CACvC,EACA,CAAC,CAAS,CACd,EAEM,GAAA,EAAS,EAAA,YAAA,KAAkB,EAAY,GAAU,EAAQ,CAAC,EAAG,CAAC,CAAC,EAErE,MAAO,CACH,YACA,SACA,QACA,QAAS,IAAW,SAAW,IAAc,KAC7C,UACA,QACJ,CACJ"}
1
+ {"version":3,"file":"use-tabular-predictor.cjs","names":[],"sources":["../../src/tabular/use-tabular-predictor.ts"],"sourcesContent":["/**\n * React binding for {@link TabularPredictor}.\n *\n * Loading a model is async, cancellable, and has to be undone on unmount —\n * three things every component that touches inference gets wrong the same\n * way. The hook owns that lifecycle so a component only deals with\n * `status` and `predict`.\n */\n\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useLatestRef } from \"@/hooks/use-latest-ref\";\n\nimport { fetchModelBytes, type ModelCacheOptions } from \"./cache\";\nimport { TabularPredictor } from \"./predictor\";\nimport type {\n FeatureRow,\n TabularModelSource,\n TabularPrediction,\n TabularPredictorOptions,\n} from \"./types\";\n\n/** Lifecycle of the model behind the hook. */\nexport type TabularPredictorStatus = \"idle\" | \"loading\" | \"ready\" | \"error\";\n\n/** Options for {@link useTabularPredictor}. */\nexport interface UseTabularPredictorOptions extends TabularPredictorOptions {\n /**\n * Cache the model bytes on the device, so later loads work offline.\n *\n * On by default when the source is a URL: an app that runs inference in\n * the browser almost always wants it to keep working without a network,\n * and the failure mode of not caching only shows up in a tunnel.\n */\n readonly cache?: boolean | ModelCacheOptions;\n}\n\n/** What {@link useTabularPredictor} returns. */\nexport interface UseTabularPredictorResult {\n /** The loaded predictor, or `null` while loading or on error. */\n readonly predictor: TabularPredictor | null;\n /** Where the load is. */\n readonly status: TabularPredictorStatus;\n /** Why the load failed. */\n readonly error: Error | null;\n /** Whether the model is loaded and can answer. */\n readonly isReady: boolean;\n /**\n * Predict for a batch of rows.\n *\n * @throws When called before the model is ready — awaiting `isReady`\n * is the caller's job, and a silent empty result would hide the bug.\n */\n readonly predict: (rows: readonly FeatureRow[]) => Promise<TabularPrediction>;\n /** Load the model again, e.g. after a failure or a new version. */\n readonly reload: () => void;\n}\n\n/**\n * Load a tabular model and keep it for the component's lifetime.\n *\n * @example\n * ```tsx\n * function RiskWidget() {\n * const { predict, isReady } = useTabularPredictor(\"/models/risk-v3.onnx\");\n * const [score, setScore] = useState<number | null>(null);\n *\n * async function onSubmit(features: number[]) {\n * const { probabilities } = await predict([features]);\n * setScore(probabilities[0]?.[1] ?? null);\n * }\n *\n * return <button disabled={!isReady} onClick={() => onSubmit([1, 2, 3, 4])}>Score</button>;\n * }\n * ```\n *\n * @param source Model URL, or the bytes when the app already has them.\n * Pass `null` to hold off loading (a gate, a lazy tab).\n * @param options Predictor options plus caching.\n * @returns The predictor, its status, and a `predict` bound to it.\n */\nexport function useTabularPredictor(\n source: TabularModelSource | null,\n options: UseTabularPredictorOptions = {},\n): UseTabularPredictorResult {\n const [predictor, setPredictor] = useState<TabularPredictor | null>(null);\n const [status, setStatus] = useState<TabularPredictorStatus>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const [attempt, setAttempt] = useState(0);\n\n const optionsRef = useLatestRef(options);\n\n useEffect(() => {\n if (source === null) {\n setStatus(\"idle\");\n return;\n }\n\n let cancelled = false;\n let loaded: TabularPredictor | null = null;\n\n setStatus(\"loading\");\n setError(null);\n\n void (async () => {\n try {\n const current = optionsRef.current;\n const cache = current.cache ?? true;\n const bytes =\n typeof source === \"string\" && cache !== false\n ? await fetchModelBytes(source, typeof cache === \"object\" ? cache : {})\n : source;\n const created = await TabularPredictor.create(bytes, {\n providers: current.providers,\n warmup: current.warmup,\n sessionOptions: current.sessionOptions,\n });\n loaded = created;\n if (cancelled) {\n await created.dispose();\n return;\n }\n setPredictor(created);\n setStatus(\"ready\");\n } catch (caught) {\n if (cancelled) return;\n setPredictor(null);\n setError(caught instanceof Error ? caught : new Error(String(caught)));\n setStatus(\"error\");\n }\n })();\n\n return () => {\n cancelled = true;\n setPredictor(null);\n void loaded?.dispose();\n };\n }, [source, attempt, optionsRef]);\n\n const predict = useCallback(\n async (rows: readonly FeatureRow[]): Promise<TabularPrediction> => {\n if (predictor === null) {\n throw new Error(\n \"predict() was called before the model finished loading. \" +\n \"Gate on `isReady`.\",\n );\n }\n return await predictor.predict(rows);\n },\n [predictor],\n );\n\n const reload = useCallback(() => setAttempt((value) => value + 1), []);\n\n return {\n predictor,\n status,\n error,\n isReady: status === \"ready\" && predictor !== null,\n predict,\n reload,\n };\n}\n"],"mappings":"4HAgFA,SAAgB,EACZ,EACA,EAAsC,CAAC,EACd,CACzB,GAAM,CAAC,EAAW,IAAA,EAAgB,EAAA,SAAA,CAAkC,IAAI,EAClE,CAAC,EAAQ,IAAA,EAAa,EAAA,SAAA,CAAiC,MAAM,EAC7D,CAAC,EAAO,IAAA,EAAY,EAAA,SAAA,CAAuB,IAAI,EAC/C,CAAC,EAAS,IAAA,EAAc,EAAA,SAAA,CAAS,CAAC,EAElC,EAAa,EAAA,aAAa,CAAO,GAEvC,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,IAAW,KAAM,CACjB,EAAU,MAAM,EAChB,MACJ,CAEA,IAAI,EAAY,GACZ,EAAkC,KAiCtC,OA/BA,EAAU,SAAS,EACnB,EAAS,IAAI,GAEP,SAAY,CACd,GAAI,CACA,IAAM,EAAU,EAAW,QACrB,EAAQ,EAAQ,OAAS,GACzB,EACF,OAAO,GAAW,UAAY,IAAU,GAClC,MAAM,EAAA,gBAAgB,EAAQ,OAAO,GAAU,SAAW,EAAQ,CAAC,CAAC,EACpE,EACJ,EAAU,MAAM,EAAA,iBAAiB,OAAO,EAAO,CACjD,UAAW,EAAQ,UACnB,OAAQ,EAAQ,OAChB,eAAgB,EAAQ,cAC5B,CAAC,EAED,GADA,EAAS,EACL,EAAW,CACX,MAAM,EAAQ,QAAQ,EACtB,MACJ,CACA,EAAa,CAAO,EACpB,EAAU,OAAO,CACrB,OAAS,EAAQ,CACb,GAAI,EAAW,OACf,EAAa,IAAI,EACjB,EAAS,aAAkB,MAAQ,EAAa,MAAM,OAAO,CAAM,CAAC,CAAC,EACrE,EAAU,OAAO,CACrB,CACJ,EAAA,CAAG,MAEU,CACT,EAAY,GACZ,EAAa,IAAI,EACjB,GAAa,QAAQ,CACzB,CACJ,EAAG,CAAC,EAAQ,EAAS,CAAU,CAAC,EAEhC,IAAM,GAAA,EAAU,EAAA,YAAA,CACZ,KAAO,IAA4D,CAC/D,GAAI,IAAc,KACd,MAAU,MACN,4EAEJ,EAEJ,OAAO,MAAM,EAAU,QAAQ,CAAI,CACvC,EACA,CAAC,CAAS,CACd,EAEM,GAAA,EAAS,EAAA,YAAA,KAAkB,EAAY,GAAU,EAAQ,CAAC,EAAG,CAAC,CAAC,EAErE,MAAO,CACH,YACA,SACA,QACA,QAAS,IAAW,SAAW,IAAc,KAC7C,UACA,QACJ,CACJ"}
@@ -1,41 +1,44 @@
1
- import { fetchModelBytes as e } from "./cache.js";
2
- import { TabularPredictor as t } from "./predictor.js";
3
- import { useCallback as n, useEffect as r, useRef as i, useState as a } from "react";
1
+ import { useLatestRef as e } from "../hooks/use-latest-ref.js";
2
+ import { fetchModelBytes as t } from "./cache.js";
3
+ import { TabularPredictor as n } from "./predictor.js";
4
+ import { useCallback as r, useEffect as i, useState as a } from "react";
4
5
  //#region src/tabular/use-tabular-predictor.ts
5
6
  function o(o, s = {}) {
6
- let [c, l] = a(null), [u, d] = a("idle"), [f, p] = a(null), [m, h] = a(0), g = i(s);
7
- r(() => {
8
- g.current = s;
9
- }), r(() => {
7
+ let [c, l] = a(null), [u, d] = a("idle"), [f, p] = a(null), [m, h] = a(0), g = e(s);
8
+ i(() => {
10
9
  if (o === null) {
11
10
  d("idle");
12
11
  return;
13
12
  }
14
- let n = !1, r = null;
13
+ let e = !1, r = null;
15
14
  return d("loading"), p(null), (async () => {
16
15
  try {
17
- let i = g.current, a = i.cache ?? !0, s = typeof o == "string" && a !== !1 ? await e(o, typeof a == "object" ? a : {}) : o, c = await t.create(s, {
16
+ let i = g.current, a = i.cache ?? !0, s = typeof o == "string" && a !== !1 ? await t(o, typeof a == "object" ? a : {}) : o, c = await n.create(s, {
18
17
  providers: i.providers,
19
18
  warmup: i.warmup,
20
19
  sessionOptions: i.sessionOptions
21
20
  });
22
- if (r = c, n) {
21
+ if (r = c, e) {
23
22
  await c.dispose();
24
23
  return;
25
24
  }
26
25
  l(c), d("ready");
27
- } catch (e) {
28
- if (n) return;
29
- l(null), p(e instanceof Error ? e : Error(String(e))), d("error");
26
+ } catch (t) {
27
+ if (e) return;
28
+ l(null), p(t instanceof Error ? t : Error(String(t))), d("error");
30
29
  }
31
30
  })(), () => {
32
- n = !0, l(null), r?.dispose();
31
+ e = !0, l(null), r?.dispose();
33
32
  };
34
- }, [o, m]);
35
- let _ = n(async (e) => {
33
+ }, [
34
+ o,
35
+ m,
36
+ g
37
+ ]);
38
+ let _ = r(async (e) => {
36
39
  if (c === null) throw Error("predict() was called before the model finished loading. Gate on `isReady`.");
37
40
  return await c.predict(e);
38
- }, [c]), v = n(() => h((e) => e + 1), []);
41
+ }, [c]), v = r(() => h((e) => e + 1), []);
39
42
  return {
40
43
  predictor: c,
41
44
  status: u,
@@ -1 +1 @@
1
- {"version":3,"file":"use-tabular-predictor.js","names":[],"sources":["../../src/tabular/use-tabular-predictor.ts"],"sourcesContent":["/**\n * React binding for {@link TabularPredictor}.\n *\n * Loading a model is async, cancellable, and has to be undone on unmount —\n * three things every component that touches inference gets wrong the same\n * way. The hook owns that lifecycle so a component only deals with\n * `status` and `predict`.\n */\n\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { fetchModelBytes, type ModelCacheOptions } from \"./cache\";\nimport { TabularPredictor } from \"./predictor\";\nimport type {\n FeatureRow,\n TabularModelSource,\n TabularPrediction,\n TabularPredictorOptions,\n} from \"./types\";\n\n/** Lifecycle of the model behind the hook. */\nexport type TabularPredictorStatus = \"idle\" | \"loading\" | \"ready\" | \"error\";\n\n/** Options for {@link useTabularPredictor}. */\nexport interface UseTabularPredictorOptions extends TabularPredictorOptions {\n /**\n * Cache the model bytes on the device, so later loads work offline.\n *\n * On by default when the source is a URL: an app that runs inference in\n * the browser almost always wants it to keep working without a network,\n * and the failure mode of not caching only shows up in a tunnel.\n */\n readonly cache?: boolean | ModelCacheOptions;\n}\n\n/** What {@link useTabularPredictor} returns. */\nexport interface UseTabularPredictorResult {\n /** The loaded predictor, or `null` while loading or on error. */\n readonly predictor: TabularPredictor | null;\n /** Where the load is. */\n readonly status: TabularPredictorStatus;\n /** Why the load failed. */\n readonly error: Error | null;\n /** Whether the model is loaded and can answer. */\n readonly isReady: boolean;\n /**\n * Predict for a batch of rows.\n *\n * @throws When called before the model is ready — awaiting `isReady`\n * is the caller's job, and a silent empty result would hide the bug.\n */\n readonly predict: (rows: readonly FeatureRow[]) => Promise<TabularPrediction>;\n /** Load the model again, e.g. after a failure or a new version. */\n readonly reload: () => void;\n}\n\n/**\n * Load a tabular model and keep it for the component's lifetime.\n *\n * @example\n * ```tsx\n * function RiskWidget() {\n * const { predict, isReady } = useTabularPredictor(\"/models/risk-v3.onnx\");\n * const [score, setScore] = useState<number | null>(null);\n *\n * async function onSubmit(features: number[]) {\n * const { probabilities } = await predict([features]);\n * setScore(probabilities[0]?.[1] ?? null);\n * }\n *\n * return <button disabled={!isReady} onClick={() => onSubmit([1, 2, 3, 4])}>Score</button>;\n * }\n * ```\n *\n * @param source Model URL, or the bytes when the app already has them.\n * Pass `null` to hold off loading (a gate, a lazy tab).\n * @param options Predictor options plus caching.\n * @returns The predictor, its status, and a `predict` bound to it.\n */\nexport function useTabularPredictor(\n source: TabularModelSource | null,\n options: UseTabularPredictorOptions = {},\n): UseTabularPredictorResult {\n const [predictor, setPredictor] = useState<TabularPredictor | null>(null);\n const [status, setStatus] = useState<TabularPredictorStatus>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const [attempt, setAttempt] = useState(0);\n\n const optionsRef = useRef(options);\n\n useEffect(() => {\n optionsRef.current = options;\n });\n\n useEffect(() => {\n if (source === null) {\n setStatus(\"idle\");\n return;\n }\n\n let cancelled = false;\n let loaded: TabularPredictor | null = null;\n\n setStatus(\"loading\");\n setError(null);\n\n void (async () => {\n try {\n const current = optionsRef.current;\n const cache = current.cache ?? true;\n const bytes =\n typeof source === \"string\" && cache !== false\n ? await fetchModelBytes(source, typeof cache === \"object\" ? cache : {})\n : source;\n const created = await TabularPredictor.create(bytes, {\n providers: current.providers,\n warmup: current.warmup,\n sessionOptions: current.sessionOptions,\n });\n loaded = created;\n if (cancelled) {\n await created.dispose();\n return;\n }\n setPredictor(created);\n setStatus(\"ready\");\n } catch (caught) {\n if (cancelled) return;\n setPredictor(null);\n setError(caught instanceof Error ? caught : new Error(String(caught)));\n setStatus(\"error\");\n }\n })();\n\n return () => {\n cancelled = true;\n setPredictor(null);\n void loaded?.dispose();\n };\n }, [source, attempt]);\n\n const predict = useCallback(\n async (rows: readonly FeatureRow[]): Promise<TabularPrediction> => {\n if (predictor === null) {\n throw new Error(\n \"predict() was called before the model finished loading. \" +\n \"Gate on `isReady`.\",\n );\n }\n return await predictor.predict(rows);\n },\n [predictor],\n );\n\n const reload = useCallback(() => setAttempt((value) => value + 1), []);\n\n return {\n predictor,\n status,\n error,\n isReady: status === \"ready\" && predictor !== null,\n predict,\n reload,\n };\n}\n"],"mappings":";;;;AA+EA,SAAgB,EACZ,GACA,IAAsC,CAAC,GACd;CACzB,IAAM,CAAC,GAAW,KAAgB,EAAkC,IAAI,GAClE,CAAC,GAAQ,KAAa,EAAiC,MAAM,GAC7D,CAAC,GAAO,KAAY,EAAuB,IAAI,GAC/C,CAAC,GAAS,KAAc,EAAS,CAAC,GAElC,IAAa,EAAO,CAAO;CAMjC,AAJA,QAAgB;EACZ,EAAW,UAAU;CACzB,CAAC,GAED,QAAgB;EACZ,IAAI,MAAW,MAAM;GACjB,EAAU,MAAM;GAChB;EACJ;EAEA,IAAI,IAAY,IACZ,IAAkC;EAiCtC,OA/BA,EAAU,SAAS,GACnB,EAAS,IAAI,IAEP,YAAY;GACd,IAAI;IACA,IAAM,IAAU,EAAW,SACrB,IAAQ,EAAQ,SAAS,IACzB,IACF,OAAO,KAAW,YAAY,MAAU,KAClC,MAAM,EAAgB,GAAQ,OAAO,KAAU,WAAW,IAAQ,CAAC,CAAC,IACpE,GACJ,IAAU,MAAM,EAAiB,OAAO,GAAO;KACjD,WAAW,EAAQ;KACnB,QAAQ,EAAQ;KAChB,gBAAgB,EAAQ;IAC5B,CAAC;IAED,IADA,IAAS,GACL,GAAW;KACX,MAAM,EAAQ,QAAQ;KACtB;IACJ;IAEA,AADA,EAAa,CAAO,GACpB,EAAU,OAAO;GACrB,SAAS,GAAQ;IACb,IAAI,GAAW;IAGf,AAFA,EAAa,IAAI,GACjB,EAAS,aAAkB,QAAQ,IAAa,MAAM,OAAO,CAAM,CAAC,CAAC,GACrE,EAAU,OAAO;GACrB;EACJ,EAAA,CAAG,SAEU;GAGT,AAFA,IAAY,IACZ,EAAa,IAAI,GACjB,GAAa,QAAQ;EACzB;CACJ,GAAG,CAAC,GAAQ,CAAO,CAAC;CAEpB,IAAM,IAAU,EACZ,OAAO,MAA4D;EAC/D,IAAI,MAAc,MACd,MAAU,MACN,4EAEJ;EAEJ,OAAO,MAAM,EAAU,QAAQ,CAAI;CACvC,GACA,CAAC,CAAS,CACd,GAEM,IAAS,QAAkB,GAAY,MAAU,IAAQ,CAAC,GAAG,CAAC,CAAC;CAErE,OAAO;EACH;EACA;EACA;EACA,SAAS,MAAW,WAAW,MAAc;EAC7C;EACA;CACJ;AACJ"}
1
+ {"version":3,"file":"use-tabular-predictor.js","names":[],"sources":["../../src/tabular/use-tabular-predictor.ts"],"sourcesContent":["/**\n * React binding for {@link TabularPredictor}.\n *\n * Loading a model is async, cancellable, and has to be undone on unmount —\n * three things every component that touches inference gets wrong the same\n * way. The hook owns that lifecycle so a component only deals with\n * `status` and `predict`.\n */\n\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useLatestRef } from \"@/hooks/use-latest-ref\";\n\nimport { fetchModelBytes, type ModelCacheOptions } from \"./cache\";\nimport { TabularPredictor } from \"./predictor\";\nimport type {\n FeatureRow,\n TabularModelSource,\n TabularPrediction,\n TabularPredictorOptions,\n} from \"./types\";\n\n/** Lifecycle of the model behind the hook. */\nexport type TabularPredictorStatus = \"idle\" | \"loading\" | \"ready\" | \"error\";\n\n/** Options for {@link useTabularPredictor}. */\nexport interface UseTabularPredictorOptions extends TabularPredictorOptions {\n /**\n * Cache the model bytes on the device, so later loads work offline.\n *\n * On by default when the source is a URL: an app that runs inference in\n * the browser almost always wants it to keep working without a network,\n * and the failure mode of not caching only shows up in a tunnel.\n */\n readonly cache?: boolean | ModelCacheOptions;\n}\n\n/** What {@link useTabularPredictor} returns. */\nexport interface UseTabularPredictorResult {\n /** The loaded predictor, or `null` while loading or on error. */\n readonly predictor: TabularPredictor | null;\n /** Where the load is. */\n readonly status: TabularPredictorStatus;\n /** Why the load failed. */\n readonly error: Error | null;\n /** Whether the model is loaded and can answer. */\n readonly isReady: boolean;\n /**\n * Predict for a batch of rows.\n *\n * @throws When called before the model is ready — awaiting `isReady`\n * is the caller's job, and a silent empty result would hide the bug.\n */\n readonly predict: (rows: readonly FeatureRow[]) => Promise<TabularPrediction>;\n /** Load the model again, e.g. after a failure or a new version. */\n readonly reload: () => void;\n}\n\n/**\n * Load a tabular model and keep it for the component's lifetime.\n *\n * @example\n * ```tsx\n * function RiskWidget() {\n * const { predict, isReady } = useTabularPredictor(\"/models/risk-v3.onnx\");\n * const [score, setScore] = useState<number | null>(null);\n *\n * async function onSubmit(features: number[]) {\n * const { probabilities } = await predict([features]);\n * setScore(probabilities[0]?.[1] ?? null);\n * }\n *\n * return <button disabled={!isReady} onClick={() => onSubmit([1, 2, 3, 4])}>Score</button>;\n * }\n * ```\n *\n * @param source Model URL, or the bytes when the app already has them.\n * Pass `null` to hold off loading (a gate, a lazy tab).\n * @param options Predictor options plus caching.\n * @returns The predictor, its status, and a `predict` bound to it.\n */\nexport function useTabularPredictor(\n source: TabularModelSource | null,\n options: UseTabularPredictorOptions = {},\n): UseTabularPredictorResult {\n const [predictor, setPredictor] = useState<TabularPredictor | null>(null);\n const [status, setStatus] = useState<TabularPredictorStatus>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const [attempt, setAttempt] = useState(0);\n\n const optionsRef = useLatestRef(options);\n\n useEffect(() => {\n if (source === null) {\n setStatus(\"idle\");\n return;\n }\n\n let cancelled = false;\n let loaded: TabularPredictor | null = null;\n\n setStatus(\"loading\");\n setError(null);\n\n void (async () => {\n try {\n const current = optionsRef.current;\n const cache = current.cache ?? true;\n const bytes =\n typeof source === \"string\" && cache !== false\n ? await fetchModelBytes(source, typeof cache === \"object\" ? cache : {})\n : source;\n const created = await TabularPredictor.create(bytes, {\n providers: current.providers,\n warmup: current.warmup,\n sessionOptions: current.sessionOptions,\n });\n loaded = created;\n if (cancelled) {\n await created.dispose();\n return;\n }\n setPredictor(created);\n setStatus(\"ready\");\n } catch (caught) {\n if (cancelled) return;\n setPredictor(null);\n setError(caught instanceof Error ? caught : new Error(String(caught)));\n setStatus(\"error\");\n }\n })();\n\n return () => {\n cancelled = true;\n setPredictor(null);\n void loaded?.dispose();\n };\n }, [source, attempt, optionsRef]);\n\n const predict = useCallback(\n async (rows: readonly FeatureRow[]): Promise<TabularPrediction> => {\n if (predictor === null) {\n throw new Error(\n \"predict() was called before the model finished loading. \" +\n \"Gate on `isReady`.\",\n );\n }\n return await predictor.predict(rows);\n },\n [predictor],\n );\n\n const reload = useCallback(() => setAttempt((value) => value + 1), []);\n\n return {\n predictor,\n status,\n error,\n isReady: status === \"ready\" && predictor !== null,\n predict,\n reload,\n };\n}\n"],"mappings":";;;;;AAgFA,SAAgB,EACZ,GACA,IAAsC,CAAC,GACd;CACzB,IAAM,CAAC,GAAW,KAAgB,EAAkC,IAAI,GAClE,CAAC,GAAQ,KAAa,EAAiC,MAAM,GAC7D,CAAC,GAAO,KAAY,EAAuB,IAAI,GAC/C,CAAC,GAAS,KAAc,EAAS,CAAC,GAElC,IAAa,EAAa,CAAO;CAEvC,QAAgB;EACZ,IAAI,MAAW,MAAM;GACjB,EAAU,MAAM;GAChB;EACJ;EAEA,IAAI,IAAY,IACZ,IAAkC;EAiCtC,OA/BA,EAAU,SAAS,GACnB,EAAS,IAAI,IAEP,YAAY;GACd,IAAI;IACA,IAAM,IAAU,EAAW,SACrB,IAAQ,EAAQ,SAAS,IACzB,IACF,OAAO,KAAW,YAAY,MAAU,KAClC,MAAM,EAAgB,GAAQ,OAAO,KAAU,WAAW,IAAQ,CAAC,CAAC,IACpE,GACJ,IAAU,MAAM,EAAiB,OAAO,GAAO;KACjD,WAAW,EAAQ;KACnB,QAAQ,EAAQ;KAChB,gBAAgB,EAAQ;IAC5B,CAAC;IAED,IADA,IAAS,GACL,GAAW;KACX,MAAM,EAAQ,QAAQ;KACtB;IACJ;IAEA,AADA,EAAa,CAAO,GACpB,EAAU,OAAO;GACrB,SAAS,GAAQ;IACb,IAAI,GAAW;IAGf,AAFA,EAAa,IAAI,GACjB,EAAS,aAAkB,QAAQ,IAAa,MAAM,OAAO,CAAM,CAAC,CAAC,GACrE,EAAU,OAAO;GACrB;EACJ,EAAA,CAAG,SAEU;GAGT,AAFA,IAAY,IACZ,EAAa,IAAI,GACjB,GAAa,QAAQ;EACzB;CACJ,GAAG;EAAC;EAAQ;EAAS;CAAU,CAAC;CAEhC,IAAM,IAAU,EACZ,OAAO,MAA4D;EAC/D,IAAI,MAAc,MACd,MAAU,MACN,4EAEJ;EAEJ,OAAO,MAAM,EAAU,QAAQ,CAAI;CACvC,GACA,CAAC,CAAS,CACd,GAEM,IAAS,QAAkB,GAAY,MAAU,IAAQ,CAAC,GAAG,CAAC,CAAC;CAErE,OAAO;EACH;EACA;EACA;EACA,SAAS,MAAW,WAAW,MAAc;EAC7C;EACA;CACJ;AACJ"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});/* empty css */const ee=require("./utils/cn.cjs"),te=require("./components/Accordion/Accordion.cjs"),ne=require("./components/Alert/Alert.cjs"),re=require("./components/AppBar/AppBar.cjs"),ie=require("./hooks/use-breakpoint.cjs"),ae=require("./components/AppShell/AppShell.cjs"),oe=require("./components/AspectRatio/AspectRatio.cjs"),se=require("./components/Avatar/Avatar.cjs"),ce=require("./components/AvatarGroup/AvatarGroup.cjs"),le=require("./components/Badge/Badge.cjs"),ue=require("./components/Banner/Banner.cjs"),de=require("./components/BottomNavigation/BottomNavigation.cjs"),fe=require("./components/BottomSheet/BottomSheet.cjs"),pe=require("./components/Breadcrumbs/Breadcrumbs.cjs"),me=require("./components/Button/Button.cjs"),he=require("./components/Card/Card.cjs"),ge=require("./components/Center/Center.cjs"),_e=require("./components/Checkbox/Checkbox.cjs"),ve=require("./components/ChipInput/ChipInput.cjs"),ye=require("./components/Combobox/Combobox.cjs"),be=require("./components/Modal/Modal.cjs"),xe=require("./components/ConfirmDialog/ConfirmDialog.cjs"),Se=require("./components/Input/Input.cjs"),Ce=require("./components/DatePicker/DatePicker.cjs"),we=require("./components/Divider/Divider.cjs"),Te=require("./components/Drawer/Drawer.cjs"),Ee=require("./components/DropdownMenu/DropdownMenu.cjs"),De=require("./components/Dropzone/Dropzone.cjs"),Oe=require("./components/EmptyState/EmptyState.cjs"),ke=require("./components/ErrorState/ErrorState.cjs"),Ae=require("./components/FileUpload/FileUpload.cjs"),e=require("./components/Form/Form.cjs"),t=require("./components/Layout/Layout.cjs"),je=require("./hooks/use-before-install-prompt.cjs"),Me=require("./components/InstallBanner/InstallBanner.cjs"),Ne=require("./components/InstallButton/InstallButton.cjs"),Pe=require("./hooks/use-debounce.cjs"),Fe=require("./hooks/use-pagination.cjs"),Ie=require("./hooks/use-client-filter.cjs"),Le=require("./hooks/use-media-query.cjs"),Re=require("./hooks/use-event-listener.cjs"),ze=require("./hooks/use-local-storage.cjs"),Be=require("./hooks/use-toggle.cjs"),Ve=require("./hooks/use-async.cjs"),He=require("./hooks/use-online.cjs"),Ue=require("./hooks/use-document-visibility.cjs"),We=require("./hooks/use-intersection-observer.cjs"),Ge=require("./hooks/use-resize-observer.cjs"),Ke=require("./hooks/use-clipboard.cjs"),qe=require("./hooks/use-keyboard-shortcut.cjs"),Je=require("./hooks/use-idle.cjs"),Ye=require("./hooks/use-geolocation.cjs"),Xe=require("./hooks/use-scroll-lock.cjs"),Ze=require("./hooks/use-focus-trap.cjs"),n=require("./hooks/use-announce.cjs"),Qe=require("./hooks/use-stable-callback.cjs"),$e=require("./hooks/use-latest-ref.cjs"),et=require("./hooks/use-deep-memo.cjs"),tt=require("./hooks/use-previous.cjs"),nt=require("./hooks/use-interval.cjs"),rt=require("./hooks/use-timeout.cjs"),it=require("./hooks/use-throttle.cjs"),at=require("./hooks/use-window-size.cjs"),ot=require("./hooks/use-hover.cjs"),st=require("./hooks/use-long-press.cjs"),ct=require("./hooks/use-disclosure.cjs"),lt=require("./hooks/use-list-state.cjs"),ut=require("./hooks/use-counter.cjs"),dt=require("./hooks/use-countdown.cjs"),ft=require("./hooks/use-typewriter.cjs"),pt=require("./hooks/use-document-title.cjs"),mt=require("./hooks/use-favicon.cjs"),ht=require("./hooks/use-map.cjs"),gt=require("./hooks/use-set.cjs"),_t=require("./hooks/use-queue.cjs"),vt=require("./hooks/use-click-outside.cjs"),yt=require("./hooks/use-is-first-render.cjs"),bt=require("./hooks/use-object-url.cjs"),xt=require("./hooks/use-long-press-handlers.cjs"),r=require("./hooks/pwa-env.cjs"),St=require("./hooks/use-install-prompt.cjs"),i=require("./sw/register-service-worker.cjs"),Ct=require("./hooks/use-service-worker-update.cjs"),a=require("./hooks/use-storage-estimate.cjs"),wt=require("./hooks/use-sortable.cjs"),Tt=require("./hooks/use-scroll-overflow.cjs"),Et=require("./hooks/use-media-permission.cjs"),Dt=require("./hooks/use-media-devices.cjs"),Ot=require("./components/OfflineIndicator/OfflineIndicator.cjs"),kt=require("./offline/use-offline-sync.cjs"),At=require("./components/VisuallyHidden/VisuallyHidden.cjs"),jt=require("./components/SyncStatusBadge/SyncStatusBadge.cjs"),Mt=require("./components/UpdatePrompt/UpdatePrompt.cjs"),Nt=require("./components/Kanban/Kanban.cjs"),Pt=require("./components/Kbd/Kbd.cjs"),Ft=require("./components/ModalsManager/ModalsManager.cjs"),It=require("./components/Navbar/Navbar.cjs"),Lt=require("./components/NProgress/NProgress.cjs"),Rt=require("./components/Page/Page.cjs"),zt=require("./components/Pagination/Pagination.cjs"),Bt=require("./components/PasswordInput/PasswordInput.cjs"),Vt=require("./components/PinInput/PinInput.cjs"),Ht=require("./components/Popover/Popover.cjs"),Ut=require("./components/Progress/Progress.cjs"),Wt=require("./components/Radio/Radio.cjs"),Gt=require("./components/RangeSlider/RangeSlider.cjs"),Kt=require("./components/RatingStars/RatingStars.cjs"),o=require("./components/Responsive/Responsive.cjs"),qt=require("./components/SafeArea/SafeArea.cjs"),Jt=require("./components/SearchBar/SearchBar.cjs"),Yt=require("./components/SegmentedControl/SegmentedControl.cjs"),Xt=require("./components/Select/Select.cjs"),Zt=require("./components/Sidebar/Sidebar.cjs"),Qt=require("./components/Skeleton/Skeleton.cjs"),$t=require("./components/Spacer/Spacer.cjs"),en=require("./components/Spinner/Spinner.cjs"),tn=require("./components/Stat/Stat.cjs"),nn=require("./components/Stepper/Stepper.cjs"),s=require("./utils/numbers.cjs"),rn=require("./components/StepperInput/StepperInput.cjs"),an=require("./components/Switch/Switch.cjs"),on=require("./components/Tag/Tag.cjs"),sn=require("./components/Table/Table.cjs"),cn=require("./components/Tabs/Tabs.cjs"),ln=require("./components/Textarea/Textarea.cjs"),un=require("./components/Timeline/Timeline.cjs"),dn=require("./components/Tooltip/Tooltip.cjs"),c=require("./components/Toast/ToastProvider.cjs"),fn=require("./components/ImageCropper/ImageCropper.cjs"),pn=require("./components/Sparkline/Sparkline.cjs"),mn=require("./components/Scheduler/Scheduler.cjs"),hn=require("./utils/relative-time.cjs"),gn=require("./components/NotificationCenter/NotificationCenter.cjs"),_n=require("./components/NotificationCenter/use-notification-inbox.cjs"),vn=require("./components/VirtualList/VirtualList.cjs"),yn=require("./utils/compare-values.cjs"),bn=require("./components/VirtualTable/VirtualTable.cjs"),l=require("./components/QRCode/qr-encode.cjs"),xn=require("./components/QRCode/QRCode.cjs"),Sn=require("./components/CopyButton/CopyButton.cjs"),Cn=require("./components/CodeBlock/CodeBlock.cjs"),wn=require("./components/RelativeTime/RelativeTime.cjs"),Tn=require("./components/Money/Money.cjs"),En=require("./components/TreeView/TreeView.cjs"),Dn=require("./components/TruncateText/TruncateText.cjs"),On=require("./components/Portal/Portal.cjs"),kn=require("./components/ClickOutside/ClickOutside.cjs"),An=require("./components/ConditionalWrapper/ConditionalWrapper.cjs"),jn=require("./components/For/For.cjs"),Mn=require("./components/ErrorText/ErrorText.cjs"),Nn=require("./components/Image/Image.cjs"),Pn=require("./components/DataList/DataList.cjs"),Fn=require("./components/DescriptionList/DescriptionList.cjs"),In=require("./components/Toggle/Toggle.cjs"),u=require("./components/ToggleGroup/ToggleGroup.cjs"),Ln=require("./components/Label/Label.cjs"),Rn=require("./components/Collapsible/Collapsible.cjs"),zn=require("./components/ContextMenu/ContextMenu.cjs"),Bn=require("./components/HoverCard/HoverCard.cjs"),Vn=require("./components/Command/Command.cjs"),Hn=require("./components/ScrollArea/ScrollArea.cjs"),Un=require("./components/Resizable/Resizable.cjs"),Wn=require("./components/Calendar/Calendar.cjs"),Gn=require("./components/Slider/Slider.cjs"),Kn=require("./components/MultiSelect/MultiSelect.cjs"),qn=require("./components/DateRangePicker/DateRangePicker.cjs"),Jn=require("./components/NavigationMenu/NavigationMenu.cjs"),Yn=require("./components/Menubar/Menubar.cjs"),Xn=require("./components/Carousel/Carousel.cjs"),Zn=require("./components/DataTable/DataTable.cjs"),Qn=require("./components/ListTile/ListTile.cjs"),$n=require("./components/FloatingActionButton/FloatingActionButton.cjs"),er=require("./components/NavigationRail/NavigationRail.cjs"),tr=require("./components/TimePicker/TimePicker.cjs"),nr=require("./components/RefreshIndicator/RefreshIndicator.cjs"),rr=require("./components/Wizard/Wizard.cjs"),ir=require("./components/Lightbox/Lightbox.cjs"),ar=require("./components/SignaturePad/SignaturePad.cjs"),or=require("./components/Chat/ChatComposer.cjs"),sr=require("./components/Chat/Chat.cjs"),cr=require("./audio/audio-output.cjs"),lr=require("./components/AudioPlayer/AudioPlayer.cjs"),ur=require("./capture/media-recorder.cjs"),d=require("./audio/audio-recorder.cjs"),dr=require("./audio/level-meter.cjs"),fr=require("./audio/use-audio-recorder.cjs"),pr=require("./audio/media-access.cjs"),mr=require("./audio/use-microphone.cjs"),hr=require("./audio/wav.cjs"),gr=require("./components/AudioRecorder/AudioRecorder.cjs"),f=require("./capture/barcode.cjs"),_r=require("./capture/use-torch.cjs"),vr=require("./capture/use-barcode-scanner.cjs"),yr=require("./components/BarcodeScanner/BarcodeScanner.cjs"),p=require("./components/AIChat/ai-chat-turns.cjs"),br=require("./components/AIChat/AIChatComposer.cjs"),xr=require("./components/Markdown/Markdown.cjs"),Sr=require("./components/AIChat/AIChatTurn.cjs"),Cr=require("./components/AIChat/AIChat.cjs"),wr=require("./components/Transfer/Transfer.cjs"),Tr=require("./components/Masonry/Masonry.cjs"),Er=require("./components/Tour/Tour.cjs"),Dr=require("./components/BarList/bar-list-model.cjs"),Or=require("./components/BarList/BarList.cjs"),m=require("./components/FilterBar/filter-model.cjs"),kr=require("./components/FilterBar/FilterBar.cjs"),Ar=require("./components/FilterBar/filter-apply.cjs"),jr=require("./components/FilterBar/filter-query.cjs"),h=require("./utils/format.cjs"),Mr=require("./utils/storage.cjs"),g=require("./utils/compressed-storage.cjs"),_=require("./utils/strings.cjs"),v=require("./utils/arrays.cjs"),y=require("./utils/objects.cjs"),b=require("./utils/guards.cjs"),x=require("./utils/functions.cjs"),Nr=require("./utils/promises.cjs"),Pr=require("./utils/ids.cjs"),Fr=require("./utils/xlsx.cjs"),Ir=require("./share/share.cjs"),Lr=require("./share/share-or-download.cjs"),Rr=require("./utils/csv.cjs"),zr=require("./http/build-url.cjs"),S=require("./http/errors.cjs"),Br=require("./http/retry.cjs"),Vr=require("./http/api-client.cjs"),C=require("./http/describe-api-error.cjs"),Hr=require("./i18n/create-i18n.cjs"),w=require("./i18n/I18nProvider.cjs"),Ur=require("./http/use-describe-api-error.cjs"),Wr=require("./http/parse-response.cjs"),Gr=require("./http/upload-with-progress.cjs"),Kr=require("./http/idempotency.cjs"),T=require("./http/resumable-upload.cjs"),qr=require("./http/use-poll.cjs"),Jr=require("./auth/create-auth-store.cjs"),Yr=require("./auth/AuthGuard.cjs"),Xr=require("./auth/jwt.cjs"),Zr=require("./auth/lazy-with-retry.cjs"),Qr=require("./auth/refresh-queue.cjs"),E=require("./auth/passkey.cjs"),D=require("./auth/use-passkey.cjs"),$r=require("./auth/create-tempest-auth.cjs"),ei=require("./access/access-control-context.cjs"),ti=require("./access/use-can.cjs"),ni=require("./access/Can.cjs"),ri=require("./access/create-role-access-control.cjs"),ii=require("./access/permissions-from-token.cjs"),ai=require("./oauth/GoogleSignIn.cjs"),oi=require("./oauth/use-oauth-callback.cjs"),O=require("./query/constants.cjs"),si=require("./query/create-query-keys.cjs"),ci=require("./query/retry-policy.cjs"),li=require("./query/QueryProvider.cjs"),k=require("./query/pagination.cjs"),ui=require("./query/use-paginated-query.cjs"),di=require("./query/use-cursor-query.cjs"),fi=require("./query/use-offline-mutation.cjs"),A=require("./query/optimistic.cjs"),pi=require("./offline/create-offline-store.cjs"),mi=require("./query/offline-persistence.cjs"),hi=require("./data/create-data-provider.cjs"),j=require("./data/data-provider-context.cjs"),M=require("./data/use-resource.cjs"),gi=require("./router/RouteGuard.cjs"),N=require("./router/AppRouter.cjs"),_i=require("./store/create-store.cjs"),vi=require("./store/create-selectors.cjs"),P=require("./theme/ThemeProvider.cjs"),yi=require("./error-boundary/ErrorBoundary.cjs"),bi=require("./app/AppProviders.cjs"),xi=require("./sse/create-event-stream.cjs"),Si=require("./sse/use-event-stream.cjs"),F=require("./push/utils.cjs"),I=require("./push/web-push-client.cjs"),Ci=require("./push/use-push-subscription.cjs"),L=require("./sw/create-push-handler.cjs"),R=require("./sw/cache.cjs"),wi=require("./sw/background-sync.cjs"),Ti=require("./sw/periodic-sync.cjs"),Ei=require("./sw/cache-inspect.cjs"),z=require("./audio/audio-player.cjs"),Di=require("./audio/use-audio.cjs"),Oi=require("./audio/sfx-pool.cjs"),ki=require("./audio/use-sfx-pool.cjs"),B=require("./capture/video-recorder.cjs"),Ai=require("./capture/use-video-recorder.cjs"),ji=require("./capture/use-screen-capture.cjs"),Mi=require("./capture/use-speech-recognition.cjs"),Ni=require("./offline/create-offline-sync.cjs"),Pi=require("./offline/conflict.cjs"),Fi=require("./error-boundary/use-error-handler.cjs"),Ii=require("./forms/FormField.cjs"),Li=require("./forms/validate-form.cjs"),Ri=require("./forms/zod-resolver.cjs"),zi=require("./forms/use-zod-form.cjs"),V=require("./forms/br-validators.cjs"),H=require("./forms/masked-inputs.cjs"),Bi=require("./forms/use-viacep.cjs"),Vi=require("./ws/create-web-socket.cjs"),Hi=require("./ws/use-web-socket.cjs"),U=require("./geo/types.cjs"),W=require("./geo/distance.cjs"),G=require("./geo/estimate.cjs"),K=require("./geo/bounds.cjs"),q=require("./geo/projection.cjs"),Ui=require("./geo/routing.cjs"),Wi=require("./geo/create-position-tracker.cjs"),Gi=require("./geo/use-position-tracker.cjs"),Ki=require("./geo/TrajectoryMap.cjs"),qi=require("./theme/apply-theme.cjs"),J=require("./theme/color.cjs"),Ji=require("./theme/create-theme.cjs"),Y=require("./theme/theme-presets.cjs"),Yi=require("./theme/initial-theme.cjs"),Xi=require("./logger/logger.cjs"),Zi=require("./telemetry/TelemetryProvider.cjs"),Qi=require("./telemetry/console-adapter.cjs"),$i=require("./telemetry/sentry-adapter.cjs"),ea=require("./telemetry/posthog-adapter.cjs"),X=require("./feature-flags/FeatureFlagsProvider.cjs"),ta=require("./feature-flags/in-memory-adapter.cjs"),na=require("./feature-flags/growthbook-adapter.cjs"),ra=require("./feature-flags/launchdarkly-adapter.cjs"),Z=require("./charts/scales.cjs"),ia=require("./perf/cache-size.cjs"),aa=require("./perf/device.cjs"),oa=require("./perf/format.cjs"),sa=require("./perf/profiler.cjs");let Q=require("react-router"),$=require("react-hook-form");exports.AIChat=Cr.AIChat,exports.AIChatComposer=br.AIChatComposer,exports.AIChatTurn=Sr.AIChatTurn,exports.ALL_BARCODE_FORMATS=f.ALL_BARCODE_FORMATS,exports.API_ERROR_OFFLINE_KEY=C.API_ERROR_OFFLINE_KEY,exports.API_ERROR_VALIDATION_KEY=C.API_ERROR_VALIDATION_KEY,exports.AUDIO_MIME_CANDIDATES=d.AUDIO_MIME_CANDIDATES,exports.AccessControlProvider=ei.AccessControlProvider,exports.Accordion=te.Accordion,exports.Alert=ne.Alert,exports.AppBar=re.AppBar,exports.AppProviders=bi.AppProviders,exports.AppRouter=N.AppRouter,exports.AppShell=ae.AppShell,exports.AspectRatio=oe.AspectRatio,exports.AudioPlayer=lr.AudioPlayer,exports.AudioRecorder=gr.AudioRecorder,exports.AuthGuard=Yr.AuthGuard,exports.Avatar=se.Avatar,exports.AvatarGroup=ce.AvatarGroup,exports.BREAKPOINTS=ie.BREAKPOINTS,exports.Badge=le.Badge,exports.Banner=ue.Banner,exports.BarList=Or.BarList,exports.BarcodeScanner=yr.BarcodeScanner,exports.BottomNavigation=de.BottomNavigation,exports.BottomSheet=fe.BottomSheet,exports.Breadcrumbs=pe.Breadcrumbs,Object.defineProperty(exports,"BrowserRouter",{enumerable:!0,get:function(){return Q.BrowserRouter}}),exports.Button=me.Button,exports.CACHE_TIME=O.CACHE_TIME,exports.CEPInput=H.CEPInput,exports.CNPJInput=H.CNPJInput,exports.CPFInput=H.CPFInput,exports.Calendar=Wn.Calendar,exports.Can=ni.Can,exports.Card=he.Card,exports.Carousel=Xn.Carousel,exports.Center=ge.Center,exports.Chat=sr.Chat,exports.ChatComposer=or.ChatComposer,exports.Checkbox=_e.Checkbox,exports.ChipInput=ve.ChipInput,exports.ClickOutside=kn.ClickOutside,exports.CodeBlock=Cn.CodeBlock,exports.Collapsible=Rn.Collapsible,exports.Combobox=ye.Combobox,exports.Command=Vn.Command,exports.ConditionalWrapper=An.ConditionalWrapper,exports.ConfirmDialog=xe.ConfirmDialog,exports.Container=t.Container,exports.ContextMenu=zn.ContextMenu,Object.defineProperty(exports,"Controller",{enumerable:!0,get:function(){return $.Controller}}),exports.CopyButton=Sn.CopyButton,exports.DEFAULT_API_ERROR_STRINGS=C.DEFAULT_API_ERROR_STRINGS,exports.DEFAULT_BARCODE_FORMATS=f.DEFAULT_BARCODE_FORMATS,exports.DEFAULT_CAR_SPEED_KMH=G.DEFAULT_CAR_SPEED_KMH,exports.DEFAULT_CHUNK_SIZE=T.DEFAULT_CHUNK_SIZE,exports.DEFAULT_CIRCUITY_FACTOR=G.DEFAULT_CIRCUITY_FACTOR,exports.DEFAULT_MODE_DURATION_FACTORS=G.DEFAULT_MODE_DURATION_FACTORS,exports.DEFAULT_PUB_KEY_CRED_PARAMS=E.DEFAULT_PUB_KEY_CRED_PARAMS,exports.DIVERGING_STEP_COUNT=Z.DIVERGING_STEP_COUNT,exports.DataList=Pn.DataList,exports.DataTable=Zn.DataTable,exports.DatePicker=Ce.DatePicker,exports.DateRangePicker=qn.DateRangePicker,exports.DescriptionList=Fn.DescriptionList,exports.Divider=we.Divider,exports.Drawer=Te.Drawer,exports.DropdownMenu=Ee.DropdownMenu,exports.Dropzone=De.Dropzone,exports.EARTH_RADIUS_KM=W.EARTH_RADIUS_KM,exports.EmptyState=Oe.EmptyState,exports.ErrorBoundary=yi.ErrorBoundary,exports.ErrorState=ke.ErrorState,exports.ErrorText=Mn.ErrorText,exports.FeatureFlagsProvider=X.FeatureFlagsProvider,exports.FileUpload=Ae.FileUpload,exports.FilterBar=kr.FilterBar,exports.FloatingActionButton=$n.FloatingActionButton,exports.For=jn.For,exports.Form=e.Form,exports.FormActions=e.FormActions,exports.FormField=Ii.FormField,Object.defineProperty(exports,"FormProvider",{enumerable:!0,get:function(){return $.FormProvider}}),exports.FormRow=e.FormRow,exports.FormSection=e.FormSection,exports.GoogleSignIn=ai.GoogleSignIn,exports.Grid=t.Grid,Object.defineProperty(exports,"HashRouter",{enumerable:!0,get:function(){return Q.HashRouter}}),exports.Hide=o.Hide,exports.HoverCard=Bn.HoverCard,exports.I18nProvider=w.I18nProvider,exports.Image=Nn.Image,exports.ImageCropper=fn.ImageCropper,exports.Input=Se.Input,exports.InstallBanner=Me.InstallBanner,exports.InstallButton=Ne.InstallButton,exports.Kanban=Nt.Kanban,exports.Kbd=Pt.Kbd,exports.Label=Ln.Label,exports.Lightbox=ir.Lightbox,Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return Q.Link}}),exports.ListTile=Qn.ListTile,exports.Markdown=xr.Markdown,exports.Masonry=Tr.Masonry,Object.defineProperty(exports,"MemoryRouter",{enumerable:!0,get:function(){return Q.MemoryRouter}}),exports.Menubar=Yn.Menubar,exports.Modal=be.Modal,exports.ModalsProvider=Ft.ModalsProvider,exports.Money=Tn.Money,exports.MoneyInput=H.MoneyInput,exports.MultiSelect=Kn.MultiSelect,exports.NProgressBar=Lt.NProgressBar,Object.defineProperty(exports,"NavLink",{enumerable:!0,get:function(){return Q.NavLink}}),exports.Navbar=It.Navbar,Object.defineProperty(exports,"Navigate",{enumerable:!0,get:function(){return Q.Navigate}}),exports.NavigationMenu=Jn.NavigationMenu,exports.NavigationRail=er.NavigationRail,exports.NotificationCenter=gn.NotificationCenter,exports.ORDINAL_START_STEP=Z.ORDINAL_START_STEP,exports.OfflineIndicator=Ot.OfflineIndicator,Object.defineProperty(exports,"Outlet",{enumerable:!0,get:function(){return Q.Outlet}}),exports.Page=Rt.Page,exports.Pagination=zt.Pagination,exports.PasskeyError=E.PasskeyError,exports.PasswordInput=Bt.PasswordInput,exports.PhoneInput=H.PhoneInput,exports.PinInput=Vt.PinInput,exports.Popover=Ht.Popover,exports.Portal=On.Portal,exports.Progress=Ut.Progress,exports.QRCapacityError=l.QRCapacityError,exports.QRCode=xn.QRCode,exports.QueryProvider=li.QueryProvider,exports.REFETCH_TIME=O.REFETCH_TIME,exports.Radio=Wt.Radio,exports.RadioGroup=Wt.RadioGroup,exports.RangeSlider=Gt.RangeSlider,exports.RatingStars=Kt.RatingStars,exports.RefreshIndicator=nr.RefreshIndicator,exports.RelativeTime=wn.RelativeTime,exports.Resizable=Un.Resizable,Object.defineProperty(exports,"Route",{enumerable:!0,get:function(){return Q.Route}}),exports.RouteGuard=gi.RouteGuard,Object.defineProperty(exports,"Routes",{enumerable:!0,get:function(){return Q.Routes}}),exports.SEQUENTIAL_STEP_COUNT=Z.SEQUENTIAL_STEP_COUNT,exports.STALE_TIME=O.STALE_TIME,exports.SafeArea=qt.SafeArea,exports.Scheduler=mn.Scheduler,exports.ScrollArea=Hn.ScrollArea,exports.SearchBar=Jt.SearchBar,exports.SegmentedControl=Yt.SegmentedControl,exports.Select=Xt.Select,exports.Show=o.Show,exports.Sidebar=Zt.Sidebar,exports.SignaturePad=ar.SignaturePad,exports.Skeleton=Qt.Skeleton,exports.Slider=Gn.Slider,exports.Spacer=$t.Spacer,exports.Sparkline=pn.Sparkline,exports.Spinner=en.Spinner,exports.Stack=t.Stack,exports.Stat=tn.Stat,exports.Stepper=nn.Stepper,exports.StepperInput=rn.StepperInput,exports.Switch=an.Switch,exports.SyncStatusBadge=jt.SyncStatusBadge,exports.Table=sn.Table,exports.Tabs=cn.Tabs,exports.Tag=on.Tag,exports.TelemetryProvider=Zi.TelemetryProvider,exports.TempestApiError=S.TempestApiError,exports.TempestDataProvider=j.TempestDataProvider,exports.Textarea=ln.Textarea,exports.ThemeProvider=P.ThemeProvider,exports.TimePicker=tr.TimePicker,exports.Timeline=un.Timeline,exports.ToastProvider=c.ToastProvider,exports.Toggle=In.Toggle,exports.ToggleGroup=u.ToggleGroup,exports.ToggleGroupItem=u.ToggleGroupItem,exports.Tooltip=dn.Tooltip,exports.Tour=Er.Tour,exports.TrajectoryMap=Ki.TrajectoryMap,exports.Transfer=wr.Transfer,exports.TreeView=En.TreeView,exports.TruncateText=Dn.TruncateText,exports.UpdatePrompt=Mt.UpdatePrompt,exports.VirtualList=vn.VirtualList,exports.VirtualTable=bn.VirtualTable,exports.VisuallyHidden=At.VisuallyHidden,exports.WebPushClient=I.WebPushClient,exports.WebPushPermissionDeniedError=I.WebPushPermissionDeniedError,exports.WebPushUnsupportedError=I.WebPushUnsupportedError,exports.Wizard=rr.Wizard,exports.aiChatStrings=p.aiChatStrings,exports.announce=n.announce,exports.applyFilters=Ar.applyFilters,exports.applyKanbanMove=Nt.applyKanbanMove,exports.applyTheme=qi.applyTheme,exports.assertNever=b.assertNever,exports.base64UrlToBytes=E.base64UrlToBytes,exports.bearingDeg=W.bearingDeg,exports.blobToWav=hr.blobToWav,exports.boundingBox=K.boundingBox,exports.boundsCenter=K.boundsCenter,exports.buildApiUrl=zr.buildApiUrl,exports.buildBarListRows=Dr.buildBarListRows,exports.buildOpenInChromeIntent=r.buildOpenInChromeIntent,exports.bytesToBase64Url=E.bytesToBase64Url,exports.cachedResponseBytes=ia.cachedResponseBytes,exports.camelCase=_.camelCase,exports.capitalize=_.capitalize,exports.chunk=v.chunk,exports.clamp=s.clamp,exports.clampLatitude=U.clampLatitude,exports.classifyPasskeyError=E.classifyPasskeyError,exports.clearAnnouncer=n.clearAnnouncer,exports.clearCaches=Ei.clearCaches,exports.cn=ee.cn,exports.compareValues=yn.compareValues,exports.compressToString=g.compressToString,exports.compressedStorage=g.compressedStorage,exports.compressedStorageCodec=g.compressedStorageCodec,exports.consoleSink=Xi.consoleSink,exports.consoleTelemetryAdapter=Qi.consoleTelemetryAdapter,exports.contrastRatio=J.contrastRatio,exports.createApiClient=Vr.createApiClient,exports.createAudioPlayer=z.createAudioPlayer,exports.createAudioRecorder=d.createAudioRecorder,exports.createAuthStore=Jr.createAuthStore,exports.createBarcodeDetector=f.createBarcodeDetector,exports.createColorScale=J.createColorScale,exports.createDataProvider=hi.createDataProvider,exports.createEventStream=xi.createEventStream,exports.createGrowthBookFeatureFlagsAdapter=na.createGrowthBookFeatureFlagsAdapter,exports.createI18n=Hr.createI18n,exports.createInMemoryFlags=ta.createInMemoryFlags,exports.createInferenceProfiler=sa.createInferenceProfiler,exports.createLaunchDarklyFeatureFlagsAdapter=ra.createLaunchDarklyFeatureFlagsAdapter,exports.createLevelMeter=dr.createLevelMeter,exports.createLocalUploadStorage=T.createLocalUploadStorage,exports.createLogger=Xi.createLogger,exports.createMediaRecorder=ur.createMediaRecorder,exports.createOSRMBackend=Ui.createOSRMBackend,exports.createOfflineStore=pi.createOfflineStore,exports.createOfflineSync=Ni.createOfflineSync,exports.createPartialResponse=R.createPartialResponse,exports.createPasskeyClient=E.createPasskeyClient,exports.createPositionTracker=Wi.createPositionTracker,exports.createPostHogTelemetryAdapter=ea.createPostHogTelemetryAdapter,exports.createQueryKeys=si.createQueryKeys,exports.createRefreshQueue=Qr.createRefreshQueue,exports.createResumableUpload=T.createResumableUpload,exports.createRoleAccessControl=ri.createRoleAccessControl,exports.createSelectors=vi.createSelectors,exports.createSentryTelemetryAdapter=$i.createSentryTelemetryAdapter,exports.createSfxPool=Oi.createSfxPool,exports.createStore=_i.createStore,exports.createTempestAuth=$r.createTempestAuth,exports.createTheme=Ji.createTheme,exports.createVideoRecorder=B.createVideoRecorder,exports.createWebSocket=Vi.createWebSocket,exports.debounce=x.debounce,exports.decodeJWT=Xr.decodeJWT,exports.decompressFromString=g.decompressFromString,exports.deepMerge=y.deepMerge,exports.defineRoutes=N.defineRoutes,exports.describeApiError=C.describeApiError,exports.describeFilter=m.describeFilter,exports.divergingScale=Z.divergingScale,exports.downloadCsv=Rr.downloadCsv,exports.emptyOffsetPage=k.emptyOffsetPage,exports.encodeQR=l.encodeQR,exports.encodeWav=hr.encodeWav,exports.estimatePasswordStrength=Bt.estimatePasswordStrength,exports.estimateStorage=a.estimateStorage,exports.estimateTravel=G.estimateTravel,exports.expandBounds=K.expandBounds,exports.filtersFromSearchParams=m.filtersFromSearchParams,exports.filtersToQueryParams=jr.filtersToQueryParams,exports.filtersToSearchParams=m.filtersToSearchParams,exports.fitProjection=q.fitProjection,exports.formatBytes=s.formatBytes,exports.formatCEP=V.formatCEP,exports.formatCNPJ=V.formatCNPJ,exports.formatCPF=h.formatCPF,exports.formatCompactNumber=s.formatCompactNumber,exports.formatCurrency=h.formatCurrency,exports.formatDate=h.formatDate,exports.formatDateForInput=h.formatDateForInput,exports.formatDateTime=h.formatDateTime,exports.formatDurationMs=oa.formatDurationMs,exports.formatPercent=h.formatPercent,exports.formatPhone=h.formatPhone,exports.generateIdempotencyKey=Kr.generateIdempotencyKey,exports.getInitialTheme=Yi.getInitialTheme,exports.getSupportedBarcodeFormats=f.getSupportedBarcodeFormats,exports.getThemePreset=Y.getThemePreset,exports.groupBy=v.groupBy,exports.haversineKm=W.haversineKm,exports.hexToOklch=J.hexToOklch,exports.hexToRgb=J.hexToRgb,exports.hexToRgbaString=J.hexToRgbaString,exports.higherVersionWins=Pi.higherVersionWins,exports.inspectCaches=Ei.inspectCaches,exports.installBackgroundSync=wi.installBackgroundSync,exports.installNotificationClickHandler=L.installNotificationClickHandler,exports.installPrecache=R.installPrecache,exports.installPushHandler=L.installPushHandler,exports.installRuntimeCache=R.installRuntimeCache,exports.installSkipWaitingListener=L.installSkipWaitingListener,exports.isAndroid=r.isAndroid,exports.isAndroidWithoutPromptApi=r.isAndroidWithoutPromptApi,exports.isApiError=S.isApiError,exports.isAudioOutputSelectionSupported=cr.isAudioOutputSelectionSupported,exports.isAudioRecordingSupported=d.isAudioRecordingSupported,exports.isBarcodeDetectionSupported=f.isBarcodeDetectionSupported,exports.isConditionalMediationAvailable=E.isConditionalMediationAvailable,exports.isCoordinate=U.isCoordinate,exports.isCursorPage=k.isCursorPage,exports.isDefined=b.isDefined,exports.isEmpty=y.isEmpty,exports.isGenerating=p.isGenerating,exports.isIOS=r.isIOS,exports.isJWTExpired=Xr.isJWTExpired,exports.isMediaCaptureSupported=pr.isMediaCaptureSupported,exports.isNumber=b.isNumber,exports.isOffsetPage=k.isOffsetPage,exports.isPasskeySupported=E.isPasskeySupported,exports.isPlainObject=b.isPlainObject,exports.isPlatformAuthenticatorAvailable=E.isPlatformAuthenticatorAvailable,exports.isPushSupported=F.isPushSupported,exports.isScreenCaptureSupported=ji.isScreenCaptureSupported,exports.isShareSupported=Ir.isShareSupported,exports.isSpeechRecognitionSupported=Mi.isSpeechRecognitionSupported,exports.isStandalone=r.isStandalone,exports.isString=b.isString,exports.isValidLatitude=U.isValidLatitude,exports.isValidLongitude=U.isValidLongitude,exports.isVideoRecordingSupported=B.isVideoRecordingSupported,exports.kebabCase=_.kebabCase,exports.lastAssistantId=p.lastAssistantId,exports.lastWriteWins=Pi.lastWriteWins,exports.lazyWithRetry=Zr.lazyWithRetry,exports.listQueryKey=M.listQueryKey,exports.matrixToPath=l.matrixToPath,exports.memoizeOne=x.memoizeOne,exports.moveItem=wt.moveItem,exports.normalizeBarcode=f.normalizeBarcode,exports.normalizeLongitude=U.normalizeLongitude,exports.nprogress=Lt.nprogress,exports.oklchToHex=J.oklchToHex,exports.omit=y.omit,exports.once=x.once,exports.oneQueryKey=M.oneQueryKey,exports.operatorsFor=m.operatorsFor,exports.parseResponse=Wr.parseResponse,exports.pathLengthKm=W.pathLengthKm,exports.percentOf=s.percentOf,exports.permissionsFromToken=ii.permissionsFromToken,exports.persistQueryClientOffline=mi.persistQueryClientOffline,exports.pick=y.pick,exports.pickAudioMimeType=d.pickAudioMimeType,exports.pickVideoMimeType=B.pickVideoMimeType,exports.playAudio=z.playAudio,exports.pluralize=_.pluralize,exports.projectMercator=q.projectMercator,exports.randomId=Pr.randomId,exports.range=v.range,exports.readDeviceProfile=aa.readDeviceProfile,exports.readThemeToken=qi.readThemeToken,exports.readableForeground=J.readableForeground,Object.defineProperty(exports,"redirect",{enumerable:!0,get:function(){return Q.redirect}}),exports.registerPeriodicSync=Ti.registerPeriodicSync,exports.registerServiceWorker=i.registerServiceWorker,exports.relativeLuminance=J.relativeLuminance,exports.relativeTime=hn.relativeTime,exports.removeById=A.removeById,exports.requestPersistentStorage=a.requestPersistentStorage,exports.retry=Br.retry,exports.rgbToHex=J.rgbToHex,exports.roleLabel=p.roleLabel,exports.scaleSteps=Z.scaleSteps,exports.sequentialScale=Z.sequentialScale,exports.setAudioOutput=cr.setAudioOutput,exports.share=Ir.share,exports.shareOrDownloadBlob=Lr.shareOrDownloadBlob,exports.shouldRetryQuery=ci.shouldRetryQuery,exports.skipWaiting=i.skipWaiting,exports.sleep=Nr.sleep,exports.slugify=_.slugify,exports.stopAudio=z.stopAudio,exports.storage=Mr.storage,exports.tailSignature=p.tailSignature,exports.themeContrast=Ji.themeContrast,exports.themeInitScript=Yi.themeInitScript,exports.themePresets=Y.themePresets,exports.throttle=x.throttle,exports.toCsv=Rr.toCsv,exports.toRadians=W.toRadians,exports.truncate=_.truncate,exports.turnTime=p.turnTime,exports.uniqueBy=v.uniqueBy,exports.unmask=V.unmask,exports.unprojectMercator=q.unprojectMercator,exports.unregisterAllServiceWorkers=i.unregisterAllServiceWorkers,exports.uploadFingerprint=T.uploadFingerprint,exports.uploadWithProgress=Gr.uploadWithProgress,exports.upsertById=A.upsertById,exports.urlBase64ToUint8Array=F.urlBase64ToUint8Array,exports.useAccessControl=ei.useAccessControl,exports.useAnnounce=n.useAnnounce,exports.useAsync=Ve.useAsync,exports.useAudio=Di.useAudio,exports.useAudioRecorder=fr.useAudioRecorder,exports.useBarcodeScanner=vr.useBarcodeScanner,exports.useBeforeInstallPrompt=je.useBeforeInstallPrompt,exports.useBreakpoint=ie.useBreakpoint,exports.useCan=ti.useCan,exports.useClickOutside=vt.useClickOutside,exports.useClientFilter=Ie.useClientFilter,exports.useClipboard=Ke.useClipboard,exports.useCountdown=dt.useCountdown,exports.useCounter=ut.useCounter,exports.useCreate=M.useCreate,exports.useCursorQuery=di.useCursorQuery,exports.useDataProvider=j.useDataProvider,exports.useDebounce=Pe.useDebounce,exports.useDeepMemo=et.useDeepMemo,exports.useDelete=M.useDelete,exports.useDescribeApiError=Ur.useDescribeApiError,exports.useDisclosure=ct.useDisclosure,exports.useDocumentTitle=pt.useDocumentTitle,exports.useDocumentVisibility=Ue.useDocumentVisibility,exports.useErrorHandler=Fi.useErrorHandler,exports.useEventListener=Re.useEventListener,exports.useEventStream=Si.useEventStream,exports.useFavicon=mt.useFavicon,exports.useFeatureFlag=X.useFeatureFlag,Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return $.useFieldArray}}),exports.useFlagValue=X.useFlagValue,exports.useFocusTrap=Ze.useFocusTrap,Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return $.useForm}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return $.useFormContext}}),Object.defineProperty(exports,"useFormState",{enumerable:!0,get:function(){return $.useFormState}}),exports.useGeolocation=Ye.useGeolocation,exports.useHover=ot.useHover,exports.useI18n=w.useI18n,exports.useIdle=Je.useIdle,exports.useInstallPrompt=St.useInstallPrompt,exports.useIntersectionObserver=We.useIntersectionObserver,exports.useInterval=nt.useInterval,exports.useIsFirstRender=yt.useIsFirstRender,exports.useKeyboardShortcut=qe.useKeyboardShortcut,exports.useLatestRef=$e.useLatestRef,exports.useList=M.useList,exports.useListState=lt.useListState,exports.useLocalStorage=ze.useLocalStorage,Object.defineProperty(exports,"useLocation",{enumerable:!0,get:function(){return Q.useLocation}}),exports.useLongPress=st.useLongPress,exports.useLongPressHandlers=xt.useLongPressHandlers,exports.useMap=ht.useMap,Object.defineProperty(exports,"useMatch",{enumerable:!0,get:function(){return Q.useMatch}}),exports.useMediaDevices=Dt.useMediaDevices,exports.useMediaPermission=Et.useMediaPermission,exports.useMediaQuery=Le.useMediaQuery,exports.useMicrophone=mr.useMicrophone,exports.useModals=Ft.useModals,Object.defineProperty(exports,"useNavigate",{enumerable:!0,get:function(){return Q.useNavigate}}),exports.useNotificationInbox=_n.useNotificationInbox,exports.useOAuthCallback=oi.useOAuthCallback,exports.useObjectUrl=bt.useObjectUrl,exports.useOfflineMutation=fi.useOfflineMutation,exports.useOfflineSync=kt.useOfflineSync,exports.useOne=M.useOne,exports.useOnline=He.useOnline,exports.useOptionalI18n=w.useOptionalI18n,exports.usePaginatedQuery=ui.usePaginatedQuery,exports.usePagination=Fe.usePagination,Object.defineProperty(exports,"useParams",{enumerable:!0,get:function(){return Q.useParams}}),exports.usePasskeyCapabilities=D.usePasskeyCapabilities,exports.usePasskeyRegistration=D.usePasskeyRegistration,exports.usePasskeySignIn=D.usePasskeySignIn,exports.usePoll=qr.usePoll,exports.usePositionTracker=Gi.usePositionTracker,exports.usePrevious=tt.usePrevious,exports.usePushSubscription=Ci.usePushSubscription,exports.useQueue=_t.useQueue,exports.useResizeObserver=Ge.useResizeObserver,Object.defineProperty(exports,"useRouteError",{enumerable:!0,get:function(){return Q.useRouteError}}),exports.useScreenCapture=ji.useScreenCapture,exports.useScrollLock=Xe.useScrollLock,exports.useScrollOverflow=Tt.useScrollOverflow,Object.defineProperty(exports,"useSearchParams",{enumerable:!0,get:function(){return Q.useSearchParams}}),exports.useServiceWorkerUpdate=Ct.useServiceWorkerUpdate,exports.useSet=gt.useSet,exports.useSfxPool=ki.useSfxPool,exports.useSortable=wt.useSortable,exports.useSpeechRecognition=Mi.useSpeechRecognition,exports.useStableCallback=Qe.useStableCallback,exports.useStorageEstimate=a.useStorageEstimate,exports.useSyncStatus=kt.useSyncStatus,exports.useTelemetry=Zi.useTelemetry,exports.useTheme=P.useTheme,exports.useThrottle=it.useThrottle,exports.useTimeout=rt.useTimeout,exports.useToast=c.useToast,exports.useToggle=Be.useToggle,exports.useTorch=_r.useTorch,exports.useTranslate=w.useTranslate,exports.useTypewriter=ft.useTypewriter,exports.useUpdate=M.useUpdate,exports.useViaCEP=Bi.useViaCEP,exports.useVideoRecorder=Ai.useVideoRecorder,Object.defineProperty(exports,"useWatch",{enumerable:!0,get:function(){return $.useWatch}}),exports.useWebSocket=Hi.useWebSocket,exports.useWindowSize=at.useWindowSize,exports.useZodForm=zi.useZodForm,exports.validateCNPJ=V.validateCNPJ,exports.validateCPF=V.validateCPF,exports.validateForm=Li.validateForm,exports.visibleTurns=p.visibleTurns,exports.withTimeout=Nr.withTimeout,exports.writeXlsx=Fr.writeXlsx,exports.zodResolver=Ri.zodResolver;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});/* empty css */const ee=require("./utils/cn.cjs"),te=require("./components/Accordion/Accordion.cjs"),ne=require("./components/Alert/Alert.cjs"),re=require("./components/AppBar/AppBar.cjs"),ie=require("./hooks/use-breakpoint.cjs"),ae=require("./components/AppShell/AppShell.cjs"),oe=require("./components/AspectRatio/AspectRatio.cjs"),se=require("./components/Avatar/Avatar.cjs"),ce=require("./components/AvatarGroup/AvatarGroup.cjs"),le=require("./components/Badge/Badge.cjs"),ue=require("./components/Banner/Banner.cjs"),de=require("./components/BottomNavigation/BottomNavigation.cjs"),fe=require("./components/BottomSheet/BottomSheet.cjs"),pe=require("./components/Breadcrumbs/Breadcrumbs.cjs"),me=require("./components/Button/Button.cjs"),he=require("./components/Card/Card.cjs"),ge=require("./components/Center/Center.cjs"),_e=require("./components/Checkbox/Checkbox.cjs"),ve=require("./components/ChipInput/ChipInput.cjs"),ye=require("./components/Combobox/Combobox.cjs"),be=require("./components/Modal/Modal.cjs"),xe=require("./components/ConfirmDialog/ConfirmDialog.cjs"),Se=require("./components/Input/Input.cjs"),Ce=require("./components/DatePicker/DatePicker.cjs"),we=require("./components/Divider/Divider.cjs"),Te=require("./components/Drawer/Drawer.cjs"),Ee=require("./components/DropdownMenu/DropdownMenu.cjs"),De=require("./components/Dropzone/Dropzone.cjs"),Oe=require("./components/EmptyState/EmptyState.cjs"),ke=require("./components/ErrorState/ErrorState.cjs"),Ae=require("./components/FileUpload/FileUpload.cjs"),e=require("./components/Form/Form.cjs"),t=require("./components/Layout/Layout.cjs"),je=require("./hooks/use-before-install-prompt.cjs"),Me=require("./components/InstallBanner/InstallBanner.cjs"),Ne=require("./components/InstallButton/InstallButton.cjs"),Pe=require("./hooks/use-debounce.cjs"),Fe=require("./hooks/use-pagination.cjs"),Ie=require("./hooks/use-client-filter.cjs"),Le=require("./hooks/use-media-query.cjs"),Re=require("./hooks/use-latest-ref.cjs"),ze=require("./hooks/use-event-listener.cjs"),Be=require("./hooks/use-local-storage.cjs"),Ve=require("./hooks/use-toggle.cjs"),He=require("./hooks/use-async.cjs"),Ue=require("./hooks/use-online.cjs"),We=require("./hooks/use-document-visibility.cjs"),Ge=require("./hooks/use-intersection-observer.cjs"),Ke=require("./hooks/use-resize-observer.cjs"),qe=require("./hooks/use-clipboard.cjs"),Je=require("./hooks/use-keyboard-shortcut.cjs"),Ye=require("./hooks/use-idle.cjs"),Xe=require("./hooks/use-geolocation.cjs"),Ze=require("./hooks/use-scroll-lock.cjs"),Qe=require("./hooks/use-focus-trap.cjs"),n=require("./hooks/use-announce.cjs"),$e=require("./hooks/use-stable-callback.cjs"),et=require("./hooks/use-deep-memo.cjs"),tt=require("./hooks/use-previous.cjs"),nt=require("./hooks/use-interval.cjs"),rt=require("./hooks/use-timeout.cjs"),it=require("./hooks/use-throttle.cjs"),at=require("./hooks/use-window-size.cjs"),ot=require("./hooks/use-hover.cjs"),st=require("./hooks/use-long-press.cjs"),ct=require("./hooks/use-disclosure.cjs"),lt=require("./hooks/use-list-state.cjs"),ut=require("./hooks/use-counter.cjs"),dt=require("./hooks/use-countdown.cjs"),ft=require("./hooks/use-typewriter.cjs"),pt=require("./hooks/use-document-title.cjs"),mt=require("./hooks/use-favicon.cjs"),ht=require("./hooks/use-map.cjs"),gt=require("./hooks/use-set.cjs"),_t=require("./hooks/use-queue.cjs"),vt=require("./hooks/use-click-outside.cjs"),yt=require("./hooks/use-is-first-render.cjs"),bt=require("./hooks/use-object-url.cjs"),xt=require("./hooks/use-long-press-handlers.cjs"),r=require("./hooks/pwa-env.cjs"),St=require("./hooks/use-install-prompt.cjs"),i=require("./sw/register-service-worker.cjs"),Ct=require("./hooks/use-service-worker-update.cjs"),a=require("./hooks/use-storage-estimate.cjs"),wt=require("./hooks/use-sortable.cjs"),Tt=require("./hooks/use-scroll-overflow.cjs"),Et=require("./hooks/use-media-permission.cjs"),Dt=require("./hooks/use-media-devices.cjs"),Ot=require("./components/OfflineIndicator/OfflineIndicator.cjs"),kt=require("./offline/use-offline-sync.cjs"),At=require("./components/VisuallyHidden/VisuallyHidden.cjs"),jt=require("./components/SyncStatusBadge/SyncStatusBadge.cjs"),Mt=require("./components/UpdatePrompt/UpdatePrompt.cjs"),Nt=require("./components/Kanban/Kanban.cjs"),Pt=require("./components/Kbd/Kbd.cjs"),Ft=require("./components/ModalsManager/ModalsManager.cjs"),It=require("./components/Navbar/Navbar.cjs"),Lt=require("./components/NProgress/NProgress.cjs"),Rt=require("./components/Page/Page.cjs"),zt=require("./components/Pagination/Pagination.cjs"),o=require("./components/PasswordInput/PasswordInput.cjs"),Bt=require("./components/PinInput/PinInput.cjs"),Vt=require("./components/Popover/Popover.cjs"),Ht=require("./components/Progress/Progress.cjs"),s=require("./components/Radio/Radio.cjs"),Ut=require("./components/RangeSlider/RangeSlider.cjs"),Wt=require("./components/RatingStars/RatingStars.cjs"),Gt=require("./components/Responsive/Responsive.cjs"),Kt=require("./components/SafeArea/SafeArea.cjs"),qt=require("./components/SearchBar/SearchBar.cjs"),Jt=require("./components/SegmentedControl/SegmentedControl.cjs"),Yt=require("./components/Select/Select.cjs"),Xt=require("./components/Sidebar/Sidebar.cjs"),Zt=require("./components/Skeleton/Skeleton.cjs"),Qt=require("./components/Spacer/Spacer.cjs"),$t=require("./components/Spinner/Spinner.cjs"),en=require("./components/Stat/Stat.cjs"),tn=require("./components/Stepper/Stepper.cjs"),c=require("./utils/numbers.cjs"),nn=require("./components/StepperInput/StepperInput.cjs"),rn=require("./components/Switch/Switch.cjs"),an=require("./components/Tag/Tag.cjs"),on=require("./components/Table/Table.cjs"),sn=require("./components/Tabs/Tabs.cjs"),cn=require("./components/Textarea/Textarea.cjs"),ln=require("./components/Timeline/Timeline.cjs"),un=require("./components/Tooltip/Tooltip.cjs"),dn=require("./components/Toast/ToastProvider.cjs"),fn=require("./components/ImageCropper/ImageCropper.cjs"),pn=require("./components/Sparkline/Sparkline.cjs"),mn=require("./components/Scheduler/Scheduler.cjs"),hn=require("./utils/relative-time.cjs"),gn=require("./components/NotificationCenter/NotificationCenter.cjs"),_n=require("./components/NotificationCenter/use-notification-inbox.cjs"),vn=require("./components/VirtualList/VirtualList.cjs"),yn=require("./utils/compare-values.cjs"),bn=require("./components/VirtualTable/VirtualTable.cjs"),l=require("./components/QRCode/qr-encode.cjs"),xn=require("./components/QRCode/QRCode.cjs"),Sn=require("./components/CopyButton/CopyButton.cjs"),Cn=require("./components/CodeBlock/CodeBlock.cjs"),wn=require("./components/RelativeTime/RelativeTime.cjs"),Tn=require("./components/Money/Money.cjs"),En=require("./components/TreeView/TreeView.cjs"),Dn=require("./components/TruncateText/TruncateText.cjs"),On=require("./components/Portal/Portal.cjs"),kn=require("./components/ClickOutside/ClickOutside.cjs"),An=require("./components/ConditionalWrapper/ConditionalWrapper.cjs"),jn=require("./components/For/For.cjs"),Mn=require("./components/ErrorText/ErrorText.cjs"),Nn=require("./components/Image/Image.cjs"),Pn=require("./components/DataList/DataList.cjs"),Fn=require("./components/DescriptionList/DescriptionList.cjs"),In=require("./components/Toggle/Toggle.cjs"),Ln=require("./components/ToggleGroup/ToggleGroup.cjs"),Rn=require("./components/Label/Label.cjs"),zn=require("./components/Collapsible/Collapsible.cjs"),Bn=require("./components/ContextMenu/ContextMenu.cjs"),Vn=require("./components/HoverCard/HoverCard.cjs"),Hn=require("./components/Command/Command.cjs"),Un=require("./components/ScrollArea/ScrollArea.cjs"),Wn=require("./components/Resizable/Resizable.cjs"),Gn=require("./components/Calendar/Calendar.cjs"),Kn=require("./components/Slider/Slider.cjs"),qn=require("./components/MultiSelect/MultiSelect.cjs"),Jn=require("./components/DateRangePicker/DateRangePicker.cjs"),Yn=require("./components/NavigationMenu/NavigationMenu.cjs"),Xn=require("./components/Menubar/Menubar.cjs"),Zn=require("./components/Carousel/Carousel.cjs"),Qn=require("./components/DataTable/DataTable.cjs"),$n=require("./components/ListTile/ListTile.cjs"),er=require("./components/FloatingActionButton/FloatingActionButton.cjs"),tr=require("./components/NavigationRail/NavigationRail.cjs"),nr=require("./components/TimePicker/TimePicker.cjs"),rr=require("./components/RefreshIndicator/RefreshIndicator.cjs"),ir=require("./components/Wizard/Wizard.cjs"),ar=require("./components/Lightbox/Lightbox.cjs"),or=require("./components/SignaturePad/SignaturePad.cjs"),sr=require("./components/Chat/ChatComposer.cjs"),cr=require("./components/Chat/Chat.cjs"),lr=require("./audio/audio-output.cjs"),ur=require("./components/AudioPlayer/AudioPlayer.cjs"),dr=require("./capture/media-recorder.cjs"),u=require("./audio/audio-recorder.cjs"),fr=require("./audio/level-meter.cjs"),pr=require("./audio/use-audio-recorder.cjs"),mr=require("./audio/media-access.cjs"),hr=require("./audio/use-microphone.cjs"),gr=require("./audio/wav.cjs"),_r=require("./components/AudioRecorder/AudioRecorder.cjs"),d=require("./capture/barcode.cjs"),vr=require("./capture/use-torch.cjs"),yr=require("./capture/use-barcode-scanner.cjs"),br=require("./components/BarcodeScanner/BarcodeScanner.cjs"),f=require("./components/AIChat/ai-chat-turns.cjs"),xr=require("./components/AIChat/AIChatComposer.cjs"),Sr=require("./components/Markdown/Markdown.cjs"),Cr=require("./components/AIChat/AIChatTurn.cjs"),wr=require("./components/AIChat/AIChat.cjs"),Tr=require("./components/Transfer/Transfer.cjs"),Er=require("./components/Masonry/Masonry.cjs"),Dr=require("./components/Tour/Tour.cjs"),Or=require("./components/BarList/bar-list-model.cjs"),kr=require("./components/BarList/BarList.cjs"),p=require("./components/FilterBar/filter-model.cjs"),Ar=require("./components/FilterBar/FilterBar.cjs"),m=require("./utils/format.cjs"),jr=require("./components/FilterBar/filter-apply.cjs"),Mr=require("./components/FilterBar/filter-query.cjs"),Nr=require("./utils/storage.cjs"),h=require("./utils/compressed-storage.cjs"),g=require("./utils/strings.cjs"),_=require("./utils/arrays.cjs"),v=require("./utils/objects.cjs"),y=require("./utils/guards.cjs"),b=require("./utils/functions.cjs"),Pr=require("./utils/promises.cjs"),Fr=require("./utils/ids.cjs"),Ir=require("./utils/xlsx.cjs"),Lr=require("./share/share.cjs"),Rr=require("./share/share-or-download.cjs"),x=require("./utils/csv.cjs"),zr=require("./http/build-url.cjs"),S=require("./http/errors.cjs"),Br=require("./http/retry.cjs"),Vr=require("./http/api-client.cjs"),C=require("./http/describe-api-error.cjs"),Hr=require("./i18n/create-i18n.cjs"),w=require("./i18n/I18nProvider.cjs"),Ur=require("./http/use-describe-api-error.cjs"),Wr=require("./http/parse-response.cjs"),Gr=require("./http/upload-with-progress.cjs"),Kr=require("./http/idempotency.cjs"),T=require("./http/resumable-upload.cjs"),qr=require("./http/use-poll.cjs"),Jr=require("./auth/create-auth-store.cjs"),Yr=require("./auth/AuthGuard.cjs"),Xr=require("./auth/jwt.cjs"),Zr=require("./auth/lazy-with-retry.cjs"),Qr=require("./auth/refresh-queue.cjs"),E=require("./auth/passkey.cjs"),D=require("./auth/use-passkey.cjs"),$r=require("./auth/create-tempest-auth.cjs"),ei=require("./access/access-control-context.cjs"),ti=require("./access/use-can.cjs"),ni=require("./access/Can.cjs"),ri=require("./access/create-role-access-control.cjs"),ii=require("./access/permissions-from-token.cjs"),ai=require("./oauth/GoogleSignIn.cjs"),oi=require("./oauth/use-oauth-callback.cjs"),O=require("./query/constants.cjs"),si=require("./query/create-query-keys.cjs"),ci=require("./query/retry-policy.cjs"),li=require("./query/QueryProvider.cjs"),k=require("./query/pagination.cjs"),ui=require("./query/use-paginated-query.cjs"),di=require("./query/use-cursor-query.cjs"),fi=require("./query/use-offline-mutation.cjs"),A=require("./query/optimistic.cjs"),pi=require("./offline/create-offline-store.cjs"),mi=require("./query/offline-persistence.cjs"),hi=require("./data/create-data-provider.cjs"),j=require("./data/data-provider-context.cjs"),M=require("./data/use-resource.cjs"),gi=require("./router/RouteGuard.cjs"),N=require("./router/AppRouter.cjs"),_i=require("./store/create-store.cjs"),vi=require("./store/create-selectors.cjs"),P=require("./theme/ThemeProvider.cjs"),yi=require("./error-boundary/ErrorBoundary.cjs"),bi=require("./app/AppProviders.cjs"),xi=require("./sse/create-event-stream.cjs"),Si=require("./sse/use-event-stream.cjs"),F=require("./push/utils.cjs"),I=require("./push/web-push-client.cjs"),Ci=require("./push/use-push-subscription.cjs"),L=require("./sw/create-push-handler.cjs"),R=require("./sw/cache.cjs"),wi=require("./sw/background-sync.cjs"),Ti=require("./sw/periodic-sync.cjs"),Ei=require("./sw/cache-inspect.cjs"),z=require("./audio/audio-player.cjs"),Di=require("./audio/use-audio.cjs"),Oi=require("./audio/sfx-pool.cjs"),ki=require("./audio/use-sfx-pool.cjs"),B=require("./capture/video-recorder.cjs"),Ai=require("./capture/use-video-recorder.cjs"),ji=require("./capture/use-screen-capture.cjs"),Mi=require("./capture/use-speech-recognition.cjs"),Ni=require("./offline/create-offline-sync.cjs"),Pi=require("./offline/conflict.cjs"),Fi=require("./error-boundary/use-error-handler.cjs"),Ii=require("./forms/FormField.cjs"),Li=require("./forms/validate-form.cjs"),Ri=require("./forms/zod-resolver.cjs"),zi=require("./forms/use-zod-form.cjs"),V=require("./forms/br-validators.cjs"),H=require("./forms/masked-inputs.cjs"),Bi=require("./forms/use-viacep.cjs"),Vi=require("./ws/create-web-socket.cjs"),Hi=require("./ws/use-web-socket.cjs"),U=require("./geo/types.cjs"),W=require("./geo/distance.cjs"),G=require("./geo/estimate.cjs"),K=require("./geo/bounds.cjs"),q=require("./geo/projection.cjs"),Ui=require("./geo/routing.cjs"),Wi=require("./geo/create-position-tracker.cjs"),Gi=require("./geo/use-position-tracker.cjs"),Ki=require("./geo/TrajectoryMap.cjs"),qi=require("./theme/apply-theme.cjs"),J=require("./theme/color.cjs"),Y=require("./theme/create-theme.cjs"),Ji=require("./theme/theme-presets.cjs"),Yi=require("./theme/initial-theme.cjs"),Xi=require("./logger/logger.cjs"),Zi=require("./telemetry/TelemetryProvider.cjs"),Qi=require("./telemetry/console-adapter.cjs"),$i=require("./telemetry/sentry-adapter.cjs"),ea=require("./telemetry/posthog-adapter.cjs"),X=require("./feature-flags/FeatureFlagsProvider.cjs"),ta=require("./feature-flags/in-memory-adapter.cjs"),na=require("./feature-flags/growthbook-adapter.cjs"),ra=require("./feature-flags/launchdarkly-adapter.cjs"),Z=require("./charts/scales.cjs"),ia=require("./perf/cache-size.cjs"),aa=require("./perf/device.cjs"),oa=require("./perf/format.cjs"),sa=require("./perf/profiler.cjs");let Q=require("react-router"),$=require("react-hook-form");exports.AIChat=wr.AIChat,exports.AIChatComposer=xr.AIChatComposer,exports.AIChatTurn=Cr.AIChatTurn,exports.ALL_BARCODE_FORMATS=d.ALL_BARCODE_FORMATS,exports.API_ERROR_OFFLINE_KEY=C.API_ERROR_OFFLINE_KEY,exports.API_ERROR_VALIDATION_KEY=C.API_ERROR_VALIDATION_KEY,exports.AUDIO_MIME_CANDIDATES=u.AUDIO_MIME_CANDIDATES,exports.AccessControlProvider=ei.AccessControlProvider,exports.Accordion=te.Accordion,exports.Alert=ne.Alert,exports.AppBar=re.AppBar,exports.AppProviders=bi.AppProviders,exports.AppRouter=N.AppRouter,exports.AppShell=ae.AppShell,exports.AspectRatio=oe.AspectRatio,exports.AudioPlayer=ur.AudioPlayer,exports.AudioRecorder=_r.AudioRecorder,exports.AuthGuard=Yr.AuthGuard,exports.Avatar=se.Avatar,exports.AvatarGroup=ce.AvatarGroup,exports.BREAKPOINTS=ie.BREAKPOINTS,exports.Badge=le.Badge,exports.Banner=ue.Banner,exports.BarList=kr.BarList,exports.BarcodeScanner=br.BarcodeScanner,exports.BottomNavigation=de.BottomNavigation,exports.BottomSheet=fe.BottomSheet,exports.Breadcrumbs=pe.Breadcrumbs,Object.defineProperty(exports,"BrowserRouter",{enumerable:!0,get:function(){return Q.BrowserRouter}}),exports.Button=me.Button,exports.CACHE_TIME=O.CACHE_TIME,exports.CEPInput=H.CEPInput,exports.CNPJInput=H.CNPJInput,exports.CPFInput=H.CPFInput,exports.Calendar=Gn.Calendar,exports.Can=ni.Can,exports.Card=he.Card,exports.Carousel=Zn.Carousel,exports.Center=ge.Center,exports.Chat=cr.Chat,exports.ChatComposer=sr.ChatComposer,exports.Checkbox=_e.Checkbox,exports.ChipInput=ve.ChipInput,exports.ClickOutside=kn.ClickOutside,exports.CodeBlock=Cn.CodeBlock,exports.Collapsible=zn.Collapsible,exports.Combobox=ye.Combobox,exports.Command=Hn.Command,exports.ConditionalWrapper=An.ConditionalWrapper,exports.ConfirmDialog=xe.ConfirmDialog,exports.Container=t.Container,exports.ContextMenu=Bn.ContextMenu,Object.defineProperty(exports,"Controller",{enumerable:!0,get:function(){return $.Controller}}),exports.CopyButton=Sn.CopyButton,exports.DEFAULT_API_ERROR_STRINGS=C.DEFAULT_API_ERROR_STRINGS,exports.DEFAULT_BARCODE_FORMATS=d.DEFAULT_BARCODE_FORMATS,exports.DEFAULT_CAR_SPEED_KMH=G.DEFAULT_CAR_SPEED_KMH,exports.DEFAULT_CHUNK_SIZE=T.DEFAULT_CHUNK_SIZE,exports.DEFAULT_CIRCUITY_FACTOR=G.DEFAULT_CIRCUITY_FACTOR,exports.DEFAULT_MODE_DURATION_FACTORS=G.DEFAULT_MODE_DURATION_FACTORS,exports.DEFAULT_PUB_KEY_CRED_PARAMS=E.DEFAULT_PUB_KEY_CRED_PARAMS,exports.DIVERGING_STEP_COUNT=Z.DIVERGING_STEP_COUNT,exports.DataList=Pn.DataList,exports.DataTable=Qn.DataTable,exports.DatePicker=Ce.DatePicker,exports.DateRangePicker=Jn.DateRangePicker,exports.DescriptionList=Fn.DescriptionList,exports.Divider=we.Divider,exports.Drawer=Te.Drawer,exports.DropdownMenu=Ee.DropdownMenu,exports.Dropzone=De.Dropzone,exports.EARTH_RADIUS_KM=W.EARTH_RADIUS_KM,exports.EmptyState=Oe.EmptyState,exports.ErrorBoundary=yi.ErrorBoundary,exports.ErrorState=ke.ErrorState,exports.ErrorText=Mn.ErrorText,exports.FeatureFlagsProvider=X.FeatureFlagsProvider,exports.FileUpload=Ae.FileUpload,exports.FilterBar=Ar.FilterBar,exports.FloatingActionButton=er.FloatingActionButton,exports.For=jn.For,exports.Form=e.Form,exports.FormActions=e.FormActions,exports.FormField=Ii.FormField,Object.defineProperty(exports,"FormProvider",{enumerable:!0,get:function(){return $.FormProvider}}),exports.FormRow=e.FormRow,exports.FormSection=e.FormSection,exports.GoogleSignIn=ai.GoogleSignIn,exports.Grid=t.Grid,Object.defineProperty(exports,"HashRouter",{enumerable:!0,get:function(){return Q.HashRouter}}),exports.Hide=Gt.Hide,exports.HoverCard=Vn.HoverCard,exports.I18nProvider=w.I18nProvider,exports.Image=Nn.Image,exports.ImageCropper=fn.ImageCropper,exports.Input=Se.Input,exports.InstallBanner=Me.InstallBanner,exports.InstallButton=Ne.InstallButton,exports.Kanban=Nt.Kanban,exports.Kbd=Pt.Kbd,exports.Label=Rn.Label,exports.Lightbox=ar.Lightbox,Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return Q.Link}}),exports.ListTile=$n.ListTile,exports.Markdown=Sr.Markdown,exports.Masonry=Er.Masonry,Object.defineProperty(exports,"MemoryRouter",{enumerable:!0,get:function(){return Q.MemoryRouter}}),exports.Menubar=Xn.Menubar,exports.Modal=be.Modal,exports.ModalsProvider=Ft.ModalsProvider,exports.Money=Tn.Money,exports.MoneyInput=H.MoneyInput,exports.MultiSelect=qn.MultiSelect,exports.NProgressBar=Lt.NProgressBar,Object.defineProperty(exports,"NavLink",{enumerable:!0,get:function(){return Q.NavLink}}),exports.Navbar=It.Navbar,Object.defineProperty(exports,"Navigate",{enumerable:!0,get:function(){return Q.Navigate}}),exports.NavigationMenu=Yn.NavigationMenu,exports.NavigationRail=tr.NavigationRail,exports.NotificationCenter=gn.NotificationCenter,exports.ORDINAL_START_STEP=Z.ORDINAL_START_STEP,exports.OfflineIndicator=Ot.OfflineIndicator,Object.defineProperty(exports,"Outlet",{enumerable:!0,get:function(){return Q.Outlet}}),exports.Page=Rt.Page,exports.Pagination=zt.Pagination,exports.PasskeyError=E.PasskeyError,exports.PasswordInput=o.PasswordInput,exports.PhoneInput=H.PhoneInput,exports.PinInput=Bt.PinInput,exports.Popover=Vt.Popover,exports.Portal=On.Portal,exports.Progress=Ht.Progress,exports.QRCapacityError=l.QRCapacityError,exports.QRCode=xn.QRCode,exports.QueryProvider=li.QueryProvider,exports.REFETCH_TIME=O.REFETCH_TIME,exports.Radio=s.Radio,exports.RadioGroup=s.RadioGroup,exports.RangeSlider=Ut.RangeSlider,exports.RatingStars=Wt.RatingStars,exports.RefreshIndicator=rr.RefreshIndicator,exports.RelativeTime=wn.RelativeTime,exports.Resizable=Wn.Resizable,Object.defineProperty(exports,"Route",{enumerable:!0,get:function(){return Q.Route}}),exports.RouteGuard=gi.RouteGuard,Object.defineProperty(exports,"Routes",{enumerable:!0,get:function(){return Q.Routes}}),exports.SEQUENTIAL_STEP_COUNT=Z.SEQUENTIAL_STEP_COUNT,exports.STALE_TIME=O.STALE_TIME,exports.SafeArea=Kt.SafeArea,exports.Scheduler=mn.Scheduler,exports.ScrollArea=Un.ScrollArea,exports.SearchBar=qt.SearchBar,exports.SegmentedControl=Jt.SegmentedControl,exports.Select=Yt.Select,exports.Show=Gt.Show,exports.Sidebar=Xt.Sidebar,exports.SignaturePad=or.SignaturePad,exports.Skeleton=Zt.Skeleton,exports.Slider=Kn.Slider,exports.Spacer=Qt.Spacer,exports.Sparkline=pn.Sparkline,exports.Spinner=$t.Spinner,exports.Stack=t.Stack,exports.Stat=en.Stat,exports.Stepper=tn.Stepper,exports.StepperInput=nn.StepperInput,exports.Switch=rn.Switch,exports.SyncStatusBadge=jt.SyncStatusBadge,exports.Table=on.Table,exports.Tabs=sn.Tabs,exports.Tag=an.Tag,exports.TelemetryProvider=Zi.TelemetryProvider,exports.TempestApiError=S.TempestApiError,exports.TempestDataProvider=j.TempestDataProvider,exports.Textarea=cn.Textarea,exports.ThemeProvider=P.ThemeProvider,exports.TimePicker=nr.TimePicker,exports.Timeline=ln.Timeline,exports.ToastProvider=dn.ToastProvider,exports.Toggle=In.Toggle,exports.ToggleGroup=Ln.ToggleGroup,exports.ToggleGroupItem=Ln.ToggleGroupItem,exports.Tooltip=un.Tooltip,exports.Tour=Dr.Tour,exports.TrajectoryMap=Ki.TrajectoryMap,exports.Transfer=Tr.Transfer,exports.TreeView=En.TreeView,exports.TruncateText=Dn.TruncateText,exports.UpdatePrompt=Mt.UpdatePrompt,exports.VirtualList=vn.VirtualList,exports.VirtualTable=bn.VirtualTable,exports.VisuallyHidden=At.VisuallyHidden,exports.WebPushClient=I.WebPushClient,exports.WebPushPermissionDeniedError=I.WebPushPermissionDeniedError,exports.WebPushUnsupportedError=I.WebPushUnsupportedError,exports.Wizard=ir.Wizard,exports.aiChatStrings=f.aiChatStrings,exports.announce=n.announce,exports.applyFilters=jr.applyFilters,exports.applyKanbanMove=Nt.applyKanbanMove,exports.applyTheme=qi.applyTheme,exports.assertNever=y.assertNever,exports.base64UrlToBytes=E.base64UrlToBytes,exports.bearingDeg=W.bearingDeg,exports.blobToWav=gr.blobToWav,exports.boundingBox=K.boundingBox,exports.boundsCenter=K.boundsCenter,exports.buildApiUrl=zr.buildApiUrl,exports.buildBarListRows=Or.buildBarListRows,exports.buildOpenInChromeIntent=r.buildOpenInChromeIntent,exports.bytesToBase64Url=E.bytesToBase64Url,exports.cachedResponseBytes=ia.cachedResponseBytes,exports.camelCase=g.camelCase,exports.capitalize=g.capitalize,exports.chunk=_.chunk,exports.clamp=c.clamp,exports.clampLatitude=U.clampLatitude,exports.classifyPasskeyError=E.classifyPasskeyError,exports.clearAnnouncer=n.clearAnnouncer,exports.clearCaches=Ei.clearCaches,exports.cn=ee.cn,exports.compareValues=yn.compareValues,exports.compressToString=h.compressToString,exports.compressedStorage=h.compressedStorage,exports.compressedStorageCodec=h.compressedStorageCodec,exports.consoleSink=Xi.consoleSink,exports.consoleTelemetryAdapter=Qi.consoleTelemetryAdapter,exports.contrastRatio=J.contrastRatio,exports.createApiClient=Vr.createApiClient,exports.createAudioPlayer=z.createAudioPlayer,exports.createAudioRecorder=u.createAudioRecorder,exports.createAuthStore=Jr.createAuthStore,exports.createBarcodeDetector=d.createBarcodeDetector,exports.createColorScale=J.createColorScale,exports.createDataProvider=hi.createDataProvider,exports.createEventStream=xi.createEventStream,exports.createGrowthBookFeatureFlagsAdapter=na.createGrowthBookFeatureFlagsAdapter,exports.createI18n=Hr.createI18n,exports.createInMemoryFlags=ta.createInMemoryFlags,exports.createInferenceProfiler=sa.createInferenceProfiler,exports.createJsonStorage=Nr.createJsonStorage,exports.createLaunchDarklyFeatureFlagsAdapter=ra.createLaunchDarklyFeatureFlagsAdapter,exports.createLevelMeter=fr.createLevelMeter,exports.createLocalUploadStorage=T.createLocalUploadStorage,exports.createLogger=Xi.createLogger,exports.createMediaRecorder=dr.createMediaRecorder,exports.createOSRMBackend=Ui.createOSRMBackend,exports.createOfflineStore=pi.createOfflineStore,exports.createOfflineSync=Ni.createOfflineSync,exports.createPartialResponse=R.createPartialResponse,exports.createPasskeyClient=E.createPasskeyClient,exports.createPositionTracker=Wi.createPositionTracker,exports.createPostHogTelemetryAdapter=ea.createPostHogTelemetryAdapter,exports.createQueryKeys=si.createQueryKeys,exports.createRefreshQueue=Qr.createRefreshQueue,exports.createResumableUpload=T.createResumableUpload,exports.createRoleAccessControl=ri.createRoleAccessControl,exports.createSelectors=vi.createSelectors,exports.createSentryTelemetryAdapter=$i.createSentryTelemetryAdapter,exports.createSfxPool=Oi.createSfxPool,exports.createStore=_i.createStore,exports.createTempestAuth=$r.createTempestAuth,exports.createTheme=Y.createTheme,exports.createVideoRecorder=B.createVideoRecorder,exports.createWebSocket=Vi.createWebSocket,exports.debounce=b.debounce,exports.decodeJWT=Xr.decodeJWT,exports.decompressFromString=h.decompressFromString,exports.deepMerge=v.deepMerge,exports.defineRoutes=N.defineRoutes,exports.describeApiError=C.describeApiError,exports.describeFilter=p.describeFilter,exports.divergingScale=Z.divergingScale,exports.downloadCsv=x.downloadCsv,exports.emptyOffsetPage=k.emptyOffsetPage,exports.encodeQR=l.encodeQR,exports.encodeWav=gr.encodeWav,exports.estimatePasswordStrength=o.estimatePasswordStrength,exports.estimateStorage=a.estimateStorage,exports.estimateTravel=G.estimateTravel,exports.expandBounds=K.expandBounds,exports.filtersFromSearchParams=p.filtersFromSearchParams,exports.filtersToQueryParams=Mr.filtersToQueryParams,exports.filtersToSearchParams=p.filtersToSearchParams,exports.fitProjection=q.fitProjection,exports.formatBytes=c.formatBytes,exports.formatCEP=V.formatCEP,exports.formatCNPJ=V.formatCNPJ,exports.formatCPF=m.formatCPF,exports.formatCompactNumber=c.formatCompactNumber,exports.formatCurrency=m.formatCurrency,exports.formatDate=m.formatDate,exports.formatDateForInput=m.formatDateForInput,exports.formatDateTime=m.formatDateTime,exports.formatDurationMs=oa.formatDurationMs,exports.formatPercent=m.formatPercent,exports.formatPhone=m.formatPhone,exports.generateIdempotencyKey=Kr.generateIdempotencyKey,exports.getInitialTheme=Yi.getInitialTheme,exports.getSupportedBarcodeFormats=d.getSupportedBarcodeFormats,exports.getThemePreset=Ji.getThemePreset,exports.groupBy=_.groupBy,exports.haversineKm=W.haversineKm,exports.hexToOklch=J.hexToOklch,exports.hexToRgb=J.hexToRgb,exports.hexToRgbaString=J.hexToRgbaString,exports.higherVersionWins=Pi.higherVersionWins,exports.inspectCaches=Ei.inspectCaches,exports.installBackgroundSync=wi.installBackgroundSync,exports.installNotificationClickHandler=L.installNotificationClickHandler,exports.installPrecache=R.installPrecache,exports.installPushHandler=L.installPushHandler,exports.installRuntimeCache=R.installRuntimeCache,exports.installSkipWaitingListener=L.installSkipWaitingListener,exports.isAndroid=r.isAndroid,exports.isAndroidWithoutPromptApi=r.isAndroidWithoutPromptApi,exports.isApiError=S.isApiError,exports.isAudioOutputSelectionSupported=lr.isAudioOutputSelectionSupported,exports.isAudioRecordingSupported=u.isAudioRecordingSupported,exports.isBarcodeDetectionSupported=d.isBarcodeDetectionSupported,exports.isConditionalMediationAvailable=E.isConditionalMediationAvailable,exports.isCoordinate=U.isCoordinate,exports.isCursorPage=k.isCursorPage,exports.isDefined=y.isDefined,exports.isEmpty=v.isEmpty,exports.isGenerating=f.isGenerating,exports.isIOS=r.isIOS,exports.isJWTExpired=Xr.isJWTExpired,exports.isMediaCaptureSupported=mr.isMediaCaptureSupported,exports.isNumber=y.isNumber,exports.isOffsetPage=k.isOffsetPage,exports.isPasskeySupported=E.isPasskeySupported,exports.isPlainObject=y.isPlainObject,exports.isPlatformAuthenticatorAvailable=E.isPlatformAuthenticatorAvailable,exports.isPushSupported=F.isPushSupported,exports.isRetriableStatus=S.isRetriableStatus,exports.isScreenCaptureSupported=ji.isScreenCaptureSupported,exports.isShareSupported=Lr.isShareSupported,exports.isSpeechRecognitionSupported=Mi.isSpeechRecognitionSupported,exports.isStandalone=r.isStandalone,exports.isString=y.isString,exports.isValidLatitude=U.isValidLatitude,exports.isValidLongitude=U.isValidLongitude,exports.isVideoRecordingSupported=B.isVideoRecordingSupported,exports.kebabCase=g.kebabCase,exports.lastAssistantId=f.lastAssistantId,exports.lastWriteWins=Pi.lastWriteWins,exports.lazyWithRetry=Zr.lazyWithRetry,exports.listQueryKey=M.listQueryKey,exports.matrixToPath=l.matrixToPath,exports.memoizeOne=b.memoizeOne,exports.moveItem=wt.moveItem,exports.normalizeBarcode=d.normalizeBarcode,exports.normalizeLongitude=U.normalizeLongitude,exports.nprogress=Lt.nprogress,exports.oklchToHex=J.oklchToHex,exports.omit=v.omit,exports.once=b.once,exports.oneQueryKey=M.oneQueryKey,exports.operatorsFor=p.operatorsFor,exports.parseResponse=Wr.parseResponse,exports.pathLengthKm=W.pathLengthKm,exports.percentOf=c.percentOf,exports.permissionsFromToken=ii.permissionsFromToken,exports.persistQueryClientOffline=mi.persistQueryClientOffline,exports.pick=v.pick,exports.pickAudioMimeType=u.pickAudioMimeType,exports.pickVideoMimeType=B.pickVideoMimeType,exports.playAudio=z.playAudio,exports.pluralize=g.pluralize,exports.projectMercator=q.projectMercator,exports.randomId=Fr.randomId,exports.range=_.range,exports.readDeviceProfile=aa.readDeviceProfile,exports.readThemeToken=qi.readThemeToken,exports.readableForeground=J.readableForeground,Object.defineProperty(exports,"redirect",{enumerable:!0,get:function(){return Q.redirect}}),exports.registerPeriodicSync=Ti.registerPeriodicSync,exports.registerServiceWorker=i.registerServiceWorker,exports.relativeLuminance=J.relativeLuminance,exports.relativeTime=hn.relativeTime,exports.removeById=A.removeById,exports.requestPersistentStorage=a.requestPersistentStorage,exports.retry=Br.retry,exports.rgbToHex=J.rgbToHex,exports.roleLabel=f.roleLabel,exports.scaleSteps=Z.scaleSteps,exports.sequentialScale=Z.sequentialScale,exports.setAudioOutput=lr.setAudioOutput,exports.share=Lr.share,exports.shareOrDownloadBlob=Rr.shareOrDownloadBlob,exports.shouldRetryQuery=ci.shouldRetryQuery,exports.skipWaiting=i.skipWaiting,exports.sleep=Pr.sleep,exports.slugify=g.slugify,exports.stopAudio=z.stopAudio,exports.storage=Nr.storage,exports.tailSignature=f.tailSignature,exports.themeContrast=Y.themeContrast,exports.themeInitScript=Yi.themeInitScript,exports.themePresets=Ji.themePresets,exports.throttle=b.throttle,exports.toCsv=x.toCsv,exports.toRadians=W.toRadians,exports.truncate=g.truncate,exports.turnTime=f.turnTime,exports.uniqueBy=_.uniqueBy,exports.unmask=V.unmask,exports.unprojectMercator=q.unprojectMercator,exports.unregisterAllServiceWorkers=i.unregisterAllServiceWorkers,exports.uploadFingerprint=T.uploadFingerprint,exports.uploadWithProgress=Gr.uploadWithProgress,exports.upsertById=A.upsertById,exports.urlBase64ToUint8Array=F.urlBase64ToUint8Array,exports.useAccessControl=ei.useAccessControl,exports.useAnnounce=n.useAnnounce,exports.useAsync=He.useAsync,exports.useAudio=Di.useAudio,exports.useAudioRecorder=pr.useAudioRecorder,exports.useBarcodeScanner=yr.useBarcodeScanner,exports.useBeforeInstallPrompt=je.useBeforeInstallPrompt,exports.useBreakpoint=ie.useBreakpoint,exports.useCan=ti.useCan,exports.useClickOutside=vt.useClickOutside,exports.useClientFilter=Ie.useClientFilter,exports.useClipboard=qe.useClipboard,exports.useCountdown=dt.useCountdown,exports.useCounter=ut.useCounter,exports.useCreate=M.useCreate,exports.useCursorQuery=di.useCursorQuery,exports.useDataProvider=j.useDataProvider,exports.useDebounce=Pe.useDebounce,exports.useDeepMemo=et.useDeepMemo,exports.useDelete=M.useDelete,exports.useDescribeApiError=Ur.useDescribeApiError,exports.useDisclosure=ct.useDisclosure,exports.useDocumentTitle=pt.useDocumentTitle,exports.useDocumentVisibility=We.useDocumentVisibility,exports.useErrorHandler=Fi.useErrorHandler,exports.useEventListener=ze.useEventListener,exports.useEventStream=Si.useEventStream,exports.useFavicon=mt.useFavicon,exports.useFeatureFlag=X.useFeatureFlag,Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return $.useFieldArray}}),exports.useFlagValue=X.useFlagValue,exports.useFocusTrap=Qe.useFocusTrap,Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return $.useForm}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return $.useFormContext}}),Object.defineProperty(exports,"useFormState",{enumerable:!0,get:function(){return $.useFormState}}),exports.useGeolocation=Xe.useGeolocation,exports.useHover=ot.useHover,exports.useI18n=w.useI18n,exports.useIdle=Ye.useIdle,exports.useInstallPrompt=St.useInstallPrompt,exports.useIntersectionObserver=Ge.useIntersectionObserver,exports.useInterval=nt.useInterval,exports.useIsFirstRender=yt.useIsFirstRender,exports.useKeyboardShortcut=Je.useKeyboardShortcut,exports.useLatestRef=Re.useLatestRef,exports.useList=M.useList,exports.useListState=lt.useListState,exports.useLocalStorage=Be.useLocalStorage,Object.defineProperty(exports,"useLocation",{enumerable:!0,get:function(){return Q.useLocation}}),exports.useLongPress=st.useLongPress,exports.useLongPressHandlers=xt.useLongPressHandlers,exports.useMap=ht.useMap,Object.defineProperty(exports,"useMatch",{enumerable:!0,get:function(){return Q.useMatch}}),exports.useMediaDevices=Dt.useMediaDevices,exports.useMediaPermission=Et.useMediaPermission,exports.useMediaQuery=Le.useMediaQuery,exports.useMicrophone=hr.useMicrophone,exports.useModals=Ft.useModals,Object.defineProperty(exports,"useNavigate",{enumerable:!0,get:function(){return Q.useNavigate}}),exports.useNotificationInbox=_n.useNotificationInbox,exports.useOAuthCallback=oi.useOAuthCallback,exports.useObjectUrl=bt.useObjectUrl,exports.useOfflineMutation=fi.useOfflineMutation,exports.useOfflineSync=kt.useOfflineSync,exports.useOne=M.useOne,exports.useOnline=Ue.useOnline,exports.useOptionalI18n=w.useOptionalI18n,exports.usePaginatedQuery=ui.usePaginatedQuery,exports.usePagination=Fe.usePagination,Object.defineProperty(exports,"useParams",{enumerable:!0,get:function(){return Q.useParams}}),exports.usePasskeyCapabilities=D.usePasskeyCapabilities,exports.usePasskeyRegistration=D.usePasskeyRegistration,exports.usePasskeySignIn=D.usePasskeySignIn,exports.usePoll=qr.usePoll,exports.usePositionTracker=Gi.usePositionTracker,exports.usePrevious=tt.usePrevious,exports.usePushSubscription=Ci.usePushSubscription,exports.useQueue=_t.useQueue,exports.useResizeObserver=Ke.useResizeObserver,Object.defineProperty(exports,"useRouteError",{enumerable:!0,get:function(){return Q.useRouteError}}),exports.useScreenCapture=ji.useScreenCapture,exports.useScrollLock=Ze.useScrollLock,exports.useScrollOverflow=Tt.useScrollOverflow,Object.defineProperty(exports,"useSearchParams",{enumerable:!0,get:function(){return Q.useSearchParams}}),exports.useServiceWorkerUpdate=Ct.useServiceWorkerUpdate,exports.useSet=gt.useSet,exports.useSfxPool=ki.useSfxPool,exports.useSortable=wt.useSortable,exports.useSpeechRecognition=Mi.useSpeechRecognition,exports.useStableCallback=$e.useStableCallback,exports.useStorageEstimate=a.useStorageEstimate,exports.useSyncStatus=kt.useSyncStatus,exports.useTelemetry=Zi.useTelemetry,exports.useTheme=P.useTheme,exports.useThrottle=it.useThrottle,exports.useTimeout=rt.useTimeout,exports.useToast=dn.useToast,exports.useToggle=Ve.useToggle,exports.useTorch=vr.useTorch,exports.useTranslate=w.useTranslate,exports.useTypewriter=ft.useTypewriter,exports.useUpdate=M.useUpdate,exports.useViaCEP=Bi.useViaCEP,exports.useVideoRecorder=Ai.useVideoRecorder,Object.defineProperty(exports,"useWatch",{enumerable:!0,get:function(){return $.useWatch}}),exports.useWebSocket=Hi.useWebSocket,exports.useWindowSize=at.useWindowSize,exports.useZodForm=zi.useZodForm,exports.validateCNPJ=V.validateCNPJ,exports.validateCPF=V.validateCPF,exports.validateForm=Li.validateForm,exports.visibleTurns=f.visibleTurns,exports.withTimeout=Pr.withTimeout,exports.writeXlsx=Ir.writeXlsx,exports.zodResolver=Ri.zodResolver;