@superxd-studio/adptr 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/GENERATIVE.md +101 -0
  2. package/INTERACTIONS.md +51 -0
  3. package/LICENSE +21 -0
  4. package/README.md +57 -0
  5. package/REUSE.md +170 -0
  6. package/REVIEW.md +68 -0
  7. package/THIRD-PARTY-NOTICES.md +28 -0
  8. package/ai-sdk/index.js +96 -0
  9. package/assets/ibm-plex-mono-cyrillic-400-normal.woff2 +0 -0
  10. package/assets/ibm-plex-mono-cyrillic-500-normal.woff2 +0 -0
  11. package/assets/ibm-plex-mono-cyrillic-ext-400-normal.woff2 +0 -0
  12. package/assets/ibm-plex-mono-cyrillic-ext-500-normal.woff2 +0 -0
  13. package/assets/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  14. package/assets/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  15. package/assets/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
  16. package/assets/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
  17. package/assets/ibm-plex-mono-vietnamese-400-normal.woff2 +0 -0
  18. package/assets/ibm-plex-mono-vietnamese-500-normal.woff2 +0 -0
  19. package/assets/instrument-sans-latin-ext-wght-normal.woff2 +0 -0
  20. package/assets/instrument-sans-latin-wght-normal.woff2 +0 -0
  21. package/assistant-ui/index.js +139 -0
  22. package/chunks/callout-DKMHSnjc.js +342 -0
  23. package/chunks/canvas-BJ15-XxE.js +598 -0
  24. package/chunks/controller-Cfpg0C7v.js +180 -0
  25. package/chunks/core-BCqVRLUy.js +312 -0
  26. package/chunks/text-field-BLtoaZFn.js +41 -0
  27. package/chunks/types-BGF7r1my.js +115 -0
  28. package/chunks/ui-9DyNsYXY.js +967 -0
  29. package/core/index.js +4 -0
  30. package/custom/index.js +64 -0
  31. package/examples/ai-sdk-backend/package.json +11 -0
  32. package/examples/ai-sdk-backend/server.mjs +316 -0
  33. package/examples/custom-backend/copy.mjs +7 -0
  34. package/examples/custom-backend/server.mjs +118 -0
  35. package/examples/generative/specs.json +2094 -0
  36. package/examples/review-backend/copy.mjs +27 -0
  37. package/examples/review-backend/package.json +11 -0
  38. package/examples/review-backend/server.mjs +276 -0
  39. package/examples/web-ai-sdk/index.html +12 -0
  40. package/examples/web-ai-sdk/package.json +21 -0
  41. package/examples/web-ai-sdk/src/copy.ts +1 -0
  42. package/examples/web-ai-sdk/src/main.tsx +64 -0
  43. package/examples/web-ai-sdk/tsconfig.json +13 -0
  44. package/examples/web-generative/index.html +12 -0
  45. package/examples/web-generative/package.json +23 -0
  46. package/examples/web-generative/src/copy.ts +42 -0
  47. package/examples/web-generative/src/main.tsx +74 -0
  48. package/examples/web-generative/tsconfig.json +14 -0
  49. package/examples/web-independent/index.html +12 -0
  50. package/examples/web-independent/package.json +20 -0
  51. package/examples/web-independent/src/main.tsx +32 -0
  52. package/examples/web-independent/tsconfig.json +14 -0
  53. package/examples/web-interactions/index.html +12 -0
  54. package/examples/web-interactions/package.json +21 -0
  55. package/examples/web-interactions/src/copy.ts +215 -0
  56. package/examples/web-interactions/src/examples.tsx +628 -0
  57. package/examples/web-interactions/src/main.tsx +116 -0
  58. package/examples/web-interactions/tsconfig.json +14 -0
  59. package/examples/web-review/index.html +12 -0
  60. package/examples/web-review/package.json +20 -0
  61. package/examples/web-review/src/main.tsx +59 -0
  62. package/examples/web-review/tsconfig.json +14 -0
  63. package/fonts.css +117 -0
  64. package/generative/index.js +1560 -0
  65. package/interactions/index.js +1591 -0
  66. package/langgraph-review/index.js +36 -0
  67. package/licenses/ai-sdk.txt +13 -0
  68. package/licenses/assistant-ui-generative.txt +21 -0
  69. package/licenses/assistant-ui.txt +23 -0
  70. package/licenses/ibm-plex-mono.txt +93 -0
  71. package/licenses/instrument-sans.txt +93 -0
  72. package/licenses/internationalized-date.txt +201 -0
  73. package/licenses/langgraph.txt +21 -0
  74. package/licenses/lucide.txt +43 -0
  75. package/licenses/react-markdown.txt +21 -0
  76. package/licenses/remark-gfm.txt +22 -0
  77. package/licenses/zod.txt +21 -0
  78. package/package.json +138 -0
  79. package/review/index.js +31 -0
  80. package/source/components/avatar.tsx +50 -0
  81. package/source/components/button.tsx +155 -0
  82. package/source/components/callout.tsx +65 -0
  83. package/source/components/canvas/connector.tsx +14 -0
  84. package/source/components/canvas/copy.ts +34 -0
  85. package/source/components/canvas/index.tsx +257 -0
  86. package/source/components/canvas/recorder.ts +36 -0
  87. package/source/components/date-time-field.tsx +77 -0
  88. package/source/components/flow-motion.tsx +109 -0
  89. package/source/components/icons.tsx +275 -0
  90. package/source/components/responsive-overlay.tsx +91 -0
  91. package/source/components/scenario-picker/copy.ts +5 -0
  92. package/source/components/scenario-picker/index.tsx +142 -0
  93. package/source/components/scroll-area.tsx +59 -0
  94. package/source/components/search-picker.tsx +127 -0
  95. package/source/components/segmented-control.tsx +123 -0
  96. package/source/components/skeleton.tsx +11 -0
  97. package/source/components/spinner.tsx +19 -0
  98. package/source/components/superxd-arrow.tsx +22 -0
  99. package/source/components/switch.tsx +45 -0
  100. package/source/components/text-field.tsx +81 -0
  101. package/source/components/thinking.tsx +16 -0
  102. package/source/components/ui/copy.ts +12 -0
  103. package/source/components/ui/display.tsx +276 -0
  104. package/source/components/ui/navigation.tsx +346 -0
  105. package/source/components/ui/portal-theme.tsx +28 -0
  106. package/source/components/ui/selection.tsx +336 -0
  107. package/source/lib/cn.ts +23 -0
  108. package/source/reusable/ai-sdk/index.ts +114 -0
  109. package/source/reusable/assistant-ui/index.tsx +266 -0
  110. package/source/reusable/core/attachments.ts +163 -0
  111. package/source/reusable/core/index.ts +417 -0
  112. package/source/reusable/custom/index.ts +90 -0
  113. package/source/reusable/generative/actions.ts +188 -0
  114. package/source/reusable/generative/copy.ts +47 -0
  115. package/source/reusable/generative/data.tsx +126 -0
  116. package/source/reusable/generative/index.tsx +517 -0
  117. package/source/reusable/generative/schema.ts +327 -0
  118. package/source/reusable/generative/timeline.tsx +214 -0
  119. package/source/reusable/generative/vocabulary.tsx +847 -0
  120. package/source/reusable/interactions/agent.ts +259 -0
  121. package/source/reusable/interactions/artifact.ts +236 -0
  122. package/source/reusable/interactions/context.tsx +38 -0
  123. package/source/reusable/interactions/copy.ts +117 -0
  124. package/source/reusable/interactions/feedback.ts +73 -0
  125. package/source/reusable/interactions/index.ts +11 -0
  126. package/source/reusable/interactions/presentation.tsx +483 -0
  127. package/source/reusable/interactions/store.ts +74 -0
  128. package/source/reusable/interactions/threads.ts +126 -0
  129. package/source/reusable/interactions/web.tsx +574 -0
  130. package/source/reusable/langgraph-review/index.ts +73 -0
  131. package/source/reusable/review/controller.ts +263 -0
  132. package/source/reusable/review/index.ts +47 -0
  133. package/source/reusable/review/types.ts +189 -0
  134. package/source/reusable/ui/index.ts +25 -0
  135. package/source/reusable/uploads/index.ts +48 -0
  136. package/source/reusable/web/attachments/copy.ts +23 -0
  137. package/source/reusable/web/attachments/index.tsx +233 -0
  138. package/source/reusable/web/copy.ts +22 -0
  139. package/source/reusable/web/index.tsx +470 -0
  140. package/source/reusable/web/message/copy.ts +26 -0
  141. package/source/reusable/web/message/index.tsx +388 -0
  142. package/source/reusable/web/message/streaming.ts +64 -0
  143. package/source/reusable/web/message/styles.css +21 -0
  144. package/source/reusable/web/review/copy.ts +78 -0
  145. package/source/reusable/web/review/flow.ts +24 -0
  146. package/source/reusable/web/review/index.tsx +506 -0
  147. package/source/reusable/web/styles.ts +2 -0
  148. package/source/styles/library.css +612 -0
  149. package/source/styles/theme.css +228 -0
  150. package/styles.css +3 -0
  151. package/styles.d.ts +1 -0
  152. package/types/components/avatar.d.ts +14 -0
  153. package/types/components/button.d.ts +36 -0
  154. package/types/components/callout.d.ts +19 -0
  155. package/types/components/canvas/connector.d.ts +2 -0
  156. package/types/components/canvas/copy.d.ts +34 -0
  157. package/types/components/canvas/index.d.ts +33 -0
  158. package/types/components/canvas/recorder.d.ts +10 -0
  159. package/types/components/date-time-field.d.ts +11 -0
  160. package/types/components/flow-motion.d.ts +38 -0
  161. package/types/components/icons.d.ts +138 -0
  162. package/types/components/responsive-overlay.d.ts +15 -0
  163. package/types/components/scenario-picker/copy.d.ts +5 -0
  164. package/types/components/scenario-picker/index.d.ts +14 -0
  165. package/types/components/scroll-area.d.ts +14 -0
  166. package/types/components/search-picker.d.ts +27 -0
  167. package/types/components/segmented-control.d.ts +23 -0
  168. package/types/components/skeleton.d.ts +4 -0
  169. package/types/components/spinner.d.ts +4 -0
  170. package/types/components/superxd-arrow.d.ts +5 -0
  171. package/types/components/switch.d.ts +8 -0
  172. package/types/components/text-field.d.ts +19 -0
  173. package/types/components/thinking.d.ts +8 -0
  174. package/types/components/ui/copy.d.ts +12 -0
  175. package/types/components/ui/display.d.ts +50 -0
  176. package/types/components/ui/navigation.d.ts +63 -0
  177. package/types/components/ui/portal-theme.d.ts +8 -0
  178. package/types/components/ui/selection.d.ts +37 -0
  179. package/types/lib/cn.d.ts +3 -0
  180. package/types/reusable/ai-sdk/index.d.ts +15 -0
  181. package/types/reusable/assistant-ui/index.d.ts +12 -0
  182. package/types/reusable/core/attachments.d.ts +54 -0
  183. package/types/reusable/core/index.d.ts +107 -0
  184. package/types/reusable/custom/index.d.ts +14 -0
  185. package/types/reusable/generative/actions.d.ts +45 -0
  186. package/types/reusable/generative/copy.d.ts +48 -0
  187. package/types/reusable/generative/data.d.ts +4 -0
  188. package/types/reusable/generative/index.d.ts +30 -0
  189. package/types/reusable/generative/schema.d.ts +303 -0
  190. package/types/reusable/generative/timeline.d.ts +21 -0
  191. package/types/reusable/generative/vocabulary.d.ts +34 -0
  192. package/types/reusable/interactions/agent.d.ts +98 -0
  193. package/types/reusable/interactions/artifact.d.ts +118 -0
  194. package/types/reusable/interactions/context.d.ts +130 -0
  195. package/types/reusable/interactions/copy.d.ts +115 -0
  196. package/types/reusable/interactions/feedback.d.ts +34 -0
  197. package/types/reusable/interactions/index.d.ts +10 -0
  198. package/types/reusable/interactions/presentation.d.ts +97 -0
  199. package/types/reusable/interactions/store.d.ts +29 -0
  200. package/types/reusable/interactions/threads.d.ts +38 -0
  201. package/types/reusable/interactions/web.d.ts +22 -0
  202. package/types/reusable/langgraph-review/index.d.ts +5 -0
  203. package/types/reusable/review/controller.d.ts +52 -0
  204. package/types/reusable/review/index.d.ts +12 -0
  205. package/types/reusable/review/types.d.ts +61 -0
  206. package/types/reusable/ui/index.d.ts +19 -0
  207. package/types/reusable/uploads/index.d.ts +11 -0
  208. package/types/reusable/web/attachments/copy.d.ts +25 -0
  209. package/types/reusable/web/attachments/index.d.ts +24 -0
  210. package/types/reusable/web/copy.d.ts +24 -0
  211. package/types/reusable/web/index.d.ts +41 -0
  212. package/types/reusable/web/message/copy.d.ts +27 -0
  213. package/types/reusable/web/message/index.d.ts +56 -0
  214. package/types/reusable/web/message/streaming.d.ts +27 -0
  215. package/types/reusable/web/review/copy.d.ts +72 -0
  216. package/types/reusable/web/review/flow.d.ts +3 -0
  217. package/types/reusable/web/review/index.d.ts +38 -0
  218. package/types/reusable/web/styles.d.ts +2 -0
  219. package/ui/index.js +4 -0
  220. package/uploads/index.js +34 -0
  221. package/web/index.js +931 -0
@@ -0,0 +1,228 @@
1
+ /*
2
+ * The library's look, in one file.
3
+ *
4
+ * Every component reads its colours, corners, type, shadows and motion from
5
+ * these tokens and nothing else. Change a value here and every component
6
+ * follows. Warm ivory and charcoal anchor the look; muted status colours
7
+ * keep it calm without weakening text, input or focus contrast.
8
+ *
9
+ * Rules
10
+ * - Components never use raw colours. The default Tailwind palette is
11
+ * switched off below, so a raw colour class won't even build.
12
+ * - Light values live in @theme. Dark values override the same names in .dark.
13
+ * - Pairs that carry text are checked for contrast by
14
+ * src/styles/theme.test.ts (WCAG AA: 4.5:1 for text, 3:1 for input borders).
15
+ * Run `npm test` after changing a colour.
16
+ */
17
+
18
+ @theme static {
19
+ --color-*: initial;
20
+
21
+ /* Surfaces, lightest to strongest */
22
+ --color-surface: hsl(40 30% 98%); /* page, cards, the booker */
23
+ --color-surface-muted: hsl(35 22% 95%); /* quiet panels */
24
+ --color-surface-subtle: hsl(35 16% 91%); /* hover fills, selected pills */
25
+ --color-surface-emphasis: hsl(32 12% 87%); /* bookable days, strong fills */
26
+ --color-surface-inverted: hsl(30 7% 18%); /* selected day, tooltips */
27
+
28
+ /* Text */
29
+ --color-fg-emphasis: hsl(30 7% 18%); /* titles, key values */
30
+ --color-fg: hsl(30 6% 28%); /* body text */
31
+ --color-fg-subtle: hsl(30 5% 40%); /* secondary text */
32
+ --color-fg-muted: hsl(30 6% 63%); /* disabled only, never for reading */
33
+ --color-fg-inverted: hsl(40 30% 98%); /* text on surface-inverted */
34
+ --color-system-blue: hsl(240.27 100% 56.67%); /* SuperXD #2322ff, canvas state labels */
35
+ /* SuperXD's ultramarine appears in three places only: focus, selection and done */
36
+ --color-done: hsl(240.27 100% 56.67%);
37
+ --color-on-done: hsl(40 30% 98%);
38
+
39
+ /* Lines */
40
+ --color-line-subtle: hsl(32 12% 87%); /* dividers, container edges */
41
+ --color-line: hsl(32 10% 80%); /* button outlines */
42
+ --color-line-emphasis: hsl(30 8% 54%); /* hover outlines, including inputs */
43
+ --color-line-input: hsl(30 6% 52%); /* text box borders (3:1 minimum) */
44
+
45
+ /* Brand: the main action */
46
+ --color-brand: hsl(30 8% 22%);
47
+ --color-brand-emphasis: hsl(30 6% 28%); /* brand on hover */
48
+ --color-on-brand: hsl(40 30% 98%);
49
+
50
+ /* Status. Each has a strong colour (text, icons), a subtle fill and a line */
51
+ --color-success: hsl(145 24% 29%);
52
+ --color-success-subtle: hsl(135 18% 93%);
53
+ --color-success-line: hsl(140 17% 78%);
54
+ --color-attention: hsl(32 42% 31%);
55
+ --color-attention-subtle: hsl(38 40% 93%);
56
+ --color-attention-line: hsl(35 30% 77%);
57
+ --color-error: hsl(10 38% 35%);
58
+ --color-error-subtle: hsl(12 30% 94%);
59
+ --color-error-line: hsl(12 26% 81%);
60
+ --color-info: hsl(210 22% 35%);
61
+ --color-info-subtle: hsl(210 20% 94%);
62
+ --color-info-line: hsl(210 18% 80%);
63
+ --color-destructive: hsl(10 42% 38%); /* destructive buttons */
64
+ --color-on-destructive: hsl(40 30% 98%);
65
+
66
+ /* Focus and overlays. Focus is SuperXD's ultramarine. */
67
+ --color-focus: hsl(240.27 100% 56.67%);
68
+ --color-overlay: hsl(30 8% 12% / 0.45);
69
+
70
+ /* Shape */
71
+ --radius-control: 0.625rem; /* buttons, inputs, times, toggle tracks */
72
+ --radius-cell: 0.375rem; /* calendar days, small items inside controls */
73
+ --radius-surface: 0.75rem; /* the booker, cards, popovers */
74
+ --radius-pill: 9999px;
75
+
76
+ /* Type */
77
+ /* SuperXD's two voices: Instrument Sans for people and content, IBM Plex Mono for the
78
+ system (status, progress, narration). */
79
+ --font-sans: "Instrument Sans Variable", "Instrument Sans", ui-sans-serif, system-ui, sans-serif;
80
+ --font-heading:
81
+ "Instrument Sans Variable", "Instrument Sans", ui-sans-serif, system-ui, sans-serif;
82
+ --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
83
+ --heading-weight: 600;
84
+ --heading-tracking: -0.015em;
85
+
86
+ /* Shared control spacing: small 36, standard 44, large 48. */
87
+ --spacing-control-sm: 2.25rem;
88
+ --spacing-control-md: 2.75rem;
89
+ --spacing-control-lg: 3rem;
90
+ --spacing-control-sm-x: 1rem;
91
+ --spacing-control-md-x: 1.25rem;
92
+ --spacing-control-lg-x: 1.5rem;
93
+ --spacing-control-y: 0.75rem;
94
+ --spacing-avatar-sm: 1.75rem;
95
+ --spacing-avatar-md: 2.25rem;
96
+ --spacing-avatar-lg: 2.75rem;
97
+ /* Calendar geometry: each half-hour has room for a compact card. */
98
+ --spacing-calendar-slot: 3.5rem;
99
+ --spacing-calendar-ruler: 4.5rem;
100
+ --spacing-calendar-viewport: 36rem;
101
+ --spacing-conversation: 40rem;
102
+ --spacing-conversation-example: 36rem;
103
+ --container-conversation: 42rem;
104
+ --text-avatar-sm: 0.625rem;
105
+
106
+ /* Icons */
107
+ --icon-stroke: 2;
108
+
109
+ /* Elevation */
110
+ --shadow-control: 0 1px 2px 0 hsl(30 8% 12% / 0.05);
111
+ --shadow-popover: 0 8px 24px -6px hsl(30 8% 12% / 0.12), 0 2px 6px -2px hsl(30 8% 12% / 0.08);
112
+ --shadow-dialog: 0 24px 48px -12px hsl(30 8% 12% / 0.22), 0 4px 12px -4px hsl(30 8% 12% / 0.1);
113
+
114
+ /* Motion. Reduced-motion users get none of it (see library.css).
115
+ SuperXD's named motion, chosen in the DNA lab (docs/design-dna.md):
116
+ snap for the moment of a press, settle (a gentle spring, about 3% overshoot) for
117
+ release and landing, reveal for content entering, ink for a draft becoming real. */
118
+ --ease-snap: cubic-bezier(0.3, 0, 0.15, 1);
119
+ --ease-settle: linear(
120
+ 0,
121
+ 0.06 4.2%,
122
+ 0.198 8.3%,
123
+ 0.364 12.5%,
124
+ 0.528 16.7%,
125
+ 0.672 20.8%,
126
+ 0.789 25%,
127
+ 0.879 29.2%,
128
+ 0.942 33.3%,
129
+ 0.984 37.5%,
130
+ 1.01 41.7%,
131
+ 1.023 45.8%,
132
+ 1.028 50%,
133
+ 1.028 54.2%,
134
+ 1.024 58.3%,
135
+ 1.02 62.5%,
136
+ 1.015 66.7%,
137
+ 1.011 70.8%,
138
+ 1.007 75%,
139
+ 1.004 79.2%,
140
+ 1.002 83.3%,
141
+ 1.001 87.5%,
142
+ 1
143
+ );
144
+ --ease-reveal: cubic-bezier(0.16, 1, 0.3, 1);
145
+ --ease-ink: cubic-bezier(0.65, 0, 0.35, 1);
146
+ --duration-snap: 90ms;
147
+ --duration-settle: 560ms;
148
+ --duration-reveal: 850ms;
149
+ --duration-ink: 900ms;
150
+ --press-depth: 0.97;
151
+ --duration-pop: 240ms; /* popovers, menus and tooltips: the reveal curve, kept quick */
152
+ --duration-leave: 140ms; /* anything closing leaves on snap */
153
+ --stagger-step: 40ms; /* lists ink in one row after another */
154
+ --distance-step: 1.5rem; /* how far a flow's next step travels as it inks in */
155
+ --duration-thinking: 1400ms;
156
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
157
+ --ease-exit: cubic-bezier(0.4, 0, 1, 1);
158
+ --duration-fast: 120ms;
159
+ --duration-base: 200ms;
160
+ --duration-slow: 320ms;
161
+ --duration-loader: 1200ms;
162
+ --loader-step: 160ms;
163
+ --loader-lift: -2px;
164
+ }
165
+
166
+ .dark {
167
+ color-scheme: dark;
168
+
169
+ --color-surface: hsl(30 8% 11%);
170
+ --color-surface-muted: hsl(30 7% 8%);
171
+ --color-surface-subtle: hsl(30 7% 16%);
172
+ --color-surface-emphasis: hsl(30 6% 24%);
173
+ --color-surface-inverted: hsl(35 18% 94%);
174
+
175
+ --color-fg-emphasis: hsl(35 18% 94%);
176
+ --color-fg: hsl(35 9% 82%);
177
+ --color-fg-subtle: hsl(35 6% 69%);
178
+ --color-fg-muted: hsl(30 5% 45%);
179
+ --color-fg-inverted: hsl(30 8% 12%);
180
+
181
+ --color-line-subtle: hsl(30 6% 20%);
182
+ --color-line: hsl(30 6% 30%);
183
+ --color-line-emphasis: hsl(30 6% 47%);
184
+ --color-line-input: hsl(30 6% 48%);
185
+
186
+ --color-brand: hsl(35 18% 94%);
187
+ --color-brand-emphasis: hsl(35 12% 84%);
188
+ --color-on-brand: hsl(30 8% 12%);
189
+
190
+ --color-success: hsl(140 24% 68%);
191
+ --color-success-subtle: hsl(140 16% 15%);
192
+ --color-success-line: hsl(140 18% 30%);
193
+ --color-attention: hsl(35 42% 70%);
194
+ --color-attention-subtle: hsl(35 22% 15%);
195
+ --color-attention-line: hsl(35 26% 32%);
196
+ --color-error: hsl(12 42% 75%);
197
+ --color-error-subtle: hsl(12 20% 15%);
198
+ --color-error-line: hsl(12 24% 32%);
199
+ --color-info: hsl(210 24% 74%);
200
+ --color-system-blue: hsl(241.57 100% 77.45%); /* SuperXD #8f8cff on dark */
201
+ --color-done: hsl(241.57 100% 77.45%);
202
+ --color-on-done: hsl(30 8% 12%);
203
+ --color-info-subtle: hsl(210 16% 15%);
204
+ --color-info-line: hsl(210 20% 32%);
205
+ --color-destructive: hsl(10 42% 38%);
206
+ --color-on-destructive: hsl(40 30% 98%);
207
+
208
+ --color-focus: hsl(241.57 100% 77.45%);
209
+ --color-overlay: hsl(30 8% 4% / 0.6);
210
+
211
+ --shadow-control: 0 1px 2px 0 hsl(30 8% 4% / 0.4);
212
+ --shadow-popover: 0 8px 24px -6px hsl(30 8% 4% / 0.6), 0 0 0 1px hsl(35 18% 94% / 0.06);
213
+ --shadow-dialog: 0 24px 48px -12px hsl(30 8% 4% / 0.7), 0 0 0 1px hsl(35 18% 94% / 0.06);
214
+ }
215
+
216
+ /*
217
+ * Squircle corners, SuperXD's shape, where the browser can draw them. A squircle needs a
218
+ * larger radius to read as the same size, so the radii grow with it. Other browsers keep
219
+ * the rounded corners above.
220
+ */
221
+ @supports (corner-shape: squircle) {
222
+ :root {
223
+ --corner-shape: squircle;
224
+ --radius-control: 1.0625rem;
225
+ --radius-cell: 0.625rem;
226
+ --radius-surface: 1.25rem;
227
+ }
228
+ }
package/styles.css ADDED
@@ -0,0 +1,3 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Instrument Sans Variable", "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--spacing:.25rem;--breakpoint-md:48rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-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:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--ease-out:cubic-bezier(0, 0, .2, 1);--aspect-video:16 / 9;--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);--color-surface:#fbfaf8;--color-surface-muted:#f5f3ef;--color-surface-subtle:#ece9e4;--color-surface-emphasis:#e2deda;--color-surface-inverted:#312e2b;--color-fg-emphasis:#312e2b;--color-fg:#4c4743;--color-fg-subtle:#6b6661;--color-fg-muted:#a6a19b;--color-fg-inverted:#fbfaf8;--color-system-blue:#2322ff;--color-done:#2322ff;--color-on-done:#fbfaf8;--color-line-subtle:#e2deda;--color-line:#d1ccc7;--color-line-emphasis:#938a80;--color-line-input:#8c857d;--color-brand:#3d3834;--color-brand-emphasis:#4c4743;--color-on-brand:#fbfaf8;--color-success:#385c47;--color-success-subtle:#eaf0ec;--color-success-line:#bdd0c4;--color-attention:#70512e;--color-attention-subtle:#f4efe6;--color-attention-line:#d6c7b3;--color-error:#7b4337;--color-error-subtle:#f4edeb;--color-error-line:#dbc7c2;--color-info:#46596d;--color-info-subtle:#edf0f3;--color-info-line:#c3ccd5;--color-destructive:#8a4638;--color-on-destructive:#fbfaf8;--color-focus:#2322ff;--color-overlay:#211f1c73;--radius-control:.625rem;--radius-cell:.375rem;--radius-surface:.75rem;--radius-pill:9999px;--font-heading:"Instrument Sans Variable", "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--heading-weight:600;--heading-tracking:-.015em;--spacing-control-sm:2.25rem;--spacing-control-md:2.75rem;--spacing-control-lg:3rem;--spacing-control-sm-x:1rem;--spacing-control-md-x:1.25rem;--spacing-control-lg-x:1.5rem;--spacing-control-y:.75rem;--spacing-avatar-sm:1.75rem;--spacing-avatar-md:2.25rem;--spacing-avatar-lg:2.75rem;--spacing-calendar-slot:3.5rem;--spacing-calendar-ruler:4.5rem;--spacing-calendar-viewport:36rem;--spacing-conversation:40rem;--spacing-conversation-example:36rem;--container-conversation:42rem;--text-avatar-sm:.625rem;--icon-stroke:2;--shadow-control:0 1px 2px 0 #211f1c0d;--shadow-popover:0 8px 24px -6px #211f1c1f, 0 2px 6px -2px #211f1c14;--shadow-dialog:0 24px 48px -12px #211f1c38, 0 4px 12px -4px #211f1c1a;--ease-snap:cubic-bezier(.3, 0, .15, 1);--ease-settle:linear(0, .06 4.2%, .198 8.3%, .364 12.5%, .528 16.7%, .672 20.8%, .789 25%, .879 29.2%, .942 33.3%, .984 37.5%, 1.01 41.7%, 1.023 45.8%, 1.028 50%, 1.028 54.2%, 1.024 58.3%, 1.02 62.5%, 1.015 66.7%, 1.011 70.8%, 1.007 75%, 1.004 79.2%, 1.002 83.3%, 1.001 87.5%, 1);--ease-reveal:cubic-bezier(.16, 1, .3, 1);--ease-ink:cubic-bezier(.65, 0, .35, 1);--duration-snap:90ms;--duration-settle:.56s;--duration-reveal:.85s;--duration-ink:.9s;--press-depth:.97;--duration-pop:.24s;--duration-leave:.14s;--stagger-step:40ms;--distance-step:1.5rem;--duration-thinking:1.4s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--duration-loader:1.2s;--loader-step:.16s;--loader-lift:-2px;--animate-fade-in:fade-in var(--duration-base) var(--ease-standard) both;--animate-pulse-soft:pulse-soft 1.6s ease-in-out infinite;--animate-reveal-in:rise-in var(--duration-reveal) var(--ease-reveal) both;--animate-pop-in:pop-in var(--duration-pop) var(--ease-reveal) both;--animate-pop-out:pop-out var(--duration-leave) var(--ease-snap) both;--animate-fade-out:fade-out var(--duration-leave) var(--ease-snap) both;--animate-dialog-settle:dialog-settle var(--duration-settle) var(--ease-settle) both;--animate-drawer-settle:drawer-settle var(--duration-settle) var(--ease-settle) both;--animate-drawer-out:drawer-out var(--duration-leave) var(--ease-snap) both;--animate-toast-in:toast-in var(--duration-settle) var(--ease-settle) both;--animate-done-in:done-in var(--duration-settle) var(--ease-settle) both}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{background-color:var(--color-surface);color:var(--color-fg)}:where(a,button,[tabindex]:not(input,textarea)):focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.-top-10{top:calc(var(--spacing) * -10)}.top-0{top:0}.top-1\/2{top:50%}.right-4{right:calc(var(--spacing) * 4)}.right-full{right:100%}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:0}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-px{margin-top:1px}.mr-2{margin-right:calc(var(--spacing) * 2)}.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-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-avatar-lg{width:var(--spacing-avatar-lg);height:var(--spacing-avatar-lg)}.size-avatar-md{width:var(--spacing-avatar-md);height:var(--spacing-avatar-md)}.size-avatar-sm{width:var(--spacing-avatar-sm);height:var(--spacing-avatar-sm)}.size-control-md{width:var(--spacing-control-md);height:var(--spacing-control-md)}.size-control-sm{width:var(--spacing-control-sm);height:var(--spacing-control-sm)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-32{height:calc(var(--spacing) * 32)}.h-\[calc\(var\(--spacing-calendar-slot\)\*2\)\]{height:calc(var(--spacing-calendar-slot) * 2)}.h-auto{height:auto}.h-calendar-slot{height:var(--spacing-calendar-slot)}.h-control-lg{height:var(--spacing-control-lg)}.h-control-md{height:var(--spacing-control-md)}.h-control-sm{height:var(--spacing-control-sm)}.h-conversation{height:var(--spacing-conversation)}.h-full{height:100%}.h-px{height:1px}.max-h-\(--spacing-calendar-viewport\){max-height:var(--spacing-calendar-viewport)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[calc\(100dvh-1rem\)\]{max-height:calc(100dvh - 1rem)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-h-\[min\(24rem\,60dvh\)\]{max-height:min(24rem,60dvh)}.max-h-\[min\(48rem\,calc\(100dvh-2rem\)\)\]{max-height:min(48rem,100dvh - 2rem)}.min-h-0{min-height:0}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-control-md{min-height:var(--spacing-control-md)}.min-h-control-sm{min-height:var(--spacing-control-sm)}.w-\(--trigger-width\){width:var(--trigger-width)}.w-1{width:var(--spacing)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2\/3{width:66.6667%}.w-3\/4{width:75%}.w-6{width:calc(var(--spacing) * 6)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.min-w-\(--trigger-width\){min-width:var(--trigger-width)}.min-w-0{min-width:0}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-control-md{min-width:var(--spacing-control-md)}.min-w-control-sm{min-width:var(--spacing-control-sm)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-64{flex-basis:calc(var(--spacing) * 64)}.border-collapse{border-collapse:collapse}.origin-\(--trigger-anchor-point\){transform-origin:var(--trigger-anchor-point)}.origin-left{transform-origin:0}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.press{transition:transform var(--duration-settle) var(--ease-settle), background-color var(--duration-snap) var(--ease-snap), border-color var(--duration-snap) var(--ease-snap), color var(--duration-snap) var(--ease-snap), box-shadow var(--duration-snap) var(--ease-snap), opacity var(--duration-snap) var(--ease-snap)}.press[data-pressed]:not([aria-expanded=true]){transform:scale(var(--press-depth));transition-duration:var(--duration-snap);transition-timing-function:var(--ease-snap)}.animate-done-in{animation:var(--animate-done-in)}.animate-pulse-soft{animation:var(--animate-pulse-soft)}.animate-reveal-in{animation:var(--animate-reveal-in)}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-20{gap:calc(var(--spacing) * 20)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}: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)))}.gap-y-2{row-gap:calc(var(--spacing) * 2)}: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-line-subtle>:not(:last-child)){border-color:var(--color-line-subtle)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded-\[2px\]{border-radius:2px}.rounded-\[calc\(var\(--radius-control\)-2px\)\]{border-radius:calc(var(--radius-control) - 2px)}.rounded-cell{border-radius:var(--radius-cell)}.rounded-control{border-radius:var(--radius-control)}.rounded-full{border-radius:2147483647px}.rounded-none{border-radius:0}.rounded-pill{border-radius:var(--radius-pill)}.rounded-surface{border-radius:var(--radius-surface)}.rounded-t-control{border-top-left-radius:var(--radius-control);border-top-right-radius:var(--radius-control)}.rounded-t-surface{border-top-left-radius:var(--radius-surface);border-top-right-radius:var(--radius-surface)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-attention-line{border-color:var(--color-attention-line)}.border-brand{border-color:var(--color-brand)}.border-error-line{border-color:var(--color-error-line)}.border-info-line{border-color:var(--color-info-line)}.border-line{border-color:var(--color-line)}.border-line-emphasis{border-color:var(--color-line-emphasis)}.border-line-input{border-color:var(--color-line-input)}.border-line-subtle{border-color:var(--color-line-subtle)}.border-success-line{border-color:var(--color-success-line)}.border-transparent{border-color:#0000}.bg-attention-subtle{background-color:var(--color-attention-subtle)}.bg-brand{background-color:var(--color-brand)}.bg-current{background-color:currentColor}.bg-destructive{background-color:var(--color-destructive)}.bg-done{background-color:var(--color-done)}.bg-error-subtle{background-color:var(--color-error-subtle)}.bg-fg-subtle{background-color:var(--color-fg-subtle)}.bg-info-subtle{background-color:var(--color-info-subtle)}.bg-line-emphasis{background-color:var(--color-line-emphasis)}.bg-line-subtle{background-color:var(--color-line-subtle)}.bg-overlay{background-color:var(--color-overlay)}.bg-success-subtle{background-color:var(--color-success-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-surface-emphasis{background-color:var(--color-surface-emphasis)}.bg-surface-muted{background-color:var(--color-surface-muted)}.bg-surface-subtle{background-color:var(--color-surface-subtle)}.bg-transparent{background-color:#0000}.\[stroke-width\:var\(--icon-stroke\)\]{stroke-width:var(--icon-stroke)}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-control-lg-x{padding-inline:var(--spacing-control-lg-x)}.px-control-md-x{padding-inline:var(--spacing-control-md-x)}.px-control-sm-x{padding-inline:var(--spacing-control-sm-x)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-control-y{padding-block:var(--spacing-control-y)}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-control-y{padding-top:var(--spacing-control-y)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.type-heading{font-family:var(--font-heading);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--heading-weight);letter-spacing:var(--heading-tracking)}.type-title{font-family:var(--font-heading);font-size:var(--text-xl);line-height:var(--text-xl--line-height);font-weight:var(--heading-weight);letter-spacing:var(--heading-tracking)}.font-mono{font-family:var(--font-mono)}.type-body{font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:400}.type-caption{font-size:var(--text-xs);line-height:var(--text-xs--line-height);font-weight:500}.type-label{font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:500}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-avatar-sm{font-size:var(--text-avatar-sm)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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)}.text-pretty{text-wrap:pretty}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-attention{color:var(--color-attention)}.text-error{color:var(--color-error)}.text-fg{color:var(--color-fg)}.text-fg-emphasis{color:var(--color-fg-emphasis)}.text-fg-subtle{color:var(--color-fg-subtle)}.text-info{color:var(--color-info)}.text-on-brand{color:var(--color-on-brand)}.text-on-destructive{color:var(--color-on-destructive)}.text-on-done{color:var(--color-on-done)}.text-success{color:var(--color-success)}.text-system-blue{color:var(--color-system-blue)}.numeric{font-variant-numeric:tabular-nums}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-line-emphasis{-webkit-text-decoration-color:var(--color-line-emphasis);-webkit-text-decoration-color:var(--color-line-emphasis);-webkit-text-decoration-color:var(--color-line-emphasis);text-decoration-color:var(--color-line-emphasis)}.underline-offset-4{text-underline-offset:4px}.underline-offset-\[3px\]{text-underline-offset:3px}.shadow{--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)}.shadow-control{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#211f1c0d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-dialog{--tw-shadow:0 24px 48px -12px var(--tw-shadow-color,#211f1c38), 0 4px 12px -4px var(--tw-shadow-color,#211f1c1a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-popover{--tw-shadow:0 8px 24px -6px var(--tw-shadow-color,#211f1c1f), 0 2px 6px -2px var(--tw-shadow-color,#211f1c14);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--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)}.shadow-surface{--tw-shadow-color:#fbfaf8}@supports (color:color-mix(in lab, red, red)){.shadow-surface{--tw-shadow-color:color-mix(in oklab, var(--color-surface) var(--tw-shadow-alpha), transparent)}}.ring-surface{--tw-ring-color:var(--color-surface)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,box-shadow\]{transition-property:background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,scale\]{transition-property:background-color,border-color,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,scale\]{transition-property:border-color,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[rotate\]{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\,border-color\]{transition-property:scale,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\]{transition-property:scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[translate\,scale\]{transition-property:translate,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[translate\,width\]{transition-property:translate,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\(--duration-base\){--tw-duration:var(--duration-base);transition-duration:var(--duration-base)}.duration-\(--duration-fast\){--tw-duration:var(--duration-fast);transition-duration:var(--duration-fast)}.duration-\(--duration-settle\){--tw-duration:var(--duration-settle);transition-duration:var(--duration-settle)}.duration-\(--duration-snap\){--tw-duration:var(--duration-snap);transition-duration:var(--duration-snap)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.ease-settle{--tw-ease:var(--ease-settle);transition-timing-function:var(--ease-settle)}.ease-snap{--tw-ease:var(--ease-snap);transition-timing-function:var(--ease-snap)}.ease-standard{--tw-ease:var(--ease-standard);transition-timing-function:var(--ease-standard)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:var\(--duration-pop\)\]{animation-delay:var(--duration-pop)}.\[corner-shape\:var\(--corner-shape\,round\)\],.squircle{corner-shape:var(--corner-shape,round)}.group-aria-expanded\/trigger\:rotate-180:is(:where(.group\/trigger)[aria-expanded=true] *){rotate:180deg}.group-data-disabled\:text-fg-muted:is(:where(.group)[data-disabled] *){color:var(--color-fg-muted)}.group-data-disabled\:opacity-50:is(:where(.group)[data-disabled] *){opacity:.5}.group-data-expanded\:rotate-180:is(:where(.group)[data-expanded] *){rotate:180deg}.group-data-hovered\:ring-surface-muted:is(:where(.group)[data-hovered] *){--tw-ring-color:var(--color-surface-muted)}.group-data-indeterminate\:border-brand:is(:where(.group)[data-indeterminate] *){border-color:var(--color-brand)}.group-data-indeterminate\:bg-brand:is(:where(.group)[data-indeterminate] *){background-color:var(--color-brand)}.group-data-indeterminate\:text-on-brand:is(:where(.group)[data-indeterminate] *){color:var(--color-on-brand)}.group-data-pressed\:scale-x-125:is(:where(.group)[data-pressed] *){--tw-scale-x:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-data-pressed\:scale-\(--press-depth\):is(:where(.group)[data-pressed] *){scale:var(--press-depth)}.group-data-pressed\:duration-\(--duration-snap\):is(:where(.group)[data-pressed] *){--tw-duration:var(--duration-snap);transition-duration:var(--duration-snap)}.group-data-pressed\:ease-snap:is(:where(.group)[data-pressed] *){--tw-ease:var(--ease-snap);transition-timing-function:var(--ease-snap)}.group-data-selected\:visible:is(:where(.group)[data-selected] *){visibility:visible}.group-data-selected\:origin-right:is(:where(.group)[data-selected] *){transform-origin:100%}.group-data-selected\:translate-x-4:is(:where(.group)[data-selected] *){--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-selected\:scale-100:is(:where(.group)[data-selected] *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-data-selected\:border-brand:is(:where(.group)[data-selected] *){border-color:var(--color-brand)}.group-data-selected\:bg-brand:is(:where(.group)[data-selected] *){background-color:var(--color-brand)}.group-data-selected\:bg-on-brand:is(:where(.group)[data-selected] *){background-color:var(--color-on-brand)}.group-data-selected\:text-on-brand:is(:where(.group)[data-selected] *){color:var(--color-on-brand)}.group-data-selected\:ring-surface-muted:is(:where(.group)[data-selected] *){--tw-ring-color:var(--color-surface-muted)}.placeholder\:text-fg-subtle::placeholder{color:var(--color-fg-subtle)}.first\:pt-0:first-child{padding-top:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}.empty\:hidden:empty{display:none}.focus-within\:border-line-emphasis:focus-within{border-color:var(--color-line-emphasis)}.focus-visible\:focus-ring:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.focus-visible\:-outline-offset-2:focus-visible{outline-offset:calc(2px * -1)}.has-data-focus-visible\:border-focus:has([data-focus-visible]){border-color:var(--color-focus)}.has-data-focus-visible\:ring-2:has([data-focus-visible]){--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)}.has-data-focus-visible\:ring-focus\/15:has([data-focus-visible]){--tw-ring-color:#2322ff26}@supports (color:color-mix(in lab, red, red)){.has-data-focus-visible\:ring-focus\/15:has([data-focus-visible]){--tw-ring-color:color-mix(in oklab, var(--color-focus) 15%, transparent)}}.data-disabled\:cursor-default[data-disabled]{cursor:default}.data-disabled\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-disabled\:bg-surface-muted[data-disabled]{background-color:var(--color-surface-muted)}.data-disabled\:text-fg-muted[data-disabled]{color:var(--color-fg-muted)}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-done\:border-done\![data-done]{border-color:var(--color-done)!important}.data-done\:bg-done\![data-done]{background-color:var(--color-done)!important}.data-done\:text-on-done\![data-done]{color:var(--color-on-done)!important}.data-done\:shadow-none\![data-done]{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.data-dragging\:scale-110[data-dragging]{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-dragging\:border-brand[data-dragging]{border-color:var(--color-brand)}.data-entering\:animate-dialog-settle[data-entering]{animation:var(--animate-dialog-settle)}.data-entering\:animate-drawer-settle[data-entering]{animation:var(--animate-drawer-settle)}.data-entering\:animate-fade-in[data-entering]{animation:var(--animate-fade-in)}.data-entering\:animate-pop-in[data-entering]{animation:var(--animate-pop-in)}.data-entering\:animate-toast-in[data-entering]{animation:var(--animate-toast-in)}.data-exiting\:animate-drawer-out[data-exiting]{animation:var(--animate-drawer-out)}.data-exiting\:animate-fade-out[data-exiting]{animation:var(--animate-fade-out)}.data-exiting\:animate-pop-out[data-exiting]{animation:var(--animate-pop-out)}.data-focus-visible\:focus-ring[data-focus-visible]{outline:2px solid var(--color-focus);outline-offset:2px}.data-focus-within\:border-brand[data-focus-within]{border-color:var(--color-brand)}.data-focus-within\:ring-2[data-focus-within]{--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)}.data-focus-within\:ring-brand\/15[data-focus-within]{--tw-ring-color:#3d383426}@supports (color:color-mix(in lab, red, red)){.data-focus-within\:ring-brand\/15[data-focus-within]{--tw-ring-color:color-mix(in oklab, var(--color-brand) 15%, transparent)}}.data-focus-within\:focus-ring[data-focus-within]{outline:2px solid var(--color-focus);outline-offset:2px}.data-focused\:border-focus[data-focused]{border-color:var(--color-focus)}.data-focused\:bg-brand[data-focused]{background-color:var(--color-brand)}.data-focused\:bg-surface-subtle[data-focused]{background-color:var(--color-surface-subtle)}.data-focused\:text-fg-emphasis[data-focused]{color:var(--color-fg-emphasis)}.data-focused\:text-on-brand[data-focused]{color:var(--color-on-brand)}.data-focused\:ring-2[data-focused]{--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)}.data-focused\:ring-focus\/15[data-focused]{--tw-ring-color:#2322ff26}@supports (color:color-mix(in lab, red, red)){.data-focused\:ring-focus\/15[data-focused]{--tw-ring-color:color-mix(in oklab, var(--color-focus) 15%, transparent)}}.data-hovered\:border-line-emphasis[data-hovered]{border-color:var(--color-line-emphasis)}.data-hovered\:bg-brand-emphasis[data-hovered]{background-color:var(--color-brand-emphasis)}.data-hovered\:bg-destructive\/90[data-hovered]{background-color:#8a4638e6}@supports (color:color-mix(in lab, red, red)){.data-hovered\:bg-destructive\/90[data-hovered]{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.data-hovered\:bg-surface-muted[data-hovered]{background-color:var(--color-surface-muted)}.data-hovered\:bg-surface-subtle[data-hovered]{background-color:var(--color-surface-subtle)}.data-hovered\:text-fg-emphasis[data-hovered]{color:var(--color-fg-emphasis)}.data-hovered\:underline[data-hovered]{text-decoration-line:underline}.data-hovered\:decoration-fg-emphasis[data-hovered]{-webkit-text-decoration-color:var(--color-fg-emphasis);-webkit-text-decoration-color:var(--color-fg-emphasis);-webkit-text-decoration-color:var(--color-fg-emphasis);text-decoration-color:var(--color-fg-emphasis)}.data-hovered\:shadow-\[inset_0_0_0_1px_var\(--color-line-emphasis\)\][data-hovered]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--color-line-emphasis));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-invalid\:border-error[data-invalid]{border-color:var(--color-error)}.data-invalid\:data-focused\:ring-error\/15[data-invalid][data-focused]{--tw-ring-color:#7b433726}@supports (color:color-mix(in lab, red, red)){.data-invalid\:data-focused\:ring-error\/15[data-invalid][data-focused]{--tw-ring-color:color-mix(in oklab, var(--color-error) 15%, transparent)}}.data-placeholder\:text-fg-subtle[data-placeholder]{color:var(--color-fg-subtle)}.data-pressed\:bg-brand-emphasis[data-pressed]{background-color:var(--color-brand-emphasis)}.data-pressed\:bg-destructive\/85[data-pressed]{background-color:#8a4638d9}@supports (color:color-mix(in lab, red, red)){.data-pressed\:bg-destructive\/85[data-pressed]{background-color:color-mix(in oklab, var(--color-destructive) 85%, transparent)}}.data-pressed\:bg-surface-emphasis[data-pressed]{background-color:var(--color-surface-emphasis)}.data-pressed\:bg-surface-subtle[data-pressed]{background-color:var(--color-surface-subtle)}.data-selected\:border-brand[data-selected]{border-color:var(--color-brand)}.data-selected\:bg-brand[data-selected]{background-color:var(--color-brand)}.data-selected\:bg-surface-inverted[data-selected]{background-color:var(--color-surface-inverted)}.data-selected\:bg-surface-muted[data-selected]{background-color:var(--color-surface-muted)}.data-selected\:bg-surface-subtle[data-selected]{background-color:var(--color-surface-subtle)}.data-selected\:font-medium[data-selected]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-selected\:text-fg-emphasis[data-selected]{color:var(--color-fg-emphasis)}.data-selected\:text-fg-inverted[data-selected]{color:var(--color-fg-inverted)}.data-selected\:text-on-brand[data-selected]{color:var(--color-on-brand)}.data-selected\:shadow-\[inset_0_0_0_1px_var\(--color-brand\)\][data-selected]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--color-brand));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}}@container (width>=48rem){.\@3xl\:sticky{position:sticky}.\@3xl\:top-6{top:calc(var(--spacing) * 6)}.\@3xl\:col-span-2{grid-column:span 2/span 2}.\@3xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\>svg\]\:size-full>svg{width:100%;height:100%}}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-surface:#1e1c1a;--color-surface-muted:#161413;--color-surface-subtle:#2c2926;--color-surface-emphasis:#413d3a;--color-surface-inverted:#f2f0ed;--color-fg-emphasis:#f2f0ed;--color-fg:#d5d2cd;--color-fg-subtle:#b5b1ab;--color-fg-muted:#78736d;--color-fg-inverted:#211f1c;--color-line-subtle:#363330;--color-line:#514d48;--color-line-emphasis:#7f7871;--color-line-input:#827a73;--color-brand:#f2f0ed;--color-brand-emphasis:#dbd7d1;--color-on-brand:#211f1c;--color-success:#9ac1a7;--color-success-subtle:#202c24;--color-success-line:#3f5a48;--color-attention:#d3b892;--color-attention-subtle:#2f281e;--color-attention-line:#67553c;--color-error:#daafa4;--color-error-subtle:#2e221f;--color-error-line:#65463e;--color-info:#adbdcd;--color-system-blue:#8f8cff;--color-done:#8f8cff;--color-on-done:#211f1c;--color-info-subtle:#20262c;--color-info-line:#415262;--color-destructive:#8a4638;--color-on-destructive:#fbfaf8;--color-focus:#8f8cff;--color-overlay:#0b0a0999;--shadow-control:0 1px 2px 0 #0b0a0966;--shadow-popover:0 8px 24px -6px #0b0a0999, 0 0 0 1px #f2f0ed0f;--shadow-dialog:0 24px 48px -12px #0b0a09b3, 0 0 0 1px #f2f0ed0f}@supports (corner-shape:squircle){:root{--corner-shape:squircle;--radius-control:1.0625rem;--radius-cell:.625rem;--radius-surface:1.25rem}}.thinking-matrix{color:var(--color-done);flex:none;grid-template-columns:repeat(3,.25rem);gap:.125rem;display:inline-grid}.thinking-matrix i{opacity:.2;width:.25rem;height:.25rem;animation:thinking-pixel var(--duration-thinking) var(--ease-snap) infinite;background:currentColor;border-radius:1px}.thinking-matrix i:nth-child(2){animation-delay:calc(var(--duration-thinking) * .07)}.thinking-matrix i:nth-child(3){animation-delay:calc(var(--duration-thinking) * .14)}.thinking-matrix i:nth-child(6){animation-delay:calc(var(--duration-thinking) * .21)}.thinking-matrix i:nth-child(9){animation-delay:calc(var(--duration-thinking) * .28)}.thinking-matrix i:nth-child(8){animation-delay:calc(var(--duration-thinking) * .35)}.thinking-matrix i:nth-child(7){animation-delay:calc(var(--duration-thinking) * .42)}.thinking-matrix i:nth-child(4){animation-delay:calc(var(--duration-thinking) * .5)}.thinking-matrix i:nth-child(5){animation-delay:calc(var(--duration-thinking) * .57)}@keyframes thinking-pixel{0%,40%,to{opacity:.2}12%{opacity:1}}.stream-word{transition:color .7s var(--ease-ink)}.stream-word--fresh{color:var(--color-info)}.stream-caret{background:var(--color-info);vertical-align:-.15em;width:.5em;height:1.05em;margin-left:2px;animation:1s steps(2,jump-none) infinite stream-caret;display:inline-block}@keyframes stream-caret{50%{opacity:.2}}@media (prefers-reduced-motion:reduce){.thinking-matrix i{opacity:.6;animation:none!important}.stream-caret{animation:none!important}}:root:active-view-transition-type(flow-forward,flow-back,flow-swap)::view-transition-old(root){mix-blend-mode:normal;animation:none}:root:active-view-transition-type(flow-forward,flow-back,flow-swap)::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-group(.flow-motion){animation-duration:calc(var(--duration-settle) * var(--flow-pace,1));animation-timing-function:var(--ease-settle)}::view-transition-old(.flow-card){opacity:0;animation:none}::view-transition-new(.flow-card){width:100%;height:100%;animation:none}::view-transition-old(.flow-travel){width:auto;height:100%;animation-duration:calc(var(--duration-pop) * var(--flow-pace,1));animation-timing-function:var(--ease-reveal)}::view-transition-new(.flow-travel){width:auto;height:100%;animation-duration:calc(var(--duration-pop) * var(--flow-pace,1));animation-timing-function:var(--ease-reveal)}::view-transition-old(.flow-keep){width:auto;height:100%;animation-duration:calc(var(--duration-pop) * var(--flow-pace,1));animation-timing-function:var(--ease-reveal)}::view-transition-new(.flow-keep){width:auto;height:100%;animation-duration:calc(var(--duration-pop) * var(--flow-pace,1));animation-timing-function:var(--ease-reveal)}::view-transition-old(.flow-out){animation:flow-fade-out calc(var(--duration-leave) * var(--flow-pace,1)) var(--ease-snap) both}::view-transition-old(.flow-out-swap){animation:flow-fade-out calc(var(--duration-leave) * var(--flow-pace,1)) var(--ease-snap) both}::view-transition-new(.flow-in){animation:flow-ink-down calc(var(--duration-reveal) * var(--flow-pace,1)) var(--ease-ink) calc(var(--duration-leave) * .5 * var(--flow-pace,1)) both}::view-transition-new(.flow-in-swap){animation:flow-fade-in calc(var(--duration-pop) * var(--flow-pace,1)) var(--ease-reveal) both}@media (prefers-reduced-motion:reduce){::view-transition-group(.flow-motion){animation:none!important}::view-transition-image-pair(.flow-motion){animation:none!important}::view-transition-old(.flow-motion){animation:none!important}::view-transition-new(.flow-motion){animation:none!important}}@keyframes flow-fade-in{0%{opacity:0}}@keyframes flow-fade-out{to{opacity:0}}@keyframes flow-ink-down{0%{translate:0 calc(var(--distance-step) * .25);-webkit-mask-image:linear-gradient(#000 45%,#0000 55%);mask-image:linear-gradient(#000 45%,#0000 55%);-webkit-mask-position:0 100%;mask-position:0 100%;-webkit-mask-size:100% 260%;mask-size:100% 260%}to{translate:0;-webkit-mask-image:linear-gradient(#000 45%,#0000 55%);mask-image:linear-gradient(#000 45%,#0000 55%);-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:100% 260%;mask-size:100% 260%}}.loader-dots circle{transform-box:fill-box;transform-origin:50%;animation:loader-dot var(--duration-loader) var(--ease-settle) infinite}.loader-dots circle:nth-child(2){animation-delay:var(--loader-step)}.loader-dots circle:nth-child(3){animation-delay:calc(var(--loader-step) * 2)}@keyframes loader-dot{0%,70%,to{opacity:.5;transform:scale(1)}25%{opacity:1;transform:scale(.6)}}.rounded-control,.rounded-cell,.rounded-surface{corner-shape:var(--corner-shape,round)}.conversation-markdown{overflow-wrap:anywhere}.conversation-markdown>*+*{margin-top:calc(var(--spacing) * 4)}.conversation-markdown :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--heading-weight);line-height:var(--text-base--line-height);letter-spacing:var(--heading-tracking)}.conversation-markdown :is(ul,ol){padding-left:calc(var(--spacing) * 5)}.conversation-markdown ul{list-style:outside}.conversation-markdown ol{list-style:decimal}.conversation-markdown li+li{margin-top:calc(var(--spacing) * 2)}.conversation-markdown blockquote{border-left:2px solid var(--color-line-emphasis);padding-left:calc(var(--spacing) * 4);color:var(--color-fg-subtle)}.conversation-markdown pre{border:1px solid var(--color-line-subtle);border-radius:var(--radius-control);background:var(--color-surface-muted);max-width:100%;overflow-x:auto}.conversation-markdown pre code{padding:calc(var(--spacing) * 4);font-size:var(--text-xs);font-family:var(--font-mono);line-height:var(--text-xs--line-height);white-space:pre;display:block}.conversation-markdown :not(pre)>code{border-radius:var(--radius-cell);background:var(--color-surface-subtle);padding-inline:var(--spacing);font-family:var(--font-mono);font-size:var(--text-xs)}.conversation-touch-hint{display:none}@media (pointer:coarse){.conversation-desktop-hint{display:none}.conversation-touch-hint{display:inline}}@media (prefers-reduced-motion:reduce){.loader-dots circle{opacity:1;transform:none;animation:none!important}}.calendar-grid-event{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * 2);overflow:hidden}.calendar-grid-event>span:nth-child(2){-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.calendar-grid-scroll,.calendar-grid-heading,.calendar-grid-allday{scrollbar-gutter:stable}.calendar-grid-heading,.calendar-grid-allday{overflow-y:hidden}.calendar-grid-heading [data-focus-visible]{outline-offset:-2px}.calendar-grid-scroll{overscroll-behavior:contain}.calendar-grid-event>span:first-child{display:block}.calendar-grid-event>span:first-child>span:last-child{right:var(--spacing);bottom:var(--spacing);position:absolute}.generative-chart [data-aui=chart-frame]{gap:calc(var(--spacing) * 2);grid-template-columns:auto minmax(0,1fr);display:grid}.generative-chart [data-aui=chart]{width:100%;height:calc(var(--spacing) * 40);color:var(--color-brand);display:block;overflow:visible}.generative-chart [data-aui=chart-ticks]{color:var(--color-fg-subtle);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;display:flex}.generative-chart [data-aui=chart-xlabels]{margin-top:calc(var(--spacing) * 3);color:var(--color-fg-subtle);font-size:var(--text-xs);grid-column:2;justify-content:space-between;display:flex}.generative-chart [data-aui=chart-grid],.generative-chart [data-aui=chart-zero]{color:var(--color-line-subtle)}.generative-chart [data-aui-series="0"]{color:var(--color-brand)}.generative-chart [data-aui-series="1"]{color:var(--color-info);stroke-dasharray:4 2}.generative-chart [data-aui-series="2"]{color:var(--color-success);stroke-dasharray:1 2}.generative-chart [data-aui-series="3"]{color:var(--color-attention);stroke-dasharray:6 2}.generative-chart [data-aui-series="4"]{color:var(--color-fg-subtle);stroke-dasharray:2 4}.generative-chart [data-aui=chart-legend]{gap:calc(var(--spacing) * 4);font-size:var(--text-xs);color:var(--color-fg-subtle);flex-wrap:wrap;grid-column:1/-1;display:flex}.generative-chart [data-aui=chart-legend-item]{align-items:center;gap:calc(var(--spacing) * 2);display:inline-flex}.generative-chart [data-aui=chart-legend-swatch]{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2);border-radius:var(--radius-cell);background:currentColor;display:inline-block}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-leading{syntax:"*";inherits:false}@property --tw-font-weight{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(4px)}}@keyframes pulse-soft{50%{opacity:.55}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}@keyframes pop-out{to{opacity:0;transform:scale(.98)}}@keyframes fade-out{to{opacity:0}}@keyframes dialog-settle{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes drawer-settle{0%{transform:translateY(100%)}}@keyframes drawer-out{to{transform:translateY(100%)}}@keyframes done-in{0%{opacity:0;transform:scale(.4)}}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}}.reusable-markdown .reusable-code pre{border:0;border-radius:0}.reusable-markdown .reusable-code pre code{padding:0}.reusable-markdown table :is(th,td){padding:calc(var(--spacing) * 3);border-bottom:1px solid var(--color-line-subtle);text-align:start;vertical-align:top}.reusable-markdown table th{background:var(--color-surface-muted);font-weight:var(--heading-weight)}.reusable-markdown table tr:last-child td{border-bottom:0}
3
+ /*$vite$:1*/
package/styles.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ declare const sizes: {
2
+ readonly sm: "size-avatar-sm text-avatar-sm";
3
+ readonly md: "size-avatar-md text-xs";
4
+ readonly lg: "size-avatar-lg text-sm";
5
+ };
6
+ export interface AvatarProps {
7
+ name: string;
8
+ src?: string;
9
+ size?: keyof typeof sizes;
10
+ className?: string;
11
+ }
12
+ /** A person's photo, or their initials when there's no photo or it fails to load. */
13
+ export declare function Avatar({ name, src, size, className }: AvatarProps): import("react").JSX.Element;
14
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { ReactNode, Ref } from "react";
2
+ import { type ButtonProps as AriaButtonProps, type LinkProps as AriaLinkProps } from "react-aria-components";
3
+ export type ButtonVariant = "primary" | "secondary" | "ghost" | "destructive";
4
+ export type ButtonSize = "sm" | "md" | "lg" | "icon-sm" | "icon-md";
5
+ /** The button classes, for anything that should look like a button (links, triggers). */
6
+ export declare function buttonStyles({ variant, size, className, }?: {
7
+ variant?: ButtonVariant;
8
+ size?: ButtonSize;
9
+ className?: string;
10
+ }): string;
11
+ export interface ButtonProps extends AriaButtonProps {
12
+ ref?: Ref<HTMLButtonElement>;
13
+ variant?: ButtonVariant;
14
+ size?: ButtonSize;
15
+ /**
16
+ * Shown with a spinner while `isPending` is true, for example "Booking".
17
+ * Without it the label stays in place (so the width holds) under a spinner.
18
+ */
19
+ pendingLabel?: ReactNode;
20
+ /**
21
+ * The moment the action finished, for example "Saved". The button turns SuperXD's
22
+ * ultramarine with a tick, keeping its width. Announce the result nearby as well.
23
+ */
24
+ isDone?: boolean;
25
+ /** Shown with the tick while `isDone` is true. Without it the button's own label stays. */
26
+ doneLabel?: ReactNode;
27
+ }
28
+ export declare function Button({ variant, size, pendingLabel, isDone, doneLabel, className, children, ...props }: ButtonProps): import("react").JSX.Element;
29
+ export interface ButtonLinkProps extends AriaLinkProps {
30
+ variant?: ButtonVariant;
31
+ size?: ButtonSize;
32
+ }
33
+ /** A link that looks like a button. Use it when the action goes somewhere. */
34
+ export declare function ButtonLink({ variant, size, className, ...props }: ButtonLinkProps): import("react").JSX.Element;
35
+ /** An inline text link. */
36
+ export declare function TextLink({ className, ...props }: AriaLinkProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from "react";
2
+ export type CalloutTone = "neutral" | "info" | "success" | "attention" | "error";
3
+ export interface CalloutProps {
4
+ tone?: CalloutTone;
5
+ title?: ReactNode;
6
+ children?: ReactNode;
7
+ /** Buttons or links shown under the message. */
8
+ actions?: ReactNode;
9
+ /** Replace or remove (null) the tone's icon. */
10
+ icon?: ReactNode | null;
11
+ /**
12
+ * How screen readers hear it when it appears: "polite" waits its turn,
13
+ * "assertive" interrupts. Leave unset for messages that are there on load.
14
+ */
15
+ live?: "polite" | "assertive";
16
+ className?: string;
17
+ }
18
+ /** A short message in the flow of the page: what happened and what to do next. */
19
+ export declare function Callout({ tone, title, children, actions, icon, live, className, }: CalloutProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ /** SuperXD's arrow marks the transition, centred in the space between state frames. */
2
+ export declare function CanvasConnector(): import("react").JSX.Element;
@@ -0,0 +1,34 @@
1
+ export declare const canvasCopy: {
2
+ previous: string;
3
+ loading: string;
4
+ ready: string;
5
+ details: string;
6
+ holding: string;
7
+ submitting: string;
8
+ failed: string;
9
+ checking: string;
10
+ confirm: string;
11
+ booked: string;
12
+ requested: string;
13
+ moved: string;
14
+ manage: string;
15
+ cancelling: string;
16
+ cancelled: string;
17
+ closed: string;
18
+ calendar: string;
19
+ event: string;
20
+ edit: string;
21
+ saving: string;
22
+ saved: string;
23
+ discard: string;
24
+ review: string;
25
+ applying: string;
26
+ partial: string;
27
+ complete: string;
28
+ denied: string;
29
+ conflict: string;
30
+ blocked: string;
31
+ uncertain: string;
32
+ support: string;
33
+ supportSaved: string;
34
+ };
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from "react";
2
+ import { type RecordableFrame } from "./recorder";
3
+ /** The visitor canvas opts in; exported product components keep their usual single screen. */
4
+ export declare const CanvasModeContext: import("react").Context<boolean>;
5
+ export declare const CanvasPastContext: import("react").Context<boolean>;
6
+ /** null disables observation; false records quietly; true also displays the recorded states. */
7
+ export declare const CanvasObservationContext: import("react").Context<boolean | null>;
8
+ export type CanvasFrame = RecordableFrame & {
9
+ label: string;
10
+ node: ReactNode;
11
+ /** The same width constraint as the component; caption and content share this frame. */
12
+ className?: string;
13
+ };
14
+ export declare function useCanvasObserver(): ((frame: CanvasFrame, source: string) => void) | null;
15
+ export declare function CanvasSequence({ children }: {
16
+ children: ReactNode;
17
+ }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
18
+ /** Publish presentation only: historical frames never mount another controller or adapter. */
19
+ export declare function CanvasStage({ phase, label, terminal, frameClassName, snapshot, children, }: {
20
+ phase: string;
21
+ label: string;
22
+ terminal?: boolean;
23
+ frameClassName?: string;
24
+ /** Complete presentation for a snapshot when the live content inherits a parent surface. */
25
+ snapshot?: ReactNode;
26
+ children: ReactNode;
27
+ }): ReactNode;
28
+ export declare function historicalNode(node: ReactNode): ReactNode;
29
+ /** Let a host-owned destination add its local steps to the existing response canvas. */
30
+ export declare function CanvasStageBridge({ publish, children, }: {
31
+ publish: (frame: CanvasFrame) => void;
32
+ children: ReactNode;
33
+ }): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export interface RecordableFrame {
2
+ phase: string;
3
+ terminal: boolean;
4
+ /** A result with its own stages replaces this enclosing result with its first child stage. */
5
+ yieldToChild?: boolean;
6
+ }
7
+ /** Records transitions, never the initial demo or a second copy of a nested result. */
8
+ export declare function createCanvasRecorder<T extends RecordableFrame>(): ((frame: T, source: string) => T[] | undefined) & {
9
+ start: () => void;
10
+ };
@@ -0,0 +1,11 @@
1
+ export interface DateTimeFieldProps {
2
+ label: string;
3
+ value: string;
4
+ onChange: (value: string) => void;
5
+ error?: string;
6
+ isDisabled?: boolean;
7
+ kind: "date" | "time";
8
+ className?: string;
9
+ }
10
+ /** Segmented keyboard entry, using the same height, padding and focus treatment as text fields. */
11
+ export declare function DateTimeField({ label, value, onChange, error, isDisabled, kind, className, }: DateTimeFieldProps): import("react").JSX.Element;
@@ -0,0 +1,38 @@
1
+ import { type ReactNode } from "react";
2
+ /** The view transition types a step change is tagged with. */
3
+ export declare const FLOW: {
4
+ readonly forward: "flow-forward";
5
+ readonly back: "flow-back";
6
+ readonly swap: "flow-swap";
7
+ };
8
+ export type FlowType = (typeof FLOW)[keyof typeof FLOW];
9
+ /** Forward or back between two step positions, or null when the step stays the same. */
10
+ export declare function flowDirection(from: number, to: number): FlowType | null;
11
+ /**
12
+ * Runs a state update as a step transition of the given type, or at once when there's none.
13
+ * Pass the start function from useTransition to know while the step is still on its way.
14
+ */
15
+ export declare function runFlow(type: FlowType | null, update: () => void, start?: (callback: () => void) => void): void;
16
+ /** The flow's frame: it resizes to the next step instead of jumping. Its child must be one element. */
17
+ export declare function FlowFrame({ children }: {
18
+ children: ReactNode;
19
+ }): import("react").JSX.Element;
20
+ /** One step's content. Give it a key per step, so the new step enters and the old one leaves. */
21
+ export declare function FlowStep({ children }: {
22
+ children: ReactNode;
23
+ }): import("react").JSX.Element;
24
+ /** Gives one flow its own names, so two flows on a page never claim the same moving part. */
25
+ export declare function FlowNames({ children }: {
26
+ children: ReactNode;
27
+ }): import("react").JSX.Element;
28
+ /**
29
+ * A part that carries over from one step to the next. A part that travels (the chosen time,
30
+ * from the list into the summary) moves to its new place; the others (the host, the event's
31
+ * name) stay put while the rest changes. Its child must be one element. Outside FlowNames, it
32
+ * renders the child as it is.
33
+ */
34
+ export declare function FlowShared({ part, travel, children, }: {
35
+ part: string;
36
+ travel?: boolean;
37
+ children: ReactNode;
38
+ }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;