tempest-react-sdk 0.76.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/create-tempest-app.e2e.test.mjs +112 -0
- package/bin/create-tempest-app.mjs +69 -28
- package/bin/lib/component/generate.mjs +191 -0
- package/bin/lib/component/generate.test.mjs +336 -0
- package/bin/lib/openapi/escape.mjs +210 -0
- package/bin/lib/openapi/generate.hostile.test.mjs +592 -0
- package/bin/lib/openapi/generate.mjs +93 -17
- package/bin/lib/openapi/schema-to-zod.mjs +41 -4
- package/bin/tempest.mjs +184 -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 +127 -55
- package/dist/auth/create-tempest-auth.js.map +1 -1
- package/dist/auth/refresh-queue.cjs +1 -1
- package/dist/auth/refresh-queue.cjs.map +1 -1
- package/dist/auth/refresh-queue.js +13 -6
- package/dist/auth/refresh-queue.js.map +1 -1
- package/dist/br/pix.cjs +1 -1
- package/dist/br/pix.cjs.map +1 -1
- package/dist/br/pix.js +72 -62
- package/dist/br/pix.js.map +1 -1
- package/dist/br.d.ts +12 -4
- package/dist/components/Chat/ChatAttachments.cjs +1 -1
- package/dist/components/Chat/ChatAttachments.cjs.map +1 -1
- package/dist/components/Chat/ChatAttachments.js +46 -38
- package/dist/components/Chat/ChatAttachments.js.map +1 -1
- package/dist/components/Markdown/markdown-parse.cjs +7 -5
- package/dist/components/Markdown/markdown-parse.cjs.map +1 -1
- package/dist/components/Markdown/markdown-parse.js +151 -87
- package/dist/components/Markdown/markdown-parse.js.map +1 -1
- package/dist/components/Toast/Toast.module.cjs +1 -1
- package/dist/components/Toast/Toast.module.cjs.map +1 -1
- package/dist/components/Toast/Toast.module.js +7 -3
- package/dist/components/Toast/Toast.module.js.map +1 -1
- package/dist/components/Toast/ToastProvider.cjs +1 -1
- package/dist/components/Toast/ToastProvider.cjs.map +1 -1
- package/dist/components/Toast/ToastProvider.js +77 -51
- package/dist/components/Toast/ToastProvider.js.map +1 -1
- package/dist/data/create-data-provider.cjs +1 -1
- package/dist/data/create-data-provider.cjs.map +1 -1
- package/dist/data/create-data-provider.js +32 -21
- package/dist/data/create-data-provider.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 +81 -73
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/errors.cjs +1 -1
- package/dist/http/errors.cjs.map +1 -1
- package/dist/http/errors.js +39 -35
- package/dist/http/errors.js.map +1 -1
- package/dist/oauth/callback.cjs +2 -0
- package/dist/oauth/callback.cjs.map +1 -0
- package/dist/oauth/callback.js +42 -0
- package/dist/oauth/callback.js.map +1 -0
- package/dist/oauth/use-oauth-callback.cjs +1 -1
- package/dist/oauth/use-oauth-callback.cjs.map +1 -1
- package/dist/oauth/use-oauth-callback.js +13 -20
- package/dist/oauth/use-oauth-callback.js.map +1 -1
- package/dist/push/use-push-subscription.cjs +1 -1
- package/dist/push/use-push-subscription.cjs.map +1 -1
- package/dist/push/use-push-subscription.js +42 -42
- package/dist/push/use-push-subscription.js.map +1 -1
- package/dist/push/web-push-client.cjs +1 -1
- package/dist/push/web-push-client.cjs.map +1 -1
- package/dist/push/web-push-client.js +23 -3
- package/dist/push/web-push-client.js.map +1 -1
- package/dist/query/offline-persistence.cjs +1 -1
- package/dist/query/offline-persistence.cjs.map +1 -1
- package/dist/query/offline-persistence.js +68 -23
- package/dist/query/offline-persistence.js.map +1 -1
- package/dist/styles/component/Toast.css +6 -1
- package/dist/styles/feedback.css +6 -1
- package/dist/styles.css +1 -1
- package/dist/sw/background-sync.cjs +1 -1
- package/dist/sw/background-sync.cjs.map +1 -1
- package/dist/sw/background-sync.js +271 -60
- package/dist/sw/background-sync.js.map +1 -1
- package/dist/sw/cache-inspect.cjs.map +1 -1
- package/dist/sw/cache-inspect.js.map +1 -1
- package/dist/sw/cache.cjs +1 -1
- package/dist/sw/cache.cjs.map +1 -1
- package/dist/sw/cache.js +91 -64
- package/dist/sw/cache.js.map +1 -1
- package/dist/sw/credential-headers.cjs +2 -0
- package/dist/sw/credential-headers.cjs.map +1 -0
- package/dist/sw/credential-headers.js +17 -0
- package/dist/sw/credential-headers.js.map +1 -0
- package/dist/sw/session-data.cjs +2 -0
- package/dist/sw/session-data.cjs.map +1 -0
- package/dist/sw/session-data.js +17 -0
- package/dist/sw/session-data.js.map +1 -0
- package/dist/sw.cjs +1 -1
- package/dist/sw.d.ts +271 -23
- package/dist/sw.js +7 -5
- package/dist/telemetry/app-error-owner.cjs +2 -0
- package/dist/telemetry/app-error-owner.cjs.map +1 -0
- package/dist/telemetry/app-error-owner.js +18 -0
- package/dist/telemetry/app-error-owner.js.map +1 -0
- package/dist/telemetry/app-error-queue.cjs +1 -1
- package/dist/telemetry/app-error-queue.cjs.map +1 -1
- package/dist/telemetry/app-error-queue.js +19 -14
- package/dist/telemetry/app-error-queue.js.map +1 -1
- package/dist/telemetry/app-error-reporter.cjs +1 -1
- package/dist/telemetry/app-error-reporter.cjs.map +1 -1
- package/dist/telemetry/app-error-reporter.js +75 -34
- package/dist/telemetry/app-error-reporter.js.map +1 -1
- package/dist/telemetry/app-error-transport.cjs +1 -1
- package/dist/telemetry/app-error-transport.cjs.map +1 -1
- package/dist/telemetry/app-error-transport.js +16 -3
- package/dist/telemetry/app-error-transport.js.map +1 -1
- package/dist/tempest-react-sdk.cjs +1 -1
- package/dist/tempest-react-sdk.d.ts +979 -62
- package/dist/tempest-react-sdk.js +160 -156
- package/dist/utils/csv.cjs +3 -3
- package/dist/utils/csv.cjs.map +1 -1
- package/dist/utils/csv.js +16 -13
- package/dist/utils/csv.js.map +1 -1
- package/dist/utils/safe-url.cjs +2 -0
- package/dist/utils/safe-url.cjs.map +1 -0
- package/dist/utils/safe-url.js +39 -0
- package/dist/utils/safe-url.js.map +1 -0
- package/dist/vite/tempest-csp.cjs +2 -2
- package/dist/vite/tempest-csp.cjs.map +1 -1
- package/dist/vite/tempest-csp.js +118 -63
- package/dist/vite/tempest-csp.js.map +1 -1
- package/dist/vite.d.ts +21 -5
- package/dist/webrtc/peer-link.cjs +1 -1
- package/dist/webrtc/peer-link.cjs.map +1 -1
- package/dist/webrtc/peer-link.js +2 -10
- package/dist/webrtc/peer-link.js.map +1 -1
- package/dist/webrtc/peer-mesh.cjs +1 -1
- package/dist/webrtc/peer-mesh.cjs.map +1 -1
- package/dist/webrtc/peer-mesh.js +110 -72
- package/dist/webrtc/peer-mesh.js.map +1 -1
- package/package.json +1 -1
- package/template-pwa/src/pwa.tsx +22 -0
- package/template-pwa/src/sw.ts +27 -14
- package/dist/components/Markdown/markdown-url.cjs +0 -2
- package/dist/components/Markdown/markdown-url.cjs.map +0 -1
- package/dist/components/Markdown/markdown-url.js +0 -28
- package/dist/components/Markdown/markdown-url.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offline-persistence.js","names":[],"sources":["../../src/query/offline-persistence.ts"],"sourcesContent":["import { dehydrate, hydrate, type QueryClient } from \"@tanstack/react-query\";\nimport { createOfflineStore } from \"../offline/create-offline-store\";\n\n/** Options for {@link persistQueryClientOffline}. */\nexport interface OfflineQueryPersistenceOptions {\n /** The `QueryClient` to snapshot and restore. */\n queryClient: QueryClient;\n /** IndexedDB database name for the snapshot. Default `\"TempestQueryCache\"`. */\n databaseName?: string;\n /** Row key under which the snapshot is stored. Default `\"tanstack-query\"`. */\n key?: string;\n /**\n * Minimum gap between snapshot writes, in ms — cache churn is coalesced into\n * one trailing write per window. Default `1000`.\n */\n throttleMs?: number;\n}\n\n/** Handle returned by {@link persistQueryClientOffline}. */\nexport interface OfflineQueryPersistence {\n /**\n * Load the persisted snapshot into the `QueryClient`. Call once on boot,\n * before rendering queries, so cached data is available offline.\n */\n restore: () => Promise<void>;\n /** Write the current cache snapshot immediately (bypassing the throttle). */\n flush: () => Promise<void>;\n /** Stop persisting and drop the pending write. */\n unsubscribe: () => void;\n /** Delete the persisted snapshot (e.g. on logout). */\n clear: () => Promise<void>;\n}\n\ninterface Snapshot {\n id: string;\n state: ReturnType<typeof dehydrate>;\n}\n\n/**\n * Persist a TanStack `QueryClient` cache to IndexedDB (via\n * {@link createOfflineStore}) and restore it on boot — so a reload or a cold\n * offline start shows the last-known data instead of empty screens.\n *\n * Self-contained: uses `dehydrate`/`hydrate` from `@tanstack/react-query`\n * directly, so no `@tanstack/react-query-persist-client` dependency is needed.\n * Writes are throttled and subscribe to the query cache; call `unsubscribe` on\n * teardown. Dexie is a peer dependency of the offline store — install it.\n *\n * @param options - The client plus storage/throttle configuration.\n * @returns A handle with `restore`, `flush`, `clear` and `unsubscribe`.\n *\n * @example\n * const persistence = persistQueryClientOffline({ queryClient });\n * await persistence.restore(); // before first render\n * // ... later, on logout:\n * await persistence.clear();\n */\nexport function persistQueryClientOffline(\n options: OfflineQueryPersistenceOptions,\n): OfflineQueryPersistence {\n const { queryClient, throttleMs = 1000 } = options;\n const key = options.key ?? \"tanstack-query\";\n const store = createOfflineStore<Snapshot, string>({\n databaseName: options.databaseName ?? \"TempestQueryCache\",\n version: 1,\n tableName: \"cache\",\n indexes: \"&id\",\n keyPath: \"id\",\n });\n\n async function save(): Promise<void> {\n await store.put({ id: key, state: dehydrate(queryClient) });\n }\n\n let timer: ReturnType<typeof setTimeout> | null = null;\n function schedule(): void {\n if (timer) return;\n timer = setTimeout(() => {\n timer = null;\n void save();\n }, throttleMs);\n }\n\n const unsubscribeCache = queryClient.getQueryCache().subscribe(schedule);\n\n return {\n async restore() {\n const snapshot = await store.get(key);\n if (snapshot) hydrate(queryClient, snapshot.state);\n },\n async flush() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n await save();\n },\n unsubscribe() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n unsubscribeCache();\n },\n async clear() {\n await store.delete(key);\n },\n };\n}\n"],"mappings":";;;AAyDA,SAAgB,EACZ,GACuB;CACvB,IAAM,EAAE,gBAAa,gBAAa,QAAS,GACrC,IAAM,EAAQ,OAAO,kBACrB,IAAQ,EAAqC;EAC/C,cAAc,EAAQ,gBAAgB;EACtC,SAAS;EACT,WAAW;EACX,SAAS;EACT,SAAS;CACb,CAAC;CAED,eAAe,IAAsB;EACjC,MAAM,EAAM,IAAI;GAAE,IAAI;GAAK,OAAO,EAAU,CAAW;EAAE,CAAC;CAC9D;CAEA,IAAI,IAA8C;CAClD,SAAS,IAAiB;EAClB,AACJ,MAAQ,iBAAiB;GAErB,AADA,IAAQ,MACR,EAAU;EACd,GAAG,CAAU;CACjB;CAEA,IAAM,IAAmB,EAAY,cAAc,CAAC,CAAC,UAAU,CAAQ;CAEvE,OAAO;EACH,MAAM,UAAU;GACZ,IAAM,IAAW,MAAM,EAAM,IAAI,CAAG;GACpC,AAAI,KAAU,EAAQ,GAAa,EAAS,KAAK;EACrD;EACA,MAAM,QAAQ;GAKV,AAJA,AAEI,OADA,aAAa,CAAK,GACV,OAEZ,MAAM,EAAK;EACf;EACA,cAAc;GAKV,AAJA,AAEI,OADA,aAAa,CAAK,GACV,OAEZ,EAAiB;EACrB;EACA,MAAM,QAAQ;GACV,MAAM,EAAM,OAAO,CAAG;EAC1B;CACJ;AACJ"}
|
|
1
|
+
{"version":3,"file":"offline-persistence.js","names":[],"sources":["../../src/query/offline-persistence.ts"],"sourcesContent":["import {\n dehydrate,\n hydrate,\n type QueryCacheNotifyEvent,\n type QueryClient,\n} from \"@tanstack/react-query\";\nimport { createOfflineStore } from \"../offline/create-offline-store\";\nimport { isDevBuild } from \"../utils/dev-mode\";\n\n/**\n * Clears still running, per `databaseName` + `key` slot, across every handle.\n *\n * A handle's `clear()` deletes by key with no ordering against other handles,\n * so a new handle created on login while the previous one is still clearing\n * could `restore()` the previous user's snapshot before the delete lands, or\n * have its first write deleted by it. Every handle's `restore()` and writes\n * wait for the slot's pending clear first; the entry is dropped once settled.\n */\nconst pendingClears = new Map<string, Promise<unknown>>();\n\n/** Options for {@link persistQueryClientOffline}. */\nexport interface OfflineQueryPersistenceOptions {\n /** The `QueryClient` to snapshot and restore. */\n queryClient: QueryClient;\n /** IndexedDB database name for the snapshot. Default `\"TempestQueryCache\"`. */\n databaseName?: string;\n /** Row key under which the snapshot is stored. Default `\"tanstack-query\"`. */\n key?: string;\n /**\n * Minimum gap between snapshot writes, in ms — cache churn is coalesced into\n * one trailing write per window. Default `1000`.\n */\n throttleMs?: number;\n}\n\n/** Options for {@link OfflineQueryPersistence.clear}. */\nexport interface OfflineQueryClearOptions {\n /**\n * Also clear the in-memory `QueryClient` (`queryClient.clear()`) once\n * persistence has stopped and the snapshot is deleted — the one-call logout.\n * Default `false`: the client belongs to the app, which may want to keep\n * public queries (a catalog, feature flags) across sessions and drop only\n * the user-scoped keys with `removeQueries`.\n */\n resetClient?: boolean;\n}\n\n/** Handle returned by {@link persistQueryClientOffline}. */\nexport interface OfflineQueryPersistence {\n /**\n * Load the persisted snapshot into the `QueryClient`. Call once on boot,\n * before rendering queries, so cached data is available offline. A no-op\n * once {@link OfflineQueryPersistence.clear} has been called.\n */\n restore: () => Promise<void>;\n /**\n * Write the current cache snapshot immediately (bypassing the throttle). A\n * no-op once {@link OfflineQueryPersistence.clear} has been called.\n */\n flush: () => Promise<void>;\n /** Stop persisting and drop the pending write. Idempotent. */\n unsubscribe: () => void;\n /**\n * End the persisted session (e.g. on logout) and delete the snapshot.\n *\n * Terminal for this handle: it cancels the pending throttled write, stops\n * persisting cache changes, waits for any write already in flight and only\n * then deletes the row — so neither a write pending in the last throttle\n * window nor cache activity after logout (the next user's first query) can\n * re-persist the previous user's responses. Afterwards `restore`/`flush`\n * are no-ops; to persist a new session, call\n * {@link persistQueryClientOffline} again after login. In a dev build\n * (`isDevBuild()`), the first `restore`, `flush` or added/updated query on\n * an ended handle logs one `console.warn` saying so, because a handle kept\n * at module scope would otherwise stop persisting in silence.\n *\n * Ordered against other handles on the same `databaseName` + `key`: until\n * this clear settles, a new handle's `restore()` and writes wait for it, so\n * a handle created on login without awaiting the logout neither hydrates\n * the previous snapshot nor has its first write deleted.\n *\n * If the delete rejects, `resetClient` still clears the client and the\n * rejection reaches the caller.\n *\n * The in-memory `QueryClient` is cleared only with `resetClient: true`, and\n * then only after persistence has stopped, so the reset itself cannot\n * trigger a write. It is opt-in because the app owns the client and the\n * shape of its logout: it may keep public queries and drop only the\n * user-scoped keys with `removeQueries`. Because persistence is already\n * off, that manual call can come before or after this one.\n *\n * Idempotent and safe to call concurrently; every call deletes the row\n * again.\n *\n * @param options - `resetClient` also clears the in-memory `QueryClient`.\n */\n clear: (options?: OfflineQueryClearOptions) => Promise<void>;\n}\n\ninterface Snapshot {\n id: string;\n state: ReturnType<typeof dehydrate>;\n}\n\n/**\n * Persist a TanStack `QueryClient` cache to IndexedDB (via\n * {@link createOfflineStore}) and restore it on boot — so a reload or a cold\n * offline start shows the last-known data instead of empty screens.\n *\n * Self-contained: uses `dehydrate`/`hydrate` from `@tanstack/react-query`\n * directly, so no `@tanstack/react-query-persist-client` dependency is needed.\n * Writes are throttled and subscribe to the query cache; call `unsubscribe` on\n * teardown. Dexie is a peer dependency of the offline store — install it.\n *\n * @param options - The client plus storage/throttle configuration.\n * @returns A handle with `restore`, `flush`, `clear` and `unsubscribe`.\n *\n * `clear()` is terminal for the handle (see {@link OfflineQueryPersistence.clear}):\n * a logout that only deleted the row used to be undone by the pending write or\n * by the next cache event, restoring the previous user's data on the next boot\n * (#440).\n *\n * @example\n * const persistence = persistQueryClientOffline({ queryClient });\n * await persistence.restore();\n *\n * async function logout(): Promise<void> {\n * await persistence.clear({ resetClient: true });\n * }\n */\nexport function persistQueryClientOffline(\n options: OfflineQueryPersistenceOptions,\n): OfflineQueryPersistence {\n const { queryClient, throttleMs = 1000 } = options;\n const key = options.key ?? \"tanstack-query\";\n const databaseName = options.databaseName ?? \"TempestQueryCache\";\n const store = createOfflineStore<Snapshot, string>({\n databaseName,\n version: 1,\n tableName: \"cache\",\n indexes: \"&id\",\n keyPath: \"id\",\n });\n\n const slot = `${databaseName}\\u0000${key}`;\n let ended = false;\n let warnedEnded = false;\n let timer: ReturnType<typeof setTimeout> | null = null;\n const inFlight = new Set<Promise<unknown>>();\n\n async function afterPendingClear(): Promise<void> {\n const pending = pendingClears.get(slot);\n if (pending) await pending;\n }\n\n function warnEnded(): void {\n if (warnedEnded || !isDevBuild()) return;\n warnedEnded = true;\n console.warn(\n \"[tempest-react-sdk] persistQueryClientOffline: handle ended by clear(); \" +\n \"create a new one after login to keep persisting.\",\n );\n }\n\n async function save(): Promise<void> {\n if (ended) return;\n await afterPendingClear();\n if (ended) return;\n const write = store.put({ id: key, state: dehydrate(queryClient) });\n inFlight.add(write);\n try {\n await write;\n } finally {\n inFlight.delete(write);\n }\n }\n\n function cancelTimer(): void {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function schedule(): void {\n if (timer || ended) return;\n timer = setTimeout(() => {\n timer = null;\n void save();\n }, throttleMs);\n }\n\n function onCacheEvent(event: QueryCacheNotifyEvent): void {\n if (!ended) {\n schedule();\n return;\n }\n if (event.type !== \"added\" && event.type !== \"updated\") return;\n unsubscribeCache();\n warnEnded();\n }\n\n const unsubscribeCache = queryClient.getQueryCache().subscribe(onCacheEvent);\n\n async function endSession(resetClient: boolean): Promise<void> {\n try {\n await Promise.allSettled([...inFlight]);\n await store.delete(key);\n } finally {\n if (resetClient) queryClient.clear();\n }\n }\n\n return {\n async restore() {\n if (ended) {\n warnEnded();\n return;\n }\n await afterPendingClear();\n if (ended) return;\n const snapshot = await store.get(key);\n if (snapshot && !ended) hydrate(queryClient, snapshot.state);\n },\n async flush() {\n if (ended) {\n warnEnded();\n return;\n }\n cancelTimer();\n await save();\n },\n unsubscribe() {\n cancelTimer();\n unsubscribeCache();\n },\n async clear(clearOptions = {}) {\n ended = true;\n cancelTimer();\n const previous = pendingClears.get(slot);\n const run = endSession(clearOptions.resetClient ?? false);\n const settled = Promise.allSettled([previous, run]);\n pendingClears.set(slot, settled);\n void settled.then(() => {\n if (pendingClears.get(slot) === settled) pendingClears.delete(slot);\n });\n await run;\n },\n };\n}\n"],"mappings":";;;;AAkBA,IAAM,oBAAgB,IAAI,IAA8B;AAgHxD,SAAgB,EACZ,GACuB;CACvB,IAAM,EAAE,gBAAa,gBAAa,QAAS,GACrC,IAAM,EAAQ,OAAO,kBACrB,IAAe,EAAQ,gBAAgB,qBACvC,IAAQ,EAAqC;EAC/C;EACA,SAAS;EACT,WAAW;EACX,SAAS;EACT,SAAS;CACb,CAAC,GAEK,IAAO,GAAG,EAAa,QAAQ,KACjC,IAAQ,IACR,IAAc,IACd,IAA8C,MAC5C,oBAAW,IAAI,IAAsB;CAE3C,eAAe,IAAmC;EAC9C,IAAM,IAAU,EAAc,IAAI,CAAI;EACtC,AAAI,KAAS,MAAM;CACvB;CAEA,SAAS,IAAkB;EACnB,MAAgB,EAAW,MAC/B,IAAc,IACd,QAAQ,KACJ,0HAEJ;CACJ;CAEA,eAAe,IAAsB;EAGjC,IAFI,MACJ,MAAM,EAAkB,GACpB,IAAO;EACX,IAAM,IAAQ,EAAM,IAAI;GAAE,IAAI;GAAK,OAAO,EAAU,CAAW;EAAE,CAAC;EAClE,EAAS,IAAI,CAAK;EAClB,IAAI;GACA,MAAM;EACV,UAAU;GACN,EAAS,OAAO,CAAK;EACzB;CACJ;CAEA,SAAS,IAAoB;EACzB,AAEI,OADA,aAAa,CAAK,GACV;CAEhB;CAEA,SAAS,IAAiB;EAClB,KAAS,MACb,IAAQ,iBAAiB;GAErB,AADA,IAAQ,MACR,EAAU;EACd,GAAG,CAAU;CACjB;CAEA,SAAS,EAAa,GAAoC;EACtD,IAAI,CAAC,GAAO;GACR,EAAS;GACT;EACJ;EACI,GAAM,SAAS,WAAW,EAAM,SAAS,eAC7C,EAAiB,GACjB,EAAU;CACd;CAEA,IAAM,IAAmB,EAAY,cAAc,CAAC,CAAC,UAAU,CAAY;CAE3E,eAAe,EAAW,GAAqC;EAC3D,IAAI;GAEA,AADA,MAAM,QAAQ,WAAW,CAAC,GAAG,CAAQ,CAAC,GACtC,MAAM,EAAM,OAAO,CAAG;EAC1B,UAAU;GACN,AAAI,KAAa,EAAY,MAAM;EACvC;CACJ;CAEA,OAAO;EACH,MAAM,UAAU;GACZ,IAAI,GAAO;IACP,EAAU;IACV;GACJ;GAEA,IADA,MAAM,EAAkB,GACpB,GAAO;GACX,IAAM,IAAW,MAAM,EAAM,IAAI,CAAG;GACpC,AAAI,KAAY,CAAC,KAAO,EAAQ,GAAa,EAAS,KAAK;EAC/D;EACA,MAAM,QAAQ;GACV,IAAI,GAAO;IACP,EAAU;IACV;GACJ;GAEA,AADA,EAAY,GACZ,MAAM,EAAK;EACf;EACA,cAAc;GAEV,AADA,EAAY,GACZ,EAAiB;EACrB;EACA,MAAM,MAAM,IAAe,CAAC,GAAG;GAE3B,AADA,IAAQ,IACR,EAAY;GACZ,IAAM,IAAW,EAAc,IAAI,CAAI,GACjC,IAAM,EAAW,EAAa,eAAe,EAAK,GAClD,IAAU,QAAQ,WAAW,CAAC,GAAU,CAAG,CAAC;GAKlD,AAJA,EAAc,IAAI,GAAM,CAAO,GAC/B,EAAa,WAAW;IACpB,AAAI,EAAc,IAAI,CAAI,MAAM,KAAS,EAAc,OAAO,CAAI;GACtE,CAAC,GACD,MAAM;EACV;CACJ;AACJ"}
|
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
.tempest_info_eq5bQ{border-left:4px solid var(--tempest-info-solid)}
|
|
15
15
|
.tempest_title_-H6R2{font-family:var(--tempest-font-sans);font-weight:var(--tempest-weight-semibold);font-size:var(--tempest-text-base);color:var(--tempest-text);line-height:var(--tempest-leading-snug);margin:0}
|
|
16
16
|
.tempest_description_-QwfC{font-size:var(--tempest-text-sm);color:var(--tempest-text-muted);line-height:var(--tempest-leading-snug);margin:2px 0 0}
|
|
17
|
-
.
|
|
17
|
+
.tempest_content_U6Xwq{overflow-wrap:anywhere;flex:auto;min-width:0}
|
|
18
|
+
.tempest_withIcon_2Z8Sz .tempest_content_U6Xwq{align-self:center}
|
|
19
|
+
.tempest_alignCenter_GpnzD .tempest_content_U6Xwq{text-align:center}
|
|
20
|
+
.tempest_leading_L3de1{color:var(--tempest-text);flex:none;justify-content:center;align-self:center;align-items:center;display:flex}
|
|
21
|
+
.tempest_leading_L3de1 img,.tempest_leading_L3de1 svg{max-width:var(--tempest-space-8);max-height:var(--tempest-space-8);object-fit:contain;display:block}
|
|
22
|
+
.tempest_close_i10-s{color:var(--tempest-text-muted);border-radius:var(--tempest-radius-sm);transition:var(--tempest-transition-color);background:0 0;border:none;flex:none;align-items:center;margin-left:auto;padding:4px;display:flex}
|
|
18
23
|
@media (hover:hover) and (pointer:fine){.tempest_close_i10-s:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}}
|
|
19
24
|
.tempest_close_i10-s:focus-visible{outline:var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);outline-offset:var(--tempest-focus-ring-offset)}
|
|
20
25
|
@keyframes tempest_tempest-toast-in_E2d-A{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}
|
package/dist/styles/feedback.css
CHANGED
|
@@ -185,7 +185,12 @@
|
|
|
185
185
|
.tempest_info_eq5bQ{border-left:4px solid var(--tempest-info-solid)}
|
|
186
186
|
.tempest_title_-H6R2{font-family:var(--tempest-font-sans);font-weight:var(--tempest-weight-semibold);font-size:var(--tempest-text-base);color:var(--tempest-text);line-height:var(--tempest-leading-snug);margin:0}
|
|
187
187
|
.tempest_description_-QwfC{font-size:var(--tempest-text-sm);color:var(--tempest-text-muted);line-height:var(--tempest-leading-snug);margin:2px 0 0}
|
|
188
|
-
.
|
|
188
|
+
.tempest_content_U6Xwq{overflow-wrap:anywhere;flex:auto;min-width:0}
|
|
189
|
+
.tempest_withIcon_2Z8Sz .tempest_content_U6Xwq{align-self:center}
|
|
190
|
+
.tempest_alignCenter_GpnzD .tempest_content_U6Xwq{text-align:center}
|
|
191
|
+
.tempest_leading_L3de1{color:var(--tempest-text);flex:none;justify-content:center;align-self:center;align-items:center;display:flex}
|
|
192
|
+
.tempest_leading_L3de1 img,.tempest_leading_L3de1 svg{max-width:var(--tempest-space-8);max-height:var(--tempest-space-8);object-fit:contain;display:block}
|
|
193
|
+
.tempest_close_i10-s{color:var(--tempest-text-muted);border-radius:var(--tempest-radius-sm);transition:var(--tempest-transition-color);background:0 0;border:none;flex:none;align-items:center;margin-left:auto;padding:4px;display:flex}
|
|
189
194
|
@media (hover:hover) and (pointer:fine){.tempest_close_i10-s:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}}
|
|
190
195
|
.tempest_close_i10-s:focus-visible{outline:var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);outline-offset:var(--tempest-focus-ring-offset)}
|
|
191
196
|
@keyframes tempest_tempest-toast-in_E2d-A{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}
|