@blakesteve/roster 5.13.0 → 5.15.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 +187 -41
- package/dist/components/molecules/Carousel/Carousel.cjs +1 -1
- package/dist/components/molecules/Carousel/Carousel.d.ts +65 -3
- package/dist/components/molecules/Carousel/Carousel.js +376 -225
- package/dist/components/molecules/Carousel/carousel-math.cjs +1 -1
- package/dist/components/molecules/Carousel/carousel-math.d.ts +16 -0
- package/dist/components/molecules/Carousel/carousel-math.js +63 -44
- package/dist/components/molecules/Carousel/carousel-selection.cjs +1 -0
- package/dist/components/molecules/Carousel/carousel-selection.d.ts +28 -0
- package/dist/components/molecules/Carousel/carousel-selection.js +23 -0
- package/dist/components/molecules/LiquidTabs/LiquidCount.d.ts +2 -2
- package/dist/components/molecules/LiquidTabs/LiquidTabPanel.cjs +1 -1
- package/dist/components/molecules/LiquidTabs/LiquidTabPanel.d.ts +10 -49
- package/dist/components/molecules/LiquidTabs/LiquidTabPanel.js +5 -28
- package/dist/components/molecules/LiquidTabs/LiquidTabs.cjs +1 -1
- package/dist/components/molecules/LiquidTabs/LiquidTabs.d.ts +13 -40
- package/dist/components/molecules/LiquidTabs/LiquidTabs.js +5 -95
- package/dist/components/molecules/LiquidTabs/liquid-count.d.ts +7 -5
- package/dist/components/molecules/LiquidTabs/liquid-tab-id.cjs +1 -1
- package/dist/components/molecules/LiquidTabs/liquid-tab-id.d.ts +4 -9
- package/dist/components/molecules/LiquidTabs/liquid-tab-id.js +3 -4
- package/dist/components/molecules/Tabs/TabPanel.cjs +1 -0
- package/dist/components/molecules/Tabs/TabPanel.d.ts +53 -0
- package/dist/components/molecules/Tabs/TabPanel.js +32 -0
- package/dist/components/molecules/Tabs/Tabs.cjs +1 -0
- package/dist/components/molecules/Tabs/Tabs.d.ts +118 -0
- package/dist/components/molecules/Tabs/Tabs.js +145 -0
- package/dist/components/molecules/Tabs/tab-id.cjs +1 -0
- package/dist/components/molecules/Tabs/tab-id.d.ts +13 -0
- package/dist/components/molecules/Tabs/tab-id.js +6 -0
- package/dist/index.d.ts +3 -0
- package/dist/internal/dev.cjs +1 -0
- package/dist/internal/dev.d.ts +10 -0
- package/dist/internal/dev.js +10 -0
- package/dist/meta.json +3 -3
- package/dist/roster.cjs +1 -1
- package/dist/roster.css +1 -1
- package/dist/roster.js +116 -110
- package/package.json +1 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface TabPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, "id" | "role" | "hidden" | "children"> {
|
|
3
|
+
/** The `id` of the `Tabs` this panel belongs to (its `id` prop). */
|
|
4
|
+
tabsId: string;
|
|
5
|
+
/** This panel's `id`: the `panelId` its tab carries, or every tab, for one panel that swaps its content. */
|
|
6
|
+
id: string;
|
|
7
|
+
/**
|
|
8
|
+
* The tab that names this panel. For one panel that swaps its content, the
|
|
9
|
+
* selected tab: the panel's name follows the selection. For a panel per tab,
|
|
10
|
+
* its own tab.
|
|
11
|
+
*/
|
|
12
|
+
tab: string;
|
|
13
|
+
/**
|
|
14
|
+
* For a panel per tab: the selected tab. The panel shows when it is `tab`,
|
|
15
|
+
* and is hidden otherwise. Leave it out for one panel that swaps its
|
|
16
|
+
* content, which always shows.
|
|
17
|
+
*/
|
|
18
|
+
activeTab?: string;
|
|
19
|
+
/**
|
|
20
|
+
* For a panel per tab: keep the content mounted while the panel is hidden,
|
|
21
|
+
* so what's in it (a half-filled form, a scroll position) survives a switch
|
|
22
|
+
* away and back. By default a hidden panel renders no content. The panel
|
|
23
|
+
* element itself always stays, hidden, so its tab's `aria-controls` points
|
|
24
|
+
* at something.
|
|
25
|
+
*/
|
|
26
|
+
keepMounted?: boolean;
|
|
27
|
+
children?: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The panel a `Tabs` tab controls, paired with it by construction:
|
|
31
|
+
* `role="tabpanel"`, its `id` the tab's `panelId`, and `aria-labelledby`
|
|
32
|
+
* pointing at the tab through `tabId`, so it's named for its tab. It works
|
|
33
|
+
* with every variant, and with `LiquidTabs`, whose tabs have the same ids.
|
|
34
|
+
*
|
|
35
|
+
* ```tsx
|
|
36
|
+
* <Tabs id="views" tabs={[{ id: "open", label: "Open", panelId: "views-panel" }, …]} … />
|
|
37
|
+
* <TabPanel tabsId="views" id="views-panel" tab={view}>…</TabPanel>
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* Two ways to lay it out. **One panel that swaps its content:** every tab
|
|
41
|
+
* carries the same `panelId`, and `tab` is the selected tab. **A panel per
|
|
42
|
+
* tab:** each tab has its own `panelId`, each panel its own `tab`, and every
|
|
43
|
+
* panel gets `activeTab`, so only the selected one shows.
|
|
44
|
+
*
|
|
45
|
+
* The WAI tabs pattern puts the panel in the tab order when nothing inside it
|
|
46
|
+
* can take focus, so a keyboard user can reach and scroll what was just
|
|
47
|
+
* selected. Whether the content holds anything focusable isn't known until it
|
|
48
|
+
* renders, and it can change as content loads, so the panel starts reachable
|
|
49
|
+
* (`tabIndex={0}`) and leaves the tab order once its content holds something
|
|
50
|
+
* that can be Tabbed to, rechecking as the content changes. Pass `tabIndex`
|
|
51
|
+
* to decide it yourself.
|
|
52
|
+
*/
|
|
53
|
+
export declare function TabPanel({ tabsId, id, tab, activeTab, keepMounted, tabIndex, children, ...rest }: TabPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
+
import { useRef as m, useState as v, useLayoutEffect as x } from "react";
|
|
4
|
+
import { tabId as y } from "./tab-id.js";
|
|
5
|
+
const B = 'a[href], area[href], button:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), iframe, summary, audio[controls], video[controls], [contenteditable]:not([contenteditable="false"]), [tabindex]:not([tabindex="-1"])';
|
|
6
|
+
function A({ tabsId: s, id: d, tab: t, activeTab: n, keepMounted: l = !1, tabIndex: b, children: u, ...c }) {
|
|
7
|
+
const r = m(null), a = n === void 0 || n === t, [f, h] = v(!1);
|
|
8
|
+
return x(() => {
|
|
9
|
+
const e = r.current;
|
|
10
|
+
if (!e) return;
|
|
11
|
+
const o = () => h(!!e.querySelector(B));
|
|
12
|
+
if (o(), typeof MutationObserver > "u") return;
|
|
13
|
+
const i = new MutationObserver(o);
|
|
14
|
+
return i.observe(e, { childList: !0, subtree: !0, attributes: !0, attributeFilter: ["disabled", "tabindex", "href", "contenteditable"] }), () => i.disconnect();
|
|
15
|
+
}, []), /* @__PURE__ */ p(
|
|
16
|
+
"div",
|
|
17
|
+
{
|
|
18
|
+
...c,
|
|
19
|
+
ref: r,
|
|
20
|
+
role: "tabpanel",
|
|
21
|
+
id: d,
|
|
22
|
+
"aria-labelledby": y(s, t),
|
|
23
|
+
hidden: !a,
|
|
24
|
+
tabIndex: b ?? (f ? void 0 : 0),
|
|
25
|
+
"data-tab-panel": "",
|
|
26
|
+
children: a || l ? u : null
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
A as TabPanel
|
|
32
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),y=require("react"),o=require("../LiquidTabs/liquid-pill.cjs"),O=require("../LiquidTabs/LiquidCount.cjs"),S=require("../LiquidTabs/liquid-count.cjs"),Q=require("./tab-id.cjs"),Y=require("../../../lib/labels.cjs"),_=require("../../../lib/utils.cjs"),$=require("../../../internal/key-focus.cjs"),z=s=>_.cn("rst:font-ui rst:flex rst:gap-1 rst:border-b rst:border-(--roster-tabs-border)",s),H=({fullWidth:s,size:e,isActive:r})=>_.cn("rst:relative rst:cursor-pointer rst:rounded-md rst:border-0 rst:bg-transparent rst:px-3 rst:py-2 rst:text-sm rst:font-medium rst:transition-colors","rst:ring-offset-background rst:focus-visible:outline-hidden rst:focus-visible:ring-2 rst:focus-visible:ring-ring rst:focus-visible:ring-offset-2","rst:after:pointer-events-none rst:after:absolute rst:after:inset-x-0 rst:after:-bottom-px",e==="lg"&&"rst:min-h-11",s&&"rst:flex-1",r?"rst:text-(--roster-tabs-text-active) rst:after:border-b-2 rst:after:border-(--roster-tabs-indicator)":"rst:text-(--roster-tabs-text) rst:hover:text-(--roster-tabs-text-hover) rst:hover:after:border-b-2 rst:hover:after:border-(--roster-tabs-indicator-hover)");function M({stripRef:s,activeTab:e,itemsKey:r,liquidStyle:b,fullWidth:x,className:f,id:d,"aria-label":m,"aria-labelledby":g,onKeyDown:h,onBlur:p,children:q}){const c=y.useRef(null);return o.useLiquidPill(s,c,e,r),n.jsxs("div",{ref:s,id:d,role:"tablist","aria-label":m,"aria-labelledby":g,"data-testid":"liquid-tabs",style:o.LIQUID_STRIP_STYLE,className:o.liquidStripClassName(b,x,f),onKeyDown:h,onBlur:p,children:[n.jsx("div",{ref:c,"aria-hidden":!0,"data-testid":"liquid-tabs-pill",className:o.liquidPillClassName(b),style:o.LIQUID_PILL_STYLE}),q]})}function W(s){const{tabs:e,activeTab:r,onChange:b,variant:x="plain",liquidStyle:f="pill",fullWidth:d=!1,size:m="md",activation:g="automatic",id:h,"aria-label":p,"aria-labelledby":q,className:c,labels:D}=s;$.useKeyFocus();const T=Y.withLabels(S.LIQUID_COUNT_LABELS,D),L=y.useRef(null),E=y.useId(),v=h??E,I=x==="liquid",j=t=>{t!==r&&b(t)},[C,A]=y.useState(null),F=e.some(t=>t.id===r),U=C!==null&&e.some(t=>t.id===C)?C:F?r:e[0]?.id,R=t=>{t.currentTarget.contains(t.relatedTarget)||A(null)},k=t=>{const i=L.current;if(!i)return;const a=Array.from(i.querySelectorAll('[role="tab"]')),u=a.indexOf(t.target);if(u===-1)return;const N=a.length-1,P=getComputedStyle(i).direction==="rtl",B=P?"ArrowLeft":"ArrowRight",K=P?"ArrowRight":"ArrowLeft";let l;if(t.key===B)l=u===N?0:u+1;else if(t.key===K)l=u===0?N:u-1;else if(t.key==="Home")l=0;else if(t.key==="End")l=N;else return;t.preventDefault(),a[l].focus(),g==="automatic"&&j(e[l].id)},w=e.map(t=>{const i=t.id===r,a=typeof t.label=="function"?t.label(i):t.label;return n.jsx("button",{type:"button",role:"tab",id:Q.tabId(v,t.id),"aria-selected":i,"aria-controls":t.panelId,"aria-label":S.countName(a,t.count,T),tabIndex:t.id===U?0:-1,"data-tab-id":t.id,"data-testid":I?`liquid-tab-${t.id}`:void 0,onClick:()=>j(t.id),onFocus:()=>A(t.id),className:I?o.liquidItemClassName({variant:f,fullWidth:d,size:m,isActive:i}):H({fullWidth:d,size:m,isActive:i}),children:S.shownCount(t.count)?n.jsx(O.LiquidCount,{label:a,count:t.count,labels:T}):a},t.id)});return I?n.jsx(M,{stripRef:L,activeTab:r,itemsKey:e.map(t=>t.id).join("\0"),liquidStyle:f,fullWidth:d,className:c,id:v,"aria-label":p,"aria-labelledby":q,onKeyDown:k,onBlur:R,children:w}):n.jsx("div",{ref:L,id:v,role:"tablist","aria-label":p,"aria-labelledby":q,className:z(c),onKeyDown:k,onBlur:R,children:w})}exports.Tabs=W;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TabsLabels } from '../LiquidTabs/liquid-count';
|
|
3
|
+
export type { TabsLabels };
|
|
4
|
+
export interface TabItem {
|
|
5
|
+
id: string;
|
|
6
|
+
/** Static label, or a render function that receives whether this tab is active. */
|
|
7
|
+
label: ReactNode | ((isActive: boolean) => ReactNode);
|
|
8
|
+
/**
|
|
9
|
+
* The `id` of the panel this tab controls, which sets `aria-controls`. Give
|
|
10
|
+
* every tab the same id when one panel swaps its content.
|
|
11
|
+
*/
|
|
12
|
+
panelId?: string;
|
|
13
|
+
/**
|
|
14
|
+
* A number in a small mark beside the label, read as part of the tab's
|
|
15
|
+
* name: "Open, 12 items" (`labels.count` says it).
|
|
16
|
+
*
|
|
17
|
+
* **Zero shows**, as "0" and "0 items": a count that vanished at zero would
|
|
18
|
+
* change the tab's width and move every tab after it, and an empty list is
|
|
19
|
+
* worth saying. To hide it, pass `undefined` for zero. `undefined` means no
|
|
20
|
+
* count and no mark. A negative or fractional count isn't shown at all,
|
|
21
|
+
* never rounded or clamped. Large counts aren't abbreviated: 12,345 shows
|
|
22
|
+
* as "12,345" unless `labels.countMark` writes it shorter.
|
|
23
|
+
*/
|
|
24
|
+
count?: number;
|
|
25
|
+
}
|
|
26
|
+
/** How the strip looks: `plain` (an underline) or `liquid` (a sliding pill). */
|
|
27
|
+
export type TabsVariant = "plain" | "liquid";
|
|
28
|
+
/** The liquid variant's two styles: a floating `pill`, or `filled` cells. */
|
|
29
|
+
export type TabsLiquidStyle = "pill" | "filled";
|
|
30
|
+
/** `md`, or `lg` for a 44px target. */
|
|
31
|
+
export type TabsSize = "md" | "lg";
|
|
32
|
+
interface TabsBaseProps {
|
|
33
|
+
tabs: TabItem[];
|
|
34
|
+
/** The `id` of the currently active tab. */
|
|
35
|
+
activeTab: string;
|
|
36
|
+
/** Called with the new tab `id` when the user selects a different tab. */
|
|
37
|
+
onChange: (id: string) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Stretch the tabs to fill the row, each an equal share. In `plain`, the
|
|
40
|
+
* underline then spans each tab's share; the liquid `filled` style is always
|
|
41
|
+
* full width.
|
|
42
|
+
*/
|
|
43
|
+
fullWidth?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* `"md"` (default), or `"lg"`, which makes every tab at least 44px tall, the
|
|
46
|
+
* WCAG 2.5.5 target size.
|
|
47
|
+
*/
|
|
48
|
+
size?: TabsSize;
|
|
49
|
+
/**
|
|
50
|
+
* `"automatic"` (default): arrowing onto a tab selects it.
|
|
51
|
+
* `"manual"`: arrows move focus only, and Enter or Space selects. Use it when
|
|
52
|
+
* selecting a tab is expensive, like swapping a whole form.
|
|
53
|
+
*/
|
|
54
|
+
activation?: "automatic" | "manual";
|
|
55
|
+
/**
|
|
56
|
+
* The tablist's `id`, and the base of every tab's id: see `tabId`.
|
|
57
|
+
* Generated when omitted, which is fine unless a panel needs to point back at
|
|
58
|
+
* its tab: give it one to pair a `TabPanel`.
|
|
59
|
+
*/
|
|
60
|
+
id?: string;
|
|
61
|
+
"aria-label"?: string;
|
|
62
|
+
"aria-labelledby"?: string;
|
|
63
|
+
/** Extra classes applied to the tablist. */
|
|
64
|
+
className?: string;
|
|
65
|
+
/** Every word a count says, with English defaults: see `TabItem.count`. */
|
|
66
|
+
labels?: Partial<TabsLabels>;
|
|
67
|
+
}
|
|
68
|
+
export type TabsProps = TabsBaseProps & ({
|
|
69
|
+
/**
|
|
70
|
+
* `"plain"` (default): the selected tab is underlined, on a rule that
|
|
71
|
+
* runs the strip's width. `"liquid"`: a pill slides to the selected
|
|
72
|
+
* tab; `liquidStyle` picks its look.
|
|
73
|
+
*/
|
|
74
|
+
variant?: "plain";
|
|
75
|
+
/** The liquid variant's look; only with `variant="liquid"`. */
|
|
76
|
+
liquidStyle?: never;
|
|
77
|
+
} | {
|
|
78
|
+
variant: "liquid";
|
|
79
|
+
/**
|
|
80
|
+
* `"pill"` (default): a floating pill inside a padded strip, `w-fit`
|
|
81
|
+
* unless `fullWidth` is set.
|
|
82
|
+
*
|
|
83
|
+
* `"filled"`: the selected tab fills its whole cell, and the strip is
|
|
84
|
+
* always full width.
|
|
85
|
+
*
|
|
86
|
+
* Both squash the pill vertically (`scaleY`) while it stretches
|
|
87
|
+
* between tabs.
|
|
88
|
+
*/
|
|
89
|
+
liquidStyle?: TabsLiquidStyle;
|
|
90
|
+
});
|
|
91
|
+
/**
|
|
92
|
+
* A controlled tab strip, plain or liquid.
|
|
93
|
+
*
|
|
94
|
+
* Follows the WAI tabs pattern in every variant: only the selected tab is in
|
|
95
|
+
* the tab order, Left and Right move between tabs and wrap, Home and End go
|
|
96
|
+
* to the ends, and `activation="manual"` moves focus without selecting. If
|
|
97
|
+
* `activeTab` matches no tab, the first tab takes the tab stop and nothing is
|
|
98
|
+
* marked selected. Every tab is `type="button"`, so a strip inside a form
|
|
99
|
+
* never submits it.
|
|
100
|
+
*
|
|
101
|
+
* **`variant="plain"`**, the default, underlines the selected tab in
|
|
102
|
+
* `--roster-tabs-indicator` on a rule in `--roster-tabs-border`. The other
|
|
103
|
+
* tabs read `--roster-tabs-text`, darkening to `--roster-tabs-text-hover`
|
|
104
|
+
* under the pointer with a lighter underline, `--roster-tabs-indicator-hover`.
|
|
105
|
+
*
|
|
106
|
+
* **`variant="liquid"`** is the sliding pill `LiquidTabs` has always drawn,
|
|
107
|
+
* with its `pill` and `filled` styles (`liquidStyle`) and its
|
|
108
|
+
* `--roster-lt-*` tokens. The pill follows `activeTab`, never the click, so a
|
|
109
|
+
* change the consumer vetoes, or one that waits on navigation, never leaves
|
|
110
|
+
* it on the wrong tab. Until script has measured it, the selected tab paints
|
|
111
|
+
* the pill's color itself, so server-rendered HTML shows the selection too.
|
|
112
|
+
*
|
|
113
|
+
* A tab can carry a `count`, and a panel pairs with its tab by construction
|
|
114
|
+
* through `TabPanel`, in either variant.
|
|
115
|
+
*
|
|
116
|
+
* For navigation between routes, use `LiquidNav`, which renders links.
|
|
117
|
+
*/
|
|
118
|
+
export declare function Tabs(props: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as c, jsxs as F } from "react/jsx-runtime";
|
|
3
|
+
import { useRef as R, useId as K, useState as Q } from "react";
|
|
4
|
+
import { liquidItemClassName as O, useLiquidPill as Y, LIQUID_STRIP_STYLE as z, LIQUID_PILL_STYLE as H, liquidPillClassName as W, liquidStripClassName as $ } from "../LiquidTabs/liquid-pill.js";
|
|
5
|
+
import { LiquidCount as G } from "../LiquidTabs/LiquidCount.js";
|
|
6
|
+
import { shownCount as J, countName as M, LIQUID_COUNT_LABELS as V } from "../LiquidTabs/liquid-count.js";
|
|
7
|
+
import { tabId as X } from "./tab-id.js";
|
|
8
|
+
import { withLabels as Z } from "../../../lib/labels.js";
|
|
9
|
+
import { cn as _ } from "../../../lib/utils.js";
|
|
10
|
+
import { useKeyFocus as tt } from "../../../internal/key-focus.js";
|
|
11
|
+
const rt = (i) => _("rst:font-ui rst:flex rst:gap-1 rst:border-b rst:border-(--roster-tabs-border)", i), et = ({ fullWidth: i, size: r, isActive: e }) => _(
|
|
12
|
+
"rst:relative rst:cursor-pointer rst:rounded-md rst:border-0 rst:bg-transparent rst:px-3 rst:py-2 rst:text-sm rst:font-medium rst:transition-colors",
|
|
13
|
+
"rst:ring-offset-background rst:focus-visible:outline-hidden rst:focus-visible:ring-2 rst:focus-visible:ring-ring rst:focus-visible:ring-offset-2",
|
|
14
|
+
"rst:after:pointer-events-none rst:after:absolute rst:after:inset-x-0 rst:after:-bottom-px",
|
|
15
|
+
r === "lg" && "rst:min-h-11",
|
|
16
|
+
i && "rst:flex-1",
|
|
17
|
+
e ? "rst:text-(--roster-tabs-text-active) rst:after:border-b-2 rst:after:border-(--roster-tabs-indicator)" : "rst:text-(--roster-tabs-text) rst:hover:text-(--roster-tabs-text-hover) rst:hover:after:border-b-2 rst:hover:after:border-(--roster-tabs-indicator-hover)"
|
|
18
|
+
);
|
|
19
|
+
function it({
|
|
20
|
+
stripRef: i,
|
|
21
|
+
activeTab: r,
|
|
22
|
+
itemsKey: e,
|
|
23
|
+
liquidStyle: u,
|
|
24
|
+
fullWidth: y,
|
|
25
|
+
className: f,
|
|
26
|
+
id: l,
|
|
27
|
+
"aria-label": b,
|
|
28
|
+
"aria-labelledby": h,
|
|
29
|
+
onKeyDown: g,
|
|
30
|
+
onBlur: m,
|
|
31
|
+
children: p
|
|
32
|
+
}) {
|
|
33
|
+
const n = R(null);
|
|
34
|
+
return Y(i, n, r, e), /* @__PURE__ */ F(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
ref: i,
|
|
38
|
+
id: l,
|
|
39
|
+
role: "tablist",
|
|
40
|
+
"aria-label": b,
|
|
41
|
+
"aria-labelledby": h,
|
|
42
|
+
"data-testid": "liquid-tabs",
|
|
43
|
+
style: z,
|
|
44
|
+
className: $(u, y, f),
|
|
45
|
+
onKeyDown: g,
|
|
46
|
+
onBlur: m,
|
|
47
|
+
children: [
|
|
48
|
+
/* @__PURE__ */ c("div", { ref: n, "aria-hidden": !0, "data-testid": "liquid-tabs-pill", className: W(u), style: H }),
|
|
49
|
+
p
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
function bt(i) {
|
|
55
|
+
const {
|
|
56
|
+
tabs: r,
|
|
57
|
+
activeTab: e,
|
|
58
|
+
onChange: u,
|
|
59
|
+
variant: y = "plain",
|
|
60
|
+
liquidStyle: f = "pill",
|
|
61
|
+
fullWidth: l = !1,
|
|
62
|
+
size: b = "md",
|
|
63
|
+
activation: h = "automatic",
|
|
64
|
+
id: g,
|
|
65
|
+
"aria-label": m,
|
|
66
|
+
"aria-labelledby": p,
|
|
67
|
+
className: n,
|
|
68
|
+
labels: D
|
|
69
|
+
} = i;
|
|
70
|
+
tt();
|
|
71
|
+
const N = Z(V, D), L = R(null), E = K(), v = g ?? E, x = y === "liquid", C = (t) => {
|
|
72
|
+
t !== e && u(t);
|
|
73
|
+
}, [I, S] = Q(null), P = r.some((t) => t.id === e), U = I !== null && r.some((t) => t.id === I) ? I : P ? e : r[0]?.id, A = (t) => {
|
|
74
|
+
t.currentTarget.contains(t.relatedTarget) || S(null);
|
|
75
|
+
}, T = (t) => {
|
|
76
|
+
const s = L.current;
|
|
77
|
+
if (!s) return;
|
|
78
|
+
const a = Array.from(
|
|
79
|
+
s.querySelectorAll('[role="tab"]')
|
|
80
|
+
), d = a.indexOf(t.target);
|
|
81
|
+
if (d === -1) return;
|
|
82
|
+
const q = a.length - 1, k = getComputedStyle(s).direction === "rtl", j = k ? "ArrowLeft" : "ArrowRight", B = k ? "ArrowRight" : "ArrowLeft";
|
|
83
|
+
let o;
|
|
84
|
+
if (t.key === j) o = d === q ? 0 : d + 1;
|
|
85
|
+
else if (t.key === B) o = d === 0 ? q : d - 1;
|
|
86
|
+
else if (t.key === "Home") o = 0;
|
|
87
|
+
else if (t.key === "End") o = q;
|
|
88
|
+
else return;
|
|
89
|
+
t.preventDefault(), a[o].focus(), h === "automatic" && C(r[o].id);
|
|
90
|
+
}, w = r.map((t) => {
|
|
91
|
+
const s = t.id === e, a = typeof t.label == "function" ? t.label(s) : t.label;
|
|
92
|
+
return /* @__PURE__ */ c(
|
|
93
|
+
"button",
|
|
94
|
+
{
|
|
95
|
+
type: "button",
|
|
96
|
+
role: "tab",
|
|
97
|
+
id: X(v, t.id),
|
|
98
|
+
"aria-selected": s,
|
|
99
|
+
"aria-controls": t.panelId,
|
|
100
|
+
"aria-label": M(a, t.count, N),
|
|
101
|
+
tabIndex: t.id === U ? 0 : -1,
|
|
102
|
+
"data-tab-id": t.id,
|
|
103
|
+
"data-testid": x ? `liquid-tab-${t.id}` : void 0,
|
|
104
|
+
onClick: () => C(t.id),
|
|
105
|
+
onFocus: () => S(t.id),
|
|
106
|
+
className: x ? O({ variant: f, fullWidth: l, size: b, isActive: s }) : et({ fullWidth: l, size: b, isActive: s }),
|
|
107
|
+
children: J(t.count) ? /* @__PURE__ */ c(G, { label: a, count: t.count, labels: N }) : a
|
|
108
|
+
},
|
|
109
|
+
t.id
|
|
110
|
+
);
|
|
111
|
+
});
|
|
112
|
+
return x ? /* @__PURE__ */ c(
|
|
113
|
+
it,
|
|
114
|
+
{
|
|
115
|
+
stripRef: L,
|
|
116
|
+
activeTab: e,
|
|
117
|
+
itemsKey: r.map((t) => t.id).join("\0"),
|
|
118
|
+
liquidStyle: f,
|
|
119
|
+
fullWidth: l,
|
|
120
|
+
className: n,
|
|
121
|
+
id: v,
|
|
122
|
+
"aria-label": m,
|
|
123
|
+
"aria-labelledby": p,
|
|
124
|
+
onKeyDown: T,
|
|
125
|
+
onBlur: A,
|
|
126
|
+
children: w
|
|
127
|
+
}
|
|
128
|
+
) : /* @__PURE__ */ c(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
ref: L,
|
|
132
|
+
id: v,
|
|
133
|
+
role: "tablist",
|
|
134
|
+
"aria-label": m,
|
|
135
|
+
"aria-labelledby": p,
|
|
136
|
+
className: rt(n),
|
|
137
|
+
onKeyDown: T,
|
|
138
|
+
onBlur: A,
|
|
139
|
+
children: w
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
export {
|
|
144
|
+
bt as Tabs
|
|
145
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function r(t,e){return`${t}-tab-${e}`}exports.tabId=r;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `id` a `Tabs` tab renders with, for a panel's `aria-labelledby`.
|
|
3
|
+
* `TabPanel` uses it, so you need it only for a panel of your own.
|
|
4
|
+
*
|
|
5
|
+
* ```tsx
|
|
6
|
+
* <Tabs id="views" tabs={tabs} activeTab={view} onChange={setView} />
|
|
7
|
+
* <div role="tabpanel" id="views-panel" aria-labelledby={tabId("views", view)}>
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* The tab's own `id` is used verbatim, so keep it free of whitespace. A module
|
|
11
|
+
* of its own, with no React in it, so a server component can call it too.
|
|
12
|
+
*/
|
|
13
|
+
export declare function tabId(listId: string, tab: string): string;
|
package/dist/index.d.ts
CHANGED
|
@@ -60,6 +60,9 @@ export * from './components/molecules/RadioGroup/RadioGroup';
|
|
|
60
60
|
export * from './components/molecules/RadioGroup/radio-group-variants';
|
|
61
61
|
export * from './components/molecules/Breadcrumbs/Breadcrumbs';
|
|
62
62
|
export * from './components/molecules/Breadcrumbs/breadcrumb-variants';
|
|
63
|
+
export * from './components/molecules/Tabs/Tabs';
|
|
64
|
+
export * from './components/molecules/Tabs/TabPanel';
|
|
65
|
+
export * from './components/molecules/Tabs/tab-id';
|
|
63
66
|
export * from './components/molecules/LiquidTabs/LiquidTabs';
|
|
64
67
|
export * from './components/molecules/LiquidTabs/LiquidNav';
|
|
65
68
|
export * from './components/molecules/LiquidTabs/liquid-tab-id';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function e(){try{return process.env.NODE_ENV!=="production"}catch{return!0}}exports.isDevelopment=e;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether this is a development build of the consuming app, for warnings
|
|
3
|
+
* that cost something to check and say nothing a user needs.
|
|
4
|
+
*
|
|
5
|
+
* Written as `process.env.NODE_ENV` in full, because that's the expression a
|
|
6
|
+
* consumer's bundler replaces (Vite, webpack, Next). Roster's own build leaves
|
|
7
|
+
* it alone, so the consumer's build decides. A page with no bundler and no
|
|
8
|
+
* `process` counts as development.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isDevelopment(): boolean;
|
package/dist/meta.json
CHANGED
package/dist/roster.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const S=require("./components/atoms/Avatar/Avatar.cjs"),T=require("./components/atoms/Avatar/avatar-variants.cjs"),C=require("./components/atoms/Badge/Badge.cjs"),g=require("./components/atoms/Badge/badge-variants.cjs"),h=require("./components/atoms/Button/Button.cjs"),k=require("./components/atoms/Button/button-variants.cjs"),M=require("./components/atoms/Card/Card.cjs"),m=require("./components/atoms/Card/card-variants.cjs"),P=require("./components/atoms/Checkbox/Checkbox.cjs"),w=require("./components/atoms/Checkbox/checkbox-variants.cjs"),v=require("./components/atoms/Disclosure/Disclosure.cjs"),n=require("./components/atoms/Disclosure/disclosure-variants.cjs"),A=require("./components/atoms/Input/Input.cjs"),o=require("./components/atoms/Input/input-variants.cjs"),x=require("./components/atoms/Link/Link.cjs"),D=require("./components/atoms/Link/link-variants.cjs"),I=require("./components/atoms/PasswordInput/PasswordInput.cjs"),L=require("./components/atoms/Combobox/Combobox.cjs"),E=require("./components/atoms/Chip/Chip.cjs"),y=require("./components/atoms/Chip/chip-variants.cjs"),B=require("./components/atoms/Pill/Pill.cjs"),s=require("./components/atoms/Pill/pill-variants.cjs"),R=require("./components/atoms/Eyebrow/Eyebrow.cjs"),F=require("./components/atoms/Eyebrow/eyebrow-variants.cjs"),G=require("./components/atoms/InlineCode/InlineCode.cjs"),O=require("./components/atoms/InlineCode/inline-code-variants.cjs"),N=require("./components/atoms/LabeledDivider/LabeledDivider.cjs"),K=require("./components/atoms/Stat/Stat.cjs"),u=require("./components/atoms/Stat/stat-variants.cjs"),Q=require("./components/atoms/ThemeToggle/ThemeToggle.cjs"),H=require("./components/atoms/MultiSelect/MultiSelect.cjs"),_=require("./components/atoms/Select/Select.cjs"),c=require("./components/atoms/Select/select-variants.cjs"),U=require("./components/atoms/Spinner/Spinner.cjs"),W=require("./components/atoms/Switch/Switch.cjs"),l=require("./components/atoms/Switch/switch-variants.cjs"),X=require("./components/atoms/Textarea/Textarea.cjs"),Y=require("./components/atoms/Textarea/textarea-variants.cjs"),f=require("./components/atoms/AvatarStrip/AvatarStrip.cjs"),j=require("./components/atoms/Tooltip/Tooltip.cjs"),z=require("./components/atoms/CollapsibleSection/CollapsibleSection.cjs"),J=require("./components/atoms/SegmentBar/SegmentBar.cjs"),d=require("./components/atoms/Skeleton/Skeleton.cjs"),Z=require("./components/atoms/Progress/Progress.cjs"),$=require("./components/atoms/LoadingDots/LoadingDots.cjs"),ee=require("./components/molecules/Toast/Toast.cjs"),re=require("./components/molecules/Toast/toast-variants.cjs"),te=require("./components/molecules/Toast/Toaster.cjs"),q=require("./components/molecules/Toast/toast-api.cjs"),ae=require("./components/molecules/Alert/Alert.cjs"),ie=require("./components/molecules/Alert/alert-variants.cjs"),ne=require("./components/molecules/Accordion/Accordion.cjs"),oe=require("./components/molecules/DescriptionList/DescriptionList.cjs"),se=require("./components/molecules/DescriptionList/description-list-variants.cjs"),ue=require("./components/molecules/Pullquote/Pullquote.cjs"),ce=require("./components/molecules/Pullquote/pullquote-variants.cjs"),le=require("./components/molecules/CheckboxGroup/CheckboxGroup.cjs"),V=require("./components/molecules/CheckboxGroup/checkbox-group-variants.cjs"),de=require("./components/molecules/RadioGroup/RadioGroup.cjs"),a=require("./components/molecules/RadioGroup/radio-group-variants.cjs"),qe=require("./components/molecules/Breadcrumbs/Breadcrumbs.cjs"),Ve=require("./components/molecules/Breadcrumbs/breadcrumb-variants.cjs"),be=require("./components/molecules/LiquidTabs/LiquidTabs.cjs"),pe=require("./components/molecules/LiquidTabs/LiquidNav.cjs"),Se=require("./components/molecules/LiquidTabs/liquid-tab-id.cjs"),Te=require("./components/molecules/LiquidTabs/LiquidTabPanel.cjs"),Ce=require("./components/molecules/Carousel/Carousel.cjs"),ge=require("./components/molecules/CallToAction/CallToAction.cjs"),he=require("./components/molecules/CallToAction/call-to-action-variants.cjs"),ke=require("./components/molecules/EmptyState/EmptyState.cjs"),Me=require("./components/molecules/EmptyState/empty-state-variants.cjs"),me=require("./components/molecules/MediaPreview/MediaPreview.cjs"),Pe=require("./components/molecules/FileUpload/FileUpload.cjs"),we=require("./components/molecules/Pagination/Pagination.cjs"),i=require("./components/molecules/SkeletonPresets/SkeletonPresets.cjs"),ve=require("./components/molecules/ProgressField/ProgressField.cjs"),Ae=require("./components/molecules/StepProgress/StepProgress.cjs"),xe=require("./components/molecules/ErrorState/ErrorState.cjs"),De=require("./components/molecules/ErrorState/error-state-variants.cjs"),Ie=require("./components/molecules/MatchupCard/MatchupCard.cjs"),e=require("./components/molecules/Menu/Menu.cjs"),Le=require("./components/molecules/Slider/Slider.cjs"),Ee=require("./components/molecules/RangeSlider/RangeSlider.cjs"),ye=require("./components/organisms/ActionBar/ActionBar.cjs"),Be=require("./components/organisms/ActionBar/action-bar-variants.cjs"),Re=require("./components/organisms/Countdown/Countdown.cjs"),Fe=require("./components/organisms/Dialog/Dialog.cjs"),Ge=require("./components/organisms/Footer/Footer.cjs"),Oe=require("./components/organisms/Navbar/Navbar.cjs"),Ne=require("./components/organisms/Navbar/navbar-variants.cjs"),Ke=require("./components/organisms/Sheet/Sheet.cjs"),Qe=require("./components/organisms/ModerationQueue/ModerationQueue.cjs"),He=require("./components/organisms/ModerationQueue/queue-actions.cjs"),_e=require("./components/organisms/ModerationQueue/QueueEditDialog.cjs"),Ue=require("./components/organisms/ModerationQueue/QueueEditSheet.cjs"),r=require("./components/organisms/Table/Table.cjs"),t=require("./components/organisms/Table/table-variants.cjs"),We=require("./hooks/useCountdown.cjs"),b=require("./hooks/useKeySequence.cjs"),p=require("./internal/key-focus.cjs"),Xe=require("./lib/utils.cjs");exports.Avatar=S.Avatar;exports.avatarVariants=T.avatarVariants;exports.Badge=C.Badge;exports.badgeVariants=g.badgeVariants;exports.Button=h.Button;exports.buttonVariants=k.buttonVariants;exports.Card=M.Card;exports.cardVariants=m.cardVariants;exports.Checkbox=P.Checkbox;exports.checkboxVariants=w.checkboxVariants;exports.Disclosure=v.Disclosure;exports.disclosureContentVariants=n.disclosureContentVariants;exports.disclosureTriggerVariants=n.disclosureTriggerVariants;exports.Input=A.Input;exports.iconVariants=o.iconVariants;exports.inputVariants=o.inputVariants;exports.Link=x.Link;exports.linkVariants=D.linkVariants;exports.PasswordInput=I.PasswordInput;exports.Combobox=L.Combobox;exports.Chip=E.Chip;exports.chipVariants=y.chipVariants;exports.Pill=B.Pill;exports.pillDotVariants=s.pillDotVariants;exports.pillVariants=s.pillVariants;exports.Eyebrow=R.Eyebrow;exports.eyebrowVariants=F.eyebrowVariants;exports.InlineCode=G.InlineCode;exports.inlineCodeVariants=O.inlineCodeVariants;exports.LabeledDivider=N.LabeledDivider;exports.Stat=K.Stat;exports.statSourceClass=u.statSourceClass;exports.statValueVariants=u.statValueVariants;exports.ThemeToggle=Q.ThemeToggle;exports.MultiSelect=H.MultiSelect;exports.Select=_.Select;exports.selectOptionVariants=c.selectOptionVariants;exports.selectTriggerVariants=c.selectTriggerVariants;exports.Spinner=U.Spinner;exports.Switch=W.Switch;exports.switchThumbVariants=l.switchThumbVariants;exports.switchTrackVariants=l.switchTrackVariants;exports.Textarea=X.Textarea;exports.textareaVariants=Y.textareaVariants;exports.AvatarStrip=f.AvatarStrip;exports.Tooltip=j.Tooltip;exports.CollapsibleSection=z.CollapsibleSection;exports.SegmentBar=J.SegmentBar;exports.Skeleton=d.Skeleton;exports.SkeletonRegion=d.SkeletonRegion;exports.Progress=Z.Progress;exports.LoadingDots=$.LoadingDots;exports.Toast=ee.Toast;exports.toastVariants=re.toastVariants;exports.Toaster=te.Toaster;exports.TONE_PREFIX=q.TONE_PREFIX;exports.toast=q.toast;exports.Alert=ae.Alert;exports.alertVariants=ie.alertVariants;exports.Accordion=ne.Accordion;exports.DescriptionList=oe.DescriptionList;exports.descriptionListVariants=se.descriptionListVariants;exports.Pullquote=ue.Pullquote;exports.pullquoteVariants=ce.pullquoteVariants;exports.CheckboxGroup=le.CheckboxGroup;exports.checkboxGroupOptionsVariants=V.checkboxGroupOptionsVariants;exports.checkboxGroupPanelVariants=V.checkboxGroupPanelVariants;exports.RadioGroup=de.RadioGroup;exports.radioDotVariants=a.radioDotVariants;exports.radioGroupOptionsVariants=a.radioGroupOptionsVariants;exports.radioOptionVariants=a.radioOptionVariants;exports.radioVariants=a.radioVariants;exports.Breadcrumbs=qe.Breadcrumbs;exports.breadcrumbVariants=Ve.breadcrumbVariants;exports.LiquidTabs=be.LiquidTabs;exports.LiquidNav=pe.LiquidNav;exports.liquidTabId=Se.liquidTabId;exports.LiquidTabPanel=Te.LiquidTabPanel;exports.Carousel=Ce.Carousel;exports.CallToAction=ge.CallToAction;exports.ctaVariants=he.ctaVariants;exports.EmptyState=ke.EmptyState;exports.emptyStateVariants=Me.emptyStateVariants;exports.MediaPreview=me.MediaPreview;exports.FileUpload=Pe.FileUpload;exports.Pagination=we.Pagination;exports.SkeletonAvatar=i.SkeletonAvatar;exports.SkeletonCard=i.SkeletonCard;exports.SkeletonStat=i.SkeletonStat;exports.SkeletonTableRow=i.SkeletonTableRow;exports.ProgressField=ve.ProgressField;exports.StepProgress=Ae.StepProgress;exports.ErrorState=xe.ErrorState;exports.errorStateVariants=De.errorStateVariants;exports.MatchupCard=Ie.MatchupCard;exports.Menu=e.Menu;exports.MenuButton=e.MenuButton;exports.MenuCheckboxItem=e.MenuCheckboxItem;exports.MenuGroup=e.MenuGroup;exports.MenuItem=e.MenuItem;exports.MenuItems=e.MenuItems;exports.MenuRadioGroup=e.MenuRadioGroup;exports.MenuRadioItem=e.MenuRadioItem;exports.MenuSeparator=e.MenuSeparator;exports.MenuSubmenu=e.MenuSubmenu;exports.Slider=Le.Slider;exports.RangeSlider=Ee.RangeSlider;exports.ActionBar=ye.ActionBar;exports.actionBarVariants=Be.actionBarVariants;exports.Countdown=Re.Countdown;exports.Dialog=Fe.Dialog;exports.Footer=Ge.Footer;exports.Navbar=Oe.Navbar;exports.navbarVariants=Ne.navbarVariants;exports.Sheet=Ke.Sheet;exports.ModerationQueue=Qe.ModerationQueue;exports.editAction=He.editAction;exports.QueueEditDialog=_e.QueueEditDialog;exports.QueueEditSheet=Ue.QueueEditSheet;exports.Table=r.Table;exports.TableBody=r.TableBody;exports.TableCaption=r.TableCaption;exports.TableCell=r.TableCell;exports.TableFooter=r.TableFooter;exports.TableHead=r.TableHead;exports.TableHeader=r.TableHeader;exports.TableRow=r.TableRow;exports.tableCellVariants=t.tableCellVariants;exports.tableHeadVariants=t.tableHeadVariants;exports.tableHeaderVariants=t.tableHeaderVariants;exports.tableRowVariants=t.tableRowVariants;exports.tableVariants=t.tableVariants;exports.tableWrapperVariants=t.tableWrapperVariants;exports.useCountdown=We.useCountdown;exports.KONAMI_CODE=b.KONAMI_CODE;exports.useKeySequence=b.useKeySequence;exports.KEY_FOCUS=p.KEY_FOCUS;exports.useKeyFocus=p.useKeyFocus;exports.cn=Xe.cn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const S=require("./components/atoms/Avatar/Avatar.cjs"),T=require("./components/atoms/Avatar/avatar-variants.cjs"),C=require("./components/atoms/Badge/Badge.cjs"),g=require("./components/atoms/Badge/badge-variants.cjs"),h=require("./components/atoms/Button/Button.cjs"),k=require("./components/atoms/Button/button-variants.cjs"),M=require("./components/atoms/Card/Card.cjs"),P=require("./components/atoms/Card/card-variants.cjs"),m=require("./components/atoms/Checkbox/Checkbox.cjs"),w=require("./components/atoms/Checkbox/checkbox-variants.cjs"),v=require("./components/atoms/Disclosure/Disclosure.cjs"),n=require("./components/atoms/Disclosure/disclosure-variants.cjs"),A=require("./components/atoms/Input/Input.cjs"),o=require("./components/atoms/Input/input-variants.cjs"),I=require("./components/atoms/Link/Link.cjs"),x=require("./components/atoms/Link/link-variants.cjs"),D=require("./components/atoms/PasswordInput/PasswordInput.cjs"),L=require("./components/atoms/Combobox/Combobox.cjs"),E=require("./components/atoms/Chip/Chip.cjs"),y=require("./components/atoms/Chip/chip-variants.cjs"),B=require("./components/atoms/Pill/Pill.cjs"),s=require("./components/atoms/Pill/pill-variants.cjs"),R=require("./components/atoms/Eyebrow/Eyebrow.cjs"),F=require("./components/atoms/Eyebrow/eyebrow-variants.cjs"),G=require("./components/atoms/InlineCode/InlineCode.cjs"),O=require("./components/atoms/InlineCode/inline-code-variants.cjs"),N=require("./components/atoms/LabeledDivider/LabeledDivider.cjs"),K=require("./components/atoms/Stat/Stat.cjs"),u=require("./components/atoms/Stat/stat-variants.cjs"),Q=require("./components/atoms/ThemeToggle/ThemeToggle.cjs"),H=require("./components/atoms/MultiSelect/MultiSelect.cjs"),_=require("./components/atoms/Select/Select.cjs"),c=require("./components/atoms/Select/select-variants.cjs"),U=require("./components/atoms/Spinner/Spinner.cjs"),W=require("./components/atoms/Switch/Switch.cjs"),l=require("./components/atoms/Switch/switch-variants.cjs"),X=require("./components/atoms/Textarea/Textarea.cjs"),Y=require("./components/atoms/Textarea/textarea-variants.cjs"),f=require("./components/atoms/AvatarStrip/AvatarStrip.cjs"),j=require("./components/atoms/Tooltip/Tooltip.cjs"),z=require("./components/atoms/CollapsibleSection/CollapsibleSection.cjs"),J=require("./components/atoms/SegmentBar/SegmentBar.cjs"),d=require("./components/atoms/Skeleton/Skeleton.cjs"),Z=require("./components/atoms/Progress/Progress.cjs"),$=require("./components/atoms/LoadingDots/LoadingDots.cjs"),ee=require("./components/molecules/Toast/Toast.cjs"),re=require("./components/molecules/Toast/toast-variants.cjs"),te=require("./components/molecules/Toast/Toaster.cjs"),q=require("./components/molecules/Toast/toast-api.cjs"),ae=require("./components/molecules/Alert/Alert.cjs"),ie=require("./components/molecules/Alert/alert-variants.cjs"),ne=require("./components/molecules/Accordion/Accordion.cjs"),oe=require("./components/molecules/DescriptionList/DescriptionList.cjs"),se=require("./components/molecules/DescriptionList/description-list-variants.cjs"),ue=require("./components/molecules/Pullquote/Pullquote.cjs"),ce=require("./components/molecules/Pullquote/pullquote-variants.cjs"),le=require("./components/molecules/CheckboxGroup/CheckboxGroup.cjs"),V=require("./components/molecules/CheckboxGroup/checkbox-group-variants.cjs"),de=require("./components/molecules/RadioGroup/RadioGroup.cjs"),a=require("./components/molecules/RadioGroup/radio-group-variants.cjs"),qe=require("./components/molecules/Breadcrumbs/Breadcrumbs.cjs"),Ve=require("./components/molecules/Breadcrumbs/breadcrumb-variants.cjs"),be=require("./components/molecules/Tabs/Tabs.cjs"),pe=require("./components/molecules/Tabs/TabPanel.cjs"),Se=require("./components/molecules/Tabs/tab-id.cjs"),Te=require("./components/molecules/LiquidTabs/LiquidTabs.cjs"),Ce=require("./components/molecules/LiquidTabs/LiquidNav.cjs"),ge=require("./components/molecules/LiquidTabs/liquid-tab-id.cjs"),he=require("./components/molecules/LiquidTabs/LiquidTabPanel.cjs"),ke=require("./components/molecules/Carousel/Carousel.cjs"),Me=require("./components/molecules/CallToAction/CallToAction.cjs"),Pe=require("./components/molecules/CallToAction/call-to-action-variants.cjs"),me=require("./components/molecules/EmptyState/EmptyState.cjs"),we=require("./components/molecules/EmptyState/empty-state-variants.cjs"),ve=require("./components/molecules/MediaPreview/MediaPreview.cjs"),Ae=require("./components/molecules/FileUpload/FileUpload.cjs"),Ie=require("./components/molecules/Pagination/Pagination.cjs"),i=require("./components/molecules/SkeletonPresets/SkeletonPresets.cjs"),xe=require("./components/molecules/ProgressField/ProgressField.cjs"),De=require("./components/molecules/StepProgress/StepProgress.cjs"),Le=require("./components/molecules/ErrorState/ErrorState.cjs"),Ee=require("./components/molecules/ErrorState/error-state-variants.cjs"),ye=require("./components/molecules/MatchupCard/MatchupCard.cjs"),e=require("./components/molecules/Menu/Menu.cjs"),Be=require("./components/molecules/Slider/Slider.cjs"),Re=require("./components/molecules/RangeSlider/RangeSlider.cjs"),Fe=require("./components/organisms/ActionBar/ActionBar.cjs"),Ge=require("./components/organisms/ActionBar/action-bar-variants.cjs"),Oe=require("./components/organisms/Countdown/Countdown.cjs"),Ne=require("./components/organisms/Dialog/Dialog.cjs"),Ke=require("./components/organisms/Footer/Footer.cjs"),Qe=require("./components/organisms/Navbar/Navbar.cjs"),He=require("./components/organisms/Navbar/navbar-variants.cjs"),_e=require("./components/organisms/Sheet/Sheet.cjs"),Ue=require("./components/organisms/ModerationQueue/ModerationQueue.cjs"),We=require("./components/organisms/ModerationQueue/queue-actions.cjs"),Xe=require("./components/organisms/ModerationQueue/QueueEditDialog.cjs"),Ye=require("./components/organisms/ModerationQueue/QueueEditSheet.cjs"),r=require("./components/organisms/Table/Table.cjs"),t=require("./components/organisms/Table/table-variants.cjs"),fe=require("./hooks/useCountdown.cjs"),b=require("./hooks/useKeySequence.cjs"),p=require("./internal/key-focus.cjs"),je=require("./lib/utils.cjs");exports.Avatar=S.Avatar;exports.avatarVariants=T.avatarVariants;exports.Badge=C.Badge;exports.badgeVariants=g.badgeVariants;exports.Button=h.Button;exports.buttonVariants=k.buttonVariants;exports.Card=M.Card;exports.cardVariants=P.cardVariants;exports.Checkbox=m.Checkbox;exports.checkboxVariants=w.checkboxVariants;exports.Disclosure=v.Disclosure;exports.disclosureContentVariants=n.disclosureContentVariants;exports.disclosureTriggerVariants=n.disclosureTriggerVariants;exports.Input=A.Input;exports.iconVariants=o.iconVariants;exports.inputVariants=o.inputVariants;exports.Link=I.Link;exports.linkVariants=x.linkVariants;exports.PasswordInput=D.PasswordInput;exports.Combobox=L.Combobox;exports.Chip=E.Chip;exports.chipVariants=y.chipVariants;exports.Pill=B.Pill;exports.pillDotVariants=s.pillDotVariants;exports.pillVariants=s.pillVariants;exports.Eyebrow=R.Eyebrow;exports.eyebrowVariants=F.eyebrowVariants;exports.InlineCode=G.InlineCode;exports.inlineCodeVariants=O.inlineCodeVariants;exports.LabeledDivider=N.LabeledDivider;exports.Stat=K.Stat;exports.statSourceClass=u.statSourceClass;exports.statValueVariants=u.statValueVariants;exports.ThemeToggle=Q.ThemeToggle;exports.MultiSelect=H.MultiSelect;exports.Select=_.Select;exports.selectOptionVariants=c.selectOptionVariants;exports.selectTriggerVariants=c.selectTriggerVariants;exports.Spinner=U.Spinner;exports.Switch=W.Switch;exports.switchThumbVariants=l.switchThumbVariants;exports.switchTrackVariants=l.switchTrackVariants;exports.Textarea=X.Textarea;exports.textareaVariants=Y.textareaVariants;exports.AvatarStrip=f.AvatarStrip;exports.Tooltip=j.Tooltip;exports.CollapsibleSection=z.CollapsibleSection;exports.SegmentBar=J.SegmentBar;exports.Skeleton=d.Skeleton;exports.SkeletonRegion=d.SkeletonRegion;exports.Progress=Z.Progress;exports.LoadingDots=$.LoadingDots;exports.Toast=ee.Toast;exports.toastVariants=re.toastVariants;exports.Toaster=te.Toaster;exports.TONE_PREFIX=q.TONE_PREFIX;exports.toast=q.toast;exports.Alert=ae.Alert;exports.alertVariants=ie.alertVariants;exports.Accordion=ne.Accordion;exports.DescriptionList=oe.DescriptionList;exports.descriptionListVariants=se.descriptionListVariants;exports.Pullquote=ue.Pullquote;exports.pullquoteVariants=ce.pullquoteVariants;exports.CheckboxGroup=le.CheckboxGroup;exports.checkboxGroupOptionsVariants=V.checkboxGroupOptionsVariants;exports.checkboxGroupPanelVariants=V.checkboxGroupPanelVariants;exports.RadioGroup=de.RadioGroup;exports.radioDotVariants=a.radioDotVariants;exports.radioGroupOptionsVariants=a.radioGroupOptionsVariants;exports.radioOptionVariants=a.radioOptionVariants;exports.radioVariants=a.radioVariants;exports.Breadcrumbs=qe.Breadcrumbs;exports.breadcrumbVariants=Ve.breadcrumbVariants;exports.Tabs=be.Tabs;exports.TabPanel=pe.TabPanel;exports.tabId=Se.tabId;exports.LiquidTabs=Te.LiquidTabs;exports.LiquidNav=Ce.LiquidNav;exports.liquidTabId=ge.liquidTabId;exports.LiquidTabPanel=he.LiquidTabPanel;exports.Carousel=ke.Carousel;exports.CallToAction=Me.CallToAction;exports.ctaVariants=Pe.ctaVariants;exports.EmptyState=me.EmptyState;exports.emptyStateVariants=we.emptyStateVariants;exports.MediaPreview=ve.MediaPreview;exports.FileUpload=Ae.FileUpload;exports.Pagination=Ie.Pagination;exports.SkeletonAvatar=i.SkeletonAvatar;exports.SkeletonCard=i.SkeletonCard;exports.SkeletonStat=i.SkeletonStat;exports.SkeletonTableRow=i.SkeletonTableRow;exports.ProgressField=xe.ProgressField;exports.StepProgress=De.StepProgress;exports.ErrorState=Le.ErrorState;exports.errorStateVariants=Ee.errorStateVariants;exports.MatchupCard=ye.MatchupCard;exports.Menu=e.Menu;exports.MenuButton=e.MenuButton;exports.MenuCheckboxItem=e.MenuCheckboxItem;exports.MenuGroup=e.MenuGroup;exports.MenuItem=e.MenuItem;exports.MenuItems=e.MenuItems;exports.MenuRadioGroup=e.MenuRadioGroup;exports.MenuRadioItem=e.MenuRadioItem;exports.MenuSeparator=e.MenuSeparator;exports.MenuSubmenu=e.MenuSubmenu;exports.Slider=Be.Slider;exports.RangeSlider=Re.RangeSlider;exports.ActionBar=Fe.ActionBar;exports.actionBarVariants=Ge.actionBarVariants;exports.Countdown=Oe.Countdown;exports.Dialog=Ne.Dialog;exports.Footer=Ke.Footer;exports.Navbar=Qe.Navbar;exports.navbarVariants=He.navbarVariants;exports.Sheet=_e.Sheet;exports.ModerationQueue=Ue.ModerationQueue;exports.editAction=We.editAction;exports.QueueEditDialog=Xe.QueueEditDialog;exports.QueueEditSheet=Ye.QueueEditSheet;exports.Table=r.Table;exports.TableBody=r.TableBody;exports.TableCaption=r.TableCaption;exports.TableCell=r.TableCell;exports.TableFooter=r.TableFooter;exports.TableHead=r.TableHead;exports.TableHeader=r.TableHeader;exports.TableRow=r.TableRow;exports.tableCellVariants=t.tableCellVariants;exports.tableHeadVariants=t.tableHeadVariants;exports.tableHeaderVariants=t.tableHeaderVariants;exports.tableRowVariants=t.tableRowVariants;exports.tableVariants=t.tableVariants;exports.tableWrapperVariants=t.tableWrapperVariants;exports.useCountdown=fe.useCountdown;exports.KONAMI_CODE=b.KONAMI_CODE;exports.useKeySequence=b.useKeySequence;exports.KEY_FOCUS=p.KEY_FOCUS;exports.useKeyFocus=p.useKeyFocus;exports.cn=je.cn;
|