tempest-react-sdk 0.44.0 → 0.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/auth/create-tempest-auth.cjs +1 -1
- package/dist/auth/create-tempest-auth.cjs.map +1 -1
- package/dist/auth/create-tempest-auth.js +47 -44
- package/dist/auth/create-tempest-auth.js.map +1 -1
- package/dist/http/api-client.cjs +1 -1
- package/dist/http/api-client.cjs.map +1 -1
- package/dist/http/api-client.js +42 -43
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/build-url.cjs +2 -0
- package/dist/http/build-url.cjs.map +1 -0
- package/dist/http/build-url.js +26 -0
- package/dist/http/build-url.js.map +1 -0
- package/dist/http/errors.cjs +1 -1
- package/dist/http/errors.cjs.map +1 -1
- package/dist/http/errors.js +39 -8
- package/dist/http/errors.js.map +1 -1
- package/dist/tempest-react-sdk.cjs +1 -1
- package/dist/tempest-react-sdk.d.ts +79 -1
- package/dist/tempest-react-sdk.js +110 -109
- package/package.json +1 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/http/build-url.ts
|
|
2
|
+
var e = /^[a-z][a-z\d+\-.]*:/i;
|
|
3
|
+
function t(e) {
|
|
4
|
+
return e.split("/").filter(Boolean);
|
|
5
|
+
}
|
|
6
|
+
function n(e, t) {
|
|
7
|
+
return t.length === 0 || t.length > e.length ? !1 : t.every((t, n) => e[n] === t);
|
|
8
|
+
}
|
|
9
|
+
function r(e) {
|
|
10
|
+
let t = globalThis.location?.origin;
|
|
11
|
+
if (!t) throw TypeError(`createApiClient: baseURL "${e}" is relative and there is no location to resolve it against. Pass an absolute URL (https://api.example.com) outside the browser.`);
|
|
12
|
+
return t;
|
|
13
|
+
}
|
|
14
|
+
function i(t, n, r = {}) {
|
|
15
|
+
let { prefix: i, params: o } = r, s = e.test(n) ? new URL(n) : new URL(a(t, n, i));
|
|
16
|
+
if (o) for (let [e, t] of Object.entries(o)) t != null && s.searchParams.set(e, String(t));
|
|
17
|
+
return s.toString();
|
|
18
|
+
}
|
|
19
|
+
function a(i, a, o) {
|
|
20
|
+
let s = e.test(i) ? new URL(i) : new URL(i, r(i)), c = a.indexOf("?"), l = c === -1 ? a : a.slice(0, c), u = c === -1 ? "" : a.slice(c), d = [...t(s.pathname), ...t(o ?? "")], f = t(l), p = n(f, d) ? f : [...d, ...f], m = l.endsWith("/") ? "/" : "", h = p.length > 0 ? `/${p.join("/")}${m}` : "/";
|
|
21
|
+
return `${s.origin}${h}${u}`;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { i as buildApiUrl };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=build-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-url.js","names":[],"sources":["../../src/http/build-url.ts"],"sourcesContent":["/**\n * Matches a path that already carries its own scheme (`https:`, `blob:`), which\n * makes it an absolute URL rather than something to resolve against the base.\n */\nconst ABSOLUTE_URL = /^[a-z][a-z\\d+\\-.]*:/i;\n\n/** Split a path into its non-empty segments, dropping surrounding slashes. */\nfunction segments(path: string): string[] {\n return path.split(\"/\").filter(Boolean);\n}\n\n/**\n * Whether `path` already starts with every segment of `prefix`.\n *\n * Compared segment by segment, so a `/api` prefix is not considered present in\n * `/api-keys` — a plain `startsWith` would swallow the resource.\n *\n * @param path - Segments of the request path.\n * @param prefix - Segments of the base path.\n * @returns Whether the prefix is already applied.\n */\nfunction startsWithSegments(path: string[], prefix: string[]): boolean {\n if (prefix.length === 0 || prefix.length > path.length) return false;\n return prefix.every((segment, index) => path[index] === segment);\n}\n\n/**\n * Resolve the origin a relative `baseURL` hangs off.\n *\n * A base such as `\"/api\"` is the shape you get behind a dev-server proxy or a\n * reverse proxy that serves app and API from one host. It only means something\n * in a browsing context, so this throws with the config to fix rather than\n * letting `new URL` report `Invalid base URL` from three frames deeper.\n *\n * @param baseURL - The base as the caller wrote it.\n * @returns The origin to resolve against.\n * @throws When there is no `location` to borrow an origin from.\n */\nfunction currentOrigin(baseURL: string): string {\n const origin = globalThis.location?.origin;\n if (!origin) {\n throw new TypeError(\n `createApiClient: baseURL \"${baseURL}\" is relative and there is no location to resolve it against. Pass an absolute URL (https://api.example.com) outside the browser.`,\n );\n }\n return origin;\n}\n\n/** Options accepted by {@link buildApiUrl}. */\nexport interface BuildApiUrlOptions {\n /**\n * Path segment every request is nested under, such as `\"/api\"`. Joined\n * after the path the `baseURL` already carries.\n */\n prefix?: string;\n /** Query params to append. `undefined` and `null` values are skipped. */\n params?: Record<string, string | number | boolean | undefined | null>;\n}\n\n/**\n * Join a base URL, an optional prefix and a request path into an absolute URL.\n *\n * `new URL(path, base)` on its own is wrong for an API client. It follows the\n * URL spec, where a path starting with `/` is absolute against the *origin* and\n * therefore discards whatever path the base carried: a client on\n * `https://api.example.com/api` asked for `/auth/login` reaches\n * `https://api.example.com/auth/login`, and every request 404s with nothing in\n * the config that looks wrong. This function resolves the path against the base\n * *path* instead, so the leading slash is a matter of taste rather than a\n * silent 404, and `baseURL` + `prefix` are interchangeable ways to say the same\n * thing.\n *\n * The prefix is applied at most once: a path that already opens with it — say\n * `\"/api/auth/login\"` under a `\"/api\"` prefix — is left alone, so a codebase\n * migrating to `prefix` can move its call sites one at a time. The check is per\n * segment, so `/api-keys` is not mistaken for an already-prefixed path.\n *\n * A path that is itself an absolute URL wins over all of this, which is how a\n * client reaches a second host (a signed upload endpoint, a CDN) without a\n * second client.\n *\n * @example\n * buildApiUrl(\"https://api.example.com\", \"/auth/login\", { prefix: \"/api\" });\n * // \"https://api.example.com/api/auth/login\"\n *\n * buildApiUrl(\"https://api.example.com/api\", \"auth/login\");\n * // \"https://api.example.com/api/auth/login\"\n *\n * @param baseURL - Absolute base URL, or a path relative to the current origin.\n * @param path - The request path, or an absolute URL to use as-is.\n * @param options - Optional prefix and query params.\n * @returns The absolute URL to fetch.\n * @throws When `baseURL` is relative and there is no `location` to resolve it.\n */\nexport function buildApiUrl(\n baseURL: string,\n path: string,\n options: BuildApiUrlOptions = {},\n): string {\n const { prefix, params } = options;\n const url = ABSOLUTE_URL.test(path) ? new URL(path) : new URL(resolve(baseURL, path, prefix));\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\n/**\n * Build the absolute URL string for a path that is not already absolute.\n *\n * Kept separate from {@link buildApiUrl} so the query-param loop is not nested\n * inside the joining rules.\n *\n * @param baseURL - Absolute base URL, or a path relative to the current origin.\n * @param path - The request path.\n * @param prefix - Optional segment every request is nested under.\n * @returns The joined absolute URL.\n */\nfunction resolve(baseURL: string, path: string, prefix?: string): string {\n const base = ABSOLUTE_URL.test(baseURL)\n ? new URL(baseURL)\n : new URL(baseURL, currentOrigin(baseURL));\n\n const queryStart = path.indexOf(\"?\");\n const rawPath = queryStart === -1 ? path : path.slice(0, queryStart);\n const query = queryStart === -1 ? \"\" : path.slice(queryStart);\n\n const basePath = [...segments(base.pathname), ...segments(prefix ?? \"\")];\n const requested = segments(rawPath);\n const joined = startsWithSegments(requested, basePath)\n ? requested\n : [...basePath, ...requested];\n\n const trailing = rawPath.endsWith(\"/\") ? \"/\" : \"\";\n const pathname = joined.length > 0 ? `/${joined.join(\"/\")}${trailing}` : \"/\";\n return `${base.origin}${pathname}${query}`;\n}\n"],"mappings":";AAIA,IAAM,IAAe;AAGrB,SAAS,EAAS,GAAwB;CACtC,OAAO,EAAK,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO;AACzC;AAYA,SAAS,EAAmB,GAAgB,GAA2B;CAEnE,OADI,EAAO,WAAW,KAAK,EAAO,SAAS,EAAK,SAAe,KACxD,EAAO,OAAO,GAAS,MAAU,EAAK,OAAW,CAAO;AACnE;AAcA,SAAS,EAAc,GAAyB;CAC5C,IAAM,IAAS,WAAW,UAAU;CACpC,IAAI,CAAC,GACD,MAAU,UACN,6BAA6B,EAAQ,kIACzC;CAEJ,OAAO;AACX;AAgDA,SAAgB,EACZ,GACA,GACA,IAA8B,CAAC,GACzB;CACN,IAAM,EAAE,WAAQ,cAAW,GACrB,IAAM,EAAa,KAAK,CAAI,IAAI,IAAI,IAAI,CAAI,IAAI,IAAI,IAAI,EAAQ,GAAS,GAAM,CAAM,CAAC;CAE5F,IAAI,GACK,KAAA,IAAM,CAAC,GAAK,MAAU,OAAO,QAAQ,CAAM,GAC5C,AAAI,KAAiC,QACjC,EAAI,aAAa,IAAI,GAAK,OAAO,CAAK,CAAC;CAInD,OAAO,EAAI,SAAS;AACxB;AAaA,SAAS,EAAQ,GAAiB,GAAc,GAAyB;CACrE,IAAM,IAAO,EAAa,KAAK,CAAO,IAChC,IAAI,IAAI,CAAO,IACf,IAAI,IAAI,GAAS,EAAc,CAAO,CAAC,GAEvC,IAAa,EAAK,QAAQ,GAAG,GAC7B,IAAU,MAAe,KAAK,IAAO,EAAK,MAAM,GAAG,CAAU,GAC7D,IAAQ,MAAe,KAAK,KAAK,EAAK,MAAM,CAAU,GAEtD,IAAW,CAAC,GAAG,EAAS,EAAK,QAAQ,GAAG,GAAG,EAAS,KAAU,EAAE,CAAC,GACjE,IAAY,EAAS,CAAO,GAC5B,IAAS,EAAmB,GAAW,CAAQ,IAC/C,IACA,CAAC,GAAG,GAAU,GAAG,CAAS,GAE1B,IAAW,EAAQ,SAAS,GAAG,IAAI,MAAM,IACzC,IAAW,EAAO,SAAS,IAAI,IAAI,EAAO,KAAK,GAAG,IAAI,MAAa;CACzE,OAAO,GAAG,EAAK,SAAS,IAAW;AACvC"}
|
package/dist/http/errors.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=class extends Error{status;detail;code;requestId;body;constructor(e){super(e.detail),this.name=`TempestApiError`,this.status=e.status,this.detail=e.detail,this.code=e.code,this.requestId=e.requestId,this.body=e.body}};function t(e){return typeof e==`object`&&!!e&&typeof e.status==`number`&&typeof e.detail==`string`}function n(e,t,n,
|
|
1
|
+
var e=class extends Error{status;detail;code;requestId;body;constructor(e){super(e.detail),this.name=`TempestApiError`,this.status=e.status,this.detail=e.detail,this.code=e.code,this.requestId=e.requestId,this.body=e.body}};function t(e){return typeof e==`object`&&!!e&&typeof e.status==`number`&&typeof e.detail==`string`}var n=new Set([`body`,`query`,`path`,`header`,`cookie`]);function r(e){if(!Array.isArray(e))return;let t=e.filter(e=>typeof e==`string`||typeof e==`number`).filter((e,t)=>!(t===0&&n.has(String(e))));return t.length>0?t.join(`.`):void 0}function i(e){if(e!=null){if(typeof e==`string`)return e===``?void 0:e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e)){let t=e.map(e=>{let t=i(e);if(t===void 0)return;let n=typeof e==`object`&&e?r(e.loc):void 0;return n===void 0?t:`${n}: ${t}`}).filter(e=>e!==void 0);return t.length>0?t.join(`; `):void 0}if(typeof e==`object`){let t=e;return i(t.msg)??i(t.message)??i(t.detail)}}}function a(e,t,n,r){let a=typeof t==`object`&&t?t:null,s=i(a?.detail)??i(a?.message)??`Erro ${e}`,c=typeof a?.code==`string`?a.code:void 0,l=typeof a?.details==`object`&&a.details!==null?a.details:null;return{status:e,detail:s,code:c,requestId:(typeof l?.request_id==`string`?l.request_id:void 0)??n?.get(`X-Request-ID`)??r??void 0??void 0,retryAfter:o(n?.get(`Retry-After`)),body:t}}function o(e){if(!e)return;let t=e.trim();if(/^\d+$/.test(t))return Number(t);let n=Date.parse(t);if(!Number.isNaN(n))return Math.max(0,Math.round((n-Date.now())/1e3))}exports.TempestApiError=e,exports.buildApiError=a,exports.isApiError=t,exports.parseRetryAfter=o;
|
|
2
2
|
//# sourceMappingURL=errors.cjs.map
|
package/dist/http/errors.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","names":[],"sources":["../../src/http/errors.ts"],"sourcesContent":["import type { ApiError } from \"./types\";\n\n/**\n * Error thrown by {@link createApiClient} / {@link uploadWithProgress} on a\n * non-2xx response. Mirrors the Tempest FastAPI SDK error envelope\n * (`{ detail, code, details.request_id }`) so callers get a typed `code` and a\n * `requestId` for log correlation, while still being a real `Error` (stack\n * trace, `instanceof Error`).\n *\n * @example\n * try {\n * await api.post(\"/users\", { body });\n * } catch (err) {\n * if (isApiError(err) && err.code === \"EMAIL_TAKEN\") {\n * showFieldError(\"email\", err.detail);\n * }\n * }\n */\nexport class TempestApiError extends Error implements ApiError {\n readonly status: number;\n readonly detail: string;\n readonly code?: string;\n readonly requestId?: string;\n readonly body?: unknown;\n\n constructor(init: ApiError) {\n super(init.detail);\n this.name = \"TempestApiError\";\n this.status = init.status;\n this.detail = init.detail;\n this.code = init.code;\n this.requestId = init.requestId;\n this.body = init.body;\n }\n}\n\n/**\n * Type guard for the {@link ApiError} shape. Matches both {@link TempestApiError}\n * instances and plain objects carrying `status` + `detail`.\n *\n * @param error - The unknown value (typically a caught error).\n * @returns Whether `error` conforms to the `ApiError` contract.\n */\nexport function isApiError(error: unknown): error is ApiError {\n return (\n typeof error === \"object\" &&\n error !== null &&\n typeof (error as ApiError).status === \"number\" &&\n typeof (error as ApiError).detail === \"string\"\n );\n}\n\n/**\n * Parse an error body + response into the Tempest {@link ApiError} envelope.\n *\n * Reads `detail`/`message`, the programmatic `code`, and the correlation id\n * from `details.request_id` (falling back to the `X-Request-ID` header, then\n * the id the client sent).\n *\n * @param status - HTTP status code.\n * @param body - The parsed error body (object, string, or null).\n * @param headers - The response headers (for the `X-Request-ID` fallback).\n * @param sentRequestId - The id the client sent on the request, if any.\n * @returns A fully-populated `ApiError`.\n *\n * @tempest-limits param-count — the arguments are the response as it arrives\n * (`status`, `body`, `headers`) plus the id the request was sent with, and they are\n * passed at exactly one place: the client's response path. Exported from the package\n * root, so the rewrite would be breaking for callers that build their own errors.\n */\nexport function buildApiError(\n status: number,\n body: unknown,\n headers?: Headers | { get(name: string): string | null },\n sentRequestId?: string,\n): ApiError {\n const obj =\n typeof body === \"object\" && body !== null ? (body as Record<string, unknown>) : null;\n const detail
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":[],"sources":["../../src/http/errors.ts"],"sourcesContent":["import type { ApiError } from \"./types\";\n\n/**\n * Error thrown by {@link createApiClient} / {@link uploadWithProgress} on a\n * non-2xx response. Mirrors the Tempest FastAPI SDK error envelope\n * (`{ detail, code, details.request_id }`) so callers get a typed `code` and a\n * `requestId` for log correlation, while still being a real `Error` (stack\n * trace, `instanceof Error`).\n *\n * @example\n * try {\n * await api.post(\"/users\", { body });\n * } catch (err) {\n * if (isApiError(err) && err.code === \"EMAIL_TAKEN\") {\n * showFieldError(\"email\", err.detail);\n * }\n * }\n */\nexport class TempestApiError extends Error implements ApiError {\n readonly status: number;\n readonly detail: string;\n readonly code?: string;\n readonly requestId?: string;\n readonly body?: unknown;\n\n constructor(init: ApiError) {\n super(init.detail);\n this.name = \"TempestApiError\";\n this.status = init.status;\n this.detail = init.detail;\n this.code = init.code;\n this.requestId = init.requestId;\n this.body = init.body;\n }\n}\n\n/**\n * Type guard for the {@link ApiError} shape. Matches both {@link TempestApiError}\n * instances and plain objects carrying `status` + `detail`.\n *\n * @param error - The unknown value (typically a caught error).\n * @returns Whether `error` conforms to the `ApiError` contract.\n */\nexport function isApiError(error: unknown): error is ApiError {\n return (\n typeof error === \"object\" &&\n error !== null &&\n typeof (error as ApiError).status === \"number\" &&\n typeof (error as ApiError).detail === \"string\"\n );\n}\n\n/**\n * Location prefixes FastAPI puts at the head of a validation error's `loc`,\n * naming the part of the request rather than the field. Dropped from the\n * rendered path, so `[\"body\", \"email\"]` reads as `email`.\n */\nconst LOC_ROOTS: ReadonlySet<string> = new Set([\"body\", \"query\", \"path\", \"header\", \"cookie\"]);\n\n/**\n * Render a FastAPI validation error's `loc` tuple as a dotted field path.\n *\n * @param loc - The raw `loc` value from one validation error entry.\n * @returns The dotted path (`\"items.0.price\"`), or undefined when `loc` carries\n * nothing addressable.\n */\nfunction formatLoc(loc: unknown): string | undefined {\n if (!Array.isArray(loc)) return undefined;\n const parts = loc\n .filter(\n (part): part is string | number => typeof part === \"string\" || typeof part === \"number\",\n )\n .filter((part, index) => !(index === 0 && LOC_ROOTS.has(String(part))));\n return parts.length > 0 ? parts.join(\".\") : undefined;\n}\n\n/**\n * Collapse a backend `detail` of any shape into a single readable line.\n *\n * FastAPI answers a `422` with `detail` as a **list** of\n * `{ loc, msg, type }` entries, not a string. Passing that through `String()`\n * yields `\"[object Object]\"` — an error message that tells the user nothing and\n * hides which field failed. Each entry becomes `\"<field>: <msg>\"` and the\n * entries are joined with `\"; \"`; a nested object is read through its\n * `msg`/`message`/`detail` string.\n *\n * @param raw - The `detail` (or `message`) value from the error body.\n * @returns The rendered message, or undefined when nothing readable is there —\n * letting the caller fall back to the synthetic `Erro <status>`.\n */\nfunction normalizeDetail(raw: unknown): string | undefined {\n if (raw === null || raw === undefined) return undefined;\n if (typeof raw === \"string\") return raw === \"\" ? undefined : raw;\n if (typeof raw === \"number\" || typeof raw === \"boolean\") return String(raw);\n\n if (Array.isArray(raw)) {\n const lines = raw\n .map((entry) => {\n const message = normalizeDetail(entry);\n if (message === undefined) return undefined;\n const field =\n typeof entry === \"object\" && entry !== null\n ? formatLoc((entry as Record<string, unknown>).loc)\n : undefined;\n return field === undefined ? message : `${field}: ${message}`;\n })\n .filter((line): line is string => line !== undefined);\n return lines.length > 0 ? lines.join(\"; \") : undefined;\n }\n\n if (typeof raw === \"object\") {\n const entry = raw as Record<string, unknown>;\n return (\n normalizeDetail(entry.msg) ??\n normalizeDetail(entry.message) ??\n normalizeDetail(entry.detail)\n );\n }\n\n return undefined;\n}\n\n/**\n * Parse an error body + response into the Tempest {@link ApiError} envelope.\n *\n * Reads `detail`/`message`, the programmatic `code`, and the correlation id\n * from `details.request_id` (falling back to the `X-Request-ID` header, then\n * the id the client sent).\n *\n * A `422` from FastAPI carries `detail` as a list of `{ loc, msg, type }`\n * entries, so it is flattened to `\"<field>: <msg>; <field>: <msg>\"` instead of\n * being stringified into `\"[object Object]\"`. The untouched list stays on\n * `body` for callers that map errors onto form fields.\n *\n * @param status - HTTP status code.\n * @param body - The parsed error body (object, string, or null).\n * @param headers - The response headers (for the `X-Request-ID` fallback).\n * @param sentRequestId - The id the client sent on the request, if any.\n * @returns A fully-populated `ApiError`.\n *\n * @tempest-limits param-count — the arguments are the response as it arrives\n * (`status`, `body`, `headers`) plus the id the request was sent with, and they are\n * passed at exactly one place: the client's response path. Exported from the package\n * root, so the rewrite would be breaking for callers that build their own errors.\n */\nexport function buildApiError(\n status: number,\n body: unknown,\n headers?: Headers | { get(name: string): string | null },\n sentRequestId?: string,\n): ApiError {\n const obj =\n typeof body === \"object\" && body !== null ? (body as Record<string, unknown>) : null;\n const detail =\n normalizeDetail(obj?.detail) ?? normalizeDetail(obj?.message) ?? `Erro ${status}`;\n const code = typeof obj?.code === \"string\" ? obj.code : undefined;\n const details =\n typeof obj?.details === \"object\" && obj.details !== null\n ? (obj.details as Record<string, unknown>)\n : null;\n const requestId =\n (typeof details?.request_id === \"string\" ? details.request_id : undefined) ??\n headers?.get(\"X-Request-ID\") ??\n sentRequestId ??\n undefined;\n\n return {\n status,\n detail,\n code,\n requestId: requestId ?? undefined,\n retryAfter: parseRetryAfter(headers?.get(\"Retry-After\")),\n body,\n };\n}\n\n/**\n * Parse a `Retry-After` header into seconds. Accepts a delta-seconds integer\n * (`\"120\"`) or an HTTP-date (`\"Wed, 21 Oct 2015 07:28:00 GMT\"`).\n *\n * @param value - The raw header value, or null.\n * @returns The delay in seconds (>= 0), or undefined when absent/unparseable.\n */\nexport function parseRetryAfter(value: string | null | undefined): number | undefined {\n if (!value) return undefined;\n const trimmed = value.trim();\n if (/^\\d+$/.test(trimmed)) return Number(trimmed);\n const when = Date.parse(trimmed);\n if (Number.isNaN(when)) return undefined;\n return Math.max(0, Math.round((when - Date.now()) / 1000));\n}\n"],"mappings":"AAkBA,IAAa,EAAb,cAAqC,KAA0B,CAC3D,OACA,OACA,KACA,UACA,KAEA,YAAY,EAAgB,CACxB,MAAM,EAAK,MAAM,EACjB,KAAK,KAAO,kBACZ,KAAK,OAAS,EAAK,OACnB,KAAK,OAAS,EAAK,OACnB,KAAK,KAAO,EAAK,KACjB,KAAK,UAAY,EAAK,UACtB,KAAK,KAAO,EAAK,IACrB,CACJ,EASA,SAAgB,EAAW,EAAmC,CAC1D,OACI,OAAO,GAAU,YACjB,GACA,OAAQ,EAAmB,QAAW,UACtC,OAAQ,EAAmB,QAAW,QAE9C,CAOA,IAAM,EAAiC,IAAI,IAAI,CAAC,OAAQ,QAAS,OAAQ,SAAU,QAAQ,CAAC,EAS5F,SAAS,EAAU,EAAkC,CACjD,GAAI,CAAC,MAAM,QAAQ,CAAG,EAAG,OACzB,IAAM,EAAQ,EACT,OACI,GAAkC,OAAO,GAAS,UAAY,OAAO,GAAS,QACnF,CAAC,CACA,QAAQ,EAAM,IAAU,EAAE,IAAU,GAAK,EAAU,IAAI,OAAO,CAAI,CAAC,EAAE,EAC1E,OAAO,EAAM,OAAS,EAAI,EAAM,KAAK,GAAG,EAAI,IAAA,EAChD,CAgBA,SAAS,EAAgB,EAAkC,CACnD,MAAQ,KACZ,IAAI,OAAO,GAAQ,SAAU,OAAO,IAAQ,GAAK,IAAA,GAAY,EAC7D,GAAI,OAAO,GAAQ,UAAY,OAAO,GAAQ,UAAW,OAAO,OAAO,CAAG,EAE1E,GAAI,MAAM,QAAQ,CAAG,EAAG,CACpB,IAAM,EAAQ,EACT,IAAK,GAAU,CACZ,IAAM,EAAU,EAAgB,CAAK,EACrC,GAAI,IAAY,IAAA,GAAW,OAC3B,IAAM,EACF,OAAO,GAAU,UAAY,EACvB,EAAW,EAAkC,GAAG,EAChD,IAAA,GACV,OAAO,IAAU,IAAA,GAAY,EAAU,GAAG,EAAM,IAAI,GACxD,CAAC,CAAC,CACD,OAAQ,GAAyB,IAAS,IAAA,EAAS,EACxD,OAAO,EAAM,OAAS,EAAI,EAAM,KAAK,IAAI,EAAI,IAAA,EACjD,CAEA,GAAI,OAAO,GAAQ,SAAU,CACzB,IAAM,EAAQ,EACd,OACI,EAAgB,EAAM,GAAG,GACzB,EAAgB,EAAM,OAAO,GAC7B,EAAgB,EAAM,MAAM,CAEpC,CAzB6D,CA4BjE,CAyBA,SAAgB,EACZ,EACA,EACA,EACA,EACQ,CACR,IAAM,EACF,OAAO,GAAS,UAAY,EAAiB,EAAmC,KAC9E,EACF,EAAgB,GAAK,MAAM,GAAK,EAAgB,GAAK,OAAO,GAAK,QAAQ,IACvE,EAAO,OAAO,GAAK,MAAS,SAAW,EAAI,KAAO,IAAA,GAClD,EACF,OAAO,GAAK,SAAY,UAAY,EAAI,UAAY,KAC7C,EAAI,QACL,KAOV,MAAO,CACH,SACA,SACA,OACA,WATC,OAAO,GAAS,YAAe,SAAW,EAAQ,WAAa,IAAA,KAChE,GAAS,IAAI,cAAc,GAC3B,GACA,IAAA,IAMwB,IAAA,GACxB,WAAY,EAAgB,GAAS,IAAI,aAAa,CAAC,EACvD,MACJ,CACJ,CASA,SAAgB,EAAgB,EAAsD,CAClF,GAAI,CAAC,EAAO,OACZ,IAAM,EAAU,EAAM,KAAK,EAC3B,GAAI,QAAQ,KAAK,CAAO,EAAG,OAAO,OAAO,CAAO,EAChD,IAAM,EAAO,KAAK,MAAM,CAAO,EAC3B,WAAO,MAAM,CAAI,EACrB,OAAO,KAAK,IAAI,EAAG,KAAK,OAAO,EAAO,KAAK,IAAI,GAAK,GAAI,CAAC,CAC7D"}
|
package/dist/http/errors.js
CHANGED
|
@@ -12,18 +12,49 @@ var e = class extends Error {
|
|
|
12
12
|
function t(e) {
|
|
13
13
|
return typeof e == "object" && !!e && typeof e.status == "number" && typeof e.detail == "string";
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
var n = /* @__PURE__ */ new Set([
|
|
16
|
+
"body",
|
|
17
|
+
"query",
|
|
18
|
+
"path",
|
|
19
|
+
"header",
|
|
20
|
+
"cookie"
|
|
21
|
+
]);
|
|
22
|
+
function r(e) {
|
|
23
|
+
if (!Array.isArray(e)) return;
|
|
24
|
+
let t = e.filter((e) => typeof e == "string" || typeof e == "number").filter((e, t) => !(t === 0 && n.has(String(e))));
|
|
25
|
+
return t.length > 0 ? t.join(".") : void 0;
|
|
26
|
+
}
|
|
27
|
+
function i(e) {
|
|
28
|
+
if (e != null) {
|
|
29
|
+
if (typeof e == "string") return e === "" ? void 0 : e;
|
|
30
|
+
if (typeof e == "number" || typeof e == "boolean") return String(e);
|
|
31
|
+
if (Array.isArray(e)) {
|
|
32
|
+
let t = e.map((e) => {
|
|
33
|
+
let t = i(e);
|
|
34
|
+
if (t === void 0) return;
|
|
35
|
+
let n = typeof e == "object" && e ? r(e.loc) : void 0;
|
|
36
|
+
return n === void 0 ? t : `${n}: ${t}`;
|
|
37
|
+
}).filter((e) => e !== void 0);
|
|
38
|
+
return t.length > 0 ? t.join("; ") : void 0;
|
|
39
|
+
}
|
|
40
|
+
if (typeof e == "object") {
|
|
41
|
+
let t = e;
|
|
42
|
+
return i(t.msg) ?? i(t.message) ?? i(t.detail);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function a(e, t, n, r) {
|
|
47
|
+
let a = typeof t == "object" && t ? t : null, s = i(a?.detail) ?? i(a?.message) ?? `Erro ${e}`, c = typeof a?.code == "string" ? a.code : void 0, l = typeof a?.details == "object" && a.details !== null ? a.details : null;
|
|
17
48
|
return {
|
|
18
49
|
status: e,
|
|
19
|
-
detail:
|
|
20
|
-
code:
|
|
21
|
-
requestId: l ?? void 0,
|
|
22
|
-
retryAfter:
|
|
50
|
+
detail: s,
|
|
51
|
+
code: c,
|
|
52
|
+
requestId: (typeof l?.request_id == "string" ? l.request_id : void 0) ?? n?.get("X-Request-ID") ?? r ?? void 0 ?? void 0,
|
|
53
|
+
retryAfter: o(n?.get("Retry-After")),
|
|
23
54
|
body: t
|
|
24
55
|
};
|
|
25
56
|
}
|
|
26
|
-
function
|
|
57
|
+
function o(e) {
|
|
27
58
|
if (!e) return;
|
|
28
59
|
let t = e.trim();
|
|
29
60
|
if (/^\d+$/.test(t)) return Number(t);
|
|
@@ -31,6 +62,6 @@ function r(e) {
|
|
|
31
62
|
if (!Number.isNaN(n)) return Math.max(0, Math.round((n - Date.now()) / 1e3));
|
|
32
63
|
}
|
|
33
64
|
//#endregion
|
|
34
|
-
export { e as TempestApiError,
|
|
65
|
+
export { e as TempestApiError, a as buildApiError, t as isApiError, o as parseRetryAfter };
|
|
35
66
|
|
|
36
67
|
//# sourceMappingURL=errors.js.map
|
package/dist/http/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":[],"sources":["../../src/http/errors.ts"],"sourcesContent":["import type { ApiError } from \"./types\";\n\n/**\n * Error thrown by {@link createApiClient} / {@link uploadWithProgress} on a\n * non-2xx response. Mirrors the Tempest FastAPI SDK error envelope\n * (`{ detail, code, details.request_id }`) so callers get a typed `code` and a\n * `requestId` for log correlation, while still being a real `Error` (stack\n * trace, `instanceof Error`).\n *\n * @example\n * try {\n * await api.post(\"/users\", { body });\n * } catch (err) {\n * if (isApiError(err) && err.code === \"EMAIL_TAKEN\") {\n * showFieldError(\"email\", err.detail);\n * }\n * }\n */\nexport class TempestApiError extends Error implements ApiError {\n readonly status: number;\n readonly detail: string;\n readonly code?: string;\n readonly requestId?: string;\n readonly body?: unknown;\n\n constructor(init: ApiError) {\n super(init.detail);\n this.name = \"TempestApiError\";\n this.status = init.status;\n this.detail = init.detail;\n this.code = init.code;\n this.requestId = init.requestId;\n this.body = init.body;\n }\n}\n\n/**\n * Type guard for the {@link ApiError} shape. Matches both {@link TempestApiError}\n * instances and plain objects carrying `status` + `detail`.\n *\n * @param error - The unknown value (typically a caught error).\n * @returns Whether `error` conforms to the `ApiError` contract.\n */\nexport function isApiError(error: unknown): error is ApiError {\n return (\n typeof error === \"object\" &&\n error !== null &&\n typeof (error as ApiError).status === \"number\" &&\n typeof (error as ApiError).detail === \"string\"\n );\n}\n\n/**\n * Parse an error body + response into the Tempest {@link ApiError} envelope.\n *\n * Reads `detail`/`message`, the programmatic `code`, and the correlation id\n * from `details.request_id` (falling back to the `X-Request-ID` header, then\n * the id the client sent).\n *\n * @param status - HTTP status code.\n * @param body - The parsed error body (object, string, or null).\n * @param headers - The response headers (for the `X-Request-ID` fallback).\n * @param sentRequestId - The id the client sent on the request, if any.\n * @returns A fully-populated `ApiError`.\n *\n * @tempest-limits param-count — the arguments are the response as it arrives\n * (`status`, `body`, `headers`) plus the id the request was sent with, and they are\n * passed at exactly one place: the client's response path. Exported from the package\n * root, so the rewrite would be breaking for callers that build their own errors.\n */\nexport function buildApiError(\n status: number,\n body: unknown,\n headers?: Headers | { get(name: string): string | null },\n sentRequestId?: string,\n): ApiError {\n const obj =\n typeof body === \"object\" && body !== null ? (body as Record<string, unknown>) : null;\n const detail
|
|
1
|
+
{"version":3,"file":"errors.js","names":[],"sources":["../../src/http/errors.ts"],"sourcesContent":["import type { ApiError } from \"./types\";\n\n/**\n * Error thrown by {@link createApiClient} / {@link uploadWithProgress} on a\n * non-2xx response. Mirrors the Tempest FastAPI SDK error envelope\n * (`{ detail, code, details.request_id }`) so callers get a typed `code` and a\n * `requestId` for log correlation, while still being a real `Error` (stack\n * trace, `instanceof Error`).\n *\n * @example\n * try {\n * await api.post(\"/users\", { body });\n * } catch (err) {\n * if (isApiError(err) && err.code === \"EMAIL_TAKEN\") {\n * showFieldError(\"email\", err.detail);\n * }\n * }\n */\nexport class TempestApiError extends Error implements ApiError {\n readonly status: number;\n readonly detail: string;\n readonly code?: string;\n readonly requestId?: string;\n readonly body?: unknown;\n\n constructor(init: ApiError) {\n super(init.detail);\n this.name = \"TempestApiError\";\n this.status = init.status;\n this.detail = init.detail;\n this.code = init.code;\n this.requestId = init.requestId;\n this.body = init.body;\n }\n}\n\n/**\n * Type guard for the {@link ApiError} shape. Matches both {@link TempestApiError}\n * instances and plain objects carrying `status` + `detail`.\n *\n * @param error - The unknown value (typically a caught error).\n * @returns Whether `error` conforms to the `ApiError` contract.\n */\nexport function isApiError(error: unknown): error is ApiError {\n return (\n typeof error === \"object\" &&\n error !== null &&\n typeof (error as ApiError).status === \"number\" &&\n typeof (error as ApiError).detail === \"string\"\n );\n}\n\n/**\n * Location prefixes FastAPI puts at the head of a validation error's `loc`,\n * naming the part of the request rather than the field. Dropped from the\n * rendered path, so `[\"body\", \"email\"]` reads as `email`.\n */\nconst LOC_ROOTS: ReadonlySet<string> = new Set([\"body\", \"query\", \"path\", \"header\", \"cookie\"]);\n\n/**\n * Render a FastAPI validation error's `loc` tuple as a dotted field path.\n *\n * @param loc - The raw `loc` value from one validation error entry.\n * @returns The dotted path (`\"items.0.price\"`), or undefined when `loc` carries\n * nothing addressable.\n */\nfunction formatLoc(loc: unknown): string | undefined {\n if (!Array.isArray(loc)) return undefined;\n const parts = loc\n .filter(\n (part): part is string | number => typeof part === \"string\" || typeof part === \"number\",\n )\n .filter((part, index) => !(index === 0 && LOC_ROOTS.has(String(part))));\n return parts.length > 0 ? parts.join(\".\") : undefined;\n}\n\n/**\n * Collapse a backend `detail` of any shape into a single readable line.\n *\n * FastAPI answers a `422` with `detail` as a **list** of\n * `{ loc, msg, type }` entries, not a string. Passing that through `String()`\n * yields `\"[object Object]\"` — an error message that tells the user nothing and\n * hides which field failed. Each entry becomes `\"<field>: <msg>\"` and the\n * entries are joined with `\"; \"`; a nested object is read through its\n * `msg`/`message`/`detail` string.\n *\n * @param raw - The `detail` (or `message`) value from the error body.\n * @returns The rendered message, or undefined when nothing readable is there —\n * letting the caller fall back to the synthetic `Erro <status>`.\n */\nfunction normalizeDetail(raw: unknown): string | undefined {\n if (raw === null || raw === undefined) return undefined;\n if (typeof raw === \"string\") return raw === \"\" ? undefined : raw;\n if (typeof raw === \"number\" || typeof raw === \"boolean\") return String(raw);\n\n if (Array.isArray(raw)) {\n const lines = raw\n .map((entry) => {\n const message = normalizeDetail(entry);\n if (message === undefined) return undefined;\n const field =\n typeof entry === \"object\" && entry !== null\n ? formatLoc((entry as Record<string, unknown>).loc)\n : undefined;\n return field === undefined ? message : `${field}: ${message}`;\n })\n .filter((line): line is string => line !== undefined);\n return lines.length > 0 ? lines.join(\"; \") : undefined;\n }\n\n if (typeof raw === \"object\") {\n const entry = raw as Record<string, unknown>;\n return (\n normalizeDetail(entry.msg) ??\n normalizeDetail(entry.message) ??\n normalizeDetail(entry.detail)\n );\n }\n\n return undefined;\n}\n\n/**\n * Parse an error body + response into the Tempest {@link ApiError} envelope.\n *\n * Reads `detail`/`message`, the programmatic `code`, and the correlation id\n * from `details.request_id` (falling back to the `X-Request-ID` header, then\n * the id the client sent).\n *\n * A `422` from FastAPI carries `detail` as a list of `{ loc, msg, type }`\n * entries, so it is flattened to `\"<field>: <msg>; <field>: <msg>\"` instead of\n * being stringified into `\"[object Object]\"`. The untouched list stays on\n * `body` for callers that map errors onto form fields.\n *\n * @param status - HTTP status code.\n * @param body - The parsed error body (object, string, or null).\n * @param headers - The response headers (for the `X-Request-ID` fallback).\n * @param sentRequestId - The id the client sent on the request, if any.\n * @returns A fully-populated `ApiError`.\n *\n * @tempest-limits param-count — the arguments are the response as it arrives\n * (`status`, `body`, `headers`) plus the id the request was sent with, and they are\n * passed at exactly one place: the client's response path. Exported from the package\n * root, so the rewrite would be breaking for callers that build their own errors.\n */\nexport function buildApiError(\n status: number,\n body: unknown,\n headers?: Headers | { get(name: string): string | null },\n sentRequestId?: string,\n): ApiError {\n const obj =\n typeof body === \"object\" && body !== null ? (body as Record<string, unknown>) : null;\n const detail =\n normalizeDetail(obj?.detail) ?? normalizeDetail(obj?.message) ?? `Erro ${status}`;\n const code = typeof obj?.code === \"string\" ? obj.code : undefined;\n const details =\n typeof obj?.details === \"object\" && obj.details !== null\n ? (obj.details as Record<string, unknown>)\n : null;\n const requestId =\n (typeof details?.request_id === \"string\" ? details.request_id : undefined) ??\n headers?.get(\"X-Request-ID\") ??\n sentRequestId ??\n undefined;\n\n return {\n status,\n detail,\n code,\n requestId: requestId ?? undefined,\n retryAfter: parseRetryAfter(headers?.get(\"Retry-After\")),\n body,\n };\n}\n\n/**\n * Parse a `Retry-After` header into seconds. Accepts a delta-seconds integer\n * (`\"120\"`) or an HTTP-date (`\"Wed, 21 Oct 2015 07:28:00 GMT\"`).\n *\n * @param value - The raw header value, or null.\n * @returns The delay in seconds (>= 0), or undefined when absent/unparseable.\n */\nexport function parseRetryAfter(value: string | null | undefined): number | undefined {\n if (!value) return undefined;\n const trimmed = value.trim();\n if (/^\\d+$/.test(trimmed)) return Number(trimmed);\n const when = Date.parse(trimmed);\n if (Number.isNaN(when)) return undefined;\n return Math.max(0, Math.round((when - Date.now()) / 1000));\n}\n"],"mappings":";AAkBA,IAAa,IAAb,cAAqC,MAA0B;CAC3D;CACA;CACA;CACA;CACA;CAEA,YAAY,GAAgB;EAOxB,AANA,MAAM,EAAK,MAAM,GACjB,KAAK,OAAO,mBACZ,KAAK,SAAS,EAAK,QACnB,KAAK,SAAS,EAAK,QACnB,KAAK,OAAO,EAAK,MACjB,KAAK,YAAY,EAAK,WACtB,KAAK,OAAO,EAAK;CACrB;AACJ;AASA,SAAgB,EAAW,GAAmC;CAC1D,OACI,OAAO,KAAU,cACjB,KACA,OAAQ,EAAmB,UAAW,YACtC,OAAQ,EAAmB,UAAW;AAE9C;AAOA,IAAM,oBAAiC,IAAI,IAAI;CAAC;CAAQ;CAAS;CAAQ;CAAU;AAAQ,CAAC;AAS5F,SAAS,EAAU,GAAkC;CACjD,IAAI,CAAC,MAAM,QAAQ,CAAG,GAAG;CACzB,IAAM,IAAQ,EACT,QACI,MAAkC,OAAO,KAAS,YAAY,OAAO,KAAS,QACnF,CAAC,CACA,QAAQ,GAAM,MAAU,EAAE,MAAU,KAAK,EAAU,IAAI,OAAO,CAAI,CAAC,EAAE;CAC1E,OAAO,EAAM,SAAS,IAAI,EAAM,KAAK,GAAG,IAAI,KAAA;AAChD;AAgBA,SAAS,EAAgB,GAAkC;CACnD,SAAQ,MACZ;MAAI,OAAO,KAAQ,UAAU,OAAO,MAAQ,KAAK,KAAA,IAAY;EAC7D,IAAI,OAAO,KAAQ,YAAY,OAAO,KAAQ,WAAW,OAAO,OAAO,CAAG;EAE1E,IAAI,MAAM,QAAQ,CAAG,GAAG;GACpB,IAAM,IAAQ,EACT,KAAK,MAAU;IACZ,IAAM,IAAU,EAAgB,CAAK;IACrC,IAAI,MAAY,KAAA,GAAW;IAC3B,IAAM,IACF,OAAO,KAAU,YAAY,IACvB,EAAW,EAAkC,GAAG,IAChD,KAAA;IACV,OAAO,MAAU,KAAA,IAAY,IAAU,GAAG,EAAM,IAAI;GACxD,CAAC,CAAC,CACD,QAAQ,MAAyB,MAAS,KAAA,CAAS;GACxD,OAAO,EAAM,SAAS,IAAI,EAAM,KAAK,IAAI,IAAI,KAAA;EACjD;EAEA,IAAI,OAAO,KAAQ,UAAU;GACzB,IAAM,IAAQ;GACd,OACI,EAAgB,EAAM,GAAG,KACzB,EAAgB,EAAM,OAAO,KAC7B,EAAgB,EAAM,MAAM;EAEpC;CAzB6D;AA4BjE;AAyBA,SAAgB,EACZ,GACA,GACA,GACA,GACQ;CACR,IAAM,IACF,OAAO,KAAS,YAAY,IAAiB,IAAmC,MAC9E,IACF,EAAgB,GAAK,MAAM,KAAK,EAAgB,GAAK,OAAO,KAAK,QAAQ,KACvE,IAAO,OAAO,GAAK,QAAS,WAAW,EAAI,OAAO,KAAA,GAClD,IACF,OAAO,GAAK,WAAY,YAAY,EAAI,YAAY,OAC7C,EAAI,UACL;CAOV,OAAO;EACH;EACA;EACA;EACA,YATC,OAAO,GAAS,cAAe,WAAW,EAAQ,aAAa,KAAA,MAChE,GAAS,IAAI,cAAc,KAC3B,KACA,KAAA,KAMwB,KAAA;EACxB,YAAY,EAAgB,GAAS,IAAI,aAAa,CAAC;EACvD;CACJ;AACJ;AASA,SAAgB,EAAgB,GAAsD;CAClF,IAAI,CAAC,GAAO;CACZ,IAAM,IAAU,EAAM,KAAK;CAC3B,IAAI,QAAQ,KAAK,CAAO,GAAG,OAAO,OAAO,CAAO;CAChD,IAAM,IAAO,KAAK,MAAM,CAAO;CAC3B,YAAO,MAAM,CAAI,GACrB,OAAO,KAAK,IAAI,GAAG,KAAK,OAAO,IAAO,KAAK,IAAI,KAAK,GAAI,CAAC;AAC7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});/* empty css */const ee=require("./utils/cn.cjs"),te=require("./components/Accordion/Accordion.cjs"),ne=require("./components/Alert/Alert.cjs"),re=require("./components/AppBar/AppBar.cjs"),ie=require("./hooks/use-breakpoint.cjs"),ae=require("./components/AppShell/AppShell.cjs"),oe=require("./components/AspectRatio/AspectRatio.cjs"),se=require("./components/Avatar/Avatar.cjs"),ce=require("./components/AvatarGroup/AvatarGroup.cjs"),le=require("./components/Badge/Badge.cjs"),ue=require("./components/Banner/Banner.cjs"),de=require("./components/BottomNavigation/BottomNavigation.cjs"),fe=require("./components/BottomSheet/BottomSheet.cjs"),pe=require("./components/Breadcrumbs/Breadcrumbs.cjs"),me=require("./components/Button/Button.cjs"),he=require("./components/Card/Card.cjs"),ge=require("./components/Center/Center.cjs"),_e=require("./components/Checkbox/Checkbox.cjs"),ve=require("./components/ChipInput/ChipInput.cjs"),ye=require("./components/Combobox/Combobox.cjs"),be=require("./components/Modal/Modal.cjs"),xe=require("./components/ConfirmDialog/ConfirmDialog.cjs"),Se=require("./components/Input/Input.cjs"),Ce=require("./components/DatePicker/DatePicker.cjs"),we=require("./components/Divider/Divider.cjs"),Te=require("./components/Drawer/Drawer.cjs"),Ee=require("./components/DropdownMenu/DropdownMenu.cjs"),De=require("./components/Dropzone/Dropzone.cjs"),Oe=require("./components/EmptyState/EmptyState.cjs"),ke=require("./components/ErrorState/ErrorState.cjs"),Ae=require("./components/FileUpload/FileUpload.cjs"),e=require("./components/Form/Form.cjs"),t=require("./components/Layout/Layout.cjs"),je=require("./hooks/use-before-install-prompt.cjs"),Me=require("./components/InstallBanner/InstallBanner.cjs"),Ne=require("./components/InstallButton/InstallButton.cjs"),Pe=require("./hooks/use-debounce.cjs"),Fe=require("./hooks/use-pagination.cjs"),Ie=require("./hooks/use-client-filter.cjs"),Le=require("./hooks/use-media-query.cjs"),Re=require("./hooks/use-event-listener.cjs"),ze=require("./hooks/use-local-storage.cjs"),Be=require("./hooks/use-toggle.cjs"),Ve=require("./hooks/use-async.cjs"),He=require("./hooks/use-online.cjs"),Ue=require("./hooks/use-document-visibility.cjs"),We=require("./hooks/use-intersection-observer.cjs"),Ge=require("./hooks/use-resize-observer.cjs"),Ke=require("./hooks/use-clipboard.cjs"),qe=require("./hooks/use-keyboard-shortcut.cjs"),Je=require("./hooks/use-idle.cjs"),Ye=require("./hooks/use-geolocation.cjs"),Xe=require("./hooks/use-scroll-lock.cjs"),Ze=require("./hooks/use-focus-trap.cjs"),n=require("./hooks/use-announce.cjs"),Qe=require("./hooks/use-stable-callback.cjs"),$e=require("./hooks/use-latest-ref.cjs"),et=require("./hooks/use-deep-memo.cjs"),tt=require("./hooks/use-previous.cjs"),nt=require("./hooks/use-interval.cjs"),rt=require("./hooks/use-timeout.cjs"),it=require("./hooks/use-throttle.cjs"),at=require("./hooks/use-window-size.cjs"),ot=require("./hooks/use-hover.cjs"),st=require("./hooks/use-long-press.cjs"),ct=require("./hooks/use-disclosure.cjs"),lt=require("./hooks/use-list-state.cjs"),ut=require("./hooks/use-counter.cjs"),dt=require("./hooks/use-countdown.cjs"),ft=require("./hooks/use-typewriter.cjs"),pt=require("./hooks/use-document-title.cjs"),mt=require("./hooks/use-favicon.cjs"),ht=require("./hooks/use-map.cjs"),gt=require("./hooks/use-set.cjs"),_t=require("./hooks/use-queue.cjs"),vt=require("./hooks/use-click-outside.cjs"),yt=require("./hooks/use-is-first-render.cjs"),bt=require("./hooks/use-object-url.cjs"),xt=require("./hooks/use-long-press-handlers.cjs"),r=require("./hooks/pwa-env.cjs"),St=require("./hooks/use-install-prompt.cjs"),i=require("./sw/register-service-worker.cjs"),Ct=require("./hooks/use-service-worker-update.cjs"),a=require("./hooks/use-storage-estimate.cjs"),wt=require("./hooks/use-sortable.cjs"),Tt=require("./hooks/use-scroll-overflow.cjs"),Et=require("./hooks/use-media-permission.cjs"),Dt=require("./hooks/use-media-devices.cjs"),Ot=require("./components/OfflineIndicator/OfflineIndicator.cjs"),kt=require("./offline/use-offline-sync.cjs"),At=require("./components/VisuallyHidden/VisuallyHidden.cjs"),jt=require("./components/SyncStatusBadge/SyncStatusBadge.cjs"),Mt=require("./components/UpdatePrompt/UpdatePrompt.cjs"),Nt=require("./components/Kanban/Kanban.cjs"),Pt=require("./components/Kbd/Kbd.cjs"),Ft=require("./components/ModalsManager/ModalsManager.cjs"),It=require("./components/Navbar/Navbar.cjs"),Lt=require("./components/NProgress/NProgress.cjs"),Rt=require("./components/Page/Page.cjs"),zt=require("./components/Pagination/Pagination.cjs"),Bt=require("./components/PasswordInput/PasswordInput.cjs"),Vt=require("./components/PinInput/PinInput.cjs"),Ht=require("./components/Popover/Popover.cjs"),Ut=require("./components/Progress/Progress.cjs"),Wt=require("./components/Radio/Radio.cjs"),Gt=require("./components/RangeSlider/RangeSlider.cjs"),Kt=require("./components/RatingStars/RatingStars.cjs"),o=require("./components/Responsive/Responsive.cjs"),qt=require("./components/SafeArea/SafeArea.cjs"),Jt=require("./components/SearchBar/SearchBar.cjs"),Yt=require("./components/SegmentedControl/SegmentedControl.cjs"),Xt=require("./components/Select/Select.cjs"),Zt=require("./components/Sidebar/Sidebar.cjs"),Qt=require("./components/Skeleton/Skeleton.cjs"),$t=require("./components/Spacer/Spacer.cjs"),en=require("./components/Spinner/Spinner.cjs"),tn=require("./components/Stat/Stat.cjs"),nn=require("./components/Stepper/Stepper.cjs"),s=require("./utils/numbers.cjs"),rn=require("./components/StepperInput/StepperInput.cjs"),an=require("./components/Switch/Switch.cjs"),on=require("./components/Tag/Tag.cjs"),sn=require("./components/Table/Table.cjs"),cn=require("./components/Tabs/Tabs.cjs"),ln=require("./components/Textarea/Textarea.cjs"),un=require("./components/Timeline/Timeline.cjs"),dn=require("./components/Tooltip/Tooltip.cjs"),c=require("./components/Toast/ToastProvider.cjs"),fn=require("./components/ImageCropper/ImageCropper.cjs"),pn=require("./components/Sparkline/Sparkline.cjs"),mn=require("./components/Scheduler/Scheduler.cjs"),hn=require("./utils/relative-time.cjs"),gn=require("./components/NotificationCenter/NotificationCenter.cjs"),_n=require("./components/NotificationCenter/use-notification-inbox.cjs"),vn=require("./components/VirtualList/VirtualList.cjs"),yn=require("./utils/compare-values.cjs"),bn=require("./components/VirtualTable/VirtualTable.cjs"),l=require("./components/QRCode/qr-encode.cjs"),xn=require("./components/QRCode/QRCode.cjs"),Sn=require("./components/CopyButton/CopyButton.cjs"),Cn=require("./components/CodeBlock/CodeBlock.cjs"),wn=require("./components/RelativeTime/RelativeTime.cjs"),Tn=require("./components/Money/Money.cjs"),En=require("./components/TreeView/TreeView.cjs"),Dn=require("./components/TruncateText/TruncateText.cjs"),On=require("./components/Portal/Portal.cjs"),kn=require("./components/ClickOutside/ClickOutside.cjs"),An=require("./components/ConditionalWrapper/ConditionalWrapper.cjs"),jn=require("./components/For/For.cjs"),Mn=require("./components/ErrorText/ErrorText.cjs"),Nn=require("./components/Image/Image.cjs"),Pn=require("./components/DataList/DataList.cjs"),Fn=require("./components/DescriptionList/DescriptionList.cjs"),In=require("./components/Toggle/Toggle.cjs"),Ln=require("./components/ToggleGroup/ToggleGroup.cjs"),Rn=require("./components/Label/Label.cjs"),zn=require("./components/Collapsible/Collapsible.cjs"),Bn=require("./components/ContextMenu/ContextMenu.cjs"),Vn=require("./components/HoverCard/HoverCard.cjs"),Hn=require("./components/Command/Command.cjs"),Un=require("./components/ScrollArea/ScrollArea.cjs"),Wn=require("./components/Resizable/Resizable.cjs"),Gn=require("./components/Calendar/Calendar.cjs"),Kn=require("./components/Slider/Slider.cjs"),qn=require("./components/MultiSelect/MultiSelect.cjs"),Jn=require("./components/DateRangePicker/DateRangePicker.cjs"),Yn=require("./components/NavigationMenu/NavigationMenu.cjs"),Xn=require("./components/Menubar/Menubar.cjs"),Zn=require("./components/Carousel/Carousel.cjs"),Qn=require("./components/DataTable/DataTable.cjs"),$n=require("./components/ListTile/ListTile.cjs"),er=require("./components/FloatingActionButton/FloatingActionButton.cjs"),tr=require("./components/NavigationRail/NavigationRail.cjs"),nr=require("./components/TimePicker/TimePicker.cjs"),rr=require("./components/RefreshIndicator/RefreshIndicator.cjs"),ir=require("./components/Wizard/Wizard.cjs"),ar=require("./components/Lightbox/Lightbox.cjs"),or=require("./components/SignaturePad/SignaturePad.cjs"),sr=require("./components/Chat/ChatComposer.cjs"),cr=require("./components/Chat/Chat.cjs"),u=require("./audio/audio-output.cjs"),lr=require("./components/AudioPlayer/AudioPlayer.cjs"),ur=require("./capture/media-recorder.cjs"),d=require("./audio/audio-recorder.cjs"),dr=require("./audio/level-meter.cjs"),fr=require("./audio/use-audio-recorder.cjs"),pr=require("./audio/media-access.cjs"),mr=require("./audio/use-microphone.cjs"),hr=require("./audio/wav.cjs"),gr=require("./components/AudioRecorder/AudioRecorder.cjs"),f=require("./capture/barcode.cjs"),_r=require("./capture/use-torch.cjs"),vr=require("./capture/use-barcode-scanner.cjs"),yr=require("./components/BarcodeScanner/BarcodeScanner.cjs"),p=require("./components/AIChat/ai-chat-turns.cjs"),br=require("./components/AIChat/AIChatComposer.cjs"),xr=require("./components/Markdown/Markdown.cjs"),Sr=require("./components/AIChat/AIChatTurn.cjs"),Cr=require("./components/AIChat/AIChat.cjs"),wr=require("./components/Transfer/Transfer.cjs"),Tr=require("./components/Masonry/Masonry.cjs"),Er=require("./components/Tour/Tour.cjs"),Dr=require("./components/BarList/bar-list-model.cjs"),Or=require("./components/BarList/BarList.cjs"),m=require("./components/FilterBar/filter-model.cjs"),kr=require("./components/FilterBar/FilterBar.cjs"),Ar=require("./components/FilterBar/filter-apply.cjs"),jr=require("./components/FilterBar/filter-query.cjs"),h=require("./utils/format.cjs"),Mr=require("./utils/storage.cjs"),g=require("./utils/compressed-storage.cjs"),_=require("./utils/strings.cjs"),v=require("./utils/arrays.cjs"),y=require("./utils/objects.cjs"),b=require("./utils/guards.cjs"),x=require("./utils/functions.cjs"),Nr=require("./utils/promises.cjs"),Pr=require("./utils/ids.cjs"),Fr=require("./utils/xlsx.cjs"),Ir=require("./share/share.cjs"),Lr=require("./share/share-or-download.cjs"),Rr=require("./utils/csv.cjs"),S=require("./http/errors.cjs"),zr=require("./http/retry.cjs"),Br=require("./http/api-client.cjs"),C=require("./http/describe-api-error.cjs"),Vr=require("./i18n/create-i18n.cjs"),w=require("./i18n/I18nProvider.cjs"),Hr=require("./http/use-describe-api-error.cjs"),Ur=require("./http/parse-response.cjs"),Wr=require("./http/upload-with-progress.cjs"),Gr=require("./http/idempotency.cjs"),T=require("./http/resumable-upload.cjs"),Kr=require("./http/use-poll.cjs"),qr=require("./auth/create-auth-store.cjs"),Jr=require("./auth/AuthGuard.cjs"),Yr=require("./auth/jwt.cjs"),Xr=require("./auth/lazy-with-retry.cjs"),Zr=require("./auth/refresh-queue.cjs"),E=require("./auth/passkey.cjs"),D=require("./auth/use-passkey.cjs"),Qr=require("./auth/create-tempest-auth.cjs"),$r=require("./access/access-control-context.cjs"),ei=require("./access/use-can.cjs"),ti=require("./access/Can.cjs"),ni=require("./access/create-role-access-control.cjs"),ri=require("./access/permissions-from-token.cjs"),ii=require("./oauth/GoogleSignIn.cjs"),ai=require("./oauth/use-oauth-callback.cjs"),O=require("./query/constants.cjs"),oi=require("./query/create-query-keys.cjs"),si=require("./query/retry-policy.cjs"),ci=require("./query/QueryProvider.cjs"),k=require("./query/pagination.cjs"),li=require("./query/use-paginated-query.cjs"),ui=require("./query/use-cursor-query.cjs"),di=require("./query/use-offline-mutation.cjs"),A=require("./query/optimistic.cjs"),fi=require("./offline/create-offline-store.cjs"),pi=require("./query/offline-persistence.cjs"),mi=require("./data/create-data-provider.cjs"),j=require("./data/data-provider-context.cjs"),M=require("./data/use-resource.cjs"),hi=require("./router/RouteGuard.cjs"),N=require("./router/AppRouter.cjs"),gi=require("./store/create-store.cjs"),_i=require("./store/create-selectors.cjs"),P=require("./theme/ThemeProvider.cjs"),vi=require("./error-boundary/ErrorBoundary.cjs"),yi=require("./app/AppProviders.cjs"),bi=require("./sse/create-event-stream.cjs"),xi=require("./sse/use-event-stream.cjs"),F=require("./push/utils.cjs"),I=require("./push/web-push-client.cjs"),Si=require("./push/use-push-subscription.cjs"),L=require("./sw/create-push-handler.cjs"),R=require("./sw/cache.cjs"),Ci=require("./sw/background-sync.cjs"),wi=require("./sw/periodic-sync.cjs"),Ti=require("./sw/cache-inspect.cjs"),z=require("./audio/audio-player.cjs"),Ei=require("./audio/use-audio.cjs"),Di=require("./audio/sfx-pool.cjs"),Oi=require("./audio/use-sfx-pool.cjs"),B=require("./capture/video-recorder.cjs"),ki=require("./capture/use-video-recorder.cjs"),Ai=require("./capture/use-screen-capture.cjs"),ji=require("./capture/use-speech-recognition.cjs"),Mi=require("./offline/create-offline-sync.cjs"),Ni=require("./offline/conflict.cjs"),Pi=require("./error-boundary/use-error-handler.cjs"),Fi=require("./forms/FormField.cjs"),Ii=require("./forms/validate-form.cjs"),Li=require("./forms/zod-resolver.cjs"),Ri=require("./forms/use-zod-form.cjs"),V=require("./forms/br-validators.cjs"),H=require("./forms/masked-inputs.cjs"),zi=require("./forms/use-viacep.cjs"),Bi=require("./ws/create-web-socket.cjs"),Vi=require("./ws/use-web-socket.cjs"),U=require("./geo/types.cjs"),W=require("./geo/distance.cjs"),G=require("./geo/estimate.cjs"),K=require("./geo/bounds.cjs"),q=require("./geo/projection.cjs"),Hi=require("./geo/routing.cjs"),Ui=require("./geo/create-position-tracker.cjs"),Wi=require("./geo/use-position-tracker.cjs"),Gi=require("./geo/TrajectoryMap.cjs"),Ki=require("./theme/apply-theme.cjs"),J=require("./theme/color.cjs"),Y=require("./theme/create-theme.cjs"),qi=require("./theme/theme-presets.cjs"),Ji=require("./theme/initial-theme.cjs"),Yi=require("./logger/logger.cjs"),Xi=require("./telemetry/TelemetryProvider.cjs"),Zi=require("./telemetry/console-adapter.cjs"),Qi=require("./telemetry/sentry-adapter.cjs"),$i=require("./telemetry/posthog-adapter.cjs"),X=require("./feature-flags/FeatureFlagsProvider.cjs"),ea=require("./feature-flags/in-memory-adapter.cjs"),ta=require("./feature-flags/growthbook-adapter.cjs"),na=require("./feature-flags/launchdarkly-adapter.cjs"),Z=require("./charts/scales.cjs"),ra=require("./perf/cache-size.cjs"),ia=require("./perf/device.cjs"),aa=require("./perf/format.cjs"),oa=require("./perf/profiler.cjs");let Q=require("react-router"),$=require("react-hook-form");exports.AIChat=Cr.AIChat,exports.AIChatComposer=br.AIChatComposer,exports.AIChatTurn=Sr.AIChatTurn,exports.ALL_BARCODE_FORMATS=f.ALL_BARCODE_FORMATS,exports.API_ERROR_OFFLINE_KEY=C.API_ERROR_OFFLINE_KEY,exports.AUDIO_MIME_CANDIDATES=d.AUDIO_MIME_CANDIDATES,exports.AccessControlProvider=$r.AccessControlProvider,exports.Accordion=te.Accordion,exports.Alert=ne.Alert,exports.AppBar=re.AppBar,exports.AppProviders=yi.AppProviders,exports.AppRouter=N.AppRouter,exports.AppShell=ae.AppShell,exports.AspectRatio=oe.AspectRatio,exports.AudioPlayer=lr.AudioPlayer,exports.AudioRecorder=gr.AudioRecorder,exports.AuthGuard=Jr.AuthGuard,exports.Avatar=se.Avatar,exports.AvatarGroup=ce.AvatarGroup,exports.BREAKPOINTS=ie.BREAKPOINTS,exports.Badge=le.Badge,exports.Banner=ue.Banner,exports.BarList=Or.BarList,exports.BarcodeScanner=yr.BarcodeScanner,exports.BottomNavigation=de.BottomNavigation,exports.BottomSheet=fe.BottomSheet,exports.Breadcrumbs=pe.Breadcrumbs,Object.defineProperty(exports,"BrowserRouter",{enumerable:!0,get:function(){return Q.BrowserRouter}}),exports.Button=me.Button,exports.CACHE_TIME=O.CACHE_TIME,exports.CEPInput=H.CEPInput,exports.CNPJInput=H.CNPJInput,exports.CPFInput=H.CPFInput,exports.Calendar=Gn.Calendar,exports.Can=ti.Can,exports.Card=he.Card,exports.Carousel=Zn.Carousel,exports.Center=ge.Center,exports.Chat=cr.Chat,exports.ChatComposer=sr.ChatComposer,exports.Checkbox=_e.Checkbox,exports.ChipInput=ve.ChipInput,exports.ClickOutside=kn.ClickOutside,exports.CodeBlock=Cn.CodeBlock,exports.Collapsible=zn.Collapsible,exports.Combobox=ye.Combobox,exports.Command=Hn.Command,exports.ConditionalWrapper=An.ConditionalWrapper,exports.ConfirmDialog=xe.ConfirmDialog,exports.Container=t.Container,exports.ContextMenu=Bn.ContextMenu,Object.defineProperty(exports,"Controller",{enumerable:!0,get:function(){return $.Controller}}),exports.CopyButton=Sn.CopyButton,exports.DEFAULT_API_ERROR_STRINGS=C.DEFAULT_API_ERROR_STRINGS,exports.DEFAULT_BARCODE_FORMATS=f.DEFAULT_BARCODE_FORMATS,exports.DEFAULT_CAR_SPEED_KMH=G.DEFAULT_CAR_SPEED_KMH,exports.DEFAULT_CHUNK_SIZE=T.DEFAULT_CHUNK_SIZE,exports.DEFAULT_CIRCUITY_FACTOR=G.DEFAULT_CIRCUITY_FACTOR,exports.DEFAULT_MODE_DURATION_FACTORS=G.DEFAULT_MODE_DURATION_FACTORS,exports.DEFAULT_PUB_KEY_CRED_PARAMS=E.DEFAULT_PUB_KEY_CRED_PARAMS,exports.DIVERGING_STEP_COUNT=Z.DIVERGING_STEP_COUNT,exports.DataList=Pn.DataList,exports.DataTable=Qn.DataTable,exports.DatePicker=Ce.DatePicker,exports.DateRangePicker=Jn.DateRangePicker,exports.DescriptionList=Fn.DescriptionList,exports.Divider=we.Divider,exports.Drawer=Te.Drawer,exports.DropdownMenu=Ee.DropdownMenu,exports.Dropzone=De.Dropzone,exports.EARTH_RADIUS_KM=W.EARTH_RADIUS_KM,exports.EmptyState=Oe.EmptyState,exports.ErrorBoundary=vi.ErrorBoundary,exports.ErrorState=ke.ErrorState,exports.ErrorText=Mn.ErrorText,exports.FeatureFlagsProvider=X.FeatureFlagsProvider,exports.FileUpload=Ae.FileUpload,exports.FilterBar=kr.FilterBar,exports.FloatingActionButton=er.FloatingActionButton,exports.For=jn.For,exports.Form=e.Form,exports.FormActions=e.FormActions,exports.FormField=Fi.FormField,Object.defineProperty(exports,"FormProvider",{enumerable:!0,get:function(){return $.FormProvider}}),exports.FormRow=e.FormRow,exports.FormSection=e.FormSection,exports.GoogleSignIn=ii.GoogleSignIn,exports.Grid=t.Grid,Object.defineProperty(exports,"HashRouter",{enumerable:!0,get:function(){return Q.HashRouter}}),exports.Hide=o.Hide,exports.HoverCard=Vn.HoverCard,exports.I18nProvider=w.I18nProvider,exports.Image=Nn.Image,exports.ImageCropper=fn.ImageCropper,exports.Input=Se.Input,exports.InstallBanner=Me.InstallBanner,exports.InstallButton=Ne.InstallButton,exports.Kanban=Nt.Kanban,exports.Kbd=Pt.Kbd,exports.Label=Rn.Label,exports.Lightbox=ar.Lightbox,Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return Q.Link}}),exports.ListTile=$n.ListTile,exports.Markdown=xr.Markdown,exports.Masonry=Tr.Masonry,Object.defineProperty(exports,"MemoryRouter",{enumerable:!0,get:function(){return Q.MemoryRouter}}),exports.Menubar=Xn.Menubar,exports.Modal=be.Modal,exports.ModalsProvider=Ft.ModalsProvider,exports.Money=Tn.Money,exports.MoneyInput=H.MoneyInput,exports.MultiSelect=qn.MultiSelect,exports.NProgressBar=Lt.NProgressBar,Object.defineProperty(exports,"NavLink",{enumerable:!0,get:function(){return Q.NavLink}}),exports.Navbar=It.Navbar,Object.defineProperty(exports,"Navigate",{enumerable:!0,get:function(){return Q.Navigate}}),exports.NavigationMenu=Yn.NavigationMenu,exports.NavigationRail=tr.NavigationRail,exports.NotificationCenter=gn.NotificationCenter,exports.ORDINAL_START_STEP=Z.ORDINAL_START_STEP,exports.OfflineIndicator=Ot.OfflineIndicator,Object.defineProperty(exports,"Outlet",{enumerable:!0,get:function(){return Q.Outlet}}),exports.Page=Rt.Page,exports.Pagination=zt.Pagination,exports.PasskeyError=E.PasskeyError,exports.PasswordInput=Bt.PasswordInput,exports.PhoneInput=H.PhoneInput,exports.PinInput=Vt.PinInput,exports.Popover=Ht.Popover,exports.Portal=On.Portal,exports.Progress=Ut.Progress,exports.QRCapacityError=l.QRCapacityError,exports.QRCode=xn.QRCode,exports.QueryProvider=ci.QueryProvider,exports.REFETCH_TIME=O.REFETCH_TIME,exports.Radio=Wt.Radio,exports.RadioGroup=Wt.RadioGroup,exports.RangeSlider=Gt.RangeSlider,exports.RatingStars=Kt.RatingStars,exports.RefreshIndicator=rr.RefreshIndicator,exports.RelativeTime=wn.RelativeTime,exports.Resizable=Wn.Resizable,Object.defineProperty(exports,"Route",{enumerable:!0,get:function(){return Q.Route}}),exports.RouteGuard=hi.RouteGuard,Object.defineProperty(exports,"Routes",{enumerable:!0,get:function(){return Q.Routes}}),exports.SEQUENTIAL_STEP_COUNT=Z.SEQUENTIAL_STEP_COUNT,exports.STALE_TIME=O.STALE_TIME,exports.SafeArea=qt.SafeArea,exports.Scheduler=mn.Scheduler,exports.ScrollArea=Un.ScrollArea,exports.SearchBar=Jt.SearchBar,exports.SegmentedControl=Yt.SegmentedControl,exports.Select=Xt.Select,exports.Show=o.Show,exports.Sidebar=Zt.Sidebar,exports.SignaturePad=or.SignaturePad,exports.Skeleton=Qt.Skeleton,exports.Slider=Kn.Slider,exports.Spacer=$t.Spacer,exports.Sparkline=pn.Sparkline,exports.Spinner=en.Spinner,exports.Stack=t.Stack,exports.Stat=tn.Stat,exports.Stepper=nn.Stepper,exports.StepperInput=rn.StepperInput,exports.Switch=an.Switch,exports.SyncStatusBadge=jt.SyncStatusBadge,exports.Table=sn.Table,exports.Tabs=cn.Tabs,exports.Tag=on.Tag,exports.TelemetryProvider=Xi.TelemetryProvider,exports.TempestApiError=S.TempestApiError,exports.TempestDataProvider=j.TempestDataProvider,exports.Textarea=ln.Textarea,exports.ThemeProvider=P.ThemeProvider,exports.TimePicker=nr.TimePicker,exports.Timeline=un.Timeline,exports.ToastProvider=c.ToastProvider,exports.Toggle=In.Toggle,exports.ToggleGroup=Ln.ToggleGroup,exports.ToggleGroupItem=Ln.ToggleGroupItem,exports.Tooltip=dn.Tooltip,exports.Tour=Er.Tour,exports.TrajectoryMap=Gi.TrajectoryMap,exports.Transfer=wr.Transfer,exports.TreeView=En.TreeView,exports.TruncateText=Dn.TruncateText,exports.UpdatePrompt=Mt.UpdatePrompt,exports.VirtualList=vn.VirtualList,exports.VirtualTable=bn.VirtualTable,exports.VisuallyHidden=At.VisuallyHidden,exports.WebPushClient=I.WebPushClient,exports.WebPushPermissionDeniedError=I.WebPushPermissionDeniedError,exports.WebPushUnsupportedError=I.WebPushUnsupportedError,exports.Wizard=ir.Wizard,exports.aiChatStrings=p.aiChatStrings,exports.announce=n.announce,exports.applyFilters=Ar.applyFilters,exports.applyKanbanMove=Nt.applyKanbanMove,exports.applyTheme=Ki.applyTheme,exports.assertNever=b.assertNever,exports.base64UrlToBytes=E.base64UrlToBytes,exports.bearingDeg=W.bearingDeg,exports.blobToWav=hr.blobToWav,exports.boundingBox=K.boundingBox,exports.boundsCenter=K.boundsCenter,exports.buildBarListRows=Dr.buildBarListRows,exports.buildOpenInChromeIntent=r.buildOpenInChromeIntent,exports.bytesToBase64Url=E.bytesToBase64Url,exports.cachedResponseBytes=ra.cachedResponseBytes,exports.camelCase=_.camelCase,exports.capitalize=_.capitalize,exports.chunk=v.chunk,exports.clamp=s.clamp,exports.clampLatitude=U.clampLatitude,exports.classifyPasskeyError=E.classifyPasskeyError,exports.clearAnnouncer=n.clearAnnouncer,exports.clearCaches=Ti.clearCaches,exports.cn=ee.cn,exports.compareValues=yn.compareValues,exports.compressToString=g.compressToString,exports.compressedStorage=g.compressedStorage,exports.compressedStorageCodec=g.compressedStorageCodec,exports.consoleSink=Yi.consoleSink,exports.consoleTelemetryAdapter=Zi.consoleTelemetryAdapter,exports.contrastRatio=J.contrastRatio,exports.createApiClient=Br.createApiClient,exports.createAudioPlayer=z.createAudioPlayer,exports.createAudioRecorder=d.createAudioRecorder,exports.createAuthStore=qr.createAuthStore,exports.createBarcodeDetector=f.createBarcodeDetector,exports.createColorScale=J.createColorScale,exports.createDataProvider=mi.createDataProvider,exports.createEventStream=bi.createEventStream,exports.createGrowthBookFeatureFlagsAdapter=ta.createGrowthBookFeatureFlagsAdapter,exports.createI18n=Vr.createI18n,exports.createInMemoryFlags=ea.createInMemoryFlags,exports.createInferenceProfiler=oa.createInferenceProfiler,exports.createLaunchDarklyFeatureFlagsAdapter=na.createLaunchDarklyFeatureFlagsAdapter,exports.createLevelMeter=dr.createLevelMeter,exports.createLocalUploadStorage=T.createLocalUploadStorage,exports.createLogger=Yi.createLogger,exports.createMediaRecorder=ur.createMediaRecorder,exports.createOSRMBackend=Hi.createOSRMBackend,exports.createOfflineStore=fi.createOfflineStore,exports.createOfflineSync=Mi.createOfflineSync,exports.createPartialResponse=R.createPartialResponse,exports.createPasskeyClient=E.createPasskeyClient,exports.createPositionTracker=Ui.createPositionTracker,exports.createPostHogTelemetryAdapter=$i.createPostHogTelemetryAdapter,exports.createQueryKeys=oi.createQueryKeys,exports.createRefreshQueue=Zr.createRefreshQueue,exports.createResumableUpload=T.createResumableUpload,exports.createRoleAccessControl=ni.createRoleAccessControl,exports.createSelectors=_i.createSelectors,exports.createSentryTelemetryAdapter=Qi.createSentryTelemetryAdapter,exports.createSfxPool=Di.createSfxPool,exports.createStore=gi.createStore,exports.createTempestAuth=Qr.createTempestAuth,exports.createTheme=Y.createTheme,exports.createVideoRecorder=B.createVideoRecorder,exports.createWebSocket=Bi.createWebSocket,exports.debounce=x.debounce,exports.decodeJWT=Yr.decodeJWT,exports.decompressFromString=g.decompressFromString,exports.deepMerge=y.deepMerge,exports.defineRoutes=N.defineRoutes,exports.describeApiError=C.describeApiError,exports.describeFilter=m.describeFilter,exports.divergingScale=Z.divergingScale,exports.downloadCsv=Rr.downloadCsv,exports.emptyOffsetPage=k.emptyOffsetPage,exports.encodeQR=l.encodeQR,exports.encodeWav=hr.encodeWav,exports.estimatePasswordStrength=Bt.estimatePasswordStrength,exports.estimateStorage=a.estimateStorage,exports.estimateTravel=G.estimateTravel,exports.expandBounds=K.expandBounds,exports.filtersFromSearchParams=m.filtersFromSearchParams,exports.filtersToQueryParams=jr.filtersToQueryParams,exports.filtersToSearchParams=m.filtersToSearchParams,exports.fitProjection=q.fitProjection,exports.formatBytes=s.formatBytes,exports.formatCEP=V.formatCEP,exports.formatCNPJ=V.formatCNPJ,exports.formatCPF=h.formatCPF,exports.formatCompactNumber=s.formatCompactNumber,exports.formatCurrency=h.formatCurrency,exports.formatDate=h.formatDate,exports.formatDateForInput=h.formatDateForInput,exports.formatDateTime=h.formatDateTime,exports.formatDurationMs=aa.formatDurationMs,exports.formatPercent=h.formatPercent,exports.formatPhone=h.formatPhone,exports.generateIdempotencyKey=Gr.generateIdempotencyKey,exports.getInitialTheme=Ji.getInitialTheme,exports.getSupportedBarcodeFormats=f.getSupportedBarcodeFormats,exports.getThemePreset=qi.getThemePreset,exports.groupBy=v.groupBy,exports.haversineKm=W.haversineKm,exports.hexToOklch=J.hexToOklch,exports.hexToRgb=J.hexToRgb,exports.hexToRgbaString=J.hexToRgbaString,exports.higherVersionWins=Ni.higherVersionWins,exports.inspectCaches=Ti.inspectCaches,exports.installBackgroundSync=Ci.installBackgroundSync,exports.installNotificationClickHandler=L.installNotificationClickHandler,exports.installPrecache=R.installPrecache,exports.installPushHandler=L.installPushHandler,exports.installRuntimeCache=R.installRuntimeCache,exports.installSkipWaitingListener=L.installSkipWaitingListener,exports.isAndroid=r.isAndroid,exports.isAndroidWithoutPromptApi=r.isAndroidWithoutPromptApi,exports.isApiError=S.isApiError,exports.isAudioOutputSelectionSupported=u.isAudioOutputSelectionSupported,exports.isAudioRecordingSupported=d.isAudioRecordingSupported,exports.isBarcodeDetectionSupported=f.isBarcodeDetectionSupported,exports.isConditionalMediationAvailable=E.isConditionalMediationAvailable,exports.isCoordinate=U.isCoordinate,exports.isCursorPage=k.isCursorPage,exports.isDefined=b.isDefined,exports.isEmpty=y.isEmpty,exports.isGenerating=p.isGenerating,exports.isIOS=r.isIOS,exports.isJWTExpired=Yr.isJWTExpired,exports.isMediaCaptureSupported=pr.isMediaCaptureSupported,exports.isNumber=b.isNumber,exports.isOffsetPage=k.isOffsetPage,exports.isPasskeySupported=E.isPasskeySupported,exports.isPlainObject=b.isPlainObject,exports.isPlatformAuthenticatorAvailable=E.isPlatformAuthenticatorAvailable,exports.isPushSupported=F.isPushSupported,exports.isScreenCaptureSupported=Ai.isScreenCaptureSupported,exports.isShareSupported=Ir.isShareSupported,exports.isSpeechRecognitionSupported=ji.isSpeechRecognitionSupported,exports.isStandalone=r.isStandalone,exports.isString=b.isString,exports.isValidLatitude=U.isValidLatitude,exports.isValidLongitude=U.isValidLongitude,exports.isVideoRecordingSupported=B.isVideoRecordingSupported,exports.kebabCase=_.kebabCase,exports.lastAssistantId=p.lastAssistantId,exports.lastWriteWins=Ni.lastWriteWins,exports.lazyWithRetry=Xr.lazyWithRetry,exports.listQueryKey=M.listQueryKey,exports.matrixToPath=l.matrixToPath,exports.memoizeOne=x.memoizeOne,exports.moveItem=wt.moveItem,exports.normalizeBarcode=f.normalizeBarcode,exports.normalizeLongitude=U.normalizeLongitude,exports.nprogress=Lt.nprogress,exports.oklchToHex=J.oklchToHex,exports.omit=y.omit,exports.once=x.once,exports.oneQueryKey=M.oneQueryKey,exports.operatorsFor=m.operatorsFor,exports.parseResponse=Ur.parseResponse,exports.pathLengthKm=W.pathLengthKm,exports.percentOf=s.percentOf,exports.permissionsFromToken=ri.permissionsFromToken,exports.persistQueryClientOffline=pi.persistQueryClientOffline,exports.pick=y.pick,exports.pickAudioMimeType=d.pickAudioMimeType,exports.pickVideoMimeType=B.pickVideoMimeType,exports.playAudio=z.playAudio,exports.pluralize=_.pluralize,exports.projectMercator=q.projectMercator,exports.randomId=Pr.randomId,exports.range=v.range,exports.readDeviceProfile=ia.readDeviceProfile,exports.readThemeToken=Ki.readThemeToken,exports.readableForeground=J.readableForeground,Object.defineProperty(exports,"redirect",{enumerable:!0,get:function(){return Q.redirect}}),exports.registerPeriodicSync=wi.registerPeriodicSync,exports.registerServiceWorker=i.registerServiceWorker,exports.relativeLuminance=J.relativeLuminance,exports.relativeTime=hn.relativeTime,exports.removeById=A.removeById,exports.requestPersistentStorage=a.requestPersistentStorage,exports.retry=zr.retry,exports.rgbToHex=J.rgbToHex,exports.roleLabel=p.roleLabel,exports.scaleSteps=Z.scaleSteps,exports.sequentialScale=Z.sequentialScale,exports.setAudioOutput=u.setAudioOutput,exports.share=Ir.share,exports.shareOrDownloadBlob=Lr.shareOrDownloadBlob,exports.shouldRetryQuery=si.shouldRetryQuery,exports.skipWaiting=i.skipWaiting,exports.sleep=Nr.sleep,exports.slugify=_.slugify,exports.stopAudio=z.stopAudio,exports.storage=Mr.storage,exports.tailSignature=p.tailSignature,exports.themeContrast=Y.themeContrast,exports.themeInitScript=Ji.themeInitScript,exports.themePresets=qi.themePresets,exports.throttle=x.throttle,exports.toCsv=Rr.toCsv,exports.toRadians=W.toRadians,exports.truncate=_.truncate,exports.turnTime=p.turnTime,exports.uniqueBy=v.uniqueBy,exports.unmask=V.unmask,exports.unprojectMercator=q.unprojectMercator,exports.unregisterAllServiceWorkers=i.unregisterAllServiceWorkers,exports.uploadFingerprint=T.uploadFingerprint,exports.uploadWithProgress=Wr.uploadWithProgress,exports.upsertById=A.upsertById,exports.urlBase64ToUint8Array=F.urlBase64ToUint8Array,exports.useAccessControl=$r.useAccessControl,exports.useAnnounce=n.useAnnounce,exports.useAsync=Ve.useAsync,exports.useAudio=Ei.useAudio,exports.useAudioRecorder=fr.useAudioRecorder,exports.useBarcodeScanner=vr.useBarcodeScanner,exports.useBeforeInstallPrompt=je.useBeforeInstallPrompt,exports.useBreakpoint=ie.useBreakpoint,exports.useCan=ei.useCan,exports.useClickOutside=vt.useClickOutside,exports.useClientFilter=Ie.useClientFilter,exports.useClipboard=Ke.useClipboard,exports.useCountdown=dt.useCountdown,exports.useCounter=ut.useCounter,exports.useCreate=M.useCreate,exports.useCursorQuery=ui.useCursorQuery,exports.useDataProvider=j.useDataProvider,exports.useDebounce=Pe.useDebounce,exports.useDeepMemo=et.useDeepMemo,exports.useDelete=M.useDelete,exports.useDescribeApiError=Hr.useDescribeApiError,exports.useDisclosure=ct.useDisclosure,exports.useDocumentTitle=pt.useDocumentTitle,exports.useDocumentVisibility=Ue.useDocumentVisibility,exports.useErrorHandler=Pi.useErrorHandler,exports.useEventListener=Re.useEventListener,exports.useEventStream=xi.useEventStream,exports.useFavicon=mt.useFavicon,exports.useFeatureFlag=X.useFeatureFlag,Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return $.useFieldArray}}),exports.useFlagValue=X.useFlagValue,exports.useFocusTrap=Ze.useFocusTrap,Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return $.useForm}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return $.useFormContext}}),Object.defineProperty(exports,"useFormState",{enumerable:!0,get:function(){return $.useFormState}}),exports.useGeolocation=Ye.useGeolocation,exports.useHover=ot.useHover,exports.useI18n=w.useI18n,exports.useIdle=Je.useIdle,exports.useInstallPrompt=St.useInstallPrompt,exports.useIntersectionObserver=We.useIntersectionObserver,exports.useInterval=nt.useInterval,exports.useIsFirstRender=yt.useIsFirstRender,exports.useKeyboardShortcut=qe.useKeyboardShortcut,exports.useLatestRef=$e.useLatestRef,exports.useList=M.useList,exports.useListState=lt.useListState,exports.useLocalStorage=ze.useLocalStorage,Object.defineProperty(exports,"useLocation",{enumerable:!0,get:function(){return Q.useLocation}}),exports.useLongPress=st.useLongPress,exports.useLongPressHandlers=xt.useLongPressHandlers,exports.useMap=ht.useMap,Object.defineProperty(exports,"useMatch",{enumerable:!0,get:function(){return Q.useMatch}}),exports.useMediaDevices=Dt.useMediaDevices,exports.useMediaPermission=Et.useMediaPermission,exports.useMediaQuery=Le.useMediaQuery,exports.useMicrophone=mr.useMicrophone,exports.useModals=Ft.useModals,Object.defineProperty(exports,"useNavigate",{enumerable:!0,get:function(){return Q.useNavigate}}),exports.useNotificationInbox=_n.useNotificationInbox,exports.useOAuthCallback=ai.useOAuthCallback,exports.useObjectUrl=bt.useObjectUrl,exports.useOfflineMutation=di.useOfflineMutation,exports.useOfflineSync=kt.useOfflineSync,exports.useOne=M.useOne,exports.useOnline=He.useOnline,exports.useOptionalI18n=w.useOptionalI18n,exports.usePaginatedQuery=li.usePaginatedQuery,exports.usePagination=Fe.usePagination,Object.defineProperty(exports,"useParams",{enumerable:!0,get:function(){return Q.useParams}}),exports.usePasskeyCapabilities=D.usePasskeyCapabilities,exports.usePasskeyRegistration=D.usePasskeyRegistration,exports.usePasskeySignIn=D.usePasskeySignIn,exports.usePoll=Kr.usePoll,exports.usePositionTracker=Wi.usePositionTracker,exports.usePrevious=tt.usePrevious,exports.usePushSubscription=Si.usePushSubscription,exports.useQueue=_t.useQueue,exports.useResizeObserver=Ge.useResizeObserver,Object.defineProperty(exports,"useRouteError",{enumerable:!0,get:function(){return Q.useRouteError}}),exports.useScreenCapture=Ai.useScreenCapture,exports.useScrollLock=Xe.useScrollLock,exports.useScrollOverflow=Tt.useScrollOverflow,Object.defineProperty(exports,"useSearchParams",{enumerable:!0,get:function(){return Q.useSearchParams}}),exports.useServiceWorkerUpdate=Ct.useServiceWorkerUpdate,exports.useSet=gt.useSet,exports.useSfxPool=Oi.useSfxPool,exports.useSortable=wt.useSortable,exports.useSpeechRecognition=ji.useSpeechRecognition,exports.useStableCallback=Qe.useStableCallback,exports.useStorageEstimate=a.useStorageEstimate,exports.useSyncStatus=kt.useSyncStatus,exports.useTelemetry=Xi.useTelemetry,exports.useTheme=P.useTheme,exports.useThrottle=it.useThrottle,exports.useTimeout=rt.useTimeout,exports.useToast=c.useToast,exports.useToggle=Be.useToggle,exports.useTorch=_r.useTorch,exports.useTranslate=w.useTranslate,exports.useTypewriter=ft.useTypewriter,exports.useUpdate=M.useUpdate,exports.useViaCEP=zi.useViaCEP,exports.useVideoRecorder=ki.useVideoRecorder,Object.defineProperty(exports,"useWatch",{enumerable:!0,get:function(){return $.useWatch}}),exports.useWebSocket=Vi.useWebSocket,exports.useWindowSize=at.useWindowSize,exports.useZodForm=Ri.useZodForm,exports.validateCNPJ=V.validateCNPJ,exports.validateCPF=V.validateCPF,exports.validateForm=Ii.validateForm,exports.visibleTurns=p.visibleTurns,exports.withTimeout=Nr.withTimeout,exports.writeXlsx=Fr.writeXlsx,exports.zodResolver=Li.zodResolver;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});/* empty css */const ee=require("./utils/cn.cjs"),te=require("./components/Accordion/Accordion.cjs"),ne=require("./components/Alert/Alert.cjs"),re=require("./components/AppBar/AppBar.cjs"),ie=require("./hooks/use-breakpoint.cjs"),ae=require("./components/AppShell/AppShell.cjs"),oe=require("./components/AspectRatio/AspectRatio.cjs"),se=require("./components/Avatar/Avatar.cjs"),ce=require("./components/AvatarGroup/AvatarGroup.cjs"),le=require("./components/Badge/Badge.cjs"),ue=require("./components/Banner/Banner.cjs"),de=require("./components/BottomNavigation/BottomNavigation.cjs"),fe=require("./components/BottomSheet/BottomSheet.cjs"),pe=require("./components/Breadcrumbs/Breadcrumbs.cjs"),me=require("./components/Button/Button.cjs"),he=require("./components/Card/Card.cjs"),ge=require("./components/Center/Center.cjs"),_e=require("./components/Checkbox/Checkbox.cjs"),ve=require("./components/ChipInput/ChipInput.cjs"),ye=require("./components/Combobox/Combobox.cjs"),be=require("./components/Modal/Modal.cjs"),xe=require("./components/ConfirmDialog/ConfirmDialog.cjs"),Se=require("./components/Input/Input.cjs"),Ce=require("./components/DatePicker/DatePicker.cjs"),we=require("./components/Divider/Divider.cjs"),Te=require("./components/Drawer/Drawer.cjs"),Ee=require("./components/DropdownMenu/DropdownMenu.cjs"),De=require("./components/Dropzone/Dropzone.cjs"),Oe=require("./components/EmptyState/EmptyState.cjs"),ke=require("./components/ErrorState/ErrorState.cjs"),Ae=require("./components/FileUpload/FileUpload.cjs"),e=require("./components/Form/Form.cjs"),t=require("./components/Layout/Layout.cjs"),je=require("./hooks/use-before-install-prompt.cjs"),Me=require("./components/InstallBanner/InstallBanner.cjs"),Ne=require("./components/InstallButton/InstallButton.cjs"),Pe=require("./hooks/use-debounce.cjs"),Fe=require("./hooks/use-pagination.cjs"),Ie=require("./hooks/use-client-filter.cjs"),Le=require("./hooks/use-media-query.cjs"),Re=require("./hooks/use-event-listener.cjs"),ze=require("./hooks/use-local-storage.cjs"),Be=require("./hooks/use-toggle.cjs"),Ve=require("./hooks/use-async.cjs"),He=require("./hooks/use-online.cjs"),Ue=require("./hooks/use-document-visibility.cjs"),We=require("./hooks/use-intersection-observer.cjs"),Ge=require("./hooks/use-resize-observer.cjs"),Ke=require("./hooks/use-clipboard.cjs"),qe=require("./hooks/use-keyboard-shortcut.cjs"),Je=require("./hooks/use-idle.cjs"),Ye=require("./hooks/use-geolocation.cjs"),Xe=require("./hooks/use-scroll-lock.cjs"),Ze=require("./hooks/use-focus-trap.cjs"),n=require("./hooks/use-announce.cjs"),Qe=require("./hooks/use-stable-callback.cjs"),$e=require("./hooks/use-latest-ref.cjs"),et=require("./hooks/use-deep-memo.cjs"),tt=require("./hooks/use-previous.cjs"),nt=require("./hooks/use-interval.cjs"),rt=require("./hooks/use-timeout.cjs"),it=require("./hooks/use-throttle.cjs"),at=require("./hooks/use-window-size.cjs"),ot=require("./hooks/use-hover.cjs"),st=require("./hooks/use-long-press.cjs"),ct=require("./hooks/use-disclosure.cjs"),lt=require("./hooks/use-list-state.cjs"),ut=require("./hooks/use-counter.cjs"),dt=require("./hooks/use-countdown.cjs"),ft=require("./hooks/use-typewriter.cjs"),pt=require("./hooks/use-document-title.cjs"),mt=require("./hooks/use-favicon.cjs"),ht=require("./hooks/use-map.cjs"),gt=require("./hooks/use-set.cjs"),_t=require("./hooks/use-queue.cjs"),vt=require("./hooks/use-click-outside.cjs"),yt=require("./hooks/use-is-first-render.cjs"),bt=require("./hooks/use-object-url.cjs"),xt=require("./hooks/use-long-press-handlers.cjs"),r=require("./hooks/pwa-env.cjs"),St=require("./hooks/use-install-prompt.cjs"),i=require("./sw/register-service-worker.cjs"),Ct=require("./hooks/use-service-worker-update.cjs"),a=require("./hooks/use-storage-estimate.cjs"),wt=require("./hooks/use-sortable.cjs"),Tt=require("./hooks/use-scroll-overflow.cjs"),Et=require("./hooks/use-media-permission.cjs"),Dt=require("./hooks/use-media-devices.cjs"),Ot=require("./components/OfflineIndicator/OfflineIndicator.cjs"),kt=require("./offline/use-offline-sync.cjs"),At=require("./components/VisuallyHidden/VisuallyHidden.cjs"),jt=require("./components/SyncStatusBadge/SyncStatusBadge.cjs"),Mt=require("./components/UpdatePrompt/UpdatePrompt.cjs"),Nt=require("./components/Kanban/Kanban.cjs"),Pt=require("./components/Kbd/Kbd.cjs"),Ft=require("./components/ModalsManager/ModalsManager.cjs"),It=require("./components/Navbar/Navbar.cjs"),Lt=require("./components/NProgress/NProgress.cjs"),Rt=require("./components/Page/Page.cjs"),zt=require("./components/Pagination/Pagination.cjs"),Bt=require("./components/PasswordInput/PasswordInput.cjs"),Vt=require("./components/PinInput/PinInput.cjs"),Ht=require("./components/Popover/Popover.cjs"),Ut=require("./components/Progress/Progress.cjs"),Wt=require("./components/Radio/Radio.cjs"),Gt=require("./components/RangeSlider/RangeSlider.cjs"),Kt=require("./components/RatingStars/RatingStars.cjs"),o=require("./components/Responsive/Responsive.cjs"),qt=require("./components/SafeArea/SafeArea.cjs"),Jt=require("./components/SearchBar/SearchBar.cjs"),Yt=require("./components/SegmentedControl/SegmentedControl.cjs"),Xt=require("./components/Select/Select.cjs"),Zt=require("./components/Sidebar/Sidebar.cjs"),Qt=require("./components/Skeleton/Skeleton.cjs"),$t=require("./components/Spacer/Spacer.cjs"),en=require("./components/Spinner/Spinner.cjs"),tn=require("./components/Stat/Stat.cjs"),nn=require("./components/Stepper/Stepper.cjs"),s=require("./utils/numbers.cjs"),rn=require("./components/StepperInput/StepperInput.cjs"),an=require("./components/Switch/Switch.cjs"),on=require("./components/Tag/Tag.cjs"),sn=require("./components/Table/Table.cjs"),cn=require("./components/Tabs/Tabs.cjs"),ln=require("./components/Textarea/Textarea.cjs"),un=require("./components/Timeline/Timeline.cjs"),dn=require("./components/Tooltip/Tooltip.cjs"),c=require("./components/Toast/ToastProvider.cjs"),fn=require("./components/ImageCropper/ImageCropper.cjs"),pn=require("./components/Sparkline/Sparkline.cjs"),mn=require("./components/Scheduler/Scheduler.cjs"),hn=require("./utils/relative-time.cjs"),gn=require("./components/NotificationCenter/NotificationCenter.cjs"),_n=require("./components/NotificationCenter/use-notification-inbox.cjs"),vn=require("./components/VirtualList/VirtualList.cjs"),yn=require("./utils/compare-values.cjs"),bn=require("./components/VirtualTable/VirtualTable.cjs"),l=require("./components/QRCode/qr-encode.cjs"),xn=require("./components/QRCode/QRCode.cjs"),Sn=require("./components/CopyButton/CopyButton.cjs"),Cn=require("./components/CodeBlock/CodeBlock.cjs"),wn=require("./components/RelativeTime/RelativeTime.cjs"),Tn=require("./components/Money/Money.cjs"),En=require("./components/TreeView/TreeView.cjs"),Dn=require("./components/TruncateText/TruncateText.cjs"),On=require("./components/Portal/Portal.cjs"),kn=require("./components/ClickOutside/ClickOutside.cjs"),An=require("./components/ConditionalWrapper/ConditionalWrapper.cjs"),jn=require("./components/For/For.cjs"),Mn=require("./components/ErrorText/ErrorText.cjs"),Nn=require("./components/Image/Image.cjs"),Pn=require("./components/DataList/DataList.cjs"),Fn=require("./components/DescriptionList/DescriptionList.cjs"),In=require("./components/Toggle/Toggle.cjs"),Ln=require("./components/ToggleGroup/ToggleGroup.cjs"),Rn=require("./components/Label/Label.cjs"),zn=require("./components/Collapsible/Collapsible.cjs"),Bn=require("./components/ContextMenu/ContextMenu.cjs"),Vn=require("./components/HoverCard/HoverCard.cjs"),Hn=require("./components/Command/Command.cjs"),Un=require("./components/ScrollArea/ScrollArea.cjs"),Wn=require("./components/Resizable/Resizable.cjs"),Gn=require("./components/Calendar/Calendar.cjs"),Kn=require("./components/Slider/Slider.cjs"),qn=require("./components/MultiSelect/MultiSelect.cjs"),Jn=require("./components/DateRangePicker/DateRangePicker.cjs"),Yn=require("./components/NavigationMenu/NavigationMenu.cjs"),Xn=require("./components/Menubar/Menubar.cjs"),Zn=require("./components/Carousel/Carousel.cjs"),Qn=require("./components/DataTable/DataTable.cjs"),$n=require("./components/ListTile/ListTile.cjs"),er=require("./components/FloatingActionButton/FloatingActionButton.cjs"),tr=require("./components/NavigationRail/NavigationRail.cjs"),nr=require("./components/TimePicker/TimePicker.cjs"),rr=require("./components/RefreshIndicator/RefreshIndicator.cjs"),ir=require("./components/Wizard/Wizard.cjs"),ar=require("./components/Lightbox/Lightbox.cjs"),or=require("./components/SignaturePad/SignaturePad.cjs"),sr=require("./components/Chat/ChatComposer.cjs"),cr=require("./components/Chat/Chat.cjs"),u=require("./audio/audio-output.cjs"),lr=require("./components/AudioPlayer/AudioPlayer.cjs"),ur=require("./capture/media-recorder.cjs"),d=require("./audio/audio-recorder.cjs"),dr=require("./audio/level-meter.cjs"),fr=require("./audio/use-audio-recorder.cjs"),pr=require("./audio/media-access.cjs"),mr=require("./audio/use-microphone.cjs"),hr=require("./audio/wav.cjs"),gr=require("./components/AudioRecorder/AudioRecorder.cjs"),f=require("./capture/barcode.cjs"),_r=require("./capture/use-torch.cjs"),vr=require("./capture/use-barcode-scanner.cjs"),yr=require("./components/BarcodeScanner/BarcodeScanner.cjs"),p=require("./components/AIChat/ai-chat-turns.cjs"),br=require("./components/AIChat/AIChatComposer.cjs"),xr=require("./components/Markdown/Markdown.cjs"),Sr=require("./components/AIChat/AIChatTurn.cjs"),Cr=require("./components/AIChat/AIChat.cjs"),wr=require("./components/Transfer/Transfer.cjs"),Tr=require("./components/Masonry/Masonry.cjs"),Er=require("./components/Tour/Tour.cjs"),Dr=require("./components/BarList/bar-list-model.cjs"),Or=require("./components/BarList/BarList.cjs"),m=require("./components/FilterBar/filter-model.cjs"),kr=require("./components/FilterBar/FilterBar.cjs"),Ar=require("./components/FilterBar/filter-apply.cjs"),jr=require("./components/FilterBar/filter-query.cjs"),h=require("./utils/format.cjs"),Mr=require("./utils/storage.cjs"),g=require("./utils/compressed-storage.cjs"),_=require("./utils/strings.cjs"),v=require("./utils/arrays.cjs"),y=require("./utils/objects.cjs"),b=require("./utils/guards.cjs"),x=require("./utils/functions.cjs"),Nr=require("./utils/promises.cjs"),Pr=require("./utils/ids.cjs"),Fr=require("./utils/xlsx.cjs"),Ir=require("./share/share.cjs"),Lr=require("./share/share-or-download.cjs"),Rr=require("./utils/csv.cjs"),zr=require("./http/build-url.cjs"),S=require("./http/errors.cjs"),Br=require("./http/retry.cjs"),Vr=require("./http/api-client.cjs"),C=require("./http/describe-api-error.cjs"),Hr=require("./i18n/create-i18n.cjs"),w=require("./i18n/I18nProvider.cjs"),Ur=require("./http/use-describe-api-error.cjs"),Wr=require("./http/parse-response.cjs"),Gr=require("./http/upload-with-progress.cjs"),Kr=require("./http/idempotency.cjs"),T=require("./http/resumable-upload.cjs"),qr=require("./http/use-poll.cjs"),Jr=require("./auth/create-auth-store.cjs"),Yr=require("./auth/AuthGuard.cjs"),Xr=require("./auth/jwt.cjs"),Zr=require("./auth/lazy-with-retry.cjs"),Qr=require("./auth/refresh-queue.cjs"),E=require("./auth/passkey.cjs"),D=require("./auth/use-passkey.cjs"),$r=require("./auth/create-tempest-auth.cjs"),ei=require("./access/access-control-context.cjs"),ti=require("./access/use-can.cjs"),ni=require("./access/Can.cjs"),ri=require("./access/create-role-access-control.cjs"),ii=require("./access/permissions-from-token.cjs"),ai=require("./oauth/GoogleSignIn.cjs"),oi=require("./oauth/use-oauth-callback.cjs"),O=require("./query/constants.cjs"),si=require("./query/create-query-keys.cjs"),ci=require("./query/retry-policy.cjs"),li=require("./query/QueryProvider.cjs"),k=require("./query/pagination.cjs"),ui=require("./query/use-paginated-query.cjs"),di=require("./query/use-cursor-query.cjs"),fi=require("./query/use-offline-mutation.cjs"),A=require("./query/optimistic.cjs"),pi=require("./offline/create-offline-store.cjs"),mi=require("./query/offline-persistence.cjs"),hi=require("./data/create-data-provider.cjs"),j=require("./data/data-provider-context.cjs"),M=require("./data/use-resource.cjs"),gi=require("./router/RouteGuard.cjs"),N=require("./router/AppRouter.cjs"),_i=require("./store/create-store.cjs"),vi=require("./store/create-selectors.cjs"),P=require("./theme/ThemeProvider.cjs"),yi=require("./error-boundary/ErrorBoundary.cjs"),bi=require("./app/AppProviders.cjs"),xi=require("./sse/create-event-stream.cjs"),Si=require("./sse/use-event-stream.cjs"),F=require("./push/utils.cjs"),I=require("./push/web-push-client.cjs"),Ci=require("./push/use-push-subscription.cjs"),L=require("./sw/create-push-handler.cjs"),R=require("./sw/cache.cjs"),wi=require("./sw/background-sync.cjs"),Ti=require("./sw/periodic-sync.cjs"),Ei=require("./sw/cache-inspect.cjs"),z=require("./audio/audio-player.cjs"),Di=require("./audio/use-audio.cjs"),Oi=require("./audio/sfx-pool.cjs"),ki=require("./audio/use-sfx-pool.cjs"),B=require("./capture/video-recorder.cjs"),Ai=require("./capture/use-video-recorder.cjs"),ji=require("./capture/use-screen-capture.cjs"),Mi=require("./capture/use-speech-recognition.cjs"),Ni=require("./offline/create-offline-sync.cjs"),Pi=require("./offline/conflict.cjs"),Fi=require("./error-boundary/use-error-handler.cjs"),Ii=require("./forms/FormField.cjs"),Li=require("./forms/validate-form.cjs"),Ri=require("./forms/zod-resolver.cjs"),zi=require("./forms/use-zod-form.cjs"),V=require("./forms/br-validators.cjs"),H=require("./forms/masked-inputs.cjs"),Bi=require("./forms/use-viacep.cjs"),Vi=require("./ws/create-web-socket.cjs"),Hi=require("./ws/use-web-socket.cjs"),U=require("./geo/types.cjs"),W=require("./geo/distance.cjs"),G=require("./geo/estimate.cjs"),K=require("./geo/bounds.cjs"),q=require("./geo/projection.cjs"),Ui=require("./geo/routing.cjs"),Wi=require("./geo/create-position-tracker.cjs"),Gi=require("./geo/use-position-tracker.cjs"),Ki=require("./geo/TrajectoryMap.cjs"),qi=require("./theme/apply-theme.cjs"),J=require("./theme/color.cjs"),Y=require("./theme/create-theme.cjs"),Ji=require("./theme/theme-presets.cjs"),Yi=require("./theme/initial-theme.cjs"),Xi=require("./logger/logger.cjs"),Zi=require("./telemetry/TelemetryProvider.cjs"),Qi=require("./telemetry/console-adapter.cjs"),$i=require("./telemetry/sentry-adapter.cjs"),ea=require("./telemetry/posthog-adapter.cjs"),X=require("./feature-flags/FeatureFlagsProvider.cjs"),ta=require("./feature-flags/in-memory-adapter.cjs"),na=require("./feature-flags/growthbook-adapter.cjs"),ra=require("./feature-flags/launchdarkly-adapter.cjs"),Z=require("./charts/scales.cjs"),ia=require("./perf/cache-size.cjs"),aa=require("./perf/device.cjs"),oa=require("./perf/format.cjs"),sa=require("./perf/profiler.cjs");let Q=require("react-router"),$=require("react-hook-form");exports.AIChat=Cr.AIChat,exports.AIChatComposer=br.AIChatComposer,exports.AIChatTurn=Sr.AIChatTurn,exports.ALL_BARCODE_FORMATS=f.ALL_BARCODE_FORMATS,exports.API_ERROR_OFFLINE_KEY=C.API_ERROR_OFFLINE_KEY,exports.AUDIO_MIME_CANDIDATES=d.AUDIO_MIME_CANDIDATES,exports.AccessControlProvider=ei.AccessControlProvider,exports.Accordion=te.Accordion,exports.Alert=ne.Alert,exports.AppBar=re.AppBar,exports.AppProviders=bi.AppProviders,exports.AppRouter=N.AppRouter,exports.AppShell=ae.AppShell,exports.AspectRatio=oe.AspectRatio,exports.AudioPlayer=lr.AudioPlayer,exports.AudioRecorder=gr.AudioRecorder,exports.AuthGuard=Yr.AuthGuard,exports.Avatar=se.Avatar,exports.AvatarGroup=ce.AvatarGroup,exports.BREAKPOINTS=ie.BREAKPOINTS,exports.Badge=le.Badge,exports.Banner=ue.Banner,exports.BarList=Or.BarList,exports.BarcodeScanner=yr.BarcodeScanner,exports.BottomNavigation=de.BottomNavigation,exports.BottomSheet=fe.BottomSheet,exports.Breadcrumbs=pe.Breadcrumbs,Object.defineProperty(exports,"BrowserRouter",{enumerable:!0,get:function(){return Q.BrowserRouter}}),exports.Button=me.Button,exports.CACHE_TIME=O.CACHE_TIME,exports.CEPInput=H.CEPInput,exports.CNPJInput=H.CNPJInput,exports.CPFInput=H.CPFInput,exports.Calendar=Gn.Calendar,exports.Can=ni.Can,exports.Card=he.Card,exports.Carousel=Zn.Carousel,exports.Center=ge.Center,exports.Chat=cr.Chat,exports.ChatComposer=sr.ChatComposer,exports.Checkbox=_e.Checkbox,exports.ChipInput=ve.ChipInput,exports.ClickOutside=kn.ClickOutside,exports.CodeBlock=Cn.CodeBlock,exports.Collapsible=zn.Collapsible,exports.Combobox=ye.Combobox,exports.Command=Hn.Command,exports.ConditionalWrapper=An.ConditionalWrapper,exports.ConfirmDialog=xe.ConfirmDialog,exports.Container=t.Container,exports.ContextMenu=Bn.ContextMenu,Object.defineProperty(exports,"Controller",{enumerable:!0,get:function(){return $.Controller}}),exports.CopyButton=Sn.CopyButton,exports.DEFAULT_API_ERROR_STRINGS=C.DEFAULT_API_ERROR_STRINGS,exports.DEFAULT_BARCODE_FORMATS=f.DEFAULT_BARCODE_FORMATS,exports.DEFAULT_CAR_SPEED_KMH=G.DEFAULT_CAR_SPEED_KMH,exports.DEFAULT_CHUNK_SIZE=T.DEFAULT_CHUNK_SIZE,exports.DEFAULT_CIRCUITY_FACTOR=G.DEFAULT_CIRCUITY_FACTOR,exports.DEFAULT_MODE_DURATION_FACTORS=G.DEFAULT_MODE_DURATION_FACTORS,exports.DEFAULT_PUB_KEY_CRED_PARAMS=E.DEFAULT_PUB_KEY_CRED_PARAMS,exports.DIVERGING_STEP_COUNT=Z.DIVERGING_STEP_COUNT,exports.DataList=Pn.DataList,exports.DataTable=Qn.DataTable,exports.DatePicker=Ce.DatePicker,exports.DateRangePicker=Jn.DateRangePicker,exports.DescriptionList=Fn.DescriptionList,exports.Divider=we.Divider,exports.Drawer=Te.Drawer,exports.DropdownMenu=Ee.DropdownMenu,exports.Dropzone=De.Dropzone,exports.EARTH_RADIUS_KM=W.EARTH_RADIUS_KM,exports.EmptyState=Oe.EmptyState,exports.ErrorBoundary=yi.ErrorBoundary,exports.ErrorState=ke.ErrorState,exports.ErrorText=Mn.ErrorText,exports.FeatureFlagsProvider=X.FeatureFlagsProvider,exports.FileUpload=Ae.FileUpload,exports.FilterBar=kr.FilterBar,exports.FloatingActionButton=er.FloatingActionButton,exports.For=jn.For,exports.Form=e.Form,exports.FormActions=e.FormActions,exports.FormField=Ii.FormField,Object.defineProperty(exports,"FormProvider",{enumerable:!0,get:function(){return $.FormProvider}}),exports.FormRow=e.FormRow,exports.FormSection=e.FormSection,exports.GoogleSignIn=ai.GoogleSignIn,exports.Grid=t.Grid,Object.defineProperty(exports,"HashRouter",{enumerable:!0,get:function(){return Q.HashRouter}}),exports.Hide=o.Hide,exports.HoverCard=Vn.HoverCard,exports.I18nProvider=w.I18nProvider,exports.Image=Nn.Image,exports.ImageCropper=fn.ImageCropper,exports.Input=Se.Input,exports.InstallBanner=Me.InstallBanner,exports.InstallButton=Ne.InstallButton,exports.Kanban=Nt.Kanban,exports.Kbd=Pt.Kbd,exports.Label=Rn.Label,exports.Lightbox=ar.Lightbox,Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return Q.Link}}),exports.ListTile=$n.ListTile,exports.Markdown=xr.Markdown,exports.Masonry=Tr.Masonry,Object.defineProperty(exports,"MemoryRouter",{enumerable:!0,get:function(){return Q.MemoryRouter}}),exports.Menubar=Xn.Menubar,exports.Modal=be.Modal,exports.ModalsProvider=Ft.ModalsProvider,exports.Money=Tn.Money,exports.MoneyInput=H.MoneyInput,exports.MultiSelect=qn.MultiSelect,exports.NProgressBar=Lt.NProgressBar,Object.defineProperty(exports,"NavLink",{enumerable:!0,get:function(){return Q.NavLink}}),exports.Navbar=It.Navbar,Object.defineProperty(exports,"Navigate",{enumerable:!0,get:function(){return Q.Navigate}}),exports.NavigationMenu=Yn.NavigationMenu,exports.NavigationRail=tr.NavigationRail,exports.NotificationCenter=gn.NotificationCenter,exports.ORDINAL_START_STEP=Z.ORDINAL_START_STEP,exports.OfflineIndicator=Ot.OfflineIndicator,Object.defineProperty(exports,"Outlet",{enumerable:!0,get:function(){return Q.Outlet}}),exports.Page=Rt.Page,exports.Pagination=zt.Pagination,exports.PasskeyError=E.PasskeyError,exports.PasswordInput=Bt.PasswordInput,exports.PhoneInput=H.PhoneInput,exports.PinInput=Vt.PinInput,exports.Popover=Ht.Popover,exports.Portal=On.Portal,exports.Progress=Ut.Progress,exports.QRCapacityError=l.QRCapacityError,exports.QRCode=xn.QRCode,exports.QueryProvider=li.QueryProvider,exports.REFETCH_TIME=O.REFETCH_TIME,exports.Radio=Wt.Radio,exports.RadioGroup=Wt.RadioGroup,exports.RangeSlider=Gt.RangeSlider,exports.RatingStars=Kt.RatingStars,exports.RefreshIndicator=rr.RefreshIndicator,exports.RelativeTime=wn.RelativeTime,exports.Resizable=Wn.Resizable,Object.defineProperty(exports,"Route",{enumerable:!0,get:function(){return Q.Route}}),exports.RouteGuard=gi.RouteGuard,Object.defineProperty(exports,"Routes",{enumerable:!0,get:function(){return Q.Routes}}),exports.SEQUENTIAL_STEP_COUNT=Z.SEQUENTIAL_STEP_COUNT,exports.STALE_TIME=O.STALE_TIME,exports.SafeArea=qt.SafeArea,exports.Scheduler=mn.Scheduler,exports.ScrollArea=Un.ScrollArea,exports.SearchBar=Jt.SearchBar,exports.SegmentedControl=Yt.SegmentedControl,exports.Select=Xt.Select,exports.Show=o.Show,exports.Sidebar=Zt.Sidebar,exports.SignaturePad=or.SignaturePad,exports.Skeleton=Qt.Skeleton,exports.Slider=Kn.Slider,exports.Spacer=$t.Spacer,exports.Sparkline=pn.Sparkline,exports.Spinner=en.Spinner,exports.Stack=t.Stack,exports.Stat=tn.Stat,exports.Stepper=nn.Stepper,exports.StepperInput=rn.StepperInput,exports.Switch=an.Switch,exports.SyncStatusBadge=jt.SyncStatusBadge,exports.Table=sn.Table,exports.Tabs=cn.Tabs,exports.Tag=on.Tag,exports.TelemetryProvider=Zi.TelemetryProvider,exports.TempestApiError=S.TempestApiError,exports.TempestDataProvider=j.TempestDataProvider,exports.Textarea=ln.Textarea,exports.ThemeProvider=P.ThemeProvider,exports.TimePicker=nr.TimePicker,exports.Timeline=un.Timeline,exports.ToastProvider=c.ToastProvider,exports.Toggle=In.Toggle,exports.ToggleGroup=Ln.ToggleGroup,exports.ToggleGroupItem=Ln.ToggleGroupItem,exports.Tooltip=dn.Tooltip,exports.Tour=Er.Tour,exports.TrajectoryMap=Ki.TrajectoryMap,exports.Transfer=wr.Transfer,exports.TreeView=En.TreeView,exports.TruncateText=Dn.TruncateText,exports.UpdatePrompt=Mt.UpdatePrompt,exports.VirtualList=vn.VirtualList,exports.VirtualTable=bn.VirtualTable,exports.VisuallyHidden=At.VisuallyHidden,exports.WebPushClient=I.WebPushClient,exports.WebPushPermissionDeniedError=I.WebPushPermissionDeniedError,exports.WebPushUnsupportedError=I.WebPushUnsupportedError,exports.Wizard=ir.Wizard,exports.aiChatStrings=p.aiChatStrings,exports.announce=n.announce,exports.applyFilters=Ar.applyFilters,exports.applyKanbanMove=Nt.applyKanbanMove,exports.applyTheme=qi.applyTheme,exports.assertNever=b.assertNever,exports.base64UrlToBytes=E.base64UrlToBytes,exports.bearingDeg=W.bearingDeg,exports.blobToWav=hr.blobToWav,exports.boundingBox=K.boundingBox,exports.boundsCenter=K.boundsCenter,exports.buildApiUrl=zr.buildApiUrl,exports.buildBarListRows=Dr.buildBarListRows,exports.buildOpenInChromeIntent=r.buildOpenInChromeIntent,exports.bytesToBase64Url=E.bytesToBase64Url,exports.cachedResponseBytes=ia.cachedResponseBytes,exports.camelCase=_.camelCase,exports.capitalize=_.capitalize,exports.chunk=v.chunk,exports.clamp=s.clamp,exports.clampLatitude=U.clampLatitude,exports.classifyPasskeyError=E.classifyPasskeyError,exports.clearAnnouncer=n.clearAnnouncer,exports.clearCaches=Ei.clearCaches,exports.cn=ee.cn,exports.compareValues=yn.compareValues,exports.compressToString=g.compressToString,exports.compressedStorage=g.compressedStorage,exports.compressedStorageCodec=g.compressedStorageCodec,exports.consoleSink=Xi.consoleSink,exports.consoleTelemetryAdapter=Qi.consoleTelemetryAdapter,exports.contrastRatio=J.contrastRatio,exports.createApiClient=Vr.createApiClient,exports.createAudioPlayer=z.createAudioPlayer,exports.createAudioRecorder=d.createAudioRecorder,exports.createAuthStore=Jr.createAuthStore,exports.createBarcodeDetector=f.createBarcodeDetector,exports.createColorScale=J.createColorScale,exports.createDataProvider=hi.createDataProvider,exports.createEventStream=xi.createEventStream,exports.createGrowthBookFeatureFlagsAdapter=na.createGrowthBookFeatureFlagsAdapter,exports.createI18n=Hr.createI18n,exports.createInMemoryFlags=ta.createInMemoryFlags,exports.createInferenceProfiler=sa.createInferenceProfiler,exports.createLaunchDarklyFeatureFlagsAdapter=ra.createLaunchDarklyFeatureFlagsAdapter,exports.createLevelMeter=dr.createLevelMeter,exports.createLocalUploadStorage=T.createLocalUploadStorage,exports.createLogger=Xi.createLogger,exports.createMediaRecorder=ur.createMediaRecorder,exports.createOSRMBackend=Ui.createOSRMBackend,exports.createOfflineStore=pi.createOfflineStore,exports.createOfflineSync=Ni.createOfflineSync,exports.createPartialResponse=R.createPartialResponse,exports.createPasskeyClient=E.createPasskeyClient,exports.createPositionTracker=Wi.createPositionTracker,exports.createPostHogTelemetryAdapter=ea.createPostHogTelemetryAdapter,exports.createQueryKeys=si.createQueryKeys,exports.createRefreshQueue=Qr.createRefreshQueue,exports.createResumableUpload=T.createResumableUpload,exports.createRoleAccessControl=ri.createRoleAccessControl,exports.createSelectors=vi.createSelectors,exports.createSentryTelemetryAdapter=$i.createSentryTelemetryAdapter,exports.createSfxPool=Oi.createSfxPool,exports.createStore=_i.createStore,exports.createTempestAuth=$r.createTempestAuth,exports.createTheme=Y.createTheme,exports.createVideoRecorder=B.createVideoRecorder,exports.createWebSocket=Vi.createWebSocket,exports.debounce=x.debounce,exports.decodeJWT=Xr.decodeJWT,exports.decompressFromString=g.decompressFromString,exports.deepMerge=y.deepMerge,exports.defineRoutes=N.defineRoutes,exports.describeApiError=C.describeApiError,exports.describeFilter=m.describeFilter,exports.divergingScale=Z.divergingScale,exports.downloadCsv=Rr.downloadCsv,exports.emptyOffsetPage=k.emptyOffsetPage,exports.encodeQR=l.encodeQR,exports.encodeWav=hr.encodeWav,exports.estimatePasswordStrength=Bt.estimatePasswordStrength,exports.estimateStorage=a.estimateStorage,exports.estimateTravel=G.estimateTravel,exports.expandBounds=K.expandBounds,exports.filtersFromSearchParams=m.filtersFromSearchParams,exports.filtersToQueryParams=jr.filtersToQueryParams,exports.filtersToSearchParams=m.filtersToSearchParams,exports.fitProjection=q.fitProjection,exports.formatBytes=s.formatBytes,exports.formatCEP=V.formatCEP,exports.formatCNPJ=V.formatCNPJ,exports.formatCPF=h.formatCPF,exports.formatCompactNumber=s.formatCompactNumber,exports.formatCurrency=h.formatCurrency,exports.formatDate=h.formatDate,exports.formatDateForInput=h.formatDateForInput,exports.formatDateTime=h.formatDateTime,exports.formatDurationMs=oa.formatDurationMs,exports.formatPercent=h.formatPercent,exports.formatPhone=h.formatPhone,exports.generateIdempotencyKey=Kr.generateIdempotencyKey,exports.getInitialTheme=Yi.getInitialTheme,exports.getSupportedBarcodeFormats=f.getSupportedBarcodeFormats,exports.getThemePreset=Ji.getThemePreset,exports.groupBy=v.groupBy,exports.haversineKm=W.haversineKm,exports.hexToOklch=J.hexToOklch,exports.hexToRgb=J.hexToRgb,exports.hexToRgbaString=J.hexToRgbaString,exports.higherVersionWins=Pi.higherVersionWins,exports.inspectCaches=Ei.inspectCaches,exports.installBackgroundSync=wi.installBackgroundSync,exports.installNotificationClickHandler=L.installNotificationClickHandler,exports.installPrecache=R.installPrecache,exports.installPushHandler=L.installPushHandler,exports.installRuntimeCache=R.installRuntimeCache,exports.installSkipWaitingListener=L.installSkipWaitingListener,exports.isAndroid=r.isAndroid,exports.isAndroidWithoutPromptApi=r.isAndroidWithoutPromptApi,exports.isApiError=S.isApiError,exports.isAudioOutputSelectionSupported=u.isAudioOutputSelectionSupported,exports.isAudioRecordingSupported=d.isAudioRecordingSupported,exports.isBarcodeDetectionSupported=f.isBarcodeDetectionSupported,exports.isConditionalMediationAvailable=E.isConditionalMediationAvailable,exports.isCoordinate=U.isCoordinate,exports.isCursorPage=k.isCursorPage,exports.isDefined=b.isDefined,exports.isEmpty=y.isEmpty,exports.isGenerating=p.isGenerating,exports.isIOS=r.isIOS,exports.isJWTExpired=Xr.isJWTExpired,exports.isMediaCaptureSupported=pr.isMediaCaptureSupported,exports.isNumber=b.isNumber,exports.isOffsetPage=k.isOffsetPage,exports.isPasskeySupported=E.isPasskeySupported,exports.isPlainObject=b.isPlainObject,exports.isPlatformAuthenticatorAvailable=E.isPlatformAuthenticatorAvailable,exports.isPushSupported=F.isPushSupported,exports.isScreenCaptureSupported=ji.isScreenCaptureSupported,exports.isShareSupported=Ir.isShareSupported,exports.isSpeechRecognitionSupported=Mi.isSpeechRecognitionSupported,exports.isStandalone=r.isStandalone,exports.isString=b.isString,exports.isValidLatitude=U.isValidLatitude,exports.isValidLongitude=U.isValidLongitude,exports.isVideoRecordingSupported=B.isVideoRecordingSupported,exports.kebabCase=_.kebabCase,exports.lastAssistantId=p.lastAssistantId,exports.lastWriteWins=Pi.lastWriteWins,exports.lazyWithRetry=Zr.lazyWithRetry,exports.listQueryKey=M.listQueryKey,exports.matrixToPath=l.matrixToPath,exports.memoizeOne=x.memoizeOne,exports.moveItem=wt.moveItem,exports.normalizeBarcode=f.normalizeBarcode,exports.normalizeLongitude=U.normalizeLongitude,exports.nprogress=Lt.nprogress,exports.oklchToHex=J.oklchToHex,exports.omit=y.omit,exports.once=x.once,exports.oneQueryKey=M.oneQueryKey,exports.operatorsFor=m.operatorsFor,exports.parseResponse=Wr.parseResponse,exports.pathLengthKm=W.pathLengthKm,exports.percentOf=s.percentOf,exports.permissionsFromToken=ii.permissionsFromToken,exports.persistQueryClientOffline=mi.persistQueryClientOffline,exports.pick=y.pick,exports.pickAudioMimeType=d.pickAudioMimeType,exports.pickVideoMimeType=B.pickVideoMimeType,exports.playAudio=z.playAudio,exports.pluralize=_.pluralize,exports.projectMercator=q.projectMercator,exports.randomId=Pr.randomId,exports.range=v.range,exports.readDeviceProfile=aa.readDeviceProfile,exports.readThemeToken=qi.readThemeToken,exports.readableForeground=J.readableForeground,Object.defineProperty(exports,"redirect",{enumerable:!0,get:function(){return Q.redirect}}),exports.registerPeriodicSync=Ti.registerPeriodicSync,exports.registerServiceWorker=i.registerServiceWorker,exports.relativeLuminance=J.relativeLuminance,exports.relativeTime=hn.relativeTime,exports.removeById=A.removeById,exports.requestPersistentStorage=a.requestPersistentStorage,exports.retry=Br.retry,exports.rgbToHex=J.rgbToHex,exports.roleLabel=p.roleLabel,exports.scaleSteps=Z.scaleSteps,exports.sequentialScale=Z.sequentialScale,exports.setAudioOutput=u.setAudioOutput,exports.share=Ir.share,exports.shareOrDownloadBlob=Lr.shareOrDownloadBlob,exports.shouldRetryQuery=ci.shouldRetryQuery,exports.skipWaiting=i.skipWaiting,exports.sleep=Nr.sleep,exports.slugify=_.slugify,exports.stopAudio=z.stopAudio,exports.storage=Mr.storage,exports.tailSignature=p.tailSignature,exports.themeContrast=Y.themeContrast,exports.themeInitScript=Yi.themeInitScript,exports.themePresets=Ji.themePresets,exports.throttle=x.throttle,exports.toCsv=Rr.toCsv,exports.toRadians=W.toRadians,exports.truncate=_.truncate,exports.turnTime=p.turnTime,exports.uniqueBy=v.uniqueBy,exports.unmask=V.unmask,exports.unprojectMercator=q.unprojectMercator,exports.unregisterAllServiceWorkers=i.unregisterAllServiceWorkers,exports.uploadFingerprint=T.uploadFingerprint,exports.uploadWithProgress=Gr.uploadWithProgress,exports.upsertById=A.upsertById,exports.urlBase64ToUint8Array=F.urlBase64ToUint8Array,exports.useAccessControl=ei.useAccessControl,exports.useAnnounce=n.useAnnounce,exports.useAsync=Ve.useAsync,exports.useAudio=Di.useAudio,exports.useAudioRecorder=fr.useAudioRecorder,exports.useBarcodeScanner=vr.useBarcodeScanner,exports.useBeforeInstallPrompt=je.useBeforeInstallPrompt,exports.useBreakpoint=ie.useBreakpoint,exports.useCan=ti.useCan,exports.useClickOutside=vt.useClickOutside,exports.useClientFilter=Ie.useClientFilter,exports.useClipboard=Ke.useClipboard,exports.useCountdown=dt.useCountdown,exports.useCounter=ut.useCounter,exports.useCreate=M.useCreate,exports.useCursorQuery=di.useCursorQuery,exports.useDataProvider=j.useDataProvider,exports.useDebounce=Pe.useDebounce,exports.useDeepMemo=et.useDeepMemo,exports.useDelete=M.useDelete,exports.useDescribeApiError=Ur.useDescribeApiError,exports.useDisclosure=ct.useDisclosure,exports.useDocumentTitle=pt.useDocumentTitle,exports.useDocumentVisibility=Ue.useDocumentVisibility,exports.useErrorHandler=Fi.useErrorHandler,exports.useEventListener=Re.useEventListener,exports.useEventStream=Si.useEventStream,exports.useFavicon=mt.useFavicon,exports.useFeatureFlag=X.useFeatureFlag,Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return $.useFieldArray}}),exports.useFlagValue=X.useFlagValue,exports.useFocusTrap=Ze.useFocusTrap,Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return $.useForm}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return $.useFormContext}}),Object.defineProperty(exports,"useFormState",{enumerable:!0,get:function(){return $.useFormState}}),exports.useGeolocation=Ye.useGeolocation,exports.useHover=ot.useHover,exports.useI18n=w.useI18n,exports.useIdle=Je.useIdle,exports.useInstallPrompt=St.useInstallPrompt,exports.useIntersectionObserver=We.useIntersectionObserver,exports.useInterval=nt.useInterval,exports.useIsFirstRender=yt.useIsFirstRender,exports.useKeyboardShortcut=qe.useKeyboardShortcut,exports.useLatestRef=$e.useLatestRef,exports.useList=M.useList,exports.useListState=lt.useListState,exports.useLocalStorage=ze.useLocalStorage,Object.defineProperty(exports,"useLocation",{enumerable:!0,get:function(){return Q.useLocation}}),exports.useLongPress=st.useLongPress,exports.useLongPressHandlers=xt.useLongPressHandlers,exports.useMap=ht.useMap,Object.defineProperty(exports,"useMatch",{enumerable:!0,get:function(){return Q.useMatch}}),exports.useMediaDevices=Dt.useMediaDevices,exports.useMediaPermission=Et.useMediaPermission,exports.useMediaQuery=Le.useMediaQuery,exports.useMicrophone=mr.useMicrophone,exports.useModals=Ft.useModals,Object.defineProperty(exports,"useNavigate",{enumerable:!0,get:function(){return Q.useNavigate}}),exports.useNotificationInbox=_n.useNotificationInbox,exports.useOAuthCallback=oi.useOAuthCallback,exports.useObjectUrl=bt.useObjectUrl,exports.useOfflineMutation=fi.useOfflineMutation,exports.useOfflineSync=kt.useOfflineSync,exports.useOne=M.useOne,exports.useOnline=He.useOnline,exports.useOptionalI18n=w.useOptionalI18n,exports.usePaginatedQuery=ui.usePaginatedQuery,exports.usePagination=Fe.usePagination,Object.defineProperty(exports,"useParams",{enumerable:!0,get:function(){return Q.useParams}}),exports.usePasskeyCapabilities=D.usePasskeyCapabilities,exports.usePasskeyRegistration=D.usePasskeyRegistration,exports.usePasskeySignIn=D.usePasskeySignIn,exports.usePoll=qr.usePoll,exports.usePositionTracker=Gi.usePositionTracker,exports.usePrevious=tt.usePrevious,exports.usePushSubscription=Ci.usePushSubscription,exports.useQueue=_t.useQueue,exports.useResizeObserver=Ge.useResizeObserver,Object.defineProperty(exports,"useRouteError",{enumerable:!0,get:function(){return Q.useRouteError}}),exports.useScreenCapture=ji.useScreenCapture,exports.useScrollLock=Xe.useScrollLock,exports.useScrollOverflow=Tt.useScrollOverflow,Object.defineProperty(exports,"useSearchParams",{enumerable:!0,get:function(){return Q.useSearchParams}}),exports.useServiceWorkerUpdate=Ct.useServiceWorkerUpdate,exports.useSet=gt.useSet,exports.useSfxPool=ki.useSfxPool,exports.useSortable=wt.useSortable,exports.useSpeechRecognition=Mi.useSpeechRecognition,exports.useStableCallback=Qe.useStableCallback,exports.useStorageEstimate=a.useStorageEstimate,exports.useSyncStatus=kt.useSyncStatus,exports.useTelemetry=Zi.useTelemetry,exports.useTheme=P.useTheme,exports.useThrottle=it.useThrottle,exports.useTimeout=rt.useTimeout,exports.useToast=c.useToast,exports.useToggle=Be.useToggle,exports.useTorch=_r.useTorch,exports.useTranslate=w.useTranslate,exports.useTypewriter=ft.useTypewriter,exports.useUpdate=M.useUpdate,exports.useViaCEP=Bi.useViaCEP,exports.useVideoRecorder=Ai.useVideoRecorder,Object.defineProperty(exports,"useWatch",{enumerable:!0,get:function(){return $.useWatch}}),exports.useWebSocket=Hi.useWebSocket,exports.useWindowSize=at.useWindowSize,exports.useZodForm=zi.useZodForm,exports.validateCNPJ=V.validateCNPJ,exports.validateCPF=V.validateCPF,exports.validateForm=Li.validateForm,exports.visibleTurns=p.visibleTurns,exports.withTimeout=Nr.withTimeout,exports.writeXlsx=Fr.writeXlsx,exports.zodResolver=Ri.zodResolver;
|
|
@@ -564,8 +564,28 @@ export declare interface ApiClient {
|
|
|
564
564
|
}
|
|
565
565
|
|
|
566
566
|
export declare interface ApiClientConfig {
|
|
567
|
-
/**
|
|
567
|
+
/**
|
|
568
|
+
* Base URL for every request. Required.
|
|
569
|
+
*
|
|
570
|
+
* May carry a path (`https://api.example.com/api`) — it is kept, and a
|
|
571
|
+
* request for `"/auth/login"` lands on `/api/auth/login`. May also be
|
|
572
|
+
* relative (`"/api"`), which resolves against the current origin and is the
|
|
573
|
+
* shape to use behind a dev-server or reverse proxy.
|
|
574
|
+
*/
|
|
568
575
|
baseURL: string;
|
|
576
|
+
/**
|
|
577
|
+
* Path segment every request is nested under, such as `"/api"` — the
|
|
578
|
+
* `root_path` a Tempest FastAPI service is usually mounted on.
|
|
579
|
+
*
|
|
580
|
+
* The alternative to writing it into `baseURL`, and the better one when the
|
|
581
|
+
* base comes from an environment variable that other things also use (an
|
|
582
|
+
* SSE endpoint, a media host): the variable stays the bare origin and only
|
|
583
|
+
* the client carries the prefix.
|
|
584
|
+
*
|
|
585
|
+
* Applied at most once — a path that already opens with the prefix is left
|
|
586
|
+
* alone, so call sites can migrate one at a time.
|
|
587
|
+
*/
|
|
588
|
+
prefix?: string;
|
|
569
589
|
/** Returns the current bearer token (or null/undefined). Called per request. */
|
|
570
590
|
getToken?: () => string | null | undefined;
|
|
571
591
|
/**
|
|
@@ -1684,6 +1704,54 @@ export declare const BREAKPOINTS: Record<Breakpoint, number>;
|
|
|
1684
1704
|
|
|
1685
1705
|
export { BrowserRouter }
|
|
1686
1706
|
|
|
1707
|
+
/**
|
|
1708
|
+
* Join a base URL, an optional prefix and a request path into an absolute URL.
|
|
1709
|
+
*
|
|
1710
|
+
* `new URL(path, base)` on its own is wrong for an API client. It follows the
|
|
1711
|
+
* URL spec, where a path starting with `/` is absolute against the *origin* and
|
|
1712
|
+
* therefore discards whatever path the base carried: a client on
|
|
1713
|
+
* `https://api.example.com/api` asked for `/auth/login` reaches
|
|
1714
|
+
* `https://api.example.com/auth/login`, and every request 404s with nothing in
|
|
1715
|
+
* the config that looks wrong. This function resolves the path against the base
|
|
1716
|
+
* *path* instead, so the leading slash is a matter of taste rather than a
|
|
1717
|
+
* silent 404, and `baseURL` + `prefix` are interchangeable ways to say the same
|
|
1718
|
+
* thing.
|
|
1719
|
+
*
|
|
1720
|
+
* The prefix is applied at most once: a path that already opens with it — say
|
|
1721
|
+
* `"/api/auth/login"` under a `"/api"` prefix — is left alone, so a codebase
|
|
1722
|
+
* migrating to `prefix` can move its call sites one at a time. The check is per
|
|
1723
|
+
* segment, so `/api-keys` is not mistaken for an already-prefixed path.
|
|
1724
|
+
*
|
|
1725
|
+
* A path that is itself an absolute URL wins over all of this, which is how a
|
|
1726
|
+
* client reaches a second host (a signed upload endpoint, a CDN) without a
|
|
1727
|
+
* second client.
|
|
1728
|
+
*
|
|
1729
|
+
* @example
|
|
1730
|
+
* buildApiUrl("https://api.example.com", "/auth/login", { prefix: "/api" });
|
|
1731
|
+
* // "https://api.example.com/api/auth/login"
|
|
1732
|
+
*
|
|
1733
|
+
* buildApiUrl("https://api.example.com/api", "auth/login");
|
|
1734
|
+
* // "https://api.example.com/api/auth/login"
|
|
1735
|
+
*
|
|
1736
|
+
* @param baseURL - Absolute base URL, or a path relative to the current origin.
|
|
1737
|
+
* @param path - The request path, or an absolute URL to use as-is.
|
|
1738
|
+
* @param options - Optional prefix and query params.
|
|
1739
|
+
* @returns The absolute URL to fetch.
|
|
1740
|
+
* @throws When `baseURL` is relative and there is no `location` to resolve it.
|
|
1741
|
+
*/
|
|
1742
|
+
export declare function buildApiUrl(baseURL: string, path: string, options?: BuildApiUrlOptions): string;
|
|
1743
|
+
|
|
1744
|
+
/** Options accepted by {@link buildApiUrl}. */
|
|
1745
|
+
export declare interface BuildApiUrlOptions {
|
|
1746
|
+
/**
|
|
1747
|
+
* Path segment every request is nested under, such as `"/api"`. Joined
|
|
1748
|
+
* after the path the `baseURL` already carries.
|
|
1749
|
+
*/
|
|
1750
|
+
prefix?: string;
|
|
1751
|
+
/** Query params to append. `undefined` and `null` values are skipped. */
|
|
1752
|
+
params?: Record<string, string | number | boolean | undefined | null>;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1687
1755
|
/**
|
|
1688
1756
|
* Order, truncate and measure the rows.
|
|
1689
1757
|
*
|
|
@@ -3624,6 +3692,16 @@ export declare function createTempestAuth<TUser, TCredentials = {
|
|
|
3624
3692
|
export declare interface CreateTempestAuthOptions<TUser> {
|
|
3625
3693
|
/** Base URL of the API. Required. */
|
|
3626
3694
|
baseURL: string;
|
|
3695
|
+
/**
|
|
3696
|
+
* Path segment the API is mounted under, such as `"/api"`, forwarded to
|
|
3697
|
+
* every client this preset builds — see the `prefix` option of
|
|
3698
|
+
* `createApiClient`.
|
|
3699
|
+
*
|
|
3700
|
+
* Safe to combine with the default paths below: the prefix is applied at
|
|
3701
|
+
* most once, so `"/api/auth/login"` under a `"/api"` prefix stays
|
|
3702
|
+
* `"/api/auth/login"`.
|
|
3703
|
+
*/
|
|
3704
|
+
prefix?: string;
|
|
3627
3705
|
/** Login route (`POST`). Default: `"/api/auth/login"`. */
|
|
3628
3706
|
loginPath?: string;
|
|
3629
3707
|
/** Refresh route (`POST`). Default: `"/api/auth/refresh"`. */
|