@sockethub/examples 1.0.0-alpha.9 → 1.0.0-beta.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 +47 -153
- package/build/_app/immutable/assets/0.DiwDnc-u.css +1 -0
- package/build/_app/immutable/chunks/BDxEtWDn.js +1 -0
- package/build/_app/immutable/chunks/BFJazgM-.js +4 -0
- package/build/_app/immutable/chunks/BKtlB-ZE.js +37 -0
- package/build/_app/immutable/chunks/BRcKhWZZ.js +1 -0
- package/build/_app/immutable/chunks/BymJmDWJ.js +1 -0
- package/build/_app/immutable/chunks/C7zmhnYM.js +1 -0
- package/build/_app/immutable/chunks/CH5OY5MF.js +1 -0
- package/build/_app/immutable/chunks/{D_xw8KSE.js → CbO4bo1j.js} +1 -1
- package/build/_app/immutable/chunks/CgjHsrhs.js +2 -0
- package/build/_app/immutable/chunks/Cko76dBZ.js +1 -0
- package/build/_app/immutable/chunks/D5R3T3gW.js +1 -0
- package/build/_app/immutable/chunks/FpM_-oX5.js +1 -0
- package/build/_app/immutable/chunks/wMyiGnQa.js +1 -0
- package/build/_app/immutable/entry/app.C88mAu2e.js +2 -0
- package/build/_app/immutable/entry/start.B1PB6bga.js +1 -0
- package/build/_app/immutable/nodes/0.BwQUhEGu.js +39 -0
- package/build/_app/immutable/nodes/1.C-zkRZjk.js +1 -0
- package/build/_app/immutable/nodes/2.8bzWQILm.js +5 -0
- package/build/_app/immutable/nodes/3.DrGIkVu0.js +2 -0
- package/build/_app/immutable/nodes/4.Clpm2HdH.js +1 -0
- package/build/_app/immutable/nodes/5.D6ttn0N8.js +1 -0
- package/build/_app/immutable/nodes/6.CkpDg7i6.js +1 -0
- package/build/_app/immutable/nodes/7.DrKGjs0l.js +1 -0
- package/build/_app/immutable/nodes/8.2NG23_e4.js +1 -0
- package/build/_app/immutable/nodes/9.D7zgVgYt.js +2 -0
- package/build/_app/version.json +1 -1
- package/build/caldav.html +40 -0
- package/build/carddav.html +40 -0
- package/build/dummy.html +16 -14
- package/build/feeds.html +16 -14
- package/build/index.html +16 -14
- package/build/irc.html +16 -14
- package/build/metadata-test.html +16 -0
- package/build/metadata.html +16 -14
- package/build/xmpp.html +16 -14
- package/package.json +11 -5
- package/build/_app/immutable/assets/0.JUA-HkH6.css +0 -1
- package/build/_app/immutable/chunks/B-2myMF5.js +0 -1
- package/build/_app/immutable/chunks/BBdxXcNs.js +0 -23
- package/build/_app/immutable/chunks/BhL0iima.js +0 -4
- package/build/_app/immutable/chunks/BnKTx64M.js +0 -1
- package/build/_app/immutable/chunks/C1LF9VyP.js +0 -1
- package/build/_app/immutable/chunks/CARmnL8B.js +0 -1
- package/build/_app/immutable/chunks/CC-fhLYv.js +0 -1
- package/build/_app/immutable/chunks/CFHe0i8O.js +0 -1
- package/build/_app/immutable/chunks/Cf7Xaqef.js +0 -1
- package/build/_app/immutable/chunks/Ciq9INsC.js +0 -1
- package/build/_app/immutable/chunks/CoHdmBcD.js +0 -1
- package/build/_app/immutable/chunks/CuMZk85B.js +0 -1
- package/build/_app/immutable/chunks/DqdrLdzV.js +0 -2
- package/build/_app/immutable/chunks/P3PHXZz3.js +0 -2
- package/build/_app/immutable/chunks/ckVI8gYG.js +0 -1
- package/build/_app/immutable/entry/app.Bl74kTht.js +0 -2
- package/build/_app/immutable/entry/start.D24qTA3b.js +0 -1
- package/build/_app/immutable/nodes/0.DdMWQ3yw.js +0 -39
- package/build/_app/immutable/nodes/1.CsFfh9_m.js +0 -1
- package/build/_app/immutable/nodes/2.D-ebmGgp.js +0 -5
- package/build/_app/immutable/nodes/3.1s4AoiT3.js +0 -1
- package/build/_app/immutable/nodes/4.Ck-0hor4.js +0 -1
- package/build/_app/immutable/nodes/5.BV2I1j0o.js +0 -1
- package/build/_app/immutable/nodes/6.PZ-pmrq7.js +0 -1
- package/build/_app/immutable/nodes/7.C7IiHO6h.js +0 -1
- package/build/config.json +0 -9
- package/build/favicon.ico +0 -0
- package/build/sockethub-logo.svg +0 -147
package/README.md
CHANGED
|
@@ -1,174 +1,68 @@
|
|
|
1
1
|
# Sockethub Examples
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
**Purpose**: Internet Relay Chat communication
|
|
34
|
-
|
|
35
|
-
- Connects to IRC servers through Sockethub's IRC platform
|
|
36
|
-
- Supports joining channels and sending/receiving messages
|
|
37
|
-
|
|
38
|
-
### XMPP Platform
|
|
39
|
-
|
|
40
|
-
**Purpose**: XMPP (Jabber) chat communication
|
|
41
|
-
|
|
42
|
-
- Connects to XMPP servers through Sockethub's XMPP platform
|
|
43
|
-
- Supports joining chat rooms and messaging
|
|
44
|
-
|
|
45
|
-
### Metadata Platform
|
|
46
|
-
|
|
47
|
-
**Purpose**: Website metadata extraction
|
|
48
|
-
|
|
49
|
-
- Extracts metadata from web pages through Sockethub
|
|
50
|
-
- Analyzes Open Graph, Twitter Cards, and other metadata
|
|
3
|
+
Interactive web examples showing how client applications talk to Sockethub using
|
|
4
|
+
[ActivityStreams 2.0](https://www.w3.org/TR/activitystreams-core/) messages.
|
|
5
|
+
|
|
6
|
+
## What the examples demonstrate
|
|
7
|
+
|
|
8
|
+
1. Connect with `SockethubClient` and wait for `ready()` (schema registry loaded).
|
|
9
|
+
2. Build `@context` with `sc.contextFor('platform')` from server metadata.
|
|
10
|
+
3. Set an **actor** object (`id`, `type`, `name`) where the platform needs one.
|
|
11
|
+
4. Send **credentials**, **connect**, **join**, **send**, or **fetch** with the actor on each event.
|
|
12
|
+
5. Inspect request/response JSON in the ActivityStreams logger.
|
|
13
|
+
|
|
14
|
+
Fetch examples (feeds, metadata) derive the actor from the URL field, then you
|
|
15
|
+
confirm the actor JSON before fetch. Chat examples (IRC, XMPP) walk through
|
|
16
|
+
credentials, connect, join, and send.
|
|
17
|
+
DAV examples (CalDAV, CardDAV) set session credentials, discover collections,
|
|
18
|
+
then create or edit items; CardDAV shows the ETag conflict flow on update and
|
|
19
|
+
delete.
|
|
20
|
+
|
|
21
|
+
## Platform examples
|
|
22
|
+
|
|
23
|
+
| Example | Purpose |
|
|
24
|
+
|---------|---------|
|
|
25
|
+
| **Dummy** | Echo, fail, throw, greet — learn message shape |
|
|
26
|
+
| **Feeds** | Fetch RSS/Atom by URL (`actor.type` is `feed`) |
|
|
27
|
+
| **IRC** | Credentials → connect → join → send |
|
|
28
|
+
| **XMPP** | Same flow for multi-user chat |
|
|
29
|
+
| **Metadata** | Extract Open Graph / page metadata from a URL |
|
|
30
|
+
| **CalDAV** | Credentials → discover calendars → create an event or to-do |
|
|
31
|
+
| **CardDAV** | Credentials → discover address books → list, search, add, edit, delete contacts |
|
|
51
32
|
|
|
52
33
|
## Prerequisites
|
|
53
34
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
## Setup Instructions
|
|
57
|
-
|
|
58
|
-
### 1. Start Sockethub Server
|
|
35
|
+
- Sockethub server (from repo root: `bun run dev` serves examples at `http://localhost:10550/examples`)
|
|
36
|
+
- Redis (required by the server)
|
|
59
37
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
# Install dependencies
|
|
64
|
-
bun install
|
|
65
|
-
|
|
66
|
-
# Start Sockethub server with examples enabled
|
|
67
|
-
bun run dev
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
This starts Sockethub on `localhost:10550` with the examples interface available.
|
|
71
|
-
|
|
72
|
-
### 2. Running Examples Standalone (Optional)
|
|
73
|
-
|
|
74
|
-
To run just the examples interface separately:
|
|
38
|
+
## Run standalone (optional)
|
|
75
39
|
|
|
76
40
|
```bash
|
|
77
41
|
cd packages/examples
|
|
78
|
-
|
|
79
|
-
# Install dependencies (if not already done)
|
|
80
42
|
bun install
|
|
81
|
-
|
|
82
|
-
# Start development server
|
|
83
|
-
bun run dev
|
|
84
|
-
|
|
85
|
-
# Or start and open in browser
|
|
86
|
-
bun run dev -- --open
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Usage Guide
|
|
90
|
-
|
|
91
|
-
### Basic Flow
|
|
92
|
-
|
|
93
|
-
1. **Navigate** to a platform example (e.g., IRC, XMPP)
|
|
94
|
-
2. **Configure** connection details (server, credentials)
|
|
95
|
-
3. **Connect** to the platform through Sockethub
|
|
96
|
-
4. **Interact** with the protocol (join rooms, send messages, fetch feeds)
|
|
97
|
-
5. **Monitor** ActivityStreams messages in the logger
|
|
98
|
-
|
|
99
|
-
### What You'll See
|
|
100
|
-
|
|
101
|
-
- **Request messages**: ActivityStreams objects sent to Sockethub
|
|
102
|
-
- **Response messages**: Results returned by Sockethub platforms
|
|
103
|
-
- **Real-time updates**: Live protocol interactions
|
|
104
|
-
- **Error handling**: Clear error messages for troubleshooting
|
|
105
|
-
|
|
106
|
-
## Development
|
|
107
|
-
|
|
108
|
-
### Running in Development Mode
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
43
|
bun run dev
|
|
112
44
|
```
|
|
113
45
|
|
|
114
|
-
|
|
46
|
+
The app discovers the server's endpoints from the origin it was loaded from. When
|
|
47
|
+
running standalone on the Vite dev server, point it at a running Sockethub with
|
|
48
|
+
`VITE_SOCKETHUB_URL=http://localhost:10550 bun run dev`.
|
|
115
49
|
|
|
116
|
-
|
|
117
|
-
bun run build
|
|
118
|
-
```
|
|
50
|
+
## Code layout
|
|
119
51
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
# Unit tests
|
|
127
|
-
bun test
|
|
128
|
-
|
|
129
|
-
# Integration tests
|
|
130
|
-
bun run test:integration
|
|
131
|
-
```
|
|
52
|
+
- `src/lib/sockethub.ts` — shared client, `ensureClientReady()`, `contextFor()`, `send()`
|
|
53
|
+
- `src/components/ActivityActor.svelte` — actor JSON for chat examples (IRC, XMPP, dummy)
|
|
54
|
+
- `src/components/Credentials.svelte` — credentials event
|
|
55
|
+
- `src/components/chat/*` — join room and send messages (IRC/XMPP)
|
|
132
56
|
|
|
133
57
|
## Troubleshooting
|
|
134
58
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
**Problem**: "Failed to connect to Sockethub"
|
|
138
|
-
|
|
139
|
-
- **Solution**: Ensure Sockethub server is running on `localhost:10550`
|
|
140
|
-
- **Check**: `curl http://localhost:10550/sockethub` should return server info
|
|
141
|
-
|
|
142
|
-
**Problem**: "Platform not available"
|
|
143
|
-
|
|
144
|
-
- **Solution**: Check that the platform is enabled in Sockethub configuration
|
|
145
|
-
- **Check**: Server logs for platform initialization errors
|
|
146
|
-
|
|
147
|
-
### Platform-Specific Issues
|
|
148
|
-
|
|
149
|
-
**IRC**:
|
|
150
|
-
|
|
151
|
-
- Verify server address and port are correct
|
|
152
|
-
- Check if server requires registration/authentication
|
|
153
|
-
- Some networks block connections from certain IPs
|
|
154
|
-
|
|
155
|
-
**XMPP**:
|
|
156
|
-
|
|
157
|
-
- Ensure XMPP account credentials are valid
|
|
158
|
-
- Check if server allows external connections
|
|
159
|
-
- Verify server supports the features being used
|
|
160
|
-
|
|
161
|
-
**Feeds**:
|
|
162
|
-
|
|
163
|
-
- Confirm feed URL is accessible and valid RSS/ATOM
|
|
164
|
-
- Check for CORS issues with feed domain
|
|
165
|
-
- Some feeds may require authentication
|
|
166
|
-
|
|
167
|
-
## Contributing
|
|
59
|
+
**Send fails before ready** — Wait for the socket `ready` event or call
|
|
60
|
+
`await sc.ready()` before building messages (the example `send()` helper does this).
|
|
168
61
|
|
|
169
|
-
|
|
62
|
+
**Platform not available** — Enable the platform in `sockethub.config.json` and check server logs.
|
|
170
63
|
|
|
171
|
-
## Learn
|
|
64
|
+
## Learn more
|
|
172
65
|
|
|
173
|
-
- [
|
|
174
|
-
- [
|
|
66
|
+
- [Client Guide](../../docs/client-guide.md)
|
|
67
|
+
- [Getting Started](../../docs/getting-started.md)
|
|
68
|
+
- [ActivityStreams specification](https://www.w3.org/TR/activitystreams-core/)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@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-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse: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-tracking: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;--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-ease:initial}}}@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;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-400:oklch(75% .183 55.934);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-cyan-50:oklch(98.4% .019 200.873);--color-sky-50:oklch(97.7% .013 236.62);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-violet-50:oklch(96.9% .016 293.756);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-50:oklch(97.1% .014 343.198);--color-rose-50:oklch(96.9% .015 12.422);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-700:oklch(37.2% .044 257.287);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--container-4xl:56rem;--container-6xl:72rem;--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: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--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%;-moz-tab-size:4;-o-tab-size:4;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;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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}h1{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}h2{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}h3{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}a{color:var(--color-blue-600);text-decoration-line:underline}button:disabled,button:disabled:hover{background-color:#d3d3d3!important}pre{white-space:pre-wrap}}@layer components{.incoming-messages{height:20em;margin:0;padding:0;list-style-type:none;overflow:scroll}.incoming-messages li{padding:.1em 1%}.incoming-messages li:nth-child(odd){background:#eee}.incoming-messages-container{overflow-anchor:none;border:1px solid #ccc;height:20rem;display:block;overflow:scroll}.incoming-messages-anchor{overflow-anchor:auto;height:1px}}@layer utilities{.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-0{top:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.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}}.m-0{margin:calc(var(--spacing)*0)}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-1{margin-left:calc(var(--spacing)*1)}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-24{height:calc(var(--spacing)*24)}.h-full{height:100%}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[90vh\]{max-height:90vh}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-32{width:calc(var(--spacing)*32)}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.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-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-solid{--tw-border-style:solid;border-style:solid}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400{border-color:var(--color-blue-400)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-green-200{border-color:var(--color-green-200)}.border-green-400{border-color:var(--color-green-400)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-400{border-color:var(--color-indigo-400)}.border-orange-400{border-color:var(--color-orange-400)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-400{border-color:var(--color-purple-400)}.border-red-200{border-color:var(--color-red-200)}.border-teal-400{border-color:var(--color-teal-400)}.border-transparent{border-color:#0000}.border-yellow-300{border-color:var(--color-yellow-300)}.border-yellow-400{border-color:var(--color-yellow-400)}.border-l-green-400{border-left-color:var(--color-green-400)}.border-l-orange-400{border-left-color:var(--color-orange-400)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-teal-50{background-color:var(--color-teal-50)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:var(--color-amber-50);--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-blue-50{--tw-gradient-from:var(--color-blue-50);--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-emerald-50{--tw-gradient-from:var(--color-emerald-50);--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-gray-50{--tw-gradient-from:var(--color-gray-50);--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-green-50{--tw-gradient-from:var(--color-green-50);--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-indigo-50{--tw-gradient-from:var(--color-indigo-50);--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-purple-50{--tw-gradient-from:var(--color-purple-50);--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-red-50{--tw-gradient-from:var(--color-red-50);--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-slate-50{--tw-gradient-from:var(--color-slate-50);--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))}.to-blue-100{--tw-gradient-to:var(--color-blue-100);--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))}.to-cyan-50{--tw-gradient-to:var(--color-cyan-50);--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))}.to-emerald-50{--tw-gradient-to:var(--color-emerald-50);--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))}.to-gray-50{--tw-gradient-to:var(--color-gray-50);--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))}.to-green-50{--tw-gradient-to:var(--color-green-50);--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))}.to-indigo-50{--tw-gradient-to:var(--color-indigo-50);--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))}.to-pink-50{--tw-gradient-to:var(--color-pink-50);--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))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--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))}.to-rose-50{--tw-gradient-to:var(--color-rose-50);--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))}.to-sky-50{--tw-gradient-to:var(--color-sky-50);--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))}.to-slate-50{--tw-gradient-to:var(--color-slate-50);--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))}.to-violet-50{--tw-gradient-to:var(--color-violet-50);--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))}.to-yellow-50{--tw-gradient-to:var(--color-yellow-50);--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))}.bg-clip-padding{background-clip:padding-box}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.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-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-50{color:var(--color-blue-50)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-800{color:var(--color-indigo-800)}.text-indigo-900{color:var(--color-indigo-900)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-purple-900{color:var(--color-purple-900)}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-slate-400{color:var(--color-slate-400)}.text-slate-700{color:var(--color-slate-700)}.text-teal-700{color:var(--color-teal-700)}.text-teal-800{color:var(--color-teal-800)}.text-white{color:var(--color-white)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.placeholder-gray-500::-moz-placeholder{color:var(--color-gray-500)}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px 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)}.grayscale{--tw-grayscale:grayscale(100%);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,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))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-indigo-50:hover{background-color:var(--color-indigo-50)}.hover\:bg-indigo-50\/40:hover{background-color:#eef2ff66}@supports (color:color-mix(in lab,red,red)){.hover\:bg-indigo-50\/40:hover{background-color:color-mix(in oklab,var(--color-indigo-50)40%,transparent)}}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-indigo-800:hover{color:var(--color-indigo-800)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px 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)}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-blue-600:focus{border-color:var(--color-blue-600)}.focus\:border-green-500:focus{border-color:var(--color-green-500)}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:text-gray-700:focus{color:var(--color-gray-700)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}}@media (min-width:48rem){.md\:mt-3{margin-top:calc(var(--spacing)*3)}.md\:w-48{width:calc(var(--spacing)*48)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}}@media (min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{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-tracking{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}@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-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var s;const a=((s=globalThis.__sveltekit_y93smw)==null?void 0:s.base)??"/examples";var e;const t=((e=globalThis.__sveltekit_y93smw)==null?void 0:e.assets)??a??"";export{t as a,a as b};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{f as j,a as g,s as D,t as F}from"./CgjHsrhs.js";import{p as O,z as G,t as w,a as T,m as p,d as m,b as J,f as B,c as x,r as h,s as v,g as r,u as H,n as K,e as i}from"./BymJmDWJ.js";import{p as C,i as M,b as Q,c as _,s as R}from"./FpM_-oX5.js";import{g as y,r as U}from"./BKtlB-ZE.js";import{b as E,S as V}from"./Cko76dBZ.js";var W=j(`<textarea class="form-control block w-full px-3 py-1.5 text-base font-normal
|
|
2
|
+
text-gray-700 bg-white bg-clip-padding border border-solid
|
|
3
|
+
border-gray-300 rounded transition ease-in-out m-0 focus:text-gray-700
|
|
4
|
+
focus:bg-white focus:border-blue-600 focus:outline-none" rows="5"></textarea>`);function X(l,t){O(t,!0);let e=C(t,"data",15);var o=W();G(o),w(()=>y(o,"id",`json-object-${t.title??""}`)),E(o,e),g(l,o),T()}var Y=j('<div class="w-full p-2"><label class="inline-block text-gray-900 font-bold w-32">Password</label> <input type="password" class="border-4"/></div>'),Z=j('<div class="w-full"><label class="form-label inline-block text-gray-900 font-bold mb-2"> </label> <!></div> <!> <div class="w-full text-right"><!></div>',1);function $(l,t){O(t,!0);let e=C(t,"buttonText",3,"Send"),o=J(""),S=H(()=>`secret-input-${t.title.toLowerCase().replace(/\s+/g,"-")}`),s=J("");p(()=>{m(o,typeof t.obj.password=="string"?t.obj.password:"",!0)}),p(()=>{const a={...t.obj};delete a.password,m(s,JSON.stringify(a,null,3),!0)});async function k(){let a;try{a=JSON.parse(r(s))}catch(n){const d=n instanceof Error?n.message:String(n);throw new Error(`Invalid JSON: ${d}`)}r(o).length>0&&(a.password=r(o)),t.submitData(JSON.stringify(a))}var u=Z(),f=B(u),c=x(f),b=x(c,!0);h(c);var P=v(c,2);X(P,{get title(){return t.title},get data(){return r(s)},set data(a){m(s,a,!0)}}),h(f);var I=v(f,2);{var z=a=>{var n=Y(),d=x(n),A=v(d,2);U(A),h(n),w(()=>{y(d,"for",r(S)),y(A,"id",r(S))}),E(A,()=>r(o),q=>m(o,q)),g(a,n)};M(I,a=>{typeof t.obj.password=="string"&&a(z)})}var N=v(I,2),L=x(N);V(L,{get disabled(){return t.disabled},buttonAction:k,children:(a,n)=>{K();var d=F();w(()=>D(d,e())),g(a,d)}}),h(N),w(()=>{y(c,"for",`json-object-${t.title??""}`),D(b,t.title)}),g(l,u),T()}var tt=j('<p class="text-sm text-gray-600 mb-2">Define the <code>actor</code> object for credentials and message events. Include <code>id</code>, <code>type</code>, and <code>name</code> on every outbound message.</p> <!>',1);function nt(l,t){O(t,!0);const e=()=>Q(t.sockethubState,"$sockethubState",o),[o,S]=R();let s=J(void 0);p(()=>{e().actorSet&&r(s)&&t.actor.id!==r(s)&&(_(t.sockethubState,i(e).actorSet=!1,i(e)),"credentialsSet"in e()&&_(t.sockethubState,i(e).credentialsSet=!1,i(e)),"connected"in e()&&_(t.sockethubState,i(e).connected=!1,i(e)),"joined"in e()&&_(t.sockethubState,i(e).joined=!1,i(e)))});function k(c){const b=JSON.parse(c);console.log("actor confirmed for this app session:",b),t.sockethubState.set({actorSet:!0,credentialsSet:!1,connected:!1,joined:!1}),m(s,typeof b.id=="string"?b.id:void 0,!0)}var u=tt(),f=v(B(u),2);$(f,{title:"Actor",get obj(){return t.actor},buttonText:"Confirm actor",submitData:k,get disabled(){return e().actorSet}}),g(l,u),T(),S()}export{nt as A,$ as T};
|