@maxsteinwender/sort-ui 1.0.3 → 1.0.5
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.d.mts +14 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.js +120 -64
- package/dist/index.mjs +120 -64
- package/dist/styles.css +468 -33
- package/dist/tailwind-preset.js +24 -1
- package/dist/tailwind-preset.mjs +24 -1
- package/package.json +8 -2
package/dist/index.d.mts
CHANGED
|
@@ -104,10 +104,14 @@ interface AvatarProps extends Omit<React$1.ComponentPropsWithoutRef<typeof Avata
|
|
|
104
104
|
topBadge?: boolean;
|
|
105
105
|
/** Top badge variant (semantic names from StatusBadge) */
|
|
106
106
|
topBadgeVariant?: StatusBadgeVariant;
|
|
107
|
+
/** Accessible label for top badge status, announced by screen readers (e.g. "Verified") */
|
|
108
|
+
topBadgeLabel?: string;
|
|
107
109
|
/** Show bottom-right badge */
|
|
108
110
|
bottomBadge?: boolean;
|
|
109
111
|
/** Bottom badge variant (semantic names from StatusBadge) */
|
|
110
112
|
bottomBadgeVariant?: StatusBadgeVariant;
|
|
113
|
+
/** Accessible label for bottom badge status, announced by screen readers (e.g. "Online") */
|
|
114
|
+
bottomBadgeLabel?: string;
|
|
111
115
|
/** Fallback background color (applies when no image is shown) */
|
|
112
116
|
color?: "gray" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
113
117
|
children?: React$1.ReactNode;
|
|
@@ -197,6 +201,8 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
|
197
201
|
variant?: BadgeVariant;
|
|
198
202
|
/** Image src — required for variant="image" */
|
|
199
203
|
src?: string;
|
|
204
|
+
/** Leading icon node — used when variant="icon". Pass any Remix icon, e.g. <i className="ri-bank-fill" /> */
|
|
205
|
+
icon?: React$1.ReactNode;
|
|
200
206
|
/** Show 1px border using border-default token. Default: false */
|
|
201
207
|
border?: boolean;
|
|
202
208
|
/** When provided, renders a close button on the right. */
|
|
@@ -207,7 +213,7 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
|
207
213
|
*/
|
|
208
214
|
closeAsSpan?: boolean;
|
|
209
215
|
}
|
|
210
|
-
declare function Badge({ color, size, shape, variant, src, border, onClose, closeAsSpan, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
216
|
+
declare function Badge({ color, size, shape, variant, src, icon, border, onClose, closeAsSpan, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
211
217
|
|
|
212
218
|
declare const Breadcrumb: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
|
|
213
219
|
separator?: React$1.ReactNode;
|
|
@@ -246,7 +252,7 @@ interface SortBreadcrumbProps {
|
|
|
246
252
|
/** Additional CSS classes */
|
|
247
253
|
className?: string;
|
|
248
254
|
}
|
|
249
|
-
declare
|
|
255
|
+
declare const SortBreadcrumb: React$1.ForwardRefExoticComponent<SortBreadcrumbProps & React$1.RefAttributes<HTMLElement>>;
|
|
250
256
|
type BreadcrumbItemType = "default" | "avatar";
|
|
251
257
|
type BreadcrumbItemState = "default" | "hover" | "current";
|
|
252
258
|
interface SortBreadcrumbItemProps {
|
|
@@ -314,6 +320,8 @@ declare const buttonGroupItemVariants: (props?: ({
|
|
|
314
320
|
size?: "lg" | "md" | "sm" | "xs" | "2xs" | null | undefined;
|
|
315
321
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
316
322
|
interface ButtonGroupItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children">, VariantProps<typeof buttonGroupItemVariants> {
|
|
323
|
+
/** Render as a child element (e.g. Next.js Link) via Radix Slot */
|
|
324
|
+
asChild?: boolean;
|
|
317
325
|
/** Text label displayed in the item */
|
|
318
326
|
label?: string;
|
|
319
327
|
/** Remixicon class for leading icon (e.g. "ri-check-line") */
|
|
@@ -1287,6 +1295,8 @@ declare const pageItemVariants: (props?: ({
|
|
|
1287
1295
|
variant?: "default" | "dot" | null | undefined;
|
|
1288
1296
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1289
1297
|
interface PageItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children">, VariantProps<typeof pageItemVariants> {
|
|
1298
|
+
/** Render as a child element (e.g. Next.js Link) via Radix Slot */
|
|
1299
|
+
asChild?: boolean;
|
|
1290
1300
|
/** Active/selected state */
|
|
1291
1301
|
active?: boolean;
|
|
1292
1302
|
/** Page number label (only for variant="default") */
|
|
@@ -1404,6 +1414,8 @@ interface RadioButtonCardProps extends VariantProps<typeof radioButtonCardVarian
|
|
|
1404
1414
|
supporterDescription?: string;
|
|
1405
1415
|
radioPosition?: "off" | "right" | "left";
|
|
1406
1416
|
layout?: "horizontal" | "vertical";
|
|
1417
|
+
/** Leading icon node rendered above the title. Pass any Remix icon, e.g. <i className="ri-bank-fill" /> */
|
|
1418
|
+
icon?: React$1.ReactNode;
|
|
1407
1419
|
value: string;
|
|
1408
1420
|
disabled?: boolean;
|
|
1409
1421
|
className?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -104,10 +104,14 @@ interface AvatarProps extends Omit<React$1.ComponentPropsWithoutRef<typeof Avata
|
|
|
104
104
|
topBadge?: boolean;
|
|
105
105
|
/** Top badge variant (semantic names from StatusBadge) */
|
|
106
106
|
topBadgeVariant?: StatusBadgeVariant;
|
|
107
|
+
/** Accessible label for top badge status, announced by screen readers (e.g. "Verified") */
|
|
108
|
+
topBadgeLabel?: string;
|
|
107
109
|
/** Show bottom-right badge */
|
|
108
110
|
bottomBadge?: boolean;
|
|
109
111
|
/** Bottom badge variant (semantic names from StatusBadge) */
|
|
110
112
|
bottomBadgeVariant?: StatusBadgeVariant;
|
|
113
|
+
/** Accessible label for bottom badge status, announced by screen readers (e.g. "Online") */
|
|
114
|
+
bottomBadgeLabel?: string;
|
|
111
115
|
/** Fallback background color (applies when no image is shown) */
|
|
112
116
|
color?: "gray" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
113
117
|
children?: React$1.ReactNode;
|
|
@@ -197,6 +201,8 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
|
197
201
|
variant?: BadgeVariant;
|
|
198
202
|
/** Image src — required for variant="image" */
|
|
199
203
|
src?: string;
|
|
204
|
+
/** Leading icon node — used when variant="icon". Pass any Remix icon, e.g. <i className="ri-bank-fill" /> */
|
|
205
|
+
icon?: React$1.ReactNode;
|
|
200
206
|
/** Show 1px border using border-default token. Default: false */
|
|
201
207
|
border?: boolean;
|
|
202
208
|
/** When provided, renders a close button on the right. */
|
|
@@ -207,7 +213,7 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
|
207
213
|
*/
|
|
208
214
|
closeAsSpan?: boolean;
|
|
209
215
|
}
|
|
210
|
-
declare function Badge({ color, size, shape, variant, src, border, onClose, closeAsSpan, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
216
|
+
declare function Badge({ color, size, shape, variant, src, icon, border, onClose, closeAsSpan, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
211
217
|
|
|
212
218
|
declare const Breadcrumb: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
|
|
213
219
|
separator?: React$1.ReactNode;
|
|
@@ -246,7 +252,7 @@ interface SortBreadcrumbProps {
|
|
|
246
252
|
/** Additional CSS classes */
|
|
247
253
|
className?: string;
|
|
248
254
|
}
|
|
249
|
-
declare
|
|
255
|
+
declare const SortBreadcrumb: React$1.ForwardRefExoticComponent<SortBreadcrumbProps & React$1.RefAttributes<HTMLElement>>;
|
|
250
256
|
type BreadcrumbItemType = "default" | "avatar";
|
|
251
257
|
type BreadcrumbItemState = "default" | "hover" | "current";
|
|
252
258
|
interface SortBreadcrumbItemProps {
|
|
@@ -314,6 +320,8 @@ declare const buttonGroupItemVariants: (props?: ({
|
|
|
314
320
|
size?: "lg" | "md" | "sm" | "xs" | "2xs" | null | undefined;
|
|
315
321
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
316
322
|
interface ButtonGroupItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children">, VariantProps<typeof buttonGroupItemVariants> {
|
|
323
|
+
/** Render as a child element (e.g. Next.js Link) via Radix Slot */
|
|
324
|
+
asChild?: boolean;
|
|
317
325
|
/** Text label displayed in the item */
|
|
318
326
|
label?: string;
|
|
319
327
|
/** Remixicon class for leading icon (e.g. "ri-check-line") */
|
|
@@ -1287,6 +1295,8 @@ declare const pageItemVariants: (props?: ({
|
|
|
1287
1295
|
variant?: "default" | "dot" | null | undefined;
|
|
1288
1296
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1289
1297
|
interface PageItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children">, VariantProps<typeof pageItemVariants> {
|
|
1298
|
+
/** Render as a child element (e.g. Next.js Link) via Radix Slot */
|
|
1299
|
+
asChild?: boolean;
|
|
1290
1300
|
/** Active/selected state */
|
|
1291
1301
|
active?: boolean;
|
|
1292
1302
|
/** Page number label (only for variant="default") */
|
|
@@ -1404,6 +1414,8 @@ interface RadioButtonCardProps extends VariantProps<typeof radioButtonCardVarian
|
|
|
1404
1414
|
supporterDescription?: string;
|
|
1405
1415
|
radioPosition?: "off" | "right" | "left";
|
|
1406
1416
|
layout?: "horizontal" | "vertical";
|
|
1417
|
+
/** Leading icon node rendered above the title. Pass any Remix icon, e.g. <i className="ri-bank-fill" /> */
|
|
1418
|
+
icon?: React$1.ReactNode;
|
|
1407
1419
|
value: string;
|
|
1408
1420
|
disabled?: boolean;
|
|
1409
1421
|
className?: string;
|
package/dist/index.js
CHANGED
|
@@ -281,17 +281,17 @@ var buttonVariants = classVarianceAuthority.cva(
|
|
|
281
281
|
variants: {
|
|
282
282
|
variant: {
|
|
283
283
|
// Primary — Sort UI: bg/state/primary, text/white-default, icon/white-default
|
|
284
|
-
default: "bg-sui-bg-state-primary text-sui-text-white-default [text-shadow:var(--shadow-text)] [&_i]:text-icon-white-default [&_i]:[text-shadow:none] [&_svg]:text-icon-white-default [&_svg]:[text-shadow:none] shadow-button-default active:shadow-button-press hover:bg-sui-bg-state-primary-hover active:bg-sui-bg-state-primary-press disabled:bg-sui-bg-state-disabled disabled:[text-shadow:none]",
|
|
284
|
+
default: "bg-sui-bg-state-primary text-sui-text-white-default [text-shadow:var(--shadow-text)] [&_i]:text-icon-white-default [&_i]:[text-shadow:none] [&_svg]:text-icon-white-default [&_svg]:[text-shadow:none] shadow-button-default active:shadow-button-press [@media(hover:hover)]:hover:bg-sui-bg-state-primary-hover active:bg-sui-bg-state-primary-press disabled:bg-sui-bg-state-disabled disabled:[text-shadow:none]",
|
|
285
285
|
// Soft — Sort UI: bg/state/soft, text/subtle, icon/default-muted
|
|
286
|
-
secondary: "bg-sui-bg-state-soft text-sui-text-subtle [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted hover:bg-sui-bg-state-soft-hover active:bg-sui-bg-state-soft-press disabled:bg-sui-bg-state-disabled",
|
|
286
|
+
secondary: "bg-sui-bg-state-soft text-sui-text-subtle [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted [@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover active:bg-sui-bg-state-soft-press disabled:bg-sui-bg-state-disabled",
|
|
287
287
|
// Secondary — Sort UI: bg/state/secondary, border/darker, text/default, icon/default-muted
|
|
288
|
-
outline: "bg-sui-bg-state-secondary border border-sui-border-darker text-sui-text-default [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted shadow-button-secondary active:shadow-button-secondary-press hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press disabled:bg-sui-bg-state-disabled disabled:border-sui-border-default",
|
|
288
|
+
outline: "bg-sui-bg-state-secondary border border-sui-border-darker text-sui-text-default [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted shadow-button-secondary active:shadow-button-secondary-press [@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press disabled:bg-sui-bg-state-disabled disabled:border-sui-border-default",
|
|
289
289
|
// Ghost — Sort UI: bg/state/ghost, text/default, icon/default-muted
|
|
290
|
-
ghost: "bg-sui-bg-state-ghost text-sui-text-default [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
290
|
+
ghost: "bg-sui-bg-state-ghost text-sui-text-default [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
291
291
|
// Destructive — Sort UI: bg/state/destructive, text/white-default, icon/white-default
|
|
292
|
-
destructive: "bg-sui-bg-state-destructive text-sui-text-white-default [text-shadow:var(--shadow-text)] [&_i]:text-icon-white-default [&_i]:[text-shadow:none] [&_svg]:text-icon-white-default [&_svg]:[text-shadow:none] shadow-button-default active:shadow-button-press hover:bg-sui-bg-state-destructive-hover active:bg-sui-bg-state-destructive-press disabled:bg-sui-bg-state-disabled disabled:[text-shadow:none]",
|
|
292
|
+
destructive: "bg-sui-bg-state-destructive text-sui-text-white-default [text-shadow:var(--shadow-text)] [&_i]:text-icon-white-default [&_i]:[text-shadow:none] [&_svg]:text-icon-white-default [&_svg]:[text-shadow:none] shadow-button-default active:shadow-button-press [@media(hover:hover)]:hover:bg-sui-bg-state-destructive-hover active:bg-sui-bg-state-destructive-press disabled:bg-sui-bg-state-disabled disabled:[text-shadow:none]",
|
|
293
293
|
// Ghost Muted — Sort UI: bg/state/ghost, text/muted, icon/default-muted
|
|
294
|
-
"ghost-muted": "bg-sui-bg-state-ghost text-sui-text-muted [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press"
|
|
294
|
+
"ghost-muted": "bg-sui-bg-state-ghost text-sui-text-muted [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press"
|
|
295
295
|
},
|
|
296
296
|
shape: {
|
|
297
297
|
rounded: "rounded-md",
|
|
@@ -834,8 +834,10 @@ var Avatar = React77__namespace.forwardRef((_a, ref) => {
|
|
|
834
834
|
ring = false,
|
|
835
835
|
topBadge = false,
|
|
836
836
|
topBadgeVariant = "verified",
|
|
837
|
+
topBadgeLabel,
|
|
837
838
|
bottomBadge = false,
|
|
838
839
|
bottomBadgeVariant = "online",
|
|
840
|
+
bottomBadgeLabel,
|
|
839
841
|
color = "gray",
|
|
840
842
|
children
|
|
841
843
|
} = _b, props = __objRest(_b, [
|
|
@@ -848,8 +850,10 @@ var Avatar = React77__namespace.forwardRef((_a, ref) => {
|
|
|
848
850
|
"ring",
|
|
849
851
|
"topBadge",
|
|
850
852
|
"topBadgeVariant",
|
|
853
|
+
"topBadgeLabel",
|
|
851
854
|
"bottomBadge",
|
|
852
855
|
"bottomBadgeVariant",
|
|
856
|
+
"bottomBadgeLabel",
|
|
853
857
|
"color",
|
|
854
858
|
"children"
|
|
855
859
|
]);
|
|
@@ -885,6 +889,11 @@ var Avatar = React77__namespace.forwardRef((_a, ref) => {
|
|
|
885
889
|
})
|
|
886
890
|
) });
|
|
887
891
|
}
|
|
892
|
+
const badgeLabelParts = [
|
|
893
|
+
topBadge && topBadgeLabel ? topBadgeLabel : null,
|
|
894
|
+
bottomBadge && bottomBadgeLabel ? bottomBadgeLabel : null
|
|
895
|
+
].filter(Boolean);
|
|
896
|
+
const wrapperAriaLabel = badgeLabelParts.length > 0 ? [alt, badgeLabelParts.join(", ")].filter(Boolean).join(" \u2014 ") : alt || void 0;
|
|
888
897
|
const offset = (_a2 = badgeOffset[resolvedSize]) != null ? _a2 : badgeOffset["md"];
|
|
889
898
|
const topPositionClasses = `${offset.top} ${offset.right}`;
|
|
890
899
|
const bottomPositionClasses = `${offset.bottom} ${offset.right}`;
|
|
@@ -897,7 +906,9 @@ var Avatar = React77__namespace.forwardRef((_a, ref) => {
|
|
|
897
906
|
// Wrapper = avatar size (NOT ring size) — badges positioned relative to this
|
|
898
907
|
avatarWrapperSize[resolvedSize],
|
|
899
908
|
className
|
|
900
|
-
)
|
|
909
|
+
),
|
|
910
|
+
"aria-label": wrapperAriaLabel,
|
|
911
|
+
role: wrapperAriaLabel ? "img" : void 0
|
|
901
912
|
}, props), {
|
|
902
913
|
children: [
|
|
903
914
|
ring && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -965,7 +976,7 @@ var Avatar = React77__namespace.forwardRef((_a, ref) => {
|
|
|
965
976
|
})
|
|
966
977
|
) });
|
|
967
978
|
});
|
|
968
|
-
Avatar.displayName =
|
|
979
|
+
Avatar.displayName = "Avatar";
|
|
969
980
|
var AvatarImage = React77__namespace.forwardRef((_a, ref) => {
|
|
970
981
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
971
982
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -976,7 +987,7 @@ var AvatarImage = React77__namespace.forwardRef((_a, ref) => {
|
|
|
976
987
|
}, props)
|
|
977
988
|
);
|
|
978
989
|
});
|
|
979
|
-
AvatarImage.displayName =
|
|
990
|
+
AvatarImage.displayName = "AvatarImage";
|
|
980
991
|
var AvatarFallback = React77__namespace.forwardRef((_a, ref) => {
|
|
981
992
|
var _b = _a, { className, fallback, children } = _b, props = __objRest(_b, ["className", "fallback", "children"]);
|
|
982
993
|
var _a2, _b2, _c;
|
|
@@ -1008,7 +1019,7 @@ var AvatarFallback = React77__namespace.forwardRef((_a, ref) => {
|
|
|
1008
1019
|
})
|
|
1009
1020
|
);
|
|
1010
1021
|
});
|
|
1011
|
-
AvatarFallback.displayName =
|
|
1022
|
+
AvatarFallback.displayName = "AvatarFallback";
|
|
1012
1023
|
var avatarButtonVariants = classVarianceAuthority.cva(
|
|
1013
1024
|
"relative inline-flex items-center rounded-full whitespace-nowrap text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-sui-border-highlight focus-visible:ring-offset-[1px] focus-visible:ring-offset-sui-bg-default disabled:pointer-events-none after:absolute after:content-[''] after:inset-x-0",
|
|
1014
1025
|
{
|
|
@@ -1334,6 +1345,7 @@ function Badge(_a) {
|
|
|
1334
1345
|
shape = "rounded",
|
|
1335
1346
|
variant = "label",
|
|
1336
1347
|
src,
|
|
1348
|
+
icon,
|
|
1337
1349
|
border = false,
|
|
1338
1350
|
onClose,
|
|
1339
1351
|
closeAsSpan = false,
|
|
@@ -1345,6 +1357,7 @@ function Badge(_a) {
|
|
|
1345
1357
|
"shape",
|
|
1346
1358
|
"variant",
|
|
1347
1359
|
"src",
|
|
1360
|
+
"icon",
|
|
1348
1361
|
"border",
|
|
1349
1362
|
"onClose",
|
|
1350
1363
|
"closeAsSpan",
|
|
@@ -1374,13 +1387,17 @@ function Badge(_a) {
|
|
|
1374
1387
|
variant === "label" && // Inner frame: px-1 (4px) each side — same for lg and sm
|
|
1375
1388
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1", children }),
|
|
1376
1389
|
variant === "icon" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1377
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1378
|
-
"
|
|
1390
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1391
|
+
"span",
|
|
1379
1392
|
{
|
|
1380
|
-
className: cn(
|
|
1381
|
-
|
|
1393
|
+
className: cn(
|
|
1394
|
+
"flex size-4 shrink-0 items-center justify-center leading-none",
|
|
1395
|
+
iconFontSize[size]
|
|
1396
|
+
),
|
|
1397
|
+
"aria-hidden": "true",
|
|
1398
|
+
children: icon != null ? icon : /* @__PURE__ */ jsxRuntime.jsx("i", { className: "ri-user-3-fill" })
|
|
1382
1399
|
}
|
|
1383
|
-
)
|
|
1400
|
+
),
|
|
1384
1401
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pl-0.5 pr-1", children })
|
|
1385
1402
|
] }),
|
|
1386
1403
|
variant === "image" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -1516,41 +1533,55 @@ var BreadcrumbEllipsis = (_a) => {
|
|
|
1516
1533
|
);
|
|
1517
1534
|
};
|
|
1518
1535
|
BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
1536
|
+
var dividerVariants = classVarianceAuthority.cva(
|
|
1537
|
+
"flex size-5 shrink-0 items-center justify-center",
|
|
1538
|
+
{
|
|
1539
|
+
variants: {
|
|
1540
|
+
variant: {
|
|
1541
|
+
slash: "",
|
|
1542
|
+
arrow: "",
|
|
1543
|
+
dot: ""
|
|
1544
|
+
}
|
|
1545
|
+
},
|
|
1546
|
+
defaultVariants: {
|
|
1547
|
+
variant: "slash"
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
);
|
|
1519
1551
|
function BreadcrumbDivider({ variant }) {
|
|
1520
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className:
|
|
1552
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: dividerVariants({ variant }), "aria-hidden": "true", children: [
|
|
1521
1553
|
variant === "slash" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium leading-5 text-sui-text-hint", children: "/" }),
|
|
1522
1554
|
variant === "arrow" && /* @__PURE__ */ jsxRuntime.jsx("i", { className: "ri-arrow-right-s-line text-xl leading-none text-sui-text-muted" }),
|
|
1523
1555
|
variant === "dot" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-1 rounded-full bg-sui-text-muted" })
|
|
1524
1556
|
] });
|
|
1525
1557
|
}
|
|
1526
|
-
|
|
1527
|
-
items,
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
}
|
|
1558
|
+
var SortBreadcrumb = React77__namespace.forwardRef(
|
|
1559
|
+
({ items, variant = "slash", className }, ref) => {
|
|
1560
|
+
return /* @__PURE__ */ jsxRuntime.jsx("nav", { ref, "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1561
|
+
"ol",
|
|
1562
|
+
{
|
|
1563
|
+
className: cn(
|
|
1564
|
+
"flex items-center gap-sui-2",
|
|
1565
|
+
className
|
|
1566
|
+
),
|
|
1567
|
+
children: items.map((item, index) => {
|
|
1568
|
+
const isLast = index === items.length - 1;
|
|
1569
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React77__namespace.Fragment, { children: [
|
|
1570
|
+
/* @__PURE__ */ jsxRuntime.jsx("li", { className: "inline-flex", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1571
|
+
SortBreadcrumbItem,
|
|
1572
|
+
__spreadProps(__spreadValues({}, item), {
|
|
1573
|
+
state: isLast ? "current" : "default",
|
|
1574
|
+
leadIcon: item.leadIcon
|
|
1575
|
+
})
|
|
1576
|
+
) }),
|
|
1577
|
+
!isLast && /* @__PURE__ */ jsxRuntime.jsx("li", { className: "inline-flex", role: "presentation", children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbDivider, { variant }) })
|
|
1578
|
+
] }, index);
|
|
1579
|
+
})
|
|
1580
|
+
}
|
|
1581
|
+
) });
|
|
1582
|
+
}
|
|
1583
|
+
);
|
|
1584
|
+
SortBreadcrumb.displayName = "SortBreadcrumb";
|
|
1554
1585
|
function SortBreadcrumbItem({
|
|
1555
1586
|
label,
|
|
1556
1587
|
href,
|
|
@@ -1727,6 +1758,7 @@ var ButtonGroupItem = React77__namespace.forwardRef(
|
|
|
1727
1758
|
showSeparator = false,
|
|
1728
1759
|
size = "lg",
|
|
1729
1760
|
disabled = false,
|
|
1761
|
+
asChild = false,
|
|
1730
1762
|
className
|
|
1731
1763
|
} = _b, props = __objRest(_b, [
|
|
1732
1764
|
"label",
|
|
@@ -1737,14 +1769,16 @@ var ButtonGroupItem = React77__namespace.forwardRef(
|
|
|
1737
1769
|
"showSeparator",
|
|
1738
1770
|
"size",
|
|
1739
1771
|
"disabled",
|
|
1772
|
+
"asChild",
|
|
1740
1773
|
"className"
|
|
1741
1774
|
]);
|
|
1742
1775
|
const s = size != null ? size : "lg";
|
|
1776
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
1743
1777
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1744
|
-
|
|
1778
|
+
Comp,
|
|
1745
1779
|
__spreadProps(__spreadValues({
|
|
1746
1780
|
ref,
|
|
1747
|
-
type: "button",
|
|
1781
|
+
type: asChild ? void 0 : "button",
|
|
1748
1782
|
disabled,
|
|
1749
1783
|
className: cn(
|
|
1750
1784
|
buttonGroupItemVariants({ size }),
|
|
@@ -2041,8 +2075,8 @@ var socialButtonVariants = classVarianceAuthority.cva(
|
|
|
2041
2075
|
variants: {
|
|
2042
2076
|
variant: {
|
|
2043
2077
|
// --sb-bg is a runtime brand slot set via inline style — intentional, not a token violation
|
|
2044
|
-
brand: "bg-[var(--sb-bg,var(--social-brand-default))] text-sui-text-white-default shadow-button-default active:shadow-button-press hover:bg-[color-mix(in_srgb,#fff_15%,var(--sb-bg,var(--social-brand-default)))] active:bg-[color-mix(in_srgb,#fff_25%,var(--sb-bg,var(--social-brand-default)))]",
|
|
2045
|
-
secondary: "bg-sui-bg-
|
|
2078
|
+
brand: "bg-[var(--sb-bg,var(--social-brand-default))] text-sui-text-white-default shadow-button-default active:shadow-button-press [@media(hover:hover)]:hover:bg-[color-mix(in_srgb,#fff_15%,var(--sb-bg,var(--social-brand-default)))] active:bg-[color-mix(in_srgb,#fff_25%,var(--sb-bg,var(--social-brand-default)))]",
|
|
2079
|
+
secondary: "bg-sui-bg-state-secondary border border-sui-border-darker text-sui-text-default shadow-button-secondary active:shadow-button-secondary-press [@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press"
|
|
2046
2080
|
},
|
|
2047
2081
|
shape: {
|
|
2048
2082
|
rounded: "rounded-md",
|
|
@@ -3069,25 +3103,25 @@ var unselectedStyles = {
|
|
|
3069
3103
|
default: [
|
|
3070
3104
|
"bg-sui-bg-state-secondary border-sui-border-darker text-sui-text-muted",
|
|
3071
3105
|
"[&_i]:text-icon-default-muted",
|
|
3072
|
-
"hover:bg-sui-bg-state-secondary-hover hover:text-sui-text-subtle hover:[&_i]:text-icon-default-subtle",
|
|
3106
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover [@media(hover:hover)]:hover:text-sui-text-subtle [@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle",
|
|
3073
3107
|
"active:bg-sui-bg-state-secondary-press active:text-sui-text-subtle active:[&_i]:text-icon-default-subtle"
|
|
3074
3108
|
].join(" "),
|
|
3075
3109
|
soft: [
|
|
3076
3110
|
"bg-sui-bg-state-soft text-sui-text-muted",
|
|
3077
3111
|
"[&_i]:text-icon-default-muted",
|
|
3078
|
-
"hover:bg-sui-bg-state-soft-hover hover:text-sui-text-subtle hover:[&_i]:text-icon-default-subtle",
|
|
3112
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover [@media(hover:hover)]:hover:text-sui-text-subtle [@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle",
|
|
3079
3113
|
"active:bg-sui-bg-state-soft-press active:text-sui-text-subtle active:[&_i]:text-icon-default-subtle"
|
|
3080
3114
|
].join(" "),
|
|
3081
3115
|
ghost: [
|
|
3082
3116
|
"bg-sui-bg-state-ghost text-sui-text-muted",
|
|
3083
3117
|
"[&_i]:text-icon-default-muted",
|
|
3084
|
-
"hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-subtle hover:[&_i]:text-icon-default-subtle",
|
|
3118
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-subtle [@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle",
|
|
3085
3119
|
"active:bg-sui-bg-state-ghost-press active:text-sui-text-subtle active:[&_i]:text-icon-default-subtle"
|
|
3086
3120
|
].join(" "),
|
|
3087
3121
|
"ghost-muted": [
|
|
3088
3122
|
"bg-sui-bg-state-ghost text-sui-text-muted",
|
|
3089
3123
|
"[&_i]:text-icon-default-muted",
|
|
3090
|
-
"hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-subtle hover:[&_i]:text-icon-default-subtle",
|
|
3124
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-subtle [@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle",
|
|
3091
3125
|
"active:bg-sui-bg-state-ghost-press active:text-sui-text-subtle active:[&_i]:text-icon-default-subtle"
|
|
3092
3126
|
].join(" ")
|
|
3093
3127
|
};
|
|
@@ -3220,7 +3254,16 @@ var Chip = React77__namespace.forwardRef(
|
|
|
3220
3254
|
)
|
|
3221
3255
|
}), props), {
|
|
3222
3256
|
children: [
|
|
3223
|
-
(leadIcon || iconOnly) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3257
|
+
(leadIcon || iconOnly) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3258
|
+
"i",
|
|
3259
|
+
{
|
|
3260
|
+
className: cn(
|
|
3261
|
+
iconName,
|
|
3262
|
+
selected && iconOnly && v === "ghost-muted" && "text-icon-default"
|
|
3263
|
+
),
|
|
3264
|
+
"aria-hidden": "true"
|
|
3265
|
+
}
|
|
3266
|
+
),
|
|
3224
3267
|
!iconOnly && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("px-sui-2", labelClasses2[s]), children: label })
|
|
3225
3268
|
]
|
|
3226
3269
|
})
|
|
@@ -5495,7 +5538,7 @@ function DatePickerInput({
|
|
|
5495
5538
|
] });
|
|
5496
5539
|
}
|
|
5497
5540
|
DatePickerInput.displayName = "DatePickerInput";
|
|
5498
|
-
var
|
|
5541
|
+
var dividerVariants2 = classVarianceAuthority.cva("flex w-full items-center", {
|
|
5499
5542
|
variants: {
|
|
5500
5543
|
type: {
|
|
5501
5544
|
default: "gap-0",
|
|
@@ -5556,7 +5599,7 @@ var Divider = React77__namespace.forwardRef(
|
|
|
5556
5599
|
ref,
|
|
5557
5600
|
role: "separator",
|
|
5558
5601
|
"aria-orientation": "horizontal",
|
|
5559
|
-
className: cn(
|
|
5602
|
+
className: cn(dividerVariants2({ type }), className)
|
|
5560
5603
|
}, props), {
|
|
5561
5604
|
children: [
|
|
5562
5605
|
showLeftLine && /* @__PURE__ */ jsxRuntime.jsx("div", { className: lineClasses }),
|
|
@@ -7932,7 +7975,7 @@ var pageItemVariants = classVarianceAuthority.cva(
|
|
|
7932
7975
|
// Default state
|
|
7933
7976
|
"bg-sui-bg-state-ghost text-sui-text-hint",
|
|
7934
7977
|
// Hover state
|
|
7935
|
-
"hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-muted",
|
|
7978
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-muted",
|
|
7936
7979
|
// Disabled state
|
|
7937
7980
|
"disabled:bg-sui-bg-state-ghost disabled:text-sui-text-hint"
|
|
7938
7981
|
].join(" "),
|
|
@@ -7943,7 +7986,7 @@ var pageItemVariants = classVarianceAuthority.cva(
|
|
|
7943
7986
|
// Default state
|
|
7944
7987
|
"bg-sui-bg-state-soft",
|
|
7945
7988
|
// Hover state (soft-hover too subtle for small dots, use stronger token)
|
|
7946
|
-
"hover:bg-sui-bg-state-soft-hover",
|
|
7989
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover",
|
|
7947
7990
|
// Disabled state
|
|
7948
7991
|
"disabled:bg-sui-bg-state-disabled"
|
|
7949
7992
|
].join(" ")
|
|
@@ -7959,17 +8002,18 @@ var activeDefaultClasses = [
|
|
|
7959
8002
|
// Blue text/border: uses bg-basic-blue tokens because text-informative shifts to orange in Theme 2
|
|
7960
8003
|
"text-sui-bg-basic-blue-strong",
|
|
7961
8004
|
"border border-sui-bg-basic-blue-accent",
|
|
7962
|
-
"hover:bg-sui-bg-state-ghost hover:text-sui-bg-basic-blue-strong"
|
|
8005
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost [@media(hover:hover)]:hover:text-sui-bg-basic-blue-strong"
|
|
7963
8006
|
].join(" ");
|
|
7964
8007
|
var activeDotClasses = [
|
|
7965
8008
|
"bg-sui-bg-basic-blue-accent",
|
|
7966
|
-
"hover:bg-sui-bg-basic-blue-accent"
|
|
8009
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-basic-blue-accent"
|
|
7967
8010
|
].join(" ");
|
|
7968
8011
|
var PageItem = React77__namespace.forwardRef(
|
|
7969
8012
|
(_a, ref) => {
|
|
7970
|
-
var _b = _a, { className, variant = "default", active = false, label = "0", disabled } = _b, props = __objRest(_b, ["className", "variant", "active", "label", "disabled"]);
|
|
8013
|
+
var _b = _a, { className, variant = "default", active = false, label = "0", disabled, asChild = false } = _b, props = __objRest(_b, ["className", "variant", "active", "label", "disabled", "asChild"]);
|
|
8014
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
7971
8015
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7972
|
-
|
|
8016
|
+
Comp,
|
|
7973
8017
|
__spreadProps(__spreadValues({
|
|
7974
8018
|
ref,
|
|
7975
8019
|
disabled,
|
|
@@ -8638,6 +8682,7 @@ var RadioButtonCard = React77__namespace.forwardRef(
|
|
|
8638
8682
|
variant = "default",
|
|
8639
8683
|
radioPosition = "off",
|
|
8640
8684
|
layout = "horizontal",
|
|
8685
|
+
icon,
|
|
8641
8686
|
value,
|
|
8642
8687
|
disabled = false,
|
|
8643
8688
|
className
|
|
@@ -8690,6 +8735,17 @@ var RadioButtonCard = React77__namespace.forwardRef(
|
|
|
8690
8735
|
"flex flex-col gap-1 text-left",
|
|
8691
8736
|
isHorizontal ? "flex-1 min-w-0" : "w-full"
|
|
8692
8737
|
), children: [
|
|
8738
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8739
|
+
"span",
|
|
8740
|
+
{
|
|
8741
|
+
className: cn(
|
|
8742
|
+
"flex size-4 shrink-0 items-center leading-none text-base",
|
|
8743
|
+
disabled ? "text-sui-text-hint" : "text-icon-default-subtle"
|
|
8744
|
+
),
|
|
8745
|
+
"aria-hidden": "true",
|
|
8746
|
+
children: icon
|
|
8747
|
+
}
|
|
8748
|
+
),
|
|
8693
8749
|
/* @__PURE__ */ jsxRuntime.jsx("span", { id: titleId, className: titleClass, children: title }),
|
|
8694
8750
|
description && /* @__PURE__ */ jsxRuntime.jsx("span", { id: descriptionId, className: descriptionClass, children: description })
|
|
8695
8751
|
] }),
|
|
@@ -10580,7 +10636,7 @@ var interactiveBase = [
|
|
|
10580
10636
|
"flex items-center rounded-sm",
|
|
10581
10637
|
"transition-colors cursor-pointer",
|
|
10582
10638
|
"bg-sui-bg-state-ghost",
|
|
10583
|
-
"hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
10639
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
10584
10640
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default"
|
|
10585
10641
|
];
|
|
10586
10642
|
var sidebarMenuItemVariants = classVarianceAuthority.cva("", {
|
|
@@ -10666,7 +10722,7 @@ var SidebarMenuItem2 = React77__namespace.forwardRef(
|
|
|
10666
10722
|
}
|
|
10667
10723
|
);
|
|
10668
10724
|
}
|
|
10669
|
-
const activeClasses = active ? "bg-sui-bg-state-soft hover:bg-sui-bg-state-soft-hover active:bg-sui-bg-state-soft-press" : "";
|
|
10725
|
+
const activeClasses = active ? "bg-sui-bg-state-soft [@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover active:bg-sui-bg-state-soft-press" : "";
|
|
10670
10726
|
const labelColorClass = active ? "text-sui-text-default" : "text-sui-text-subtle";
|
|
10671
10727
|
if (variant === "collapsed") {
|
|
10672
10728
|
const button = /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13785,7 +13841,7 @@ exports.checkboxWithTextVariants = checkboxWithTextVariants;
|
|
|
13785
13841
|
exports.chipVariants = chipVariants;
|
|
13786
13842
|
exports.controlButtonVariants = controlButtonVariants;
|
|
13787
13843
|
exports.datePickerInputContainerVariants = datePickerInputContainerVariants;
|
|
13788
|
-
exports.dividerVariants =
|
|
13844
|
+
exports.dividerVariants = dividerVariants2;
|
|
13789
13845
|
exports.emptyStateVariants = emptyStateVariants;
|
|
13790
13846
|
exports.extractInitials = extractInitials;
|
|
13791
13847
|
exports.fileUploadCardVariants = fileUploadCardVariants;
|