@refraction-ui/react 0.14.0 → 0.16.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/dist/index.cjs +1186 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +1165 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/browser-chrome-mock/index.d.ts +57 -0
- package/dist/internal/kanban-board/index.d.ts +98 -0
- package/dist/internal/mastery-bar/index.d.ts +60 -0
- package/dist/internal/numbered-steps/index.d.ts +71 -0
- package/dist/internal/pricing-card/index.d.ts +61 -0
- package/dist/internal/react-audience-feature-card/index.d.ts +22 -0
- package/dist/internal/react-brand-network-cell/index.d.ts +30 -0
- package/dist/internal/react-browser-chrome-mock/index.d.ts +21 -0
- package/dist/internal/react-kanban-board/index.d.ts +71 -0
- package/dist/internal/react-marquee-strip/index.d.ts +33 -0
- package/dist/internal/react-mastery-bar/index.d.ts +26 -0
- package/dist/internal/react-numbered-steps/index.d.ts +24 -0
- package/dist/internal/react-pricing-card/index.d.ts +40 -0
- package/dist/internal/react-section-head/index.d.ts +27 -0
- package/dist/internal/react-slot-picker/index.d.ts +31 -0
- package/dist/internal/react-sortable-list/index.d.ts +35 -0
- package/dist/internal/react-stat-grid/index.d.ts +29 -0
- package/dist/internal/section-head/index.d.ts +36 -0
- package/dist/internal/slot-picker/index.d.ts +77 -0
- package/dist/internal/stat-grid/index.d.ts +45 -0
- package/package.json +13 -1
package/dist/index.cjs
CHANGED
|
@@ -28,8 +28,13 @@ var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
|
|
|
28
28
|
|
|
29
29
|
var __defProp = Object.defineProperty;
|
|
30
30
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
31
|
-
var __esm = (fn2, res) => function __init() {
|
|
32
|
-
|
|
31
|
+
var __esm = (fn2, res, err) => function __init() {
|
|
32
|
+
if (err) throw err[0];
|
|
33
|
+
try {
|
|
34
|
+
return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
|
|
35
|
+
} catch (e2) {
|
|
36
|
+
throw err = [e2], e2;
|
|
37
|
+
}
|
|
33
38
|
};
|
|
34
39
|
var __export = (target, all) => {
|
|
35
40
|
for (var name in all)
|
|
@@ -51308,6 +51313,1170 @@ var MiniMap = React11__namespace.forwardRef(
|
|
|
51308
51313
|
}
|
|
51309
51314
|
);
|
|
51310
51315
|
MiniMap.displayName = "MiniMap";
|
|
51316
|
+
|
|
51317
|
+
// ../section-head/dist/index.js
|
|
51318
|
+
function createSectionHead(props = {}) {
|
|
51319
|
+
const { align = "center" } = props;
|
|
51320
|
+
const dataAttributes = {
|
|
51321
|
+
"data-align": align
|
|
51322
|
+
};
|
|
51323
|
+
return { dataAttributes };
|
|
51324
|
+
}
|
|
51325
|
+
var sectionHeadVariants = cva({
|
|
51326
|
+
base: "flex flex-col",
|
|
51327
|
+
variants: {
|
|
51328
|
+
align: {
|
|
51329
|
+
center: "mx-auto text-center max-w-2xl",
|
|
51330
|
+
left: "text-left"
|
|
51331
|
+
}
|
|
51332
|
+
},
|
|
51333
|
+
defaultVariants: {
|
|
51334
|
+
align: "center"
|
|
51335
|
+
}
|
|
51336
|
+
});
|
|
51337
|
+
var sectionHeadKickerClass = "text-[11px] uppercase tracking-widest text-primary font-semibold";
|
|
51338
|
+
var sectionHeadTitleClass = "text-3xl sm:text-4xl font-bold tracking-tight text-foreground";
|
|
51339
|
+
var sectionHeadLedeClass = "mt-3 text-muted-foreground leading-relaxed";
|
|
51340
|
+
var SectionHead = React11__namespace.forwardRef(
|
|
51341
|
+
({
|
|
51342
|
+
kicker,
|
|
51343
|
+
title,
|
|
51344
|
+
lede,
|
|
51345
|
+
align = "center",
|
|
51346
|
+
as: Tag = "h2",
|
|
51347
|
+
className,
|
|
51348
|
+
...props
|
|
51349
|
+
}, ref) => {
|
|
51350
|
+
const { dataAttributes } = createSectionHead({ align });
|
|
51351
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51352
|
+
"div",
|
|
51353
|
+
{
|
|
51354
|
+
ref,
|
|
51355
|
+
className: cn(sectionHeadVariants({ align }), className),
|
|
51356
|
+
...dataAttributes,
|
|
51357
|
+
...props,
|
|
51358
|
+
children: [
|
|
51359
|
+
kicker != null && /* @__PURE__ */ jsxRuntime.jsx("p", { className: sectionHeadKickerClass, children: kicker }),
|
|
51360
|
+
/* @__PURE__ */ jsxRuntime.jsx(Tag, { className: sectionHeadTitleClass, children: title }),
|
|
51361
|
+
lede != null && /* @__PURE__ */ jsxRuntime.jsx("p", { className: sectionHeadLedeClass, children: lede })
|
|
51362
|
+
]
|
|
51363
|
+
}
|
|
51364
|
+
);
|
|
51365
|
+
}
|
|
51366
|
+
);
|
|
51367
|
+
SectionHead.displayName = "SectionHead";
|
|
51368
|
+
|
|
51369
|
+
// ../stat-grid/dist/index.js
|
|
51370
|
+
function statColumns(count, max = 3) {
|
|
51371
|
+
if (count <= 0) return 1;
|
|
51372
|
+
if (count === 1) return 1;
|
|
51373
|
+
if (count === 2) return 2;
|
|
51374
|
+
return Math.min(count, max);
|
|
51375
|
+
}
|
|
51376
|
+
function createStatGrid() {
|
|
51377
|
+
return {
|
|
51378
|
+
ariaProps: { role: "list" },
|
|
51379
|
+
dataAttributes: {}
|
|
51380
|
+
};
|
|
51381
|
+
}
|
|
51382
|
+
var statGridVariants = cva({
|
|
51383
|
+
base: "grid gap-8",
|
|
51384
|
+
variants: {
|
|
51385
|
+
columns: {
|
|
51386
|
+
"1": "grid-cols-1",
|
|
51387
|
+
"2": "grid-cols-2",
|
|
51388
|
+
"3": "grid-cols-3"
|
|
51389
|
+
}
|
|
51390
|
+
},
|
|
51391
|
+
defaultVariants: {
|
|
51392
|
+
columns: "3"
|
|
51393
|
+
}
|
|
51394
|
+
});
|
|
51395
|
+
var statItemClass = "flex flex-col";
|
|
51396
|
+
var statValueClass = "text-xl sm:text-2xl font-bold text-primary";
|
|
51397
|
+
var statLabelClass = "mt-1 text-sm text-muted-foreground leading-snug";
|
|
51398
|
+
var StatGrid = React11__namespace.forwardRef(
|
|
51399
|
+
({ items, columns, className, ...props }, ref) => {
|
|
51400
|
+
const cols = columns ?? statColumns(items.length);
|
|
51401
|
+
const { ariaProps, dataAttributes } = createStatGrid();
|
|
51402
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51403
|
+
"div",
|
|
51404
|
+
{
|
|
51405
|
+
ref,
|
|
51406
|
+
className: cn(
|
|
51407
|
+
statGridVariants({ columns: String(cols) }),
|
|
51408
|
+
className
|
|
51409
|
+
),
|
|
51410
|
+
style: { gridTemplateColumns: `repeat(${cols}, 1fr)` },
|
|
51411
|
+
...ariaProps,
|
|
51412
|
+
...dataAttributes,
|
|
51413
|
+
...props,
|
|
51414
|
+
children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "listitem", className: statItemClass, children: [
|
|
51415
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: statValueClass, children: item.value }),
|
|
51416
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: statLabelClass, children: item.label })
|
|
51417
|
+
] }, index))
|
|
51418
|
+
}
|
|
51419
|
+
);
|
|
51420
|
+
}
|
|
51421
|
+
);
|
|
51422
|
+
StatGrid.displayName = "StatGrid";
|
|
51423
|
+
|
|
51424
|
+
// ../numbered-steps/dist/index.js
|
|
51425
|
+
function padOrdinal(n2) {
|
|
51426
|
+
return String(n2).padStart(2, "0");
|
|
51427
|
+
}
|
|
51428
|
+
function stepColumns(count) {
|
|
51429
|
+
return Math.min(5, Math.max(2, count));
|
|
51430
|
+
}
|
|
51431
|
+
function createNumberedSteps() {
|
|
51432
|
+
const ariaProps = { role: "list" };
|
|
51433
|
+
const dataAttributes = {
|
|
51434
|
+
"data-component": "numbered-steps"
|
|
51435
|
+
};
|
|
51436
|
+
return { ariaProps, dataAttributes };
|
|
51437
|
+
}
|
|
51438
|
+
var numberedStepsVariants = cva({
|
|
51439
|
+
base: "grid gap-6",
|
|
51440
|
+
variants: {
|
|
51441
|
+
columns: {
|
|
51442
|
+
"2": "grid-cols-2",
|
|
51443
|
+
"3": "grid-cols-3",
|
|
51444
|
+
"4": "grid-cols-4",
|
|
51445
|
+
"5": "grid-cols-5"
|
|
51446
|
+
}
|
|
51447
|
+
},
|
|
51448
|
+
defaultVariants: {
|
|
51449
|
+
columns: "3"
|
|
51450
|
+
}
|
|
51451
|
+
});
|
|
51452
|
+
var numberedStepsItemClass = "rounded-xl border border-border bg-card p-5";
|
|
51453
|
+
var numberedStepsOrdinalClass = "font-mono text-sm text-primary";
|
|
51454
|
+
var numberedStepsTitleClass = "mt-2 text-sm font-bold text-foreground";
|
|
51455
|
+
var numberedStepsBodyClass = "mt-1 text-xs text-muted-foreground leading-relaxed";
|
|
51456
|
+
var NumberedSteps = React11__namespace.forwardRef(({ items, columns, className, ...props }, ref) => {
|
|
51457
|
+
const cols = columns ?? stepColumns(items.length);
|
|
51458
|
+
const { ariaProps, dataAttributes } = createNumberedSteps();
|
|
51459
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51460
|
+
"div",
|
|
51461
|
+
{
|
|
51462
|
+
ref,
|
|
51463
|
+
className: cn(numberedStepsVariants(), className),
|
|
51464
|
+
style: { gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))` },
|
|
51465
|
+
...ariaProps,
|
|
51466
|
+
...dataAttributes,
|
|
51467
|
+
...props,
|
|
51468
|
+
children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "listitem", className: numberedStepsItemClass, children: [
|
|
51469
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: numberedStepsOrdinalClass, children: padOrdinal(index + 1) }),
|
|
51470
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: numberedStepsTitleClass, children: item.title }),
|
|
51471
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: numberedStepsBodyClass, children: item.body })
|
|
51472
|
+
] }, index))
|
|
51473
|
+
}
|
|
51474
|
+
);
|
|
51475
|
+
});
|
|
51476
|
+
NumberedSteps.displayName = "NumberedSteps";
|
|
51477
|
+
|
|
51478
|
+
// ../pricing-card/dist/index.js
|
|
51479
|
+
function createPricingCard(options = {}) {
|
|
51480
|
+
const { featured = false } = options;
|
|
51481
|
+
const ariaProps = {
|
|
51482
|
+
role: "group"
|
|
51483
|
+
};
|
|
51484
|
+
const dataAttributes = {
|
|
51485
|
+
"data-featured": String(featured)
|
|
51486
|
+
};
|
|
51487
|
+
return { ariaProps, dataAttributes };
|
|
51488
|
+
}
|
|
51489
|
+
var pricingCardVariants = cva({
|
|
51490
|
+
base: [
|
|
51491
|
+
"relative flex flex-col rounded-2xl border border-border bg-card p-6",
|
|
51492
|
+
"transition-shadow"
|
|
51493
|
+
].join(" "),
|
|
51494
|
+
variants: {
|
|
51495
|
+
featured: {
|
|
51496
|
+
true: "ring-1 ring-primary",
|
|
51497
|
+
false: ""
|
|
51498
|
+
}
|
|
51499
|
+
},
|
|
51500
|
+
defaultVariants: {
|
|
51501
|
+
featured: "false"
|
|
51502
|
+
}
|
|
51503
|
+
});
|
|
51504
|
+
var pricingCardBadgeClass = "mb-3 inline-flex items-center rounded-full bg-primary/10 px-2.5 py-0.5 text-xs font-medium text-primary";
|
|
51505
|
+
var pricingCardNameClass = "text-lg font-bold text-foreground";
|
|
51506
|
+
var pricingCardPriceClass = "text-3xl font-bold text-foreground";
|
|
51507
|
+
var pricingCardPeriodClass = "text-sm text-muted-foreground";
|
|
51508
|
+
var pricingCardDescriptionClass = "text-sm text-muted-foreground";
|
|
51509
|
+
var pricingCardFeatureListClass = "flex flex-col gap-2";
|
|
51510
|
+
var pricingCardFeatureRowClass = "flex items-start gap-2 text-sm text-foreground";
|
|
51511
|
+
var pricingCardFeatureTickClass = "mt-0.5 size-4 shrink-0 text-primary";
|
|
51512
|
+
var pricingCtaVariants = cva({
|
|
51513
|
+
base: [
|
|
51514
|
+
"mt-auto inline-flex w-full items-center justify-center rounded-lg px-4 py-2",
|
|
51515
|
+
"text-sm font-medium transition-colors",
|
|
51516
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
51517
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
51518
|
+
].join(" "),
|
|
51519
|
+
variants: {
|
|
51520
|
+
variant: {
|
|
51521
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
51522
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground"
|
|
51523
|
+
}
|
|
51524
|
+
},
|
|
51525
|
+
defaultVariants: {
|
|
51526
|
+
variant: "default"
|
|
51527
|
+
}
|
|
51528
|
+
});
|
|
51529
|
+
var PricingCard = React11__namespace.forwardRef(
|
|
51530
|
+
({
|
|
51531
|
+
badge,
|
|
51532
|
+
name,
|
|
51533
|
+
price,
|
|
51534
|
+
period,
|
|
51535
|
+
description,
|
|
51536
|
+
features,
|
|
51537
|
+
cta,
|
|
51538
|
+
ctaVariant = "default",
|
|
51539
|
+
ctaHref,
|
|
51540
|
+
onCtaClick,
|
|
51541
|
+
featured = false,
|
|
51542
|
+
className,
|
|
51543
|
+
...props
|
|
51544
|
+
}, ref) => {
|
|
51545
|
+
const { ariaProps, dataAttributes } = createPricingCard({ featured });
|
|
51546
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51547
|
+
"div",
|
|
51548
|
+
{
|
|
51549
|
+
ref,
|
|
51550
|
+
className: cn(pricingCardVariants({ featured: featured ? "true" : "false" }), className),
|
|
51551
|
+
...ariaProps,
|
|
51552
|
+
...dataAttributes,
|
|
51553
|
+
...props,
|
|
51554
|
+
children: [
|
|
51555
|
+
badge != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: pricingCardBadgeClass, children: badge }),
|
|
51556
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: pricingCardNameClass, children: name }),
|
|
51557
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-baseline gap-1", children: [
|
|
51558
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: pricingCardPriceClass, children: price }),
|
|
51559
|
+
period != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: pricingCardPeriodClass, children: period })
|
|
51560
|
+
] }),
|
|
51561
|
+
description != null && /* @__PURE__ */ jsxRuntime.jsx("p", { className: `mt-2 ${pricingCardDescriptionClass}`, children: description }),
|
|
51562
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: `mt-6 ${pricingCardFeatureListClass}`, children: features.map((feature) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: pricingCardFeatureRowClass, children: [
|
|
51563
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51564
|
+
"svg",
|
|
51565
|
+
{
|
|
51566
|
+
className: pricingCardFeatureTickClass,
|
|
51567
|
+
viewBox: "0 0 16 16",
|
|
51568
|
+
fill: "none",
|
|
51569
|
+
"aria-hidden": "true",
|
|
51570
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
51571
|
+
"path",
|
|
51572
|
+
{
|
|
51573
|
+
d: "M3 8l3.5 3.5L13 4.5",
|
|
51574
|
+
stroke: "currentColor",
|
|
51575
|
+
strokeWidth: "1.75",
|
|
51576
|
+
strokeLinecap: "round",
|
|
51577
|
+
strokeLinejoin: "round"
|
|
51578
|
+
}
|
|
51579
|
+
)
|
|
51580
|
+
}
|
|
51581
|
+
),
|
|
51582
|
+
feature
|
|
51583
|
+
] }, feature)) }),
|
|
51584
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6", children: ctaHref != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
51585
|
+
"a",
|
|
51586
|
+
{
|
|
51587
|
+
href: ctaHref,
|
|
51588
|
+
className: pricingCtaVariants({ variant: ctaVariant }),
|
|
51589
|
+
children: cta
|
|
51590
|
+
}
|
|
51591
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
51592
|
+
"button",
|
|
51593
|
+
{
|
|
51594
|
+
type: "button",
|
|
51595
|
+
className: pricingCtaVariants({ variant: ctaVariant }),
|
|
51596
|
+
onClick: onCtaClick,
|
|
51597
|
+
children: cta
|
|
51598
|
+
}
|
|
51599
|
+
) })
|
|
51600
|
+
]
|
|
51601
|
+
}
|
|
51602
|
+
);
|
|
51603
|
+
}
|
|
51604
|
+
);
|
|
51605
|
+
PricingCard.displayName = "PricingCard";
|
|
51606
|
+
|
|
51607
|
+
// ../brand-network-cell/dist/index.js
|
|
51608
|
+
function createBrandNetworkCell(props = {}) {
|
|
51609
|
+
const { current = false } = props;
|
|
51610
|
+
const ariaProps = {
|
|
51611
|
+
role: "group"
|
|
51612
|
+
};
|
|
51613
|
+
const dataAttributes = {
|
|
51614
|
+
"data-current": String(current)
|
|
51615
|
+
};
|
|
51616
|
+
return { ariaProps, dataAttributes };
|
|
51617
|
+
}
|
|
51618
|
+
var brandNetworkCellVariants = cva({
|
|
51619
|
+
base: [
|
|
51620
|
+
"relative rounded-xl border border-border bg-card p-4",
|
|
51621
|
+
"flex flex-col gap-3 transition-shadow"
|
|
51622
|
+
].join(" "),
|
|
51623
|
+
variants: {
|
|
51624
|
+
current: {
|
|
51625
|
+
true: "ring-1 ring-primary",
|
|
51626
|
+
false: ""
|
|
51627
|
+
}
|
|
51628
|
+
},
|
|
51629
|
+
defaultVariants: {
|
|
51630
|
+
current: "false"
|
|
51631
|
+
}
|
|
51632
|
+
});
|
|
51633
|
+
var brandNetworkCellGlyphClass = "flex size-10 items-center justify-center rounded-lg text-sm font-bold";
|
|
51634
|
+
var brandNetworkCellDomainClass = "font-semibold text-foreground";
|
|
51635
|
+
var brandNetworkCellCurrentBadgeClass = "inline-flex items-center rounded-md bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary";
|
|
51636
|
+
var brandNetworkCellBodyClass = "text-sm text-muted-foreground";
|
|
51637
|
+
var brandNetworkCellLinkClass = "text-sm text-primary";
|
|
51638
|
+
var BrandNetworkCell = React11__namespace.forwardRef(
|
|
51639
|
+
({
|
|
51640
|
+
glyph,
|
|
51641
|
+
glyphBg,
|
|
51642
|
+
glyphColor,
|
|
51643
|
+
domain,
|
|
51644
|
+
body,
|
|
51645
|
+
href,
|
|
51646
|
+
linkLabel,
|
|
51647
|
+
current = false,
|
|
51648
|
+
className,
|
|
51649
|
+
...props
|
|
51650
|
+
}, ref) => {
|
|
51651
|
+
const api = createBrandNetworkCell({ current });
|
|
51652
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51653
|
+
"div",
|
|
51654
|
+
{
|
|
51655
|
+
ref,
|
|
51656
|
+
className: cn(
|
|
51657
|
+
brandNetworkCellVariants({ current: current ? "true" : "false" }),
|
|
51658
|
+
className
|
|
51659
|
+
),
|
|
51660
|
+
...api.ariaProps,
|
|
51661
|
+
...api.dataAttributes,
|
|
51662
|
+
...props,
|
|
51663
|
+
children: [
|
|
51664
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51665
|
+
"div",
|
|
51666
|
+
{
|
|
51667
|
+
className: brandNetworkCellGlyphClass,
|
|
51668
|
+
style: { background: glyphBg, color: glyphColor },
|
|
51669
|
+
"aria-hidden": "true",
|
|
51670
|
+
children: glyph
|
|
51671
|
+
}
|
|
51672
|
+
),
|
|
51673
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
51674
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: brandNetworkCellDomainClass, children: domain }),
|
|
51675
|
+
current && /* @__PURE__ */ jsxRuntime.jsx("span", { className: brandNetworkCellCurrentBadgeClass, children: "You are here" })
|
|
51676
|
+
] }),
|
|
51677
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: brandNetworkCellBodyClass, children: body }),
|
|
51678
|
+
href != null && /* @__PURE__ */ jsxRuntime.jsx("a", { href, className: brandNetworkCellLinkClass, children: linkLabel ?? "Visit \u2192" })
|
|
51679
|
+
]
|
|
51680
|
+
}
|
|
51681
|
+
);
|
|
51682
|
+
}
|
|
51683
|
+
);
|
|
51684
|
+
BrandNetworkCell.displayName = "BrandNetworkCell";
|
|
51685
|
+
|
|
51686
|
+
// ../marquee-strip/dist/index.js
|
|
51687
|
+
function createMarqueeStrip(props = {}) {
|
|
51688
|
+
const { scroll = false } = props;
|
|
51689
|
+
const ariaProps = {
|
|
51690
|
+
role: "group"
|
|
51691
|
+
};
|
|
51692
|
+
const dataAttributes = {
|
|
51693
|
+
"data-scroll": String(scroll)
|
|
51694
|
+
};
|
|
51695
|
+
return { ariaProps, dataAttributes };
|
|
51696
|
+
}
|
|
51697
|
+
var marqueeStripVariants = cva({
|
|
51698
|
+
base: "w-full bg-muted/30 border-y border-border py-3",
|
|
51699
|
+
variants: {
|
|
51700
|
+
scroll: {
|
|
51701
|
+
true: "",
|
|
51702
|
+
false: ""
|
|
51703
|
+
}
|
|
51704
|
+
},
|
|
51705
|
+
defaultVariants: {
|
|
51706
|
+
scroll: "false"
|
|
51707
|
+
}
|
|
51708
|
+
});
|
|
51709
|
+
var marqueeStripInnerClass = "flex flex-wrap items-center gap-3 px-4";
|
|
51710
|
+
var marqueeStripScrollOuterClass = "overflow-hidden px-4";
|
|
51711
|
+
var marqueeStripScrollTrackClass = "flex items-center gap-3 w-max animate-[marquee_30s_linear_infinite]";
|
|
51712
|
+
var marqueeStripLabelClass = "text-xs font-semibold uppercase tracking-widest text-muted-foreground shrink-0";
|
|
51713
|
+
var marqueeStripItemClass = "text-sm text-foreground";
|
|
51714
|
+
var MarqueeStrip = React11__namespace.forwardRef(
|
|
51715
|
+
({ label, items, scroll = false, className, ...props }, ref) => {
|
|
51716
|
+
const api = createMarqueeStrip({ scroll });
|
|
51717
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51718
|
+
"div",
|
|
51719
|
+
{
|
|
51720
|
+
ref,
|
|
51721
|
+
className: cn(marqueeStripVariants({ scroll: scroll ? "true" : "false" }), className),
|
|
51722
|
+
...api.ariaProps,
|
|
51723
|
+
...api.dataAttributes,
|
|
51724
|
+
...props,
|
|
51725
|
+
children: scroll ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: marqueeStripScrollOuterClass, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: marqueeStripScrollTrackClass, children: [...items, ...items].map((item, index) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: marqueeStripItemClass, children: item }, index)) }) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: marqueeStripInnerClass, children: [
|
|
51726
|
+
label != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: marqueeStripLabelClass, children: label }),
|
|
51727
|
+
items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: marqueeStripItemClass, children: item }, index))
|
|
51728
|
+
] })
|
|
51729
|
+
}
|
|
51730
|
+
);
|
|
51731
|
+
}
|
|
51732
|
+
);
|
|
51733
|
+
MarqueeStrip.displayName = "MarqueeStrip";
|
|
51734
|
+
|
|
51735
|
+
// ../browser-chrome-mock/dist/index.js
|
|
51736
|
+
function splitUrl(url) {
|
|
51737
|
+
const slashIndex = url.indexOf("/");
|
|
51738
|
+
if (slashIndex === -1) {
|
|
51739
|
+
return { domain: url, path: "" };
|
|
51740
|
+
}
|
|
51741
|
+
return {
|
|
51742
|
+
domain: url.slice(0, slashIndex),
|
|
51743
|
+
path: url.slice(slashIndex)
|
|
51744
|
+
};
|
|
51745
|
+
}
|
|
51746
|
+
function createBrowserChromeMock(props = {}) {
|
|
51747
|
+
const { status } = props;
|
|
51748
|
+
const ariaProps = {
|
|
51749
|
+
role: "group",
|
|
51750
|
+
"aria-label": "Browser preview"
|
|
51751
|
+
};
|
|
51752
|
+
const dataAttributes = {};
|
|
51753
|
+
if (status !== void 0) {
|
|
51754
|
+
dataAttributes["data-status"] = status;
|
|
51755
|
+
}
|
|
51756
|
+
return { ariaProps, dataAttributes };
|
|
51757
|
+
}
|
|
51758
|
+
var browserChromeMockVariants = cva({
|
|
51759
|
+
base: "rounded-xl border border-border overflow-hidden bg-card",
|
|
51760
|
+
variants: {},
|
|
51761
|
+
defaultVariants: {}
|
|
51762
|
+
});
|
|
51763
|
+
var chromeBarClass = "flex items-center gap-2 bg-muted/40 border-b border-border px-3 py-2";
|
|
51764
|
+
var trafficDotClass = "size-2.5 rounded-full border border-border";
|
|
51765
|
+
var urlBarClass = "flex-1 text-center font-mono text-[11px] text-muted-foreground";
|
|
51766
|
+
var urlDomainClass = "font-semibold text-foreground";
|
|
51767
|
+
var statusBadgeVariants = cva({
|
|
51768
|
+
base: "inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide",
|
|
51769
|
+
variants: {
|
|
51770
|
+
status: {
|
|
51771
|
+
live: "text-emerald-500 bg-emerald-500/10",
|
|
51772
|
+
rec: "text-destructive bg-destructive/10"
|
|
51773
|
+
}
|
|
51774
|
+
},
|
|
51775
|
+
defaultVariants: {
|
|
51776
|
+
status: "live"
|
|
51777
|
+
}
|
|
51778
|
+
});
|
|
51779
|
+
var contentAreaClass = "p-0";
|
|
51780
|
+
var TRAFFIC_DOTS = ["bg-red-400", "bg-yellow-400", "bg-green-400"];
|
|
51781
|
+
var BrowserChromeMock = React11__namespace.forwardRef(({ url, status, className, children, ...props }, ref) => {
|
|
51782
|
+
const { ariaProps, dataAttributes } = createBrowserChromeMock({ status });
|
|
51783
|
+
const { domain, path } = splitUrl(url);
|
|
51784
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51785
|
+
"div",
|
|
51786
|
+
{
|
|
51787
|
+
ref,
|
|
51788
|
+
className: cn(browserChromeMockVariants(), className),
|
|
51789
|
+
...ariaProps,
|
|
51790
|
+
...dataAttributes,
|
|
51791
|
+
...props,
|
|
51792
|
+
children: [
|
|
51793
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chromeBarClass, children: [
|
|
51794
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1.5 shrink-0", children: TRAFFIC_DOTS.map((color) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(trafficDotClass, color) }, color)) }),
|
|
51795
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: urlBarClass, children: [
|
|
51796
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: urlDomainClass, children: domain }),
|
|
51797
|
+
path && /* @__PURE__ */ jsxRuntime.jsx("span", { children: path })
|
|
51798
|
+
] }),
|
|
51799
|
+
status && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: statusBadgeVariants({ status }), children: [
|
|
51800
|
+
status === "rec" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-1.5 rounded-full bg-destructive animate-pulse" }),
|
|
51801
|
+
status
|
|
51802
|
+
] })
|
|
51803
|
+
] }),
|
|
51804
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: contentAreaClass, children })
|
|
51805
|
+
]
|
|
51806
|
+
}
|
|
51807
|
+
);
|
|
51808
|
+
});
|
|
51809
|
+
BrowserChromeMock.displayName = "BrowserChromeMock";
|
|
51810
|
+
|
|
51811
|
+
// ../mastery-bar/dist/index.js
|
|
51812
|
+
function clampPercent(value) {
|
|
51813
|
+
if (Number.isNaN(value)) return 0;
|
|
51814
|
+
return Math.min(100, Math.max(0, value));
|
|
51815
|
+
}
|
|
51816
|
+
function createMasteryBar({ value }) {
|
|
51817
|
+
const clamped = clampPercent(value);
|
|
51818
|
+
const ariaProps = {
|
|
51819
|
+
role: "progressbar",
|
|
51820
|
+
"aria-valuenow": clamped,
|
|
51821
|
+
"aria-valuemin": 0,
|
|
51822
|
+
"aria-valuemax": 100
|
|
51823
|
+
};
|
|
51824
|
+
const dataAttributes = {
|
|
51825
|
+
"data-value": String(clamped)
|
|
51826
|
+
};
|
|
51827
|
+
return { ariaProps, dataAttributes };
|
|
51828
|
+
}
|
|
51829
|
+
var masteryBarVariants = cva({
|
|
51830
|
+
base: "w-full overflow-hidden rounded-full bg-muted",
|
|
51831
|
+
variants: {
|
|
51832
|
+
size: {
|
|
51833
|
+
sm: "h-1.5",
|
|
51834
|
+
md: "h-2",
|
|
51835
|
+
lg: "h-3"
|
|
51836
|
+
}
|
|
51837
|
+
},
|
|
51838
|
+
defaultVariants: {
|
|
51839
|
+
size: "md"
|
|
51840
|
+
}
|
|
51841
|
+
});
|
|
51842
|
+
var masteryBarFillVariants = cva({
|
|
51843
|
+
base: "h-full rounded-full bg-primary",
|
|
51844
|
+
variants: {
|
|
51845
|
+
muted: {
|
|
51846
|
+
true: "bg-primary/70",
|
|
51847
|
+
false: "bg-primary"
|
|
51848
|
+
}
|
|
51849
|
+
},
|
|
51850
|
+
defaultVariants: {
|
|
51851
|
+
muted: "false"
|
|
51852
|
+
}
|
|
51853
|
+
});
|
|
51854
|
+
var masteryBarLabelClass = "text-xs text-muted-foreground";
|
|
51855
|
+
var masteryBarLeadingLabelClass = "text-xs text-muted-foreground";
|
|
51856
|
+
var masteryBarHeaderClass = "flex justify-between items-baseline mb-1";
|
|
51857
|
+
var MasteryBar = React11__namespace.forwardRef(
|
|
51858
|
+
({
|
|
51859
|
+
value,
|
|
51860
|
+
label,
|
|
51861
|
+
leadingLabel,
|
|
51862
|
+
size = "md",
|
|
51863
|
+
muted = false,
|
|
51864
|
+
className,
|
|
51865
|
+
...props
|
|
51866
|
+
}, ref) => {
|
|
51867
|
+
const clamped = clampPercent(value);
|
|
51868
|
+
const { ariaProps, dataAttributes } = createMasteryBar({ value });
|
|
51869
|
+
const hasHeader = leadingLabel != null || label != null;
|
|
51870
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("w-full", className), ...props, children: [
|
|
51871
|
+
hasHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: masteryBarHeaderClass, children: [
|
|
51872
|
+
leadingLabel != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: masteryBarLeadingLabelClass, children: leadingLabel }),
|
|
51873
|
+
label != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: masteryBarLabelClass, children: label })
|
|
51874
|
+
] }),
|
|
51875
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51876
|
+
"div",
|
|
51877
|
+
{
|
|
51878
|
+
className: masteryBarVariants({ size }),
|
|
51879
|
+
...ariaProps,
|
|
51880
|
+
...dataAttributes,
|
|
51881
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
51882
|
+
"div",
|
|
51883
|
+
{
|
|
51884
|
+
className: masteryBarFillVariants({ muted: muted ? "true" : "false" }),
|
|
51885
|
+
style: { width: `${clamped}%` }
|
|
51886
|
+
}
|
|
51887
|
+
)
|
|
51888
|
+
}
|
|
51889
|
+
)
|
|
51890
|
+
] });
|
|
51891
|
+
}
|
|
51892
|
+
);
|
|
51893
|
+
MasteryBar.displayName = "MasteryBar";
|
|
51894
|
+
|
|
51895
|
+
// ../audience-feature-card/dist/index.js
|
|
51896
|
+
function createAudienceFeatureCard(_props = {}) {
|
|
51897
|
+
const ariaProps = {
|
|
51898
|
+
role: "group"
|
|
51899
|
+
};
|
|
51900
|
+
const dataAttributes = {
|
|
51901
|
+
"data-component": "audience-feature-card"
|
|
51902
|
+
};
|
|
51903
|
+
return { ariaProps, dataAttributes };
|
|
51904
|
+
}
|
|
51905
|
+
var audienceFeatureCardVariants = cva({
|
|
51906
|
+
base: "flex h-full flex-col rounded-xl border border-border bg-card p-5",
|
|
51907
|
+
variants: {},
|
|
51908
|
+
defaultVariants: {}
|
|
51909
|
+
});
|
|
51910
|
+
var audienceFeatureCardKickerClass = "text-[10px] uppercase tracking-widest text-primary font-semibold";
|
|
51911
|
+
var audienceFeatureCardTitleClass = "mt-2 text-lg font-bold text-foreground";
|
|
51912
|
+
var audienceFeatureCardBodyClass = "mt-1 text-sm text-muted-foreground leading-relaxed";
|
|
51913
|
+
var audienceFeatureCardFooterClass = "mt-auto pt-4 text-xs";
|
|
51914
|
+
var AudienceFeatureCard = React11__namespace.forwardRef(({ kicker, title, body, footer, className, ...props }, ref) => {
|
|
51915
|
+
const { ariaProps, dataAttributes } = createAudienceFeatureCard();
|
|
51916
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51917
|
+
"div",
|
|
51918
|
+
{
|
|
51919
|
+
ref,
|
|
51920
|
+
className: cn(audienceFeatureCardVariants(), className),
|
|
51921
|
+
...ariaProps,
|
|
51922
|
+
...dataAttributes,
|
|
51923
|
+
...props,
|
|
51924
|
+
children: [
|
|
51925
|
+
kicker != null && /* @__PURE__ */ jsxRuntime.jsx("p", { className: audienceFeatureCardKickerClass, children: kicker }),
|
|
51926
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: audienceFeatureCardTitleClass, children: title }),
|
|
51927
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: audienceFeatureCardBodyClass, children: body }),
|
|
51928
|
+
footer != null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: audienceFeatureCardFooterClass, children: footer })
|
|
51929
|
+
]
|
|
51930
|
+
}
|
|
51931
|
+
);
|
|
51932
|
+
});
|
|
51933
|
+
AudienceFeatureCard.displayName = "AudienceFeatureCard";
|
|
51934
|
+
|
|
51935
|
+
// ../sortable-list/dist/index.js
|
|
51936
|
+
function reorder(items, from, to2) {
|
|
51937
|
+
const len = items.length;
|
|
51938
|
+
if (len === 0 || from < 0 || from >= len || to2 < 0 || to2 >= len || from === to2) {
|
|
51939
|
+
return [...items];
|
|
51940
|
+
}
|
|
51941
|
+
const result = [...items];
|
|
51942
|
+
const [moved] = result.splice(from, 1);
|
|
51943
|
+
result.splice(to2, 0, moved);
|
|
51944
|
+
return result;
|
|
51945
|
+
}
|
|
51946
|
+
function getNextOrderIndex(current, key, count) {
|
|
51947
|
+
if (count <= 0) return current;
|
|
51948
|
+
const clamped = Math.max(0, Math.min(current, count - 1));
|
|
51949
|
+
switch (key) {
|
|
51950
|
+
case "ArrowUp":
|
|
51951
|
+
case "ArrowLeft":
|
|
51952
|
+
return Math.max(0, clamped - 1);
|
|
51953
|
+
case "ArrowDown":
|
|
51954
|
+
case "ArrowRight":
|
|
51955
|
+
return Math.min(count - 1, clamped + 1);
|
|
51956
|
+
case "Home":
|
|
51957
|
+
return 0;
|
|
51958
|
+
case "End":
|
|
51959
|
+
return count - 1;
|
|
51960
|
+
default:
|
|
51961
|
+
return clamped;
|
|
51962
|
+
}
|
|
51963
|
+
}
|
|
51964
|
+
function createSortableList() {
|
|
51965
|
+
return {
|
|
51966
|
+
ariaProps: {
|
|
51967
|
+
role: "list"
|
|
51968
|
+
},
|
|
51969
|
+
dataAttributes: {
|
|
51970
|
+
"data-component": "sortable-list"
|
|
51971
|
+
}
|
|
51972
|
+
};
|
|
51973
|
+
}
|
|
51974
|
+
var sortableListVariants = cva({
|
|
51975
|
+
base: "flex flex-col gap-1 w-full",
|
|
51976
|
+
variants: {
|
|
51977
|
+
disabled: {
|
|
51978
|
+
true: "opacity-50 pointer-events-none",
|
|
51979
|
+
false: ""
|
|
51980
|
+
}
|
|
51981
|
+
},
|
|
51982
|
+
defaultVariants: {
|
|
51983
|
+
disabled: "false"
|
|
51984
|
+
}
|
|
51985
|
+
});
|
|
51986
|
+
var sortableListRowVariants = cva({
|
|
51987
|
+
base: [
|
|
51988
|
+
"flex items-center gap-3 rounded-md border border-border bg-card px-3 py-2",
|
|
51989
|
+
"transition-opacity"
|
|
51990
|
+
].join(" "),
|
|
51991
|
+
variants: {
|
|
51992
|
+
dragging: {
|
|
51993
|
+
true: "opacity-50 ring-2 ring-ring",
|
|
51994
|
+
false: ""
|
|
51995
|
+
}
|
|
51996
|
+
},
|
|
51997
|
+
defaultVariants: {
|
|
51998
|
+
dragging: "false"
|
|
51999
|
+
}
|
|
52000
|
+
});
|
|
52001
|
+
var sortableListGripClass = "cursor-grab text-muted-foreground shrink-0 flex items-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded";
|
|
52002
|
+
var sortableListContentClass = "flex-1 min-w-0";
|
|
52003
|
+
function SortableListInner({
|
|
52004
|
+
items,
|
|
52005
|
+
getKey,
|
|
52006
|
+
renderItem,
|
|
52007
|
+
onReorder,
|
|
52008
|
+
disabled = false,
|
|
52009
|
+
className,
|
|
52010
|
+
...props
|
|
52011
|
+
}, ref) {
|
|
52012
|
+
const dragFromRef = React11__namespace.useRef(null);
|
|
52013
|
+
const [draggingIndex, setDraggingIndex] = React11__namespace.useState(null);
|
|
52014
|
+
const { ariaProps, dataAttributes } = createSortableList();
|
|
52015
|
+
const handleDragStart = (index) => (event) => {
|
|
52016
|
+
if (disabled) {
|
|
52017
|
+
event.preventDefault();
|
|
52018
|
+
return;
|
|
52019
|
+
}
|
|
52020
|
+
dragFromRef.current = index;
|
|
52021
|
+
setDraggingIndex(index);
|
|
52022
|
+
event.dataTransfer.effectAllowed = "move";
|
|
52023
|
+
event.dataTransfer.setData("text/plain", String(index));
|
|
52024
|
+
};
|
|
52025
|
+
const handleDragOver = (event) => {
|
|
52026
|
+
event.preventDefault();
|
|
52027
|
+
event.dataTransfer.dropEffect = "move";
|
|
52028
|
+
};
|
|
52029
|
+
const handleDragEnter = (toIndex) => (event) => {
|
|
52030
|
+
event.preventDefault();
|
|
52031
|
+
if (disabled || dragFromRef.current === null || dragFromRef.current === toIndex) return;
|
|
52032
|
+
const next = reorder(items, dragFromRef.current, toIndex);
|
|
52033
|
+
dragFromRef.current = toIndex;
|
|
52034
|
+
setDraggingIndex(toIndex);
|
|
52035
|
+
onReorder?.(next);
|
|
52036
|
+
};
|
|
52037
|
+
const handleDrop = (event) => {
|
|
52038
|
+
event.preventDefault();
|
|
52039
|
+
};
|
|
52040
|
+
const handleDragEnd = () => {
|
|
52041
|
+
dragFromRef.current = null;
|
|
52042
|
+
setDraggingIndex(null);
|
|
52043
|
+
};
|
|
52044
|
+
const handleGripKeyDown = (index) => (event) => {
|
|
52045
|
+
if (disabled) return;
|
|
52046
|
+
const next = getNextOrderIndex(index, event.key, items.length);
|
|
52047
|
+
if (next !== index) {
|
|
52048
|
+
event.preventDefault();
|
|
52049
|
+
onReorder?.(reorder(items, index, next));
|
|
52050
|
+
}
|
|
52051
|
+
};
|
|
52052
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
52053
|
+
"div",
|
|
52054
|
+
{
|
|
52055
|
+
ref,
|
|
52056
|
+
className: cn(sortableListVariants({ disabled: disabled ? "true" : "false" }), className),
|
|
52057
|
+
...ariaProps,
|
|
52058
|
+
...dataAttributes,
|
|
52059
|
+
...props,
|
|
52060
|
+
children: items.map((item, index) => {
|
|
52061
|
+
const key = getKey(item, index);
|
|
52062
|
+
const isDragging = draggingIndex === index;
|
|
52063
|
+
const dragHandleProps = {
|
|
52064
|
+
"aria-label": "Reorder item",
|
|
52065
|
+
role: "button",
|
|
52066
|
+
tabIndex: 0,
|
|
52067
|
+
onKeyDown: handleGripKeyDown(index),
|
|
52068
|
+
onDragStart: handleDragStart(index)
|
|
52069
|
+
};
|
|
52070
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
52071
|
+
"div",
|
|
52072
|
+
{
|
|
52073
|
+
role: "listitem",
|
|
52074
|
+
draggable: !disabled,
|
|
52075
|
+
className: sortableListRowVariants({ dragging: isDragging ? "true" : "false" }),
|
|
52076
|
+
onDragOver: handleDragOver,
|
|
52077
|
+
onDragEnter: handleDragEnter(index),
|
|
52078
|
+
onDrop: handleDrop,
|
|
52079
|
+
onDragEnd: handleDragEnd,
|
|
52080
|
+
children: [
|
|
52081
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
52082
|
+
"button",
|
|
52083
|
+
{
|
|
52084
|
+
type: "button",
|
|
52085
|
+
"aria-label": dragHandleProps["aria-label"],
|
|
52086
|
+
role: dragHandleProps.role,
|
|
52087
|
+
tabIndex: dragHandleProps.tabIndex,
|
|
52088
|
+
onKeyDown: dragHandleProps.onKeyDown,
|
|
52089
|
+
onDragStart: dragHandleProps.onDragStart,
|
|
52090
|
+
className: sortableListGripClass,
|
|
52091
|
+
draggable: !disabled,
|
|
52092
|
+
disabled,
|
|
52093
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
52094
|
+
"svg",
|
|
52095
|
+
{
|
|
52096
|
+
width: "16",
|
|
52097
|
+
height: "16",
|
|
52098
|
+
viewBox: "0 0 16 16",
|
|
52099
|
+
fill: "none",
|
|
52100
|
+
"aria-hidden": "true",
|
|
52101
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
52102
|
+
"path",
|
|
52103
|
+
{
|
|
52104
|
+
d: `M2 4h12M2 8h12M2 12h12`,
|
|
52105
|
+
stroke: "currentColor",
|
|
52106
|
+
strokeWidth: "1.5",
|
|
52107
|
+
strokeLinecap: "round"
|
|
52108
|
+
}
|
|
52109
|
+
)
|
|
52110
|
+
}
|
|
52111
|
+
)
|
|
52112
|
+
}
|
|
52113
|
+
),
|
|
52114
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: sortableListContentClass, children: renderItem(item, { index, dragHandleProps }) })
|
|
52115
|
+
]
|
|
52116
|
+
},
|
|
52117
|
+
key
|
|
52118
|
+
);
|
|
52119
|
+
})
|
|
52120
|
+
}
|
|
52121
|
+
);
|
|
52122
|
+
}
|
|
52123
|
+
var SortableList = React11__namespace.forwardRef(SortableListInner);
|
|
52124
|
+
SortableList.displayName = "SortableList";
|
|
52125
|
+
|
|
52126
|
+
// ../kanban-board/dist/index.js
|
|
52127
|
+
function createKanbanBoard() {
|
|
52128
|
+
return {
|
|
52129
|
+
ariaProps: {
|
|
52130
|
+
role: "group",
|
|
52131
|
+
"aria-label": "Board"
|
|
52132
|
+
},
|
|
52133
|
+
dataAttributes: {
|
|
52134
|
+
"data-component": "kanban-board"
|
|
52135
|
+
}
|
|
52136
|
+
};
|
|
52137
|
+
}
|
|
52138
|
+
function cardsByColumn(cards, getColumnId, columns) {
|
|
52139
|
+
const map = /* @__PURE__ */ new Map();
|
|
52140
|
+
for (const col of columns) {
|
|
52141
|
+
map.set(col.id, []);
|
|
52142
|
+
}
|
|
52143
|
+
for (const card of cards) {
|
|
52144
|
+
const colId = getColumnId(card);
|
|
52145
|
+
const bucket = map.get(colId);
|
|
52146
|
+
if (bucket !== void 0) {
|
|
52147
|
+
bucket.push(card);
|
|
52148
|
+
}
|
|
52149
|
+
}
|
|
52150
|
+
return map;
|
|
52151
|
+
}
|
|
52152
|
+
function visibleAndOverflow(cards, cap = 5) {
|
|
52153
|
+
if (cards.length <= cap) {
|
|
52154
|
+
return { visible: cards, overflow: 0 };
|
|
52155
|
+
}
|
|
52156
|
+
return { visible: cards.slice(0, cap), overflow: cards.length - cap };
|
|
52157
|
+
}
|
|
52158
|
+
var kanbanBoardVariants = cva({
|
|
52159
|
+
base: "flex flex-row gap-4 overflow-x-auto pb-4",
|
|
52160
|
+
variants: {},
|
|
52161
|
+
defaultVariants: {}
|
|
52162
|
+
});
|
|
52163
|
+
var kanbanColumnVariants = cva({
|
|
52164
|
+
base: "flex flex-col min-w-[260px] max-w-[300px] flex-shrink-0 rounded-xl bg-muted/40",
|
|
52165
|
+
variants: {},
|
|
52166
|
+
defaultVariants: {}
|
|
52167
|
+
});
|
|
52168
|
+
var kanbanColumnHeaderClass = "flex items-center gap-2 px-4 pt-4 pb-2";
|
|
52169
|
+
var kanbanColumnTitleClass = "flex-1 text-sm font-semibold text-foreground truncate";
|
|
52170
|
+
var kanbanColumnCountClass = "ml-auto inline-flex items-center justify-center rounded-full bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground";
|
|
52171
|
+
var kanbanAccentBarClass = "h-0.5 w-full";
|
|
52172
|
+
var kanbanNoteBarClass = "mx-4 mb-2 rounded-md bg-muted px-3 py-1.5 text-xs text-muted-foreground";
|
|
52173
|
+
var kanbanColumnBodyClass = "flex flex-col gap-2 px-3 pb-3";
|
|
52174
|
+
var kanbanOverflowButtonClass = [
|
|
52175
|
+
"mt-1 w-full rounded-lg border border-dashed border-border",
|
|
52176
|
+
"py-1.5 text-center text-xs text-muted-foreground",
|
|
52177
|
+
"transition-colors hover:bg-muted hover:text-foreground",
|
|
52178
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
|
|
52179
|
+
].join(" ");
|
|
52180
|
+
var kanbanCardVariants = cva({
|
|
52181
|
+
base: "rounded-lg border border-border bg-card p-3 text-sm text-foreground",
|
|
52182
|
+
variants: {
|
|
52183
|
+
clickable: {
|
|
52184
|
+
true: "cursor-pointer transition-colors hover:bg-muted/60",
|
|
52185
|
+
false: ""
|
|
52186
|
+
}
|
|
52187
|
+
},
|
|
52188
|
+
defaultVariants: {
|
|
52189
|
+
clickable: "false"
|
|
52190
|
+
}
|
|
52191
|
+
});
|
|
52192
|
+
var KanbanCard = React11__namespace.forwardRef(
|
|
52193
|
+
({ accent, clickable = false, className, style, children, ...props }, ref) => {
|
|
52194
|
+
const accentStyle = accent ? { borderTopColor: accent, borderTopWidth: "2px", ...style } : style ?? {};
|
|
52195
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
52196
|
+
"div",
|
|
52197
|
+
{
|
|
52198
|
+
ref,
|
|
52199
|
+
className: cn(
|
|
52200
|
+
kanbanCardVariants({ clickable: clickable ? "true" : "false" }),
|
|
52201
|
+
className
|
|
52202
|
+
),
|
|
52203
|
+
style: accentStyle,
|
|
52204
|
+
...props,
|
|
52205
|
+
children
|
|
52206
|
+
}
|
|
52207
|
+
);
|
|
52208
|
+
}
|
|
52209
|
+
);
|
|
52210
|
+
KanbanCard.displayName = "KanbanCard";
|
|
52211
|
+
var KanbanColumn = React11__namespace.forwardRef(
|
|
52212
|
+
({ def, count, className, children, style, ...props }, ref) => {
|
|
52213
|
+
const derivedCount = count !== void 0 ? count : React11__namespace.Children.count(children);
|
|
52214
|
+
const colStyle = def.accent ? { "--kanban-accent": def.accent, ...style } : style ?? {};
|
|
52215
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
52216
|
+
"div",
|
|
52217
|
+
{
|
|
52218
|
+
ref,
|
|
52219
|
+
className: cn(kanbanColumnVariants(), className),
|
|
52220
|
+
style: colStyle,
|
|
52221
|
+
...props,
|
|
52222
|
+
children: [
|
|
52223
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: kanbanColumnHeaderClass, children: [
|
|
52224
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: kanbanColumnTitleClass, children: def.title }),
|
|
52225
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: kanbanColumnCountClass, children: derivedCount })
|
|
52226
|
+
] }),
|
|
52227
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
52228
|
+
"div",
|
|
52229
|
+
{
|
|
52230
|
+
className: kanbanAccentBarClass,
|
|
52231
|
+
style: def.accent ? { backgroundColor: "var(--kanban-accent)" } : { backgroundColor: "transparent" },
|
|
52232
|
+
"aria-hidden": "true"
|
|
52233
|
+
}
|
|
52234
|
+
),
|
|
52235
|
+
def.note && /* @__PURE__ */ jsxRuntime.jsx("p", { className: kanbanNoteBarClass, children: def.note }),
|
|
52236
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: kanbanColumnBodyClass, children })
|
|
52237
|
+
]
|
|
52238
|
+
}
|
|
52239
|
+
);
|
|
52240
|
+
}
|
|
52241
|
+
);
|
|
52242
|
+
KanbanColumn.displayName = "KanbanColumn";
|
|
52243
|
+
function KanbanBoard({
|
|
52244
|
+
columns,
|
|
52245
|
+
cards,
|
|
52246
|
+
getCardColumnId,
|
|
52247
|
+
getCardKey,
|
|
52248
|
+
renderCard,
|
|
52249
|
+
cardCap = 5,
|
|
52250
|
+
onCardClick: _onCardClick,
|
|
52251
|
+
columnHeader,
|
|
52252
|
+
onShowMore,
|
|
52253
|
+
className,
|
|
52254
|
+
...props
|
|
52255
|
+
}) {
|
|
52256
|
+
const { ariaProps, dataAttributes } = createKanbanBoard();
|
|
52257
|
+
const buckets = cardsByColumn(cards, getCardColumnId, columns);
|
|
52258
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
52259
|
+
"div",
|
|
52260
|
+
{
|
|
52261
|
+
className: cn(kanbanBoardVariants(), className),
|
|
52262
|
+
...ariaProps,
|
|
52263
|
+
...dataAttributes,
|
|
52264
|
+
...props,
|
|
52265
|
+
children: columns.map((def) => {
|
|
52266
|
+
const colCards = buckets.get(def.id) ?? [];
|
|
52267
|
+
const { visible, overflow } = visibleAndOverflow(colCards, cardCap);
|
|
52268
|
+
const count = colCards.length;
|
|
52269
|
+
const header = columnHeader ? columnHeader(def, count) : null;
|
|
52270
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
52271
|
+
"div",
|
|
52272
|
+
{
|
|
52273
|
+
className: kanbanColumnVariants(),
|
|
52274
|
+
style: def.accent ? { "--kanban-accent": def.accent } : void 0,
|
|
52275
|
+
children: [
|
|
52276
|
+
header ?? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: kanbanColumnHeaderClass, children: [
|
|
52277
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: kanbanColumnTitleClass, children: def.title }),
|
|
52278
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: kanbanColumnCountClass, children: count })
|
|
52279
|
+
] }),
|
|
52280
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
52281
|
+
"div",
|
|
52282
|
+
{
|
|
52283
|
+
className: kanbanAccentBarClass,
|
|
52284
|
+
style: def.accent ? { backgroundColor: "var(--kanban-accent)" } : { backgroundColor: "transparent" },
|
|
52285
|
+
"aria-hidden": "true"
|
|
52286
|
+
}
|
|
52287
|
+
),
|
|
52288
|
+
def.note && /* @__PURE__ */ jsxRuntime.jsx("p", { className: kanbanNoteBarClass, children: def.note }),
|
|
52289
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: kanbanColumnBodyClass, children: [
|
|
52290
|
+
visible.map((card) => /* @__PURE__ */ jsxRuntime.jsx(React11__namespace.Fragment, { children: renderCard(card, def) }, getCardKey(card))),
|
|
52291
|
+
overflow > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
52292
|
+
"button",
|
|
52293
|
+
{
|
|
52294
|
+
type: "button",
|
|
52295
|
+
className: kanbanOverflowButtonClass,
|
|
52296
|
+
onClick: () => onShowMore?.(def.id),
|
|
52297
|
+
children: `+${overflow} more`
|
|
52298
|
+
}
|
|
52299
|
+
)
|
|
52300
|
+
] })
|
|
52301
|
+
]
|
|
52302
|
+
},
|
|
52303
|
+
def.id
|
|
52304
|
+
);
|
|
52305
|
+
})
|
|
52306
|
+
}
|
|
52307
|
+
);
|
|
52308
|
+
}
|
|
52309
|
+
|
|
52310
|
+
// ../slot-picker/dist/index.js
|
|
52311
|
+
function slotsForDay(slotsByDay, dayId) {
|
|
52312
|
+
return slotsByDay[dayId] ?? [];
|
|
52313
|
+
}
|
|
52314
|
+
function isSlotSelected(value, dayId, slot) {
|
|
52315
|
+
return value?.dayId === dayId && value?.slot === slot;
|
|
52316
|
+
}
|
|
52317
|
+
function createSlotPicker() {
|
|
52318
|
+
return {
|
|
52319
|
+
ariaProps: {
|
|
52320
|
+
role: "group",
|
|
52321
|
+
"aria-label": "Pick a time"
|
|
52322
|
+
},
|
|
52323
|
+
dataAttributes: {
|
|
52324
|
+
"data-component": "slot-picker"
|
|
52325
|
+
}
|
|
52326
|
+
};
|
|
52327
|
+
}
|
|
52328
|
+
var slotPickerVariants = cva({
|
|
52329
|
+
base: "flex flex-col gap-4",
|
|
52330
|
+
variants: {},
|
|
52331
|
+
defaultVariants: {}
|
|
52332
|
+
});
|
|
52333
|
+
var slotPickerDayRowClass = "flex items-center gap-2 overflow-x-auto pb-1";
|
|
52334
|
+
var slotPickerDayVariants = cva({
|
|
52335
|
+
base: [
|
|
52336
|
+
"inline-flex flex-col items-center justify-center rounded-lg px-3 py-2 min-w-[3.5rem]",
|
|
52337
|
+
"text-sm font-medium cursor-pointer transition-colors",
|
|
52338
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
52339
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
52340
|
+
].join(" "),
|
|
52341
|
+
variants: {
|
|
52342
|
+
selected: {
|
|
52343
|
+
true: "bg-primary text-primary-foreground",
|
|
52344
|
+
false: "bg-card border border-input text-foreground hover:bg-muted"
|
|
52345
|
+
}
|
|
52346
|
+
},
|
|
52347
|
+
defaultVariants: {
|
|
52348
|
+
selected: "false"
|
|
52349
|
+
}
|
|
52350
|
+
});
|
|
52351
|
+
var slotPickerGridClass = "grid grid-cols-3 gap-2 sm:grid-cols-4";
|
|
52352
|
+
var slotPickerSlotVariants = cva({
|
|
52353
|
+
base: [
|
|
52354
|
+
"inline-flex items-center justify-center rounded-md border px-3 py-2 text-sm font-medium",
|
|
52355
|
+
"transition-colors cursor-pointer",
|
|
52356
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
|
|
52357
|
+
].join(" "),
|
|
52358
|
+
variants: {
|
|
52359
|
+
selected: {
|
|
52360
|
+
true: "bg-primary text-primary-foreground border-primary",
|
|
52361
|
+
false: "bg-card border-input text-foreground hover:bg-muted"
|
|
52362
|
+
},
|
|
52363
|
+
disabled: {
|
|
52364
|
+
true: "opacity-40 pointer-events-none",
|
|
52365
|
+
false: ""
|
|
52366
|
+
}
|
|
52367
|
+
},
|
|
52368
|
+
defaultVariants: {
|
|
52369
|
+
selected: "false",
|
|
52370
|
+
disabled: "false"
|
|
52371
|
+
}
|
|
52372
|
+
});
|
|
52373
|
+
var slotPickerSectionLabelClass = "text-sm font-semibold text-foreground";
|
|
52374
|
+
var slotPickerTimezoneClass = "text-xs text-muted-foreground ml-2";
|
|
52375
|
+
var SlotPicker = React11__namespace.forwardRef(
|
|
52376
|
+
({
|
|
52377
|
+
days,
|
|
52378
|
+
slotsByDay,
|
|
52379
|
+
value: valueProp,
|
|
52380
|
+
defaultValue,
|
|
52381
|
+
onChange,
|
|
52382
|
+
timezoneLabel,
|
|
52383
|
+
disabledSlots = [],
|
|
52384
|
+
className,
|
|
52385
|
+
...props
|
|
52386
|
+
}, ref) => {
|
|
52387
|
+
const isControlled = valueProp !== void 0;
|
|
52388
|
+
const [internal, setInternal] = React11__namespace.useState(
|
|
52389
|
+
defaultValue
|
|
52390
|
+
);
|
|
52391
|
+
const value = isControlled ? valueProp : internal;
|
|
52392
|
+
const selectedDayId = value?.dayId;
|
|
52393
|
+
const handleDaySelect = React11__namespace.useCallback(
|
|
52394
|
+
(dayId) => {
|
|
52395
|
+
const slots = slotsForDay(slotsByDay, dayId);
|
|
52396
|
+
const keepSlot = value?.slot && slots.includes(value.slot) ? value.slot : void 0;
|
|
52397
|
+
const next = keepSlot ? { dayId, slot: keepSlot } : void 0;
|
|
52398
|
+
if (!isControlled) setInternal(next);
|
|
52399
|
+
if (next) onChange?.(next);
|
|
52400
|
+
},
|
|
52401
|
+
[isControlled, onChange, slotsByDay, value]
|
|
52402
|
+
);
|
|
52403
|
+
const handleSlotSelect = React11__namespace.useCallback(
|
|
52404
|
+
(slot) => {
|
|
52405
|
+
if (!selectedDayId) return;
|
|
52406
|
+
const next = { dayId: selectedDayId, slot };
|
|
52407
|
+
if (!isControlled) setInternal(next);
|
|
52408
|
+
onChange?.(next);
|
|
52409
|
+
},
|
|
52410
|
+
[isControlled, onChange, selectedDayId]
|
|
52411
|
+
);
|
|
52412
|
+
const api = createSlotPicker();
|
|
52413
|
+
const currentSlots = selectedDayId ? slotsForDay(slotsByDay, selectedDayId) : [];
|
|
52414
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
52415
|
+
"div",
|
|
52416
|
+
{
|
|
52417
|
+
ref,
|
|
52418
|
+
className: cn(slotPickerVariants(), className),
|
|
52419
|
+
...api.ariaProps,
|
|
52420
|
+
...api.dataAttributes,
|
|
52421
|
+
...props,
|
|
52422
|
+
children: [
|
|
52423
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
52424
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: slotPickerSectionLabelClass, children: "Pick a day" }),
|
|
52425
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { role: "radiogroup", "aria-label": "Pick a day", className: cn(slotPickerDayRowClass, "mt-2"), children: days.map((day) => {
|
|
52426
|
+
const isSelected = selectedDayId === day.id;
|
|
52427
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
52428
|
+
"button",
|
|
52429
|
+
{
|
|
52430
|
+
type: "button",
|
|
52431
|
+
role: "radio",
|
|
52432
|
+
"aria-checked": isSelected,
|
|
52433
|
+
"data-state": isSelected ? "checked" : "unchecked",
|
|
52434
|
+
className: slotPickerDayVariants({
|
|
52435
|
+
selected: isSelected ? "true" : "false"
|
|
52436
|
+
}),
|
|
52437
|
+
onClick: () => handleDaySelect(day.id),
|
|
52438
|
+
children: [
|
|
52439
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs", children: day.weekday }),
|
|
52440
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-bold leading-none", children: day.dayNum })
|
|
52441
|
+
]
|
|
52442
|
+
},
|
|
52443
|
+
day.id
|
|
52444
|
+
);
|
|
52445
|
+
}) })
|
|
52446
|
+
] }),
|
|
52447
|
+
selectedDayId && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
52448
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: slotPickerSectionLabelClass, children: [
|
|
52449
|
+
"Pick a time",
|
|
52450
|
+
timezoneLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: slotPickerTimezoneClass, children: timezoneLabel })
|
|
52451
|
+
] }),
|
|
52452
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { role: "radiogroup", "aria-label": "Pick a time", className: cn(slotPickerGridClass, "mt-2"), children: currentSlots.map((slot) => {
|
|
52453
|
+
const isSelected = isSlotSelected(value, selectedDayId, slot);
|
|
52454
|
+
const isDisabled = disabledSlots.includes(slot);
|
|
52455
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
52456
|
+
"button",
|
|
52457
|
+
{
|
|
52458
|
+
type: "button",
|
|
52459
|
+
role: "radio",
|
|
52460
|
+
"aria-checked": isSelected,
|
|
52461
|
+
"aria-disabled": isDisabled || void 0,
|
|
52462
|
+
"data-state": isSelected ? "checked" : "unchecked",
|
|
52463
|
+
className: slotPickerSlotVariants({
|
|
52464
|
+
selected: isSelected ? "true" : "false",
|
|
52465
|
+
disabled: isDisabled ? "true" : "false"
|
|
52466
|
+
}),
|
|
52467
|
+
onClick: () => !isDisabled && handleSlotSelect(slot),
|
|
52468
|
+
children: slot
|
|
52469
|
+
},
|
|
52470
|
+
slot
|
|
52471
|
+
);
|
|
52472
|
+
}) })
|
|
52473
|
+
] })
|
|
52474
|
+
]
|
|
52475
|
+
}
|
|
52476
|
+
);
|
|
52477
|
+
}
|
|
52478
|
+
);
|
|
52479
|
+
SlotPicker.displayName = "SlotPicker";
|
|
51311
52480
|
/*! Bundled license information:
|
|
51312
52481
|
|
|
51313
52482
|
@nevware21/ts-utils/dist/es5/mod/ts-utils.js:
|
|
@@ -51330,6 +52499,7 @@ exports.AltHintState = AltHintState;
|
|
|
51330
52499
|
exports.AnalyticsProvider = AnalyticsProvider;
|
|
51331
52500
|
exports.AnimatedText = AnimatedText;
|
|
51332
52501
|
exports.AppShell = AppShell;
|
|
52502
|
+
exports.AudienceFeatureCard = AudienceFeatureCard;
|
|
51333
52503
|
exports.AudioRoom = AudioRoom;
|
|
51334
52504
|
exports.AuthGuard = AuthGuard;
|
|
51335
52505
|
exports.AuthProvider = AuthProvider;
|
|
@@ -51340,7 +52510,9 @@ exports.AvatarImage = AvatarImage;
|
|
|
51340
52510
|
exports.Badge = Badge;
|
|
51341
52511
|
exports.BadgeDisplay = BadgeDisplay;
|
|
51342
52512
|
exports.BottomNav = BottomNav;
|
|
52513
|
+
exports.BrandNetworkCell = BrandNetworkCell;
|
|
51343
52514
|
exports.Breadcrumbs = Breadcrumbs;
|
|
52515
|
+
exports.BrowserChromeMock = BrowserChromeMock;
|
|
51344
52516
|
exports.Button = Button;
|
|
51345
52517
|
exports.CATEGORY_LABELS = CATEGORY_LABELS;
|
|
51346
52518
|
exports.CURSOR_COLORS = CURSOR_COLORS;
|
|
@@ -51442,6 +52614,9 @@ exports.InputGroupAddon = InputGroupAddon;
|
|
|
51442
52614
|
exports.InputGroupButton = InputGroupButton;
|
|
51443
52615
|
exports.InputGroupText = InputGroupText;
|
|
51444
52616
|
exports.InstallPrompt = InstallPrompt;
|
|
52617
|
+
exports.KanbanBoard = KanbanBoard;
|
|
52618
|
+
exports.KanbanCard = KanbanCard;
|
|
52619
|
+
exports.KanbanColumn = KanbanColumn;
|
|
51445
52620
|
exports.KeyboardShortcut = KeyboardShortcut;
|
|
51446
52621
|
exports.LanguageSelector = LanguageSelector;
|
|
51447
52622
|
exports.LinkCard = LinkCard;
|
|
@@ -51449,12 +52624,15 @@ exports.LiveCaptions = LiveCaptions;
|
|
|
51449
52624
|
exports.LiveCursors = LiveCursors;
|
|
51450
52625
|
exports.LiveTranscript = LiveTranscript;
|
|
51451
52626
|
exports.MarkdownRenderer = MarkdownRenderer;
|
|
52627
|
+
exports.MarqueeStrip = MarqueeStrip;
|
|
52628
|
+
exports.MasteryBar = MasteryBar;
|
|
51452
52629
|
exports.MiniMap = MiniMap;
|
|
51453
52630
|
exports.MobileNav = MobileNav;
|
|
51454
52631
|
exports.MobileNavContent = MobileNavContent;
|
|
51455
52632
|
exports.MobileNavLink = MobileNavLink;
|
|
51456
52633
|
exports.MobileNavTrigger = MobileNavTrigger;
|
|
51457
52634
|
exports.Navbar = Navbar;
|
|
52635
|
+
exports.NumberedSteps = NumberedSteps;
|
|
51458
52636
|
exports.OtpInput = OtpInput;
|
|
51459
52637
|
exports.PRESENCE_STATUS_COLORS = STATUS_COLORS;
|
|
51460
52638
|
exports.PRESENCE_STATUS_LABELS = STATUS_LABELS;
|
|
@@ -51467,6 +52645,7 @@ exports.PopoverContent = PopoverContent;
|
|
|
51467
52645
|
exports.PopoverTrigger = PopoverTrigger;
|
|
51468
52646
|
exports.PreCallLobby = PreCallLobby;
|
|
51469
52647
|
exports.PresenceIndicator = PresenceIndicator;
|
|
52648
|
+
exports.PricingCard = PricingCard;
|
|
51470
52649
|
exports.ProgressBar = ProgressBar;
|
|
51471
52650
|
exports.RadialGauge = RadialGauge;
|
|
51472
52651
|
exports.RadioGroup = RadioGroup;
|
|
@@ -51484,6 +52663,7 @@ exports.STICKY_NOTE_COLORS = STICKY_NOTE_COLORS;
|
|
|
51484
52663
|
exports.SearchBar = SearchBar;
|
|
51485
52664
|
exports.SearchResultItem = SearchResultItem;
|
|
51486
52665
|
exports.SearchResults = SearchResults;
|
|
52666
|
+
exports.SectionHead = SectionHead;
|
|
51487
52667
|
exports.SegmentedControl = SegmentedControl;
|
|
51488
52668
|
exports.SegmentedControlItem = SegmentedControlItem;
|
|
51489
52669
|
exports.Select = Select;
|
|
@@ -51510,9 +52690,12 @@ exports.Skeleton = Skeleton;
|
|
|
51510
52690
|
exports.SkeletonText = SkeletonText;
|
|
51511
52691
|
exports.SkipToContent = SkipToContent;
|
|
51512
52692
|
exports.SlideViewer = SlideViewer;
|
|
52693
|
+
exports.SlotPicker = SlotPicker;
|
|
51513
52694
|
exports.SocialAuthButton = SocialAuthButton;
|
|
51514
52695
|
exports.SocialAuthRow = SocialAuthRow;
|
|
52696
|
+
exports.SortableList = SortableList;
|
|
51515
52697
|
exports.SpeakingOrb = SpeakingOrb;
|
|
52698
|
+
exports.StatGrid = StatGrid;
|
|
51516
52699
|
exports.StatsGrid = StatsGrid;
|
|
51517
52700
|
exports.StatusIndicator = StatusIndicator;
|
|
51518
52701
|
exports.Step = Step;
|
|
@@ -51734,6 +52917,7 @@ exports.slideViewerVariants = slideViewerVariants;
|
|
|
51734
52917
|
exports.smoothWaveformSamples = smoothWaveformSamples;
|
|
51735
52918
|
exports.startSessionReplay = startSessionReplay;
|
|
51736
52919
|
exports.statCardVariants = statCardVariants;
|
|
52920
|
+
exports.statColumns = statColumns;
|
|
51737
52921
|
exports.statsGridVariants = statsGridVariants;
|
|
51738
52922
|
exports.statusContainerStyles = statusContainerStyles;
|
|
51739
52923
|
exports.statusDotVariants = statusDotVariants;
|