@blakesteve/roster 4.5.0 → 4.6.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 CHANGED
@@ -41,7 +41,10 @@ npm install @tanstack/react-table
41
41
  ```
42
42
 
43
43
  ```tsx
44
- import { DataTable, type RosterTableFeatures } from "@blakesteve/roster/data-table";
44
+ import {
45
+ DataTable,
46
+ type RosterTableFeatures,
47
+ } from "@blakesteve/roster/data-table";
45
48
  ```
46
49
 
47
50
  It is a peer rather than a bundled dependency because v9 types column
@@ -87,7 +90,7 @@ stripping padding off buttons and turning `border-transparent` into a visible
87
90
  1px line. **Below `utilities`**, so your app's classes and variants such as
88
91
  `dark:hidden` still win.
89
92
 
90
- Layers are ordered by *first registration*, so importing Roster before Tailwind
93
+ Layers are ordered by _first registration_, so importing Roster before Tailwind
91
94
  is the reliable arrangement. If you would rather not depend on import order at
92
95
  all, declare the same line yourself at the top of your global stylesheet and it
93
96
  holds regardless.
@@ -130,7 +133,9 @@ document head:
130
133
  <script>
131
134
  try {
132
135
  var s = localStorage.getItem("roster-theme");
133
- var dark = s ? s === "dark" : matchMedia("(prefers-color-scheme: dark)").matches;
136
+ var dark = s
137
+ ? s === "dark"
138
+ : matchMedia("(prefers-color-scheme: dark)").matches;
134
139
  if (dark) document.documentElement.classList.add("dark");
135
140
  } catch (e) {}
136
141
  </script>
@@ -140,7 +145,7 @@ If you pass a custom `storageKey`, change the script to match — a mismatch mea
140
145
  the script and the toggle disagree, which shows up as a flash on every reload.
141
146
 
142
147
  `Navbar`'s `themeMode` prop is a different thing: it describes what palette the
143
- bar paints *itself* with. Pair them with `themeMode="auto"` and the nav follows
148
+ bar paints _itself_ with. Pair them with `themeMode="auto"` and the nav follows
144
149
  whatever `ThemeToggle` sets.
145
150
 
146
151
  ### The UI font
@@ -163,6 +168,134 @@ they wrap your content and that text is not Roster's to restyle. `Eyebrow`,
163
168
  `InlineCode`, `Stat`, `Pullquote`, `DescriptionList`, `MatchupCard` and
164
169
  `Countdown` ask for a monospace face as a design decision.
165
170
 
171
+ ### Solid fill contrast
172
+
173
+ `solid` is the one variant where a component picks both the background and the
174
+ text on it, so it can fail contrast on its own with no help from your app. Every
175
+ solid fill in `Badge`, `Pill` and `Button` is measured against WCAG AA (4.5:1)
176
+ by `src/contrast.test.ts`, at rest **and** on hover, in both themes.
177
+
178
+ Which foreground a family gets is decided per family, not by a rule:
179
+
180
+ - **White** on primary, error and neutral.
181
+ - **`gray-950`** on teal, success, orange, purple, info and amber — a mid-tone
182
+ fill cannot carry white. Solid teal with white text measured 2.49:1.
183
+ - Three of them flip: orange, purple and success take dark text in light mode
184
+ and white in dark, because Badge uses a darker fill in dark mode.
185
+
186
+ One consequence worth knowing if you retheme. A dark foreground assumes the fill
187
+ stays light. If you retint `--roster-teal-500` substantially darker, solid teal
188
+ becomes near-black on near-black — worse than the white it replaced. The
189
+ `Foundations/Solid fill contrast` story measures the rendered elements rather
190
+ than the tokens, so pointing it at your palette reports _your_ ratios.
191
+
192
+ Note also that a solid fill's contrast against the surface _behind_ it is a
193
+ separate requirement (WCAG 1.4.11, 3:1) and is not covered here. Solid amber on
194
+ a white page is 1.67:1, so it has effectively no visible edge.
195
+
196
+ ### Focus
197
+
198
+ Every focusable control draws the same ring: `--roster-ring` for the ring
199
+ itself, `--roster-ring-offset` for the 2px band that separates it from the
200
+ control's own fill. Both flip with the theme — `primary-500` on white in light,
201
+ `primary-400` on `gray-950` in dark — which puts the indicator at 6.37:1 and
202
+ 7.31:1 against the surface either side of it, where WCAG 1.4.11 asks for 3:1.
203
+
204
+ Retint it for your own accent:
205
+
206
+ ```css
207
+ :root {
208
+ --roster-ring: #7c3aed;
209
+ }
210
+ .dark {
211
+ --roster-ring: #a78bfa;
212
+ }
213
+ ```
214
+
215
+ Set it in **both** scopes. Roster's own `.dark` rule has the same specificity
216
+ and comes later in the stylesheet, so a `:root`-only override is silently
217
+ discarded in dark mode.
218
+
219
+ The band matters more than it looks. Without it the ring sits directly on the
220
+ fill, and a `primary-500` ring on a `primary-600` button is 1.37:1 — which is
221
+ why the ring and its offset are a pair rather than two independent knobs.
222
+
223
+ ### Motion
224
+
225
+ Two hand-rolled utilities, both of which stop for `prefers-reduced-motion`.
226
+
227
+ `animate-in` is the entrance, composed from modifiers the way
228
+ `tailwindcss-animate` does it — one keyframe reading four custom properties, and
229
+ each modifier setting one, so `fade-in-0 zoom-in-95 slide-in-from-top-2` combine
230
+ into a single animation rather than three fighting over `transform`. `Tooltip`
231
+ uses it, keyed off Radix's `data-side` so the panel always rises from the side it
232
+ is anchored on.
233
+
234
+ The suffixes are that plugin's, kept so anyone arriving from it keeps their
235
+ vocabulary. Each one is the value the modifier animates from: `-0` is an opacity,
236
+ `95` is a scale percentage, and `-2` is a step on Tailwind's spacing scale, so
237
+ `slide-in-from-top-2` starts `0.5rem` above its resting position. Only the steps
238
+ Roster's own components need are implemented; adding `-4` or `zoom-in-90` is one
239
+ line each.
240
+
241
+ `animate-in` on its own does nothing, by design: with no modifier the keyframe's
242
+ start values are the element's resting state. It is the engine, and a modifier is
243
+ what gives it somewhere to start. It fills `backwards`, so `animation-delay` can
244
+ stagger a group without every item flashing at rest first.
245
+
246
+ The default duration is 150ms, matching the plugin. At that speed a `-2` slide
247
+ covers 8px, which is right for a tooltip and reads as a twitch on anything
248
+ larger — `Foundations/Motion` in Storybook has controls for duration, easing,
249
+ direction and stagger to find what suits a bigger surface.
250
+
251
+ It is hand-rolled rather than a dependency: seven utilities does not justify a
252
+ package in a library that ships compiled CSS, and it keeps the stylesheet
253
+ self-contained — the same reasoning as not bundling a preflight.
254
+
255
+ `animate-shimmer` is a highlight travelling across a base, used by `Countdown`'s
256
+ `gradient` variant. Retint it with two variables:
257
+
258
+ ```css
259
+ :root {
260
+ --roster-shimmer-base: #084063;
261
+ --roster-shimmer-highlight: #9bcce9;
262
+ }
263
+ .dark {
264
+ /* … */
265
+ }
266
+ ```
267
+
268
+ The base is what carries the text whenever the highlight is elsewhere, so it has
269
+ to be readable on its own — it is also all you get under reduced motion, where
270
+ the sweep stops and the highlight parks off-frame. The highlight is deliberately
271
+ exempt from that bar: it is a specular pass on screen for a fraction of a second
272
+ per glyph, and holding it to 3:1 would flatten the effect.
273
+
274
+ ### Scrollbars
275
+
276
+ `custom-scrollbar` gives any scrollable surface a slim themed scrollbar.
277
+ `Textarea` carries it already.
278
+
279
+ ```css
280
+ :root {
281
+ --roster-scrollbar-thumb: #0f6498;
282
+ }
283
+ .dark {
284
+ --roster-scrollbar-thumb: #5ea3de;
285
+ }
286
+ ```
287
+
288
+ Set it in both scopes — Roster's own `.dark` rule has equal specificity and comes
289
+ later, so a `:root`-only override is discarded in dark mode.
290
+
291
+ The default sits close to what the browser already draws, on purpose: a
292
+ component library should not repaint your scrollbars merely for being installed.
293
+ Color is the part that works everywhere. The 8px width and inset-pill thumb live
294
+ in a `::-webkit-scrollbar` block that only legacy engines reach. Every current
295
+ browser honors `scrollbar-width` / `scrollbar-color`, and drops the WebKit
296
+ pseudo-elements for any element that sets either of them, so on anything modern
297
+ `thin` is the whole shape control available.
298
+
166
299
  ### Components that render links
167
300
 
168
301
  `Breadcrumbs` renders a plain `<a>` by default, which is right for a static
@@ -177,8 +310,8 @@ import NextLink from "next/link";
177
310
 
178
311
  In an app with React Server Components, do that from a client component.
179
312
  `linkComponent` is a function, and functions do not cross the RSC boundary —
180
- passing it from a server component fails the render with *Functions cannot be
181
- passed directly to Client Components*. A small `"use client"` wrapper binds it
313
+ passing it from a server component fails the render with _Functions cannot be
314
+ passed directly to Client Components_. A small `"use client"` wrapper binds it
182
315
  once, and the pages that use the wrapper stay server-rendered.
183
316
 
184
317
  `Eyebrow` takes the other approach: `as` accepts any element and the props
@@ -212,58 +345,58 @@ function App() {
212
345
 
213
346
  ### Atoms
214
347
 
215
- | Component | Description |
216
- |---|---|
217
- | `Avatar` | User avatar with image, initials fallback, and optional popover |
218
- | `Badge` | Status label with semantic color schemes and fill variants |
219
- | `Button` | Primary interactive element: solid, soft, outline, ghost, link variants |
220
- | `Card` | Bordered surface container |
221
- | `Checkbox` | Accessible checkbox with label support |
222
- | `Disclosure` | Show/hide toggle using HeadlessUI |
223
- | `Eyebrow` | Small tracked-out uppercase label above a heading or beside a rule; polymorphic via `as` |
224
- | `InlineCode` | Inline `<code>` for identifiers in running prose |
225
- | `Input` | Text input with label, error state, and icon slots |
226
- | `LabeledDivider` | Horizontal rule carrying a label, with an optional trailing count |
227
- | `Link` | Styled anchor with variant support |
228
- | `PasswordInput` | Password field with a show/hide reveal toggle |
229
- | `Pill` | Inline phrase chrome: social proof, live state, applied filters |
230
- | `AvatarStrip` | Stacked avatar row with overflow chip, dismiss button, trailing slot, and label area |
231
- | `CollapsibleSection` | Clamps any content (prose, chips, image grids) to a fixed height with a fade and expand/collapse toggle |
232
- | `LiquidTabs` | Controlled tab strip with a liquid sliding pill indicator: pill and filled variants |
233
- | `Select` | Dropdown selector |
234
- | `SegmentBar` | Proportional horizontal bar divided into colored segments with optional legend |
235
- | `Stat` | A single figure with its label and, optionally, where the figure came from |
236
- | `Spinner` | Loading indicator |
237
- | `Switch` | Toggle switch |
238
- | `Textarea` | Multi-line text input |
239
- | `ThemeToggle` | Flips class-based dark mode on the document root and remembers the choice; labels and icons are configurable |
240
- | `Tooltip` | Radix-powered tooltip: hover/focus on desktop, tap-to-toggle on mobile |
348
+ | Component | Description |
349
+ | -------------------- | ------------------------------------------------------------------------------------------------------------ |
350
+ | `Avatar` | User avatar with image, initials fallback, and optional popover |
351
+ | `Badge` | Status label with semantic color schemes and fill variants |
352
+ | `Button` | Primary interactive element: solid, soft, outline, ghost, link variants |
353
+ | `Card` | Bordered surface container |
354
+ | `Checkbox` | Accessible checkbox with label support |
355
+ | `Disclosure` | Show/hide toggle using HeadlessUI |
356
+ | `Eyebrow` | Small tracked-out uppercase label above a heading or beside a rule; polymorphic via `as` |
357
+ | `InlineCode` | Inline `<code>` for identifiers in running prose |
358
+ | `Input` | Text input with label, error state, and icon slots |
359
+ | `LabeledDivider` | Horizontal rule carrying a label, with an optional trailing count |
360
+ | `Link` | Styled anchor with variant support |
361
+ | `PasswordInput` | Password field with a show/hide reveal toggle |
362
+ | `Pill` | Inline phrase chrome: social proof, live state, applied filters |
363
+ | `AvatarStrip` | Stacked avatar row with overflow chip, dismiss button, trailing slot, and label area |
364
+ | `CollapsibleSection` | Clamps any content (prose, chips, image grids) to a fixed height with a fade and expand/collapse toggle |
365
+ | `LiquidTabs` | Controlled tab strip with a liquid sliding pill indicator: pill and filled variants |
366
+ | `Select` | Dropdown selector |
367
+ | `SegmentBar` | Proportional horizontal bar divided into colored segments with optional legend |
368
+ | `Stat` | A single figure with its label and, optionally, where the figure came from |
369
+ | `Spinner` | Loading indicator |
370
+ | `Switch` | Toggle switch |
371
+ | `Textarea` | Multi-line text input |
372
+ | `ThemeToggle` | Flips class-based dark mode on the document root and remembers the choice; labels and icons are configurable |
373
+ | `Tooltip` | Radix-powered tooltip: hover/focus on desktop, tap-to-toggle on mobile |
241
374
 
242
375
  ### Molecules
243
376
 
244
- | Component | Description |
245
- |---|---|
246
- | `Accordion` | Collapsible content sections (single or multi-expand) |
247
- | `Alert` | Inline notice strip with optional title and dismiss |
248
- | `Breadcrumbs` | Navigation trail; pass `linkComponent` to keep navigation client-side |
249
- | `CallToAction` | Prominent hero-style CTA block |
250
- | `DescriptionList` | Label and value pairs as a real `<dl>`: inline, stacked, or split |
251
- | `EmptyState` | Zero-data placeholder with icon and action slot |
252
- | `ErrorState` | Error display with retry action |
253
- | `MatchupCard` | Head-to-head comparison card |
254
- | `Pullquote` | A line lifted out of prose, as `<figure>` + `<blockquote>` + `<figcaption>` |
377
+ | Component | Description |
378
+ | ----------------- | --------------------------------------------------------------------------- |
379
+ | `Accordion` | Collapsible content sections (single or multi-expand) |
380
+ | `Alert` | Inline notice strip with optional title and dismiss |
381
+ | `Breadcrumbs` | Navigation trail; pass `linkComponent` to keep navigation client-side |
382
+ | `CallToAction` | Prominent hero-style CTA block |
383
+ | `DescriptionList` | Label and value pairs as a real `<dl>`: inline, stacked, or split |
384
+ | `EmptyState` | Zero-data placeholder with icon and action slot |
385
+ | `ErrorState` | Error display with retry action |
386
+ | `MatchupCard` | Head-to-head comparison card |
387
+ | `Pullquote` | A line lifted out of prose, as `<figure>` + `<blockquote>` + `<figcaption>` |
255
388
 
256
389
  ### Organisms
257
390
 
258
- | Component | Description |
259
- |---|---|
260
- | `ActionBar` | Sticky bottom action strip |
261
- | `Countdown` | Live countdown timer |
391
+ | Component | Description |
392
+ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
393
+ | `ActionBar` | Sticky bottom action strip |
394
+ | `Countdown` | Live countdown timer |
262
395
  | `DataTable` | Full-featured table with sorting and pagination via TanStack Table v9. Imported from `@blakesteve/roster/data-table` (see [DataTable columns](#datatable-columns)) |
263
- | `Dialog` | Modal dialog |
264
- | `Footer` | Site footer |
265
- | `Navbar` | Responsive navigation bar with mobile slide-out |
266
- | `Table` | Static data table |
396
+ | `Dialog` | Modal dialog |
397
+ | `Footer` | Site footer |
398
+ | `Navbar` | Responsive navigation bar with mobile slide-out |
399
+ | `Table` | Static data table |
267
400
 
268
401
  ### DataTable columns
269
402
 
@@ -272,7 +405,10 @@ the table. `DataTable` registers sorting and pagination and exports that set as
272
405
  `RosterTableFeatures`, so your columns name it:
273
406
 
274
407
  ```tsx
275
- import { DataTable, type RosterTableFeatures } from "@blakesteve/roster/data-table";
408
+ import {
409
+ DataTable,
410
+ type RosterTableFeatures,
411
+ } from "@blakesteve/roster/data-table";
276
412
  import { createColumnHelper, type ColumnDef } from "@tanstack/react-table";
277
413
 
278
414
  type Player = { name: string; points: number };
@@ -307,9 +443,9 @@ Server Component it typechecks and then throws at render — use `/utils` there.
307
443
 
308
444
  ### Hooks
309
445
 
310
- | Hook | Description |
311
- |---|---|
312
- | `useCountdown` | Countdown timer logic without the UI |
446
+ | Hook | Description |
447
+ | ---------------- | ------------------------------------------------------------------------------- |
448
+ | `useCountdown` | Countdown timer logic without the UI |
313
449
  | `useKeySequence` | Fires a callback when a sequence of keys is typed in order. Ships `KONAMI_CODE` |
314
450
 
315
451
  ## Authoring components: the `rst:` prefix
@@ -319,9 +455,9 @@ Every class Roster emits carries an `rst:` prefix — `rst:flex`, `rst:bg-white`
319
455
  not write the prefix and never see it.** It exists to stop a host app from
320
456
  overriding Roster by accident.
321
457
 
322
- Roster's stylesheet deliberately sits in a layer *below* the host's `utilities`
458
+ Roster's stylesheet deliberately sits in a layer _below_ the host's `utilities`
323
459
  so a consumer's `className` can override a component. Without a prefix that also
324
- means the host wins any class-name *collision* — including on Roster's own
460
+ means the host wins any class-name _collision_ — including on Roster's own
325
461
  internal elements, which the consumer never touches:
326
462
 
327
463
  - an app that used `bg-white` anywhere defeated the Textarea's
@@ -340,7 +476,7 @@ node scripts/prefix-classes.mjs src/components/atoms/Thing/Thing.tsx # dry ru
340
476
  APPLY=1 node scripts/prefix-classes.mjs src/components/atoms/Thing/Thing.tsx
341
477
  ```
342
478
 
343
- Two things are deliberately never prefixed. `dark` is the *consuming document's*
479
+ Two things are deliberately never prefixed. `dark` is the _consuming document's_
344
480
  theme class, which Roster's own `@custom-variant dark` matches by name — Button
345
481
  applies it directly for `surface="dark"`. And any class a consumer passes in,
346
482
  such as `AvatarStrip`'s `ringClass`, stays exactly as they wrote it.
@@ -371,9 +507,10 @@ npx vitest run --project storybook
371
507
 
372
508
  # Every emitted class carries the rst: prefix (runs as part of the build)
373
509
  npm run check:prefix
510
+ npm run check:classes-emit
374
511
  ```
375
512
 
376
- Two guards are worth knowing about, because the bug they catch cannot be
513
+ Three guards are worth knowing about, because the bugs they catch cannot be
377
514
  reproduced from inside this repo.
378
515
 
379
516
  `check:prefix` reads `dist/roster.css` and fails on any unprefixed class
@@ -381,10 +518,32 @@ selector. The collision it prevents only appears in an app with its own Tailwind
381
518
  build, so asserting on a rendered component here would never see it — the check
382
519
  has to be on the artifact.
383
520
 
521
+ `check:classes-emit` reads the same artifact and fails when a component
522
+ references a utility Tailwind never generated. Tailwind v4 builds utilities from
523
+ theme tokens, so a class naming a token that does not exist is not an error —
524
+ it simply produces no CSS, and the class sits in the component looking correct
525
+ while doing nothing. That is how the focus ring was inert: `Button` asked for
526
+ `ring-ring` and `ring-offset-background`, neither `--color-ring` nor
527
+ `--color-background` existed, and the ring fell back to `currentColor` — a
528
+ white ring on a white page. Nothing caught it, because typecheck cannot read a
529
+ class name and the unit tests assert a class is _present_ rather than that it
530
+ does anything.
531
+
532
+ It compares whole class names, variants included, so a misspelled variant fails
533
+ as readily as a misspelled utility. It reads component source only — `*.test.*`
534
+ and `*.stories.*` are skipped, because docs blurbs carry CSS code fences that
535
+ would false-positive, so a dead class in a story is not covered. Its
536
+ `KNOWN_DEAD` map is empty — the ten classes it was written to catch have all
537
+ been fixed. The map stays for the case
538
+ where a dead class cannot be fixed in the same sitting: add it there with a
539
+ reason and the build goes green on the state it inherited while still failing on
540
+ anything new. It also fails when a listed class starts emitting, so a fix cannot
541
+ leave a stale entry behind. Run it with `--verbose` to print the list.
542
+
384
543
  `src/lib/utils.test.ts` pins `cn`. `tailwind-merge` has to be configured with the
385
544
  prefix or it stops recognising Roster's classes as utilities and silently
386
545
  degrades to concatenation: conflicting classes both survive and the winner falls
387
- back to stylesheet order. The class string still *contains* what you asked for,
546
+ back to stylesheet order. The class string still _contains_ what you asked for,
388
547
  so a snapshot passes while the browser is wrong.
389
548
 
390
549
  ## Building
@@ -395,15 +554,15 @@ npm run build
395
554
 
396
555
  Output in `dist/`:
397
556
 
398
- | File | Description |
399
- |---|---|
400
- | `roster.es.js` | ES module bundle |
401
- | `roster.umd.js` | UMD bundle |
557
+ | File | Description |
558
+ | ------------------ | ------------------------------------------------------------------- |
559
+ | `roster.es.js` | ES module bundle |
560
+ | `roster.umd.js` | UMD bundle |
402
561
  | `data-table.es.js` | DataTable entry, keeping the TanStack import out of the main bundle |
403
- | `roster.css` | Compiled component styles, in the `roster` cascade layer |
404
- | `tokens.css` | Design token CSS variables |
405
- | `preflight.css` | Optional global reset (see Setup) |
406
- | `index.d.ts` | TypeScript definitions |
562
+ | `roster.css` | Compiled component styles, in the `roster` cascade layer |
563
+ | `tokens.css` | Design token CSS variables |
564
+ | `preflight.css` | Optional global reset (see Setup) |
565
+ | `index.d.ts` | TypeScript definitions |
407
566
 
408
567
  ## Contributing
409
568
 
@@ -415,4 +574,4 @@ Pull requests are welcome. Please:
415
574
 
416
575
  ## License
417
576
 
418
- MIT © [Blake Ball](https://github.com/blakesteve)
577
+ MIT © [Blake Ball](https://github.com/blakesteve)
@@ -6,7 +6,7 @@ React keys must be passed directly to JSX without using spread:
6
6
  <%s key={someKey} {...props} />`,P,F,se,F),sr[F+P]=!0)}if(F=null,N!==void 0&&(r(N),F=""+N),s(w)&&(r(w.key),F=""+w.key),"key"in w){N={};for(var nt in w)nt!=="key"&&(N[nt]=w[nt])}else N=w;return F&&i(N,typeof d=="function"?d.displayName||d.name||"Unknown":d),f(d,F,N,n(),Ie,at)}function u(d){p(d)?d._store&&(d._store.validated=1):typeof d=="object"&&d!==null&&d.$$typeof===pe&&(d._payload.status==="fulfilled"?p(d._payload.value)&&d._payload.value._store&&(d._payload.value._store.validated=1):d._store&&(d._store.validated=1))}function p(d){return typeof d=="object"&&d!==null&&d.$$typeof===y}var v=h,y=Symbol.for("react.transitional.element"),b=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),A=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),R=Symbol.for("react.context"),E=Symbol.for("react.forward_ref"),oe=Symbol.for("react.suspense"),et=Symbol.for("react.suspense_list"),ve=Symbol.for("react.memo"),pe=Symbol.for("react.lazy"),Un=Symbol.for("react.activity"),Yn=Symbol.for("react.client.reference"),tt=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,tr=Object.prototype.hasOwnProperty,Gn=Array.isArray,rt=console.createTask?console.createTask:function(){return null};v={react_stack_bottom_frame:function(d){return d()}};var rr,ar={},nr=v.react_stack_bottom_frame.bind(v,o)(),or=rt(a(o)),sr={};ge.Fragment=x,ge.jsx=function(d,w,N){var P=1e4>tt.recentlyCreatedOwnerStacks++;return c(d,w,N,!1,P?Error("react-stack-top-frame"):nr,P?rt(a(d)):or)},ge.jsxs=function(d,w,N){var P=1e4>tt.recentlyCreatedOwnerStacks++;return c(d,w,N,!0,P?Error("react-stack-top-frame"):nr,P?rt(a(d)):or)}})()),ge}var fr;function Jn(){return fr||(fr=1,process.env.NODE_ENV==="production"?Oe.exports=Xn():Oe.exports=qn()),Oe.exports}var C=Jn();const Zn=typeof document<"u"?h.useLayoutEffect:()=>{},Z=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},ee=e=>e&&"window"in e&&e.window===e?e:Z(e).defaultView||window;function Qn(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&typeof e.nodeType=="number"}function eo(e){return Qn(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}let to=!1;function Rt(){return to}function K(e,t){if(!Rt())return t&&e?e.contains(t):!1;if(!e||!t)return!1;let r=t;for(;r!==null;){if(r===e)return!0;r.tagName==="SLOT"&&r.assignedSlot?r=r.assignedSlot.parentNode:eo(r)?r=r.host:r=r.parentNode}return!1}const vt=(e=document)=>{var t;if(!Rt())return e.activeElement;let r=e.activeElement;for(;r&&"shadowRoot"in r&&(!((t=r.shadowRoot)===null||t===void 0)&&t.activeElement);)r=r.shadowRoot.activeElement;return r};function Gr(e){return Rt()&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}function ro(e){if(ao())e.focus({preventScroll:!0});else{let t=no(e);e.focus(),oo(t)}}let Le=null;function ao(){if(Le==null){Le=!1;try{document.createElement("div").focus({get preventScroll(){return Le=!0,!0}})}catch{}}return Le}function no(e){let t=e.parentNode,r=[],a=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==a;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&r.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return a instanceof HTMLElement&&r.push({element:a,scrollTop:a.scrollTop,scrollLeft:a.scrollLeft}),r}function oo(e){for(let{element:t,scrollTop:r,scrollLeft:a}of e)t.scrollTop=r,t.scrollLeft=a}function Be(e){var t;if(typeof window>"u"||window.navigator==null)return!1;let r=(t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands;return Array.isArray(r)&&r.some(a=>e.test(a.brand))||e.test(window.navigator.userAgent)}function Mt(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function Y(e){if(process.env.NODE_ENV==="test")return e;let t=null;return()=>(t==null&&(t=e()),t)}const Se=Y(function(){return Mt(/^Mac/i)}),so=Y(function(){return Mt(/^iPhone/i)}),Br=Y(function(){return Mt(/^iPad/i)||Se()&&navigator.maxTouchPoints>1}),io=Y(function(){return so()||Br()});Y(function(){return Se()||io()});const lo=Y(function(){return Be(/AppleWebKit/i)&&!fo()}),fo=Y(function(){return Be(/Chrome/i)}),uo=Y(function(){return Be(/Android/i)}),co=Y(function(){return Be(/Firefox/i)});function Ae(e,t,r=!0){var a,n;let{metaKey:o,ctrlKey:s,altKey:i,shiftKey:l}=t;co()&&(!((n=window.event)===null||n===void 0||(a=n.type)===null||a===void 0)&&a.startsWith("key"))&&e.target==="_blank"&&(Se()?o=!0:s=!0);let f=lo()&&Se()&&!Br()&&process.env.NODE_ENV!=="test"?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:o,ctrlKey:s,altKey:i,shiftKey:l}):new MouseEvent("click",{metaKey:o,ctrlKey:s,altKey:i,shiftKey:l,detail:1,bubbles:!0,cancelable:!0});Ae.isOpening=r,ro(e),e.dispatchEvent(f),Ae.isOpening=!1}Ae.isOpening=!1;function Kr(){let e=h.useRef(new Map),t=h.useCallback((n,o,s,i)=>{let l=i?.once?(...f)=>{e.current.delete(s),s(...f)}:s;e.current.set(s,{type:o,eventTarget:n,fn:l,options:i}),n.addEventListener(o,l,i)},[]),r=h.useCallback((n,o,s,i)=>{var l;let f=((l=e.current.get(s))===null||l===void 0?void 0:l.fn)||s;n.removeEventListener(o,f,i),e.current.delete(s)},[]),a=h.useCallback(()=>{e.current.forEach((n,o)=>{r(n.eventTarget,n.type,o,n.options)})},[r]);return h.useEffect(()=>a,[a]),{addGlobalListener:t,removeGlobalListener:r,removeAllGlobalListeners:a}}function mo(e){return e.pointerType===""&&e.isTrusted?!0:uo()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Xr(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function vo(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function qr(e){let t=h.useRef({isFocused:!1,observer:null});return Zn(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]),h.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let a=r.target,n=o=>{if(t.current.isFocused=!1,a.disabled){let s=Xr(o);e?.(s)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};a.addEventListener("focusout",n,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&a.disabled){var o;(o=t.current.observer)===null||o===void 0||o.disconnect();let s=a===document.activeElement?null:document.activeElement;a.dispatchEvent(new FocusEvent("blur",{relatedTarget:s})),a.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:s}))}}),t.current.observer.observe(a,{attributes:!0,attributeFilter:["disabled"]})}},[e])}let po=!1,Te=null;const pt=new Set;let ye=new Map,re=!1,bt=!1;const bo={Tab:!0,Escape:!0};function Dt(e,t){for(let r of pt)r(e,t)}function go(e){return!(e.metaKey||!Se()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function He(e){re=!0,!Ae.isOpening&&go(e)&&(Te="keyboard",Dt("keyboard",e))}function _(e){Te="pointer","pointerType"in e&&e.pointerType,(e.type==="mousedown"||e.type==="pointerdown")&&(re=!0,Dt("pointer",e))}function Jr(e){!Ae.isOpening&&mo(e)&&(re=!0,Te="virtual")}function Zr(e){e.target===window||e.target===document||po||!e.isTrusted||(!re&&!bt&&(Te="virtual",Dt("virtual",e)),re=!1,bt=!1)}function Qr(){re=!1,bt=!0}function gt(e){if(typeof window>"u"||typeof document>"u"||ye.get(ee(e)))return;const t=ee(e),r=Z(e);let a=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){re=!0,a.apply(this,arguments)},r.addEventListener("keydown",He,!0),r.addEventListener("keyup",He,!0),r.addEventListener("click",Jr,!0),t.addEventListener("focus",Zr,!0),t.addEventListener("blur",Qr,!1),typeof PointerEvent<"u"?(r.addEventListener("pointerdown",_,!0),r.addEventListener("pointermove",_,!0),r.addEventListener("pointerup",_,!0)):process.env.NODE_ENV==="test"&&(r.addEventListener("mousedown",_,!0),r.addEventListener("mousemove",_,!0),r.addEventListener("mouseup",_,!0)),t.addEventListener("beforeunload",()=>{ea(e)},{once:!0}),ye.set(t,{focus:a})}const ea=(e,t)=>{const r=ee(e),a=Z(e);t&&a.removeEventListener("DOMContentLoaded",t),ye.has(r)&&(r.HTMLElement.prototype.focus=ye.get(r).focus,a.removeEventListener("keydown",He,!0),a.removeEventListener("keyup",He,!0),a.removeEventListener("click",Jr,!0),r.removeEventListener("focus",Zr,!0),r.removeEventListener("blur",Qr,!1),typeof PointerEvent<"u"?(a.removeEventListener("pointerdown",_,!0),a.removeEventListener("pointermove",_,!0),a.removeEventListener("pointerup",_,!0)):process.env.NODE_ENV==="test"&&(a.removeEventListener("mousedown",_,!0),a.removeEventListener("mousemove",_,!0),a.removeEventListener("mouseup",_,!0)),ye.delete(r))};function ho(e){const t=Z(e);let r;return t.readyState!=="loading"?gt(e):(r=()=>{gt(e)},t.addEventListener("DOMContentLoaded",r)),()=>ea(e,r)}typeof document<"u"&&ho();function ht(){return Te!=="pointer"}const yo=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function xo(e,t,r){let a=Z(r?.target);const n=typeof window<"u"?ee(r?.target).HTMLInputElement:HTMLInputElement,o=typeof window<"u"?ee(r?.target).HTMLTextAreaElement:HTMLTextAreaElement,s=typeof window<"u"?ee(r?.target).HTMLElement:HTMLElement,i=typeof window<"u"?ee(r?.target).KeyboardEvent:KeyboardEvent;return e=e||a.activeElement instanceof n&&!yo.has(a.activeElement.type)||a.activeElement instanceof o||a.activeElement instanceof s&&a.activeElement.isContentEditable,!(e&&t==="keyboard"&&r instanceof i&&!bo[r.key])}function ko(e,t,r){gt(),h.useEffect(()=>{if(r?.enabled===!1)return;let a=(n,o)=>{xo(!!r?.isTextInput,n,o)&&e(ht())};return pt.add(a),()=>{pt.delete(a)}},t)}function wo(e){let{isDisabled:t,onFocus:r,onBlur:a,onFocusChange:n}=e;const o=h.useCallback(l=>{if(l.target===l.currentTarget)return a&&a(l),n&&n(!1),!0},[a,n]),s=qr(o),i=h.useCallback(l=>{const f=Z(l.target),c=f?vt(f):vt();l.target===l.currentTarget&&c===Gr(l.nativeEvent)&&(r&&r(l),n&&n(!0),s(l))},[n,r,s]);return{focusProps:{onFocus:!t&&(r||n||a)?i:void 0,onBlur:!t&&(a||n)?o:void 0}}}function Eo(e){let{isDisabled:t,onBlurWithin:r,onFocusWithin:a,onFocusWithinChange:n}=e,o=h.useRef({isFocusWithin:!1}),{addGlobalListener:s,removeAllGlobalListeners:i}=Kr(),l=h.useCallback(u=>{K(u.currentTarget,u.target)&&o.current.isFocusWithin&&!K(u.currentTarget,u.relatedTarget)&&(o.current.isFocusWithin=!1,i(),r&&r(u),n&&n(!1))},[r,n,o,i]),f=qr(l),c=h.useCallback(u=>{if(!K(u.currentTarget,u.target))return;const p=Z(u.target),v=vt(p);if(!o.current.isFocusWithin&&v===Gr(u.nativeEvent)){a&&a(u),n&&n(!0),o.current.isFocusWithin=!0,f(u);let y=u.currentTarget;s(p,"focus",b=>{if(o.current.isFocusWithin&&!K(y,b.target)){let x=new p.defaultView.FocusEvent("blur",{relatedTarget:b.target});vo(x,y);let S=Xr(x);l(S)}},{capture:!0})}},[a,n,f,s,l]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:c,onBlur:l}}}let Ve=!1,_e=0;function yt(){Ve=!0,setTimeout(()=>{Ve=!1},50)}function ur(e){e.pointerType==="touch"&&yt()}function So(){if(!(typeof document>"u"))return _e===0&&(typeof PointerEvent<"u"?document.addEventListener("pointerup",ur):process.env.NODE_ENV==="test"&&document.addEventListener("touchend",yt)),_e++,()=>{_e--,!(_e>0)&&(typeof PointerEvent<"u"?document.removeEventListener("pointerup",ur):process.env.NODE_ENV==="test"&&document.removeEventListener("touchend",yt))}}function ta(e){let{onHoverStart:t,onHoverChange:r,onHoverEnd:a,isDisabled:n}=e,[o,s]=h.useState(!1),i=h.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;h.useEffect(So,[]);let{addGlobalListener:l,removeAllGlobalListeners:f}=Kr(),{hoverProps:c,triggerHoverEnd:u}=h.useMemo(()=>{let p=(b,x)=>{if(i.pointerType=x,n||x==="touch"||i.isHovered||!K(b.currentTarget,b.target))return;i.isHovered=!0;let S=b.currentTarget;i.target=S,l(Z(b.target),"pointerover",A=>{i.isHovered&&i.target&&!K(i.target,A.target)&&v(A,A.pointerType)},{capture:!0}),t&&t({type:"hoverstart",target:S,pointerType:x}),r&&r(!0),s(!0)},v=(b,x)=>{let S=i.target;i.pointerType="",i.target=null,!(x==="touch"||!i.isHovered||!S)&&(i.isHovered=!1,f(),a&&a({type:"hoverend",target:S,pointerType:x}),r&&r(!1),s(!1))},y={};return typeof PointerEvent<"u"?(y.onPointerEnter=b=>{Ve&&b.pointerType==="mouse"||p(b,b.pointerType)},y.onPointerLeave=b=>{!n&&K(b.currentTarget,b.target)&&v(b,b.pointerType)}):process.env.NODE_ENV==="test"&&(y.onTouchStart=()=>{i.ignoreEmulatedMouseEvents=!0},y.onMouseEnter=b=>{!i.ignoreEmulatedMouseEvents&&!Ve&&p(b,"mouse"),i.ignoreEmulatedMouseEvents=!1},y.onMouseLeave=b=>{!n&&K(b.currentTarget,b.target)&&v(b,"mouse")}),{hoverProps:y,triggerHoverEnd:v}},[t,r,a,n,i,l,f]);return h.useEffect(()=>{n&&u({currentTarget:i.target},i.pointerType)},[n]),{hoverProps:c,isHovered:o}}function ra(e={}){let{autoFocus:t=!1,isTextInput:r,within:a}=e,n=h.useRef({isFocused:!1,isFocusVisible:t||ht()}),[o,s]=h.useState(!1),[i,l]=h.useState(()=>n.current.isFocused&&n.current.isFocusVisible),f=h.useCallback(()=>l(n.current.isFocused&&n.current.isFocusVisible),[]),c=h.useCallback(v=>{n.current.isFocused=v,n.current.isFocusVisible=ht(),s(v),f()},[f]);ko(v=>{n.current.isFocusVisible=v,f()},[r,o],{enabled:o,isTextInput:r});let{focusProps:u}=wo({isDisabled:a,onFocusChange:c}),{focusWithinProps:p}=Eo({isDisabled:!a,onFocusWithinChange:c});return{isFocused:o,isFocusVisible:i,focusProps:a?p:u}}var Ao=Object.defineProperty,$o=(e,t,r)=>t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ot=(e,t,r)=>($o(e,typeof t!="symbol"?t+"":t,r),r);let No=class{constructor(){ot(this,"current",this.detect()),ot(this,"handoffState","pending"),ot(this,"currentId",0)}set(t){this.current!==t&&(this.handoffState="pending",this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},Ke=new No;function aa(e){var t;return Ke.isServer?null:e==null?document:(t=e?.ownerDocument)!=null?t:document}function na(e){var t,r;return Ke.isServer?null:e==null?document:(r=(t=e?.getRootNode)==null?void 0:t.call(e))!=null?r:document}function oa(e){var t,r;return(r=(t=na(e))==null?void 0:t.activeElement)!=null?r:null}function To(e){return oa(e)===e}function sa(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function zt(){let e=[],t={addEventListener(r,a,n,o){return r.addEventListener(a,n,o),t.add(()=>r.removeEventListener(a,n,o))},requestAnimationFrame(...r){let a=requestAnimationFrame(...r);return t.add(()=>cancelAnimationFrame(a))},nextFrame(...r){return t.requestAnimationFrame(()=>t.requestAnimationFrame(...r))},setTimeout(...r){let a=setTimeout(...r);return t.add(()=>clearTimeout(a))},microTask(...r){let a={current:!0};return sa(()=>{a.current&&r[0]()}),t.add(()=>{a.current=!1})},style(r,a,n){let o=r.style.getPropertyValue(a);return Object.assign(r.style,{[a]:n}),this.add(()=>{Object.assign(r.style,{[a]:o})})},group(r){let a=zt();return r(a),this.add(()=>a.dispose())},add(r){return e.includes(r)||e.push(r),()=>{let a=e.indexOf(r);if(a>=0)for(let n of e.splice(a,1))n()}},dispose(){for(let r of e.splice(0))r()}};return t}function ia(){let[e]=h.useState(zt);return h.useEffect(()=>()=>e.dispose(),[e]),e}let la=(e,t)=>{Ke.isServer?h.useEffect(e,t):h.useLayoutEffect(e,t)};function fa(e){let t=h.useRef(e);return la(()=>{t.current=e},[e]),t}let xt=function(e){let t=fa(e);return h.useCallback((...r)=>t.current(...r),[t])};function Po(e){let t=e.width/2,r=e.height/2;return{top:e.clientY-r,right:e.clientX+t,bottom:e.clientY+r,left:e.clientX-t}}function Fo(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function ua({disabled:e=!1}={}){let t=h.useRef(null),[r,a]=h.useState(!1),n=ia(),o=xt(()=>{t.current=null,a(!1),n.dispose()}),s=xt(i=>{if(n.dispose(),t.current===null){t.current=i.currentTarget,a(!0);{let l=aa(i.currentTarget);n.addEventListener(l,"pointerup",o,!1),n.addEventListener(l,"pointermove",f=>{if(t.current){let c=Po(f);a(Fo(c,t.current.getBoundingClientRect()))}},!1),n.addEventListener(l,"pointercancel",o,!1)}}});return{pressed:r,pressProps:e?{}:{onPointerDown:s,onPointerUp:o,onClick:o}}}function ca(e){return h.useMemo(()=>e,Object.values(e))}let da=h.createContext(void 0);function ma(){return h.useContext(da)}function Co({value:e,children:t}){return h.createElement(da.Provider,{value:e},t)}function kt(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}function Wt(e,t,...r){if(e in t){let n=t[e];return typeof n=="function"?n(...r):n}let a=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(n=>`"${n}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(a,Wt),a}var va=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(va||{}),pa=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(pa||{});function ba(){let e=Oo();return h.useCallback(t=>Io({mergeRefs:e,...t}),[e])}function Io({ourProps:e,theirProps:t,slot:r,defaultTag:a,features:n,visible:o=!0,name:s,mergeRefs:i}){i=i??Lo;let l=ga(t,e);if(o)return je(l,r,a,s,i);let f=n??0;if(f&2){let{static:c=!1,...u}=l;if(c)return je(u,r,a,s,i)}if(f&1){let{unmount:c=!0,...u}=l;return Wt(c?0:1,{0(){return null},1(){return je({...u,hidden:!0,style:{display:"none"}},r,a,s,i)}})}return je(l,r,a,s,i)}function je(e,t={},r,a,n){let{as:o=r,children:s,refName:i="ref",...l}=st(e,["unmount","static"]),f=e.ref!==void 0?{[i]:e.ref}:{},c=typeof s=="function"?s(t):s;"className"in l&&l.className&&typeof l.className=="function"&&(l.className=l.className(t)),l["aria-labelledby"]&&l["aria-labelledby"]===l.id&&(l["aria-labelledby"]=void 0);let u={};if(t){let p=!1,v=[];for(let[y,b]of Object.entries(t))typeof b=="boolean"&&(p=!0),b===!0&&v.push(y.replace(/([A-Z])/g,x=>`-${x.toLowerCase()}`));if(p){u["data-headlessui-state"]=v.join(" ");for(let y of v)u[`data-${y}`]=""}}if(xe(o)&&(Object.keys(Q(l)).length>0||Object.keys(Q(u)).length>0))if(!h.isValidElement(c)||Array.isArray(c)&&c.length>1||jo(c)){if(Object.keys(Q(l)).length>0)throw new Error(['Passing props on "Fragment"!',"",`The current component <${a} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(Q(l)).concat(Object.keys(Q(u))).map(p=>` - ${p}`).join(`
7
7
  `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(p=>` - ${p}`).join(`
8
8
  `)].join(`
9
- `))}else{let p=c.props,v=p?.className,y=typeof v=="function"?(...S)=>kt(v(...S),l.className):kt(v,l.className),b=y?{className:y}:{},x=ga(c.props,Q(st(l,["ref"])));for(let S in u)S in x&&delete u[S];return h.cloneElement(c,Object.assign({},x,u,f,{ref:n(_o(c),f.ref)},b))}return h.createElement(o,Object.assign({},st(l,["ref"]),!xe(o)&&f,!xe(o)&&u),c)}function Oo(){let e=h.useRef([]),t=h.useCallback(r=>{for(let a of e.current)a!=null&&(typeof a=="function"?a(r):a.current=r)},[]);return(...r)=>{if(!r.every(a=>a==null))return e.current=r,t}}function Lo(...e){return e.every(t=>t==null)?void 0:t=>{for(let r of e)r!=null&&(typeof r=="function"?r(t):r.current=t)}}function ga(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},r={};for(let a of e)for(let n in a)n.startsWith("on")&&typeof a[n]=="function"?(r[n]!=null||(r[n]=[]),r[n].push(a[n])):t[n]=a[n];if(t.disabled||t["aria-disabled"])for(let a in r)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(a)&&(r[a]=[n=>{var o;return(o=n?.preventDefault)==null?void 0:o.call(n)}]);for(let a in r)Object.assign(t,{[a](n,...o){let s=r[a];for(let i of s){if((n instanceof Event||n?.nativeEvent instanceof Event)&&n.defaultPrevented)return;i(n,...o)}}});return t}function ha(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},r={};for(let a of e)for(let n in a)n.startsWith("on")&&typeof a[n]=="function"?(r[n]!=null||(r[n]=[]),r[n].push(a[n])):t[n]=a[n];for(let a in r)Object.assign(t,{[a](...n){let o=r[a];for(let s of o)s?.(...n)}});return t}function ya(e){var t;return Object.assign(h.forwardRef(e),{displayName:(t=e.displayName)!=null?t:e.name})}function Q(e){let t=Object.assign({},e);for(let r in t)t[r]===void 0&&delete t[r];return t}function st(e,t=[]){let r=Object.assign({},e);for(let a of t)a in r&&delete r[a];return r}function _o(e){return h.version.split(".")[0]>="19"?e.props.ref:e.ref}function xe(e){return e===h.Fragment||e===Symbol.for("react.fragment")}function jo(e){return xe(e.type)}let Ro="button";function Mo(e,t){var r;let a=ma(),{disabled:n=a||!1,autoFocus:o=!1,...s}=e,{isFocusVisible:i,focusProps:l}=ra({autoFocus:o}),{isHovered:f,hoverProps:c}=ta({isDisabled:n}),{pressed:u,pressProps:p}=ua({disabled:n}),v=ha({ref:t,type:(r=s.type)!=null?r:"button",disabled:n||void 0,autoFocus:o},l,c,p),y=ca({disabled:n,hover:f,focus:i,active:u,autofocus:o});return ba()({ourProps:v,theirProps:s,slot:y,defaultTag:Ro,name:"Button"})}let Do=ya(Mo);const cr=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,dr=j.clsx,G=(e,t)=>r=>{var a;if(t?.variants==null)return dr(e,r?.class,r?.className);const{variants:n,defaultVariants:o}=t,s=Object.keys(n).map(f=>{const c=r?.[f],u=o?.[f];if(c===null)return null;const p=cr(c)||cr(u);return n[f][p]}),i=r&&Object.entries(r).reduce((f,c)=>{let[u,p]=c;return p===void 0||(f[u]=p),f},{}),l=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((f,c)=>{let{class:u,className:p,...v}=c;return Object.entries(v).every(y=>{let[b,x]=y;return Array.isArray(x)?x.includes({...o,...i}[b]):{...o,...i}[b]===x})?[...f,u,p]:f},[]);return dr(e,s,l,r?.class,r?.className)},zo=G("rst:animate-spin rst:rounded-full rst:transition-colors",{variants:{variant:{primary:"rst:border-primary-600 rst:dark:border-primary-500",neutral:"rst:border-gray-600 rst:dark:border-gray-400",danger:"rst:border-error-600 rst:dark:border-error-500",white:"rst:border-white",current:"rst:border-current"},size:{sm:"rst:h-4 rst:w-4 rst:border-2",md:"rst:h-6 rst:w-6 rst:border-[3px]",lg:"rst:h-8 rst:w-8 rst:border-4"},animation:{classic:"rst:border-solid rst:border-r-transparent rst:dark:border-r-transparent",half:"rst:border-solid rst:border-r-transparent rst:border-b-transparent rst:dark:border-r-transparent rst:dark:border-b-transparent",dashed:"rst:border-dashed",dotted:"rst:border-dotted rst:border-r-transparent rst:dark:border-r-transparent"}},defaultVariants:{variant:"primary",size:"md",animation:"classic"}}),xa=({variant:e,size:t,animation:r,className:a})=>C.jsx("div",{className:j.cn(zo({variant:e,size:t,animation:r}),a),role:"status","aria-label":"loading"}),ka=G("rst:font-ui rst:inline-flex rst:items-center rst:justify-center rst:cursor-pointer rst:whitespace-nowrap rst:rounded-md rst:text-sm rst:font-medium rst:ring-offset-background rst:transition-colors rst:focus-visible:outline-hidden rst:focus-visible:ring-2 rst:focus-visible:ring-ring rst:focus-visible:ring-offset-2 rst:disabled:pointer-events-none rst:disabled:opacity-50",{variants:{variant:{solid:"rst:border rst:border-transparent rst:shadow-sm",soft:"rst:border-transparent rst:shadow-none",outline:"rst:border rst:bg-transparent rst:shadow-sm",ghost:"rst:border rst:border-transparent rst:bg-transparent",link:"rst:bg-transparent rst:underline-offset-4 rst:hover:underline"},colorScheme:{primary:"",orange:"",teal:"",purple:"",amber:"",success:"",error:"",neutral:""},size:{xs:"rst:h-7 rst:rounded rst:px-2 rst:text-xs",sm:"rst:h-9 rst:rounded-md rst:px-3",default:"rst:h-10 rst:px-4 rst:py-2",lg:"rst:h-11 rst:rounded-md rst:px-8",icon:"rst:h-10 rst:w-10"}},compoundVariants:[{variant:"solid",colorScheme:"primary",className:"rst:bg-primary-600 rst:text-white rst:hover:bg-primary-700 rst:dark:bg-primary-600 rst:dark:hover:bg-primary-500"},{variant:"solid",colorScheme:"orange",className:"rst:bg-orange-600 rst:text-white rst:hover:bg-orange-700 rst:dark:bg-orange-600 rst:dark:hover:bg-orange-500"},{variant:"solid",colorScheme:"teal",className:"rst:bg-teal-600 rst:text-white rst:hover:bg-teal-700 rst:dark:bg-teal-600 rst:dark:hover:bg-teal-500"},{variant:"solid",colorScheme:"purple",className:"rst:bg-purple-600 rst:text-white rst:hover:bg-purple-700 rst:dark:bg-purple-600 rst:dark:hover:bg-purple-500"},{variant:"solid",colorScheme:"amber",className:"rst:bg-amber-400 rst:text-black rst:hover:bg-amber-500 rst:dark:bg-amber-500 rst:dark:hover:bg-amber-400 rst:dark:text-gray-900"},{variant:"solid",colorScheme:"success",className:"rst:bg-success-600 rst:text-white rst:hover:bg-success-700 rst:dark:bg-success-600 rst:dark:hover:bg-success-500"},{variant:"solid",colorScheme:"error",className:"rst:bg-error-600 rst:text-white rst:hover:bg-error-700 rst:dark:bg-error-600 rst:dark:hover:bg-error-500"},{variant:"solid",colorScheme:"neutral",className:"rst:bg-gray-600 rst:text-white rst:hover:bg-gray-700 rst:dark:bg-gray-600 rst:dark:hover:bg-gray-500"},{variant:"soft",colorScheme:"primary",className:"rst:bg-primary-50 rst:text-primary-700 rst:hover:bg-primary-100 rst:dark:bg-primary-900/40 rst:dark:text-primary-300 rst:dark:hover:bg-primary-900/60"},{variant:"soft",colorScheme:"orange",className:"rst:bg-orange-50 rst:text-orange-700 rst:hover:bg-orange-100 rst:dark:bg-orange-900/30 rst:dark:text-orange-300 rst:dark:hover:bg-orange-900/50"},{variant:"soft",colorScheme:"teal",className:"rst:bg-teal-100 rst:text-teal-800 rst:hover:bg-teal-200 rst:dark:bg-teal-900/30 rst:dark:text-teal-300 rst:dark:hover:bg-teal-900/50"},{variant:"soft",colorScheme:"purple",className:"rst:bg-purple-50 rst:text-purple-700 rst:hover:bg-purple-100 rst:dark:bg-purple-900/30 rst:dark:text-purple-300 rst:dark:hover:bg-purple-900/50"},{variant:"soft",colorScheme:"amber",className:"rst:bg-amber-50 rst:text-amber-800 rst:hover:bg-amber-100 rst:dark:bg-amber-900/30 rst:dark:text-amber-300 rst:dark:hover:bg-amber-900/50"},{variant:"soft",colorScheme:"success",className:"rst:bg-success-50 rst:text-success-700 rst:hover:bg-success-100 rst:dark:bg-success-900/30 rst:dark:text-success-300 rst:dark:hover:bg-success-900/50"},{variant:"soft",colorScheme:"error",className:"rst:bg-error-50 rst:text-error-700 rst:hover:bg-error-100 rst:dark:bg-error-900/30 rst:dark:text-error-300 rst:dark:hover:bg-error-900/50"},{variant:"soft",colorScheme:"neutral",className:"rst:bg-gray-100 rst:text-gray-700 rst:hover:bg-gray-200 rst:dark:bg-gray-800/50 rst:dark:text-gray-300 rst:dark:hover:bg-gray-800"},{variant:"outline",colorScheme:"primary",className:"rst:border-primary-600 rst:text-primary-600 rst:hover:bg-primary-50 rst:dark:border-primary-500 rst:dark:text-primary-400 rst:dark:hover:bg-primary-500/10"},{variant:"outline",colorScheme:"orange",className:"rst:border-orange-600 rst:text-orange-600 rst:hover:bg-orange-50 rst:dark:border-orange-500 rst:dark:text-orange-400 rst:dark:hover:bg-orange-500/10"},{variant:"outline",colorScheme:"teal",className:"rst:border-teal-600 rst:text-teal-600 rst:hover:bg-teal-50 rst:dark:border-teal-500 rst:dark:text-teal-400 rst:dark:hover:bg-teal-500/10"},{variant:"outline",colorScheme:"purple",className:"rst:border-purple-600 rst:text-purple-600 rst:hover:bg-purple-50 rst:dark:border-purple-500 rst:dark:text-purple-400 rst:dark:hover:bg-purple-500/10"},{variant:"outline",colorScheme:"amber",className:"rst:border-amber-600 rst:text-amber-600 rst:hover:bg-amber-50 rst:dark:border-amber-500 rst:dark:text-amber-400 rst:dark:hover:bg-amber-500/10"},{variant:"outline",colorScheme:"success",className:"rst:border-success-600 rst:text-success-600 rst:hover:bg-success-50 rst:dark:border-success-500 rst:dark:text-success-400 rst:dark:hover:bg-success-500/10"},{variant:"outline",colorScheme:"error",className:"rst:border-error-600 rst:text-error-600 rst:hover:bg-error-50 rst:dark:border-error-500 rst:dark:text-error-400 rst:dark:hover:bg-error-500/10"},{variant:"outline",colorScheme:"neutral",className:"rst:border-gray-300 rst:text-gray-700 rst:hover:bg-gray-50 rst:dark:border-gray-600 rst:dark:text-gray-300 rst:dark:hover:bg-gray-800/50"},{variant:"ghost",colorScheme:"primary",className:"rst:text-primary-600 rst:hover:bg-primary-500/10 rst:dark:text-primary-400 rst:dark:hover:bg-primary-400/15"},{variant:"ghost",colorScheme:"orange",className:"rst:text-orange-600 rst:hover:bg-orange-500/10 rst:dark:text-orange-400 rst:dark:hover:bg-orange-400/15"},{variant:"ghost",colorScheme:"teal",className:"rst:text-teal-600 rst:hover:bg-teal-500/10 rst:dark:text-teal-400 rst:dark:hover:bg-teal-400/15"},{variant:"ghost",colorScheme:"purple",className:"rst:text-purple-600 rst:hover:bg-purple-500/10 rst:dark:text-purple-400 rst:dark:hover:bg-purple-400/15"},{variant:"ghost",colorScheme:"amber",className:"rst:text-amber-600 rst:hover:bg-amber-500/10 rst:dark:text-amber-400 rst:dark:hover:bg-amber-400/15"},{variant:"ghost",colorScheme:"success",className:"rst:text-success-600 rst:hover:bg-success-500/10 rst:dark:text-success-400 rst:dark:hover:bg-success-400/15"},{variant:"ghost",colorScheme:"error",className:"rst:text-error-600 rst:hover:bg-error-500/10 rst:dark:text-error-400 rst:dark:hover:bg-error-400/15"},{variant:"ghost",colorScheme:"neutral",className:"rst:text-gray-600 rst:hover:bg-gray-500/10 rst:dark:text-gray-400 rst:dark:hover:bg-gray-400/15"},{variant:"link",colorScheme:"primary",className:"rst:text-primary-600 rst:hover:text-primary-700 rst:dark:text-primary-400 rst:dark:hover:text-primary-300"},{variant:"link",colorScheme:"orange",className:"rst:text-orange-600 rst:hover:text-orange-700 rst:dark:text-orange-400 rst:dark:hover:text-orange-300"},{variant:"link",colorScheme:"teal",className:"rst:text-teal-600 rst:hover:text-teal-700 rst:dark:text-teal-400 rst:dark:hover:text-teal-300"},{variant:"link",colorScheme:"purple",className:"rst:text-purple-600 rst:hover:text-purple-700 rst:dark:text-purple-400 rst:dark:hover:text-purple-300"},{variant:"link",colorScheme:"amber",className:"rst:text-amber-600 rst:hover:text-amber-700 rst:dark:text-amber-400 rst:dark:hover:text-amber-300"},{variant:"link",colorScheme:"success",className:"rst:text-success-600 rst:hover:text-success-700 rst:dark:text-success-400 rst:dark:hover:text-success-300"},{variant:"link",colorScheme:"error",className:"rst:text-error-600 rst:hover:text-error-700 rst:dark:text-error-400 rst:dark:hover:text-error-300"},{variant:"link",colorScheme:"neutral",className:"rst:text-gray-600 rst:hover:text-gray-900 rst:dark:text-gray-400 rst:dark:hover:text-gray-100"}],defaultVariants:{colorScheme:"primary",variant:"solid",size:"default"}}),wa=h.forwardRef(({className:e,colorScheme:t,variant:r,size:a,isLoading:n=!1,startIcon:o,endIcon:s,surface:i="auto",disabled:l,children:f,...c},u)=>{const p=l||n;return C.jsxs(Do,{className:j.cn(ka({colorScheme:t,variant:r,size:a}),i==="dark"&&"dark",e),ref:u,disabled:p,...c,children:[n&&C.jsx("span",{className:"rst:mr-2 rst:flex rst:shrink-0 rst:items-center",children:C.jsx(xa,{size:"sm",variant:"current"})}),!n&&o&&C.jsx("span",{className:"rst:mr-2 rst:inline-flex rst:shrink-0 rst:items-center",children:o}),f,!n&&s&&C.jsx("span",{className:"rst:ml-2 rst:inline-flex rst:shrink-0 rst:items-center",children:s})]})});wa.displayName="Button";function wt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}function Wo(e){if(Array.isArray(e))return e}function Ho(e){if(Array.isArray(e))return wt(e)}function Vo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Uo(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,Ea(a.key),a)}}function Yo(e,t,r){return t&&Uo(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function De(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ht(e))||t){r&&(e=r);var a=0,n=function(){};return{s:n,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
9
+ `))}else{let p=c.props,v=p?.className,y=typeof v=="function"?(...S)=>kt(v(...S),l.className):kt(v,l.className),b=y?{className:y}:{},x=ga(c.props,Q(st(l,["ref"])));for(let S in u)S in x&&delete u[S];return h.cloneElement(c,Object.assign({},x,u,f,{ref:n(_o(c),f.ref)},b))}return h.createElement(o,Object.assign({},st(l,["ref"]),!xe(o)&&f,!xe(o)&&u),c)}function Oo(){let e=h.useRef([]),t=h.useCallback(r=>{for(let a of e.current)a!=null&&(typeof a=="function"?a(r):a.current=r)},[]);return(...r)=>{if(!r.every(a=>a==null))return e.current=r,t}}function Lo(...e){return e.every(t=>t==null)?void 0:t=>{for(let r of e)r!=null&&(typeof r=="function"?r(t):r.current=t)}}function ga(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},r={};for(let a of e)for(let n in a)n.startsWith("on")&&typeof a[n]=="function"?(r[n]!=null||(r[n]=[]),r[n].push(a[n])):t[n]=a[n];if(t.disabled||t["aria-disabled"])for(let a in r)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(a)&&(r[a]=[n=>{var o;return(o=n?.preventDefault)==null?void 0:o.call(n)}]);for(let a in r)Object.assign(t,{[a](n,...o){let s=r[a];for(let i of s){if((n instanceof Event||n?.nativeEvent instanceof Event)&&n.defaultPrevented)return;i(n,...o)}}});return t}function ha(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},r={};for(let a of e)for(let n in a)n.startsWith("on")&&typeof a[n]=="function"?(r[n]!=null||(r[n]=[]),r[n].push(a[n])):t[n]=a[n];for(let a in r)Object.assign(t,{[a](...n){let o=r[a];for(let s of o)s?.(...n)}});return t}function ya(e){var t;return Object.assign(h.forwardRef(e),{displayName:(t=e.displayName)!=null?t:e.name})}function Q(e){let t=Object.assign({},e);for(let r in t)t[r]===void 0&&delete t[r];return t}function st(e,t=[]){let r=Object.assign({},e);for(let a of t)a in r&&delete r[a];return r}function _o(e){return h.version.split(".")[0]>="19"?e.props.ref:e.ref}function xe(e){return e===h.Fragment||e===Symbol.for("react.fragment")}function jo(e){return xe(e.type)}let Ro="button";function Mo(e,t){var r;let a=ma(),{disabled:n=a||!1,autoFocus:o=!1,...s}=e,{isFocusVisible:i,focusProps:l}=ra({autoFocus:o}),{isHovered:f,hoverProps:c}=ta({isDisabled:n}),{pressed:u,pressProps:p}=ua({disabled:n}),v=ha({ref:t,type:(r=s.type)!=null?r:"button",disabled:n||void 0,autoFocus:o},l,c,p),y=ca({disabled:n,hover:f,focus:i,active:u,autofocus:o});return ba()({ourProps:v,theirProps:s,slot:y,defaultTag:Ro,name:"Button"})}let Do=ya(Mo);const cr=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,dr=j.clsx,G=(e,t)=>r=>{var a;if(t?.variants==null)return dr(e,r?.class,r?.className);const{variants:n,defaultVariants:o}=t,s=Object.keys(n).map(f=>{const c=r?.[f],u=o?.[f];if(c===null)return null;const p=cr(c)||cr(u);return n[f][p]}),i=r&&Object.entries(r).reduce((f,c)=>{let[u,p]=c;return p===void 0||(f[u]=p),f},{}),l=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((f,c)=>{let{class:u,className:p,...v}=c;return Object.entries(v).every(y=>{let[b,x]=y;return Array.isArray(x)?x.includes({...o,...i}[b]):{...o,...i}[b]===x})?[...f,u,p]:f},[]);return dr(e,s,l,r?.class,r?.className)},zo=G("rst:animate-spin rst:rounded-full rst:transition-colors",{variants:{variant:{primary:"rst:border-primary-600 rst:dark:border-primary-500",neutral:"rst:border-gray-600 rst:dark:border-gray-400",danger:"rst:border-error-600 rst:dark:border-error-500",white:"rst:border-white",current:"rst:border-current"},size:{sm:"rst:h-4 rst:w-4 rst:border-2",md:"rst:h-6 rst:w-6 rst:border-[3px]",lg:"rst:h-8 rst:w-8 rst:border-4"},animation:{classic:"rst:border-solid rst:border-r-transparent rst:dark:border-r-transparent",half:"rst:border-solid rst:border-r-transparent rst:border-b-transparent rst:dark:border-r-transparent rst:dark:border-b-transparent",dashed:"rst:border-dashed",dotted:"rst:border-dotted rst:border-r-transparent rst:dark:border-r-transparent"}},defaultVariants:{variant:"primary",size:"md",animation:"classic"}}),xa=({variant:e,size:t,animation:r,className:a})=>C.jsx("div",{className:j.cn(zo({variant:e,size:t,animation:r}),a),role:"status","aria-label":"loading"}),ka=G("rst:font-ui rst:inline-flex rst:items-center rst:justify-center rst:cursor-pointer rst:whitespace-nowrap rst:rounded-md rst:text-sm rst:font-medium rst:ring-offset-background rst:transition-colors rst:focus-visible:outline-hidden rst:focus-visible:ring-2 rst:focus-visible:ring-ring rst:focus-visible:ring-offset-2 rst:disabled:pointer-events-none rst:disabled:opacity-50",{variants:{variant:{solid:"rst:border rst:border-transparent rst:shadow-sm",soft:"rst:border-transparent rst:shadow-none",outline:"rst:border rst:bg-transparent rst:shadow-sm",ghost:"rst:border rst:border-transparent rst:bg-transparent",link:"rst:bg-transparent rst:underline-offset-4 rst:hover:underline"},colorScheme:{primary:"",orange:"",teal:"",purple:"",amber:"",success:"",error:"",neutral:""},size:{xs:"rst:h-7 rst:rounded rst:px-2 rst:text-xs",sm:"rst:h-9 rst:rounded-md rst:px-3",default:"rst:h-10 rst:px-4 rst:py-2",lg:"rst:h-11 rst:rounded-md rst:px-8",icon:"rst:h-10 rst:w-10"}},compoundVariants:[{variant:"solid",colorScheme:"primary",className:"rst:bg-primary-600 rst:text-white rst:hover:bg-primary-700 rst:dark:bg-primary-600 rst:dark:hover:bg-primary-500"},{variant:"solid",colorScheme:"orange",className:"rst:bg-orange-600 rst:text-white rst:hover:bg-orange-700 rst:dark:bg-orange-600 rst:dark:hover:bg-orange-700"},{variant:"solid",colorScheme:"teal",className:"rst:bg-teal-600 rst:text-gray-950 rst:hover:bg-teal-500 rst:dark:bg-teal-600 rst:dark:hover:bg-teal-500"},{variant:"solid",colorScheme:"purple",className:"rst:bg-purple-600 rst:text-white rst:hover:bg-purple-700 rst:dark:bg-purple-600 rst:dark:hover:bg-purple-700"},{variant:"solid",colorScheme:"amber",className:"rst:bg-amber-400 rst:text-gray-950 rst:hover:bg-amber-500 rst:dark:bg-amber-500 rst:dark:hover:bg-amber-400"},{variant:"solid",colorScheme:"success",className:"rst:bg-success-600 rst:text-white rst:hover:bg-success-700 rst:dark:bg-success-600 rst:dark:hover:bg-success-700"},{variant:"solid",colorScheme:"error",className:"rst:bg-error-600 rst:text-white rst:hover:bg-error-700 rst:dark:bg-error-600 rst:dark:hover:bg-error-500"},{variant:"solid",colorScheme:"neutral",className:"rst:bg-gray-600 rst:text-white rst:hover:bg-gray-700 rst:dark:bg-gray-600 rst:dark:hover:bg-gray-500"},{variant:"soft",colorScheme:"primary",className:"rst:bg-primary-50 rst:text-primary-700 rst:hover:bg-primary-100 rst:dark:bg-primary-900/40 rst:dark:text-primary-300 rst:dark:hover:bg-primary-900/60"},{variant:"soft",colorScheme:"orange",className:"rst:bg-orange-50 rst:text-orange-700 rst:hover:bg-orange-100 rst:dark:bg-orange-900/30 rst:dark:text-orange-300 rst:dark:hover:bg-orange-900/50"},{variant:"soft",colorScheme:"teal",className:"rst:bg-teal-100 rst:text-teal-800 rst:hover:bg-teal-200 rst:dark:bg-teal-900/30 rst:dark:text-teal-300 rst:dark:hover:bg-teal-900/50"},{variant:"soft",colorScheme:"purple",className:"rst:bg-purple-50 rst:text-purple-700 rst:hover:bg-purple-100 rst:dark:bg-purple-900/30 rst:dark:text-purple-300 rst:dark:hover:bg-purple-900/50"},{variant:"soft",colorScheme:"amber",className:"rst:bg-amber-50 rst:text-amber-800 rst:hover:bg-amber-100 rst:dark:bg-amber-900/30 rst:dark:text-amber-300 rst:dark:hover:bg-amber-900/50"},{variant:"soft",colorScheme:"success",className:"rst:bg-success-50 rst:text-success-700 rst:hover:bg-success-100 rst:dark:bg-success-900/30 rst:dark:text-success-300 rst:dark:hover:bg-success-900/50"},{variant:"soft",colorScheme:"error",className:"rst:bg-error-50 rst:text-error-700 rst:hover:bg-error-100 rst:dark:bg-error-900/30 rst:dark:text-error-300 rst:dark:hover:bg-error-900/50"},{variant:"soft",colorScheme:"neutral",className:"rst:bg-gray-100 rst:text-gray-700 rst:hover:bg-gray-200 rst:dark:bg-gray-800/50 rst:dark:text-gray-300 rst:dark:hover:bg-gray-800"},{variant:"outline",colorScheme:"primary",className:"rst:border-primary-600 rst:text-primary-600 rst:hover:bg-primary-50 rst:dark:border-primary-500 rst:dark:text-primary-400 rst:dark:hover:bg-primary-500/10"},{variant:"outline",colorScheme:"orange",className:"rst:border-orange-600 rst:text-orange-600 rst:hover:bg-orange-50 rst:dark:border-orange-500 rst:dark:text-orange-400 rst:dark:hover:bg-orange-500/10"},{variant:"outline",colorScheme:"teal",className:"rst:border-teal-600 rst:text-teal-600 rst:hover:bg-teal-50 rst:dark:border-teal-500 rst:dark:text-teal-400 rst:dark:hover:bg-teal-500/10"},{variant:"outline",colorScheme:"purple",className:"rst:border-purple-600 rst:text-purple-600 rst:hover:bg-purple-50 rst:dark:border-purple-500 rst:dark:text-purple-400 rst:dark:hover:bg-purple-500/10"},{variant:"outline",colorScheme:"amber",className:"rst:border-amber-600 rst:text-amber-600 rst:hover:bg-amber-50 rst:dark:border-amber-500 rst:dark:text-amber-400 rst:dark:hover:bg-amber-500/10"},{variant:"outline",colorScheme:"success",className:"rst:border-success-600 rst:text-success-600 rst:hover:bg-success-50 rst:dark:border-success-500 rst:dark:text-success-400 rst:dark:hover:bg-success-500/10"},{variant:"outline",colorScheme:"error",className:"rst:border-error-600 rst:text-error-600 rst:hover:bg-error-50 rst:dark:border-error-500 rst:dark:text-error-400 rst:dark:hover:bg-error-500/10"},{variant:"outline",colorScheme:"neutral",className:"rst:border-gray-300 rst:text-gray-700 rst:hover:bg-gray-50 rst:dark:border-gray-600 rst:dark:text-gray-300 rst:dark:hover:bg-gray-800/50"},{variant:"ghost",colorScheme:"primary",className:"rst:text-primary-600 rst:hover:bg-primary-500/10 rst:dark:text-primary-400 rst:dark:hover:bg-primary-400/15"},{variant:"ghost",colorScheme:"orange",className:"rst:text-orange-600 rst:hover:bg-orange-500/10 rst:dark:text-orange-400 rst:dark:hover:bg-orange-400/15"},{variant:"ghost",colorScheme:"teal",className:"rst:text-teal-600 rst:hover:bg-teal-500/10 rst:dark:text-teal-400 rst:dark:hover:bg-teal-400/15"},{variant:"ghost",colorScheme:"purple",className:"rst:text-purple-600 rst:hover:bg-purple-500/10 rst:dark:text-purple-400 rst:dark:hover:bg-purple-400/15"},{variant:"ghost",colorScheme:"amber",className:"rst:text-amber-600 rst:hover:bg-amber-500/10 rst:dark:text-amber-400 rst:dark:hover:bg-amber-400/15"},{variant:"ghost",colorScheme:"success",className:"rst:text-success-600 rst:hover:bg-success-500/10 rst:dark:text-success-400 rst:dark:hover:bg-success-400/15"},{variant:"ghost",colorScheme:"error",className:"rst:text-error-600 rst:hover:bg-error-500/10 rst:dark:text-error-400 rst:dark:hover:bg-error-400/15"},{variant:"ghost",colorScheme:"neutral",className:"rst:text-gray-600 rst:hover:bg-gray-500/10 rst:dark:text-gray-400 rst:dark:hover:bg-gray-400/15"},{variant:"link",colorScheme:"primary",className:"rst:text-primary-600 rst:hover:text-primary-700 rst:dark:text-primary-400 rst:dark:hover:text-primary-300"},{variant:"link",colorScheme:"orange",className:"rst:text-orange-600 rst:hover:text-orange-700 rst:dark:text-orange-400 rst:dark:hover:text-orange-300"},{variant:"link",colorScheme:"teal",className:"rst:text-teal-600 rst:hover:text-teal-700 rst:dark:text-teal-400 rst:dark:hover:text-teal-300"},{variant:"link",colorScheme:"purple",className:"rst:text-purple-600 rst:hover:text-purple-700 rst:dark:text-purple-400 rst:dark:hover:text-purple-300"},{variant:"link",colorScheme:"amber",className:"rst:text-amber-600 rst:hover:text-amber-700 rst:dark:text-amber-400 rst:dark:hover:text-amber-300"},{variant:"link",colorScheme:"success",className:"rst:text-success-600 rst:hover:text-success-700 rst:dark:text-success-400 rst:dark:hover:text-success-300"},{variant:"link",colorScheme:"error",className:"rst:text-error-600 rst:hover:text-error-700 rst:dark:text-error-400 rst:dark:hover:text-error-300"},{variant:"link",colorScheme:"neutral",className:"rst:text-gray-600 rst:hover:text-gray-900 rst:dark:text-gray-400 rst:dark:hover:text-gray-100"}],defaultVariants:{colorScheme:"primary",variant:"solid",size:"default"}}),wa=h.forwardRef(({className:e,colorScheme:t,variant:r,size:a,isLoading:n=!1,startIcon:o,endIcon:s,surface:i="auto",disabled:l,children:f,...c},u)=>{const p=l||n;return C.jsxs(Do,{className:j.cn(ka({colorScheme:t,variant:r,size:a}),i==="dark"&&"dark",e),ref:u,disabled:p,...c,children:[n&&C.jsx("span",{className:"rst:mr-2 rst:flex rst:shrink-0 rst:items-center",children:C.jsx(xa,{size:"sm",variant:"current"})}),!n&&o&&C.jsx("span",{className:"rst:mr-2 rst:inline-flex rst:shrink-0 rst:items-center",children:o}),f,!n&&s&&C.jsx("span",{className:"rst:ml-2 rst:inline-flex rst:shrink-0 rst:items-center",children:s})]})});wa.displayName="Button";function wt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}function Wo(e){if(Array.isArray(e))return e}function Ho(e){if(Array.isArray(e))return wt(e)}function Vo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Uo(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,Ea(a.key),a)}}function Yo(e,t,r){return t&&Uo(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function De(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ht(e))||t){r&&(e=r);var a=0,n=function(){};return{s:n,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
10
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o,s=!0,i=!1;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return s=l.done,l},e:function(l){i=!0,o=l},f:function(){try{s||r.return==null||r.return()}finally{if(i)throw o}}}}function k(e,t,r){return(t=Ea(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Go(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Bo(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var a,n,o,s,i=[],l=!0,f=!1;try{if(o=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;l=!1}else for(;!(l=(a=o.call(r)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(c){f=!0,n=c}finally{try{if(!l&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(f)throw n}}return i}}function Ko(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
11
11
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xo(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
12
12
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?mr(Object(r),!0).forEach(function(a){k(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mr(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Xe(e,t){return Wo(e)||Bo(e,t)||Ht(e,t)||Ko()}function D(e){return Ho(e)||Go(e)||Ht(e)||Xo()}function qo(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ea(e){var t=qo(e,"string");return typeof t=="symbol"?t:t+""}function Ue(e){"@babel/helpers - typeof";return Ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ue(e)}function Ht(e,t){if(e){if(typeof e=="string")return wt(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?wt(e,t):void 0}}var vr=function(){},Vt={},Sa={},Aa=null,$a={mark:vr,measure:vr};try{typeof window<"u"&&(Vt=window),typeof document<"u"&&(Sa=document),typeof MutationObserver<"u"&&(Aa=MutationObserver),typeof performance<"u"&&($a=performance)}catch{}var Jo=Vt.navigator||{},pr=Jo.userAgent,br=pr===void 0?"":pr,X=Vt,$=Sa,gr=Aa,Re=$a;X.document;var B=!!$.documentElement&&!!$.head&&typeof $.addEventListener=="function"&&typeof $.createElement=="function",Na=~br.indexOf("MSIE")||~br.indexOf("Trident/"),it,Zo=/fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|gt|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,Qo=/Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Graphite|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i,Ta={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"},slab:{"fa-regular":"regular",faslr:"regular"},"slab-press":{"fa-regular":"regular",faslpr:"regular"},thumbprint:{"fa-light":"light",fatl:"light"},whiteboard:{"fa-semibold":"semibold",fawsb:"semibold"},notdog:{"fa-solid":"solid",fans:"solid"},"notdog-duo":{"fa-solid":"solid",fands:"solid"},etch:{"fa-solid":"solid",faes:"solid"},graphite:{"fa-thin":"thin",fagt:"thin"},jelly:{"fa-regular":"regular",fajr:"regular"},"jelly-fill":{"fa-regular":"regular",fajfr:"regular"},"jelly-duo":{"fa-regular":"regular",fajdr:"regular"},chisel:{"fa-regular":"regular",facr:"regular"},utility:{"fa-semibold":"semibold",fausb:"semibold"},"utility-duo":{"fa-semibold":"semibold",faudsb:"semibold"},"utility-fill":{"fa-semibold":"semibold",faufsb:"semibold"}},es={GROUP:"duotone-group",PRIMARY:"primary",SECONDARY:"secondary"},Pa=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone","fa-thumbprint","fa-whiteboard","fa-notdog","fa-notdog-duo","fa-chisel","fa-etch","fa-graphite","fa-jelly","fa-jelly-fill","fa-jelly-duo","fa-slab","fa-slab-press","fa-utility","fa-utility-duo","fa-utility-fill"],I="classic",Pe="duotone",Fa="sharp",Ca="sharp-duotone",Ia="chisel",Oa="etch",La="graphite",_a="jelly",ja="jelly-duo",Ra="jelly-fill",Ma="notdog",Da="notdog-duo",za="slab",Wa="slab-press",Ha="thumbprint",Va="utility",Ua="utility-duo",Ya="utility-fill",Ga="whiteboard",ts="Classic",rs="Duotone",as="Sharp",ns="Sharp Duotone",os="Chisel",ss="Etch",is="Graphite",ls="Jelly",fs="Jelly Duo",us="Jelly Fill",cs="Notdog",ds="Notdog Duo",ms="Slab",vs="Slab Press",ps="Thumbprint",bs="Utility",gs="Utility Duo",hs="Utility Fill",ys="Whiteboard",Ba=[I,Pe,Fa,Ca,Ia,Oa,La,_a,ja,Ra,Ma,Da,za,Wa,Ha,Va,Ua,Ya,Ga];it={},k(k(k(k(k(k(k(k(k(k(it,I,ts),Pe,rs),Fa,as),Ca,ns),Ia,os),Oa,ss),La,is),_a,ls),ja,fs),Ra,us),k(k(k(k(k(k(k(k(k(it,Ma,cs),Da,ds),za,ms),Wa,vs),Ha,ps),Va,bs),Ua,gs),Ya,hs),Ga,ys);var xs={classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"},slab:{400:"faslr"},"slab-press":{400:"faslpr"},whiteboard:{600:"fawsb"},thumbprint:{300:"fatl"},notdog:{900:"fans"},"notdog-duo":{900:"fands"},etch:{900:"faes"},graphite:{100:"fagt"},chisel:{400:"facr"},jelly:{400:"fajr"},"jelly-fill":{400:"fajfr"},"jelly-duo":{400:"fajdr"},utility:{600:"fausb"},"utility-duo":{600:"faudsb"},"utility-fill":{600:"faufsb"}},ks={"Font Awesome 7 Free":{900:"fas",400:"far"},"Font Awesome 7 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 7 Brands":{400:"fab",normal:"fab"},"Font Awesome 7 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 7 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 7 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"},"Font Awesome 7 Jelly":{400:"fajr",normal:"fajr"},"Font Awesome 7 Jelly Fill":{400:"fajfr",normal:"fajfr"},"Font Awesome 7 Jelly Duo":{400:"fajdr",normal:"fajdr"},"Font Awesome 7 Slab":{400:"faslr",normal:"faslr"},"Font Awesome 7 Slab Press":{400:"faslpr",normal:"faslpr"},"Font Awesome 7 Thumbprint":{300:"fatl",normal:"fatl"},"Font Awesome 7 Notdog":{900:"fans",normal:"fans"},"Font Awesome 7 Notdog Duo":{900:"fands",normal:"fands"},"Font Awesome 7 Etch":{900:"faes",normal:"faes"},"Font Awesome 7 Graphite":{100:"fagt",normal:"fagt"},"Font Awesome 7 Chisel":{400:"facr",normal:"facr"},"Font Awesome 7 Whiteboard":{600:"fawsb",normal:"fawsb"},"Font Awesome 7 Utility":{600:"fausb",normal:"fausb"},"Font Awesome 7 Utility Duo":{600:"faudsb",normal:"faudsb"},"Font Awesome 7 Utility Fill":{600:"faufsb",normal:"faufsb"}},ws=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["chisel",{defaultShortPrefixId:"facr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["etch",{defaultShortPrefixId:"faes",defaultStyleId:"solid",styleIds:["solid"],futureStyleIds:[],defaultFontWeight:900}],["graphite",{defaultShortPrefixId:"fagt",defaultStyleId:"thin",styleIds:["thin"],futureStyleIds:[],defaultFontWeight:100}],["jelly",{defaultShortPrefixId:"fajr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["jelly-duo",{defaultShortPrefixId:"fajdr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["jelly-fill",{defaultShortPrefixId:"fajfr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["notdog",{defaultShortPrefixId:"fans",defaultStyleId:"solid",styleIds:["solid"],futureStyleIds:[],defaultFontWeight:900}],["notdog-duo",{defaultShortPrefixId:"fands",defaultStyleId:"solid",styleIds:["solid"],futureStyleIds:[],defaultFontWeight:900}],["slab",{defaultShortPrefixId:"faslr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["slab-press",{defaultShortPrefixId:"faslpr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["thumbprint",{defaultShortPrefixId:"fatl",defaultStyleId:"light",styleIds:["light"],futureStyleIds:[],defaultFontWeight:300}],["utility",{defaultShortPrefixId:"fausb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}],["utility-duo",{defaultShortPrefixId:"faudsb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}],["utility-fill",{defaultShortPrefixId:"faufsb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}],["whiteboard",{defaultShortPrefixId:"fawsb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}]]),Es={chisel:{regular:"facr"},classic:{brands:"fab",light:"fal",regular:"far",solid:"fas",thin:"fat"},duotone:{light:"fadl",regular:"fadr",solid:"fad",thin:"fadt"},etch:{solid:"faes"},graphite:{thin:"fagt"},jelly:{regular:"fajr"},"jelly-duo":{regular:"fajdr"},"jelly-fill":{regular:"fajfr"},notdog:{solid:"fans"},"notdog-duo":{solid:"fands"},sharp:{light:"fasl",regular:"fasr",solid:"fass",thin:"fast"},"sharp-duotone":{light:"fasdl",regular:"fasdr",solid:"fasds",thin:"fasdt"},slab:{regular:"faslr"},"slab-press":{regular:"faslpr"},thumbprint:{light:"fatl"},utility:{semibold:"fausb"},"utility-duo":{semibold:"faudsb"},"utility-fill":{semibold:"faufsb"},whiteboard:{semibold:"fawsb"}},Ka=["fak","fa-kit","fakd","fa-kit-duotone"],hr={kit:{fak:"kit","fa-kit":"kit"},"kit-duotone":{fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"}},Ss=["kit"],As="kit",$s="kit-duotone",Ns="Kit",Ts="Kit Duotone";k(k({},As,Ns),$s,Ts);var Ps={kit:{"fa-kit":"fak"}},Fs={"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},Cs={kit:{fak:"fa-kit"}},yr={kit:{kit:"fak"},"kit-duotone":{"kit-duotone":"fakd"}},lt,Me={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},Is=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone","fa-thumbprint","fa-whiteboard","fa-notdog","fa-notdog-duo","fa-chisel","fa-etch","fa-graphite","fa-jelly","fa-jelly-fill","fa-jelly-duo","fa-slab","fa-slab-press","fa-utility","fa-utility-duo","fa-utility-fill"],Os="classic",Ls="duotone",_s="sharp",js="sharp-duotone",Rs="chisel",Ms="etch",Ds="graphite",zs="jelly",Ws="jelly-duo",Hs="jelly-fill",Vs="notdog",Us="notdog-duo",Ys="slab",Gs="slab-press",Bs="thumbprint",Ks="utility",Xs="utility-duo",qs="utility-fill",Js="whiteboard",Zs="Classic",Qs="Duotone",ei="Sharp",ti="Sharp Duotone",ri="Chisel",ai="Etch",ni="Graphite",oi="Jelly",si="Jelly Duo",ii="Jelly Fill",li="Notdog",fi="Notdog Duo",ui="Slab",ci="Slab Press",di="Thumbprint",mi="Utility",vi="Utility Duo",pi="Utility Fill",bi="Whiteboard";lt={},k(k(k(k(k(k(k(k(k(k(lt,Os,Zs),Ls,Qs),_s,ei),js,ti),Rs,ri),Ms,ai),Ds,ni),zs,oi),Ws,si),Hs,ii),k(k(k(k(k(k(k(k(k(lt,Vs,li),Us,fi),Ys,ui),Gs,ci),Bs,di),Ks,mi),Xs,vi),qs,pi),Js,bi);var gi="kit",hi="kit-duotone",yi="Kit",xi="Kit Duotone";k(k({},gi,yi),hi,xi);var ki={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"},slab:{"fa-regular":"faslr"},"slab-press":{"fa-regular":"faslpr"},whiteboard:{"fa-semibold":"fawsb"},thumbprint:{"fa-light":"fatl"},notdog:{"fa-solid":"fans"},"notdog-duo":{"fa-solid":"fands"},etch:{"fa-solid":"faes"},graphite:{"fa-thin":"fagt"},jelly:{"fa-regular":"fajr"},"jelly-fill":{"fa-regular":"fajfr"},"jelly-duo":{"fa-regular":"fajdr"},chisel:{"fa-regular":"facr"},utility:{"fa-semibold":"fausb"},"utility-duo":{"fa-semibold":"faudsb"},"utility-fill":{"fa-semibold":"faufsb"}},wi={classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"],slab:["faslr"],"slab-press":["faslpr"],whiteboard:["fawsb"],thumbprint:["fatl"],notdog:["fans"],"notdog-duo":["fands"],etch:["faes"],graphite:["fagt"],jelly:["fajr"],"jelly-fill":["fajfr"],"jelly-duo":["fajdr"],chisel:["facr"],utility:["fausb"],"utility-duo":["faudsb"],"utility-fill":["faufsb"]},Et={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"},slab:{faslr:"fa-regular"},"slab-press":{faslpr:"fa-regular"},whiteboard:{fawsb:"fa-semibold"},thumbprint:{fatl:"fa-light"},notdog:{fans:"fa-solid"},"notdog-duo":{fands:"fa-solid"},etch:{faes:"fa-solid"},graphite:{fagt:"fa-thin"},jelly:{fajr:"fa-regular"},"jelly-fill":{fajfr:"fa-regular"},"jelly-duo":{fajdr:"fa-regular"},chisel:{facr:"fa-regular"},utility:{fausb:"fa-semibold"},"utility-duo":{faudsb:"fa-semibold"},"utility-fill":{faufsb:"fa-semibold"}},Ei=["fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands","fa-semibold"],Xa=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","faslr","faslpr","fawsb","fatl","fans","fands","faes","fagt","fajr","fajfr","fajdr","facr","fausb","faudsb","faufsb"].concat(Is,Ei),Si=["solid","regular","light","thin","duotone","brands","semibold"],qa=[1,2,3,4,5,6,7,8,9,10],Ai=qa.concat([11,12,13,14,15,16,17,18,19,20]),$i=["aw","fw","pull-left","pull-right"],Ni=[].concat(D(Object.keys(wi)),Si,$i,["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","inverse","layers","layers-bottom-left","layers-bottom-right","layers-counter","layers-text","layers-top-left","layers-top-right","li","pull-end","pull-start","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul","width-auto","width-fixed",Me.GROUP,Me.SWAP_OPACITY,Me.PRIMARY,Me.SECONDARY]).concat(qa.map(function(e){return"".concat(e,"x")})).concat(Ai.map(function(e){return"w-".concat(e)})),Ti={"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}},V="___FONT_AWESOME___",St=16,Ja="fa",Za="svg-inline--fa",ae="data-fa-i2svg",At="data-fa-pseudo-element",Pi="data-fa-pseudo-element-pending",Ut="data-prefix",Yt="data-icon",xr="fontawesome-i2svg",Fi="async",Ci=["HTML","HEAD","STYLE","SCRIPT"],Qa=["::before","::after",":before",":after"],en=(function(){try{return process.env.NODE_ENV==="production"}catch{return!1}})();function Fe(e){return new Proxy(e,{get:function(r,a){return a in r?r[a]:r[I]}})}var tn=m({},Ta);tn[I]=m(m(m(m({},{"fa-duotone":"duotone"}),Ta[I]),hr.kit),hr["kit-duotone"]);var Ii=Fe(tn),$t=m({},Es);$t[I]=m(m(m(m({},{duotone:"fad"}),$t[I]),yr.kit),yr["kit-duotone"]);var kr=Fe($t),Nt=m({},Et);Nt[I]=m(m({},Nt[I]),Cs.kit);var Gt=Fe(Nt),Tt=m({},ki);Tt[I]=m(m({},Tt[I]),Ps.kit);Fe(Tt);var Oi=Zo,rn="fa-layers-text",Li=Qo,_i=m({},xs);Fe(_i);var ji=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],ft=es,Ri=[].concat(D(Ss),D(Ni)),ke=X.FontAwesomeConfig||{};function Mi(e){var t=$.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}function Di(e){return e===""?!0:e==="false"?!1:e==="true"?!0:e}if($&&typeof $.querySelector=="function"){var zi=[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-search-pseudo-elements","searchPseudoElements"],["data-search-pseudo-elements-warnings","searchPseudoElementsWarnings"],["data-search-pseudo-elements-full-scan","searchPseudoElementsFullScan"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];zi.forEach(function(e){var t=Xe(e,2),r=t[0],a=t[1],n=Di(Mi(r));n!=null&&(ke[a]=n)})}var an={styleDefault:"solid",familyDefault:I,cssPrefix:Ja,replacementClass:Za,autoReplaceSvg:!0,autoAddCss:!0,searchPseudoElements:!1,searchPseudoElementsWarnings:!0,searchPseudoElementsFullScan:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};ke.familyPrefix&&(ke.cssPrefix=ke.familyPrefix);var ce=m(m({},an),ke);ce.autoReplaceSvg||(ce.observeMutations=!1);var g={};Object.keys(an).forEach(function(e){Object.defineProperty(g,e,{enumerable:!0,set:function(r){ce[e]=r,we.forEach(function(a){return a(g)})},get:function(){return ce[e]}})});Object.defineProperty(g,"familyPrefix",{enumerable:!0,set:function(t){ce.cssPrefix=t,we.forEach(function(r){return r(g)})},get:function(){return ce.cssPrefix}});X.FontAwesomeConfig=g;var we=[];function Wi(e){return we.push(e),function(){we.splice(we.indexOf(e),1)}}var ie=St,z={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function Hi(e){if(!(!e||!B)){var t=$.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var r=$.head.childNodes,a=null,n=r.length-1;n>-1;n--){var o=r[n],s=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(s)>-1&&(a=o)}return $.head.insertBefore(t,a),e}}var Vi="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function wr(){for(var e=12,t="";e-- >0;)t+=Vi[Math.random()*62|0];return t}function de(e){for(var t=[],r=(e||[]).length>>>0;r--;)t[r]=e[r];return t}function Bt(e){return e.classList?de(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(t){return t})}function nn(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ui(e){return Object.keys(e||{}).reduce(function(t,r){return t+"".concat(r,'="').concat(nn(e[r]),'" ')},"").trim()}function qe(e){return Object.keys(e||{}).reduce(function(t,r){return t+"".concat(r,": ").concat(e[r].trim(),";")},"")}function Kt(e){return e.size!==z.size||e.x!==z.x||e.y!==z.y||e.rotate!==z.rotate||e.flipX||e.flipY}function Yi(e){var t=e.transform,r=e.containerWidth,a=e.iconWidth,n={transform:"translate(".concat(r/2," 256)")},o="translate(".concat(t.x*32,", ").concat(t.y*32,") "),s="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),i="rotate(".concat(t.rotate," 0 0)"),l={transform:"".concat(o," ").concat(s," ").concat(i)},f={transform:"translate(".concat(a/2*-1," -256)")};return{outer:n,inner:l,path:f}}function Gi(e){var t=e.transform,r=e.width,a=r===void 0?St:r,n=e.height,o=n===void 0?St:n,s="";return Na?s+="translate(".concat(t.x/ie-a/2,"em, ").concat(t.y/ie-o/2,"em) "):s+="translate(calc(-50% + ".concat(t.x/ie,"em), calc(-50% + ").concat(t.y/ie,"em)) "),s+="scale(".concat(t.size/ie*(t.flipX?-1:1),", ").concat(t.size/ie*(t.flipY?-1:1),") "),s+="rotate(".concat(t.rotate,"deg) "),s}var Bi=`:root, :host {