@bitplanet/deva-sdk 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,171 @@
1
+ # Deva SDK
2
+
3
+ A React SDK for building AI agent interfaces with authentication, channel feeds, and interactive chat components.
4
+
5
+ ## Quick Start
6
+
7
+ ### Installation
8
+
9
+ ```bash
10
+ npm install @bitplanet/deva-sdk
11
+ # or
12
+ pnpm add @bitplanet/deva-sdk
13
+ ```
14
+
15
+ ### Basic Setup
16
+
17
+ 1. **Create a client app** on [deva.me](https://deva.me) and configure redirect/origin URIs
18
+ 2. **Import styles** and wrap your app with `DevaProvider`:
19
+
20
+ ```tsx
21
+ import "@bitplanet/deva-sdk/style.css";
22
+ import { DevaProvider, type Envs } from "@bitplanet/deva-sdk";
23
+
24
+ function App() {
25
+ return (
26
+ <DevaProvider
27
+ clientId={process.env.VITE_DEVA_CLIENT_ID!}
28
+ redirectUri={window.location.origin}
29
+ env={process.env.VITE_DEVA_ENV as Envs}
30
+ >
31
+ {({ user }) => (
32
+ <YourAppContent />
33
+ )}
34
+ </DevaProvider>
35
+ );
36
+ }
37
+ ```
38
+
39
+ 3. **Use the hook** to access authentication state:
40
+
41
+ ```tsx
42
+ import { useDeva } from "deva-sdk";
43
+
44
+ function YourComponent() {
45
+ const { isAuthenticated, user, login, logout, accessToken } = useDeva();
46
+
47
+ if (!isAuthenticated) {
48
+ return <button onClick={login}>Login</button>;
49
+ }
50
+
51
+ return (
52
+ <div>
53
+ <p>Welcome {user?.persona?.display_name}!</p>
54
+ <button onClick={logout}>Logout</button>
55
+ </div>
56
+ );
57
+ }
58
+ ```
59
+
60
+ ### AI Agent Components
61
+
62
+ The SDK provides pre-built components for AI agent interactions:
63
+
64
+ #### Channel Feed
65
+ Display public agent conversations:
66
+
67
+ ```tsx
68
+ import { ChannelFeed } from "@bitplanet/deva-sdk/components";
69
+
70
+ <ChannelFeed handle="eliza" />
71
+ ```
72
+
73
+ #### Intercom Chat
74
+ Interactive chat interface with AI agents:
75
+
76
+ ```tsx
77
+ import { Intercom } from "@bitplanet/deva-sdk/components";
78
+
79
+ <Intercom username="deva_support" />
80
+ ```
81
+
82
+ ### Environment Variables
83
+
84
+ ```env
85
+ VITE_DEVA_CLIENT_ID="your-client-id"
86
+ VITE_DEVA_ENV="development" # or "production"
87
+ ```
88
+
89
+ ### SSR/Dynamic Loading (Optional)
90
+
91
+ For Next.js or SSR environments, use dynamic imports:
92
+
93
+ ```tsx
94
+ import { Suspense } from "react";
95
+ import dynamic from "next/dynamic";
96
+
97
+ const DevaProvider = dynamic(() =>
98
+ import("deva-sdk").then(({ DevaProvider }) => DevaProvider),
99
+ { ssr: false }
100
+ );
101
+
102
+ function App() {
103
+ return (
104
+ <Suspense fallback={<div>Loading...</div>}>
105
+ <DevaProvider {...props}>
106
+ {/* Your app */}
107
+ </DevaProvider>
108
+ </Suspense>
109
+ );
110
+ }
111
+ ```
112
+
113
+ ## API Reference
114
+
115
+ ### DevaProvider Props
116
+ - `clientId: string` - Your client ID from deva.me
117
+ - `redirectUri: string` - OAuth redirect URI
118
+ - `env: "development" | "production"` - Environment
119
+
120
+ ### useDeva Hook Returns
121
+ - `isAuthenticated: boolean` - Authentication status
122
+ - `user: User | null` - Current user data
123
+ - `accessToken: string | null` - JWT access token
124
+ - `login: () => void` - Initiate login flow
125
+ - `logout: () => void` - Clear session
126
+
127
+ ### Components
128
+ - `<ChannelFeed handle={string} />` - Public agent feed
129
+ - `<Intercom username={string} />` - Private agent chat
130
+
131
+ ## Publishing
132
+
133
+ To publish a new version to npm:
134
+
135
+ 1. Create and push a version tag:
136
+ ```bash
137
+ git tag v1.0.0
138
+ git push origin v1.0.0
139
+ ```
140
+
141
+ 2. The GitHub workflow will automatically build and publish to npm
142
+
143
+ Note: Make sure the `NPM_TOKEN` secret is configured in the repository settings.
144
+
145
+ ## Development
146
+
147
+ The sdk functions on Client apps. You'll need to create a client app on deva.me. Make sure you fill in the redirect and origin uris.
148
+
149
+ ### Example app
150
+
151
+ There is a basic example app in example/. This is a plain react app that loads the sdk using pnpm links
152
+
153
+ You'll need to first create a example/.env file. Then add a client id for the app to it
154
+
155
+ ```
156
+ VITE_DEVA_CLIENT_ID="f9dbe5bc-…"
157
+ ```
158
+
159
+ You can create client's on deva.me settings.
160
+
161
+
162
+ To install the dependencies use `pnpm run dev:install`. This will install the packages for both sdk and the example app.
163
+ Then you can start the dev process with:
164
+
165
+ ```
166
+ pnpm run example:link # links the example app to the sdk in the root dir
167
+ pnpm run dev # runs the library builder on watch (required)
168
+ pnpm run dev:example # runs the dev server for the example app
169
+ ```
170
+
171
+ You'll need the content server and deva.me running locally.
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-geist-sans),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 220 10% 20%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 72.2 84.8% 61.4%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9%;--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%;--radius: .5rem}.deva-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.deva-pointer-events-none{pointer-events:none}.deva-pointer-events-auto{pointer-events:auto}.deva-fixed{position:fixed}.deva-absolute{position:absolute}.deva-relative{position:relative}.deva-inset-0{top:0;right:0;bottom:0;left:0}.deva-bottom-0{bottom:0}.deva-bottom-1\.5{bottom:.375rem}.deva-bottom-28{bottom:7rem}.deva-bottom-\[0\.6rem\]{bottom:.6rem}.deva-left-0{left:0}.deva-left-2{left:.5rem}.deva-left-\[36px\]{left:36px}.deva-right-0{right:0}.deva-right-1{right:.25rem}.deva-right-4{right:1rem}.deva-top-0{top:0}.deva-top-1{top:.25rem}.deva-top-4{top:1rem}.deva-z-10{z-index:10}.deva-z-50{z-index:50}.deva-z-\[100\]{z-index:100}.deva-m-3{margin:.75rem}.deva-m-auto{margin:auto}.-deva-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-deva-mx-2{margin-left:-.5rem;margin-right:-.5rem}.deva-mx-auto{margin-left:auto;margin-right:auto}.deva-my-1{margin-top:.25rem;margin-bottom:.25rem}.-deva-mr-10{margin-right:-2.5rem}.deva-mb-2{margin-bottom:.5rem}.deva-mb-3{margin-bottom:.75rem}.deva-mb-4{margin-bottom:1rem}.deva-mb-6{margin-bottom:1.5rem}.deva-ml-0{margin-left:0}.deva-ml-\[5px\]{margin-left:5px}.deva-ml-auto{margin-left:auto}.deva-mr-0{margin-right:0}.deva-mr-1\.5{margin-right:.375rem}.deva-mr-2{margin-right:.5rem}.deva-mr-3{margin-right:.75rem}.deva-mr-4{margin-right:1rem}.deva-mt-1{margin-top:.25rem}.deva-mt-2{margin-top:.5rem}.deva-mt-3{margin-top:.75rem}.deva-mt-4{margin-top:1rem}.deva-mt-6{margin-top:1.5rem}.deva-line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.deva-block{display:block}.deva-inline-block{display:inline-block}.deva-flex{display:flex}.deva-inline-flex{display:inline-flex}.deva-table{display:table}.deva-grid{display:grid}.deva-hidden{display:none}.deva-aspect-square{aspect-ratio:1 / 1}.deva-h-1\/2{height:50%}.deva-h-1\/4{height:25%}.deva-h-10{height:2.5rem}.deva-h-12{height:3rem}.deva-h-2{height:.5rem}.deva-h-2\.5{height:.625rem}.deva-h-20{height:5rem}.deva-h-3\.5{height:.875rem}.deva-h-4{height:1rem}.deva-h-5{height:1.25rem}.deva-h-6{height:1.5rem}.deva-h-7{height:1.75rem}.deva-h-8{height:2rem}.deva-h-9{height:2.25rem}.deva-h-\[1px\]{height:1px}.deva-h-\[200px\]{height:200px}.deva-h-\[50px\]{height:50px}.deva-h-\[90vh\]{height:90vh}.deva-h-auto{height:auto}.deva-h-full{height:100%}.deva-h-px{height:1px}.deva-max-h-\[19rem\]{max-height:19rem}.deva-max-h-\[300px\]{max-height:300px}.deva-max-h-\[530px\]{max-height:530px}.deva-max-h-screen{max-height:100vh}.\!deva-min-h-min{min-height:min-content!important}.deva-min-h-\[20px\]{min-height:20px}.deva-min-h-\[60px\]{min-height:60px}.deva-min-h-dvh{min-height:100dvh}.deva-w-10{width:2.5rem}.deva-w-12{width:3rem}.deva-w-16{width:4rem}.deva-w-2{width:.5rem}.deva-w-2\.5{width:.625rem}.deva-w-20{width:5rem}.deva-w-24{width:6rem}.deva-w-3\.5{width:.875rem}.deva-w-32{width:8rem}.deva-w-4{width:1rem}.deva-w-5{width:1.25rem}.deva-w-6{width:1.5rem}.deva-w-72{width:18rem}.deva-w-8{width:2rem}.deva-w-9{width:2.25rem}.deva-w-\[180px\]{width:180px}.deva-w-\[260px\]{width:260px}.deva-w-\[2px\]{width:2px}.deva-w-\[50px\]{width:50px}.deva-w-\[70\%\]{width:70%}.deva-w-\[90\%\]{width:90%}.deva-w-\[90vw\]{width:90vw}.deva-w-auto{width:auto}.deva-w-dvw{width:100dvw}.deva-w-fit{width:fit-content}.deva-w-full{width:100%}.deva-min-w-0{min-width:0px}.deva-min-w-\[8rem\]{min-width:8rem}.deva-max-w-2xl{max-width:42rem}.deva-max-w-\[100px\]{max-width:100px}.deva-max-w-\[10rem\]{max-width:10rem}.deva-max-w-\[400px\]{max-width:400px}.deva-max-w-\[600px\]{max-width:600px}.deva-max-w-\[6rem\]{max-width:6rem}.deva-max-w-\[7rem\]{max-width:7rem}.deva-max-w-full{max-width:100%}.deva-max-w-lg{max-width:32rem}.deva-max-w-md{max-width:28rem}.deva-max-w-xl{max-width:36rem}.deva-flex-1{flex:1 1 0%}.deva-flex-initial{flex:0 1 auto}.deva-flex-none{flex:none}.deva-flex-shrink-0,.deva-shrink-0{flex-shrink:0}.deva-flex-grow{flex-grow:1}@keyframes deva-bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.deva-animate-bounce{animation:deva-bounce 1s infinite}@keyframes deva-pulse{50%{opacity:.5}}.deva-animate-pulse{animation:deva-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes deva-spin{to{transform:rotate(360deg)}}.deva-animate-spin{animation:deva-spin 1s linear infinite}.deva-cursor-default{cursor:default}.deva-cursor-help{cursor:help}.deva-cursor-pointer{cursor:pointer}.deva-touch-none{touch-action:none}.deva-select-none{-webkit-user-select:none;user-select:none}.deva-flex-row{flex-direction:row}.deva-flex-col{flex-direction:column}.deva-flex-col-reverse{flex-direction:column-reverse}.deva-flex-wrap{flex-wrap:wrap}.deva-flex-nowrap{flex-wrap:nowrap}.deva-items-start{align-items:flex-start}.deva-items-end{align-items:flex-end}.deva-items-center{align-items:center}.deva-justify-start{justify-content:flex-start}.deva-justify-center{justify-content:center}.deva-justify-between{justify-content:space-between}.deva-gap-1{gap:.25rem}.deva-gap-2{gap:.5rem}.deva-gap-3{gap:.75rem}.deva-gap-4{gap:1rem}.deva-gap-8{gap:2rem}.deva-gap-x-2{column-gap:.5rem}.deva-gap-x-3{column-gap:.75rem}.deva-gap-x-4{column-gap:1rem}.deva-gap-x-8{column-gap:2rem}.deva-gap-y-1{row-gap:.25rem}.deva-gap-y-2{row-gap:.5rem}.deva-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.deva-space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.deva-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.deva-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.deva-self-end{align-self:flex-end}.deva-overflow-hidden{overflow:hidden}.deva-overflow-y-auto{overflow-y:auto}.deva-overflow-x-hidden{overflow-x:hidden}.deva-overflow-y-hidden{overflow-y:hidden}.deva-overflow-x-scroll{overflow-x:scroll}.deva-overflow-y-scroll{overflow-y:scroll}.deva-overflow-ellipsis,.deva-text-ellipsis{text-overflow:ellipsis}.deva-whitespace-nowrap{white-space:nowrap}.deva-whitespace-pre-wrap{white-space:pre-wrap}.deva-rounded-\[20px\]{border-radius:20px}.deva-rounded-\[36px\]{border-radius:36px}.deva-rounded-\[inherit\]{border-radius:inherit}.deva-rounded-full{border-radius:9999px}.deva-rounded-lg{border-radius:var(--radius)}.deva-rounded-md{border-radius:calc(var(--radius) - 2px)}.deva-rounded-sm{border-radius:calc(var(--radius) - 4px)}.deva-rounded-xl{border-radius:.75rem}.deva-rounded-t-\[20px\]{border-top-left-radius:20px;border-top-right-radius:20px}.deva-border{border-width:1px}.deva-border-0{border-width:0px}.deva-border-b{border-bottom-width:1px}.deva-border-l{border-left-width:1px}.deva-border-t{border-top-width:1px}.deva-border-none{border-style:none}.deva-border-\[\#22252A\]{--tw-border-opacity: 1;border-color:rgb(34 37 42 / var(--tw-border-opacity, 1))}.deva-border-\[\#CEF049\]\/20{border-color:#cef04933}.deva-border-\[\#f0b733\]\/20{border-color:#f0b73333}.deva-border-destructive{border-color:hsl(var(--destructive))}.deva-border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.deva-border-input{border-color:hsl(var(--input))}.deva-border-transparent{border-color:transparent}.deva-border-l-transparent{border-left-color:transparent}.deva-border-t-transparent{border-top-color:transparent}.\!deva-bg-\[\#2e46c0\]{--tw-bg-opacity: 1 !important;background-color:rgb(46 70 192 / var(--tw-bg-opacity, 1))!important}.deva-bg-background{background-color:hsl(var(--background))}.deva-bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.deva-bg-black\/80{background-color:#000c}.deva-bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.deva-bg-border{background-color:hsl(var(--border))}.deva-bg-card{background-color:hsl(var(--card))}.deva-bg-catskill-200{--tw-bg-opacity: 1;background-color:rgb(28 31 35 / var(--tw-bg-opacity, 1))}.deva-bg-current{background-color:currentColor}.deva-bg-destructive{background-color:hsl(var(--destructive))}.deva-bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.deva-bg-jewel-500{--tw-bg-opacity: 1;background-color:rgb(202 240 51 / var(--tw-bg-opacity, 1))}.deva-bg-lime-300{--tw-bg-opacity: 1;background-color:rgb(190 242 100 / var(--tw-bg-opacity, 1))}.deva-bg-midnight-800{--tw-bg-opacity: 1;background-color:rgb(35 35 41 / var(--tw-bg-opacity, 1))}.deva-bg-midnight-900{--tw-bg-opacity: 1;background-color:rgb(15 16 18 / var(--tw-bg-opacity, 1))}.deva-bg-muted{background-color:hsl(var(--muted))}.deva-bg-popover{background-color:hsl(var(--popover))}.deva-bg-primary{background-color:hsl(var(--primary))}.deva-bg-primary\/40{background-color:hsl(var(--primary) / .4)}.deva-bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.deva-bg-sea-700{--tw-bg-opacity: 1;background-color:rgb(56 88 251 / var(--tw-bg-opacity, 1))}.deva-bg-secondary{background-color:hsl(var(--secondary))}.deva-bg-transparent{background-color:transparent}.deva-bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.deva-to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.deva-fill-current{fill:currentColor}.deva-p-0{padding:0}.deva-p-1{padding:.25rem}.deva-p-2{padding:.5rem}.deva-p-4{padding:1rem}.deva-p-6{padding:1.5rem}.deva-p-8{padding:2rem}.deva-p-\[1px\]{padding:1px}.deva-px-1{padding-left:.25rem;padding-right:.25rem}.deva-px-2{padding-left:.5rem;padding-right:.5rem}.deva-px-2\.5{padding-left:.625rem;padding-right:.625rem}.deva-px-3{padding-left:.75rem;padding-right:.75rem}.deva-px-4{padding-left:1rem;padding-right:1rem}.deva-px-5{padding-left:1.25rem;padding-right:1.25rem}.deva-px-6{padding-left:1.5rem;padding-right:1.5rem}.deva-px-8{padding-left:2rem;padding-right:2rem}.deva-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.deva-py-1{padding-top:.25rem;padding-bottom:.25rem}.deva-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.deva-py-2{padding-top:.5rem;padding-bottom:.5rem}.deva-py-3{padding-top:.75rem;padding-bottom:.75rem}.deva-py-4{padding-top:1rem;padding-bottom:1rem}.deva-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.deva-py-\[10px\]{padding-top:10px;padding-bottom:10px}.deva-py-\[7px\]{padding-top:7px;padding-bottom:7px}.deva-pb-0{padding-bottom:0}.deva-pb-2{padding-bottom:.5rem}.deva-pl-2{padding-left:.5rem}.deva-pl-3{padding-left:.75rem}.deva-pl-8{padding-left:2rem}.deva-pr-1{padding-right:.25rem}.deva-pr-12{padding-right:3rem}.deva-pr-2{padding-right:.5rem}.deva-pr-6{padding-right:1.5rem}.deva-pt-0{padding-top:0}.deva-pt-2{padding-top:.5rem}.deva-pt-6{padding-top:1.5rem}.deva-pt-\[2px\]{padding-top:2px}.deva-text-center{text-align:center}.deva-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.deva-text-2xl{font-size:1.5rem;line-height:2rem}.deva-text-3xl{font-size:1.875rem;line-height:2.25rem}.deva-text-\[14px\]{font-size:14px}.deva-text-\[15px\]{font-size:15px}.deva-text-base{font-size:1rem;line-height:1.5rem}.deva-text-lg{font-size:1.125rem;line-height:1.75rem}.deva-text-sm{font-size:.875rem;line-height:1.25rem}.deva-text-xl{font-size:1.25rem;line-height:1.75rem}.deva-text-xs{font-size:.75rem;line-height:1rem}.deva-font-bold{font-weight:700}.deva-font-medium{font-weight:500}.deva-font-semibold{font-weight:600}.deva-leading-none{line-height:1}.deva-leading-normal{line-height:1.5}.deva-leading-relaxed{line-height:1.625}.deva-tracking-tight{letter-spacing:-.025em}.deva-tracking-widest{letter-spacing:.1em}.deva-text-\[\#6B7584\]{--tw-text-opacity: 1;color:rgb(107 117 132 / var(--tw-text-opacity, 1))}.deva-text-\[\#707583\]{--tw-text-opacity: 1;color:rgb(112 117 131 / var(--tw-text-opacity, 1))}.deva-text-\[\#CEF049\],.deva-text-\[\#cef049\]{--tw-text-opacity: 1;color:rgb(206 240 73 / var(--tw-text-opacity, 1))}.deva-text-\[\#f0b733\]{--tw-text-opacity: 1;color:rgb(240 183 51 / var(--tw-text-opacity, 1))}.deva-text-accent{color:hsl(var(--accent))}.deva-text-background{color:hsl(var(--background))}.deva-text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.deva-text-card-foreground{color:hsl(var(--card-foreground))}.deva-text-destructive-foreground{color:hsl(var(--destructive-foreground))}.deva-text-foreground{color:hsl(var(--foreground))}.deva-text-foreground\/50{color:hsl(var(--foreground) / .5)}.deva-text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.deva-text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.deva-text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.deva-text-jewel-500{--tw-text-opacity: 1;color:rgb(202 240 51 / var(--tw-text-opacity, 1))}.deva-text-muted-foreground{color:hsl(var(--muted-foreground))}.deva-text-orange-500{--tw-text-opacity: 1;color:rgb(240 183 51 / var(--tw-text-opacity, 1))}.deva-text-popover-foreground{color:hsl(var(--popover-foreground))}.deva-text-primary{color:hsl(var(--primary))}.deva-text-primary-foreground{color:hsl(var(--primary-foreground))}.deva-text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.deva-text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.deva-text-sea-700{--tw-text-opacity: 1;color:rgb(56 88 251 / var(--tw-text-opacity, 1))}.deva-text-secondary-foreground{color:hsl(var(--secondary-foreground))}.deva-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.deva-text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.deva-underline-offset-4{text-underline-offset:4px}.deva-opacity-0{opacity:0}.deva-opacity-20{opacity:.2}.deva-opacity-50{opacity:.5}.deva-opacity-60{opacity:.6}.deva-opacity-70{opacity:.7}.deva-opacity-90{opacity:.9}.deva-shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.deva-shadow-\[0_0_15px_rgba\(0\,0\,0\,0\.10\)\]{--tw-shadow: 0 0 15px rgba(0,0,0,.1);--tw-shadow-colored: 0 0 15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.deva-shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.deva-shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.deva-shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.deva-shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.deva-outline-none{outline:2px solid transparent;outline-offset:2px}.deva-ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.deva-ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.deva-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.deva-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.deva-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.deva-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.deva-duration-100{transition-duration:.1s}.deva-duration-200{transition-duration:.2s}.deva-duration-300{transition-duration:.3s}.deva-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.deva-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.deva-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.deva-fade-in-0{--tw-enter-opacity: 0}.deva-zoom-in-95{--tw-enter-scale: .95}.deva-duration-100{animation-duration:.1s}.deva-duration-200{animation-duration:.2s}.deva-duration-300{animation-duration:.3s}.deva-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.deva-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\[animation-delay\:0\.1s\]{animation-delay:.1s}.\[animation-delay\:0\.3s\]{animation-delay:.3s}.\[animation-delay\:0\.5s\]{animation-delay:.5s}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.remirror-editor-wrapper{padding:0!important}.remirror-suggest-atom{color:#caf033}.remirror-mention-atom{background:none;padding:0;color:#caf033;cursor:pointer;font-size:inherit;font-weight:500}.remirror-theme .ProseMirror:active,.remirror-theme .ProseMirror:focus{box-shadow:none}@media (min-width: 640px){.mention-suggestion-items{width:24.75rem}#mention-suggestion-container{width:25.75rem}}#mention-suggestion-container{background:#151619;border:1px solid #22252a;box-shadow:0 30px 40px #000000b3;border-radius:8px;color:#fff;font-style:normal;font-weight:400;font-size:14px;line-height:20px;padding:.5rem;position:relative;display:flex;flex-direction:column;gap:.5rem}#mention-suggestion-items{background:#151619;color:#fff;font-style:normal;font-weight:400;font-size:14px;line-height:20px;position:relative;display:flex;flex-direction:column;gap:.5rem}.mention-suggestion-item{background:transparent;border:1px solid transparent;border-radius:.4rem;display:block;margin:0;padding:6px;text-align:left;width:100%}.mention-suggestion-item:hover,.mention-suggestion-item.is-selected{background:#1c1f23;border-radius:8px}.ProseMirror{word-break:break-word;max-height:60vh;overflow-y:auto;overflow-x:hidden;width:100%;height:100%;scrollbar-width:thin;scrollbar-color:#2e3238 #2e323800}.ProseMirror p.is-editor-empty:first-child:before{color:#6b7584;content:attr(data-placeholder);float:left;height:0;pointer-events:none;font-size:16px}.ProseMirror:focus{outline:none}.ProseMirror:focus-visible{outline:none}@media (max-width: 640px){.ProseMirror p.is-editor-empty:first-child:before{font-size:16px}}.file\:deva-border-0::file-selector-button{border-width:0px}.file\:deva-bg-transparent::file-selector-button{background-color:transparent}.file\:deva-text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:deva-font-medium::file-selector-button{font-weight:500}.file\:deva-text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:deva-text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:deva-mb-2:last-child{margin-bottom:.5rem}.hover\:deva-bg-accent:hover{background-color:hsl(var(--accent))}.hover\:deva-bg-blue-600\/10:hover{background-color:#2563eb1a}.hover\:deva-bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:deva-bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:deva-bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.hover\:deva-bg-gray-900\/50:hover{background-color:#11182780}.hover\:deva-bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:deva-bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:deva-bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:deva-bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:deva-bg-transparent:hover{background-color:transparent}.hover\:deva-text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:deva-text-foreground:hover{color:hsl(var(--foreground))}.hover\:deva-text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:deva-text-secondary-foreground:hover{color:hsl(var(--secondary-foreground))}.hover\:deva-text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:deva-underline:hover{text-decoration-line:underline}.hover\:deva-opacity-100:hover{opacity:1}.focus\:deva-bg-accent:focus{background-color:hsl(var(--accent))}.focus\:deva-text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:deva-opacity-100:focus{opacity:1}.focus\:deva-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:deva-ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:deva-ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:deva-ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:deva-ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:deva-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:deva-ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:deva-ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.disabled\:deva-pointer-events-none:disabled{pointer-events:none}.disabled\:deva-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:deva-text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.disabled\:deva-opacity-50:disabled{opacity:.5}.deva-group:hover .group-hover\:deva-text-jewel-500{--tw-text-opacity: 1;color:rgb(202 240 51 / var(--tw-text-opacity, 1))}.deva-group:hover .group-hover\:deva-opacity-100{opacity:1}.deva-group.destructive .group-\[\.destructive\]\:deva-border-muted\/40{border-color:hsl(var(--muted) / .4)}.deva-group.destructive .group-\[\.destructive\]\:deva-text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.deva-group.destructive .group-\[\.destructive\]\:hover\:deva-border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.deva-group.destructive .group-\[\.destructive\]\:hover\:deva-bg-destructive:hover{background-color:hsl(var(--destructive))}.deva-group.destructive .group-\[\.destructive\]\:hover\:deva-text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.deva-group.destructive .group-\[\.destructive\]\:hover\:deva-text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.deva-group.destructive .group-\[\.destructive\]\:focus\:deva-ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.deva-group.destructive .group-\[\.destructive\]\:focus\:deva-ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.deva-group.destructive .group-\[\.destructive\]\:focus\:deva-ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.deva-peer:disabled~.peer-disabled\:deva-cursor-not-allowed{cursor:not-allowed}.deva-peer:disabled~.peer-disabled\:deva-opacity-70{opacity:.7}.data-\[disabled\=true\]\:deva-pointer-events-none[data-disabled=true],.data-\[disabled\]\:deva-pointer-events-none[data-disabled]{pointer-events:none}.data-\[swipe\=cancel\]\:deva-translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:deva-translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:deva-translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[selected\=true\]\:deva-bg-accent[data-selected=true],.data-\[state\=open\]\:deva-bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[selected\=true\]\:deva-text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:deva-text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:deva-opacity-50[data-disabled=true],.data-\[disabled\]\:deva-opacity-50[data-disabled]{opacity:.5}.data-\[swipe\=move\]\:deva-transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:deva-animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:deva-animate-out[data-state=closed],.data-\[swipe\=end\]\:deva-animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:deva-fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:deva-fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=open\]\:deva-fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:deva-zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:deva-zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:deva-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:deva-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:deva-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:deva-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:deva-slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=open\]\:deva-slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}@media (min-width: 640px){.sm\:deva-bottom-0{bottom:0}.sm\:deva-right-0{right:0}.sm\:deva-top-auto{top:auto}.sm\:deva-max-w-\[400px\]{max-width:400px}.sm\:deva-flex-row{flex-direction:row}.sm\:deva-flex-col{flex-direction:column}.sm\:deva-justify-end{justify-content:flex-end}.sm\:deva-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:deva-p-6{padding:1.5rem}.sm\:deva-text-left{text-align:left}.data-\[state\=open\]\:sm\:deva-slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:deva-bottom-10{bottom:2.5rem}.md\:deva-bottom-2\.5{bottom:.625rem}.md\:deva-left-0{left:0}.md\:deva-right-10{right:2.5rem}.md\:deva-right-2{right:.5rem}.md\:deva-block{display:block}.md\:deva-hidden{display:none}.md\:deva-w-full{width:100%}.md\:deva-max-w-2xl{max-width:42rem}.md\:deva-max-w-\[15rem\]{max-width:15rem}.md\:deva-max-w-\[16rem\]{max-width:16rem}.md\:deva-max-w-\[420px\]{max-width:420px}.md\:deva-max-w-\[500px\]{max-width:500px}.md\:deva-flex-col{flex-direction:column}.md\:deva-gap-3{gap:.75rem}.md\:deva-px-5{padding-left:1.25rem;padding-right:1.25rem}.md\:deva-py-2{padding-top:.5rem;padding-bottom:.5rem}.md\:deva-pl-4{padding-left:1rem}.md\:deva-text-sm{font-size:.875rem;line-height:1.25rem}.md\:last\:deva-mb-\[18px\]:last-child{margin-bottom:18px}}@media (min-width: 1024px){.lg\:deva-mx-auto{margin-left:auto;margin-right:auto}.lg\:deva-max-w-2xl{max-width:42rem}.lg\:deva-max-w-3xl{max-width:48rem}.lg\:deva-px-0{padding-left:0;padding-right:0}.lg\:deva-pt-6{padding-top:1.5rem}}@media (min-width: 1280px){.xl\:deva-max-w-3xl{max-width:48rem}}.\[\&\+div\]\:deva-text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\>div\>div\]\:deva-overflow-hidden>div>div{overflow:hidden}.\[\&\>svg\]\:deva-size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:deva-shrink-0>svg{flex-shrink:0}.\[\&_\[cmdk-group-heading\]\]\:deva-px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:deva-py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:deva-text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:deva-font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:deva-text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:deva-pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:deva-px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:deva-h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:deva-w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:deva-h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:deva-px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:deva-py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:deva-h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:deva-w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:deva-pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:deva-size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:deva-shrink-0 svg{flex-shrink:0}
@@ -0,0 +1,247 @@
1
+ import { JSX } from 'react';
2
+
3
+ export declare function ChannelFeed({ handle }: ChannelFeedProps): JSX.Element;
4
+
5
+ declare interface ChannelFeedProps {
6
+ handle?: string;
7
+ }
8
+
9
+ export declare const Intercom: ({ username, fetchOnMount, }: {
10
+ username: string;
11
+ fetchOnMount?: boolean;
12
+ }) => JSX.Element | null;
13
+
14
+ export declare function Toaster(): JSX.Element;
15
+
16
+ export { }
17
+
18
+
19
+ declare namespace v3 {
20
+ var DNS: string;
21
+ var URL: string;
22
+ }
23
+
24
+
25
+ declare namespace v5 {
26
+ var DNS: string;
27
+ var URL: string;
28
+ }
29
+
30
+
31
+
32
+ declare global {
33
+ interface Node {
34
+ pmViewDesc?: ViewDesc;
35
+ }
36
+ }
37
+
38
+
39
+
40
+ // Register nodes in content.
41
+ declare module 'hast' {
42
+ interface ElementData {
43
+ /**
44
+ * Custom info relating to the node, if `<code>` in `<pre>`.
45
+ *
46
+ * Defined by `mdast-util-to-hast` (`remark-rehype`).
47
+ */
48
+ meta?: string | null | undefined
49
+ }
50
+
51
+ interface ElementContentMap {
52
+ /**
53
+ * Raw string of HTML embedded into HTML AST.
54
+ */
55
+ raw: Raw
56
+ }
57
+
58
+ interface RootContentMap {
59
+ /**
60
+ * Raw string of HTML embedded into HTML AST.
61
+ */
62
+ raw: Raw
63
+ }
64
+ }
65
+
66
+
67
+
68
+ // Register data on mdast.
69
+ declare module 'mdast' {
70
+ interface Data {
71
+ /**
72
+ * Field supported by `mdast-util-to-hast` to signal that a node should
73
+ * result in something with these children.
74
+ *
75
+ * When this is defined, when a parent is created, these children will
76
+ * be used.
77
+ */
78
+ hChildren?: ElementContent[] | undefined
79
+
80
+ /**
81
+ * Field supported by `mdast-util-to-hast` to signal that a node should
82
+ * result in a particular element, instead of its default behavior.
83
+ *
84
+ * When this is defined, an element with the given tag name is created.
85
+ * For example, when setting `hName` to `'b'`, a `<b>` element is created.
86
+ */
87
+ hName?: string | undefined
88
+
89
+ /**
90
+ * Field supported by `mdast-util-to-hast` to signal that a node should
91
+ * result in an element with these properties.
92
+ *
93
+ * When this is defined, when an element is created, these properties will
94
+ * be used.
95
+ */
96
+ hProperties?: Properties | undefined
97
+ }
98
+ }
99
+
100
+
101
+
102
+ /**
103
+ * Augment types.
104
+ */
105
+ declare module 'micromark-util-types' {
106
+ /**
107
+ * Compile data.
108
+ */
109
+ interface CompileData {
110
+ gfmFootnoteDefinitions?: Record<string, string>
111
+ gfmFootnoteDefinitionStack?: Array<string>
112
+ gfmFootnoteCallCounts?: Record<string, number>
113
+ gfmFootnoteCallOrder?: Array<string>
114
+ }
115
+
116
+ /**
117
+ * Parse context.
118
+ */
119
+ interface ParseContext {
120
+ gfmFootnotes?: Array<string>
121
+ }
122
+
123
+ /**
124
+ * Token types.
125
+ */
126
+ interface TokenTypeMap {
127
+ gfmFootnoteCall: 'gfmFootnoteCall'
128
+ gfmFootnoteCallLabelMarker: 'gfmFootnoteCallLabelMarker'
129
+ gfmFootnoteCallMarker: 'gfmFootnoteCallMarker'
130
+ gfmFootnoteCallString: 'gfmFootnoteCallString'
131
+ gfmFootnoteDefinition: 'gfmFootnoteDefinition'
132
+ gfmFootnoteDefinitionIndent: 'gfmFootnoteDefinitionIndent'
133
+ gfmFootnoteDefinitionLabel: 'gfmFootnoteDefinitionLabel'
134
+ gfmFootnoteDefinitionLabelMarker: 'gfmFootnoteDefinitionLabelMarker'
135
+ gfmFootnoteDefinitionLabelString: 'gfmFootnoteDefinitionLabelString'
136
+ gfmFootnoteDefinitionMarker: 'gfmFootnoteDefinitionMarker'
137
+ gfmFootnoteDefinitionWhitespace: 'gfmFootnoteDefinitionWhitespace'
138
+ }
139
+ }
140
+
141
+
142
+
143
+ declare module 'micromark-util-types' {
144
+ interface TokenTypeMap {
145
+ strikethroughSequence: 'strikethroughSequence'
146
+ strikethroughSequenceTemporary: 'strikethroughSequenceTemporary'
147
+ strikethrough: 'strikethrough'
148
+ strikethroughText: 'strikethroughText'
149
+ }
150
+ }
151
+
152
+
153
+
154
+ declare module 'micromark-util-types' {
155
+ interface TokenTypeMap {
156
+ listItem: 'listItem'
157
+ }
158
+
159
+ interface Token {
160
+ _spread?: boolean
161
+ }
162
+ }
163
+
164
+
165
+
166
+ declare module 'mdast-util-to-markdown' {
167
+ interface ConstructNameMap {
168
+ /**
169
+ * Footnote definition.
170
+ *
171
+ * ```markdown
172
+ * > | [^a]: B.
173
+ * ^^^^^^^^
174
+ * ```
175
+ */
176
+ footnoteDefinition: 'footnoteDefinition'
177
+
178
+ /**
179
+ * Footnote reference.
180
+ *
181
+ * ```markdown
182
+ * > | A[^b].
183
+ * ^^^^
184
+ * ```
185
+ */
186
+ footnoteReference: 'footnoteReference'
187
+ }
188
+ }
189
+
190
+
191
+
192
+ // Add custom data tracked to turn markdown into a tree.
193
+ declare module 'mdast-util-from-markdown' {
194
+ interface CompileData {
195
+ /**
196
+ * Whether we’re currently in a table.
197
+ */
198
+ inTable?: boolean | undefined
199
+ }
200
+ }
201
+
202
+
203
+
204
+ // Add custom data tracked to turn a syntax tree into markdown.
205
+ declare module 'mdast-util-to-markdown' {
206
+ interface ConstructNameMap {
207
+ /**
208
+ * Whole table.
209
+ *
210
+ * ```markdown
211
+ * > | | a |
212
+ * ^^^^^
213
+ * > | | - |
214
+ * ^^^^^
215
+ * ```
216
+ */
217
+ table: 'table'
218
+
219
+ /**
220
+ * Table cell.
221
+ *
222
+ * ```markdown
223
+ * > | | a |
224
+ * ^^^^^
225
+ * | | - |
226
+ * ```
227
+ */
228
+ tableCell: 'tableCell'
229
+
230
+ /**
231
+ * Table row.
232
+ *
233
+ * ```markdown
234
+ * > | | a |
235
+ * ^^^^^
236
+ * | | - |
237
+ * ```
238
+ */
239
+ tableRow: 'tableRow'
240
+ }
241
+ }
242
+
243
+ declare namespace _default {
244
+ namespace plugins {
245
+ let tailwindcss: {};
246
+ }
247
+ }