tempest-react-sdk 0.67.0 → 0.69.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 (147) hide show
  1. package/README.md +97 -93
  2. package/dist/auth/create-tempest-auth.cjs +1 -1
  3. package/dist/auth/create-tempest-auth.cjs.map +1 -1
  4. package/dist/auth/create-tempest-auth.js +41 -40
  5. package/dist/auth/create-tempest-auth.js.map +1 -1
  6. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  7. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  8. package/dist/components/BottomSheet/BottomSheet.js +34 -30
  9. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  10. package/dist/components/Card/Card.module.cjs.map +1 -1
  11. package/dist/components/Card/Card.module.js.map +1 -1
  12. package/dist/components/Combobox/Combobox.cjs +1 -1
  13. package/dist/components/Combobox/Combobox.cjs.map +1 -1
  14. package/dist/components/Combobox/Combobox.js +78 -77
  15. package/dist/components/Combobox/Combobox.js.map +1 -1
  16. package/dist/components/Combobox/Combobox.module.cjs.map +1 -1
  17. package/dist/components/Combobox/Combobox.module.js.map +1 -1
  18. package/dist/components/Command/Command.cjs +1 -1
  19. package/dist/components/Command/Command.js +4 -4
  20. package/dist/components/DataTable/DataTable.cjs +1 -1
  21. package/dist/components/DataTable/DataTable.cjs.map +1 -1
  22. package/dist/components/DataTable/DataTable.js +138 -127
  23. package/dist/components/DataTable/DataTable.js.map +1 -1
  24. package/dist/components/DataTable/use-dev-warnings.cjs +1 -1
  25. package/dist/components/DataTable/use-dev-warnings.cjs.map +1 -1
  26. package/dist/components/DataTable/use-dev-warnings.js +5 -3
  27. package/dist/components/DataTable/use-dev-warnings.js.map +1 -1
  28. package/dist/components/Drawer/Drawer.cjs +1 -1
  29. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  30. package/dist/components/Drawer/Drawer.js +43 -40
  31. package/dist/components/Drawer/Drawer.js.map +1 -1
  32. package/dist/components/FilterPanel/FilterPanel.cjs +2 -0
  33. package/dist/components/FilterPanel/FilterPanel.cjs.map +1 -0
  34. package/dist/components/FilterPanel/FilterPanel.js +75 -0
  35. package/dist/components/FilterPanel/FilterPanel.js.map +1 -0
  36. package/dist/components/FilterPanel/FilterPanel.module.cjs +3 -0
  37. package/dist/components/FilterPanel/FilterPanel.module.cjs.map +1 -0
  38. package/dist/components/FilterPanel/FilterPanel.module.js +12 -0
  39. package/dist/components/FilterPanel/FilterPanel.module.js.map +1 -0
  40. package/dist/components/Lightbox/Lightbox.cjs +1 -1
  41. package/dist/components/Lightbox/Lightbox.js +5 -5
  42. package/dist/components/Modal/Modal.cjs +1 -1
  43. package/dist/components/Modal/Modal.cjs.map +1 -1
  44. package/dist/components/Modal/Modal.js +44 -41
  45. package/dist/components/Modal/Modal.js.map +1 -1
  46. package/dist/components/Pagination/Pagination.cjs +1 -1
  47. package/dist/components/Pagination/Pagination.cjs.map +1 -1
  48. package/dist/components/Pagination/Pagination.js +31 -30
  49. package/dist/components/Pagination/Pagination.js.map +1 -1
  50. package/dist/components/Portal/tab-bridge.cjs +1 -1
  51. package/dist/components/Portal/tab-bridge.cjs.map +1 -1
  52. package/dist/components/Portal/tab-bridge.js +21 -23
  53. package/dist/components/Portal/tab-bridge.js.map +1 -1
  54. package/dist/components/Select/CaretIcon.cjs +2 -0
  55. package/dist/components/Select/CaretIcon.cjs.map +1 -0
  56. package/dist/components/Select/CaretIcon.js +21 -0
  57. package/dist/components/Select/CaretIcon.js.map +1 -0
  58. package/dist/components/Select/Select.cjs +1 -1
  59. package/dist/components/Select/Select.cjs.map +1 -1
  60. package/dist/components/Select/Select.js +33 -47
  61. package/dist/components/Select/Select.js.map +1 -1
  62. package/dist/components/Select/Select.module.cjs +1 -1
  63. package/dist/components/Select/Select.module.cjs.map +1 -1
  64. package/dist/components/Select/Select.module.js +4 -3
  65. package/dist/components/Select/Select.module.js.map +1 -1
  66. package/dist/components/Select/options.cjs +2 -0
  67. package/dist/components/Select/options.cjs.map +1 -0
  68. package/dist/components/Select/options.js +25 -0
  69. package/dist/components/Select/options.js.map +1 -0
  70. package/dist/components/Sidebar/Sidebar.cjs +1 -1
  71. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  72. package/dist/components/Sidebar/Sidebar.js +49 -43
  73. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  74. package/dist/components/Sidebar/active-nav-key.cjs +2 -0
  75. package/dist/components/Sidebar/active-nav-key.cjs.map +1 -0
  76. package/dist/components/Sidebar/active-nav-key.js +22 -0
  77. package/dist/components/Sidebar/active-nav-key.js.map +1 -0
  78. package/dist/hooks/tab-sequence.cjs +2 -0
  79. package/dist/hooks/tab-sequence.cjs.map +1 -0
  80. package/dist/hooks/tab-sequence.js +53 -0
  81. package/dist/hooks/tab-sequence.js.map +1 -0
  82. package/dist/hooks/use-deep-memo.cjs +1 -1
  83. package/dist/hooks/use-deep-memo.cjs.map +1 -1
  84. package/dist/hooks/use-deep-memo.js +1 -1
  85. package/dist/hooks/use-deep-memo.js.map +1 -1
  86. package/dist/hooks/use-draft-filters.cjs +2 -0
  87. package/dist/hooks/use-draft-filters.cjs.map +1 -0
  88. package/dist/hooks/use-draft-filters.js +49 -0
  89. package/dist/hooks/use-draft-filters.js.map +1 -0
  90. package/dist/hooks/use-focus-trap.cjs +1 -1
  91. package/dist/hooks/use-focus-trap.cjs.map +1 -1
  92. package/dist/hooks/use-focus-trap.js +31 -34
  93. package/dist/hooks/use-focus-trap.js.map +1 -1
  94. package/dist/http/api-client.cjs +1 -1
  95. package/dist/http/api-client.cjs.map +1 -1
  96. package/dist/http/api-client.js +92 -80
  97. package/dist/http/api-client.js.map +1 -1
  98. package/dist/http/credential-scope.cjs +1 -1
  99. package/dist/http/credential-scope.cjs.map +1 -1
  100. package/dist/http/credential-scope.js +5 -3
  101. package/dist/http/credential-scope.js.map +1 -1
  102. package/dist/http/csrf.cjs +2 -0
  103. package/dist/http/csrf.cjs.map +1 -0
  104. package/dist/http/csrf.js +46 -0
  105. package/dist/http/csrf.js.map +1 -0
  106. package/dist/http/resumable-upload.cjs +1 -1
  107. package/dist/http/resumable-upload.cjs.map +1 -1
  108. package/dist/http/resumable-upload.js +131 -123
  109. package/dist/http/resumable-upload.js.map +1 -1
  110. package/dist/http/upload-with-progress.cjs +1 -1
  111. package/dist/http/upload-with-progress.cjs.map +1 -1
  112. package/dist/http/upload-with-progress.js +41 -33
  113. package/dist/http/upload-with-progress.js.map +1 -1
  114. package/dist/query/use-paginated-query.cjs +1 -1
  115. package/dist/query/use-paginated-query.cjs.map +1 -1
  116. package/dist/query/use-paginated-query.js +47 -30
  117. package/dist/query/use-paginated-query.js.map +1 -1
  118. package/dist/styles/FilterPanel.css +2 -0
  119. package/dist/styles/component/Card.css +1 -1
  120. package/dist/styles/component/Combobox.css +4 -3
  121. package/dist/styles/component/FilterPanel.css +5 -0
  122. package/dist/styles/component/Select.css +13 -6
  123. package/dist/styles/core.css +4 -4
  124. package/dist/styles/data.css +4 -0
  125. package/dist/styles/forms.css +17 -9
  126. package/dist/styles/identity.css +1 -1
  127. package/dist/styles/manifest.json +6 -0
  128. package/dist/styles/tokens.css +4 -4
  129. package/dist/styles.css +1 -1
  130. package/dist/sw/create-push-handler.cjs +1 -1
  131. package/dist/sw/create-push-handler.cjs.map +1 -1
  132. package/dist/sw/create-push-handler.js +58 -30
  133. package/dist/sw/create-push-handler.js.map +1 -1
  134. package/dist/sw.d.ts +53 -2
  135. package/dist/tempest-react-sdk.cjs +1 -1
  136. package/dist/tempest-react-sdk.d.ts +711 -24
  137. package/dist/tempest-react-sdk.js +347 -342
  138. package/dist/vite/tempest-csp.cjs +3 -0
  139. package/dist/vite/tempest-csp.cjs.map +1 -0
  140. package/dist/vite/tempest-csp.js +189 -0
  141. package/dist/vite/tempest-csp.js.map +1 -0
  142. package/dist/vite.cjs +1 -1
  143. package/dist/vite.d.ts +145 -0
  144. package/dist/vite.js +2 -1
  145. package/package.json +2 -2
  146. package/template/vite.config.ts +8 -1
  147. package/template-pwa/vite.config.ts +6 -0
@@ -1,2 +1,2 @@
1
- function e(){return globalThis}function t(t={}){let n=e(),{defaultTitle:r=`Notificação`,defaultIcon:i,defaultBadge:a,transform:o}=t;n.addEventListener(`push`,e=>{if(!e.data)return;let t;try{t=e.data.json()}catch{t={title:r,body:e.data.text()}}let s=o?o(t):t;if(!s)return;let c=s.title??r,l={body:s.body,icon:s.icon??i,badge:s.badge??a,image:s.image,tag:s.tag,data:{url:s.url??`/`,...s.data??{}}};e.waitUntil(n.registration.showNotification(c,l))})}function n(t={}){let n=e(),r=t.resolveUrl??(e=>{if(typeof e==`string`)return e;if(e&&typeof e==`object`&&`url`in e){let t=e.url;return typeof t==`string`?t:`/`}return`/`});n.addEventListener(`notificationclick`,e=>{e.notification.close();let t=r(e.notification.data);e.waitUntil((async()=>{let e=await n.clients.matchAll({type:`window`,includeUncontrolled:!0});for(let n of e)if(n.url.includes(t))return n.focus();return n.clients.openWindow(t)})())})}function r(){let t=e();t.addEventListener(`message`,e=>{e.data?.type===`SKIP_WAITING`&&t.skipWaiting()})}exports.installNotificationClickHandler=n,exports.installPushHandler=t,exports.installSkipWaitingListener=r;
1
+ function e(){return globalThis}var t=[`body`,`image`,`tag`,`requireInteraction`,`vibrate`,`silent`,`renotify`,`timestamp`,`dir`,`lang`];function n(e,n,r){let i={icon:e.icon??n,badge:e.badge??r};for(let n of t)e[n]!==void 0&&(i[n]=e[n]);let a={url:e.url??`/`,...e.data??{}};if(e.actions){let t={};i.actions=e.actions.map(({url:e,...n})=>(e!==void 0&&(t[n.action]=e),n)),Object.keys(t).length>0&&(a.actionUrls=t)}return i.data=a,i}function r(t={}){let r=e(),{defaultTitle:i=`Notificação`,defaultIcon:a,defaultBadge:o,transform:s}=t;r.addEventListener(`push`,e=>{if(!e.data)return;let t;try{t=e.data.json()}catch{t={title:i,body:e.data.text()}}let c=s?s(t):t;if(!c)return;let l=c.title??i,u=n(c,a,o);e.waitUntil(r.registration.showNotification(l,u))})}function i(e,t){if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return`/`;let n=e;if(t&&n.actionUrls&&typeof n.actionUrls==`object`){let e=n.actionUrls[t];if(typeof e==`string`)return e}return typeof n.url==`string`?n.url:`/`}function a(e,t){try{return new URL(t,e).href===new URL(e).href}catch{return!1}}function o(t={}){let n=e(),r=t.resolveUrl??i;n.addEventListener(`notificationclick`,e=>{e.notification.close();let t=r(e.notification.data,e.action);e.waitUntil((async()=>{let e=await n.clients.matchAll({type:`window`,includeUncontrolled:!0});for(let n of e)if(a(n.url,t))return n.focus();return n.clients.openWindow(t)})())})}function s(){let t=e();t.addEventListener(`message`,e=>{e.data?.type===`SKIP_WAITING`&&t.skipWaiting()})}exports.installNotificationClickHandler=o,exports.installPushHandler=r,exports.installSkipWaitingListener=s;
2
2
  //# sourceMappingURL=create-push-handler.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-push-handler.cjs","names":[],"sources":["../../src/sw/create-push-handler.ts"],"sourcesContent":["/**\n * Service-worker context helpers for handling `push` and `notificationclick`\n * events. Import these inside your own `sw.ts` — they expect to run in the\n * service-worker global scope, not in the main thread.\n *\n * @example\n * /// <reference lib=\"webworker\" />\n * import { installPushHandler, installNotificationClickHandler } from \"tempest-react-sdk\";\n *\n * installPushHandler({ defaultIcon: \"/icons/Logo.png\" });\n * installNotificationClickHandler();\n */\n\ninterface SwGlobal {\n registration: {\n showNotification(title: string, options?: NotificationOptions): Promise<void>;\n };\n clients: {\n matchAll(options: { type: \"window\"; includeUncontrolled?: boolean }): Promise<\n {\n url: string;\n focused: boolean;\n focus(): Promise<unknown>;\n navigate(url: string): Promise<unknown>;\n }[]\n >;\n openWindow(url: string): Promise<unknown>;\n };\n addEventListener(\n type: \"push\",\n listener: (event: {\n data: { json(): unknown; text(): string } | null;\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n addEventListener(\n type: \"notificationclick\",\n listener: (event: {\n notification: { close(): void; data?: unknown };\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n skipWaiting(): Promise<void>;\n}\n\nfunction getSwScope(): SwGlobal {\n return globalThis as unknown as SwGlobal;\n}\n\nexport interface PushPayload {\n title?: string;\n body?: string;\n icon?: string;\n badge?: string;\n image?: string;\n tag?: string;\n url?: string;\n /** Arbitrary extra data forwarded to `event.notification.data`. */\n data?: Record<string, unknown>;\n}\n\nexport interface InstallPushHandlerOptions {\n /** Title used when the payload omits one. */\n defaultTitle?: string;\n /** Icon used when the payload omits one. */\n defaultIcon?: string;\n /** Badge image (mobile). */\n defaultBadge?: string;\n /**\n * Transform the raw payload before showing the notification. Return `null`\n * to suppress the notification entirely (e.g. silent pings).\n */\n transform?: (payload: PushPayload) => PushPayload | null;\n}\n\n/**\n * Install a `push` event listener that parses the payload as JSON (with a\n * plain-text fallback) and shows a notification.\n */\nexport function installPushHandler(options: InstallPushHandlerOptions = {}): void {\n const sw = getSwScope();\n const { defaultTitle = \"Notificação\", defaultIcon, defaultBadge, transform } = options;\n\n sw.addEventListener(\"push\", (event) => {\n if (!event.data) return;\n\n let raw: PushPayload;\n try {\n raw = event.data.json() as PushPayload;\n } catch {\n raw = { title: defaultTitle, body: event.data.text() };\n }\n\n const payload = transform ? transform(raw) : raw;\n if (!payload) return;\n\n const title = payload.title ?? defaultTitle;\n const notification: NotificationOptions & { image?: string } = {\n body: payload.body,\n icon: payload.icon ?? defaultIcon,\n badge: payload.badge ?? defaultBadge,\n image: payload.image,\n tag: payload.tag,\n data: { url: payload.url ?? \"/\", ...(payload.data ?? {}) },\n };\n\n event.waitUntil(sw.registration.showNotification(title, notification));\n });\n}\n\nexport interface InstallNotificationClickHandlerOptions {\n /** Resolve the destination URL from the notification data. Default: `data.url`. */\n resolveUrl?: (data: unknown) => string;\n}\n\n/**\n * Install a `notificationclick` handler that focuses an existing client when\n * possible and falls back to opening a new window.\n */\nexport function installNotificationClickHandler(\n options: InstallNotificationClickHandlerOptions = {},\n): void {\n const sw = getSwScope();\n const resolveUrl =\n options.resolveUrl ??\n ((data: unknown) => {\n if (typeof data === \"string\") return data;\n if (data && typeof data === \"object\" && \"url\" in data) {\n const url = (data as Record<string, unknown>).url;\n return typeof url === \"string\" ? url : \"/\";\n }\n return \"/\";\n });\n\n sw.addEventListener(\"notificationclick\", (event) => {\n event.notification.close();\n const target = resolveUrl(event.notification.data);\n\n event.waitUntil(\n (async () => {\n const clients = await sw.clients.matchAll({\n type: \"window\",\n includeUncontrolled: true,\n });\n for (const client of clients) {\n if (client.url.includes(target)) {\n return client.focus();\n }\n }\n return sw.clients.openWindow(target);\n })(),\n );\n });\n}\n\n/**\n * Install a `message` listener that activates a waiting worker when the host\n * app sends `{ type: \"SKIP_WAITING\" }`.\n */\nexport function installSkipWaitingListener(): void {\n const sw = getSwScope() as SwGlobal & {\n addEventListener(\n type: \"message\",\n listener: (event: { data?: { type?: string } }) => void,\n ): void;\n };\n sw.addEventListener(\"message\", (event) => {\n if (event.data?.type === \"SKIP_WAITING\") {\n void sw.skipWaiting();\n }\n });\n}\n"],"mappings":"AA6CA,SAAS,GAAuB,CAC5B,OAAO,UACX,CAgCA,SAAgB,EAAmB,EAAqC,CAAC,EAAS,CAC9E,IAAM,EAAK,EAAW,EAChB,CAAE,eAAe,cAAe,cAAa,eAAc,aAAc,EAE/E,EAAG,iBAAiB,OAAS,GAAU,CACnC,GAAI,CAAC,EAAM,KAAM,OAEjB,IAAI,EACJ,GAAI,CACA,EAAM,EAAM,KAAK,KAAK,CAC1B,MAAQ,CACJ,EAAM,CAAE,MAAO,EAAc,KAAM,EAAM,KAAK,KAAK,CAAE,CACzD,CAEA,IAAM,EAAU,EAAY,EAAU,CAAG,EAAI,EAC7C,GAAI,CAAC,EAAS,OAEd,IAAM,EAAQ,EAAQ,OAAS,EACzB,EAAyD,CAC3D,KAAM,EAAQ,KACd,KAAM,EAAQ,MAAQ,EACtB,MAAO,EAAQ,OAAS,EACxB,MAAO,EAAQ,MACf,IAAK,EAAQ,IACb,KAAM,CAAE,IAAK,EAAQ,KAAO,IAAK,GAAI,EAAQ,MAAQ,CAAC,CAAG,CAC7D,EAEA,EAAM,UAAU,EAAG,aAAa,iBAAiB,EAAO,CAAY,CAAC,CACzE,CAAC,CACL,CAWA,SAAgB,EACZ,EAAkD,CAAC,EAC/C,CACJ,IAAM,EAAK,EAAW,EAChB,EACF,EAAQ,aACN,GAAkB,CAChB,GAAI,OAAO,GAAS,SAAU,OAAO,EACrC,GAAI,GAAQ,OAAO,GAAS,UAAY,QAAS,EAAM,CACnD,IAAM,EAAO,EAAiC,IAC9C,OAAO,OAAO,GAAQ,SAAW,EAAM,GAC3C,CACA,MAAO,GACX,GAEJ,EAAG,iBAAiB,oBAAsB,GAAU,CAChD,EAAM,aAAa,MAAM,EACzB,IAAM,EAAS,EAAW,EAAM,aAAa,IAAI,EAEjD,EAAM,WACD,SAAY,CACT,IAAM,EAAU,MAAM,EAAG,QAAQ,SAAS,CACtC,KAAM,SACN,oBAAqB,EACzB,CAAC,EACD,IAAK,IAAM,KAAU,EACjB,GAAI,EAAO,IAAI,SAAS,CAAM,EAC1B,OAAO,EAAO,MAAM,EAG5B,OAAO,EAAG,QAAQ,WAAW,CAAM,CACvC,EAAA,CAAG,CACP,CACJ,CAAC,CACL,CAMA,SAAgB,GAAmC,CAC/C,IAAM,EAAK,EAAW,EAMtB,EAAG,iBAAiB,UAAY,GAAU,CAClC,EAAM,MAAM,OAAS,gBACrB,EAAQ,YAAY,CAE5B,CAAC,CACL"}
1
+ {"version":3,"file":"create-push-handler.cjs","names":[],"sources":["../../src/sw/create-push-handler.ts"],"sourcesContent":["/**\n * Service-worker context helpers for handling `push` and `notificationclick`\n * events. Import these inside your own `sw.ts` — they expect to run in the\n * service-worker global scope, not in the main thread.\n *\n * @example\n * /// <reference lib=\"webworker\" />\n * import { installPushHandler, installNotificationClickHandler } from \"tempest-react-sdk\";\n *\n * installPushHandler({ defaultIcon: \"/icons/Logo.png\" });\n * installNotificationClickHandler();\n */\n\ninterface SwGlobal {\n registration: {\n showNotification(title: string, options?: NotificationOptions): Promise<void>;\n };\n clients: {\n matchAll(options: { type: \"window\"; includeUncontrolled?: boolean }): Promise<\n {\n url: string;\n focused: boolean;\n focus(): Promise<unknown>;\n navigate(url: string): Promise<unknown>;\n }[]\n >;\n openWindow(url: string): Promise<unknown>;\n };\n addEventListener(\n type: \"push\",\n listener: (event: {\n data: { json(): unknown; text(): string } | null;\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n addEventListener(\n type: \"notificationclick\",\n listener: (event: {\n notification: { close(): void; data?: unknown };\n action?: string;\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n skipWaiting(): Promise<void>;\n}\n\nfunction getSwScope(): SwGlobal {\n return globalThis as unknown as SwGlobal;\n}\n\n/**\n * A notification button as the push payload describes it.\n *\n * `action`, `title` and `icon` are forwarded to the browser as a\n * `NotificationAction`. `url` is not part of that type — the browser would drop\n * it — so {@link installPushHandler} moves it into `data.actionUrls`, where\n * {@link installNotificationClickHandler} reads it back when that button is\n * clicked.\n */\nexport interface PushNotificationAction {\n /** Identifier delivered as `event.action` when the button is clicked. */\n action: string;\n /** Button label. */\n title: string;\n /** Button icon URL. */\n icon?: string;\n /** URL opened when this button is clicked. Falls back to the top-level `url`. */\n url?: string;\n}\n\nexport interface PushPayload {\n title?: string;\n body?: string;\n icon?: string;\n badge?: string;\n image?: string;\n tag?: string;\n /** URL opened when the notification body is clicked. Default: `\"/\"`. */\n url?: string;\n /** Buttons rendered on the notification (browsers show up to `Notification.maxActions`). */\n actions?: PushNotificationAction[];\n /** Keep the notification on screen until the user interacts with it. */\n requireInteraction?: boolean;\n /** Vibration pattern in milliseconds (mobile). */\n vibrate?: number | number[];\n /** Show the notification without sound or vibration. */\n silent?: boolean;\n /** Alert again when a notification with the same `tag` replaces an older one. */\n renotify?: boolean;\n /** Event time in epoch milliseconds, shown by some platforms. */\n timestamp?: number;\n /** Text direction of the title and body. */\n dir?: NotificationDirection;\n /** BCP 47 language tag of the title and body. */\n lang?: string;\n /** Arbitrary extra data forwarded to `event.notification.data`. */\n data?: Record<string, unknown>;\n}\n\n/**\n * `NotificationOptions` plus the members TypeScript's DOM lib leaves out\n * because not every engine implements them. Chromium honours all of them;\n * engines without support ignore the unknown keys.\n */\ntype ExtendedNotificationOptions = NotificationOptions & {\n image?: string;\n actions?: Omit<PushNotificationAction, \"url\">[];\n vibrate?: number | number[];\n renotify?: boolean;\n timestamp?: number;\n};\n\n/**\n * Payload keys copied verbatim onto the notification options when present.\n */\nconst FORWARDED_OPTIONS = [\n \"body\",\n \"image\",\n \"tag\",\n \"requireInteraction\",\n \"vibrate\",\n \"silent\",\n \"renotify\",\n \"timestamp\",\n \"dir\",\n \"lang\",\n] as const satisfies readonly (keyof PushPayload & keyof ExtendedNotificationOptions)[];\n\n/**\n * Build the `showNotification` options from a push payload.\n *\n * Keys the payload omits stay absent instead of being set to `undefined`, so\n * the browser applies its own defaults. Per-action `url`s are collected into\n * `data.actionUrls` (only when at least one action carries one) and stripped\n * from the actions handed to the browser.\n *\n * @param payload - The parsed (and transformed) push payload.\n * @param defaultIcon - Icon used when the payload omits one.\n * @param defaultBadge - Badge used when the payload omits one.\n * @returns The options object for `registration.showNotification`.\n */\nfunction buildNotificationOptions(\n payload: PushPayload,\n defaultIcon: string | undefined,\n defaultBadge: string | undefined,\n): ExtendedNotificationOptions {\n const options: Record<string, unknown> = {\n icon: payload.icon ?? defaultIcon,\n badge: payload.badge ?? defaultBadge,\n };\n for (const key of FORWARDED_OPTIONS) {\n if (payload[key] !== undefined) options[key] = payload[key];\n }\n\n const data: Record<string, unknown> = { url: payload.url ?? \"/\", ...(payload.data ?? {}) };\n if (payload.actions) {\n const actionUrls: Record<string, string> = {};\n options.actions = payload.actions.map(({ url, ...action }) => {\n if (url !== undefined) actionUrls[action.action] = url;\n return action;\n });\n if (Object.keys(actionUrls).length > 0) data.actionUrls = actionUrls;\n }\n options.data = data;\n return options as ExtendedNotificationOptions;\n}\n\nexport interface InstallPushHandlerOptions {\n /** Title used when the payload omits one. */\n defaultTitle?: string;\n /** Icon used when the payload omits one. */\n defaultIcon?: string;\n /** Badge image (mobile). */\n defaultBadge?: string;\n /**\n * Transform the raw payload before showing the notification. Return `null`\n * to suppress the notification entirely (e.g. silent pings).\n */\n transform?: (payload: PushPayload) => PushPayload | null;\n}\n\n/**\n * Install a `push` event listener that parses the payload as JSON (with a\n * plain-text fallback) and shows a notification.\n *\n * Every `NotificationOptions` member the payload carries is forwarded —\n * `actions`, `requireInteraction`, `vibrate`, `silent`, `renotify`,\n * `timestamp`, `dir` and `lang` alongside `body`, `icon`, `badge`, `image` and\n * `tag`. `data` receives the top-level `url` (default `\"/\"`), the payload's\n * own `data`, and `actionUrls` mapping each action id to its `url`.\n */\nexport function installPushHandler(options: InstallPushHandlerOptions = {}): void {\n const sw = getSwScope();\n const { defaultTitle = \"Notificação\", defaultIcon, defaultBadge, transform } = options;\n\n sw.addEventListener(\"push\", (event) => {\n if (!event.data) return;\n\n let raw: PushPayload;\n try {\n raw = event.data.json() as PushPayload;\n } catch {\n raw = { title: defaultTitle, body: event.data.text() };\n }\n\n const payload = transform ? transform(raw) : raw;\n if (!payload) return;\n\n const title = payload.title ?? defaultTitle;\n const notification = buildNotificationOptions(payload, defaultIcon, defaultBadge);\n\n event.waitUntil(sw.registration.showNotification(title, notification));\n });\n}\n\nexport interface InstallNotificationClickHandlerOptions {\n /**\n * Resolve the destination URL from the notification data and the clicked\n * action id (`\"\"` or `undefined` for a click on the body). Default: the\n * action's entry in `data.actionUrls`, else `data.url`, else `\"/\"`.\n */\n resolveUrl?: (data: unknown, action: string | undefined) => string;\n}\n\n/**\n * Default URL resolution for a notification click.\n *\n * @param data - `event.notification.data`, as {@link installPushHandler} wrote it.\n * @param action - `event.action`; empty or `undefined` for a click on the body.\n * @returns The action's URL when it has one, else `data.url`, else `\"/\"`.\n */\nfunction defaultResolveUrl(data: unknown, action: string | undefined): string {\n if (typeof data === \"string\") return data;\n if (!data || typeof data !== \"object\") return \"/\";\n const record = data as Record<string, unknown>;\n if (action && record.actionUrls && typeof record.actionUrls === \"object\") {\n const actionUrl = (record.actionUrls as Record<string, unknown>)[action];\n if (typeof actionUrl === \"string\") return actionUrl;\n }\n return typeof record.url === \"string\" ? record.url : \"/\";\n}\n\n/**\n * Whether an open window client is already showing `target`.\n *\n * `target` is resolved against the client's own URL, so a relative path\n * compares on the client's origin, and the comparison is on the full href.\n * A substring test would let `/events/1` match a client on `/events/10`, and\n * `/` match every client.\n *\n * @param clientUrl - The window client's absolute URL.\n * @param target - The URL the click resolved to, absolute or relative.\n * @returns `true` when both point at the same document.\n */\nfunction clientShowsTarget(clientUrl: string, target: string): boolean {\n try {\n return new URL(target, clientUrl).href === new URL(clientUrl).href;\n } catch {\n return false;\n }\n}\n\n/**\n * Install a `notificationclick` handler that focuses an existing client when\n * possible and falls back to opening a new window.\n *\n * A click on an action button opens that action's URL (see\n * {@link PushNotificationAction.url}); a click on the body, or on an action\n * without one, opens the top-level `url`.\n */\nexport function installNotificationClickHandler(\n options: InstallNotificationClickHandlerOptions = {},\n): void {\n const sw = getSwScope();\n const resolveUrl = options.resolveUrl ?? defaultResolveUrl;\n\n sw.addEventListener(\"notificationclick\", (event) => {\n event.notification.close();\n const target = resolveUrl(event.notification.data, event.action);\n\n event.waitUntil(\n (async () => {\n const clients = await sw.clients.matchAll({\n type: \"window\",\n includeUncontrolled: true,\n });\n for (const client of clients) {\n if (clientShowsTarget(client.url, target)) {\n return client.focus();\n }\n }\n return sw.clients.openWindow(target);\n })(),\n );\n });\n}\n\n/**\n * Install a `message` listener that activates a waiting worker when the host\n * app sends `{ type: \"SKIP_WAITING\" }`.\n */\nexport function installSkipWaitingListener(): void {\n const sw = getSwScope() as SwGlobal & {\n addEventListener(\n type: \"message\",\n listener: (event: { data?: { type?: string } }) => void,\n ): void;\n };\n sw.addEventListener(\"message\", (event) => {\n if (event.data?.type === \"SKIP_WAITING\") {\n void sw.skipWaiting();\n }\n });\n}\n"],"mappings":"AA8CA,SAAS,GAAuB,CAC5B,OAAO,UACX,CAmEA,IAAM,EAAoB,CACtB,OACA,QACA,MACA,qBACA,UACA,SACA,WACA,YACA,MACA,MACJ,EAeA,SAAS,EACL,EACA,EACA,EAC2B,CAC3B,IAAM,EAAmC,CACrC,KAAM,EAAQ,MAAQ,EACtB,MAAO,EAAQ,OAAS,CAC5B,EACA,IAAK,IAAM,KAAO,EACV,EAAQ,KAAS,IAAA,KAAW,EAAQ,GAAO,EAAQ,IAG3D,IAAM,EAAgC,CAAE,IAAK,EAAQ,KAAO,IAAK,GAAI,EAAQ,MAAQ,CAAC,CAAG,EACzF,GAAI,EAAQ,QAAS,CACjB,IAAM,EAAqC,CAAC,EAC5C,EAAQ,QAAU,EAAQ,QAAQ,KAAK,CAAE,MAAK,GAAG,MACzC,IAAQ,IAAA,KAAW,EAAW,EAAO,QAAU,GAC5C,EACV,EACG,OAAO,KAAK,CAAU,CAAC,CAAC,OAAS,IAAG,EAAK,WAAa,EAC9D,CAEA,MADA,GAAQ,KAAO,EACR,CACX,CA0BA,SAAgB,EAAmB,EAAqC,CAAC,EAAS,CAC9E,IAAM,EAAK,EAAW,EAChB,CAAE,eAAe,cAAe,cAAa,eAAc,aAAc,EAE/E,EAAG,iBAAiB,OAAS,GAAU,CACnC,GAAI,CAAC,EAAM,KAAM,OAEjB,IAAI,EACJ,GAAI,CACA,EAAM,EAAM,KAAK,KAAK,CAC1B,MAAQ,CACJ,EAAM,CAAE,MAAO,EAAc,KAAM,EAAM,KAAK,KAAK,CAAE,CACzD,CAEA,IAAM,EAAU,EAAY,EAAU,CAAG,EAAI,EAC7C,GAAI,CAAC,EAAS,OAEd,IAAM,EAAQ,EAAQ,OAAS,EACzB,EAAe,EAAyB,EAAS,EAAa,CAAY,EAEhF,EAAM,UAAU,EAAG,aAAa,iBAAiB,EAAO,CAAY,CAAC,CACzE,CAAC,CACL,CAkBA,SAAS,EAAkB,EAAe,EAAoC,CAC1E,GAAI,OAAO,GAAS,SAAU,OAAO,EACrC,GAAI,CAAC,GAAQ,OAAO,GAAS,SAAU,MAAO,IAC9C,IAAM,EAAS,EACf,GAAI,GAAU,EAAO,YAAc,OAAO,EAAO,YAAe,SAAU,CACtE,IAAM,EAAa,EAAO,WAAuC,GACjE,GAAI,OAAO,GAAc,SAAU,OAAO,CAC9C,CACA,OAAO,OAAO,EAAO,KAAQ,SAAW,EAAO,IAAM,GACzD,CAcA,SAAS,EAAkB,EAAmB,EAAyB,CACnE,GAAI,CACA,OAAO,IAAI,IAAI,EAAQ,CAAS,CAAC,CAAC,OAAS,IAAI,IAAI,CAAS,CAAC,CAAC,IAClE,MAAQ,CACJ,MAAO,EACX,CACJ,CAUA,SAAgB,EACZ,EAAkD,CAAC,EAC/C,CACJ,IAAM,EAAK,EAAW,EAChB,EAAa,EAAQ,YAAc,EAEzC,EAAG,iBAAiB,oBAAsB,GAAU,CAChD,EAAM,aAAa,MAAM,EACzB,IAAM,EAAS,EAAW,EAAM,aAAa,KAAM,EAAM,MAAM,EAE/D,EAAM,WACD,SAAY,CACT,IAAM,EAAU,MAAM,EAAG,QAAQ,SAAS,CACtC,KAAM,SACN,oBAAqB,EACzB,CAAC,EACD,IAAK,IAAM,KAAU,EACjB,GAAI,EAAkB,EAAO,IAAK,CAAM,EACpC,OAAO,EAAO,MAAM,EAG5B,OAAO,EAAG,QAAQ,WAAW,CAAM,CACvC,EAAA,CAAG,CACP,CACJ,CAAC,CACL,CAMA,SAAgB,GAAmC,CAC/C,IAAM,EAAK,EAAW,EAMtB,EAAG,iBAAiB,UAAY,GAAU,CAClC,EAAM,MAAM,OAAS,gBACrB,EAAQ,YAAY,CAE5B,CAAC,CACL"}
@@ -2,64 +2,92 @@
2
2
  function e() {
3
3
  return globalThis;
4
4
  }
5
- function t(t = {}) {
6
- let n = e(), { defaultTitle: r = "Notificação", defaultIcon: i, defaultBadge: a, transform: o } = t;
7
- n.addEventListener("push", (e) => {
5
+ var t = [
6
+ "body",
7
+ "image",
8
+ "tag",
9
+ "requireInteraction",
10
+ "vibrate",
11
+ "silent",
12
+ "renotify",
13
+ "timestamp",
14
+ "dir",
15
+ "lang"
16
+ ];
17
+ function n(e, n, r) {
18
+ let i = {
19
+ icon: e.icon ?? n,
20
+ badge: e.badge ?? r
21
+ };
22
+ for (let n of t) e[n] !== void 0 && (i[n] = e[n]);
23
+ let a = {
24
+ url: e.url ?? "/",
25
+ ...e.data ?? {}
26
+ };
27
+ if (e.actions) {
28
+ let t = {};
29
+ i.actions = e.actions.map(({ url: e, ...n }) => (e !== void 0 && (t[n.action] = e), n)), Object.keys(t).length > 0 && (a.actionUrls = t);
30
+ }
31
+ return i.data = a, i;
32
+ }
33
+ function r(t = {}) {
34
+ let r = e(), { defaultTitle: i = "Notificação", defaultIcon: a, defaultBadge: o, transform: s } = t;
35
+ r.addEventListener("push", (e) => {
8
36
  if (!e.data) return;
9
37
  let t;
10
38
  try {
11
39
  t = e.data.json();
12
40
  } catch {
13
41
  t = {
14
- title: r,
42
+ title: i,
15
43
  body: e.data.text()
16
44
  };
17
45
  }
18
- let s = o ? o(t) : t;
19
- if (!s) return;
20
- let c = s.title ?? r, l = {
21
- body: s.body,
22
- icon: s.icon ?? i,
23
- badge: s.badge ?? a,
24
- image: s.image,
25
- tag: s.tag,
26
- data: {
27
- url: s.url ?? "/",
28
- ...s.data ?? {}
29
- }
30
- };
31
- e.waitUntil(n.registration.showNotification(c, l));
46
+ let c = s ? s(t) : t;
47
+ if (!c) return;
48
+ let l = c.title ?? i, u = n(c, a, o);
49
+ e.waitUntil(r.registration.showNotification(l, u));
32
50
  });
33
51
  }
34
- function n(t = {}) {
35
- let n = e(), r = t.resolveUrl ?? ((e) => {
52
+ function i(e, t) {
53
+ if (typeof e == "string") return e;
54
+ if (!e || typeof e != "object") return "/";
55
+ let n = e;
56
+ if (t && n.actionUrls && typeof n.actionUrls == "object") {
57
+ let e = n.actionUrls[t];
36
58
  if (typeof e == "string") return e;
37
- if (e && typeof e == "object" && "url" in e) {
38
- let t = e.url;
39
- return typeof t == "string" ? t : "/";
40
- }
41
- return "/";
42
- });
59
+ }
60
+ return typeof n.url == "string" ? n.url : "/";
61
+ }
62
+ function a(e, t) {
63
+ try {
64
+ return new URL(t, e).href === new URL(e).href;
65
+ } catch {
66
+ return !1;
67
+ }
68
+ }
69
+ function o(t = {}) {
70
+ let n = e(), r = t.resolveUrl ?? i;
43
71
  n.addEventListener("notificationclick", (e) => {
44
72
  e.notification.close();
45
- let t = r(e.notification.data);
73
+ let t = r(e.notification.data, e.action);
46
74
  e.waitUntil((async () => {
47
75
  let e = await n.clients.matchAll({
48
76
  type: "window",
49
77
  includeUncontrolled: !0
50
78
  });
51
- for (let n of e) if (n.url.includes(t)) return n.focus();
79
+ for (let n of e) if (a(n.url, t)) return n.focus();
52
80
  return n.clients.openWindow(t);
53
81
  })());
54
82
  });
55
83
  }
56
- function r() {
84
+ function s() {
57
85
  let t = e();
58
86
  t.addEventListener("message", (e) => {
59
87
  e.data?.type === "SKIP_WAITING" && t.skipWaiting();
60
88
  });
61
89
  }
62
90
  //#endregion
63
- export { n as installNotificationClickHandler, t as installPushHandler, r as installSkipWaitingListener };
91
+ export { o as installNotificationClickHandler, r as installPushHandler, s as installSkipWaitingListener };
64
92
 
65
93
  //# sourceMappingURL=create-push-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-push-handler.js","names":[],"sources":["../../src/sw/create-push-handler.ts"],"sourcesContent":["/**\n * Service-worker context helpers for handling `push` and `notificationclick`\n * events. Import these inside your own `sw.ts` — they expect to run in the\n * service-worker global scope, not in the main thread.\n *\n * @example\n * /// <reference lib=\"webworker\" />\n * import { installPushHandler, installNotificationClickHandler } from \"tempest-react-sdk\";\n *\n * installPushHandler({ defaultIcon: \"/icons/Logo.png\" });\n * installNotificationClickHandler();\n */\n\ninterface SwGlobal {\n registration: {\n showNotification(title: string, options?: NotificationOptions): Promise<void>;\n };\n clients: {\n matchAll(options: { type: \"window\"; includeUncontrolled?: boolean }): Promise<\n {\n url: string;\n focused: boolean;\n focus(): Promise<unknown>;\n navigate(url: string): Promise<unknown>;\n }[]\n >;\n openWindow(url: string): Promise<unknown>;\n };\n addEventListener(\n type: \"push\",\n listener: (event: {\n data: { json(): unknown; text(): string } | null;\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n addEventListener(\n type: \"notificationclick\",\n listener: (event: {\n notification: { close(): void; data?: unknown };\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n skipWaiting(): Promise<void>;\n}\n\nfunction getSwScope(): SwGlobal {\n return globalThis as unknown as SwGlobal;\n}\n\nexport interface PushPayload {\n title?: string;\n body?: string;\n icon?: string;\n badge?: string;\n image?: string;\n tag?: string;\n url?: string;\n /** Arbitrary extra data forwarded to `event.notification.data`. */\n data?: Record<string, unknown>;\n}\n\nexport interface InstallPushHandlerOptions {\n /** Title used when the payload omits one. */\n defaultTitle?: string;\n /** Icon used when the payload omits one. */\n defaultIcon?: string;\n /** Badge image (mobile). */\n defaultBadge?: string;\n /**\n * Transform the raw payload before showing the notification. Return `null`\n * to suppress the notification entirely (e.g. silent pings).\n */\n transform?: (payload: PushPayload) => PushPayload | null;\n}\n\n/**\n * Install a `push` event listener that parses the payload as JSON (with a\n * plain-text fallback) and shows a notification.\n */\nexport function installPushHandler(options: InstallPushHandlerOptions = {}): void {\n const sw = getSwScope();\n const { defaultTitle = \"Notificação\", defaultIcon, defaultBadge, transform } = options;\n\n sw.addEventListener(\"push\", (event) => {\n if (!event.data) return;\n\n let raw: PushPayload;\n try {\n raw = event.data.json() as PushPayload;\n } catch {\n raw = { title: defaultTitle, body: event.data.text() };\n }\n\n const payload = transform ? transform(raw) : raw;\n if (!payload) return;\n\n const title = payload.title ?? defaultTitle;\n const notification: NotificationOptions & { image?: string } = {\n body: payload.body,\n icon: payload.icon ?? defaultIcon,\n badge: payload.badge ?? defaultBadge,\n image: payload.image,\n tag: payload.tag,\n data: { url: payload.url ?? \"/\", ...(payload.data ?? {}) },\n };\n\n event.waitUntil(sw.registration.showNotification(title, notification));\n });\n}\n\nexport interface InstallNotificationClickHandlerOptions {\n /** Resolve the destination URL from the notification data. Default: `data.url`. */\n resolveUrl?: (data: unknown) => string;\n}\n\n/**\n * Install a `notificationclick` handler that focuses an existing client when\n * possible and falls back to opening a new window.\n */\nexport function installNotificationClickHandler(\n options: InstallNotificationClickHandlerOptions = {},\n): void {\n const sw = getSwScope();\n const resolveUrl =\n options.resolveUrl ??\n ((data: unknown) => {\n if (typeof data === \"string\") return data;\n if (data && typeof data === \"object\" && \"url\" in data) {\n const url = (data as Record<string, unknown>).url;\n return typeof url === \"string\" ? url : \"/\";\n }\n return \"/\";\n });\n\n sw.addEventListener(\"notificationclick\", (event) => {\n event.notification.close();\n const target = resolveUrl(event.notification.data);\n\n event.waitUntil(\n (async () => {\n const clients = await sw.clients.matchAll({\n type: \"window\",\n includeUncontrolled: true,\n });\n for (const client of clients) {\n if (client.url.includes(target)) {\n return client.focus();\n }\n }\n return sw.clients.openWindow(target);\n })(),\n );\n });\n}\n\n/**\n * Install a `message` listener that activates a waiting worker when the host\n * app sends `{ type: \"SKIP_WAITING\" }`.\n */\nexport function installSkipWaitingListener(): void {\n const sw = getSwScope() as SwGlobal & {\n addEventListener(\n type: \"message\",\n listener: (event: { data?: { type?: string } }) => void,\n ): void;\n };\n sw.addEventListener(\"message\", (event) => {\n if (event.data?.type === \"SKIP_WAITING\") {\n void sw.skipWaiting();\n }\n });\n}\n"],"mappings":";AA6CA,SAAS,IAAuB;CAC5B,OAAO;AACX;AAgCA,SAAgB,EAAmB,IAAqC,CAAC,GAAS;CAC9E,IAAM,IAAK,EAAW,GAChB,EAAE,kBAAe,eAAe,gBAAa,iBAAc,iBAAc;CAE/E,EAAG,iBAAiB,SAAS,MAAU;EACnC,IAAI,CAAC,EAAM,MAAM;EAEjB,IAAI;EACJ,IAAI;GACA,IAAM,EAAM,KAAK,KAAK;EAC1B,QAAQ;GACJ,IAAM;IAAE,OAAO;IAAc,MAAM,EAAM,KAAK,KAAK;GAAE;EACzD;EAEA,IAAM,IAAU,IAAY,EAAU,CAAG,IAAI;EAC7C,IAAI,CAAC,GAAS;EAEd,IAAM,IAAQ,EAAQ,SAAS,GACzB,IAAyD;GAC3D,MAAM,EAAQ;GACd,MAAM,EAAQ,QAAQ;GACtB,OAAO,EAAQ,SAAS;GACxB,OAAO,EAAQ;GACf,KAAK,EAAQ;GACb,MAAM;IAAE,KAAK,EAAQ,OAAO;IAAK,GAAI,EAAQ,QAAQ,CAAC;GAAG;EAC7D;EAEA,EAAM,UAAU,EAAG,aAAa,iBAAiB,GAAO,CAAY,CAAC;CACzE,CAAC;AACL;AAWA,SAAgB,EACZ,IAAkD,CAAC,GAC/C;CACJ,IAAM,IAAK,EAAW,GAChB,IACF,EAAQ,gBACN,MAAkB;EAChB,IAAI,OAAO,KAAS,UAAU,OAAO;EACrC,IAAI,KAAQ,OAAO,KAAS,YAAY,SAAS,GAAM;GACnD,IAAM,IAAO,EAAiC;GAC9C,OAAO,OAAO,KAAQ,WAAW,IAAM;EAC3C;EACA,OAAO;CACX;CAEJ,EAAG,iBAAiB,sBAAsB,MAAU;EAChD,EAAM,aAAa,MAAM;EACzB,IAAM,IAAS,EAAW,EAAM,aAAa,IAAI;EAEjD,EAAM,WACD,YAAY;GACT,IAAM,IAAU,MAAM,EAAG,QAAQ,SAAS;IACtC,MAAM;IACN,qBAAqB;GACzB,CAAC;GACD,KAAK,IAAM,KAAU,GACjB,IAAI,EAAO,IAAI,SAAS,CAAM,GAC1B,OAAO,EAAO,MAAM;GAG5B,OAAO,EAAG,QAAQ,WAAW,CAAM;EACvC,EAAA,CAAG,CACP;CACJ,CAAC;AACL;AAMA,SAAgB,IAAmC;CAC/C,IAAM,IAAK,EAAW;CAMtB,EAAG,iBAAiB,YAAY,MAAU;EACtC,AAAI,EAAM,MAAM,SAAS,kBACrB,EAAQ,YAAY;CAE5B,CAAC;AACL"}
1
+ {"version":3,"file":"create-push-handler.js","names":[],"sources":["../../src/sw/create-push-handler.ts"],"sourcesContent":["/**\n * Service-worker context helpers for handling `push` and `notificationclick`\n * events. Import these inside your own `sw.ts` — they expect to run in the\n * service-worker global scope, not in the main thread.\n *\n * @example\n * /// <reference lib=\"webworker\" />\n * import { installPushHandler, installNotificationClickHandler } from \"tempest-react-sdk\";\n *\n * installPushHandler({ defaultIcon: \"/icons/Logo.png\" });\n * installNotificationClickHandler();\n */\n\ninterface SwGlobal {\n registration: {\n showNotification(title: string, options?: NotificationOptions): Promise<void>;\n };\n clients: {\n matchAll(options: { type: \"window\"; includeUncontrolled?: boolean }): Promise<\n {\n url: string;\n focused: boolean;\n focus(): Promise<unknown>;\n navigate(url: string): Promise<unknown>;\n }[]\n >;\n openWindow(url: string): Promise<unknown>;\n };\n addEventListener(\n type: \"push\",\n listener: (event: {\n data: { json(): unknown; text(): string } | null;\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n addEventListener(\n type: \"notificationclick\",\n listener: (event: {\n notification: { close(): void; data?: unknown };\n action?: string;\n waitUntil(promise: Promise<unknown>): void;\n }) => void,\n ): void;\n skipWaiting(): Promise<void>;\n}\n\nfunction getSwScope(): SwGlobal {\n return globalThis as unknown as SwGlobal;\n}\n\n/**\n * A notification button as the push payload describes it.\n *\n * `action`, `title` and `icon` are forwarded to the browser as a\n * `NotificationAction`. `url` is not part of that type — the browser would drop\n * it — so {@link installPushHandler} moves it into `data.actionUrls`, where\n * {@link installNotificationClickHandler} reads it back when that button is\n * clicked.\n */\nexport interface PushNotificationAction {\n /** Identifier delivered as `event.action` when the button is clicked. */\n action: string;\n /** Button label. */\n title: string;\n /** Button icon URL. */\n icon?: string;\n /** URL opened when this button is clicked. Falls back to the top-level `url`. */\n url?: string;\n}\n\nexport interface PushPayload {\n title?: string;\n body?: string;\n icon?: string;\n badge?: string;\n image?: string;\n tag?: string;\n /** URL opened when the notification body is clicked. Default: `\"/\"`. */\n url?: string;\n /** Buttons rendered on the notification (browsers show up to `Notification.maxActions`). */\n actions?: PushNotificationAction[];\n /** Keep the notification on screen until the user interacts with it. */\n requireInteraction?: boolean;\n /** Vibration pattern in milliseconds (mobile). */\n vibrate?: number | number[];\n /** Show the notification without sound or vibration. */\n silent?: boolean;\n /** Alert again when a notification with the same `tag` replaces an older one. */\n renotify?: boolean;\n /** Event time in epoch milliseconds, shown by some platforms. */\n timestamp?: number;\n /** Text direction of the title and body. */\n dir?: NotificationDirection;\n /** BCP 47 language tag of the title and body. */\n lang?: string;\n /** Arbitrary extra data forwarded to `event.notification.data`. */\n data?: Record<string, unknown>;\n}\n\n/**\n * `NotificationOptions` plus the members TypeScript's DOM lib leaves out\n * because not every engine implements them. Chromium honours all of them;\n * engines without support ignore the unknown keys.\n */\ntype ExtendedNotificationOptions = NotificationOptions & {\n image?: string;\n actions?: Omit<PushNotificationAction, \"url\">[];\n vibrate?: number | number[];\n renotify?: boolean;\n timestamp?: number;\n};\n\n/**\n * Payload keys copied verbatim onto the notification options when present.\n */\nconst FORWARDED_OPTIONS = [\n \"body\",\n \"image\",\n \"tag\",\n \"requireInteraction\",\n \"vibrate\",\n \"silent\",\n \"renotify\",\n \"timestamp\",\n \"dir\",\n \"lang\",\n] as const satisfies readonly (keyof PushPayload & keyof ExtendedNotificationOptions)[];\n\n/**\n * Build the `showNotification` options from a push payload.\n *\n * Keys the payload omits stay absent instead of being set to `undefined`, so\n * the browser applies its own defaults. Per-action `url`s are collected into\n * `data.actionUrls` (only when at least one action carries one) and stripped\n * from the actions handed to the browser.\n *\n * @param payload - The parsed (and transformed) push payload.\n * @param defaultIcon - Icon used when the payload omits one.\n * @param defaultBadge - Badge used when the payload omits one.\n * @returns The options object for `registration.showNotification`.\n */\nfunction buildNotificationOptions(\n payload: PushPayload,\n defaultIcon: string | undefined,\n defaultBadge: string | undefined,\n): ExtendedNotificationOptions {\n const options: Record<string, unknown> = {\n icon: payload.icon ?? defaultIcon,\n badge: payload.badge ?? defaultBadge,\n };\n for (const key of FORWARDED_OPTIONS) {\n if (payload[key] !== undefined) options[key] = payload[key];\n }\n\n const data: Record<string, unknown> = { url: payload.url ?? \"/\", ...(payload.data ?? {}) };\n if (payload.actions) {\n const actionUrls: Record<string, string> = {};\n options.actions = payload.actions.map(({ url, ...action }) => {\n if (url !== undefined) actionUrls[action.action] = url;\n return action;\n });\n if (Object.keys(actionUrls).length > 0) data.actionUrls = actionUrls;\n }\n options.data = data;\n return options as ExtendedNotificationOptions;\n}\n\nexport interface InstallPushHandlerOptions {\n /** Title used when the payload omits one. */\n defaultTitle?: string;\n /** Icon used when the payload omits one. */\n defaultIcon?: string;\n /** Badge image (mobile). */\n defaultBadge?: string;\n /**\n * Transform the raw payload before showing the notification. Return `null`\n * to suppress the notification entirely (e.g. silent pings).\n */\n transform?: (payload: PushPayload) => PushPayload | null;\n}\n\n/**\n * Install a `push` event listener that parses the payload as JSON (with a\n * plain-text fallback) and shows a notification.\n *\n * Every `NotificationOptions` member the payload carries is forwarded —\n * `actions`, `requireInteraction`, `vibrate`, `silent`, `renotify`,\n * `timestamp`, `dir` and `lang` alongside `body`, `icon`, `badge`, `image` and\n * `tag`. `data` receives the top-level `url` (default `\"/\"`), the payload's\n * own `data`, and `actionUrls` mapping each action id to its `url`.\n */\nexport function installPushHandler(options: InstallPushHandlerOptions = {}): void {\n const sw = getSwScope();\n const { defaultTitle = \"Notificação\", defaultIcon, defaultBadge, transform } = options;\n\n sw.addEventListener(\"push\", (event) => {\n if (!event.data) return;\n\n let raw: PushPayload;\n try {\n raw = event.data.json() as PushPayload;\n } catch {\n raw = { title: defaultTitle, body: event.data.text() };\n }\n\n const payload = transform ? transform(raw) : raw;\n if (!payload) return;\n\n const title = payload.title ?? defaultTitle;\n const notification = buildNotificationOptions(payload, defaultIcon, defaultBadge);\n\n event.waitUntil(sw.registration.showNotification(title, notification));\n });\n}\n\nexport interface InstallNotificationClickHandlerOptions {\n /**\n * Resolve the destination URL from the notification data and the clicked\n * action id (`\"\"` or `undefined` for a click on the body). Default: the\n * action's entry in `data.actionUrls`, else `data.url`, else `\"/\"`.\n */\n resolveUrl?: (data: unknown, action: string | undefined) => string;\n}\n\n/**\n * Default URL resolution for a notification click.\n *\n * @param data - `event.notification.data`, as {@link installPushHandler} wrote it.\n * @param action - `event.action`; empty or `undefined` for a click on the body.\n * @returns The action's URL when it has one, else `data.url`, else `\"/\"`.\n */\nfunction defaultResolveUrl(data: unknown, action: string | undefined): string {\n if (typeof data === \"string\") return data;\n if (!data || typeof data !== \"object\") return \"/\";\n const record = data as Record<string, unknown>;\n if (action && record.actionUrls && typeof record.actionUrls === \"object\") {\n const actionUrl = (record.actionUrls as Record<string, unknown>)[action];\n if (typeof actionUrl === \"string\") return actionUrl;\n }\n return typeof record.url === \"string\" ? record.url : \"/\";\n}\n\n/**\n * Whether an open window client is already showing `target`.\n *\n * `target` is resolved against the client's own URL, so a relative path\n * compares on the client's origin, and the comparison is on the full href.\n * A substring test would let `/events/1` match a client on `/events/10`, and\n * `/` match every client.\n *\n * @param clientUrl - The window client's absolute URL.\n * @param target - The URL the click resolved to, absolute or relative.\n * @returns `true` when both point at the same document.\n */\nfunction clientShowsTarget(clientUrl: string, target: string): boolean {\n try {\n return new URL(target, clientUrl).href === new URL(clientUrl).href;\n } catch {\n return false;\n }\n}\n\n/**\n * Install a `notificationclick` handler that focuses an existing client when\n * possible and falls back to opening a new window.\n *\n * A click on an action button opens that action's URL (see\n * {@link PushNotificationAction.url}); a click on the body, or on an action\n * without one, opens the top-level `url`.\n */\nexport function installNotificationClickHandler(\n options: InstallNotificationClickHandlerOptions = {},\n): void {\n const sw = getSwScope();\n const resolveUrl = options.resolveUrl ?? defaultResolveUrl;\n\n sw.addEventListener(\"notificationclick\", (event) => {\n event.notification.close();\n const target = resolveUrl(event.notification.data, event.action);\n\n event.waitUntil(\n (async () => {\n const clients = await sw.clients.matchAll({\n type: \"window\",\n includeUncontrolled: true,\n });\n for (const client of clients) {\n if (clientShowsTarget(client.url, target)) {\n return client.focus();\n }\n }\n return sw.clients.openWindow(target);\n })(),\n );\n });\n}\n\n/**\n * Install a `message` listener that activates a waiting worker when the host\n * app sends `{ type: \"SKIP_WAITING\" }`.\n */\nexport function installSkipWaitingListener(): void {\n const sw = getSwScope() as SwGlobal & {\n addEventListener(\n type: \"message\",\n listener: (event: { data?: { type?: string } }) => void,\n ): void;\n };\n sw.addEventListener(\"message\", (event) => {\n if (event.data?.type === \"SKIP_WAITING\") {\n void sw.skipWaiting();\n }\n });\n}\n"],"mappings":";AA8CA,SAAS,IAAuB;CAC5B,OAAO;AACX;AAmEA,IAAM,IAAoB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAeA,SAAS,EACL,GACA,GACA,GAC2B;CAC3B,IAAM,IAAmC;EACrC,MAAM,EAAQ,QAAQ;EACtB,OAAO,EAAQ,SAAS;CAC5B;CACA,KAAK,IAAM,KAAO,GACd,AAAI,EAAQ,OAAS,KAAA,MAAW,EAAQ,KAAO,EAAQ;CAG3D,IAAM,IAAgC;EAAE,KAAK,EAAQ,OAAO;EAAK,GAAI,EAAQ,QAAQ,CAAC;CAAG;CACzF,IAAI,EAAQ,SAAS;EACjB,IAAM,IAAqC,CAAC;EAK5C,AAJA,EAAQ,UAAU,EAAQ,QAAQ,KAAK,EAAE,QAAK,GAAG,SACzC,MAAQ,KAAA,MAAW,EAAW,EAAO,UAAU,IAC5C,EACV,GACG,OAAO,KAAK,CAAU,CAAC,CAAC,SAAS,MAAG,EAAK,aAAa;CAC9D;CAEA,OADA,EAAQ,OAAO,GACR;AACX;AA0BA,SAAgB,EAAmB,IAAqC,CAAC,GAAS;CAC9E,IAAM,IAAK,EAAW,GAChB,EAAE,kBAAe,eAAe,gBAAa,iBAAc,iBAAc;CAE/E,EAAG,iBAAiB,SAAS,MAAU;EACnC,IAAI,CAAC,EAAM,MAAM;EAEjB,IAAI;EACJ,IAAI;GACA,IAAM,EAAM,KAAK,KAAK;EAC1B,QAAQ;GACJ,IAAM;IAAE,OAAO;IAAc,MAAM,EAAM,KAAK,KAAK;GAAE;EACzD;EAEA,IAAM,IAAU,IAAY,EAAU,CAAG,IAAI;EAC7C,IAAI,CAAC,GAAS;EAEd,IAAM,IAAQ,EAAQ,SAAS,GACzB,IAAe,EAAyB,GAAS,GAAa,CAAY;EAEhF,EAAM,UAAU,EAAG,aAAa,iBAAiB,GAAO,CAAY,CAAC;CACzE,CAAC;AACL;AAkBA,SAAS,EAAkB,GAAe,GAAoC;CAC1E,IAAI,OAAO,KAAS,UAAU,OAAO;CACrC,IAAI,CAAC,KAAQ,OAAO,KAAS,UAAU,OAAO;CAC9C,IAAM,IAAS;CACf,IAAI,KAAU,EAAO,cAAc,OAAO,EAAO,cAAe,UAAU;EACtE,IAAM,IAAa,EAAO,WAAuC;EACjE,IAAI,OAAO,KAAc,UAAU,OAAO;CAC9C;CACA,OAAO,OAAO,EAAO,OAAQ,WAAW,EAAO,MAAM;AACzD;AAcA,SAAS,EAAkB,GAAmB,GAAyB;CACnE,IAAI;EACA,OAAO,IAAI,IAAI,GAAQ,CAAS,CAAC,CAAC,SAAS,IAAI,IAAI,CAAS,CAAC,CAAC;CAClE,QAAQ;EACJ,OAAO;CACX;AACJ;AAUA,SAAgB,EACZ,IAAkD,CAAC,GAC/C;CACJ,IAAM,IAAK,EAAW,GAChB,IAAa,EAAQ,cAAc;CAEzC,EAAG,iBAAiB,sBAAsB,MAAU;EAChD,EAAM,aAAa,MAAM;EACzB,IAAM,IAAS,EAAW,EAAM,aAAa,MAAM,EAAM,MAAM;EAE/D,EAAM,WACD,YAAY;GACT,IAAM,IAAU,MAAM,EAAG,QAAQ,SAAS;IACtC,MAAM;IACN,qBAAqB;GACzB,CAAC;GACD,KAAK,IAAM,KAAU,GACjB,IAAI,EAAkB,EAAO,KAAK,CAAM,GACpC,OAAO,EAAO,MAAM;GAG5B,OAAO,EAAG,QAAQ,WAAW,CAAM;EACvC,EAAA,CAAG,CACP;CACJ,CAAC;AACL;AAMA,SAAgB,IAAmC;CAC/C,IAAM,IAAK,EAAW;CAMtB,EAAG,iBAAiB,YAAY,MAAU;EACtC,AAAI,EAAM,MAAM,SAAS,kBACrB,EAAQ,YAAY;CAE5B,CAAC;AACL"}
package/dist/sw.d.ts CHANGED
@@ -110,12 +110,20 @@ export declare interface InstallBackgroundSyncOptions {
110
110
  /**
111
111
  * Install a `notificationclick` handler that focuses an existing client when
112
112
  * possible and falls back to opening a new window.
113
+ *
114
+ * A click on an action button opens that action's URL (see
115
+ * {@link PushNotificationAction.url}); a click on the body, or on an action
116
+ * without one, opens the top-level `url`.
113
117
  */
114
118
  export declare function installNotificationClickHandler(options?: InstallNotificationClickHandlerOptions): void;
115
119
 
116
120
  export declare interface InstallNotificationClickHandlerOptions {
117
- /** Resolve the destination URL from the notification data. Default: `data.url`. */
118
- resolveUrl?: (data: unknown) => string;
121
+ /**
122
+ * Resolve the destination URL from the notification data and the clicked
123
+ * action id (`""` or `undefined` for a click on the body). Default: the
124
+ * action's entry in `data.actionUrls`, else `data.url`, else `"/"`.
125
+ */
126
+ resolveUrl?: (data: unknown, action: string | undefined) => string;
119
127
  }
120
128
 
121
129
  /**
@@ -154,6 +162,12 @@ export declare interface InstallPrecacheOptions {
154
162
  /**
155
163
  * Install a `push` event listener that parses the payload as JSON (with a
156
164
  * plain-text fallback) and shows a notification.
165
+ *
166
+ * Every `NotificationOptions` member the payload carries is forwarded —
167
+ * `actions`, `requireInteraction`, `vibrate`, `silent`, `renotify`,
168
+ * `timestamp`, `dir` and `lang` alongside `body`, `icon`, `badge`, `image` and
169
+ * `tag`. `data` receives the top-level `url` (default `"/"`), the payload's
170
+ * own `data`, and `actionUrls` mapping each action id to its `url`.
157
171
  */
158
172
  export declare function installPushHandler(options?: InstallPushHandlerOptions): void;
159
173
 
@@ -201,6 +215,26 @@ export declare function installSkipWaitingListener(): void;
201
215
  * installPushHandler({ defaultIcon: "/icons/Logo.png" });
202
216
  * installNotificationClickHandler();
203
217
  */
218
+ /**
219
+ * A notification button as the push payload describes it.
220
+ *
221
+ * `action`, `title` and `icon` are forwarded to the browser as a
222
+ * `NotificationAction`. `url` is not part of that type — the browser would drop
223
+ * it — so {@link installPushHandler} moves it into `data.actionUrls`, where
224
+ * {@link installNotificationClickHandler} reads it back when that button is
225
+ * clicked.
226
+ */
227
+ export declare interface PushNotificationAction {
228
+ /** Identifier delivered as `event.action` when the button is clicked. */
229
+ action: string;
230
+ /** Button label. */
231
+ title: string;
232
+ /** Button icon URL. */
233
+ icon?: string;
234
+ /** URL opened when this button is clicked. Falls back to the top-level `url`. */
235
+ url?: string;
236
+ }
237
+
204
238
  export declare interface PushPayload {
205
239
  title?: string;
206
240
  body?: string;
@@ -208,7 +242,24 @@ export declare interface PushPayload {
208
242
  badge?: string;
209
243
  image?: string;
210
244
  tag?: string;
245
+ /** URL opened when the notification body is clicked. Default: `"/"`. */
211
246
  url?: string;
247
+ /** Buttons rendered on the notification (browsers show up to `Notification.maxActions`). */
248
+ actions?: PushNotificationAction[];
249
+ /** Keep the notification on screen until the user interacts with it. */
250
+ requireInteraction?: boolean;
251
+ /** Vibration pattern in milliseconds (mobile). */
252
+ vibrate?: number | number[];
253
+ /** Show the notification without sound or vibration. */
254
+ silent?: boolean;
255
+ /** Alert again when a notification with the same `tag` replaces an older one. */
256
+ renotify?: boolean;
257
+ /** Event time in epoch milliseconds, shown by some platforms. */
258
+ timestamp?: number;
259
+ /** Text direction of the title and body. */
260
+ dir?: NotificationDirection;
261
+ /** BCP 47 language tag of the title and body. */
262
+ lang?: string;
212
263
  /** Arbitrary extra data forwarded to `event.notification.data`. */
213
264
  data?: Record<string, unknown>;
214
265
  }
@@ -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("./utils/dev-mode.cjs"),ie=require("./components/AppBar/AppBar.cjs"),ae=require("./hooks/use-breakpoint.cjs"),oe=require("./components/AppShell/AppShell.cjs"),se=require("./components/AspectRatio/AspectRatio.cjs"),ce=require("./components/Avatar/Avatar.cjs"),le=require("./components/AvatarGroup/AvatarGroup.cjs"),ue=require("./components/Badge/Badge.cjs"),de=require("./components/Banner/Banner.cjs"),fe=require("./components/BottomNavigation/BottomNavigation.cjs"),pe=require("./components/BottomSheet/BottomSheet.cjs"),me=require("./components/Breadcrumbs/Breadcrumbs.cjs"),he=require("./components/Button/Button.cjs"),ge=require("./components/Card/Card.cjs"),_e=require("./components/Center/Center.cjs"),ve=require("./components/Checkbox/Checkbox.cjs"),ye=require("./components/ChipInput/ChipInput.cjs"),be=require("./components/Portal/Portal.cjs"),xe=require("./components/Combobox/Combobox.cjs"),Se=require("./components/Modal/Modal.cjs"),Ce=require("./components/ConfirmDialog/ConfirmDialog.cjs"),we=require("./components/Input/Input.cjs"),Te=require("./components/DatePicker/DatePicker.cjs"),Ee=require("./components/Divider/Divider.cjs"),De=require("./components/Drawer/Drawer.cjs"),Oe=require("./components/DropdownMenu/DropdownMenu.cjs"),ke=require("./components/Dropzone/Dropzone.cjs"),Ae=require("./components/EmptyState/EmptyState.cjs"),je=require("./components/ErrorState/ErrorState.cjs"),Me=require("./components/FileUpload/FileUpload.cjs"),e=require("./components/Form/Form.cjs"),t=require("./components/Layout/Layout.cjs"),n=require("./hooks/pwa-env.cjs"),Ne=require("./hooks/use-install-prompt.cjs"),Pe=require("./components/InstallButton/install-hints.cjs"),Fe=require("./components/InstallBanner/InstallBanner.cjs"),Ie=require("./components/InstallButton/InstallButton.cjs"),Le=require("./hooks/use-debounce.cjs"),Re=require("./hooks/use-pagination.cjs"),ze=require("./hooks/use-client-filter.cjs"),Be=require("./hooks/use-media-query.cjs"),Ve=require("./hooks/use-latest-ref.cjs"),He=require("./hooks/use-event-listener.cjs"),Ue=require("./hooks/use-local-storage.cjs"),We=require("./hooks/use-toggle.cjs"),Ge=require("./hooks/use-async.cjs"),Ke=require("./hooks/use-online.cjs"),qe=require("./hooks/use-document-visibility.cjs"),Je=require("./hooks/use-intersection-observer.cjs"),Ye=require("./hooks/use-resize-observer.cjs"),Xe=require("./hooks/use-clipboard.cjs"),Ze=require("./hooks/use-keyboard-shortcut.cjs"),Qe=require("./hooks/use-before-install-prompt.cjs"),$e=require("./hooks/use-idle.cjs"),et=require("./hooks/use-fullscreen.cjs"),r=require("./hooks/use-push-to-talk.cjs"),tt=require("./hooks/use-geolocation.cjs"),nt=require("./hooks/use-scroll-lock.cjs"),rt=require("./hooks/use-focus-trap.cjs"),i=require("./hooks/use-announce.cjs"),it=require("./hooks/use-stable-callback.cjs"),at=require("./hooks/use-deep-memo.cjs"),ot=require("./hooks/use-previous.cjs"),st=require("./hooks/use-interval.cjs"),ct=require("./hooks/use-timeout.cjs"),lt=require("./hooks/use-throttle.cjs"),ut=require("./hooks/use-window-size.cjs"),dt=require("./hooks/use-hover.cjs"),ft=require("./hooks/use-long-press.cjs"),pt=require("./hooks/use-disclosure.cjs"),mt=require("./hooks/use-list-state.cjs"),ht=require("./hooks/use-counter.cjs"),gt=require("./hooks/use-countdown.cjs"),_t=require("./hooks/use-typewriter.cjs"),vt=require("./hooks/use-document-title.cjs"),yt=require("./hooks/use-favicon.cjs"),bt=require("./hooks/use-map.cjs"),xt=require("./hooks/use-set.cjs"),St=require("./hooks/use-queue.cjs"),Ct=require("./hooks/use-click-outside.cjs"),wt=require("./hooks/use-is-first-render.cjs"),Tt=require("./hooks/use-object-url.cjs"),Et=require("./hooks/use-long-press-handlers.cjs"),a=require("./sw/register-service-worker.cjs"),Dt=require("./hooks/use-service-worker-update.cjs"),o=require("./hooks/use-storage-estimate.cjs"),Ot=require("./hooks/use-sortable.cjs"),kt=require("./hooks/use-scroll-overflow.cjs"),At=require("./hooks/use-media-permission.cjs"),jt=require("./hooks/use-media-devices.cjs"),Mt=require("./components/OfflineIndicator/OfflineIndicator.cjs"),Nt=require("./offline/use-offline-sync.cjs"),Pt=require("./components/VisuallyHidden/VisuallyHidden.cjs"),Ft=require("./components/SyncStatusBadge/SyncStatusBadge.cjs"),It=require("./components/UpdatePrompt/UpdatePrompt.cjs"),Lt=require("./components/Kanban/Kanban.cjs"),Rt=require("./components/Kbd/Kbd.cjs"),zt=require("./components/ModalsManager/ModalsManager.cjs"),Bt=require("./components/Navbar/Navbar.cjs"),Vt=require("./components/NProgress/NProgress.cjs"),Ht=require("./components/Page/Page.cjs"),Ut=require("./components/Pagination/Pagination.cjs"),Wt=require("./components/PasswordInput/PasswordInput.cjs"),Gt=require("./components/PinInput/PinInput.cjs"),Kt=require("./components/Popover/Popover.cjs"),qt=require("./components/Progress/Progress.cjs"),Jt=require("./components/Radio/Radio.cjs"),Yt=require("./components/RangeSlider/RangeSlider.cjs"),Xt=require("./components/RatingStars/RatingStars.cjs"),Zt=require("./components/Responsive/Responsive.cjs"),Qt=require("./components/SafeArea/SafeArea.cjs"),$t=require("./components/SearchBar/SearchBar.cjs"),en=require("./components/SegmentedControl/SegmentedControl.cjs"),tn=require("./components/Select/Select.cjs"),nn=require("./components/Sidebar/Sidebar.cjs"),rn=require("./components/Skeleton/Skeleton.cjs"),an=require("./components/Spacer/Spacer.cjs"),on=require("./components/Spinner/Spinner.cjs"),sn=require("./components/Stat/Stat.cjs"),cn=require("./components/Stepper/Stepper.cjs"),ln=require("./utils/absent.cjs"),s=require("./utils/numbers.cjs"),un=require("./components/StepperInput/StepperInput.cjs"),dn=require("./components/Switch/Switch.cjs"),fn=require("./components/Tag/Tag.cjs"),pn=require("./components/Table/Table.cjs"),mn=require("./components/Tabs/Tabs.cjs"),hn=require("./components/Textarea/Textarea.cjs"),gn=require("./components/Timeline/Timeline.cjs"),_n=require("./components/Tooltip/Tooltip.cjs"),vn=require("./components/Toast/ToastProvider.cjs"),yn=require("./components/ImageCropper/ImageCropper.cjs"),bn=require("./components/Sparkline/Sparkline.cjs"),xn=require("./components/Scheduler/Scheduler.cjs"),Sn=require("./utils/relative-time.cjs"),Cn=require("./components/NotificationCenter/NotificationCenter.cjs"),wn=require("./components/NotificationCenter/use-notification-inbox.cjs"),Tn=require("./components/VideoPlayer/playback-rates.cjs"),En=require("./components/VideoPlayer/VideoPlayer.cjs"),Dn=require("./components/VirtualList/VirtualList.cjs"),On=require("./utils/compare-values.cjs"),kn=require("./components/VirtualTable/VirtualTable.cjs"),c=require("./components/QRCode/qr-encode.cjs"),An=require("./components/QRCode/QRCode.cjs"),jn=require("./components/CopyButton/CopyButton.cjs"),Mn=require("./components/CodeBlock/CodeBlock.cjs"),Nn=require("./components/RelativeTime/RelativeTime.cjs"),Pn=require("./components/Money/Money.cjs"),Fn=require("./components/TreeView/TreeView.cjs"),In=require("./components/TruncateText/TruncateText.cjs"),Ln=require("./components/ClickOutside/ClickOutside.cjs"),Rn=require("./components/ConditionalWrapper/ConditionalWrapper.cjs"),zn=require("./components/For/For.cjs"),Bn=require("./components/ErrorText/ErrorText.cjs"),Vn=require("./components/Image/Image.cjs"),Hn=require("./components/DataList/DataList.cjs"),Un=require("./components/DescriptionList/DescriptionList.cjs"),Wn=require("./components/Toggle/Toggle.cjs"),Gn=require("./components/ToggleGroup/ToggleGroup.cjs"),Kn=require("./components/Label/Label.cjs"),qn=require("./components/Collapsible/Collapsible.cjs"),Jn=require("./components/ContextMenu/ContextMenu.cjs"),Yn=require("./components/HoverCard/HoverCard.cjs"),Xn=require("./components/Command/Command.cjs"),Zn=require("./components/ScrollArea/ScrollArea.cjs"),Qn=require("./components/Resizable/Resizable.cjs"),$n=require("./components/Calendar/Calendar.cjs"),er=require("./components/Slider/Slider.cjs"),tr=require("./components/MultiSelect/MultiSelect.cjs"),nr=require("./components/DateRangePicker/DateRangePicker.cjs"),rr=require("./components/NavigationMenu/NavigationMenu.cjs"),ir=require("./components/Menubar/Menubar.cjs"),ar=require("./components/Carousel/Carousel.cjs"),or=require("./components/DataTable/DataTable.cjs"),sr=require("./components/ListTile/ListTile.cjs"),cr=require("./components/FloatingActionButton/FloatingActionButton.cjs"),lr=require("./components/NavigationRail/NavigationRail.cjs"),ur=require("./components/TimePicker/TimePicker.cjs"),dr=require("./components/RefreshIndicator/RefreshIndicator.cjs"),fr=require("./components/Wizard/Wizard.cjs"),pr=require("./components/Lightbox/Lightbox.cjs"),mr=require("./components/SignaturePad/SignaturePad.cjs"),hr=require("./components/Chat/chat-receipt.cjs"),gr=require("./components/Chat/ChatBubble.cjs"),_r=require("./components/Chat/ChatComposer.cjs"),vr=require("./components/Chat/Chat.cjs"),yr=require("./audio/audio-output.cjs"),br=require("./components/AudioPlayer/AudioPlayer.cjs"),xr=require("./capture/media-recorder.cjs"),l=require("./audio/audio-recorder.cjs"),Sr=require("./audio/level-meter.cjs"),Cr=require("./audio/use-audio-recorder.cjs"),wr=require("./audio/media-access.cjs"),Tr=require("./audio/use-microphone.cjs"),Er=require("./audio/wav.cjs"),Dr=require("./components/AudioRecorder/AudioRecorder.cjs"),u=require("./capture/barcode.cjs"),Or=require("./capture/use-torch.cjs"),kr=require("./capture/use-barcode-scanner.cjs"),Ar=require("./components/BarcodeScanner/BarcodeScanner.cjs"),d=require("./components/AIChat/ai-chat-turns.cjs"),jr=require("./components/AIChat/AIChatComposer.cjs"),Mr=require("./components/Markdown/Markdown.cjs"),Nr=require("./components/AIChat/AIChatTurn.cjs"),Pr=require("./components/AIChat/AIChat.cjs"),Fr=require("./components/Transfer/Transfer.cjs"),Ir=require("./components/Masonry/Masonry.cjs"),Lr=require("./components/Tour/Tour.cjs"),Rr=require("./components/BarList/bar-list-model.cjs"),zr=require("./components/BarList/BarList.cjs"),f=require("./components/FilterBar/filter-model.cjs"),Br=require("./components/FilterBar/FilterBar.cjs"),p=require("./utils/format.cjs"),Vr=require("./components/FilterBar/filter-apply.cjs"),Hr=require("./components/FilterBar/filter-query.cjs"),m=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"),Ur=require("./utils/promises.cjs"),Wr=require("./utils/ids.cjs"),Gr=require("./utils/xlsx.cjs"),Kr=require("./share/share.cjs"),qr=require("./share/share-or-download.cjs"),Jr=require("./utils/csv.cjs"),Yr=require("./http/build-url.cjs"),Xr=require("./http/credential-scope.cjs"),x=require("./http/errors.cjs"),Zr=require("./http/retry.cjs"),Qr=require("./http/api-client.cjs"),S=require("./http/describe-api-error.cjs"),$r=require("./i18n/create-i18n.cjs"),C=require("./i18n/I18nProvider.cjs"),ei=require("./http/use-describe-api-error.cjs"),ti=require("./http/parse-response.cjs"),ni=require("./http/upload-with-progress.cjs"),ri=require("./http/idempotency.cjs"),w=require("./http/resumable-upload.cjs"),ii=require("./http/use-poll.cjs"),ai=require("./auth/create-auth-store.cjs"),oi=require("./auth/AuthGuard.cjs"),si=require("./auth/jwt.cjs"),ci=require("./auth/lazy-with-retry.cjs"),li=require("./auth/refresh-queue.cjs"),T=require("./auth/passkey.cjs"),E=require("./auth/use-passkey.cjs"),ui=require("./auth/create-tempest-auth.cjs"),di=require("./access/access-control-context.cjs"),fi=require("./access/use-can.cjs"),pi=require("./access/Can.cjs"),mi=require("./access/create-role-access-control.cjs"),hi=require("./access/permissions-from-token.cjs"),gi=require("./oauth/GoogleSignIn.cjs"),_i=require("./oauth/use-oauth-callback.cjs"),D=require("./query/constants.cjs"),vi=require("./query/create-query-keys.cjs"),yi=require("./query/retry-policy.cjs"),bi=require("./query/QueryProvider.cjs"),O=require("./query/pagination.cjs"),xi=require("./query/use-paginated-query.cjs"),Si=require("./query/use-cursor-query.cjs"),Ci=require("./query/use-offline-mutation.cjs"),k=require("./query/optimistic.cjs"),wi=require("./offline/create-offline-store.cjs"),Ti=require("./query/offline-persistence.cjs"),Ei=require("./data/create-data-provider.cjs"),A=require("./data/data-provider-context.cjs"),j=require("./data/use-resource.cjs"),Di=require("./router/RouteGuard.cjs"),M=require("./router/AppRouter.cjs"),Oi=require("./store/create-store.cjs"),ki=require("./store/create-selectors.cjs"),N=require("./theme/ThemeProvider.cjs"),Ai=require("./error-boundary/ErrorBoundary.cjs"),ji=require("./app/AppProviders.cjs"),Mi=require("./sse/create-event-stream.cjs"),Ni=require("./sse/use-event-stream.cjs"),Pi=require("./push/utils.cjs"),P=require("./push/web-push-client.cjs"),Fi=require("./push/use-push-subscription.cjs"),F=require("./sw/create-push-handler.cjs"),I=require("./sw/cache.cjs"),Ii=require("./sw/background-sync.cjs"),Li=require("./sw/periodic-sync.cjs"),Ri=require("./sw/cache-inspect.cjs"),L=require("./audio/audio-player.cjs"),zi=require("./audio/use-audio.cjs"),Bi=require("./audio/sfx-pool.cjs"),Vi=require("./audio/use-sfx-pool.cjs"),Hi=require("./audio/audio-bus.cjs"),Ui=require("./audio/use-audio-bus.cjs"),R=require("./audio/voice-chain.cjs"),Wi=require("./audio/noise-floor.cjs"),Gi=require("./audio/voice-activity.cjs"),z=require("./capture/video-recorder.cjs"),Ki=require("./capture/use-video-recorder.cjs"),qi=require("./capture/use-screen-capture.cjs"),Ji=require("./capture/use-speech-recognition.cjs"),Yi=require("./offline/create-offline-database.cjs"),Xi=require("./offline/create-offline-sync.cjs"),Zi=require("./offline/conflict.cjs"),Qi=require("./error-boundary/use-error-handler.cjs"),$i=require("./forms/FormField.cjs"),ea=require("./forms/validate-form.cjs"),ta=require("./forms/zod-resolver.cjs"),na=require("./forms/use-zod-form.cjs"),B=require("./forms/br-validators.cjs"),V=require("./forms/masked-inputs.cjs"),ra=require("./forms/use-viacep.cjs"),ia=require("./ws/resilience.cjs"),aa=require("./ws/create-web-socket.cjs"),oa=require("./ws/use-web-socket.cjs"),sa=require("./webrtc/opus-sdp.cjs"),ca=require("./webrtc/sender-bitrate.cjs"),H=require("./webrtc/link-stats.cjs"),la=require("./webrtc/use-link-stats.cjs"),ua=require("./webrtc/mesh-quality.cjs"),da=require("./webrtc/peer-mesh.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"),fa=require("./geo/routing.cjs"),pa=require("./geo/create-position-tracker.cjs"),ma=require("./geo/use-position-tracker.cjs"),ha=require("./geo/TrajectoryMap.cjs"),ga=require("./theme/apply-theme.cjs"),J=require("./theme/color.cjs"),_a=require("./theme/create-theme.cjs"),va=require("./theme/theme-presets.cjs"),ya=require("./theme/initial-theme.cjs"),Y=require("./logger/logger.cjs"),ba=require("./telemetry/TelemetryProvider.cjs"),xa=require("./telemetry/console-adapter.cjs"),Sa=require("./telemetry/sentry-adapter.cjs"),Ca=require("./telemetry/posthog-adapter.cjs"),X=require("./feature-flags/FeatureFlagsProvider.cjs"),wa=require("./feature-flags/in-memory-adapter.cjs"),Ta=require("./feature-flags/growthbook-adapter.cjs"),Ea=require("./feature-flags/launchdarkly-adapter.cjs"),Z=require("./charts/scales.cjs"),Da=require("./perf/cache-size.cjs"),Oa=require("./perf/device.cjs"),ka=require("./perf/format.cjs"),Aa=require("./perf/profiler.cjs");let Q=require("react-router"),$=require("react-hook-form");exports.ABSENT_TEXT=ln.ABSENT_TEXT,exports.AIChat=Pr.AIChat,exports.AIChatComposer=jr.AIChatComposer,exports.AIChatTurn=Nr.AIChatTurn,exports.ALL_BARCODE_FORMATS=u.ALL_BARCODE_FORMATS,exports.API_ERROR_OFFLINE_KEY=S.API_ERROR_OFFLINE_KEY,exports.API_ERROR_VALIDATION_KEY=S.API_ERROR_VALIDATION_KEY,exports.AUDIO_MIME_CANDIDATES=l.AUDIO_MIME_CANDIDATES,exports.AccessControlProvider=di.AccessControlProvider,exports.Accordion=te.Accordion,exports.Alert=ne.Alert,exports.AppBar=ie.AppBar,exports.AppProviders=ji.AppProviders,exports.AppRouter=M.AppRouter,exports.AppShell=oe.AppShell,exports.AspectRatio=se.AspectRatio,exports.AudioPlayer=br.AudioPlayer,exports.AudioRecorder=Dr.AudioRecorder,exports.AuthGuard=oi.AuthGuard,exports.Avatar=ce.Avatar,exports.AvatarGroup=le.AvatarGroup,exports.BREAKPOINTS=ae.BREAKPOINTS,exports.Badge=ue.Badge,exports.Banner=de.Banner,exports.BarList=zr.BarList,exports.BarcodeScanner=Ar.BarcodeScanner,exports.BottomNavigation=fe.BottomNavigation,exports.BottomSheet=pe.BottomSheet,exports.Breadcrumbs=me.Breadcrumbs,Object.defineProperty(exports,"BrowserRouter",{enumerable:!0,get:function(){return Q.BrowserRouter}}),exports.Button=he.Button,exports.CACHE_TIME=D.CACHE_TIME,exports.CEPInput=V.CEPInput,exports.CNPJInput=V.CNPJInput,exports.CPFInput=V.CPFInput,exports.Calendar=$n.Calendar,exports.Can=pi.Can,exports.Card=ge.Card,exports.Carousel=ar.Carousel,exports.Center=_e.Center,exports.Chat=vr.Chat,exports.ChatBubble=gr.ChatBubble,exports.ChatComposer=_r.ChatComposer,exports.Checkbox=ve.Checkbox,exports.ChipInput=ye.ChipInput,exports.ClickOutside=Ln.ClickOutside,exports.CodeBlock=Mn.CodeBlock,exports.Collapsible=qn.Collapsible,exports.Combobox=xe.Combobox,exports.Command=Xn.Command,exports.ConditionalWrapper=Rn.ConditionalWrapper,exports.ConfirmDialog=Ce.ConfirmDialog,exports.Container=t.Container,exports.ContextMenu=Jn.ContextMenu,Object.defineProperty(exports,"Controller",{enumerable:!0,get:function(){return $.Controller}}),exports.CopyButton=jn.CopyButton,exports.DEFAULT_API_ERROR_STRINGS=S.DEFAULT_API_ERROR_STRINGS,exports.DEFAULT_BARCODE_FORMATS=u.DEFAULT_BARCODE_FORMATS,exports.DEFAULT_CAR_SPEED_KMH=G.DEFAULT_CAR_SPEED_KMH,exports.DEFAULT_CHUNK_SIZE=w.DEFAULT_CHUNK_SIZE,exports.DEFAULT_CIRCUITY_FACTOR=G.DEFAULT_CIRCUITY_FACTOR,exports.DEFAULT_MAX_GAIN=Hi.DEFAULT_MAX_GAIN,exports.DEFAULT_MODE_DURATION_FACTORS=G.DEFAULT_MODE_DURATION_FACTORS,exports.DEFAULT_PLAYBACK_RATES=Tn.DEFAULT_PLAYBACK_RATES,exports.DEFAULT_PUB_KEY_CRED_PARAMS=T.DEFAULT_PUB_KEY_CRED_PARAMS,exports.DEFAULT_PUSH_TO_TALK_KEY=r.DEFAULT_PUSH_TO_TALK_KEY,exports.DEFAULT_VOICE_CHAIN=R.DEFAULT_VOICE_CHAIN,exports.DIVERGING_STEP_COUNT=Z.DIVERGING_STEP_COUNT,exports.DataList=Hn.DataList,exports.DataTable=or.DataTable,exports.DatePicker=Te.DatePicker,exports.DateRangePicker=nr.DateRangePicker,exports.DescriptionList=Un.DescriptionList,exports.Divider=Ee.Divider,exports.Drawer=De.Drawer,exports.DropdownMenu=Oe.DropdownMenu,exports.Dropzone=ke.Dropzone,exports.EARTH_RADIUS_KM=W.EARTH_RADIUS_KM,exports.EmptyState=Ae.EmptyState,exports.ErrorBoundary=Ai.ErrorBoundary,exports.ErrorState=je.ErrorState,exports.ErrorText=Bn.ErrorText,exports.FeatureFlagsProvider=X.FeatureFlagsProvider,exports.FileUpload=Me.FileUpload,exports.FilterBar=Br.FilterBar,exports.FloatingActionButton=cr.FloatingActionButton,exports.For=zn.For,exports.Form=e.Form,exports.FormActions=e.FormActions,exports.FormField=$i.FormField,Object.defineProperty(exports,"FormProvider",{enumerable:!0,get:function(){return $.FormProvider}}),exports.FormRow=e.FormRow,exports.FormSection=e.FormSection,exports.GoogleSignIn=gi.GoogleSignIn,exports.Grid=t.Grid,exports.HEARTBEAT_CLOSE_CODE=ia.HEARTBEAT_CLOSE_CODE,Object.defineProperty(exports,"HashRouter",{enumerable:!0,get:function(){return Q.HashRouter}}),exports.Hide=Zt.Hide,exports.HoverCard=Yn.HoverCard,exports.I18nProvider=C.I18nProvider,exports.Image=Vn.Image,exports.ImageCropper=yn.ImageCropper,exports.Input=we.Input,exports.InstallBanner=Fe.InstallBanner,exports.InstallButton=Ie.InstallButton,exports.Kanban=Lt.Kanban,exports.Kbd=Rt.Kbd,exports.Label=Kn.Label,exports.Lightbox=pr.Lightbox,Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return Q.Link}}),exports.ListTile=sr.ListTile,exports.Markdown=Mr.Markdown,exports.Masonry=Ir.Masonry,Object.defineProperty(exports,"MemoryRouter",{enumerable:!0,get:function(){return Q.MemoryRouter}}),exports.Menubar=ir.Menubar,exports.Modal=Se.Modal,exports.ModalsProvider=zt.ModalsProvider,exports.Money=Pn.Money,exports.MoneyInput=V.MoneyInput,exports.MultiSelect=tr.MultiSelect,exports.NProgressBar=Vt.NProgressBar,Object.defineProperty(exports,"NavLink",{enumerable:!0,get:function(){return Q.NavLink}}),exports.Navbar=Bt.Navbar,Object.defineProperty(exports,"Navigate",{enumerable:!0,get:function(){return Q.Navigate}}),exports.NavigationMenu=rr.NavigationMenu,exports.NavigationRail=lr.NavigationRail,exports.NotificationCenter=Cn.NotificationCenter,exports.ORDINAL_START_STEP=Z.ORDINAL_START_STEP,exports.OfflineIndicator=Mt.OfflineIndicator,Object.defineProperty(exports,"Outlet",{enumerable:!0,get:function(){return Q.Outlet}}),exports.PUSH_TO_TALK_KEYS=r.PUSH_TO_TALK_KEYS,exports.Page=Ht.Page,exports.Pagination=Ut.Pagination,exports.PasskeyError=T.PasskeyError,exports.PasswordInput=Wt.PasswordInput,exports.PhoneInput=V.PhoneInput,exports.PinInput=Gt.PinInput,exports.Popover=Kt.Popover,exports.Portal=be.Portal,exports.Progress=qt.Progress,exports.QRCapacityError=c.QRCapacityError,exports.QRCode=An.QRCode,exports.QueryProvider=bi.QueryProvider,exports.REFETCH_TIME=D.REFETCH_TIME,exports.Radio=Jt.Radio,exports.RadioGroup=Jt.RadioGroup,exports.RangeSlider=Yt.RangeSlider,exports.RatingStars=Xt.RatingStars,exports.RefreshIndicator=dr.RefreshIndicator,exports.RelativeTime=Nn.RelativeTime,exports.Resizable=Qn.Resizable,Object.defineProperty(exports,"Route",{enumerable:!0,get:function(){return Q.Route}}),exports.RouteGuard=Di.RouteGuard,Object.defineProperty(exports,"Routes",{enumerable:!0,get:function(){return Q.Routes}}),exports.SEQUENTIAL_STEP_COUNT=Z.SEQUENTIAL_STEP_COUNT,exports.STALE_TIME=D.STALE_TIME,exports.SafeArea=Qt.SafeArea,exports.Scheduler=xn.Scheduler,exports.ScrollArea=Zn.ScrollArea,exports.SearchBar=$t.SearchBar,exports.SegmentedControl=en.SegmentedControl,exports.Select=tn.Select,exports.Show=Zt.Show,exports.Sidebar=nn.Sidebar,exports.SignaturePad=mr.SignaturePad,exports.Skeleton=rn.Skeleton,exports.Slider=er.Slider,exports.Spacer=an.Spacer,exports.Sparkline=bn.Sparkline,exports.Spinner=on.Spinner,exports.Stack=t.Stack,exports.Stat=sn.Stat,exports.Stepper=cn.Stepper,exports.StepperInput=un.StepperInput,exports.Switch=dn.Switch,exports.SyncStatusBadge=Ft.SyncStatusBadge,exports.Table=pn.Table,exports.Tabs=mn.Tabs,exports.Tag=fn.Tag,exports.TelemetryProvider=ba.TelemetryProvider,exports.TempestApiError=x.TempestApiError,exports.TempestDataProvider=A.TempestDataProvider,exports.Textarea=hn.Textarea,exports.ThemeProvider=N.ThemeProvider,exports.TimePicker=ur.TimePicker,exports.Timeline=gn.Timeline,exports.ToastProvider=vn.ToastProvider,exports.Toggle=Wn.Toggle,exports.ToggleGroup=Gn.ToggleGroup,exports.ToggleGroupItem=Gn.ToggleGroupItem,exports.Tooltip=_n.Tooltip,exports.Tour=Lr.Tour,exports.TrajectoryMap=ha.TrajectoryMap,exports.Transfer=Fr.Transfer,exports.TreeView=Fn.TreeView,exports.TruncateText=In.TruncateText,exports.UpdatePrompt=It.UpdatePrompt,exports.VideoPlayer=En.VideoPlayer,exports.VirtualList=Dn.VirtualList,exports.VirtualTable=kn.VirtualTable,exports.VisuallyHidden=Pt.VisuallyHidden,exports.WebPushClient=P.WebPushClient,exports.WebPushPermissionDeniedError=P.WebPushPermissionDeniedError,exports.WebPushUnsupportedError=P.WebPushUnsupportedError,exports.Wizard=fr.Wizard,exports.aiChatStrings=d.aiChatStrings,exports.announce=i.announce,exports.applyFilters=Vr.applyFilters,exports.applyKanbanMove=Lt.applyKanbanMove,exports.applyTheme=ga.applyTheme,exports.assertNever=y.assertNever,exports.base64UrlToBytes=T.base64UrlToBytes,exports.bearingDeg=W.bearingDeg,exports.blobToWav=Er.blobToWav,exports.boundingBox=K.boundingBox,exports.boundsCenter=K.boundsCenter,exports.buildApiUrl=Yr.buildApiUrl,exports.buildBarListRows=Rr.buildBarListRows,exports.buildOpenInChromeIntent=n.buildOpenInChromeIntent,exports.bytesToBase64Url=T.bytesToBase64Url,exports.cachedResponseBytes=Da.cachedResponseBytes,exports.camelCase=g.camelCase,exports.capitalize=g.capitalize,exports.chunk=_.chunk,exports.clamp=s.clamp,exports.clampLatitude=U.clampLatitude,exports.classifyPasskeyError=T.classifyPasskeyError,exports.clearAnnouncer=i.clearAnnouncer,exports.clearCaches=Ri.clearCaches,exports.cn=ee.cn,exports.compareValues=On.compareValues,exports.compressToString=h.compressToString,exports.compressedStorage=h.compressedStorage,exports.compressedStorageCodec=h.compressedStorageCodec,exports.consoleSink=Y.consoleSink,exports.consoleTelemetryAdapter=xa.consoleTelemetryAdapter,exports.contrastRatio=J.contrastRatio,exports.createApiClient=Qr.createApiClient,exports.createAudioBus=Hi.createAudioBus,exports.createAudioPlayer=L.createAudioPlayer,exports.createAudioRecorder=l.createAudioRecorder,exports.createAuthStore=ai.createAuthStore,exports.createBarcodeDetector=u.createBarcodeDetector,exports.createColorScale=J.createColorScale,exports.createDataProvider=Ei.createDataProvider,exports.createEventStream=Mi.createEventStream,exports.createGrowthBookFeatureFlagsAdapter=Ta.createGrowthBookFeatureFlagsAdapter,exports.createI18n=$r.createI18n,exports.createInMemoryFlags=wa.createInMemoryFlags,exports.createInferenceProfiler=Aa.createInferenceProfiler,exports.createJsonStorage=m.createJsonStorage,exports.createLaunchDarklyFeatureFlagsAdapter=Ea.createLaunchDarklyFeatureFlagsAdapter,exports.createLevelMeter=Sr.createLevelMeter,exports.createLinkStatsSampler=H.createLinkStatsSampler,exports.createLocalUploadStorage=w.createLocalUploadStorage,exports.createLogger=Y.createLogger,exports.createMediaRecorder=xr.createMediaRecorder,exports.createOSRMBackend=fa.createOSRMBackend,exports.createOfflineDatabase=Yi.createOfflineDatabase,exports.createOfflineStore=wi.createOfflineStore,exports.createOfflineSync=Xi.createOfflineSync,exports.createPartialResponse=I.createPartialResponse,exports.createPasskeyClient=T.createPasskeyClient,exports.createPeerMesh=da.createPeerMesh,exports.createPositionTracker=pa.createPositionTracker,exports.createPostHogTelemetryAdapter=Ca.createPostHogTelemetryAdapter,exports.createQueryKeys=vi.createQueryKeys,exports.createRefreshQueue=li.createRefreshQueue,exports.createResumableUpload=w.createResumableUpload,exports.createRoleAccessControl=mi.createRoleAccessControl,exports.createSelectors=ki.createSelectors,exports.createSentryTelemetryAdapter=Sa.createSentryTelemetryAdapter,exports.createSfxPool=Bi.createSfxPool,exports.createStore=Oi.createStore,exports.createTempestAuth=ui.createTempestAuth,exports.createTheme=_a.createTheme,exports.createVideoRecorder=z.createVideoRecorder,exports.createVoiceChain=R.createVoiceChain,exports.createWebSocket=aa.createWebSocket,exports.debounce=b.debounce,exports.decodeJWT=si.decodeJWT,exports.decompressFromString=h.decompressFromString,exports.deepMerge=v.deepMerge,exports.defaultInstallHint=Pe.defaultInstallHint,exports.defineRoutes=M.defineRoutes,exports.describeApiError=S.describeApiError,exports.describeFilter=f.describeFilter,exports.divergingScale=Z.divergingScale,exports.downloadCsv=Jr.downloadCsv,exports.emptyOffsetPage=O.emptyOffsetPage,exports.encodeQR=c.encodeQR,exports.encodeWav=Er.encodeWav,exports.estimatePasswordStrength=Wt.estimatePasswordStrength,exports.estimateStorage=o.estimateStorage,exports.estimateTravel=G.estimateTravel,exports.expandBounds=K.expandBounds,exports.filtersFromSearchParams=f.filtersFromSearchParams,exports.filtersToQueryParams=Hr.filtersToQueryParams,exports.filtersToSearchParams=f.filtersToSearchParams,exports.fitProjection=q.fitProjection,exports.formatBytes=s.formatBytes,exports.formatCEP=B.formatCEP,exports.formatCNPJ=B.formatCNPJ,exports.formatCPF=p.formatCPF,exports.formatCompactNumber=s.formatCompactNumber,exports.formatCurrency=p.formatCurrency,exports.formatDate=p.formatDate,exports.formatDateForInput=p.formatDateForInput,exports.formatDateTime=p.formatDateTime,exports.formatDateTimeForInput=p.formatDateTimeForInput,exports.formatDurationMs=ka.formatDurationMs,exports.formatPercent=p.formatPercent,exports.formatPhone=p.formatPhone,exports.generateIdempotencyKey=ri.generateIdempotencyKey,exports.getInitialTheme=ya.getInitialTheme,exports.getSupportedBarcodeFormats=u.getSupportedBarcodeFormats,exports.getThemePreset=va.getThemePreset,exports.groupBy=_.groupBy,exports.haversineKm=W.haversineKm,exports.hexToOklch=J.hexToOklch,exports.hexToRgb=J.hexToRgb,exports.hexToRgbaString=J.hexToRgbaString,exports.higherVersionWins=Zi.higherVersionWins,exports.inspectCaches=Ri.inspectCaches,exports.installBackgroundSync=Ii.installBackgroundSync,exports.installNotificationClickHandler=F.installNotificationClickHandler,exports.installPrecache=I.installPrecache,exports.installPushHandler=F.installPushHandler,exports.installRuntimeCache=I.installRuntimeCache,exports.installSkipWaitingListener=F.installSkipWaitingListener,exports.isAndroid=n.isAndroid,exports.isAndroidWithoutPromptApi=n.isAndroidWithoutPromptApi,exports.isApiError=x.isApiError,exports.isAudioOutputSelectionSupported=yr.isAudioOutputSelectionSupported,exports.isAudioRecordingSupported=l.isAudioRecordingSupported,exports.isBarcodeDetectionSupported=u.isBarcodeDetectionSupported,exports.isConditionalMediationAvailable=T.isConditionalMediationAvailable,exports.isCoordinate=U.isCoordinate,exports.isCursorPage=O.isCursorPage,exports.isDefined=y.isDefined,exports.isEmpty=v.isEmpty,exports.isFullscreenSupported=et.isFullscreenSupported,exports.isGenerating=d.isGenerating,exports.isIOS=n.isIOS,exports.isJWTExpired=si.isJWTExpired,exports.isMediaCaptureSupported=wr.isMediaCaptureSupported,exports.isNumber=y.isNumber,exports.isOffsetPage=O.isOffsetPage,exports.isPasskeySupported=T.isPasskeySupported,exports.isPlainObject=y.isPlainObject,exports.isPlatformAuthenticatorAvailable=T.isPlatformAuthenticatorAvailable,exports.isPushSupported=Pi.isPushSupported,exports.isRejectionCloseCode=ia.isRejectionCloseCode,exports.isRetriableStatus=x.isRetriableStatus,exports.isScreenCaptureSupported=qi.isScreenCaptureSupported,exports.isShareSupported=Kr.isShareSupported,exports.isSpeechRecognitionSupported=Ji.isSpeechRecognitionSupported,exports.isStandalone=n.isStandalone,exports.isString=y.isString,exports.isTrustedCredentialTarget=Xr.isTrustedCredentialTarget,exports.isValidLatitude=U.isValidLatitude,exports.isValidLongitude=U.isValidLongitude,exports.isVideoRecordingSupported=z.isVideoRecordingSupported,exports.isVoiceChainIdle=R.isVoiceChainIdle,exports.kebabCase=g.kebabCase,exports.lastAssistantId=d.lastAssistantId,exports.lastWriteWins=Zi.lastWriteWins,exports.lazyWithRetry=ci.lazyWithRetry,exports.listQueryKey=j.listQueryKey,exports.matrixToPath=c.matrixToPath,exports.measureNoiseFloor=Wi.measureNoiseFloor,exports.memoizeOne=b.memoizeOne,exports.monitorVoiceActivity=Gi.monitorVoiceActivity,exports.monitorVoiceChain=R.monitorVoiceChain,exports.moveItem=Ot.moveItem,exports.normalizeBarcode=u.normalizeBarcode,exports.normalizeLongitude=U.normalizeLongitude,exports.nprogress=Vt.nprogress,exports.oklchToHex=J.oklchToHex,exports.omit=v.omit,exports.once=b.once,exports.oneQueryKey=j.oneQueryKey,exports.operatorsFor=f.operatorsFor,exports.parseResponse=ti.parseResponse,exports.pathLengthKm=W.pathLengthKm,exports.percentOf=s.percentOf,exports.permissionsFromToken=hi.permissionsFromToken,exports.persistQueryClientOffline=Ti.persistQueryClientOffline,exports.pick=v.pick,exports.pickAudioMimeType=l.pickAudioMimeType,exports.pickVideoMimeType=z.pickVideoMimeType,exports.playAudio=L.playAudio,exports.pluralize=g.pluralize,exports.projectMercator=q.projectMercator,exports.pushToTalkKeyLabel=r.pushToTalkKeyLabel,exports.randomId=Wr.randomId,exports.range=_.range,exports.readAvailableOutgoingKbps=H.readAvailableOutgoingKbps,exports.readDeviceProfile=Oa.readDeviceProfile,exports.readQualityLimitation=H.readQualityLimitation,exports.readRelayed=H.readRelayed,exports.readRoundTripMs=H.readRoundTripMs,exports.readThemeToken=ga.readThemeToken,exports.readableForeground=J.readableForeground,exports.receiptLabel=hr.receiptLabel,Object.defineProperty(exports,"redirect",{enumerable:!0,get:function(){return Q.redirect}}),exports.registerPeriodicSync=Li.registerPeriodicSync,exports.registerServiceWorker=a.registerServiceWorker,exports.relativeLuminance=J.relativeLuminance,exports.relativeTime=Sn.relativeTime,exports.removeById=k.removeById,exports.requestPersistentStorage=o.requestPersistentStorage,exports.resolveDegradation=ua.resolveDegradation,exports.resolveReceiptState=hr.resolveReceiptState,exports.retry=Zr.retry,exports.rgbToHex=J.rgbToHex,exports.roleLabel=d.roleLabel,exports.scaleForRoom=ua.scaleForRoom,exports.scaleSteps=Z.scaleSteps,exports.sequentialScale=Z.sequentialScale,exports.setAudioOutput=yr.setAudioOutput,exports.setDevBuild=re.setDevBuild,exports.setSenderBitrate=ca.setSenderBitrate,exports.setTunedLocalDescription=sa.setTunedLocalDescription,exports.share=Kr.share,exports.shareOrDownloadBlob=qr.shareOrDownloadBlob,exports.shouldRetryQuery=yi.shouldRetryQuery,exports.skipWaiting=a.skipWaiting,exports.sleep=Ur.sleep,exports.slugify=g.slugify,exports.stopAudio=L.stopAudio,exports.storage=m.storage,exports.suggestGateThreshold=Wi.suggestGateThreshold,exports.tailSignature=d.tailSignature,exports.themeContrast=_a.themeContrast,exports.themeInitScript=ya.themeInitScript,exports.themePresets=va.themePresets,exports.throttle=b.throttle,exports.toCsv=Jr.toCsv,exports.toRadians=W.toRadians,exports.truncate=g.truncate,exports.tuneOpus=sa.tuneOpus,exports.turnTime=d.turnTime,exports.uniqueBy=_.uniqueBy,exports.unmask=B.unmask,exports.unprojectMercator=q.unprojectMercator,exports.unregisterAllServiceWorkers=a.unregisterAllServiceWorkers,exports.uploadFingerprint=w.uploadFingerprint,exports.uploadWithProgress=ni.uploadWithProgress,exports.upsertById=k.upsertById,exports.urlBase64ToUint8Array=Pi.urlBase64ToUint8Array,exports.useAccessControl=di.useAccessControl,exports.useAnnounce=i.useAnnounce,exports.useAsync=Ge.useAsync,exports.useAudio=zi.useAudio,exports.useAudioBus=Ui.useAudioBus,exports.useAudioRecorder=Cr.useAudioRecorder,exports.useBarcodeScanner=kr.useBarcodeScanner,exports.useBeforeInstallPrompt=Qe.useBeforeInstallPrompt,exports.useBreakpoint=ae.useBreakpoint,exports.useCan=fi.useCan,exports.useClickOutside=Ct.useClickOutside,exports.useClientFilter=ze.useClientFilter,exports.useClipboard=Xe.useClipboard,exports.useCountdown=gt.useCountdown,exports.useCounter=ht.useCounter,exports.useCreate=j.useCreate,exports.useCursorQuery=Si.useCursorQuery,exports.useDataProvider=A.useDataProvider,exports.useDebounce=Le.useDebounce,exports.useDeepMemo=at.useDeepMemo,exports.useDelete=j.useDelete,exports.useDescribeApiError=ei.useDescribeApiError,exports.useDisclosure=pt.useDisclosure,exports.useDocumentTitle=vt.useDocumentTitle,exports.useDocumentVisibility=qe.useDocumentVisibility,exports.useErrorHandler=Qi.useErrorHandler,exports.useEventListener=He.useEventListener,exports.useEventStream=Ni.useEventStream,exports.useFavicon=yt.useFavicon,exports.useFeatureFlag=X.useFeatureFlag,Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return $.useFieldArray}}),exports.useFlagValue=X.useFlagValue,exports.useFocusTrap=rt.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.useFullscreen=et.useFullscreen,exports.useGeolocation=tt.useGeolocation,exports.useHover=dt.useHover,exports.useI18n=C.useI18n,exports.useIdle=$e.useIdle,exports.useInstallPrompt=Ne.useInstallPrompt,exports.useIntersectionObserver=Je.useIntersectionObserver,exports.useInterval=st.useInterval,exports.useIsFirstRender=wt.useIsFirstRender,exports.useKeyboardShortcut=Ze.useKeyboardShortcut,exports.useLatestRef=Ve.useLatestRef,exports.useLinkStats=la.useLinkStats,exports.useList=j.useList,exports.useListState=mt.useListState,exports.useLocalStorage=Ue.useLocalStorage,Object.defineProperty(exports,"useLocation",{enumerable:!0,get:function(){return Q.useLocation}}),exports.useLongPress=ft.useLongPress,exports.useLongPressHandlers=Et.useLongPressHandlers,exports.useMap=bt.useMap,Object.defineProperty(exports,"useMatch",{enumerable:!0,get:function(){return Q.useMatch}}),exports.useMediaDevices=jt.useMediaDevices,exports.useMediaPermission=At.useMediaPermission,exports.useMediaQuery=Be.useMediaQuery,exports.useMicrophone=Tr.useMicrophone,exports.useModals=zt.useModals,Object.defineProperty(exports,"useNavigate",{enumerable:!0,get:function(){return Q.useNavigate}}),exports.useNotificationInbox=wn.useNotificationInbox,exports.useOAuthCallback=_i.useOAuthCallback,exports.useObjectUrl=Tt.useObjectUrl,exports.useOfflineMutation=Ci.useOfflineMutation,exports.useOfflineSync=Nt.useOfflineSync,exports.useOne=j.useOne,exports.useOnline=Ke.useOnline,exports.useOptionalI18n=C.useOptionalI18n,exports.usePaginatedQuery=xi.usePaginatedQuery,exports.usePagination=Re.usePagination,Object.defineProperty(exports,"useParams",{enumerable:!0,get:function(){return Q.useParams}}),exports.usePasskeyCapabilities=E.usePasskeyCapabilities,exports.usePasskeyRegistration=E.usePasskeyRegistration,exports.usePasskeySignIn=E.usePasskeySignIn,exports.usePoll=ii.usePoll,exports.usePositionTracker=ma.usePositionTracker,exports.usePrevious=ot.usePrevious,exports.usePushSubscription=Fi.usePushSubscription,exports.usePushToTalk=r.usePushToTalk,exports.useQueue=St.useQueue,exports.useResizeObserver=Ye.useResizeObserver,Object.defineProperty(exports,"useRouteError",{enumerable:!0,get:function(){return Q.useRouteError}}),exports.useScreenCapture=qi.useScreenCapture,exports.useScrollLock=nt.useScrollLock,exports.useScrollOverflow=kt.useScrollOverflow,Object.defineProperty(exports,"useSearchParams",{enumerable:!0,get:function(){return Q.useSearchParams}}),exports.useServiceWorkerUpdate=Dt.useServiceWorkerUpdate,exports.useSet=xt.useSet,exports.useSfxPool=Vi.useSfxPool,exports.useSortable=Ot.useSortable,exports.useSpeechRecognition=Ji.useSpeechRecognition,exports.useStableCallback=it.useStableCallback,exports.useStorageEstimate=o.useStorageEstimate,exports.useSyncStatus=Nt.useSyncStatus,exports.useTelemetry=ba.useTelemetry,exports.useTheme=N.useTheme,exports.useThrottle=lt.useThrottle,exports.useTimeout=ct.useTimeout,exports.useToast=vn.useToast,exports.useToggle=We.useToggle,exports.useTorch=Or.useTorch,exports.useTranslate=C.useTranslate,exports.useTypewriter=_t.useTypewriter,exports.useUpdate=j.useUpdate,exports.useViaCEP=ra.useViaCEP,exports.useVideoRecorder=Ki.useVideoRecorder,Object.defineProperty(exports,"useWatch",{enumerable:!0,get:function(){return $.useWatch}}),exports.useWebSocket=oa.useWebSocket,exports.useWindowSize=ut.useWindowSize,exports.useZodForm=na.useZodForm,exports.validateCNPJ=B.validateCNPJ,exports.validateCPF=B.validateCPF,exports.validateForm=ea.validateForm,exports.visibleTurns=d.visibleTurns,exports.withTimeout=Ur.withTimeout,exports.writeXlsx=Gr.writeXlsx,exports.zodResolver=ta.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("./utils/dev-mode.cjs"),ie=require("./components/AppBar/AppBar.cjs"),ae=require("./hooks/use-breakpoint.cjs"),oe=require("./components/AppShell/AppShell.cjs"),se=require("./components/AspectRatio/AspectRatio.cjs"),ce=require("./components/Avatar/Avatar.cjs"),le=require("./components/AvatarGroup/AvatarGroup.cjs"),ue=require("./components/Badge/Badge.cjs"),de=require("./components/Banner/Banner.cjs"),fe=require("./components/BottomNavigation/BottomNavigation.cjs"),pe=require("./hooks/use-focus-trap.cjs"),me=require("./components/BottomSheet/BottomSheet.cjs"),he=require("./components/Breadcrumbs/Breadcrumbs.cjs"),ge=require("./components/Button/Button.cjs"),_e=require("./components/Card/Card.cjs"),ve=require("./components/Center/Center.cjs"),ye=require("./components/Checkbox/Checkbox.cjs"),be=require("./components/ChipInput/ChipInput.cjs"),xe=require("./components/Portal/Portal.cjs"),Se=require("./components/Combobox/Combobox.cjs"),Ce=require("./components/Modal/Modal.cjs"),we=require("./components/ConfirmDialog/ConfirmDialog.cjs"),Te=require("./components/Input/Input.cjs"),Ee=require("./components/DatePicker/DatePicker.cjs"),De=require("./components/Divider/Divider.cjs"),Oe=require("./components/Drawer/Drawer.cjs"),ke=require("./components/DropdownMenu/DropdownMenu.cjs"),Ae=require("./components/Dropzone/Dropzone.cjs"),je=require("./components/EmptyState/EmptyState.cjs"),Me=require("./components/ErrorState/ErrorState.cjs"),Ne=require("./components/FileUpload/FileUpload.cjs"),e=require("./components/Form/Form.cjs"),t=require("./components/Layout/Layout.cjs"),n=require("./hooks/pwa-env.cjs"),Pe=require("./hooks/use-install-prompt.cjs"),Fe=require("./components/InstallButton/install-hints.cjs"),Ie=require("./components/InstallBanner/InstallBanner.cjs"),Le=require("./components/InstallButton/InstallButton.cjs"),Re=require("./hooks/use-debounce.cjs"),ze=require("./hooks/use-pagination.cjs"),Be=require("./hooks/use-client-filter.cjs"),Ve=require("./hooks/use-deep-memo.cjs"),He=require("./hooks/use-latest-ref.cjs"),Ue=require("./hooks/use-draft-filters.cjs"),We=require("./hooks/use-media-query.cjs"),Ge=require("./hooks/use-event-listener.cjs"),Ke=require("./hooks/use-local-storage.cjs"),qe=require("./hooks/use-toggle.cjs"),Je=require("./hooks/use-async.cjs"),Ye=require("./hooks/use-online.cjs"),Xe=require("./hooks/use-document-visibility.cjs"),Ze=require("./hooks/use-intersection-observer.cjs"),Qe=require("./hooks/use-resize-observer.cjs"),$e=require("./hooks/use-clipboard.cjs"),et=require("./hooks/use-keyboard-shortcut.cjs"),tt=require("./hooks/use-before-install-prompt.cjs"),nt=require("./hooks/use-idle.cjs"),rt=require("./hooks/use-fullscreen.cjs"),r=require("./hooks/use-push-to-talk.cjs"),it=require("./hooks/use-geolocation.cjs"),at=require("./hooks/use-scroll-lock.cjs"),i=require("./hooks/use-announce.cjs"),ot=require("./hooks/use-stable-callback.cjs"),st=require("./hooks/use-previous.cjs"),ct=require("./hooks/use-interval.cjs"),lt=require("./hooks/use-timeout.cjs"),ut=require("./hooks/use-throttle.cjs"),dt=require("./hooks/use-window-size.cjs"),ft=require("./hooks/use-hover.cjs"),pt=require("./hooks/use-long-press.cjs"),mt=require("./hooks/use-disclosure.cjs"),ht=require("./hooks/use-list-state.cjs"),gt=require("./hooks/use-counter.cjs"),_t=require("./hooks/use-countdown.cjs"),vt=require("./hooks/use-typewriter.cjs"),yt=require("./hooks/use-document-title.cjs"),bt=require("./hooks/use-favicon.cjs"),xt=require("./hooks/use-map.cjs"),St=require("./hooks/use-set.cjs"),Ct=require("./hooks/use-queue.cjs"),wt=require("./hooks/use-click-outside.cjs"),Tt=require("./hooks/use-is-first-render.cjs"),Et=require("./hooks/use-object-url.cjs"),Dt=require("./hooks/use-long-press-handlers.cjs"),a=require("./sw/register-service-worker.cjs"),Ot=require("./hooks/use-service-worker-update.cjs"),o=require("./hooks/use-storage-estimate.cjs"),kt=require("./hooks/use-sortable.cjs"),At=require("./hooks/use-scroll-overflow.cjs"),jt=require("./hooks/use-media-permission.cjs"),Mt=require("./hooks/use-media-devices.cjs"),Nt=require("./components/OfflineIndicator/OfflineIndicator.cjs"),Pt=require("./offline/use-offline-sync.cjs"),Ft=require("./components/VisuallyHidden/VisuallyHidden.cjs"),It=require("./components/SyncStatusBadge/SyncStatusBadge.cjs"),Lt=require("./components/UpdatePrompt/UpdatePrompt.cjs"),Rt=require("./components/Kanban/Kanban.cjs"),zt=require("./components/Kbd/Kbd.cjs"),Bt=require("./components/ModalsManager/ModalsManager.cjs"),Vt=require("./components/Navbar/Navbar.cjs"),Ht=require("./components/NProgress/NProgress.cjs"),Ut=require("./components/Page/Page.cjs"),Wt=require("./components/Pagination/Pagination.cjs"),Gt=require("./components/PasswordInput/PasswordInput.cjs"),Kt=require("./components/PinInput/PinInput.cjs"),qt=require("./components/Popover/Popover.cjs"),Jt=require("./components/Progress/Progress.cjs"),Yt=require("./components/Radio/Radio.cjs"),Xt=require("./components/RangeSlider/RangeSlider.cjs"),Zt=require("./components/RatingStars/RatingStars.cjs"),Qt=require("./components/Responsive/Responsive.cjs"),$t=require("./components/SafeArea/SafeArea.cjs"),en=require("./components/SearchBar/SearchBar.cjs"),tn=require("./components/SegmentedControl/SegmentedControl.cjs"),nn=require("./components/Select/Select.cjs"),s=require("./components/Select/options.cjs"),rn=require("./components/Sidebar/active-nav-key.cjs"),an=require("./components/Sidebar/Sidebar.cjs"),on=require("./components/Skeleton/Skeleton.cjs"),sn=require("./components/Spacer/Spacer.cjs"),cn=require("./components/Spinner/Spinner.cjs"),ln=require("./components/Stat/Stat.cjs"),un=require("./components/Stepper/Stepper.cjs"),dn=require("./utils/absent.cjs"),c=require("./utils/numbers.cjs"),fn=require("./components/StepperInput/StepperInput.cjs"),pn=require("./components/Switch/Switch.cjs"),mn=require("./components/Tag/Tag.cjs"),hn=require("./components/Table/Table.cjs"),gn=require("./components/Tabs/Tabs.cjs"),_n=require("./components/Textarea/Textarea.cjs"),vn=require("./components/Timeline/Timeline.cjs"),yn=require("./components/Tooltip/Tooltip.cjs"),bn=require("./components/Toast/ToastProvider.cjs"),xn=require("./components/ImageCropper/ImageCropper.cjs"),Sn=require("./components/Sparkline/Sparkline.cjs"),Cn=require("./components/Scheduler/Scheduler.cjs"),wn=require("./utils/relative-time.cjs"),Tn=require("./components/NotificationCenter/NotificationCenter.cjs"),En=require("./components/NotificationCenter/use-notification-inbox.cjs"),Dn=require("./components/VideoPlayer/playback-rates.cjs"),On=require("./components/VideoPlayer/VideoPlayer.cjs"),kn=require("./components/VirtualList/VirtualList.cjs"),An=require("./utils/compare-values.cjs"),jn=require("./components/VirtualTable/VirtualTable.cjs"),l=require("./components/QRCode/qr-encode.cjs"),Mn=require("./components/QRCode/QRCode.cjs"),Nn=require("./components/CopyButton/CopyButton.cjs"),Pn=require("./components/CodeBlock/CodeBlock.cjs"),Fn=require("./components/RelativeTime/RelativeTime.cjs"),In=require("./components/Money/Money.cjs"),Ln=require("./components/TreeView/TreeView.cjs"),Rn=require("./components/TruncateText/TruncateText.cjs"),zn=require("./components/ClickOutside/ClickOutside.cjs"),Bn=require("./components/ConditionalWrapper/ConditionalWrapper.cjs"),Vn=require("./components/For/For.cjs"),Hn=require("./components/ErrorText/ErrorText.cjs"),Un=require("./components/Image/Image.cjs"),Wn=require("./components/DataList/DataList.cjs"),Gn=require("./components/DescriptionList/DescriptionList.cjs"),Kn=require("./components/Toggle/Toggle.cjs"),qn=require("./components/ToggleGroup/ToggleGroup.cjs"),Jn=require("./components/Label/Label.cjs"),Yn=require("./components/Collapsible/Collapsible.cjs"),Xn=require("./components/ContextMenu/ContextMenu.cjs"),Zn=require("./components/HoverCard/HoverCard.cjs"),Qn=require("./components/Command/Command.cjs"),$n=require("./components/ScrollArea/ScrollArea.cjs"),er=require("./components/Resizable/Resizable.cjs"),tr=require("./components/Calendar/Calendar.cjs"),nr=require("./components/Slider/Slider.cjs"),rr=require("./components/MultiSelect/MultiSelect.cjs"),ir=require("./components/DateRangePicker/DateRangePicker.cjs"),ar=require("./components/NavigationMenu/NavigationMenu.cjs"),or=require("./components/Menubar/Menubar.cjs"),sr=require("./components/Carousel/Carousel.cjs"),cr=require("./components/DataTable/DataTable.cjs"),lr=require("./components/ListTile/ListTile.cjs"),ur=require("./components/FloatingActionButton/FloatingActionButton.cjs"),dr=require("./components/NavigationRail/NavigationRail.cjs"),fr=require("./components/TimePicker/TimePicker.cjs"),pr=require("./components/RefreshIndicator/RefreshIndicator.cjs"),mr=require("./components/Wizard/Wizard.cjs"),hr=require("./components/Lightbox/Lightbox.cjs"),gr=require("./components/SignaturePad/SignaturePad.cjs"),u=require("./components/Chat/chat-receipt.cjs"),_r=require("./components/Chat/ChatBubble.cjs"),vr=require("./components/Chat/ChatComposer.cjs"),yr=require("./components/Chat/Chat.cjs"),br=require("./audio/audio-output.cjs"),xr=require("./components/AudioPlayer/AudioPlayer.cjs"),Sr=require("./capture/media-recorder.cjs"),d=require("./audio/audio-recorder.cjs"),Cr=require("./audio/level-meter.cjs"),wr=require("./audio/use-audio-recorder.cjs"),Tr=require("./audio/media-access.cjs"),Er=require("./audio/use-microphone.cjs"),Dr=require("./audio/wav.cjs"),Or=require("./components/AudioRecorder/AudioRecorder.cjs"),f=require("./capture/barcode.cjs"),kr=require("./capture/use-torch.cjs"),Ar=require("./capture/use-barcode-scanner.cjs"),jr=require("./components/BarcodeScanner/BarcodeScanner.cjs"),p=require("./components/AIChat/ai-chat-turns.cjs"),Mr=require("./components/AIChat/AIChatComposer.cjs"),Nr=require("./components/Markdown/Markdown.cjs"),Pr=require("./components/AIChat/AIChatTurn.cjs"),Fr=require("./components/AIChat/AIChat.cjs"),Ir=require("./components/Transfer/Transfer.cjs"),Lr=require("./components/Masonry/Masonry.cjs"),Rr=require("./components/Tour/Tour.cjs"),zr=require("./components/BarList/bar-list-model.cjs"),Br=require("./components/BarList/BarList.cjs"),m=require("./components/FilterBar/filter-model.cjs"),Vr=require("./components/FilterBar/FilterBar.cjs"),h=require("./utils/format.cjs"),Hr=require("./components/FilterBar/filter-apply.cjs"),Ur=require("./components/FilterBar/filter-query.cjs"),Wr=require("./components/FilterPanel/FilterPanel.cjs"),Gr=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"),Kr=require("./utils/promises.cjs"),qr=require("./utils/ids.cjs"),Jr=require("./utils/xlsx.cjs"),Yr=require("./share/share.cjs"),Xr=require("./share/share-or-download.cjs"),Zr=require("./utils/csv.cjs"),Qr=require("./http/build-url.cjs"),$r=require("./http/credential-scope.cjs"),S=require("./http/csrf.cjs"),C=require("./http/errors.cjs"),ei=require("./http/retry.cjs"),ti=require("./http/api-client.cjs"),w=require("./http/describe-api-error.cjs"),ni=require("./i18n/create-i18n.cjs"),T=require("./i18n/I18nProvider.cjs"),ri=require("./http/use-describe-api-error.cjs"),ii=require("./http/parse-response.cjs"),ai=require("./http/upload-with-progress.cjs"),oi=require("./http/idempotency.cjs"),E=require("./http/resumable-upload.cjs"),si=require("./http/use-poll.cjs"),ci=require("./auth/create-auth-store.cjs"),li=require("./auth/AuthGuard.cjs"),ui=require("./auth/jwt.cjs"),di=require("./auth/lazy-with-retry.cjs"),fi=require("./auth/refresh-queue.cjs"),D=require("./auth/passkey.cjs"),O=require("./auth/use-passkey.cjs"),pi=require("./auth/create-tempest-auth.cjs"),mi=require("./access/access-control-context.cjs"),hi=require("./access/use-can.cjs"),gi=require("./access/Can.cjs"),_i=require("./access/create-role-access-control.cjs"),vi=require("./access/permissions-from-token.cjs"),yi=require("./oauth/GoogleSignIn.cjs"),bi=require("./oauth/use-oauth-callback.cjs"),k=require("./query/constants.cjs"),xi=require("./query/create-query-keys.cjs"),Si=require("./query/retry-policy.cjs"),Ci=require("./query/QueryProvider.cjs"),A=require("./query/pagination.cjs"),wi=require("./query/use-paginated-query.cjs"),Ti=require("./query/use-cursor-query.cjs"),Ei=require("./query/use-offline-mutation.cjs"),j=require("./query/optimistic.cjs"),Di=require("./offline/create-offline-store.cjs"),Oi=require("./query/offline-persistence.cjs"),ki=require("./data/create-data-provider.cjs"),M=require("./data/data-provider-context.cjs"),N=require("./data/use-resource.cjs"),Ai=require("./router/RouteGuard.cjs"),ji=require("./router/AppRouter.cjs"),Mi=require("./store/create-store.cjs"),Ni=require("./store/create-selectors.cjs"),Pi=require("./theme/ThemeProvider.cjs"),Fi=require("./error-boundary/ErrorBoundary.cjs"),Ii=require("./app/AppProviders.cjs"),Li=require("./sse/create-event-stream.cjs"),Ri=require("./sse/use-event-stream.cjs"),zi=require("./push/utils.cjs"),P=require("./push/web-push-client.cjs"),Bi=require("./push/use-push-subscription.cjs"),F=require("./sw/create-push-handler.cjs"),I=require("./sw/cache.cjs"),Vi=require("./sw/background-sync.cjs"),Hi=require("./sw/periodic-sync.cjs"),L=require("./sw/cache-inspect.cjs"),R=require("./audio/audio-player.cjs"),Ui=require("./audio/use-audio.cjs"),Wi=require("./audio/sfx-pool.cjs"),Gi=require("./audio/use-sfx-pool.cjs"),Ki=require("./audio/audio-bus.cjs"),qi=require("./audio/use-audio-bus.cjs"),z=require("./audio/voice-chain.cjs"),Ji=require("./audio/noise-floor.cjs"),Yi=require("./audio/voice-activity.cjs"),B=require("./capture/video-recorder.cjs"),Xi=require("./capture/use-video-recorder.cjs"),Zi=require("./capture/use-screen-capture.cjs"),Qi=require("./capture/use-speech-recognition.cjs"),$i=require("./offline/create-offline-database.cjs"),ea=require("./offline/create-offline-sync.cjs"),ta=require("./offline/conflict.cjs"),na=require("./error-boundary/use-error-handler.cjs"),ra=require("./forms/FormField.cjs"),ia=require("./forms/validate-form.cjs"),aa=require("./forms/zod-resolver.cjs"),oa=require("./forms/use-zod-form.cjs"),V=require("./forms/br-validators.cjs"),H=require("./forms/masked-inputs.cjs"),sa=require("./forms/use-viacep.cjs"),ca=require("./ws/resilience.cjs"),la=require("./ws/create-web-socket.cjs"),ua=require("./ws/use-web-socket.cjs"),da=require("./webrtc/opus-sdp.cjs"),fa=require("./webrtc/sender-bitrate.cjs"),U=require("./webrtc/link-stats.cjs"),pa=require("./webrtc/use-link-stats.cjs"),ma=require("./webrtc/mesh-quality.cjs"),ha=require("./webrtc/peer-mesh.cjs"),W=require("./geo/types.cjs"),G=require("./geo/distance.cjs"),K=require("./geo/estimate.cjs"),q=require("./geo/bounds.cjs"),J=require("./geo/projection.cjs"),ga=require("./geo/routing.cjs"),_a=require("./geo/create-position-tracker.cjs"),va=require("./geo/use-position-tracker.cjs"),ya=require("./geo/TrajectoryMap.cjs"),ba=require("./theme/apply-theme.cjs"),Y=require("./theme/color.cjs"),xa=require("./theme/create-theme.cjs"),Sa=require("./theme/theme-presets.cjs"),Ca=require("./theme/initial-theme.cjs"),wa=require("./logger/logger.cjs"),Ta=require("./telemetry/TelemetryProvider.cjs"),Ea=require("./telemetry/console-adapter.cjs"),Da=require("./telemetry/sentry-adapter.cjs"),Oa=require("./telemetry/posthog-adapter.cjs"),X=require("./feature-flags/FeatureFlagsProvider.cjs"),ka=require("./feature-flags/in-memory-adapter.cjs"),Aa=require("./feature-flags/growthbook-adapter.cjs"),ja=require("./feature-flags/launchdarkly-adapter.cjs"),Z=require("./charts/scales.cjs"),Ma=require("./perf/cache-size.cjs"),Na=require("./perf/device.cjs"),Pa=require("./perf/format.cjs"),Fa=require("./perf/profiler.cjs");let Q=require("react-router"),$=require("react-hook-form");exports.ABSENT_TEXT=dn.ABSENT_TEXT,exports.AIChat=Fr.AIChat,exports.AIChatComposer=Mr.AIChatComposer,exports.AIChatTurn=Pr.AIChatTurn,exports.ALL_BARCODE_FORMATS=f.ALL_BARCODE_FORMATS,exports.ALL_OPTION_VALUE=s.ALL_OPTION_VALUE,exports.API_ERROR_OFFLINE_KEY=w.API_ERROR_OFFLINE_KEY,exports.API_ERROR_VALIDATION_KEY=w.API_ERROR_VALIDATION_KEY,exports.AUDIO_MIME_CANDIDATES=d.AUDIO_MIME_CANDIDATES,exports.AccessControlProvider=mi.AccessControlProvider,exports.Accordion=te.Accordion,exports.Alert=ne.Alert,exports.AppBar=ie.AppBar,exports.AppProviders=Ii.AppProviders,exports.AppRouter=ji.AppRouter,exports.AppShell=oe.AppShell,exports.AspectRatio=se.AspectRatio,exports.AudioPlayer=xr.AudioPlayer,exports.AudioRecorder=Or.AudioRecorder,exports.AuthGuard=li.AuthGuard,exports.Avatar=ce.Avatar,exports.AvatarGroup=le.AvatarGroup,exports.BREAKPOINTS=ae.BREAKPOINTS,exports.Badge=ue.Badge,exports.Banner=de.Banner,exports.BarList=Br.BarList,exports.BarcodeScanner=jr.BarcodeScanner,exports.BottomNavigation=fe.BottomNavigation,exports.BottomSheet=me.BottomSheet,exports.Breadcrumbs=he.Breadcrumbs,Object.defineProperty(exports,"BrowserRouter",{enumerable:!0,get:function(){return Q.BrowserRouter}}),exports.Button=ge.Button,exports.CACHE_TIME=k.CACHE_TIME,exports.CEPInput=H.CEPInput,exports.CNPJInput=H.CNPJInput,exports.CPFInput=H.CPFInput,exports.Calendar=tr.Calendar,exports.Can=gi.Can,exports.Card=_e.Card,exports.Carousel=sr.Carousel,exports.Center=ve.Center,exports.Chat=yr.Chat,exports.ChatBubble=_r.ChatBubble,exports.ChatComposer=vr.ChatComposer,exports.Checkbox=ye.Checkbox,exports.ChipInput=be.ChipInput,exports.ClickOutside=zn.ClickOutside,exports.CodeBlock=Pn.CodeBlock,exports.Collapsible=Yn.Collapsible,exports.Combobox=Se.Combobox,exports.Command=Qn.Command,exports.ConditionalWrapper=Bn.ConditionalWrapper,exports.ConfirmDialog=we.ConfirmDialog,exports.Container=t.Container,exports.ContextMenu=Xn.ContextMenu,Object.defineProperty(exports,"Controller",{enumerable:!0,get:function(){return $.Controller}}),exports.CopyButton=Nn.CopyButton,exports.DEFAULT_API_ERROR_STRINGS=w.DEFAULT_API_ERROR_STRINGS,exports.DEFAULT_BARCODE_FORMATS=f.DEFAULT_BARCODE_FORMATS,exports.DEFAULT_CAR_SPEED_KMH=K.DEFAULT_CAR_SPEED_KMH,exports.DEFAULT_CHUNK_SIZE=E.DEFAULT_CHUNK_SIZE,exports.DEFAULT_CIRCUITY_FACTOR=K.DEFAULT_CIRCUITY_FACTOR,exports.DEFAULT_CSRF_COOKIE_NAME=S.DEFAULT_CSRF_COOKIE_NAME,exports.DEFAULT_CSRF_HEADER_NAME=S.DEFAULT_CSRF_HEADER_NAME,exports.DEFAULT_MAX_GAIN=Ki.DEFAULT_MAX_GAIN,exports.DEFAULT_MODE_DURATION_FACTORS=K.DEFAULT_MODE_DURATION_FACTORS,exports.DEFAULT_PLAYBACK_RATES=Dn.DEFAULT_PLAYBACK_RATES,exports.DEFAULT_PUB_KEY_CRED_PARAMS=D.DEFAULT_PUB_KEY_CRED_PARAMS,exports.DEFAULT_PUSH_TO_TALK_KEY=r.DEFAULT_PUSH_TO_TALK_KEY,exports.DEFAULT_VOICE_CHAIN=z.DEFAULT_VOICE_CHAIN,exports.DIVERGING_STEP_COUNT=Z.DIVERGING_STEP_COUNT,exports.DataList=Wn.DataList,exports.DataTable=cr.DataTable,exports.DatePicker=Ee.DatePicker,exports.DateRangePicker=ir.DateRangePicker,exports.DescriptionList=Gn.DescriptionList,exports.Divider=De.Divider,exports.Drawer=Oe.Drawer,exports.DropdownMenu=ke.DropdownMenu,exports.Dropzone=Ae.Dropzone,exports.EARTH_RADIUS_KM=G.EARTH_RADIUS_KM,exports.EmptyState=je.EmptyState,exports.ErrorBoundary=Fi.ErrorBoundary,exports.ErrorState=Me.ErrorState,exports.ErrorText=Hn.ErrorText,exports.FeatureFlagsProvider=X.FeatureFlagsProvider,exports.FileUpload=Ne.FileUpload,exports.FilterBar=Vr.FilterBar,exports.FilterPanel=Wr.FilterPanel,exports.FloatingActionButton=ur.FloatingActionButton,exports.For=Vn.For,exports.Form=e.Form,exports.FormActions=e.FormActions,exports.FormField=ra.FormField,Object.defineProperty(exports,"FormProvider",{enumerable:!0,get:function(){return $.FormProvider}}),exports.FormRow=e.FormRow,exports.FormSection=e.FormSection,exports.GoogleSignIn=yi.GoogleSignIn,exports.Grid=t.Grid,exports.HEARTBEAT_CLOSE_CODE=ca.HEARTBEAT_CLOSE_CODE,Object.defineProperty(exports,"HashRouter",{enumerable:!0,get:function(){return Q.HashRouter}}),exports.Hide=Qt.Hide,exports.HoverCard=Zn.HoverCard,exports.I18nProvider=T.I18nProvider,exports.Image=Un.Image,exports.ImageCropper=xn.ImageCropper,exports.Input=Te.Input,exports.InstallBanner=Ie.InstallBanner,exports.InstallButton=Le.InstallButton,exports.Kanban=Rt.Kanban,exports.Kbd=zt.Kbd,exports.Label=Jn.Label,exports.Lightbox=hr.Lightbox,Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return Q.Link}}),exports.ListTile=lr.ListTile,exports.Markdown=Nr.Markdown,exports.Masonry=Lr.Masonry,Object.defineProperty(exports,"MemoryRouter",{enumerable:!0,get:function(){return Q.MemoryRouter}}),exports.Menubar=or.Menubar,exports.Modal=Ce.Modal,exports.ModalsProvider=Bt.ModalsProvider,exports.Money=In.Money,exports.MoneyInput=H.MoneyInput,exports.MultiSelect=rr.MultiSelect,exports.NProgressBar=Ht.NProgressBar,Object.defineProperty(exports,"NavLink",{enumerable:!0,get:function(){return Q.NavLink}}),exports.Navbar=Vt.Navbar,Object.defineProperty(exports,"Navigate",{enumerable:!0,get:function(){return Q.Navigate}}),exports.NavigationMenu=ar.NavigationMenu,exports.NavigationRail=dr.NavigationRail,exports.NotificationCenter=Tn.NotificationCenter,exports.ORDINAL_START_STEP=Z.ORDINAL_START_STEP,exports.OfflineIndicator=Nt.OfflineIndicator,Object.defineProperty(exports,"Outlet",{enumerable:!0,get:function(){return Q.Outlet}}),exports.PUSH_TO_TALK_KEYS=r.PUSH_TO_TALK_KEYS,exports.Page=Ut.Page,exports.Pagination=Wt.Pagination,exports.PasskeyError=D.PasskeyError,exports.PasswordInput=Gt.PasswordInput,exports.PhoneInput=H.PhoneInput,exports.PinInput=Kt.PinInput,exports.Popover=qt.Popover,exports.Portal=xe.Portal,exports.Progress=Jt.Progress,exports.QRCapacityError=l.QRCapacityError,exports.QRCode=Mn.QRCode,exports.QueryProvider=Ci.QueryProvider,exports.REFETCH_TIME=k.REFETCH_TIME,exports.Radio=Yt.Radio,exports.RadioGroup=Yt.RadioGroup,exports.RangeSlider=Xt.RangeSlider,exports.RatingStars=Zt.RatingStars,exports.RefreshIndicator=pr.RefreshIndicator,exports.RelativeTime=Fn.RelativeTime,exports.Resizable=er.Resizable,Object.defineProperty(exports,"Route",{enumerable:!0,get:function(){return Q.Route}}),exports.RouteGuard=Ai.RouteGuard,Object.defineProperty(exports,"Routes",{enumerable:!0,get:function(){return Q.Routes}}),exports.SEQUENTIAL_STEP_COUNT=Z.SEQUENTIAL_STEP_COUNT,exports.STALE_TIME=k.STALE_TIME,exports.SafeArea=$t.SafeArea,exports.Scheduler=Cn.Scheduler,exports.ScrollArea=$n.ScrollArea,exports.SearchBar=en.SearchBar,exports.SegmentedControl=tn.SegmentedControl,exports.Select=nn.Select,exports.Show=Qt.Show,exports.Sidebar=an.Sidebar,exports.SignaturePad=gr.SignaturePad,exports.Skeleton=on.Skeleton,exports.Slider=nr.Slider,exports.Spacer=sn.Spacer,exports.Sparkline=Sn.Sparkline,exports.Spinner=cn.Spinner,exports.Stack=t.Stack,exports.Stat=ln.Stat,exports.Stepper=un.Stepper,exports.StepperInput=fn.StepperInput,exports.Switch=pn.Switch,exports.SyncStatusBadge=It.SyncStatusBadge,exports.Table=hn.Table,exports.Tabs=gn.Tabs,exports.Tag=mn.Tag,exports.TelemetryProvider=Ta.TelemetryProvider,exports.TempestApiError=C.TempestApiError,exports.TempestDataProvider=M.TempestDataProvider,exports.Textarea=_n.Textarea,exports.ThemeProvider=Pi.ThemeProvider,exports.TimePicker=fr.TimePicker,exports.Timeline=vn.Timeline,exports.ToastProvider=bn.ToastProvider,exports.Toggle=Kn.Toggle,exports.ToggleGroup=qn.ToggleGroup,exports.ToggleGroupItem=qn.ToggleGroupItem,exports.Tooltip=yn.Tooltip,exports.Tour=Rr.Tour,exports.TrajectoryMap=ya.TrajectoryMap,exports.Transfer=Ir.Transfer,exports.TreeView=Ln.TreeView,exports.TruncateText=Rn.TruncateText,exports.UpdatePrompt=Lt.UpdatePrompt,exports.VideoPlayer=On.VideoPlayer,exports.VirtualList=kn.VirtualList,exports.VirtualTable=jn.VirtualTable,exports.VisuallyHidden=Ft.VisuallyHidden,exports.WebPushClient=P.WebPushClient,exports.WebPushPermissionDeniedError=P.WebPushPermissionDeniedError,exports.WebPushUnsupportedError=P.WebPushUnsupportedError,exports.Wizard=mr.Wizard,exports.activeNavKey=rn.activeNavKey,exports.aiChatStrings=p.aiChatStrings,exports.announce=i.announce,exports.applyFilters=Hr.applyFilters,exports.applyKanbanMove=Rt.applyKanbanMove,exports.applyTheme=ba.applyTheme,exports.assertNever=b.assertNever,exports.base64UrlToBytes=D.base64UrlToBytes,exports.bearingDeg=G.bearingDeg,exports.blobToWav=Dr.blobToWav,exports.boundingBox=q.boundingBox,exports.boundsCenter=q.boundsCenter,exports.buildApiUrl=Qr.buildApiUrl,exports.buildBarListRows=zr.buildBarListRows,exports.buildOpenInChromeIntent=n.buildOpenInChromeIntent,exports.bytesToBase64Url=D.bytesToBase64Url,exports.cachedResponseBytes=Ma.cachedResponseBytes,exports.camelCase=_.camelCase,exports.capitalize=_.capitalize,exports.chunk=v.chunk,exports.clamp=c.clamp,exports.clampLatitude=W.clampLatitude,exports.classifyPasskeyError=D.classifyPasskeyError,exports.clearAnnouncer=i.clearAnnouncer,exports.clearCaches=L.clearCaches,exports.cn=ee.cn,exports.compareValues=An.compareValues,exports.compressToString=g.compressToString,exports.compressedStorage=g.compressedStorage,exports.compressedStorageCodec=g.compressedStorageCodec,exports.consoleSink=wa.consoleSink,exports.consoleTelemetryAdapter=Ea.consoleTelemetryAdapter,exports.contrastRatio=Y.contrastRatio,exports.createApiClient=ti.createApiClient,exports.createAudioBus=Ki.createAudioBus,exports.createAudioPlayer=R.createAudioPlayer,exports.createAudioRecorder=d.createAudioRecorder,exports.createAuthStore=ci.createAuthStore,exports.createBarcodeDetector=f.createBarcodeDetector,exports.createColorScale=Y.createColorScale,exports.createDataProvider=ki.createDataProvider,exports.createEventStream=Li.createEventStream,exports.createGrowthBookFeatureFlagsAdapter=Aa.createGrowthBookFeatureFlagsAdapter,exports.createI18n=ni.createI18n,exports.createInMemoryFlags=ka.createInMemoryFlags,exports.createInferenceProfiler=Fa.createInferenceProfiler,exports.createJsonStorage=Gr.createJsonStorage,exports.createLaunchDarklyFeatureFlagsAdapter=ja.createLaunchDarklyFeatureFlagsAdapter,exports.createLevelMeter=Cr.createLevelMeter,exports.createLinkStatsSampler=U.createLinkStatsSampler,exports.createLocalUploadStorage=E.createLocalUploadStorage,exports.createLogger=wa.createLogger,exports.createMediaRecorder=Sr.createMediaRecorder,exports.createOSRMBackend=ga.createOSRMBackend,exports.createOfflineDatabase=$i.createOfflineDatabase,exports.createOfflineStore=Di.createOfflineStore,exports.createOfflineSync=ea.createOfflineSync,exports.createPartialResponse=I.createPartialResponse,exports.createPasskeyClient=D.createPasskeyClient,exports.createPeerMesh=ha.createPeerMesh,exports.createPositionTracker=_a.createPositionTracker,exports.createPostHogTelemetryAdapter=Oa.createPostHogTelemetryAdapter,exports.createQueryKeys=xi.createQueryKeys,exports.createRefreshQueue=fi.createRefreshQueue,exports.createResumableUpload=E.createResumableUpload,exports.createRoleAccessControl=_i.createRoleAccessControl,exports.createSelectors=Ni.createSelectors,exports.createSentryTelemetryAdapter=Da.createSentryTelemetryAdapter,exports.createSfxPool=Wi.createSfxPool,exports.createStore=Mi.createStore,exports.createTempestAuth=pi.createTempestAuth,exports.createTheme=xa.createTheme,exports.createVideoRecorder=B.createVideoRecorder,exports.createVoiceChain=z.createVoiceChain,exports.createWebSocket=la.createWebSocket,exports.csrfHeaders=S.csrfHeaders,exports.debounce=x.debounce,exports.decodeJWT=ui.decodeJWT,exports.decompressFromString=g.decompressFromString,exports.deepMerge=y.deepMerge,exports.defaultInstallHint=Fe.defaultInstallHint,exports.defineRoutes=ji.defineRoutes,exports.describeApiError=w.describeApiError,exports.describeFilter=m.describeFilter,exports.divergingScale=Z.divergingScale,exports.downloadCsv=Zr.downloadCsv,exports.emptyOffsetPage=A.emptyOffsetPage,exports.encodeQR=l.encodeQR,exports.encodeWav=Dr.encodeWav,exports.estimatePasswordStrength=Gt.estimatePasswordStrength,exports.estimateStorage=o.estimateStorage,exports.estimateTravel=K.estimateTravel,exports.expandBounds=q.expandBounds,exports.filtersFromSearchParams=m.filtersFromSearchParams,exports.filtersToQueryParams=Ur.filtersToQueryParams,exports.filtersToSearchParams=m.filtersToSearchParams,exports.fitProjection=J.fitProjection,exports.formatBytes=c.formatBytes,exports.formatCEP=V.formatCEP,exports.formatCNPJ=V.formatCNPJ,exports.formatCPF=h.formatCPF,exports.formatCompactNumber=c.formatCompactNumber,exports.formatCurrency=h.formatCurrency,exports.formatDate=h.formatDate,exports.formatDateForInput=h.formatDateForInput,exports.formatDateTime=h.formatDateTime,exports.formatDateTimeForInput=h.formatDateTimeForInput,exports.formatDurationMs=Pa.formatDurationMs,exports.formatPercent=h.formatPercent,exports.formatPhone=h.formatPhone,exports.generateIdempotencyKey=oi.generateIdempotencyKey,exports.getInitialTheme=Ca.getInitialTheme,exports.getSupportedBarcodeFormats=f.getSupportedBarcodeFormats,exports.getThemePreset=Sa.getThemePreset,exports.groupBy=v.groupBy,exports.haversineKm=G.haversineKm,exports.hexToOklch=Y.hexToOklch,exports.hexToRgb=Y.hexToRgb,exports.hexToRgbaString=Y.hexToRgbaString,exports.higherVersionWins=ta.higherVersionWins,exports.inspectCaches=L.inspectCaches,exports.installBackgroundSync=Vi.installBackgroundSync,exports.installNotificationClickHandler=F.installNotificationClickHandler,exports.installPrecache=I.installPrecache,exports.installPushHandler=F.installPushHandler,exports.installRuntimeCache=I.installRuntimeCache,exports.installSkipWaitingListener=F.installSkipWaitingListener,exports.isAndroid=n.isAndroid,exports.isAndroidWithoutPromptApi=n.isAndroidWithoutPromptApi,exports.isApiError=C.isApiError,exports.isAudioOutputSelectionSupported=br.isAudioOutputSelectionSupported,exports.isAudioRecordingSupported=d.isAudioRecordingSupported,exports.isBarcodeDetectionSupported=f.isBarcodeDetectionSupported,exports.isConditionalMediationAvailable=D.isConditionalMediationAvailable,exports.isCoordinate=W.isCoordinate,exports.isCursorPage=A.isCursorPage,exports.isDefined=b.isDefined,exports.isEmpty=y.isEmpty,exports.isFullscreenSupported=rt.isFullscreenSupported,exports.isGenerating=p.isGenerating,exports.isIOS=n.isIOS,exports.isJWTExpired=ui.isJWTExpired,exports.isMediaCaptureSupported=Tr.isMediaCaptureSupported,exports.isNumber=b.isNumber,exports.isOffsetPage=A.isOffsetPage,exports.isPasskeySupported=D.isPasskeySupported,exports.isPlainObject=b.isPlainObject,exports.isPlatformAuthenticatorAvailable=D.isPlatformAuthenticatorAvailable,exports.isPushSupported=zi.isPushSupported,exports.isRejectionCloseCode=ca.isRejectionCloseCode,exports.isRetriableStatus=C.isRetriableStatus,exports.isScreenCaptureSupported=Zi.isScreenCaptureSupported,exports.isShareSupported=Yr.isShareSupported,exports.isSpeechRecognitionSupported=Qi.isSpeechRecognitionSupported,exports.isStandalone=n.isStandalone,exports.isString=b.isString,exports.isTrustedCredentialTarget=$r.isTrustedCredentialTarget,exports.isValidLatitude=W.isValidLatitude,exports.isValidLongitude=W.isValidLongitude,exports.isVideoRecordingSupported=B.isVideoRecordingSupported,exports.isVoiceChainIdle=z.isVoiceChainIdle,exports.kebabCase=_.kebabCase,exports.lastAssistantId=p.lastAssistantId,exports.lastWriteWins=ta.lastWriteWins,exports.lazyWithRetry=di.lazyWithRetry,exports.listQueryKey=N.listQueryKey,exports.matrixToPath=l.matrixToPath,exports.measureNoiseFloor=Ji.measureNoiseFloor,exports.memoizeOne=x.memoizeOne,exports.monitorVoiceActivity=Yi.monitorVoiceActivity,exports.monitorVoiceChain=z.monitorVoiceChain,exports.moveItem=kt.moveItem,exports.normalizeBarcode=f.normalizeBarcode,exports.normalizeLongitude=W.normalizeLongitude,exports.nprogress=Ht.nprogress,exports.oklchToHex=Y.oklchToHex,exports.omit=y.omit,exports.once=x.once,exports.oneQueryKey=N.oneQueryKey,exports.operatorsFor=m.operatorsFor,exports.parseResponse=ii.parseResponse,exports.pathLengthKm=G.pathLengthKm,exports.percentOf=c.percentOf,exports.permissionsFromToken=vi.permissionsFromToken,exports.persistQueryClientOffline=Oi.persistQueryClientOffline,exports.pick=y.pick,exports.pickAudioMimeType=d.pickAudioMimeType,exports.pickVideoMimeType=B.pickVideoMimeType,exports.playAudio=R.playAudio,exports.pluralize=_.pluralize,exports.projectMercator=J.projectMercator,exports.pushToTalkKeyLabel=r.pushToTalkKeyLabel,exports.randomId=qr.randomId,exports.range=v.range,exports.readAvailableOutgoingKbps=U.readAvailableOutgoingKbps,exports.readDeviceProfile=Na.readDeviceProfile,exports.readQualityLimitation=U.readQualityLimitation,exports.readRelayed=U.readRelayed,exports.readRoundTripMs=U.readRoundTripMs,exports.readThemeToken=ba.readThemeToken,exports.readableForeground=Y.readableForeground,exports.receiptLabel=u.receiptLabel,Object.defineProperty(exports,"redirect",{enumerable:!0,get:function(){return Q.redirect}}),exports.registerPeriodicSync=Hi.registerPeriodicSync,exports.registerServiceWorker=a.registerServiceWorker,exports.relativeLuminance=Y.relativeLuminance,exports.relativeTime=wn.relativeTime,exports.removeById=j.removeById,exports.requestPersistentStorage=o.requestPersistentStorage,exports.resolveDegradation=ma.resolveDegradation,exports.resolveReceiptState=u.resolveReceiptState,exports.retry=ei.retry,exports.rgbToHex=Y.rgbToHex,exports.roleLabel=p.roleLabel,exports.scaleForRoom=ma.scaleForRoom,exports.scaleSteps=Z.scaleSteps,exports.sequentialScale=Z.sequentialScale,exports.setAudioOutput=br.setAudioOutput,exports.setDevBuild=re.setDevBuild,exports.setSenderBitrate=fa.setSenderBitrate,exports.setTunedLocalDescription=da.setTunedLocalDescription,exports.share=Yr.share,exports.shareOrDownloadBlob=Xr.shareOrDownloadBlob,exports.shouldRetryQuery=Si.shouldRetryQuery,exports.skipWaiting=a.skipWaiting,exports.sleep=Kr.sleep,exports.slugify=_.slugify,exports.stopAudio=R.stopAudio,exports.storage=Gr.storage,exports.suggestGateThreshold=Ji.suggestGateThreshold,exports.tailSignature=p.tailSignature,exports.themeContrast=xa.themeContrast,exports.themeInitScript=Ca.themeInitScript,exports.themePresets=Sa.themePresets,exports.throttle=x.throttle,exports.toCsv=Zr.toCsv,exports.toOptions=s.toOptions,exports.toRadians=G.toRadians,exports.truncate=_.truncate,exports.tuneOpus=da.tuneOpus,exports.turnTime=p.turnTime,exports.uniqueBy=v.uniqueBy,exports.unmask=V.unmask,exports.unprojectMercator=J.unprojectMercator,exports.unregisterAllServiceWorkers=a.unregisterAllServiceWorkers,exports.uploadFingerprint=E.uploadFingerprint,exports.uploadWithProgress=ai.uploadWithProgress,exports.upsertById=j.upsertById,exports.urlBase64ToUint8Array=zi.urlBase64ToUint8Array,exports.useAccessControl=mi.useAccessControl,exports.useAnnounce=i.useAnnounce,exports.useAsync=Je.useAsync,exports.useAudio=Ui.useAudio,exports.useAudioBus=qi.useAudioBus,exports.useAudioRecorder=wr.useAudioRecorder,exports.useBarcodeScanner=Ar.useBarcodeScanner,exports.useBeforeInstallPrompt=tt.useBeforeInstallPrompt,exports.useBreakpoint=ae.useBreakpoint,exports.useCan=hi.useCan,exports.useClickOutside=wt.useClickOutside,exports.useClientFilter=Be.useClientFilter,exports.useClipboard=$e.useClipboard,exports.useCountdown=_t.useCountdown,exports.useCounter=gt.useCounter,exports.useCreate=N.useCreate,exports.useCursorQuery=Ti.useCursorQuery,exports.useDataProvider=M.useDataProvider,exports.useDebounce=Re.useDebounce,exports.useDeepMemo=Ve.useDeepMemo,exports.useDelete=N.useDelete,exports.useDescribeApiError=ri.useDescribeApiError,exports.useDisclosure=mt.useDisclosure,exports.useDocumentTitle=yt.useDocumentTitle,exports.useDocumentVisibility=Xe.useDocumentVisibility,exports.useDraftFilters=Ue.useDraftFilters,exports.useErrorHandler=na.useErrorHandler,exports.useEventListener=Ge.useEventListener,exports.useEventStream=Ri.useEventStream,exports.useFavicon=bt.useFavicon,exports.useFeatureFlag=X.useFeatureFlag,Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return $.useFieldArray}}),exports.useFlagValue=X.useFlagValue,exports.useFocusTrap=pe.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.useFullscreen=rt.useFullscreen,exports.useGeolocation=it.useGeolocation,exports.useHover=ft.useHover,exports.useI18n=T.useI18n,exports.useIdle=nt.useIdle,exports.useInstallPrompt=Pe.useInstallPrompt,exports.useIntersectionObserver=Ze.useIntersectionObserver,exports.useInterval=ct.useInterval,exports.useIsFirstRender=Tt.useIsFirstRender,exports.useKeyboardShortcut=et.useKeyboardShortcut,exports.useLatestRef=He.useLatestRef,exports.useLinkStats=pa.useLinkStats,exports.useList=N.useList,exports.useListState=ht.useListState,exports.useLocalStorage=Ke.useLocalStorage,Object.defineProperty(exports,"useLocation",{enumerable:!0,get:function(){return Q.useLocation}}),exports.useLongPress=pt.useLongPress,exports.useLongPressHandlers=Dt.useLongPressHandlers,exports.useMap=xt.useMap,Object.defineProperty(exports,"useMatch",{enumerable:!0,get:function(){return Q.useMatch}}),exports.useMediaDevices=Mt.useMediaDevices,exports.useMediaPermission=jt.useMediaPermission,exports.useMediaQuery=We.useMediaQuery,exports.useMicrophone=Er.useMicrophone,exports.useModals=Bt.useModals,Object.defineProperty(exports,"useNavigate",{enumerable:!0,get:function(){return Q.useNavigate}}),exports.useNotificationInbox=En.useNotificationInbox,exports.useOAuthCallback=bi.useOAuthCallback,exports.useObjectUrl=Et.useObjectUrl,exports.useOfflineMutation=Ei.useOfflineMutation,exports.useOfflineSync=Pt.useOfflineSync,exports.useOne=N.useOne,exports.useOnline=Ye.useOnline,exports.useOptionalI18n=T.useOptionalI18n,exports.usePaginatedQuery=wi.usePaginatedQuery,exports.usePagination=ze.usePagination,Object.defineProperty(exports,"useParams",{enumerable:!0,get:function(){return Q.useParams}}),exports.usePasskeyCapabilities=O.usePasskeyCapabilities,exports.usePasskeyRegistration=O.usePasskeyRegistration,exports.usePasskeySignIn=O.usePasskeySignIn,exports.usePoll=si.usePoll,exports.usePositionTracker=va.usePositionTracker,exports.usePrevious=st.usePrevious,exports.usePushSubscription=Bi.usePushSubscription,exports.usePushToTalk=r.usePushToTalk,exports.useQueue=Ct.useQueue,exports.useResizeObserver=Qe.useResizeObserver,Object.defineProperty(exports,"useRouteError",{enumerable:!0,get:function(){return Q.useRouteError}}),exports.useScreenCapture=Zi.useScreenCapture,exports.useScrollLock=at.useScrollLock,exports.useScrollOverflow=At.useScrollOverflow,Object.defineProperty(exports,"useSearchParams",{enumerable:!0,get:function(){return Q.useSearchParams}}),exports.useServiceWorkerUpdate=Ot.useServiceWorkerUpdate,exports.useSet=St.useSet,exports.useSfxPool=Gi.useSfxPool,exports.useSortable=kt.useSortable,exports.useSpeechRecognition=Qi.useSpeechRecognition,exports.useStableCallback=ot.useStableCallback,exports.useStorageEstimate=o.useStorageEstimate,exports.useSyncStatus=Pt.useSyncStatus,exports.useTelemetry=Ta.useTelemetry,exports.useTheme=Pi.useTheme,exports.useThrottle=ut.useThrottle,exports.useTimeout=lt.useTimeout,exports.useToast=bn.useToast,exports.useToggle=qe.useToggle,exports.useTorch=kr.useTorch,exports.useTranslate=T.useTranslate,exports.useTypewriter=vt.useTypewriter,exports.useUpdate=N.useUpdate,exports.useViaCEP=sa.useViaCEP,exports.useVideoRecorder=Xi.useVideoRecorder,Object.defineProperty(exports,"useWatch",{enumerable:!0,get:function(){return $.useWatch}}),exports.useWebSocket=ua.useWebSocket,exports.useWindowSize=dt.useWindowSize,exports.useZodForm=oa.useZodForm,exports.validateCNPJ=V.validateCNPJ,exports.validateCPF=V.validateCPF,exports.validateForm=ia.validateForm,exports.visibleTurns=p.visibleTurns,exports.withAllOption=s.withAllOption,exports.withEmptyOption=s.withEmptyOption,exports.withTimeout=Kr.withTimeout,exports.writeXlsx=Jr.writeXlsx,exports.zodResolver=aa.zodResolver;