@cossistant/react 0.0.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/_virtual/rolldown_runtime.js +13 -0
- package/conversation.d.ts +312 -0
- package/conversation.d.ts.map +1 -0
- package/hooks/index.d.ts +23 -0
- package/hooks/index.js +24 -0
- package/hooks/private/store/use-conversations-store.d.ts +13 -0
- package/hooks/private/store/use-conversations-store.d.ts.map +1 -0
- package/hooks/private/store/use-conversations-store.js +34 -0
- package/hooks/private/store/use-conversations-store.js.map +1 -0
- package/hooks/private/store/use-store-selector.d.ts +10 -0
- package/hooks/private/store/use-store-selector.d.ts.map +1 -0
- package/hooks/private/store/use-store-selector.js +17 -0
- package/hooks/private/store/use-store-selector.js.map +1 -0
- package/hooks/private/store/use-website-store.d.ts +18 -0
- package/hooks/private/store/use-website-store.d.ts.map +1 -0
- package/hooks/private/store/use-website-store.js +39 -0
- package/hooks/private/store/use-website-store.js.map +1 -0
- package/hooks/private/use-client-query.d.ts +25 -0
- package/hooks/private/use-client-query.d.ts.map +1 -0
- package/hooks/private/use-client-query.js +122 -0
- package/hooks/private/use-client-query.js.map +1 -0
- package/hooks/private/use-default-messages.d.ts +18 -0
- package/hooks/private/use-default-messages.d.ts.map +1 -0
- package/hooks/private/use-default-messages.js +45 -0
- package/hooks/private/use-default-messages.js.map +1 -0
- package/hooks/private/use-grouped-messages.d.ts +54 -0
- package/hooks/private/use-grouped-messages.d.ts.map +1 -0
- package/hooks/private/use-grouped-messages.js +157 -0
- package/hooks/private/use-grouped-messages.js.map +1 -0
- package/hooks/private/use-multimodal-input.d.ts +40 -0
- package/hooks/private/use-multimodal-input.d.ts.map +1 -0
- package/hooks/private/use-multimodal-input.js +129 -0
- package/hooks/private/use-multimodal-input.js.map +1 -0
- package/hooks/private/use-rest-client.d.ts +17 -0
- package/hooks/private/use-rest-client.d.ts.map +1 -0
- package/hooks/private/use-rest-client.js +41 -0
- package/hooks/private/use-rest-client.js.map +1 -0
- package/hooks/private/use-visitor-typing-reporter.d.ts +19 -0
- package/hooks/private/use-visitor-typing-reporter.d.ts.map +1 -0
- package/hooks/private/use-visitor-typing-reporter.js +140 -0
- package/hooks/private/use-visitor-typing-reporter.js.map +1 -0
- package/hooks/use-composer-refocus.d.ts +20 -0
- package/hooks/use-composer-refocus.d.ts.map +1 -0
- package/hooks/use-composer-refocus.js +32 -0
- package/hooks/use-composer-refocus.js.map +1 -0
- package/hooks/use-conversation-auto-seen.d.ts +54 -0
- package/hooks/use-conversation-auto-seen.d.ts.map +1 -0
- package/hooks/use-conversation-auto-seen.js +106 -0
- package/hooks/use-conversation-auto-seen.js.map +1 -0
- package/hooks/use-conversation-history-page.d.ts +86 -0
- package/hooks/use-conversation-history-page.d.ts.map +1 -0
- package/hooks/use-conversation-history-page.js +97 -0
- package/hooks/use-conversation-history-page.js.map +1 -0
- package/hooks/use-conversation-lifecycle.d.ts +80 -0
- package/hooks/use-conversation-lifecycle.d.ts.map +1 -0
- package/hooks/use-conversation-lifecycle.js +54 -0
- package/hooks/use-conversation-lifecycle.js.map +1 -0
- package/hooks/use-conversation-page.d.ts +82 -0
- package/hooks/use-conversation-page.d.ts.map +1 -0
- package/hooks/use-conversation-page.js +138 -0
- package/hooks/use-conversation-page.js.map +1 -0
- package/hooks/use-conversation-seen.d.ts +17 -0
- package/hooks/use-conversation-seen.d.ts.map +1 -0
- package/hooks/use-conversation-seen.js +58 -0
- package/hooks/use-conversation-seen.js.map +1 -0
- package/hooks/use-conversation-timeline-items.d.ts +21 -0
- package/hooks/use-conversation-timeline-items.d.ts.map +1 -0
- package/hooks/use-conversation-timeline-items.js +87 -0
- package/hooks/use-conversation-timeline-items.js.map +1 -0
- package/hooks/use-conversation-typing.d.ts +13 -0
- package/hooks/use-conversation-typing.d.ts.map +1 -0
- package/hooks/use-conversation-typing.js +34 -0
- package/hooks/use-conversation-typing.js.map +1 -0
- package/hooks/use-conversation.d.ts +18 -0
- package/hooks/use-conversation.d.ts.map +1 -0
- package/hooks/use-conversation.js +44 -0
- package/hooks/use-conversation.js.map +1 -0
- package/hooks/use-conversations.d.ts +20 -0
- package/hooks/use-conversations.d.ts.map +1 -0
- package/hooks/use-conversations.js +68 -0
- package/hooks/use-conversations.js.map +1 -0
- package/hooks/use-create-conversation.d.ts +30 -0
- package/hooks/use-create-conversation.d.ts.map +1 -0
- package/hooks/use-create-conversation.js +67 -0
- package/hooks/use-create-conversation.js.map +1 -0
- package/hooks/use-home-page.d.ts +82 -0
- package/hooks/use-home-page.d.ts.map +1 -0
- package/hooks/use-home-page.js +89 -0
- package/hooks/use-home-page.js.map +1 -0
- package/hooks/use-message-composer.d.ts +88 -0
- package/hooks/use-message-composer.d.ts.map +1 -0
- package/hooks/use-message-composer.js +94 -0
- package/hooks/use-message-composer.js.map +1 -0
- package/hooks/use-realtime-support.d.ts +25 -0
- package/hooks/use-realtime-support.d.ts.map +1 -0
- package/hooks/use-realtime-support.js +29 -0
- package/hooks/use-realtime-support.js.map +1 -0
- package/hooks/use-send-message.d.ts +34 -0
- package/hooks/use-send-message.d.ts.map +1 -0
- package/hooks/use-send-message.js +118 -0
- package/hooks/use-send-message.js.map +1 -0
- package/hooks/use-visitor.d.ts +28 -0
- package/hooks/use-visitor.d.ts.map +1 -0
- package/hooks/use-visitor.js +59 -0
- package/hooks/use-visitor.js.map +1 -0
- package/hooks/use-window-visibility-focus.d.ts +9 -0
- package/hooks/use-window-visibility-focus.d.ts.map +1 -0
- package/hooks/use-window-visibility-focus.js +53 -0
- package/hooks/use-window-visibility-focus.js.map +1 -0
- package/identify-visitor.d.ts +18 -0
- package/identify-visitor.d.ts.map +1 -0
- package/identify-visitor.js +26 -0
- package/identify-visitor.js.map +1 -0
- package/index.d.ts +38 -0
- package/index.js +38 -0
- package/package.json +121 -0
- package/primitives/avatar/avatar.d.ts +31 -0
- package/primitives/avatar/avatar.d.ts.map +1 -0
- package/primitives/avatar/avatar.js +49 -0
- package/primitives/avatar/avatar.js.map +1 -0
- package/primitives/avatar/fallback.d.ts +24 -0
- package/primitives/avatar/fallback.d.ts.map +1 -0
- package/primitives/avatar/fallback.js +57 -0
- package/primitives/avatar/fallback.js.map +1 -0
- package/primitives/avatar/image.d.ts +27 -0
- package/primitives/avatar/image.d.ts.map +1 -0
- package/primitives/avatar/image.js +58 -0
- package/primitives/avatar/image.js.map +1 -0
- package/primitives/avatar/index.d.ts +4 -0
- package/primitives/avatar/index.js +5 -0
- package/primitives/avatar/index.parts.d.ts +4 -0
- package/primitives/avatar/index.parts.js +5 -0
- package/primitives/bubble.d.ts +28 -0
- package/primitives/bubble.d.ts.map +1 -0
- package/primitives/bubble.js +43 -0
- package/primitives/bubble.js.map +1 -0
- package/primitives/button.d.ts +19 -0
- package/primitives/button.d.ts.map +1 -0
- package/primitives/button.js +27 -0
- package/primitives/button.js.map +1 -0
- package/primitives/conversation-timeline.d.ts +86 -0
- package/primitives/conversation-timeline.d.ts.map +1 -0
- package/primitives/conversation-timeline.js +119 -0
- package/primitives/conversation-timeline.js.map +1 -0
- package/primitives/index.d.ts +20 -0
- package/primitives/index.d.ts.map +1 -0
- package/primitives/index.js +45 -0
- package/primitives/index.js.map +1 -0
- package/primitives/index.parts.d.ts +13 -0
- package/primitives/index.parts.js +14 -0
- package/primitives/multimodal-input.d.ts +53 -0
- package/primitives/multimodal-input.d.ts.map +1 -0
- package/primitives/multimodal-input.js +106 -0
- package/primitives/multimodal-input.js.map +1 -0
- package/primitives/timeline-item-group.d.ts +166 -0
- package/primitives/timeline-item-group.d.ts.map +1 -0
- package/primitives/timeline-item-group.js +204 -0
- package/primitives/timeline-item-group.js.map +1 -0
- package/primitives/timeline-item.d.ts +75 -0
- package/primitives/timeline-item.d.ts.map +1 -0
- package/primitives/timeline-item.js +145 -0
- package/primitives/timeline-item.js.map +1 -0
- package/primitives/window.d.ts +31 -0
- package/primitives/window.d.ts.map +1 -0
- package/primitives/window.js +58 -0
- package/primitives/window.js.map +1 -0
- package/provider.d.ts +95 -0
- package/provider.d.ts.map +1 -0
- package/provider.js +124 -0
- package/provider.js.map +1 -0
- package/realtime/event-filter.d.ts +8 -0
- package/realtime/event-filter.d.ts.map +1 -0
- package/realtime/event-filter.js +21 -0
- package/realtime/event-filter.js.map +1 -0
- package/realtime/index.d.ts +6 -0
- package/realtime/index.js +7 -0
- package/realtime/provider.d.ts +57 -0
- package/realtime/provider.d.ts.map +1 -0
- package/realtime/provider.js +351 -0
- package/realtime/provider.js.map +1 -0
- package/realtime/seen-store.d.ts +23 -0
- package/realtime/seen-store.d.ts.map +1 -0
- package/realtime/seen-store.js +34 -0
- package/realtime/seen-store.js.map +1 -0
- package/realtime/support-provider.d.ts +17 -0
- package/realtime/support-provider.d.ts.map +1 -0
- package/realtime/support-provider.js +54 -0
- package/realtime/support-provider.js.map +1 -0
- package/realtime/typing-store.d.ts +30 -0
- package/realtime/typing-store.d.ts.map +1 -0
- package/realtime/typing-store.js +34 -0
- package/realtime/typing-store.js.map +1 -0
- package/realtime/use-realtime.d.ts +29 -0
- package/realtime/use-realtime.d.ts.map +1 -0
- package/realtime/use-realtime.js +47 -0
- package/realtime/use-realtime.js.map +1 -0
- package/realtime-events.d.ts +344 -0
- package/realtime-events.d.ts.map +1 -0
- package/schemas.d.ts +90 -0
- package/schemas.d.ts.map +1 -0
- package/support/components/avatar-stack.d.ts +45 -0
- package/support/components/avatar-stack.d.ts.map +1 -0
- package/support/components/avatar-stack.js +72 -0
- package/support/components/avatar-stack.js.map +1 -0
- package/support/components/avatar.d.ts +15 -0
- package/support/components/avatar.d.ts.map +1 -0
- package/support/components/avatar.js +23 -0
- package/support/components/avatar.js.map +1 -0
- package/support/components/bubble.d.ts +10 -0
- package/support/components/bubble.d.ts.map +1 -0
- package/support/components/bubble.js +95 -0
- package/support/components/bubble.js.map +1 -0
- package/support/components/button.d.ts +20 -0
- package/support/components/button.d.ts.map +1 -0
- package/support/components/button.js +41 -0
- package/support/components/button.js.map +1 -0
- package/support/components/container.d.ts +14 -0
- package/support/components/container.d.ts.map +1 -0
- package/support/components/container.js +115 -0
- package/support/components/container.js.map +1 -0
- package/support/components/conversation-button-link.d.ts +34 -0
- package/support/components/conversation-button-link.d.ts.map +1 -0
- package/support/components/conversation-button-link.js +195 -0
- package/support/components/conversation-button-link.js.map +1 -0
- package/support/components/conversation-event.d.ts +14 -0
- package/support/components/conversation-event.d.ts.map +1 -0
- package/support/components/conversation-event.js +76 -0
- package/support/components/conversation-event.js.map +1 -0
- package/support/components/conversation-timeline.d.ts +17 -0
- package/support/components/conversation-timeline.d.ts.map +1 -0
- package/support/components/conversation-timeline.js +95 -0
- package/support/components/conversation-timeline.js.map +1 -0
- package/support/components/cossistant-branding.d.ts +12 -0
- package/support/components/cossistant-branding.d.ts.map +1 -0
- package/support/components/cossistant-branding.js +22 -0
- package/support/components/cossistant-branding.js.map +1 -0
- package/support/components/header.d.ts +11 -0
- package/support/components/header.d.ts.map +1 -0
- package/support/components/header.js +43 -0
- package/support/components/header.js.map +1 -0
- package/support/components/icons.d.ts +21 -0
- package/support/components/icons.d.ts.map +1 -0
- package/support/components/icons.js +131 -0
- package/support/components/icons.js.map +1 -0
- package/support/components/index.d.ts +11 -0
- package/support/components/index.js +12 -0
- package/support/components/multimodal-input.d.ts +28 -0
- package/support/components/multimodal-input.d.ts.map +1 -0
- package/support/components/multimodal-input.js +138 -0
- package/support/components/multimodal-input.js.map +1 -0
- package/support/components/navigation-tab.d.ts +7 -0
- package/support/components/navigation-tab.d.ts.map +1 -0
- package/support/components/navigation-tab.js +40 -0
- package/support/components/navigation-tab.js.map +1 -0
- package/support/components/support-content.d.ts +22 -0
- package/support/components/support-content.d.ts.map +1 -0
- package/support/components/support-content.js +50 -0
- package/support/components/support-content.js.map +1 -0
- package/support/components/text-effect.d.ts +49 -0
- package/support/components/text-effect.d.ts.map +1 -0
- package/support/components/text-effect.js +221 -0
- package/support/components/text-effect.js.map +1 -0
- package/support/components/timeline-message-group.d.ts +16 -0
- package/support/components/timeline-message-group.d.ts.map +1 -0
- package/support/components/timeline-message-group.js +117 -0
- package/support/components/timeline-message-group.js.map +1 -0
- package/support/components/timeline-message-item.d.ts +17 -0
- package/support/components/timeline-message-item.d.ts.map +1 -0
- package/support/components/timeline-message-item.js +42 -0
- package/support/components/timeline-message-item.js.map +1 -0
- package/support/components/typing-indicator.d.ts +26 -0
- package/support/components/typing-indicator.d.ts.map +1 -0
- package/support/components/typing-indicator.js +37 -0
- package/support/components/typing-indicator.js.map +1 -0
- package/support/components/watermark.d.ts +8 -0
- package/support/components/watermark.d.ts.map +1 -0
- package/support/components/watermark.js +34 -0
- package/support/components/watermark.js.map +1 -0
- package/support/context/config.d.ts +32 -0
- package/support/context/config.d.ts.map +1 -0
- package/support/context/config.js +27 -0
- package/support/context/config.js.map +1 -0
- package/support/context/websocket.d.ts +22 -0
- package/support/context/websocket.d.ts.map +1 -0
- package/support/context/websocket.js +113 -0
- package/support/context/websocket.js.map +1 -0
- package/support/index.d.ts +39 -0
- package/support/index.d.ts.map +1 -0
- package/support/index.js +43 -0
- package/support/index.js.map +1 -0
- package/support/pages/articles.d.ts +7 -0
- package/support/pages/articles.d.ts.map +1 -0
- package/support/pages/articles.js +39 -0
- package/support/pages/articles.js.map +1 -0
- package/support/pages/conversation-history.d.ts +18 -0
- package/support/pages/conversation-history.d.ts.map +1 -0
- package/support/pages/conversation-history.js +120 -0
- package/support/pages/conversation-history.js.map +1 -0
- package/support/pages/conversation.d.ts +32 -0
- package/support/pages/conversation.d.ts.map +1 -0
- package/support/pages/conversation.js +92 -0
- package/support/pages/conversation.js.map +1 -0
- package/support/pages/home.d.ts +20 -0
- package/support/pages/home.d.ts.map +1 -0
- package/support/pages/home.js +184 -0
- package/support/pages/home.js.map +1 -0
- package/support/router.d.ts +14 -0
- package/support/router.d.ts.map +1 -0
- package/support/router.js +31 -0
- package/support/router.js.map +1 -0
- package/support/store/index.d.ts +2 -0
- package/support/store/index.js +3 -0
- package/support/store/support-store.d.ts +42 -0
- package/support/store/support-store.d.ts.map +1 -0
- package/support/store/support-store.js +66 -0
- package/support/store/support-store.js.map +1 -0
- package/support/support-CMoDLQoC.css +408 -0
- package/support/support-CMoDLQoC.css.map +1 -0
- package/support/support.js +1 -0
- package/support/text/index.d.ts +35 -0
- package/support/text/index.d.ts.map +1 -0
- package/support/text/index.js +71 -0
- package/support/text/index.js.map +1 -0
- package/support/text/locales/en.d.ts +7 -0
- package/support/text/locales/en.d.ts.map +1 -0
- package/support/text/locales/en.js +65 -0
- package/support/text/locales/en.js.map +1 -0
- package/support/text/locales/es.d.ts +7 -0
- package/support/text/locales/es.d.ts.map +1 -0
- package/support/text/locales/es.js +64 -0
- package/support/text/locales/es.js.map +1 -0
- package/support/text/locales/fr.d.ts +7 -0
- package/support/text/locales/fr.d.ts.map +1 -0
- package/support/text/locales/fr.js +64 -0
- package/support/text/locales/fr.js.map +1 -0
- package/support/text/locales/keys.d.ts +216 -0
- package/support/text/locales/keys.d.ts.map +1 -0
- package/support/text/locales/keys.js +54 -0
- package/support/text/locales/keys.js.map +1 -0
- package/support/text/runtime.d.ts +17 -0
- package/support/text/runtime.d.ts.map +1 -0
- package/support/text/runtime.js +156 -0
- package/support/text/runtime.js.map +1 -0
- package/support/utils/index.d.ts +7 -0
- package/support/utils/index.d.ts.map +1 -0
- package/support/utils/index.js +11 -0
- package/support/utils/index.js.map +1 -0
- package/support/utils/time.d.ts +5 -0
- package/support/utils/time.d.ts.map +1 -0
- package/support/utils/time.js +28 -0
- package/support/utils/time.js.map +1 -0
- package/support-config.d.ts +20 -0
- package/support-config.d.ts.map +1 -0
- package/support-config.js +25 -0
- package/support-config.js.map +1 -0
- package/support.css +2 -0
- package/timeline-item.d.ts +133 -0
- package/timeline-item.d.ts.map +1 -0
- package/utils/id.d.ts +6 -0
- package/utils/id.d.ts.map +1 -0
- package/utils/id.js +13 -0
- package/utils/id.js.map +1 -0
- package/utils/index.d.ts +3 -0
- package/utils/index.js +4 -0
- package/utils/text.d.ts +5 -0
- package/utils/text.d.ts.map +1 -0
- package/utils/text.js +9 -0
- package/utils/text.js.map +1 -0
- package/utils/use-render-element.d.ts +22 -0
- package/utils/use-render-element.d.ts.map +1 -0
- package/utils/use-render-element.js +35 -0
- package/utils/use-render-element.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","names":["BUILTIN_LOCALES: Record<SupportLocale, SupportLocaleMessages>","TIME_OF_DAY_THRESHOLDS: Array<{\n\ttoken: SupportTimeOfDayToken;\n\thour: number;\n}>","fallback: Record<SupportTimeOfDayToken, string>","labels: Partial<Record<SupportTimeOfDayToken, string>>","token: SupportTimeOfDayToken","chain: string[]","map: NormalizedOverrides"],"sources":["../../../src/support/text/runtime.ts"],"sourcesContent":["/** biome-ignore-all lint/nursery/useMaxParams: ok here */\nimport en from \"./locales/en\";\nimport es from \"./locales/es\";\nimport fr from \"./locales/fr\";\nimport type {\n\tSupportLocale,\n\tSupportLocaleMessages,\n\tSupportTextContentOverrides,\n\tSupportTextContext,\n\tSupportTextKey,\n\tSupportTextUtils,\n\tSupportTextVariables,\n\tSupportTimeOfDayToken,\n} from \"./locales/keys\";\n\nexport type NormalizedOverride<K extends SupportTextKey> = {\n\tanyLocale?: SupportLocaleMessages[K];\n\tbyLocale: Map<string, SupportLocaleMessages[K]>;\n};\n\nexport type NormalizedOverrides = Map<\n\tSupportTextKey,\n\tNormalizedOverride<SupportTextKey>\n>;\n\nexport const BUILTIN_LOCALES: Record<SupportLocale, SupportLocaleMessages> = {\n\ten,\n\tfr,\n\tes,\n};\n\nconst TIME_OF_DAY_THRESHOLDS: Array<{\n\ttoken: SupportTimeOfDayToken;\n\thour: number;\n}> = [\n\t{ token: \"morning\", hour: 9 },\n\t{ token: \"afternoon\", hour: 15 },\n\t{ token: \"evening\", hour: 20 },\n];\n\nfunction buildDayPeriodLabels(\n\tlocale: string\n): Record<SupportTimeOfDayToken, string> {\n\tconst fallback: Record<SupportTimeOfDayToken, string> = {\n\t\tmorning: \"morning\",\n\t\tafternoon: \"afternoon\",\n\t\tevening: \"evening\",\n\t};\n\n\ttry {\n\t\tconst formatter = new Intl.DateTimeFormat(locale, {\n\t\t\thour: \"numeric\",\n\t\t\thour12: true,\n\t\t});\n\n\t\tconst labels: Partial<Record<SupportTimeOfDayToken, string>> = {};\n\t\tfor (const { token, hour } of TIME_OF_DAY_THRESHOLDS) {\n\t\t\tconst parts = formatter.formatToParts(new Date(2020, 0, 1, hour));\n\t\t\tconst part = parts.find((segment) => segment.type === \"dayPeriod\");\n\t\t\tif (part?.value) {\n\t\t\t\tconst normalized = part.value.trim();\n\t\t\t\tif (normalized) {\n\t\t\t\t\tlabels[token] = normalized;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tmorning: labels.morning ?? fallback.morning,\n\t\t\tafternoon: labels.afternoon ?? fallback.afternoon,\n\t\t\tevening: labels.evening ?? fallback.evening,\n\t\t};\n\t} catch {\n\t\treturn fallback;\n\t}\n}\n\nexport function createTextUtils(\n\tlocale: string,\n\tisHydrated = false\n): SupportTextUtils {\n\tconst numberFormatter = new Intl.NumberFormat(locale);\n\tconst pluralRules = new Intl.PluralRules(locale);\n\tconst dayPeriodLabels = buildDayPeriodLabels(locale);\n\n\treturn {\n\t\tformatNumber: (value: number, options?: Intl.NumberFormatOptions) =>\n\t\t\toptions\n\t\t\t\t? new Intl.NumberFormat(locale, options).format(value)\n\t\t\t\t: numberFormatter.format(value),\n\t\tpluralize: (count: number, options: { one: string; other: string }) => {\n\t\t\tconst rule = pluralRules.select(count);\n\t\t\treturn rule === \"one\" ? options.one : options.other;\n\t\t},\n\t\ttitleCase: (value: string) => {\n\t\t\tif (!value) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1);\n\t\t},\n\t\ttimeOfDay: () => {\n\t\t\t// Return a stable default during SSR to avoid hydration mismatches\n\t\t\tif (!isHydrated) {\n\t\t\t\treturn {\n\t\t\t\t\ttoken: \"morning\" as SupportTimeOfDayToken,\n\t\t\t\t\tlabel: dayPeriodLabels.morning,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst hour = new Date().getHours();\n\t\t\tlet token: SupportTimeOfDayToken;\n\t\t\tif (hour < 12) {\n\t\t\t\ttoken = \"morning\";\n\t\t\t} else if (hour < 18) {\n\t\t\t\ttoken = \"afternoon\";\n\t\t\t} else {\n\t\t\t\ttoken = \"evening\";\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttoken,\n\t\t\t\tlabel: dayPeriodLabels[token],\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Normalize a locale string to its base language code\n * Examples:\n * - \"en-US\" -> \"en\"\n * - \"en-GB\" -> \"en\"\n * - \"fr-FR\" -> \"fr\"\n */\nfunction normalizeLocaleString(locale: string): string {\n\tconst [base] = locale.toLowerCase().split(\"-\");\n\treturn base || locale.toLowerCase();\n}\n\nexport function buildLocaleChain(\n\tpreferences: Array<string | null | undefined>\n): string[] {\n\tconst seen = new Set<string>();\n\tconst chain: string[] = [];\n\n\tconst pushLocale = (value: string) => {\n\t\t// Always normalize to base language (en-US -> en, en-GB -> en)\n\t\tconst normalized = normalizeLocaleString(value);\n\t\tif (!seen.has(normalized)) {\n\t\t\tseen.add(normalized);\n\t\t\tchain.push(normalized);\n\t\t}\n\t};\n\n\tfor (const candidate of preferences) {\n\t\tif (!candidate) {\n\t\t\tcontinue;\n\t\t}\n\t\tpushLocale(candidate);\n\t}\n\n\t// Always fallback to English\n\tif (!seen.has(\"en\")) {\n\t\tchain.push(\"en\");\n\t}\n\n\treturn chain;\n}\n\nexport function normalizeOverrides(\n\toverrides?: SupportTextContentOverrides<string>\n): NormalizedOverrides {\n\tconst map: NormalizedOverrides = new Map();\n\n\tif (!overrides) {\n\t\treturn map;\n\t}\n\n\tfor (const key of Object.keys(overrides) as SupportTextKey[]) {\n\t\tconst value = overrides[key];\n\t\tif (!value) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof value === \"string\" || typeof value === \"function\") {\n\t\t\tmap.set(key, {\n\t\t\t\tanyLocale: value as SupportLocaleMessages[typeof key],\n\t\t\t\tbyLocale: new Map(),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst byLocale = new Map<string, SupportLocaleMessages[typeof key]>();\n\t\tfor (const [locale, localizedValue] of Object.entries(value)) {\n\t\t\tif (!localizedValue) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tbyLocale.set(\n\t\t\t\tlocale.toLowerCase(),\n\t\t\t\tlocalizedValue as SupportLocaleMessages[typeof key]\n\t\t\t);\n\t\t}\n\n\t\tmap.set(key, { byLocale });\n\t}\n\n\treturn map;\n}\n\nexport function resolveMessage<K extends SupportTextKey>(\n\tkey: K,\n\tlocaleChain: string[],\n\toverrides: NormalizedOverrides\n): SupportLocaleMessages[K] {\n\tconst override = overrides.get(key) as NormalizedOverride<K> | undefined;\n\tif (override) {\n\t\tfor (const locale of localeChain) {\n\t\t\tconst localized = override.byLocale.get(locale);\n\t\t\tif (localized) {\n\t\t\t\treturn localized;\n\t\t\t}\n\t\t}\n\t\tif (override.anyLocale) {\n\t\t\treturn override.anyLocale;\n\t\t}\n\t}\n\n\tfor (const locale of localeChain) {\n\t\tif (locale in BUILTIN_LOCALES) {\n\t\t\treturn BUILTIN_LOCALES[locale as SupportLocale][key];\n\t\t}\n\t}\n\n\treturn BUILTIN_LOCALES.en[key];\n}\n\nexport function evaluateMessage<K extends SupportTextKey>(\n\tkey: K,\n\tmessage: SupportLocaleMessages[K],\n\tvariables: SupportTextVariables<K> | undefined,\n\tcontext: SupportTextContext,\n\tutils: SupportTextUtils\n): string {\n\tif (typeof message === \"function\") {\n\t\treturn message({\n\t\t\tvariables: variables as never,\n\t\t\tcontext,\n\t\t\tutils,\n\t\t});\n\t}\n\n\treturn message;\n}\n"],"mappings":";;;;;AAyBA,MAAaA,kBAAgE;CAC5E;CACA;CACA;CACA;AAED,MAAMC,yBAGD;CACJ;EAAE,OAAO;EAAW,MAAM;EAAG;CAC7B;EAAE,OAAO;EAAa,MAAM;EAAI;CAChC;EAAE,OAAO;EAAW,MAAM;EAAI;CAC9B;AAED,SAAS,qBACR,QACwC;CACxC,MAAMC,WAAkD;EACvD,SAAS;EACT,WAAW;EACX,SAAS;EACT;AAED,KAAI;EACH,MAAM,YAAY,IAAI,KAAK,eAAe,QAAQ;GACjD,MAAM;GACN,QAAQ;GACR,CAAC;EAEF,MAAMC,SAAyD,EAAE;AACjE,OAAK,MAAM,EAAE,OAAO,UAAU,wBAAwB;GAErD,MAAM,OADQ,UAAU,cAAc,IAAI,KAAK,MAAM,GAAG,GAAG,KAAK,CAAC,CAC9C,MAAM,YAAY,QAAQ,SAAS,YAAY;AAClE,OAAI,MAAM,OAAO;IAChB,MAAM,aAAa,KAAK,MAAM,MAAM;AACpC,QAAI,WACH,QAAO,SAAS;;;AAKnB,SAAO;GACN,SAAS,OAAO,WAAW,SAAS;GACpC,WAAW,OAAO,aAAa,SAAS;GACxC,SAAS,OAAO,WAAW,SAAS;GACpC;SACM;AACP,SAAO;;;AAIT,SAAgB,gBACf,QACA,aAAa,OACM;CACnB,MAAM,kBAAkB,IAAI,KAAK,aAAa,OAAO;CACrD,MAAM,cAAc,IAAI,KAAK,YAAY,OAAO;CAChD,MAAM,kBAAkB,qBAAqB,OAAO;AAEpD,QAAO;EACN,eAAe,OAAe,YAC7B,UACG,IAAI,KAAK,aAAa,QAAQ,QAAQ,CAAC,OAAO,MAAM,GACpD,gBAAgB,OAAO,MAAM;EACjC,YAAY,OAAe,YAA4C;AAEtE,UADa,YAAY,OAAO,MAAM,KACtB,QAAQ,QAAQ,MAAM,QAAQ;;EAE/C,YAAY,UAAkB;AAC7B,OAAI,CAAC,MACJ,QAAO;AAER,UAAO,MAAM,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,MAAM,EAAE;;EAEtD,iBAAiB;AAEhB,OAAI,CAAC,WACJ,QAAO;IACN,OAAO;IACP,OAAO,gBAAgB;IACvB;GAGF,MAAM,wBAAO,IAAI,MAAM,EAAC,UAAU;GAClC,IAAIC;AACJ,OAAI,OAAO,GACV,SAAQ;YACE,OAAO,GACjB,SAAQ;OAER,SAAQ;AAGT,UAAO;IACN;IACA,OAAO,gBAAgB;IACvB;;EAEF;;;;;;;;;AAUF,SAAS,sBAAsB,QAAwB;CACtD,MAAM,CAAC,QAAQ,OAAO,aAAa,CAAC,MAAM,IAAI;AAC9C,QAAO,QAAQ,OAAO,aAAa;;AAGpC,SAAgB,iBACf,aACW;CACX,MAAM,uBAAO,IAAI,KAAa;CAC9B,MAAMC,QAAkB,EAAE;CAE1B,MAAM,cAAc,UAAkB;EAErC,MAAM,aAAa,sBAAsB,MAAM;AAC/C,MAAI,CAAC,KAAK,IAAI,WAAW,EAAE;AAC1B,QAAK,IAAI,WAAW;AACpB,SAAM,KAAK,WAAW;;;AAIxB,MAAK,MAAM,aAAa,aAAa;AACpC,MAAI,CAAC,UACJ;AAED,aAAW,UAAU;;AAItB,KAAI,CAAC,KAAK,IAAI,KAAK,CAClB,OAAM,KAAK,KAAK;AAGjB,QAAO;;AAGR,SAAgB,mBACf,WACsB;CACtB,MAAMC,sBAA2B,IAAI,KAAK;AAE1C,KAAI,CAAC,UACJ,QAAO;AAGR,MAAK,MAAM,OAAO,OAAO,KAAK,UAAU,EAAsB;EAC7D,MAAM,QAAQ,UAAU;AACxB,MAAI,CAAC,MACJ;AAGD,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY;AAC7D,OAAI,IAAI,KAAK;IACZ,WAAW;IACX,0BAAU,IAAI,KAAK;IACnB,CAAC;AACF;;EAGD,MAAM,2BAAW,IAAI,KAAgD;AACrE,OAAK,MAAM,CAAC,QAAQ,mBAAmB,OAAO,QAAQ,MAAM,EAAE;AAC7D,OAAI,CAAC,eACJ;AAED,YAAS,IACR,OAAO,aAAa,EACpB,eACA;;AAGF,MAAI,IAAI,KAAK,EAAE,UAAU,CAAC;;AAG3B,QAAO;;AAGR,SAAgB,eACf,KACA,aACA,WAC2B;CAC3B,MAAM,WAAW,UAAU,IAAI,IAAI;AACnC,KAAI,UAAU;AACb,OAAK,MAAM,UAAU,aAAa;GACjC,MAAM,YAAY,SAAS,SAAS,IAAI,OAAO;AAC/C,OAAI,UACH,QAAO;;AAGT,MAAI,SAAS,UACZ,QAAO,SAAS;;AAIlB,MAAK,MAAM,UAAU,YACpB,KAAI,UAAU,gBACb,QAAO,gBAAgB,QAAyB;AAIlD,QAAO,gBAAgB,GAAG;;AAG3B,SAAgB,gBACf,KACA,SACA,WACA,SACA,OACS;AACT,KAAI,OAAO,YAAY,WACtB,QAAO,QAAQ;EACH;EACX;EACA;EACA,CAAC;AAGH,QAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/support/utils/index.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,EAAA,YAAc"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { clsx } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
|
|
4
|
+
//#region src/support/utils/index.ts
|
|
5
|
+
function cn(...inputs) {
|
|
6
|
+
return twMerge(clsx(inputs));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { cn };
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/support/utils/index.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n"],"mappings":";;;;AAGA,SAAgB,GAAG,GAAG,QAAsB;AAC3C,QAAO,QAAQ,KAAK,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","names":[],"sources":["../../../src/support/utils/time.ts"],"sourcesContent":[],"mappings":";iBAAgB,aAAA,OAAoB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/support/utils/time.ts
|
|
2
|
+
function formatTimeAgo(date) {
|
|
3
|
+
const now = /* @__PURE__ */ new Date();
|
|
4
|
+
const messageDate = typeof date === "string" ? new Date(date) : date;
|
|
5
|
+
const diffMs = now.getTime() - messageDate.getTime();
|
|
6
|
+
const diffMins = Math.floor(diffMs / (1e3 * 60));
|
|
7
|
+
const diffHours = Math.floor(diffMs / (1e3 * 60 * 60));
|
|
8
|
+
const diffDays = Math.floor(diffMs / (1e3 * 60 * 60 * 24));
|
|
9
|
+
if (diffMins < 1) return "now";
|
|
10
|
+
if (diffMins < 60) return `${diffMins}m ago`;
|
|
11
|
+
if (diffHours < 24) return `${diffHours}h ago`;
|
|
12
|
+
if (diffDays === 1) return "Yesterday";
|
|
13
|
+
if (diffDays < 7) return `${diffDays} days ago`;
|
|
14
|
+
if (diffDays < 30) {
|
|
15
|
+
const weeks = Math.floor(diffDays / 7);
|
|
16
|
+
return `${weeks} ${weeks === 1 ? "week" : "weeks"} ago`;
|
|
17
|
+
}
|
|
18
|
+
if (diffDays < 365) {
|
|
19
|
+
const months = Math.floor(diffDays / 30);
|
|
20
|
+
return `${months} ${months === 1 ? "month" : "months"} ago`;
|
|
21
|
+
}
|
|
22
|
+
const years = Math.floor(diffDays / 365);
|
|
23
|
+
return `${years} ${years === 1 ? "year" : "years"} ago`;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { formatTimeAgo };
|
|
28
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","names":[],"sources":["../../../src/support/utils/time.ts"],"sourcesContent":["export function formatTimeAgo(date: Date | string): string {\n\tconst now = new Date();\n\tconst messageDate = typeof date === \"string\" ? new Date(date) : date;\n\tconst diffMs = now.getTime() - messageDate.getTime();\n\tconst diffMins = Math.floor(diffMs / (1000 * 60));\n\tconst diffHours = Math.floor(diffMs / (1000 * 60 * 60));\n\tconst diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));\n\n\tif (diffMins < 1) {\n\t\treturn \"now\";\n\t}\n\tif (diffMins < 60) {\n\t\treturn `${diffMins}m ago`;\n\t}\n\tif (diffHours < 24) {\n\t\treturn `${diffHours}h ago`;\n\t}\n\tif (diffDays === 1) {\n\t\treturn \"Yesterday\";\n\t}\n\tif (diffDays < 7) {\n\t\treturn `${diffDays} days ago`;\n\t}\n\tif (diffDays < 30) {\n\t\tconst weeks = Math.floor(diffDays / 7);\n\t\treturn `${weeks} ${weeks === 1 ? \"week\" : \"weeks\"} ago`;\n\t}\n\tif (diffDays < 365) {\n\t\tconst months = Math.floor(diffDays / 30);\n\t\treturn `${months} ${months === 1 ? \"month\" : \"months\"} ago`;\n\t}\n\tconst years = Math.floor(diffDays / 365);\n\treturn `${years} ${years === 1 ? \"year\" : \"years\"} ago`;\n}\n"],"mappings":";AAAA,SAAgB,cAAc,MAA6B;CAC1D,MAAM,sBAAM,IAAI,MAAM;CACtB,MAAM,cAAc,OAAO,SAAS,WAAW,IAAI,KAAK,KAAK,GAAG;CAChE,MAAM,SAAS,IAAI,SAAS,GAAG,YAAY,SAAS;CACpD,MAAM,WAAW,KAAK,MAAM,UAAU,MAAO,IAAI;CACjD,MAAM,YAAY,KAAK,MAAM,UAAU,MAAO,KAAK,IAAI;CACvD,MAAM,WAAW,KAAK,MAAM,UAAU,MAAO,KAAK,KAAK,IAAI;AAE3D,KAAI,WAAW,EACd,QAAO;AAER,KAAI,WAAW,GACd,QAAO,GAAG,SAAS;AAEpB,KAAI,YAAY,GACf,QAAO,GAAG,UAAU;AAErB,KAAI,aAAa,EAChB,QAAO;AAER,KAAI,WAAW,EACd,QAAO,GAAG,SAAS;AAEpB,KAAI,WAAW,IAAI;EAClB,MAAM,QAAQ,KAAK,MAAM,WAAW,EAAE;AACtC,SAAO,GAAG,MAAM,GAAG,UAAU,IAAI,SAAS,QAAQ;;AAEnD,KAAI,WAAW,KAAK;EACnB,MAAM,SAAS,KAAK,MAAM,WAAW,GAAG;AACxC,SAAO,GAAG,OAAO,GAAG,WAAW,IAAI,UAAU,SAAS;;CAEvD,MAAM,QAAQ,KAAK,MAAM,WAAW,IAAI;AACxC,QAAO,GAAG,MAAM,GAAG,UAAU,IAAI,SAAS,QAAQ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DefaultMessage } from "@cossistant/types";
|
|
2
|
+
|
|
3
|
+
//#region src/support-config.d.ts
|
|
4
|
+
type SupportConfigProps = {
|
|
5
|
+
defaultMessages?: DefaultMessage[];
|
|
6
|
+
quickOptions?: string[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Component exposed by Cossistant allowing you to change the support widget default messages and quick response whenever rendered.
|
|
10
|
+
*/
|
|
11
|
+
declare const SupportConfig: {
|
|
12
|
+
({
|
|
13
|
+
defaultMessages,
|
|
14
|
+
quickOptions
|
|
15
|
+
}: SupportConfigProps): null;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { SupportConfig, SupportConfigProps };
|
|
20
|
+
//# sourceMappingURL=support-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-config.d.ts","names":[],"sources":["../src/support-config.tsx"],"sourcesContent":[],"mappings":";;;KAMY,kBAAA;oBACO;EADP,YAAA,CAAA,EAAA,MAAkB,EAAA;AAQ9B,CAAA;;;;AAGG,cAHU,aAGV,EAAA;EAAkB,CAAA;IAAA,eAAA;IAAA;EAAA,CAAA,EAAlB,kBAAkB,CAAA,EAAA,IAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { useSupport } from "./provider.js";
|
|
5
|
+
import * as React$1 from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/support-config.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Component exposed by Cossistant allowing you to change the support widget default messages and quick response whenever rendered.
|
|
10
|
+
*/
|
|
11
|
+
const SupportConfig = ({ defaultMessages, quickOptions }) => {
|
|
12
|
+
const { setDefaultMessages, setQuickOptions } = useSupport();
|
|
13
|
+
React$1.useEffect(() => {
|
|
14
|
+
if (defaultMessages) setDefaultMessages(defaultMessages);
|
|
15
|
+
}, [defaultMessages, setDefaultMessages]);
|
|
16
|
+
React$1.useEffect(() => {
|
|
17
|
+
if (quickOptions) setQuickOptions(quickOptions);
|
|
18
|
+
}, [quickOptions, setQuickOptions]);
|
|
19
|
+
return null;
|
|
20
|
+
};
|
|
21
|
+
SupportConfig.displayName = "SupportConfig";
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { SupportConfig };
|
|
25
|
+
//# sourceMappingURL=support-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-config.js","names":[],"sources":["../src/support-config.tsx"],"sourcesContent":["\"use client\";\n\nimport type { DefaultMessage } from \"@cossistant/types\";\nimport * as React from \"react\";\nimport { useSupport } from \"./provider\";\n\nexport type SupportConfigProps = {\n\tdefaultMessages?: DefaultMessage[];\n\tquickOptions?: string[];\n};\n\n/**\n * Component exposed by Cossistant allowing you to change the support widget default messages and quick response whenever rendered.\n */\nexport const SupportConfig = ({\n\tdefaultMessages,\n\tquickOptions,\n}: SupportConfigProps) => {\n\tconst { setDefaultMessages, setQuickOptions } = useSupport();\n\n\t// Only update when the arrays actually change content\n\tReact.useEffect(() => {\n\t\tif (defaultMessages) {\n\t\t\tsetDefaultMessages(defaultMessages);\n\t\t}\n\t}, [defaultMessages, setDefaultMessages]);\n\n\tReact.useEffect(() => {\n\t\tif (quickOptions) {\n\t\t\tsetQuickOptions(quickOptions);\n\t\t}\n\t}, [quickOptions, setQuickOptions]);\n\n\treturn null;\n};\n\nSupportConfig.displayName = \"SupportConfig\";\n"],"mappings":";;;;;;;;;;AAcA,MAAa,iBAAiB,EAC7B,iBACA,mBACyB;CACzB,MAAM,EAAE,oBAAoB,oBAAoB,YAAY;AAG5D,SAAM,gBAAgB;AACrB,MAAI,gBACH,oBAAmB,gBAAgB;IAElC,CAAC,iBAAiB,mBAAmB,CAAC;AAEzC,SAAM,gBAAgB;AACrB,MAAI,aACH,iBAAgB,aAAa;IAE5B,CAAC,cAAc,gBAAgB,CAAC;AAEnC,QAAO;;AAGR,cAAc,cAAc"}
|
package/support.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xs:20rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.cossistant{border-color:var(--co-border);scroll-behavior:smooth;color-scheme:normal;--co-font-sans:var(--co-theme-font-sans,var(--font-sans,"Geist","Inter",sans-serif));--co-font-mono:var(--co-theme-font-mono,var(--font-mono,"Geist Mono","Inter Mono",monospace));--co-border-color:var(--co-theme-border-color,var(--color-border,oklch(92.2% 0 0)));--co-radius:var(--co-theme-radius,var(--radius,.625rem));--co-background-base:var(--co-theme-background,var(--background,oklch(99% 0 0)));--co-foreground-base:var(--co-theme-foreground,var(--foreground,oklch(14.5% 0 0)));--co-popover-base:var(--co-theme-popover,var(--popover,var(--co-background-base)));--co-popover-foreground-base:var(--co-theme-popover-foreground,var(--popover-foreground,var(--co-foreground-base)));--co-primary-base:var(--co-theme-primary,var(--primary,oklch(20.5% 0 0)));--co-primary-foreground-base:var(--co-theme-primary-foreground,var(--primary-foreground,oklch(98.5% 0 0)));--co-secondary-base:var(--co-theme-secondary,var(--secondary,oklch(97% 0 0)));--co-secondary-foreground-base:var(--co-theme-secondary-foreground,var(--secondary-foreground,oklch(20.5% 0 0)));--co-border-base:var(--co-theme-border,var(--border,oklch(92.2% 0 0)));--co-input-base:var(--co-theme-input,var(--input,oklch(92.2% 0 0)));--co-ring-base:var(--co-theme-ring,var(--ring,var(--co-primary-base)));--co-accent-base:var(--co-theme-accent,var(--accent,var(--co-primary-base)));--co-accent-foreground-base:var(--co-theme-accent-foreground,var(--accent-foreground,var(--co-primary-foreground-base)));--co-background-50-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-50-mix:color-mix(in oklch,var(--co-background-base)98%,var(--co-foreground-base))}}.cossistant{--co-background-100-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-100-mix:color-mix(in oklch,var(--co-background-base)97%,var(--co-foreground-base))}}.cossistant{--co-background-200-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-200-mix:color-mix(in oklch,var(--co-background-base)96%,var(--co-foreground-base))}}.cossistant{--co-background-300-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-300-mix:color-mix(in oklch,var(--co-background-base)95%,var(--co-foreground-base))}}.cossistant{--co-background-400-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-400-mix:color-mix(in oklch,var(--co-background-base)94%,var(--co-foreground-base))}}.cossistant{--co-background-500-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-500-mix:color-mix(in oklch,var(--co-background-base)93%,var(--co-foreground-base))}}.cossistant{--co-background-600-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-600-mix:color-mix(in oklch,var(--co-background-base)92%,var(--co-foreground-base))}}.cossistant{--co-muted-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-muted-mix:color-mix(in oklch,var(--co-background-base)85%,var(--co-foreground-base))}}.cossistant{--co-muted-foreground-mix:var(--co-foreground-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-muted-foreground-mix:color-mix(in oklch,var(--co-foreground-base)70%,white)}}.cossistant{--co-background:var(--co-background-base);--co-background-50:var(--co-theme-background-50,var(--co-background-50-mix,oklch(92% 0 0)));--co-background-100:var(--co-theme-background-100,var(--co-background-100-mix,oklch(93% 0 0)));--co-background-200:var(--co-theme-background-200,var(--co-background-200-mix,oklch(94% 0 0)));--co-background-300:var(--co-theme-background-300,var(--co-background-300-mix,oklch(95% 0 0)));--co-background-400:var(--co-theme-background-400,var(--co-background-400-mix,oklch(96% 0 0)));--co-background-500:var(--co-theme-background-500,var(--co-background-500-mix,oklch(97% 0 0)));--co-background-600:var(--co-theme-background-600,var(--co-background-600-mix,oklch(98% 0 0)));--co-foreground:var(--co-foreground-base);--co-popover:var(--co-popover-base);--co-popover-foreground:var(--co-popover-foreground-base);--co-primary:var(--co-primary-base);--co-primary-foreground:var(--co-primary-foreground-base);--co-secondary:var(--co-secondary-base);--co-secondary-foreground:var(--co-secondary-foreground-base);--co-muted:var(--co-theme-muted,var(--muted,var(--co-muted-mix,oklch(97% 0 0))));--co-muted-foreground:var(--co-theme-muted-foreground,var(--muted-foreground,var(--co-muted-foreground-mix,oklch(55.6% 0 0))));--co-border:var(--co-border-base);--co-input:var(--co-input-base);--co-ring:var(--co-ring-base);--co-accent:var(--co-accent-base);--co-accent-foreground:var(--co-accent-foreground-base);--co-pink:var(--co-theme-pink,oklch(76.3% .152 354));--co-yellow:var(--co-theme-yellow,oklch(86.4% .144 99));--co-blue:var(--co-theme-blue,oklch(72.5% .132 241));--co-orange:var(--co-theme-orange,oklch(74.5% .166 50));--co-destructive:var(--co-theme-destructive,oklch(57.7% .245 27.325));--co-destructive-foreground:var(--co-theme-destructive-foreground,oklch(57.7% .245 27.325));--co-success:var(--co-theme-success,oklch(71.7% .18 142));--co-success-foreground:var(--co-theme-success-foreground,oklch(26.5% .052 142.7));--co-neutral:var(--co-theme-neutral,oklch(60.8% 0 0));--co-neutral-foreground:var(--co-theme-neutral-foreground,oklch(25.6% 0 0));--co-warning:var(--co-theme-warning,oklch(86.4% .144 99));--co-warning-foreground:var(--co-theme-warning-foreground,oklch(41.4% .071 99))}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-base:var(--co-theme-background,var(--background,oklch(15.5% 0 0)));--co-foreground-base:var(--co-theme-foreground,var(--foreground,oklch(98.5% 0 0)));--co-border-color:var(--co-theme-border-color,var(--color-border,oklch(26.9% 0 0)));--co-popover-base:var(--co-theme-popover,var(--popover,oklch(14.5% 0 0)));--co-popover-foreground-base:var(--co-theme-popover-foreground,var(--popover-foreground,oklch(98.5% 0 0)));--co-primary-base:var(--co-theme-primary,var(--primary,oklch(98.5% 0 0)));--co-primary-foreground-base:var(--co-theme-primary-foreground,var(--primary-foreground,oklch(20.5% 0 0)));--co-secondary-base:var(--co-theme-secondary,var(--secondary,oklch(26.9% 0 0)));--co-secondary-foreground-base:var(--co-theme-secondary-foreground,var(--secondary-foreground,oklch(98.5% 0 0)));--co-border-base:var(--co-theme-border,var(--border,oklch(26.9% 0 0)));--co-input-base:var(--co-theme-input,var(--input,oklch(26.9% 0 0)));--co-ring-base:var(--co-theme-ring,var(--ring,var(--co-primary-base)));--co-accent-base:var(--co-theme-accent,var(--accent,var(--co-primary-base)));--co-accent-foreground-base:var(--co-theme-accent-foreground,var(--accent-foreground,var(--co-primary-foreground-base)));--co-muted-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-muted-mix:color-mix(in oklch,var(--co-background-base)55%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-foreground-mix:var(--co-foreground-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-muted-foreground-mix:color-mix(in oklch,var(--co-foreground-base)65%,white)}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-50-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-50-mix:color-mix(in oklch,var(--co-background-base)98%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-100-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-100-mix:color-mix(in oklch,var(--co-background-base)96%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-200-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-200-mix:color-mix(in oklch,var(--co-background-base)94%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-300-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-300-mix:color-mix(in oklch,var(--co-background-base)92%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-400-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-400-mix:color-mix(in oklch,var(--co-background-base)90%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-500-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-500-mix:color-mix(in oklch,var(--co-background-base)88%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-600-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){:is(.dark .cossistant,.cossistant[data-color-scheme=dark]){--co-background-600-mix:color-mix(in oklch,var(--co-background-base)86%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-pink:var(--co-theme-pink,oklch(84.2% .109 354));--co-yellow:var(--co-theme-yellow,oklch(90.3% .111 99));--co-blue:var(--co-theme-blue,oklch(79.8% .089 241));--co-orange:var(--co-theme-orange,oklch(68.2% .194 50));--co-destructive:var(--co-theme-destructive,oklch(39.6% .141 25.723));--co-destructive-foreground:var(--co-theme-destructive-foreground,oklch(63.7% .237 25.331));--co-success:var(--co-theme-success,oklch(60% .15 142));--co-success-foreground:var(--co-theme-success-foreground,oklch(85% .12 142));--co-neutral:var(--co-theme-neutral,oklch(50% 0 0));--co-neutral-foreground:var(--co-theme-neutral-foreground,oklch(85% 0 0));--co-warning:var(--co-theme-warning,oklch(90.3% .111 99));--co-warning-foreground:var(--co-theme-warning-foreground,oklch(85% .1 99))}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.-right-1{right:calc(var(--spacing)*-1)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-4{left:calc(var(--spacing)*4)}.z-5{z-index:5}.z-10{z-index:10}.z-\[1000\]{z-index:1000}.z-\[9999\]{z-index:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.size-1{width:calc(var(--spacing)*1);height:calc(var(--spacing)*1)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-full{width:100%;height:100%}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-14{height:calc(var(--spacing)*14)}.h-18{height:calc(var(--spacing)*18)}.h-32{height:calc(var(--spacing)*32)}.h-48{height:calc(var(--spacing)*48)}.h-\[50\%\]{height:50%}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-\[1\.25rem\]{min-height:1.25rem}.min-h-full{min-height:100%}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-\[50\%\]{width:50%}.w-full{width:100%}.w-max{width:max-content}.max-w-\[90\%\]{max-width:90%}.max-w-\[150px\]{max-width:150px}.max-w-\[300px\]{max-width:300px}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-4{min-width:calc(var(--spacing)*4)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-co-border,.border-co-border\/50{border-color:var(--co-border)}@supports (color:color-mix(in lab, red, red)){.border-co-border\/50{border-color:color-mix(in oklab,var(--co-border)50%,transparent)}}.border-co-border\/80{border-color:var(--co-border)}@supports (color:color-mix(in lab, red, red)){.border-co-border\/80{border-color:color-mix(in oklab,var(--co-border)80%,transparent)}}.border-transparent{border-color:#0000}.bg-co-background{background-color:var(--co-background)}.bg-co-background-50{background-color:var(--co-background-50)}.bg-co-background-100{background-color:var(--co-background-100)}.bg-co-background-200{background-color:var(--co-background-200)}.bg-co-background-300{background-color:var(--co-background-300)}.bg-co-destructive{background-color:var(--co-destructive)}.bg-co-muted{background-color:var(--co-muted)}.bg-co-neutral\/20{background-color:var(--co-neutral)}@supports (color:color-mix(in lab, red, red)){.bg-co-neutral\/20{background-color:color-mix(in oklab,var(--co-neutral)20%,transparent)}}.bg-co-primary{background-color:var(--co-primary)}.bg-co-success\/20{background-color:var(--co-success)}@supports (color:color-mix(in lab, red, red)){.bg-co-success\/20{background-color:color-mix(in oklab,var(--co-success)20%,transparent)}}.bg-co-warning\/20{background-color:var(--co-warning)}@supports (color:color-mix(in lab, red, red)){.bg-co-warning\/20{background-color:color-mix(in oklab,var(--co-warning)20%,transparent)}}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-co-background{--tw-gradient-from:var(--co-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-co-background\/80{--tw-gradient-from:var(--co-background)}@supports (color:color-mix(in lab, red, red)){.from-co-background\/80{--tw-gradient-from:color-mix(in oklab,var(--co-background)80%,transparent)}}.from-co-background\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-co-background\/30{--tw-gradient-via:var(--co-background)}@supports (color:color-mix(in lab, red, red)){.via-co-background\/30{--tw-gradient-via:color-mix(in oklab,var(--co-background)30%,transparent)}}.via-co-background\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-co-background\/70{--tw-gradient-via:var(--co-background)}@supports (color:color-mix(in lab, red, red)){.via-co-background\/70{--tw-gradient-via:color-mix(in oklab,var(--co-background)70%,transparent)}}.via-co-background\/70{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[mask-size\:100\%_100\%\]{-webkit-mask-size:100% 100%;mask-size:100% 100%}.\[mask-repeat\:no-repeat\]{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-18{padding-top:calc(var(--spacing)*18)}.pt-20{padding-top:calc(var(--spacing)*20)}.pr-1{padding-right:calc(var(--spacing)*1)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.font-co-sans{font-family:var(--co-font-sans)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-co-destructive{color:var(--co-destructive)}.text-co-destructive-foreground{color:var(--co-destructive-foreground)}.text-co-foreground{color:var(--co-foreground)}.text-co-muted-foreground{color:var(--co-muted-foreground)}.text-co-neutral-foreground{color:var(--co-neutral-foreground)}.text-co-primary{color:var(--co-primary)}.text-co-primary-foreground{color:var(--co-primary-foreground)}.text-co-primary\/40{color:var(--co-primary)}@supports (color:color-mix(in lab, red, red)){.text-co-primary\/40{color:color-mix(in oklab,var(--co-primary)40%,transparent)}}.text-co-primary\/60{color:var(--co-primary)}@supports (color:color-mix(in lab, red, red)){.text-co-primary\/60{color:color-mix(in oklab,var(--co-primary)60%,transparent)}}.text-co-primary\/80{color:var(--co-primary)}@supports (color:color-mix(in lab, red, red)){.text-co-primary\/80{color:color-mix(in oklab,var(--co-primary)80%,transparent)}}.text-co-success-foreground{color:var(--co-success-foreground)}.text-co-warning-foreground{color:var(--co-warning-foreground)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-100{opacity:1}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\/btn\:translate-x-0\.5:is(:where(.group\/btn):hover *){--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:text-co-primary:is(:where(.group\/btn):hover *){color:var(--co-primary)}.group-hover\/btn\:opacity-0:is(:where(.group\/btn):hover *){opacity:0}.group-hover\/btn\:opacity-100:is(:where(.group\/btn):hover *){opacity:1}}.first-of-type\:rounded-t:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.last-of-type\:rounded-b:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.last-of-type\:border-b-0:last-of-type{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:cursor-pointer:hover{cursor:pointer}.hover\:bg-co-background-100:hover{background-color:var(--co-background-100)}.hover\:bg-co-background-200:hover{background-color:var(--co-background-200)}.hover\:bg-co-muted:hover{background-color:var(--co-muted)}.hover\:bg-co-primary\/90:hover{background-color:var(--co-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-co-primary\/90:hover{background-color:color-mix(in oklab,var(--co-primary)90%,transparent)}}.hover\:text-co-blue:hover{color:var(--co-blue)}.hover\:text-co-destructive:hover{color:var(--co-destructive)}.hover\:text-co-foreground:hover{color:var(--co-foreground)}.hover\:text-co-primary:hover{color:var(--co-primary)}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.data-\[open\=true\]\:bg-co-primary\/90[data-open=true]{background-color:var(--co-primary)}@supports (color:color-mix(in lab, red, red)){.data-\[open\=true\]\:bg-co-primary\/90[data-open=true]{background-color:color-mix(in oklab,var(--co-primary)90%,transparent)}}@media not all and (min-width:48rem){.max-md\:fixed{position:fixed}.max-md\:relative{position:relative}.max-md\:inset-0{inset:calc(var(--spacing)*0)}.max-md\:h-full{height:100%}.max-md\:w-full{width:100%}}@media (min-width:48rem){.md\:absolute{position:absolute}.md\:relative{position:relative}.md\:top-16{top:calc(var(--spacing)*16)}.md\:right-0{right:calc(var(--spacing)*0)}.md\:bottom-16{bottom:calc(var(--spacing)*16)}.md\:left-0{left:calc(var(--spacing)*0)}.md\:z-\[9900\]{z-index:9900}.md\:z-\[9999\]{z-index:9999}.md\:aspect-\[9\/18\]{aspect-ratio:9/18}.md\:h-full{height:100%}.md\:max-h-\[calc\(100vh-6rem\)\]{max-height:calc(100vh - 6rem)}.md\:w-\[400px\]{width:400px}.md\:w-full{width:100%}.md\:rounded-lg{border-radius:var(--radius-lg)}.md\:rounded-none{border-radius:0}.md\:border{border-style:var(--tw-border-style);border-width:1px}.md\:border-0{border-style:var(--tw-border-style);border-width:0}.md\:border-co-border{border-color:var(--co-border)}.md\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.dark\:bg-co-background-200:is(.dark *){background-color:var(--co-background-200)}.dark\:bg-co-background-300:is(.dark *){background-color:var(--co-background-300)}.dark\:bg-co-background-500:is(.dark *){background-color:var(--co-background-500)}.dark\:bg-co-background-600:is(.dark *){background-color:var(--co-background-600)}@media (hover:hover){.dark\:hover\:bg-co-background-200:is(.dark *):hover{background-color:var(--co-background-200)}.dark\:hover\:bg-co-background-300:is(.dark *):hover{background-color:var(--co-background-300)}.dark\:hover\:bg-co-background-400:is(.dark *):hover{background-color:var(--co-background-400)}}@media (min-width:48rem){.md\:dark\:shadow-co-background-600\/50:is(.dark *){--tw-shadow-color:var(--co-background-600)}@supports (color:color-mix(in lab, red, red)){.md\:dark\:shadow-co-background-600\/50:is(.dark *){--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--co-background-600)50%,transparent)var(--tw-shadow-alpha),transparent)}}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.cossistant .animation-delay-0{animation-delay:0s}.cossistant .animation-delay-200{animation-delay:.2s}.cossistant .animation-delay-400{animation-delay:.4s}.cossistant .dot-bounce-1{animation:1.4s infinite bounce-dot}.cossistant .dot-bounce-2{animation:1.4s .16s infinite bounce-dot}.cossistant .dot-bounce-3{animation:1.4s .32s infinite bounce-dot}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { z } from "@hono/zod-openapi";
|
|
2
|
+
|
|
3
|
+
//#region ../types/src/api/timeline-item.d.ts
|
|
4
|
+
|
|
5
|
+
declare const timelineItemSchema: z.ZodObject<{
|
|
6
|
+
id: z.ZodOptional<z.ZodString>;
|
|
7
|
+
conversationId: z.ZodString;
|
|
8
|
+
organizationId: z.ZodString;
|
|
9
|
+
visibility: z.ZodEnum<{
|
|
10
|
+
public: "public";
|
|
11
|
+
private: "private";
|
|
12
|
+
}>;
|
|
13
|
+
type: z.ZodEnum<{
|
|
14
|
+
message: "message";
|
|
15
|
+
event: "event";
|
|
16
|
+
}>;
|
|
17
|
+
text: z.ZodNullable<z.ZodString>;
|
|
18
|
+
parts: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
19
|
+
type: z.ZodLiteral<"text">;
|
|
20
|
+
text: z.ZodString;
|
|
21
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
22
|
+
type: z.ZodLiteral<"event">;
|
|
23
|
+
eventType: z.ZodEnum<{
|
|
24
|
+
assigned: "assigned";
|
|
25
|
+
unassigned: "unassigned";
|
|
26
|
+
participant_requested: "participant_requested";
|
|
27
|
+
participant_joined: "participant_joined";
|
|
28
|
+
participant_left: "participant_left";
|
|
29
|
+
status_changed: "status_changed";
|
|
30
|
+
priority_changed: "priority_changed";
|
|
31
|
+
tag_added: "tag_added";
|
|
32
|
+
tag_removed: "tag_removed";
|
|
33
|
+
resolved: "resolved";
|
|
34
|
+
reopened: "reopened";
|
|
35
|
+
}>;
|
|
36
|
+
actorUserId: z.ZodNullable<z.ZodString>;
|
|
37
|
+
actorAiAgentId: z.ZodNullable<z.ZodString>;
|
|
38
|
+
targetUserId: z.ZodNullable<z.ZodString>;
|
|
39
|
+
targetAiAgentId: z.ZodNullable<z.ZodString>;
|
|
40
|
+
message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
42
|
+
type: z.ZodLiteral<"image">;
|
|
43
|
+
url: z.ZodString;
|
|
44
|
+
mediaType: z.ZodString;
|
|
45
|
+
fileName: z.ZodOptional<z.ZodString>;
|
|
46
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
type: z.ZodLiteral<"file">;
|
|
51
|
+
url: z.ZodString;
|
|
52
|
+
mediaType: z.ZodString;
|
|
53
|
+
fileName: z.ZodOptional<z.ZodString>;
|
|
54
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
55
|
+
}, z.core.$strip>]>>;
|
|
56
|
+
userId: z.ZodNullable<z.ZodString>;
|
|
57
|
+
aiAgentId: z.ZodNullable<z.ZodString>;
|
|
58
|
+
visitorId: z.ZodNullable<z.ZodString>;
|
|
59
|
+
createdAt: z.ZodString;
|
|
60
|
+
deletedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
type timelineItemSchema = z.infer<typeof timelineItemSchema>;
|
|
63
|
+
type TimelineItem = z.infer<typeof timelineItemSchema>;
|
|
64
|
+
declare const getConversationTimelineItemsRequestSchema: z.ZodObject<{
|
|
65
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
66
|
+
cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
type GetConversationTimelineItemsRequest = z.infer<typeof getConversationTimelineItemsRequestSchema>;
|
|
69
|
+
declare const getConversationTimelineItemsResponseSchema: z.ZodObject<{
|
|
70
|
+
items: z.ZodArray<z.ZodObject<{
|
|
71
|
+
id: z.ZodOptional<z.ZodString>;
|
|
72
|
+
conversationId: z.ZodString;
|
|
73
|
+
organizationId: z.ZodString;
|
|
74
|
+
visibility: z.ZodEnum<{
|
|
75
|
+
public: "public";
|
|
76
|
+
private: "private";
|
|
77
|
+
}>;
|
|
78
|
+
type: z.ZodEnum<{
|
|
79
|
+
message: "message";
|
|
80
|
+
event: "event";
|
|
81
|
+
}>;
|
|
82
|
+
text: z.ZodNullable<z.ZodString>;
|
|
83
|
+
parts: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
84
|
+
type: z.ZodLiteral<"text">;
|
|
85
|
+
text: z.ZodString;
|
|
86
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
87
|
+
type: z.ZodLiteral<"event">;
|
|
88
|
+
eventType: z.ZodEnum<{
|
|
89
|
+
assigned: "assigned";
|
|
90
|
+
unassigned: "unassigned";
|
|
91
|
+
participant_requested: "participant_requested";
|
|
92
|
+
participant_joined: "participant_joined";
|
|
93
|
+
participant_left: "participant_left";
|
|
94
|
+
status_changed: "status_changed";
|
|
95
|
+
priority_changed: "priority_changed";
|
|
96
|
+
tag_added: "tag_added";
|
|
97
|
+
tag_removed: "tag_removed";
|
|
98
|
+
resolved: "resolved";
|
|
99
|
+
reopened: "reopened";
|
|
100
|
+
}>;
|
|
101
|
+
actorUserId: z.ZodNullable<z.ZodString>;
|
|
102
|
+
actorAiAgentId: z.ZodNullable<z.ZodString>;
|
|
103
|
+
targetUserId: z.ZodNullable<z.ZodString>;
|
|
104
|
+
targetAiAgentId: z.ZodNullable<z.ZodString>;
|
|
105
|
+
message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
106
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
107
|
+
type: z.ZodLiteral<"image">;
|
|
108
|
+
url: z.ZodString;
|
|
109
|
+
mediaType: z.ZodString;
|
|
110
|
+
fileName: z.ZodOptional<z.ZodString>;
|
|
111
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
112
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
113
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
115
|
+
type: z.ZodLiteral<"file">;
|
|
116
|
+
url: z.ZodString;
|
|
117
|
+
mediaType: z.ZodString;
|
|
118
|
+
fileName: z.ZodOptional<z.ZodString>;
|
|
119
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
}, z.core.$strip>]>>;
|
|
121
|
+
userId: z.ZodNullable<z.ZodString>;
|
|
122
|
+
aiAgentId: z.ZodNullable<z.ZodString>;
|
|
123
|
+
visitorId: z.ZodNullable<z.ZodString>;
|
|
124
|
+
createdAt: z.ZodString;
|
|
125
|
+
deletedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
126
|
+
}, z.core.$strip>>;
|
|
127
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
128
|
+
hasNextPage: z.ZodBoolean;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
type GetConversationTimelineItemsResponse = z.infer<typeof getConversationTimelineItemsResponseSchema>;
|
|
131
|
+
//#endregion
|
|
132
|
+
export { GetConversationTimelineItemsRequest, GetConversationTimelineItemsResponse, TimelineItem };
|
|
133
|
+
//# sourceMappingURL=timeline-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-item.d.ts","names":[],"sources":["../../types/src/api/timeline-item.ts"],"sourcesContent":[],"mappings":";;;;AAmLG,cApEU,kBAoEV,EApE4B,CAAA,CAAA,SAoE5B,CAAA;;;;;;;;EAbmD,IAAA,WAAA,CAAA;IAe1C,OAAA,EAAA,SAAA;IAAmC,KAAA,EAAA,OAAA;;MAAG,eAAE,YAAA,CAAA;EAAK,KAAA,YAAA,WAAA,CAAA,SAAA,YAAA,CAAA;IAI5C,IAAA,cAAA,CAAA,MAAA,CAAA;IAeV,IAAA,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA7CS,kBAAA,GAAqB,CAAA,CAAE,aAAa;KAEpC,YAAA,GAAe,CAAA,CAAE,aAAa;cAS7B,2CAAyC,CAAA,CAAA;;;;KAe1C,mCAAA,GAAsC,CAAA,CAAE,aAC5C;cAGK,4CAA0C,CAAA,CAAA;;;;;;;;;;;;;;;MAAA,IAAA,cAAA,CAAA,MAAA,CAAA;MAAA,IAAA,aAAA;IAiB3C,CAAA,eAAA,CAAA,aAAA,CAAA;MAAoC,IAAA,cAAA,CAAA,OAAA,CAAA;MACxC,SAAA,WAAA,CAAA;QAD6C,QAAA,EAAA,UAAA;QAAK,UAAA,EAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA9C,oCAAA,GAAuC,CAAA,CAAE,aAC7C"}
|
package/utils/id.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","names":[],"sources":["../../src/utils/id.ts"],"sourcesContent":[],"mappings":";cAOa;AAAA,cAEA,sBAFgD,EAAA,GAAA,GAAA,MAAA"}
|
package/utils/id.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { customAlphabet } from "nanoid";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/id.ts
|
|
4
|
+
const NANOID_ALPHABET = "123456789ABCDEFGHIJKLMNPQRSTUVWXYZ";
|
|
5
|
+
const NANOID_LENGTH = 16;
|
|
6
|
+
const PENDING_CONVERSATION_ID = "__pending__";
|
|
7
|
+
const generateShortPrimaryId = () => {
|
|
8
|
+
return `CO${customAlphabet(NANOID_ALPHABET, NANOID_LENGTH)()}`;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { PENDING_CONVERSATION_ID, generateShortPrimaryId };
|
|
13
|
+
//# sourceMappingURL=id.js.map
|
package/utils/id.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","names":[],"sources":["../../src/utils/id.ts"],"sourcesContent":["import { customAlphabet } from \"nanoid\";\n\nconst NANOID_ALPHABET = \"123456789ABCDEFGHIJKLMNPQRSTUVWXYZ\";\nconst NANOID_LENGTH = 16;\n\n// Special conversation ID to indicate that no conversation exists yet\n// Used when navigating to conversation page before actually creating the conversation\nexport const PENDING_CONVERSATION_ID = \"__pending__\" as const;\n\nexport const generateShortPrimaryId = (): string => {\n\tconst nanoid = customAlphabet(NANOID_ALPHABET, NANOID_LENGTH);\n\treturn `CO${nanoid()}`; // e.g. \"CO4GKT9QZ2BJKXMVR\"\n};\n"],"mappings":";;;AAEA,MAAM,kBAAkB;AACxB,MAAM,gBAAgB;AAItB,MAAa,0BAA0B;AAEvC,MAAa,+BAAuC;AAEnD,QAAO,KADQ,eAAe,iBAAiB,cAAc,EACzC"}
|
package/utils/index.d.ts
ADDED
package/utils/index.js
ADDED
package/utils/text.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","names":[],"sources":["../../src/utils/text.ts"],"sourcesContent":[],"mappings":";iBAAgB,qBAAA"}
|
package/utils/text.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","names":[],"sources":["../../src/utils/text.ts"],"sourcesContent":["export function capitalizeFirstLetter(text: string | undefined) {\n\tif (!text) {\n\t\treturn \"\";\n\t}\n\n\treturn text.charAt(0).toUpperCase() + text.slice(1);\n}\n"],"mappings":";AAAA,SAAgB,sBAAsB,MAA0B;AAC/D,KAAI,CAAC,KACJ,QAAO;AAGR,QAAO,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import { JSX } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/use-render-element.d.ts
|
|
5
|
+
type IntrinsicTag = keyof JSX.IntrinsicElements;
|
|
6
|
+
type ClassName<State> = string | ((state: State) => string);
|
|
7
|
+
type RenderFn<Props, State> = (props: Props, state: State) => React$1.ReactElement;
|
|
8
|
+
type RenderProps<State, Tag extends IntrinsicTag> = {
|
|
9
|
+
render?: React$1.ReactElement | RenderFn<JSX.IntrinsicElements[Tag], State>;
|
|
10
|
+
className?: ClassName<State>;
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
};
|
|
13
|
+
type RenderParams<State, Tag extends IntrinsicTag> = {
|
|
14
|
+
state?: State;
|
|
15
|
+
ref?: React$1.Ref<any>;
|
|
16
|
+
props?: Partial<JSX.IntrinsicElements[Tag]>;
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
};
|
|
19
|
+
declare function useRenderElement<State extends Record<string, any>, Tag extends IntrinsicTag>(tag: Tag, componentProps: RenderProps<State, Tag>, params?: RenderParams<State, Tag>): React$1.ReactElement | null;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { useRenderElement };
|
|
22
|
+
//# sourceMappingURL=use-render-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-render-element.d.ts","names":[],"sources":["../../src/utils/use-render-element.tsx"],"sourcesContent":[],"mappings":";;;;AAI+B,KAE1B,YAAA,GAAY,MAAS,GAAA,CAAI,iBAAA;AAAiB,KAE1C,SAAA,CAAA,KAAS,CAAA,GAAA,MAA4B,GAAA,CAAK,CAAA,KAAA,EAAL,KAAK,EAAA,GAAA,MAAA,CAAA;AAAA,KAE1C,QAAA,CAAA,KAAQ,EAAA,KAAA,CAAA,GAAA,CAAA,KAAA,EACL,KADK,EAAA,KAAA,EAEL,KAFK,EAAA,GAGR,OAAA,CAAM,YAHE;KAKR,WALQ,CAAA,KAAA,EAAA,YAKuB,YALvB,CAAA,GAAA;QACL,CAAA,EAKE,OAAA,CAAM,YALR,GAKuB,QALvB,CAKgC,GAAA,CAAI,iBALpC,CAKsD,GALtD,CAAA,EAK4D,KAL5D,CAAA;WACA,CAAA,EAKK,SALL,CAKe,KALf,CAAA;SACH,CAAA,EAAA,OAAM;CAAY;AAAA,KAQlB,YANA,CAAW,KAAA,EAAA,YAMqB,YANrB,CAAA,GAAA;EAAA,KAAA,CAAA,EAOP,KAPO;KAAoB,CAAA,EAQ7B,OAAA,CAAM,GARuB,CAAA,GAAA,CAAA;OAC1B,CAAA,EAQD,OARO,CAQC,GAAA,CAAI,iBARL,CAQuB,GARvB,CAAA,CAAA;SAA4B,CAAA,EAAA,OAAA;;AAAwB,iBA2BpD,gBA3BoD,CAAA,cA4BrD,MA5BqD,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,YA6BvD,YA7BuD,CAAA,CAAA,GAAA,EA+B9D,GA/B8D,EAAA,cAAA,EAgCnD,WAhCmD,CAgCvC,KAhCuC,EAgChC,GAhCgC,CAAA,EAAA,MAAA,CAAA,EAiC1D,YAjC0D,CAiC7C,KAjC6C,EAiCtC,GAjCsC,CAAA,CAAA,EAkCjE,OAAA,CAAM,YAlC2D,GAAA,IAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/use-render-element.tsx
|
|
5
|
+
function Slot({ children,...props }) {
|
|
6
|
+
return React$1.cloneElement(children, {
|
|
7
|
+
...props,
|
|
8
|
+
className: [children.props.className, props.className].filter(Boolean).join(" ")
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function useRenderElement(tag, componentProps, params) {
|
|
12
|
+
const { render, className: classNameProp, asChild = false } = componentProps;
|
|
13
|
+
const { state = {}, ref, props = {}, enabled = true } = params || {};
|
|
14
|
+
if (!enabled) return null;
|
|
15
|
+
const computedClassName = typeof classNameProp === "function" ? classNameProp(state) : classNameProp;
|
|
16
|
+
const mergedProps = {
|
|
17
|
+
...props,
|
|
18
|
+
className: [props.className, computedClassName].filter(Boolean).join(" "),
|
|
19
|
+
ref
|
|
20
|
+
};
|
|
21
|
+
if (typeof render === "function") return render(mergedProps, state);
|
|
22
|
+
if (React$1.isValidElement(render)) return React$1.cloneElement(render, {
|
|
23
|
+
...mergedProps,
|
|
24
|
+
ref: render.ref || ref
|
|
25
|
+
});
|
|
26
|
+
if (asChild && React$1.isValidElement(props.children)) return /* @__PURE__ */ jsx(Slot, {
|
|
27
|
+
...mergedProps,
|
|
28
|
+
children: props.children
|
|
29
|
+
});
|
|
30
|
+
return React$1.createElement(tag, mergedProps);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { useRenderElement };
|
|
35
|
+
//# sourceMappingURL=use-render-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-render-element.js","names":["React"],"sources":["../../src/utils/use-render-element.tsx"],"sourcesContent":["/** biome-ignore-all lint/suspicious/noExplicitAny: works well here */\n/** biome-ignore-all lint/nursery/noUnnecessaryConditions: ok */\n\nimport type { JSX } from \"react\";\nimport * as React from \"react\";\n\ntype IntrinsicTag = keyof JSX.IntrinsicElements;\n\ntype ClassName<State> = string | ((state: State) => string);\n\ntype RenderFn<Props, State> = (\n\tprops: Props,\n\tstate: State\n) => React.ReactElement;\n\ntype RenderProps<State, Tag extends IntrinsicTag> = {\n\trender?: React.ReactElement | RenderFn<JSX.IntrinsicElements[Tag], State>;\n\tclassName?: ClassName<State>;\n\tasChild?: boolean;\n};\n\ntype RenderParams<State, Tag extends IntrinsicTag> = {\n\tstate?: State;\n\tref?: React.Ref<any>;\n\tprops?: Partial<JSX.IntrinsicElements[Tag]>;\n\tenabled?: boolean;\n};\n\nfunction Slot({\n\tchildren,\n\t...props\n}: {\n\tchildren: React.ReactElement;\n\t[key: string]: any;\n}) {\n\treturn React.cloneElement(children, {\n\t\t...props,\n\t\tclassName: [(children.props as any).className, props.className]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\" \"),\n\t} as any);\n}\n\nexport function useRenderElement<\n\tState extends Record<string, any>,\n\tTag extends IntrinsicTag,\n>(\n\ttag: Tag,\n\tcomponentProps: RenderProps<State, Tag>,\n\tparams?: RenderParams<State, Tag>\n): React.ReactElement | null {\n\tconst { render, className: classNameProp, asChild = false } = componentProps;\n\n\tconst {\n\t\tstate = {} as State,\n\t\tref,\n\t\tprops = {} as Partial<JSX.IntrinsicElements[Tag]>,\n\t\tenabled = true,\n\t} = params || {};\n\n\tif (!enabled) {\n\t\treturn null;\n\t}\n\n\tconst computedClassName =\n\t\ttypeof classNameProp === \"function\" ? classNameProp(state) : classNameProp;\n\n\tconst mergedProps = {\n\t\t...props,\n\t\tclassName: [props.className, computedClassName].filter(Boolean).join(\" \"),\n\t\tref,\n\t};\n\n\tif (typeof render === \"function\") {\n\t\treturn render(mergedProps as JSX.IntrinsicElements[Tag], state);\n\t}\n\n\tif (React.isValidElement(render)) {\n\t\treturn React.cloneElement(render, {\n\t\t\t...mergedProps,\n\t\t\tref: (render as any).ref || ref,\n\t\t});\n\t}\n\n\tif (asChild && React.isValidElement(props.children)) {\n\t\treturn <Slot {...mergedProps}>{props.children}</Slot>;\n\t}\n\n\treturn React.createElement(tag, mergedProps as any);\n}\n"],"mappings":";;;;AA4BA,SAAS,KAAK,EACb,SACA,GAAG,SAID;AACF,QAAOA,QAAM,aAAa,UAAU;EACnC,GAAG;EACH,WAAW,CAAE,SAAS,MAAc,WAAW,MAAM,UAAU,CAC7D,OAAO,QAAQ,CACf,KAAK,IAAI;EACX,CAAQ;;AAGV,SAAgB,iBAIf,KACA,gBACA,QAC4B;CAC5B,MAAM,EAAE,QAAQ,WAAW,eAAe,UAAU,UAAU;CAE9D,MAAM,EACL,QAAQ,EAAE,EACV,KACA,QAAQ,EAAE,EACV,UAAU,SACP,UAAU,EAAE;AAEhB,KAAI,CAAC,QACJ,QAAO;CAGR,MAAM,oBACL,OAAO,kBAAkB,aAAa,cAAc,MAAM,GAAG;CAE9D,MAAM,cAAc;EACnB,GAAG;EACH,WAAW,CAAC,MAAM,WAAW,kBAAkB,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EACzE;EACA;AAED,KAAI,OAAO,WAAW,WACrB,QAAO,OAAO,aAA2C,MAAM;AAGhE,KAAIA,QAAM,eAAe,OAAO,CAC/B,QAAOA,QAAM,aAAa,QAAQ;EACjC,GAAG;EACH,KAAM,OAAe,OAAO;EAC5B,CAAC;AAGH,KAAI,WAAWA,QAAM,eAAe,MAAM,SAAS,CAClD,QAAO,oBAAC;EAAK,GAAI;YAAc,MAAM;GAAgB;AAGtD,QAAOA,QAAM,cAAc,KAAK,YAAmB"}
|