@blakesteve/roster 4.5.0 → 4.6.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.
- package/README.md +228 -69
- package/dist/{Table-CyNwj97k.cjs → Table-C8f0KOSf.cjs} +1 -1
- package/dist/{Table-DdLQnzNl.js → Table-DuLc2mEo.js} +5 -5
- package/dist/data-table.cjs.js +1 -1
- package/dist/data-table.es.js +1 -1
- package/dist/roster.cjs.js +2 -2
- package/dist/roster.css +1 -1
- package/dist/roster.es.js +35 -35
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -41,7 +41,10 @@ npm install @tanstack/react-table
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
```tsx
|
|
44
|
-
import {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
181
|
-
passed directly to Client
|
|
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
|
|
216
|
-
|
|
217
|
-
| `Avatar`
|
|
218
|
-
| `Badge`
|
|
219
|
-
| `Button`
|
|
220
|
-
| `Card`
|
|
221
|
-
| `Checkbox`
|
|
222
|
-
| `Disclosure`
|
|
223
|
-
| `Eyebrow`
|
|
224
|
-
| `InlineCode`
|
|
225
|
-
| `Input`
|
|
226
|
-
| `LabeledDivider`
|
|
227
|
-
| `Link`
|
|
228
|
-
| `PasswordInput`
|
|
229
|
-
| `Pill`
|
|
230
|
-
| `AvatarStrip`
|
|
231
|
-
| `CollapsibleSection` | Clamps any content (prose, chips, image grids) to a fixed height with a fade and expand/collapse toggle
|
|
232
|
-
| `LiquidTabs`
|
|
233
|
-
| `Select`
|
|
234
|
-
| `SegmentBar`
|
|
235
|
-
| `Stat`
|
|
236
|
-
| `Spinner`
|
|
237
|
-
| `Switch`
|
|
238
|
-
| `Textarea`
|
|
239
|
-
| `ThemeToggle`
|
|
240
|
-
| `Tooltip`
|
|
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
|
|
245
|
-
|
|
246
|
-
| `Accordion`
|
|
247
|
-
| `Alert`
|
|
248
|
-
| `Breadcrumbs`
|
|
249
|
-
| `CallToAction`
|
|
250
|
-
| `DescriptionList` | Label and value pairs as a real `<dl>`: inline, stacked, or split
|
|
251
|
-
| `EmptyState`
|
|
252
|
-
| `ErrorState`
|
|
253
|
-
| `MatchupCard`
|
|
254
|
-
| `Pullquote`
|
|
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
|
|
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`
|
|
264
|
-
| `Footer`
|
|
265
|
-
| `Navbar`
|
|
266
|
-
| `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 {
|
|
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
|
|
311
|
-
|
|
312
|
-
| `useCountdown`
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
399
|
-
|
|
400
|
-
| `roster.es.js`
|
|
401
|
-
| `roster.umd.js`
|
|
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`
|
|
404
|
-
| `tokens.css`
|
|
405
|
-
| `preflight.css`
|
|
406
|
-
| `index.d.ts`
|
|
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,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}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 {
|