@refineui/react 0.2.1 → 0.3.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/authoring-manifest.cjs +20 -6
- package/dist/authoring-manifest.cjs.map +1 -1
- package/dist/authoring-manifest.js +20 -6
- package/dist/authoring-manifest.js.map +1 -1
- package/dist/index.cjs +709 -258
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -5
- package/dist/index.d.ts +16 -5
- package/dist/index.js +714 -263
- package/dist/index.js.map +1 -1
- package/dist/spec/authoring/components/navigation-menu-content.json +19 -5
- package/dist/spec/authoring/manifest.json +20 -6
- package/dist/spec/contract-index.json +1 -1
- package/dist/spec/token-trace-v2.json +1 -1
- package/package.json +5 -3
- package/refineui.css +4710 -2402
- package/spec/authoring/components/navigation-menu-content.json +19 -5
- package/spec/authoring/manifest.json +20 -6
package/dist/index.cjs
CHANGED
|
@@ -1510,10 +1510,10 @@ function resolveSlotClasses(recipe, slot, variants = {}) {
|
|
|
1510
1510
|
|
|
1511
1511
|
// src/recipes/button.recipe.ts
|
|
1512
1512
|
var buttonVariantClass = {
|
|
1513
|
-
primary: "border-refineui-none border border-transparent bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed",
|
|
1514
|
-
secondary: "border-refineui-none border border-transparent bg-refineui-alias-background-surface-hover text-refineui-alias-foreground-primary",
|
|
1515
|
-
outline: "border-refineui-thin border-refineui-alias-border-default bg-transparent text-refineui-alias-foreground-primary",
|
|
1516
|
-
ghost: "border-refineui-none border border-transparent bg-transparent text-refineui-alias-foreground-primary"
|
|
1513
|
+
primary: "border-refineui-none border border-transparent bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed hover:bg-refineui-alias-background-brand-hover active:bg-refineui-alias-background-brand-active data-[inactive=true]:border-transparent data-[inactive=true]:bg-refineui-alias-background-brand-disabled data-[inactive=true]:text-refineui-alias-foreground-disabled",
|
|
1514
|
+
secondary: "border-refineui-none border border-transparent bg-refineui-alias-background-surface-hover text-refineui-alias-foreground-primary hover:bg-refineui-alias-background-surface-active hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-surface-active active:text-refineui-alias-foreground-primary data-[inactive=true]:border-transparent data-[inactive=true]:bg-refineui-alias-background-surface-disabled data-[inactive=true]:text-refineui-alias-foreground-disabled",
|
|
1515
|
+
outline: "border-refineui-thin border-refineui-alias-border-default bg-transparent text-refineui-alias-foreground-primary hover:border-refineui-alias-border-strong hover:text-refineui-alias-foreground-primary-hover active:border-refineui-alias-border-strong data-[inactive=true]:border-refineui-alias-border-disabled data-[inactive=true]:text-refineui-alias-foreground-disabled",
|
|
1516
|
+
ghost: "border-refineui-none border border-transparent bg-transparent text-refineui-alias-foreground-primary hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary data-[inactive=true]:border-transparent data-[inactive=true]:text-refineui-alias-foreground-disabled"
|
|
1517
1517
|
};
|
|
1518
1518
|
var buttonLabelSizeClass = {
|
|
1519
1519
|
sm: `min-h-refineui-button-min-height-sm gap-refineui-size-xx-small rounded-refineui-large px-refineui-size-medium py-refineui-size-xx-small ${sizedComponentTextClass(componentTypographyTokens.button, "sm")}`,
|
|
@@ -1527,7 +1527,7 @@ var buttonIconSizeClass = {
|
|
|
1527
1527
|
};
|
|
1528
1528
|
var buttonRecipe = defineRecipe({
|
|
1529
1529
|
name: "button",
|
|
1530
|
-
base: "box-border inline-flex cursor-pointer items-center justify-center border transition-[opacity,background-color,border-color,color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]",
|
|
1530
|
+
base: "box-border inline-flex cursor-pointer items-center justify-center border transition-[opacity,background-color,border-color,color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] focus-visible:outline-none active:scale-[var(--refineui-motion-scale-press)] data-[inactive=true]:opacity-100 data-[inactive=true]:transform-none data-[inactive=true]:active:scale-100",
|
|
1531
1531
|
variants: {
|
|
1532
1532
|
variant: buttonVariantClass,
|
|
1533
1533
|
layout: {
|
|
@@ -1543,7 +1543,7 @@ var buttonRecipe = defineRecipe({
|
|
|
1543
1543
|
compoundVariants: [
|
|
1544
1544
|
{
|
|
1545
1545
|
match: { variant: "ghost", layout: "icon" },
|
|
1546
|
-
className: "border-refineui-none border border-transparent bg-transparent text-refineui-alias-foreground-secondary hover:text-refineui-alias-foreground-primary-hover"
|
|
1546
|
+
className: "border-refineui-none border border-transparent bg-transparent text-refineui-alias-foreground-secondary hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary data-[inactive=true]:border-transparent data-[inactive=true]:text-refineui-alias-foreground-disabled"
|
|
1547
1547
|
},
|
|
1548
1548
|
{
|
|
1549
1549
|
match: { layout: "icon", variant: "primary" },
|
|
@@ -1677,7 +1677,7 @@ var formControlShellHeightClass = {
|
|
|
1677
1677
|
|
|
1678
1678
|
// src/components/Input/style.ts
|
|
1679
1679
|
var inputStyles = {
|
|
1680
|
-
base: "box-border appearance-none outline-none transition-[border-color,box-shadow,background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
1680
|
+
base: "box-border appearance-none outline-none transition-[border-color,box-shadow,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:border-refineui-alias-border-hover focus:border-refineui-alias-border-focus focus:shadow-[0_0_0_0.5px_var(--refineui-color-alias-border-focus)] data-[error=true]:focus:border-refineui-alias-background-error-hover data-[error=true]:focus:shadow-[0_0_0_0.5px_var(--refineui-color-alias-background-error-hover)] data-[success=true]:focus:border-refineui-alias-background-success-hover data-[success=true]:focus:shadow-[0_0_0_0.5px_var(--refineui-color-alias-background-success-hover)] disabled:cursor-not-allowed disabled:opacity-100",
|
|
1681
1681
|
text: "text-refineui-alias-foreground-primary placeholder:text-refineui-alias-foreground-placeholder",
|
|
1682
1682
|
disabledText: "disabled:text-refineui-alias-foreground-disabled",
|
|
1683
1683
|
disabledBg: "bg-refineui-alias-background-surface-disabled",
|
|
@@ -1756,6 +1756,13 @@ var inputOtpStyles = {
|
|
|
1756
1756
|
"transition-[background-color,border-color]",
|
|
1757
1757
|
"duration-[var(--refineui-motion-duration-fast)]",
|
|
1758
1758
|
"ease-[var(--refineui-motion-easing-emphasized)]",
|
|
1759
|
+
// Empty slots retain the staggered soft pulse until they receive focus or a digit.
|
|
1760
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:animate-pulse",
|
|
1761
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:[animation-duration:var(--refineui-motion-duration-skeleton)]",
|
|
1762
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:[animation-timing-function:var(--refineui-motion-easing-ease-in-out)]",
|
|
1763
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:[animation-delay:calc(var(--refineui-input-otp-slot-index,0)*var(--refineui-motion-duration-fast)*-1)]",
|
|
1764
|
+
"motion-reduce:animate-none",
|
|
1765
|
+
"caret-refineui-alias-foreground-primary hover:bg-refineui-alias-background-surface-active focus:border-refineui-alias-border-default",
|
|
1759
1766
|
"disabled:cursor-not-allowed",
|
|
1760
1767
|
"disabled:border-refineui-alias-border-disabled",
|
|
1761
1768
|
"disabled:bg-refineui-alias-background-surface-disabled",
|
|
@@ -1763,9 +1770,9 @@ var inputOtpStyles = {
|
|
|
1763
1770
|
)
|
|
1764
1771
|
};
|
|
1765
1772
|
var inputOtpSlotSizeClass = {
|
|
1766
|
-
sm: "size-refineui-control-height-sm rounded-refineui-large p-0",
|
|
1767
|
-
md: "size-refineui-control-height-md rounded-refineui-x-large p-0",
|
|
1768
|
-
lg: "size-refineui-control-height-lg rounded-refineui-xx-large p-0"
|
|
1773
|
+
sm: "size-refineui-control-height-sm rounded-refineui-large p-0 [font-family:var(--refineui-typography-sub-title-1-font-family)] text-[length:var(--refineui-typography-sub-title-1-font-size)] font-[var(--refineui-typography-sub-title-1-font-weight)] leading-[var(--refineui-typography-sub-title-1-line-height)]",
|
|
1774
|
+
md: "size-refineui-control-height-md rounded-refineui-x-large p-0 [font-family:var(--refineui-typography-title-3-font-family)] text-[length:var(--refineui-typography-title-3-font-size)] font-[var(--refineui-typography-title-3-font-weight)] leading-[var(--refineui-typography-title-3-line-height)]",
|
|
1775
|
+
lg: "size-refineui-control-height-lg rounded-refineui-xx-large p-0 [font-family:var(--refineui-typography-title-2-font-family)] text-[length:var(--refineui-typography-title-2-font-size)] font-[var(--refineui-typography-title-2-font-weight)] leading-[var(--refineui-typography-title-2-line-height)]"
|
|
1769
1776
|
};
|
|
1770
1777
|
|
|
1771
1778
|
// src/components/InputOTP/InputOTP.tsx
|
|
@@ -2046,7 +2053,7 @@ var searchFieldStyles = {
|
|
|
2046
2053
|
"box-border flex w-full min-w-0 items-center gap-refineui-size-x-small overflow-hidden outline-none",
|
|
2047
2054
|
"transition-[background-color,border-color]",
|
|
2048
2055
|
"duration-[var(--refineui-motion-duration-fast)]",
|
|
2049
|
-
"ease-[var(--refineui-motion-easing-emphasized)]"
|
|
2056
|
+
"ease-[var(--refineui-motion-easing-emphasized)] caret-refineui-alias-foreground-primary hover:bg-refineui-alias-background-surface-active focus-within:border-refineui-alias-border-default data-[disabled=true]:cursor-not-allowed data-[disabled=true]:border-refineui-alias-border-disabled data-[disabled=true]:bg-refineui-alias-background-surface-disabled"
|
|
2050
2057
|
].join(" "),
|
|
2051
2058
|
rootFilled: [
|
|
2052
2059
|
"border-refineui-thin border-transparent",
|
|
@@ -2054,14 +2061,14 @@ var searchFieldStyles = {
|
|
|
2054
2061
|
"bg-refineui-alias-background-surface-hover"
|
|
2055
2062
|
].join(" "),
|
|
2056
2063
|
rootPlain: [
|
|
2057
|
-
"h-auto min-h-0 rounded-none border-none bg-transparent px-0 py-0"
|
|
2064
|
+
"h-auto min-h-0 rounded-none border-none bg-transparent px-0 py-0 hover:bg-transparent focus-within:border-transparent"
|
|
2058
2065
|
].join(" "),
|
|
2059
2066
|
rootDisabled: "border-refineui-alias-border-disabled bg-refineui-alias-background-surface-disabled",
|
|
2060
2067
|
rootPlainDisabled: "bg-transparent",
|
|
2061
2068
|
icon: "inline-flex shrink-0 items-center justify-center text-refineui-alias-foreground-tertiary",
|
|
2062
2069
|
iconDisabled: "text-refineui-alias-foreground-disabled",
|
|
2063
|
-
input: "min-w-0 flex-1 appearance-none border-none bg-transparent p-0 text-refineui-alias-foreground-primary outline-none placeholder:text-refineui-alias-foreground-placeholder disabled:cursor-not-allowed disabled:text-refineui-alias-foreground-disabled",
|
|
2064
|
-
clear: "inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent p-0 leading-none text-refineui-alias-foreground-tertiary",
|
|
2070
|
+
input: "min-w-0 flex-1 appearance-none border-none bg-transparent p-0 text-refineui-alias-foreground-primary outline-none placeholder:text-refineui-alias-foreground-placeholder disabled:cursor-not-allowed disabled:text-refineui-alias-foreground-disabled [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none",
|
|
2071
|
+
clear: "inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent p-0 leading-none text-refineui-alias-foreground-tertiary hover:text-refineui-alias-foreground-primary active:transform-none",
|
|
2065
2072
|
clearDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled"
|
|
2066
2073
|
};
|
|
2067
2074
|
var searchFieldFilledSizeClass = formControlRowShellSizeClass;
|
|
@@ -2292,7 +2299,7 @@ var import_clsx9 = require("clsx");
|
|
|
2292
2299
|
// src/components/Textarea/style.ts
|
|
2293
2300
|
var import_clsx8 = require("clsx");
|
|
2294
2301
|
var textareaStyles = {
|
|
2295
|
-
base: "box-border appearance-none outline-none transition-[border-color,box-shadow,background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
2302
|
+
base: "box-border appearance-none outline-none transition-[border-color,box-shadow,background-color] duration-[var(--refineui-motion-duration-fast)] hover:border-refineui-alias-border-hover focus:border-refineui-alias-border-focus focus:shadow-[0_0_0_0.5px_var(--refineui-color-alias-border-focus)] data-[error=true]:focus:border-refineui-alias-background-error-hover data-[error=true]:focus:shadow-[0_0_0_0.5px_var(--refineui-color-alias-background-error-hover)] data-[success=true]:focus:border-refineui-alias-background-success-hover data-[success=true]:focus:shadow-[0_0_0_0.5px_var(--refineui-color-alias-background-success-hover)] disabled:cursor-not-allowed disabled:opacity-100",
|
|
2296
2303
|
field: (0, import_clsx8.clsx)(
|
|
2297
2304
|
componentTextClass(componentTypographyTokens.textarea),
|
|
2298
2305
|
"min-h-refineui-control-textarea-min resize-y rounded-refineui-large px-refineui-size-x-small py-refineui-size-medium"
|
|
@@ -2349,18 +2356,18 @@ var import_clsx11 = require("clsx");
|
|
|
2349
2356
|
// src/recipes/badge.recipe.ts
|
|
2350
2357
|
var import_clsx10 = require("clsx");
|
|
2351
2358
|
var badgeVariantClass = {
|
|
2352
|
-
default: "bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed",
|
|
2353
|
-
neutral: "bg-refineui-alias-background-brand-subtle text-refineui-alias-foreground-brand-strong",
|
|
2354
|
-
outline: "border-refineui-thin border-refineui-alias-border-default border bg-transparent text-refineui-alias-foreground-primary box-border",
|
|
2355
|
-
success: "bg-refineui-alias-background-success text-refineui-alias-foreground-inversed",
|
|
2356
|
-
warning: "bg-refineui-alias-background-warning text-refineui-alias-foreground-inversed",
|
|
2357
|
-
danger: "bg-refineui-alias-background-error text-refineui-alias-foreground-inversed"
|
|
2359
|
+
default: "bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed hover:bg-refineui-alias-background-brand-hover active:bg-refineui-alias-background-brand-active",
|
|
2360
|
+
neutral: "bg-refineui-alias-background-brand-subtle text-refineui-alias-foreground-brand-strong hover:bg-refineui-alias-background-primary-hover active:bg-refineui-alias-background-primary-active",
|
|
2361
|
+
outline: "border-refineui-thin border-refineui-alias-border-default border bg-transparent text-refineui-alias-foreground-primary box-border active:border-refineui-alias-border-strong",
|
|
2362
|
+
success: "bg-refineui-alias-background-success text-refineui-alias-foreground-inversed hover:bg-refineui-alias-background-success-hover active:bg-refineui-alias-background-success-subtle",
|
|
2363
|
+
warning: "bg-refineui-alias-background-warning text-refineui-alias-foreground-inversed hover:bg-refineui-alias-background-warning-hover active:bg-refineui-alias-background-warning-subtle",
|
|
2364
|
+
danger: "bg-refineui-alias-background-error text-refineui-alias-foreground-inversed hover:bg-refineui-alias-background-error-hover active:bg-refineui-alias-background-error-subtle"
|
|
2358
2365
|
};
|
|
2359
2366
|
var badgeRecipe = defineRecipe({
|
|
2360
2367
|
name: "badge",
|
|
2361
2368
|
base: (0, import_clsx10.clsx)(
|
|
2362
2369
|
componentTextClass(componentTypographyTokens.badge),
|
|
2363
|
-
"inline-flex items-center justify-center py-refineui-size-xxsmall px-refineui-size-small"
|
|
2370
|
+
"inline-flex items-center justify-center py-refineui-size-xxsmall px-refineui-size-small transition-[background-color,border-color] duration-[var(--refineui-motion-duration-fast)]"
|
|
2364
2371
|
),
|
|
2365
2372
|
variants: {
|
|
2366
2373
|
variant: badgeVariantClass,
|
|
@@ -2406,26 +2413,27 @@ var import_clsx13 = require("clsx");
|
|
|
2406
2413
|
// src/components/Card/style.ts
|
|
2407
2414
|
var import_clsx12 = require("clsx");
|
|
2408
2415
|
var cardStyles = {
|
|
2409
|
-
root: "box-border flex h-full flex-col gap-refineui-size-none overflow-hidden rounded-refineui-xx-large bg-refineui-alias-background-primary",
|
|
2410
|
-
elevated: "border-refineui-none shadow-refineui-4",
|
|
2416
|
+
root: "group box-border flex h-full flex-col gap-refineui-size-none overflow-hidden rounded-[var(--refineui-radius-rounded-xx-large)] bg-refineui-alias-background-primary data-[selected=true]:shadow-[inset_0_0_0_var(--refineui-stroke-width-thick)_var(--refineui-color-alias-border-focus)]",
|
|
2417
|
+
elevated: "border-refineui-none shadow-refineui-4 data-[selected=true]:shadow-[var(--refineui-elevation-4),inset_0_0_0_var(--refineui-stroke-width-thick)_var(--refineui-color-alias-border-focus)]",
|
|
2411
2418
|
outlined: "border-refineui-thin border-refineui-alias-border-default shadow-none",
|
|
2412
2419
|
stateDefault: "bg-refineui-alias-background-primary",
|
|
2413
2420
|
stateHover: "bg-refineui-alias-background-primary-hover",
|
|
2414
2421
|
statePressed: "bg-refineui-alias-background-surface-active",
|
|
2415
2422
|
stateDisabled: "bg-refineui-alias-background-surface-disabled",
|
|
2416
|
-
interactive: "cursor-pointer transition-[background-color,border-color,box-shadow,outline-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]",
|
|
2423
|
+
interactive: "cursor-pointer transition-[background-color,border-color,box-shadow,outline-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:bg-refineui-alias-background-primary-hover active:bg-refineui-alias-background-surface-selected",
|
|
2424
|
+
interactiveOutlined: "hover:border-refineui-alias-border-default active:border-refineui-alias-border-strong",
|
|
2417
2425
|
headerMain: "flex min-w-0 flex-1 flex-col gap-refineui-size-xx-small",
|
|
2418
2426
|
header: "flex flex-row flex-wrap items-start justify-between gap-refineui-size-medium px-refineui-size-x-large py-refineui-size-large",
|
|
2419
2427
|
title: (0, import_clsx12.clsx)(
|
|
2420
2428
|
componentTextClass(componentTypographyTokens.card.title),
|
|
2421
|
-
"text-refineui-alias-foreground-primary"
|
|
2429
|
+
"text-refineui-alias-foreground-primary group-aria-disabled:text-refineui-alias-foreground-disabled"
|
|
2422
2430
|
),
|
|
2423
2431
|
description: (0, import_clsx12.clsx)(
|
|
2424
2432
|
componentTextClass(componentTypographyTokens.card.description),
|
|
2425
|
-
"text-refineui-alias-foreground-tertiary"
|
|
2433
|
+
"text-refineui-alias-foreground-tertiary group-aria-disabled:text-refineui-alias-foreground-disabled"
|
|
2426
2434
|
),
|
|
2427
2435
|
action: "flex shrink-0 items-center justify-end",
|
|
2428
|
-
content: "flex flex-1 flex-col px-refineui-size-x-large pb-refineui-size-large",
|
|
2436
|
+
content: "flex flex-1 flex-col px-refineui-size-x-large pb-refineui-size-large group-aria-disabled:text-refineui-alias-foreground-disabled",
|
|
2429
2437
|
footer: "mt-auto flex shrink-0 items-center justify-end gap-refineui-size-x-small px-refineui-size-x-large py-refineui-size-medium"
|
|
2430
2438
|
};
|
|
2431
2439
|
|
|
@@ -2455,6 +2463,7 @@ function Card({
|
|
|
2455
2463
|
state === "pressed" && cardStyles.statePressed,
|
|
2456
2464
|
state === "disabled" && cardStyles.stateDisabled,
|
|
2457
2465
|
interactive && !isDisabled && cardStyles.interactive,
|
|
2466
|
+
interactive && !isDisabled && variant === "outlined" && cardStyles.interactiveOutlined,
|
|
2458
2467
|
className
|
|
2459
2468
|
),
|
|
2460
2469
|
...props
|
|
@@ -2539,16 +2548,16 @@ var labelCompanionStyles = {
|
|
|
2539
2548
|
|
|
2540
2549
|
// src/components/Checkbox/style.ts
|
|
2541
2550
|
var checkboxStyles = {
|
|
2542
|
-
root: "inline-flex gap-refineui-size-x-small",
|
|
2551
|
+
root: "group inline-flex gap-refineui-size-x-small",
|
|
2543
2552
|
textTop: "items-start",
|
|
2544
2553
|
textCenter: "items-center",
|
|
2545
2554
|
disabledCursor: "cursor-not-allowed",
|
|
2546
2555
|
enabledCursor: "cursor-pointer",
|
|
2547
2556
|
controlWrap: "relative h-[var(--refineui-size-control-checkbox,20px)] w-[var(--refineui-size-control-checkbox,20px)] shrink-0",
|
|
2548
2557
|
controlWrapDesc: "mt-refineui-size-xxx-small",
|
|
2549
|
-
input: "absolute inset-0 z-1 m-0 h-full w-full cursor-pointer opacity-0 outline-none",
|
|
2558
|
+
input: "peer absolute inset-0 z-1 m-0 h-full w-full cursor-pointer opacity-0 outline-none",
|
|
2550
2559
|
inputDisabled: "cursor-not-allowed",
|
|
2551
|
-
visual: "pointer-events-none absolute inset-0 box-border flex items-center justify-center overflow-hidden",
|
|
2560
|
+
visual: "pointer-events-none absolute inset-0 box-border flex size-[var(--refineui-size-control-checkbox,20px)] min-h-[var(--refineui-size-control-checkbox,20px)] min-w-[var(--refineui-size-control-checkbox,20px)] items-center justify-center overflow-hidden rounded-[var(--refineui-radius-rounded-large)] border border-refineui-alias-border-default bg-refineui-alias-background-primary transition-[background-color,border-color,border-width] duration-[var(--refineui-motion-duration-fast)] data-[variant=circular]:rounded-refineui-circle data-[checked=true]:border-refineui-alias-background-brand data-[checked=true]:bg-refineui-alias-background-brand group-hover:data-[checked=false]:border-refineui-alias-border-subtle group-active:data-[checked=false]:border-refineui-alias-border-strong group-hover:data-[checked=true]:border-refineui-alias-background-brand-hover group-hover:data-[checked=true]:bg-refineui-alias-background-brand-hover group-active:data-[checked=true]:border-refineui-alias-background-brand-active group-active:data-[checked=true]:bg-refineui-alias-background-brand-active peer-focus-visible:border-2 peer-focus-visible:border-refineui-alias-border-strong peer-focus-visible:bg-refineui-alias-background-primary peer-focus-visible:data-[checked=true]:border-refineui-alias-border-focus peer-focus-visible:data-[checked=true]:bg-refineui-alias-background-brand-active data-[disabled=true]:border-refineui-alias-border-disabled data-[disabled=true]:bg-refineui-alias-background-primary-hover [&[data-disabled=true][data-checked=true]]:border-refineui-alias-background-surface-selected [&[data-disabled=true][data-checked=true]]:bg-refineui-alias-background-surface-selected",
|
|
2552
2561
|
textCol: "flex min-w-0 flex-col gap-refineui-size-x-small",
|
|
2553
2562
|
label: labelCompanionStyles.label,
|
|
2554
2563
|
desc: labelCompanionStyles.description,
|
|
@@ -2682,7 +2691,7 @@ var radioStyles = {
|
|
|
2682
2691
|
rootWithoutDescription: "items-center",
|
|
2683
2692
|
rootDisabled: "cursor-not-allowed",
|
|
2684
2693
|
rootEnabled: "cursor-pointer",
|
|
2685
|
-
input: "h-[var(--refineui-size-control-checkbox-radio,20px)] w-[var(--refineui-size-control-checkbox-radio,20px)] shrink-0 cursor-pointer",
|
|
2694
|
+
input: "relative m-0 inline-grid size-[var(--refineui-size-control-checkbox-radio,20px)] min-h-[var(--refineui-size-control-checkbox-radio,20px)] min-w-[var(--refineui-size-control-checkbox-radio,20px)] shrink-0 cursor-pointer appearance-none place-content-center rounded-full border border-refineui-alias-border-default bg-refineui-alias-background-primary shadow-none outline-none transition-[border-color,background-color,box-shadow,opacity] duration-[var(--refineui-motion-duration-fast)] after:size-refineui-size-medium after:scale-0 after:rounded-full after:bg-refineui-alias-background-primary after:content-[''] after:transition-transform after:duration-[var(--refineui-motion-duration-fast)] after:ease-[var(--refineui-motion-easing-ease-out)] focus-visible:shadow-[0_0_0_var(--refineui-stroke-width-thick)_var(--refineui-color-alias-border-strong)] checked:border-refineui-alias-foreground-primary checked:bg-refineui-alias-foreground-primary checked:after:scale-100 checked:focus-visible:shadow-[0_0_0_var(--refineui-stroke-width-thick)_var(--refineui-color-alias-border-strong)] disabled:cursor-not-allowed disabled:border-refineui-alias-border-disabled disabled:opacity-100 disabled:checked:border-refineui-alias-foreground-disabled disabled:checked:bg-refineui-alias-foreground-disabled disabled:checked:after:scale-100",
|
|
2686
2695
|
inputWithDescriptionOffset: "mt-refineui-size-xxx-small",
|
|
2687
2696
|
textWrap: "flex min-w-0 flex-col gap-refineui-size-x-small",
|
|
2688
2697
|
label: labelCompanionStyles.label,
|
|
@@ -2809,7 +2818,7 @@ var import_tokens7 = require("@refineui/tokens");
|
|
|
2809
2818
|
var SCROLL_AREA_THUMB_MIN_PX = Number.parseFloat(import_tokens7.spacings.sizeXLarge);
|
|
2810
2819
|
var SCROLL_EDGE_FALLOFF_RATIO = 0.25;
|
|
2811
2820
|
var scrollAreaStyles = {
|
|
2812
|
-
root: "box-border min-h-0 min-w-0 overflow-hidden outline-none",
|
|
2821
|
+
root: "relative box-border min-h-0 min-w-0 overflow-hidden outline-none",
|
|
2813
2822
|
/**
|
|
2814
2823
|
* Overflow and scroll chaining are per axis: an axis only becomes scrollable
|
|
2815
2824
|
* when its scrollbar is declared, so a horizontal-only area lets vertical
|
|
@@ -2818,26 +2827,31 @@ var scrollAreaStyles = {
|
|
|
2818
2827
|
viewport: (0, import_clsx24.clsx)(
|
|
2819
2828
|
"size-full min-h-0 min-w-0 rounded-[inherit]",
|
|
2820
2829
|
"overflow-hidden",
|
|
2821
|
-
"outline-none",
|
|
2830
|
+
"outline-none [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
2822
2831
|
"data-[overflow-x=true]:overflow-x-auto data-[overflow-x=true]:overscroll-x-contain",
|
|
2823
2832
|
"data-[overflow-y=true]:overflow-y-auto data-[overflow-y=true]:overscroll-y-contain"
|
|
2824
2833
|
),
|
|
2825
2834
|
scrollbar: (0, import_clsx24.clsx)(
|
|
2826
2835
|
"z-refineui-content box-border touch-none select-none",
|
|
2827
|
-
"transition-opacity duration-[var(--refineui-motion-duration-
|
|
2828
|
-
"ease-[var(--refineui-motion-easing-ease-out)]"
|
|
2836
|
+
"transition-opacity duration-[var(--refineui-motion-duration-normal)]",
|
|
2837
|
+
"ease-[var(--refineui-motion-easing-ease-out)]",
|
|
2838
|
+
"data-[state=hidden]:pointer-events-none data-[state=hidden]:opacity-0",
|
|
2839
|
+
"data-[visibility=always]:data-[state=visible]:opacity-100",
|
|
2840
|
+
"data-[visibility=hover]:data-[state=visible]:pointer-events-none data-[visibility=hover]:data-[state=visible]:opacity-0",
|
|
2841
|
+
"data-[visibility=scroll]:data-[state=visible]:pointer-events-none data-[visibility=scroll]:data-[state=visible]:opacity-0",
|
|
2842
|
+
"data-[active=true]:!pointer-events-auto data-[active=true]:!opacity-100"
|
|
2829
2843
|
),
|
|
2830
|
-
scrollbarVertical: "",
|
|
2831
|
-
scrollbarHorizontal: "",
|
|
2844
|
+
scrollbarVertical: "absolute inset-y-refineui-size-xxx-small end-refineui-size-xxx-small w-refineui-size-medium overflow-hidden",
|
|
2845
|
+
scrollbarHorizontal: "absolute inset-x-refineui-size-xxx-small bottom-refineui-size-xxx-small h-refineui-size-medium overflow-hidden",
|
|
2832
2846
|
/** Inner rail — thumb is absolutely positioned here (padding lives on the outer scrollbar). */
|
|
2833
|
-
track: "relative size-full min-h-0 min-w-0 overflow-hidden rounded-refineui-circle",
|
|
2847
|
+
track: "relative size-full min-h-0 min-w-0 overflow-hidden rounded-refineui-circle bg-refineui-alias-background-surface-selected",
|
|
2834
2848
|
thumb: (0, import_clsx24.clsx)(
|
|
2835
2849
|
"absolute rounded-refineui-circle",
|
|
2836
2850
|
"bg-refineui-alias-border-strong",
|
|
2837
2851
|
"transition-[background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
2838
2852
|
"ease-[var(--refineui-motion-easing-ease-out)]",
|
|
2839
2853
|
"hover:bg-refineui-alias-foreground-secondary",
|
|
2840
|
-
"data-[dragging=true]:bg-refineui-alias-foreground-secondary"
|
|
2854
|
+
"data-[dragging=true]:bg-refineui-alias-foreground-secondary data-[orientation=vertical]:start-0 data-[orientation=vertical]:w-full data-[orientation=horizontal]:top-0 data-[orientation=horizontal]:h-full"
|
|
2841
2855
|
)
|
|
2842
2856
|
};
|
|
2843
2857
|
var scrollAreaScrollbarOrientationClass = {
|
|
@@ -2919,6 +2933,8 @@ var ScrollArea = (0, import_react8.forwardRef)(function ScrollArea2({
|
|
|
2919
2933
|
const [vertical, setVertical] = (0, import_react8.useState)(EMPTY_METRICS);
|
|
2920
2934
|
const [horizontal, setHorizontal] = (0, import_react8.useState)(EMPTY_METRICS);
|
|
2921
2935
|
const [scrolling, setScrolling] = (0, import_react8.useState)(false);
|
|
2936
|
+
const [hovering, setHovering] = (0, import_react8.useState)(false);
|
|
2937
|
+
const [focused, setFocused] = (0, import_react8.useState)(false);
|
|
2922
2938
|
const [interacting, setInteracting] = (0, import_react8.useState)(false);
|
|
2923
2939
|
const [axes, setAxes] = (0, import_react8.useState)(NO_AXES);
|
|
2924
2940
|
const hideTimerRef = (0, import_react8.useRef)(null);
|
|
@@ -2986,6 +3002,14 @@ var ScrollArea = (0, import_react8.forwardRef)(function ScrollArea2({
|
|
|
2986
3002
|
if (hideTimerRef.current != null) window.clearTimeout(hideTimerRef.current);
|
|
2987
3003
|
};
|
|
2988
3004
|
}, [sync, markScrolling, viewportEpoch]);
|
|
3005
|
+
(0, import_react8.useEffect)(() => {
|
|
3006
|
+
if (!hovering) return;
|
|
3007
|
+
const clearHoverAfterAncestorScroll = (event) => {
|
|
3008
|
+
if (event.target !== viewportRef.current) setHovering(false);
|
|
3009
|
+
};
|
|
3010
|
+
window.addEventListener("scroll", clearHoverAfterAncestorScroll, true);
|
|
3011
|
+
return () => window.removeEventListener("scroll", clearHoverAfterAncestorScroll, true);
|
|
3012
|
+
}, [hovering]);
|
|
2989
3013
|
const ctx = (0, import_react8.useMemo)(
|
|
2990
3014
|
() => ({
|
|
2991
3015
|
type,
|
|
@@ -2996,6 +3020,10 @@ var ScrollArea = (0, import_react8.forwardRef)(function ScrollArea2({
|
|
|
2996
3020
|
vertical,
|
|
2997
3021
|
horizontal,
|
|
2998
3022
|
scrolling,
|
|
3023
|
+
hovering,
|
|
3024
|
+
setHovering,
|
|
3025
|
+
focused,
|
|
3026
|
+
setFocused,
|
|
2999
3027
|
interacting,
|
|
3000
3028
|
setInteracting
|
|
3001
3029
|
}),
|
|
@@ -3007,6 +3035,8 @@ var ScrollArea = (0, import_react8.forwardRef)(function ScrollArea2({
|
|
|
3007
3035
|
vertical,
|
|
3008
3036
|
horizontal,
|
|
3009
3037
|
scrolling,
|
|
3038
|
+
hovering,
|
|
3039
|
+
focused,
|
|
3010
3040
|
interacting
|
|
3011
3041
|
]
|
|
3012
3042
|
);
|
|
@@ -3017,6 +3047,7 @@ var ScrollArea = (0, import_react8.forwardRef)(function ScrollArea2({
|
|
|
3017
3047
|
"data-refineui": "scroll-area",
|
|
3018
3048
|
"data-type": type,
|
|
3019
3049
|
"data-scrolling": scrolling || void 0,
|
|
3050
|
+
"data-hovering": hovering || void 0,
|
|
3020
3051
|
"data-interacting": interacting || void 0,
|
|
3021
3052
|
className: (0, import_clsx25.clsx)(scrollAreaStyles.root, className),
|
|
3022
3053
|
...props,
|
|
@@ -3025,8 +3056,8 @@ var ScrollArea = (0, import_react8.forwardRef)(function ScrollArea2({
|
|
|
3025
3056
|
) });
|
|
3026
3057
|
});
|
|
3027
3058
|
var ScrollAreaViewport = (0, import_react8.forwardRef)(
|
|
3028
|
-
function ScrollAreaViewport2({ className, children, ...props }, forwardedRef) {
|
|
3029
|
-
const { setViewportNode, axes, vertical, horizontal } = useScrollAreaContext("ScrollAreaViewport");
|
|
3059
|
+
function ScrollAreaViewport2({ className, children, onPointerEnter, onPointerLeave, onFocus, onBlur, ...props }, forwardedRef) {
|
|
3060
|
+
const { setViewportNode, axes, vertical, horizontal, setHovering, setFocused } = useScrollAreaContext("ScrollAreaViewport");
|
|
3030
3061
|
const composedRef = (0, import_react9.useComposedRefs)(setViewportNode, forwardedRef);
|
|
3031
3062
|
const scrollable = isScrollable(vertical) || isScrollable(horizontal);
|
|
3032
3063
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
@@ -3038,6 +3069,23 @@ var ScrollAreaViewport = (0, import_react8.forwardRef)(
|
|
|
3038
3069
|
"data-overflow-y": axes.vertical ? "true" : void 0,
|
|
3039
3070
|
tabIndex: scrollable ? 0 : void 0,
|
|
3040
3071
|
className: (0, import_clsx25.clsx)(scrollAreaStyles.viewport, className),
|
|
3072
|
+
onPointerEnter: (event) => {
|
|
3073
|
+
onPointerEnter?.(event);
|
|
3074
|
+
setHovering(true);
|
|
3075
|
+
},
|
|
3076
|
+
onPointerLeave: (event) => {
|
|
3077
|
+
onPointerLeave?.(event);
|
|
3078
|
+
setHovering(false);
|
|
3079
|
+
},
|
|
3080
|
+
onFocus: (event) => {
|
|
3081
|
+
onFocus?.(event);
|
|
3082
|
+
setFocused(true);
|
|
3083
|
+
},
|
|
3084
|
+
onBlur: (event) => {
|
|
3085
|
+
onBlur?.(event);
|
|
3086
|
+
const next = event.relatedTarget;
|
|
3087
|
+
if (!next || !event.currentTarget.contains(next)) setFocused(false);
|
|
3088
|
+
},
|
|
3041
3089
|
...props,
|
|
3042
3090
|
children
|
|
3043
3091
|
}
|
|
@@ -3049,6 +3097,8 @@ function ScrollAreaScrollbar({
|
|
|
3049
3097
|
className,
|
|
3050
3098
|
children,
|
|
3051
3099
|
onPointerDown,
|
|
3100
|
+
onPointerEnter,
|
|
3101
|
+
onPointerLeave,
|
|
3052
3102
|
...props
|
|
3053
3103
|
}) {
|
|
3054
3104
|
const {
|
|
@@ -3058,12 +3108,15 @@ function ScrollAreaScrollbar({
|
|
|
3058
3108
|
vertical,
|
|
3059
3109
|
horizontal,
|
|
3060
3110
|
scrolling,
|
|
3061
|
-
|
|
3111
|
+
hovering,
|
|
3112
|
+
focused,
|
|
3113
|
+
interacting,
|
|
3114
|
+
setHovering
|
|
3062
3115
|
} = useScrollAreaContext("ScrollAreaScrollbar");
|
|
3063
3116
|
const trackRef = (0, import_react8.useRef)(null);
|
|
3064
3117
|
const metrics = orientation === "vertical" ? vertical : horizontal;
|
|
3065
3118
|
const visible = isScrollable(metrics);
|
|
3066
|
-
const active = scrolling || interacting;
|
|
3119
|
+
const active = type === "hover" ? hovering || focused || scrolling || interacting : type === "scroll" ? focused || scrolling || interacting : false;
|
|
3067
3120
|
(0, import_react8.useLayoutEffect)(() => {
|
|
3068
3121
|
setAxisEnabled(orientation, true);
|
|
3069
3122
|
return () => setAxisEnabled(orientation, false);
|
|
@@ -3113,6 +3166,14 @@ function ScrollAreaScrollbar({
|
|
|
3113
3166
|
className
|
|
3114
3167
|
),
|
|
3115
3168
|
onPointerDown: onTrackPointerDown,
|
|
3169
|
+
onPointerEnter: (event) => {
|
|
3170
|
+
onPointerEnter?.(event);
|
|
3171
|
+
setHovering(true);
|
|
3172
|
+
},
|
|
3173
|
+
onPointerLeave: (event) => {
|
|
3174
|
+
onPointerLeave?.(event);
|
|
3175
|
+
setHovering(false);
|
|
3176
|
+
},
|
|
3116
3177
|
...props,
|
|
3117
3178
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3118
3179
|
"div",
|
|
@@ -3261,7 +3322,7 @@ var selectStyles = {
|
|
|
3261
3322
|
"border-refineui-hairline border-refineui-alias-border-default",
|
|
3262
3323
|
"bg-refineui-alias-background-primary px-refineui-size-medium py-refineui-size-x-small",
|
|
3263
3324
|
"text-refineui-alias-foreground-primary outline-none",
|
|
3264
|
-
"transition-[color,background-color,border-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
3325
|
+
"transition-[color,background-color,border-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:!bg-refineui-alias-background-primary-hover hover:!text-refineui-alias-foreground-primary-hover active:!bg-refineui-alias-background-primary-active active:!text-refineui-alias-foreground-primary data-[state=open]:!bg-refineui-alias-background-primary-hover data-[state=open]:!text-refineui-alias-foreground-primary-hover data-[pressed]:!bg-refineui-alias-background-primary-active data-[pressed]:!text-refineui-alias-foreground-primary focus-visible:!bg-refineui-alias-background-primary-hover focus-visible:!text-refineui-alias-foreground-primary-hover"
|
|
3265
3326
|
),
|
|
3266
3327
|
/** Ghost plate — same gap/radius as filled, no field border (Button ghost-like). */
|
|
3267
3328
|
triggerGhost: (0, import_clsx27.clsx)(
|
|
@@ -3270,7 +3331,7 @@ var selectStyles = {
|
|
|
3270
3331
|
"border-refineui-none border-transparent bg-transparent",
|
|
3271
3332
|
"px-refineui-size-x-small py-refineui-size-xx-small",
|
|
3272
3333
|
"text-refineui-alias-foreground-primary outline-none",
|
|
3273
|
-
"transition-[color,background-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
3334
|
+
"transition-[color,background-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary data-[state=open]:bg-refineui-alias-background-primary-hover data-[state=open]:text-refineui-alias-foreground-primary-hover data-[pressed]:bg-refineui-alias-background-primary-active data-[pressed]:text-refineui-alias-foreground-primary focus-visible:bg-refineui-alias-background-primary-hover focus-visible:text-refineui-alias-foreground-primary-hover"
|
|
3274
3335
|
),
|
|
3275
3336
|
/** Flush shell — consumer / parent owns padding, radius, surface. */
|
|
3276
3337
|
triggerPlain: (0, import_clsx27.clsx)(
|
|
@@ -3288,13 +3349,14 @@ var selectStyles = {
|
|
|
3288
3349
|
chevronOpen: "rotate-180",
|
|
3289
3350
|
/* No overflow-hidden — it isolates descendants and kills panel `backdrop-filter`. */
|
|
3290
3351
|
positioner: "z-refineui-popup flex flex-col",
|
|
3291
|
-
contentShell: "box-border flex w-full min-h-0 flex-col overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default p-refineui-size-xx-small shadow-refineui-2 outline-none",
|
|
3352
|
+
contentShell: "box-border flex w-full min-h-0 flex-col overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default bg-refineui-alias-surface-frosted p-refineui-size-xx-small shadow-refineui-2 outline-none backdrop-blur-refineui-surface-frost",
|
|
3292
3353
|
contentPopper: "h-auto max-h-[var(--refineui-select-content-available-height,100dvh)]",
|
|
3293
|
-
|
|
3354
|
+
/** The positioner owns alignment height; the frosted surface only covers its content. */
|
|
3355
|
+
contentItemAligned: "h-fit max-h-full self-start",
|
|
3294
3356
|
viewportPopper: "relative flex max-h-full min-h-0 min-w-full w-full flex-col",
|
|
3295
|
-
viewportItemAligned: "relative flex min-h-0 min-w-full w-full max-h-full flex-
|
|
3357
|
+
viewportItemAligned: "relative flex h-auto min-h-0 min-w-full w-full max-h-full flex-none flex-col",
|
|
3296
3358
|
scrollAreaRootPopper: "relative flex max-h-full min-h-0 flex-col",
|
|
3297
|
-
scrollAreaRootItemAligned: "relative flex h-
|
|
3359
|
+
scrollAreaRootItemAligned: "relative flex h-auto min-h-0 max-h-full flex-none flex-col",
|
|
3298
3360
|
group: "flex flex-col gap-px",
|
|
3299
3361
|
label: (0, import_clsx27.clsx)(
|
|
3300
3362
|
componentTextClass(componentTypographyTokens.select.label),
|
|
@@ -3303,7 +3365,7 @@ var selectStyles = {
|
|
|
3303
3365
|
separator: "my-refineui-size-x-small h-px bg-refineui-alias-border-default",
|
|
3304
3366
|
item: (0, import_clsx27.clsx)(
|
|
3305
3367
|
componentTextClass(componentTypographyTokens.select.item),
|
|
3306
|
-
"relative flex cursor-pointer items-center gap-refineui-size-x-small rounded-refineui-large border-refineui-none bg-transparent p-refineui-size-x-small text-refineui-alias-foreground-primary outline-none transition-
|
|
3368
|
+
"relative flex cursor-pointer items-center gap-refineui-size-x-small rounded-refineui-large border-refineui-none bg-transparent p-refineui-size-x-small text-refineui-alias-foreground-primary outline-none transition-[background-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary data-[selected=true]:bg-refineui-alias-background-primary-hover data-[selected=true]:text-refineui-alias-foreground-primary data-[state=selected]:bg-refineui-alias-background-primary-hover data-[state=selected]:text-refineui-alias-foreground-primary data-[state=hover]:bg-refineui-alias-background-primary-hover data-[state=hover]:text-refineui-alias-foreground-primary-hover data-[state=pressed]:bg-refineui-alias-background-primary-active data-[state=pressed]:text-refineui-alias-foreground-primary aria-disabled:cursor-not-allowed aria-disabled:bg-refineui-alias-background-surface-disabled aria-disabled:!text-refineui-alias-foreground-disabled aria-disabled:transform-none"
|
|
3307
3369
|
),
|
|
3308
3370
|
itemActive: "bg-refineui-alias-background-primary-hover",
|
|
3309
3371
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
@@ -3436,32 +3498,6 @@ function Select({
|
|
|
3436
3498
|
document.addEventListener("mousedown", onOutside);
|
|
3437
3499
|
return () => document.removeEventListener("mousedown", onOutside);
|
|
3438
3500
|
}, [open, setOpen]);
|
|
3439
|
-
(0, import_react11.useEffect)(() => {
|
|
3440
|
-
if (!open) return;
|
|
3441
|
-
const releaseBodyLock = (0, import_react12.acquireBodyScrollLock)();
|
|
3442
|
-
const ancestors = getScrollableAncestors(triggerRef.current).filter(
|
|
3443
|
-
(el) => el !== document.body && el !== document.documentElement
|
|
3444
|
-
);
|
|
3445
|
-
const prevStyles = ancestors.map((el) => ({
|
|
3446
|
-
el,
|
|
3447
|
-
overflow: el.style.overflow,
|
|
3448
|
-
overflowX: el.style.overflowX,
|
|
3449
|
-
overflowY: el.style.overflowY
|
|
3450
|
-
}));
|
|
3451
|
-
for (const { el } of prevStyles) {
|
|
3452
|
-
el.style.overflow = "hidden";
|
|
3453
|
-
el.style.overflowX = "hidden";
|
|
3454
|
-
el.style.overflowY = "hidden";
|
|
3455
|
-
}
|
|
3456
|
-
return () => {
|
|
3457
|
-
for (const { el, overflow, overflowX, overflowY } of prevStyles) {
|
|
3458
|
-
el.style.overflow = overflow;
|
|
3459
|
-
el.style.overflowX = overflowX;
|
|
3460
|
-
el.style.overflowY = overflowY;
|
|
3461
|
-
}
|
|
3462
|
-
releaseBodyLock();
|
|
3463
|
-
};
|
|
3464
|
-
}, [open]);
|
|
3465
3501
|
const onKeyDown = (0, import_react11.useCallback)(
|
|
3466
3502
|
(event) => {
|
|
3467
3503
|
if (disabled) return;
|
|
@@ -3649,7 +3685,7 @@ function SelectValue({ placeholder, className, ...props }) {
|
|
|
3649
3685
|
className
|
|
3650
3686
|
),
|
|
3651
3687
|
...props,
|
|
3652
|
-
children: label || placeholder || rootPlaceholder || "Select..."
|
|
3688
|
+
children: label || placeholder || rootPlaceholder || value || "Select..."
|
|
3653
3689
|
}
|
|
3654
3690
|
);
|
|
3655
3691
|
}
|
|
@@ -4005,7 +4041,7 @@ function SelectItem({
|
|
|
4005
4041
|
const [pressed, setPressed] = (0, import_react11.useState)(false);
|
|
4006
4042
|
const isSelected = value === itemValue;
|
|
4007
4043
|
const label = (textValue || (typeof children === "string" ? children : String(itemValue))).trim();
|
|
4008
|
-
(
|
|
4044
|
+
useIsomorphicLayoutEffect(() => {
|
|
4009
4045
|
return registerItem({ value: itemValue, label, disabled, ref });
|
|
4010
4046
|
}, [registerItem, itemValue, label, disabled]);
|
|
4011
4047
|
const enabledItems = itemsRef.current.filter((item) => !item.disabled);
|
|
@@ -4123,16 +4159,17 @@ var import_clsx29 = require("clsx");
|
|
|
4123
4159
|
|
|
4124
4160
|
// src/components/Toggle/style.ts
|
|
4125
4161
|
var toggleStyles = {
|
|
4126
|
-
root: "box-border flex w-refineui-switch-width items-center rounded-refineui-x-large border-none p-refineui-switch-padding transition-colors duration-[var(--refineui-motion-duration-medium)]",
|
|
4162
|
+
root: "box-border flex w-refineui-switch-width items-center rounded-refineui-x-large border-none p-refineui-switch-padding transition-colors duration-[var(--refineui-motion-duration-medium)] focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:outline-refineui-alias-border-focus focus-visible:outline-offset-refineui-size-xxx-small",
|
|
4127
4163
|
/** OFF rest — Web Kit track fill off */
|
|
4128
|
-
unchecked: "cursor-pointer bg-refineui-alias-background-primary-active",
|
|
4164
|
+
unchecked: "cursor-pointer bg-refineui-alias-background-primary-active hover:bg-refineui-alias-background-surface-selected active:bg-refineui-alias-background-brand-subtle",
|
|
4129
4165
|
/** ON rest */
|
|
4130
|
-
checked: "cursor-pointer bg-refineui-alias-background-brand",
|
|
4166
|
+
checked: "cursor-pointer bg-refineui-alias-background-brand hover:bg-refineui-alias-background-brand-hover active:bg-refineui-alias-background-brand-active",
|
|
4131
4167
|
/** Disabled OFF — muted empty track */
|
|
4132
4168
|
disabledUnchecked: "cursor-not-allowed bg-refineui-alias-background-surface-disabled",
|
|
4133
4169
|
/** Disabled ON — muted brand so on/off stay distinguishable */
|
|
4134
4170
|
disabledChecked: "cursor-not-allowed bg-refineui-alias-background-brand-subtle",
|
|
4135
|
-
thumb: "block h-refineui-switch-thumb w-refineui-switch-thumb rounded-refineui-x-large shadow-refineui-2 transition-[
|
|
4171
|
+
thumb: "block h-refineui-switch-thumb w-refineui-switch-thumb rounded-refineui-x-large shadow-refineui-2 transition-[translate,background-color] duration-[var(--refineui-motion-duration-medium)] ease-[var(--refineui-motion-easing-ease-out)]",
|
|
4172
|
+
thumbChecked: "translate-x-refineui-switch-thumb rtl:-translate-x-refineui-switch-thumb",
|
|
4136
4173
|
thumbDefault: "bg-refineui-alias-background-primary",
|
|
4137
4174
|
/** Disabled OFF thumb — slightly darker than track */
|
|
4138
4175
|
thumbDisabledUnchecked: "bg-refineui-alias-background-brand-subtle shadow-none",
|
|
@@ -4167,7 +4204,7 @@ function Toggle({
|
|
|
4167
4204
|
},
|
|
4168
4205
|
disabled,
|
|
4169
4206
|
...props,
|
|
4170
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: (0, import_clsx29.clsx)(toggleStyles.thumb, thumbClass) })
|
|
4207
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: (0, import_clsx29.clsx)(toggleStyles.thumb, checked && toggleStyles.thumbChecked, thumbClass) })
|
|
4171
4208
|
}
|
|
4172
4209
|
);
|
|
4173
4210
|
}
|
|
@@ -4178,14 +4215,14 @@ var import_clsx30 = require("clsx");
|
|
|
4178
4215
|
// src/recipes/chip.recipe.ts
|
|
4179
4216
|
var import_tokens9 = require("@refineui/tokens");
|
|
4180
4217
|
var chipVariantClass = {
|
|
4181
|
-
default: "border-none bg-refineui-alias-background-surface-selected text-refineui-alias-foreground-brand",
|
|
4182
|
-
outline: "border border-refineui-thin border-refineui-alias-border-default box-border bg-transparent text-refineui-alias-foreground-brand",
|
|
4183
|
-
filled: "border-none bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed"
|
|
4218
|
+
default: "border-none bg-refineui-alias-background-surface-selected text-refineui-alias-foreground-brand hover:bg-refineui-alias-background-primary-hover active:bg-refineui-alias-background-primary-active",
|
|
4219
|
+
outline: "border border-refineui-thin border-refineui-alias-border-default box-border bg-transparent text-refineui-alias-foreground-brand hover:border-refineui-alias-border-hover active:border-refineui-alias-border-focus",
|
|
4220
|
+
filled: "border-none bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed hover:bg-refineui-alias-background-brand-hover active:bg-refineui-alias-background-brand-active"
|
|
4184
4221
|
};
|
|
4185
4222
|
var chipDisabledVariantClass = {
|
|
4186
|
-
default: "border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled",
|
|
4187
|
-
outline: "border border-refineui-thin border-refineui-alias-border-disabled box-border bg-transparent text-refineui-alias-foreground-disabled",
|
|
4188
|
-
filled: "border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled"
|
|
4223
|
+
default: "pointer-events-none cursor-not-allowed border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled",
|
|
4224
|
+
outline: "pointer-events-none cursor-not-allowed border border-refineui-thin border-refineui-alias-border-disabled box-border bg-transparent text-refineui-alias-foreground-disabled",
|
|
4225
|
+
filled: "pointer-events-none cursor-not-allowed border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled"
|
|
4189
4226
|
};
|
|
4190
4227
|
var chipSizeClass = {
|
|
4191
4228
|
sm: "min-h-refineui-chip-min-height-sm px-refineui-size-x-small",
|
|
@@ -4200,7 +4237,7 @@ var chipSizeIcon = {
|
|
|
4200
4237
|
};
|
|
4201
4238
|
var chipRecipe = defineRecipe({
|
|
4202
4239
|
name: "chip",
|
|
4203
|
-
base: "box-border inline-flex max-w-full items-center gap-refineui-size-xx-small rounded-refineui-medium",
|
|
4240
|
+
base: "box-border inline-flex max-w-full items-center gap-refineui-size-xx-small rounded-refineui-medium transition-[background-color,border-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
4204
4241
|
variants: {
|
|
4205
4242
|
variant: chipVariantClass,
|
|
4206
4243
|
size: chipSizeClass
|
|
@@ -4343,7 +4380,7 @@ var dialogRecipe = defineSlotRecipe({
|
|
|
4343
4380
|
slots: ["root", "scrim", "panel", "panelScrollWrap", "header", "headerMain", "title", "description"],
|
|
4344
4381
|
base: {
|
|
4345
4382
|
root: "fixed inset-0 z-refineui-messages flex items-center justify-center p-refineui-size-large",
|
|
4346
|
-
scrim: "absolute inset-0 cursor-pointer transition-opacity",
|
|
4383
|
+
scrim: "absolute inset-0 cursor-pointer transition-opacity backdrop-blur-[var(--refineui-blur-overlay-scrim)]",
|
|
4347
4384
|
panel: "relative box-border flex max-h-refineui-dialog-max-height-viewport w-full flex-col overflow-hidden rounded-refineui-xx-large bg-refineui-alias-background-primary p-refineui-size-xx-large shadow-refineui-8 outline-none",
|
|
4348
4385
|
panelScrollWrap: "flex min-h-0 min-w-0 flex-1 flex-col",
|
|
4349
4386
|
header: "flex shrink-0 items-start justify-between gap-refineui-size-x-small",
|
|
@@ -4604,7 +4641,7 @@ var import_tokens11 = require("@refineui/tokens");
|
|
|
4604
4641
|
var COMMAND_LIST_MAX_HEIGHT = `min(60vh, ${import_tokens11.foundationSizes.foundationSize3200})`;
|
|
4605
4642
|
var commandStyles = {
|
|
4606
4643
|
/** Detached layout: the search field and the results panel are separate surfaces, so the root has none. */
|
|
4607
|
-
root: "flex w-full flex-col gap-refineui-size-small text-refineui-alias-foreground-primary outline-none",
|
|
4644
|
+
root: "flex w-full flex-col gap-refineui-size-small text-refineui-alias-foreground-primary outline-none [--refineui-command-list-radius:var(--refineui-radius-rounded-x-large)] data-[size=sm]:[--refineui-command-list-radius:var(--refineui-radius-rounded-large)] data-[size=lg]:[--refineui-command-list-radius:var(--refineui-radius-rounded-xx-large)]",
|
|
4608
4645
|
rootInDialog: "min-h-0 w-full",
|
|
4609
4646
|
/** Dialog panel stays transparent — the field and results panel float on the scrim themselves. */
|
|
4610
4647
|
dialogContentPanel: {
|
|
@@ -4621,21 +4658,21 @@ var commandStyles = {
|
|
|
4621
4658
|
* Radius comes from `--refineui-command-list-radius` (per size, refineui.css) so the scrollbar inset can share it.
|
|
4622
4659
|
*/
|
|
4623
4660
|
listShell: (0, import_clsx33.clsx)(
|
|
4624
|
-
"box-border w-full overflow-hidden",
|
|
4661
|
+
"box-border w-full overflow-hidden rounded-[var(--refineui-command-list-radius)] data-[animate=true]:transition-[height] data-[animate=true]:duration-[var(--refineui-motion-duration-medium)] data-[animate=true]:ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:data-[animate=true]:transition-none",
|
|
4625
4662
|
"border-refineui-hairline border-refineui-alias-border-default",
|
|
4626
4663
|
"bg-refineui-alias-background-primary shadow-refineui-2"
|
|
4627
4664
|
),
|
|
4628
|
-
list: "h-full min-h-0 w-full",
|
|
4665
|
+
list: "h-full min-h-0 w-full [&>[data-refineui=scroll-area]]:h-full [&>[data-refineui=scroll-area]]:min-h-0 [&>[data-refineui=scroll-area]>[data-refineui=scroll-area-scrollbar][data-orientation=vertical]]:inset-y-[calc(var(--refineui-command-list-radius)/2)]",
|
|
4629
4666
|
listShellMaxHeight: {
|
|
4630
4667
|
maxHeight: COMMAND_LIST_MAX_HEIGHT
|
|
4631
4668
|
},
|
|
4632
4669
|
listViewport: "outline-none",
|
|
4633
4670
|
listInner: "relative flex flex-col gap-refineui-size-xxx-small px-refineui-size-medium py-refineui-size-small",
|
|
4634
4671
|
/** Sliding highlight behind the selected item; geometry is measured, so physical `left`/`top` (inline) are intentional. */
|
|
4635
|
-
indicator: "pointer-events-none absolute rounded-refineui-large bg-refineui-alias-background-surface-hover",
|
|
4672
|
+
indicator: "pointer-events-none absolute rounded-refineui-large bg-refineui-alias-background-surface-hover opacity-0 transition-none data-[ready=true]:opacity-100 data-[animate=true]:transition-[top,left,height,width,opacity,background-color] data-[animate=true]:duration-[var(--refineui-motion-duration-medium)] data-[animate=true]:ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:transition-none",
|
|
4636
4673
|
empty: (0, import_clsx33.clsx)(
|
|
4637
4674
|
componentTextClass(componentTypographyTokens.command.empty),
|
|
4638
|
-
"px-refineui-size-medium py-refineui-size-xx-large text-center text-refineui-alias-foreground-tertiary"
|
|
4675
|
+
"px-refineui-size-medium py-refineui-size-xx-large text-center text-refineui-alias-foreground-tertiary [animation:refineui-fade-enter_var(--refineui-motion-duration-normal)_var(--refineui-motion-easing-standard)] motion-reduce:animation-none"
|
|
4639
4676
|
),
|
|
4640
4677
|
/** `overflow-clip`, not hidden: a hidden group would become the scroll container the edge effect tracks. */
|
|
4641
4678
|
group: "flex flex-col gap-refineui-size-xxx-small overflow-clip",
|
|
@@ -4647,7 +4684,7 @@ var commandStyles = {
|
|
|
4647
4684
|
separatorLine: "h-px w-full shrink-0 bg-refineui-alias-border-default",
|
|
4648
4685
|
itemBase: (0, import_clsx33.clsx)(
|
|
4649
4686
|
"relative flex w-full items-center gap-refineui-size-x-small rounded-refineui-large border-none bg-transparent",
|
|
4650
|
-
"px-refineui-size-x-small text-start outline-none"
|
|
4687
|
+
"px-refineui-size-x-small text-start outline-none transition-[background-color,transform] duration-[var(--refineui-motion-duration-fast)] hover:bg-refineui-alias-background-surface-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-surface-active active:text-refineui-alias-foreground-primary active:scale-[var(--refineui-motion-scale-press)] data-[selected=true]:bg-refineui-alias-background-surface-hover data-[selected=true]:text-refineui-alias-foreground-primary-hover data-[state=hover]:bg-refineui-alias-background-surface-hover data-[state=hover]:text-refineui-alias-foreground-primary-hover data-[state=pressed]:bg-refineui-alias-background-surface-active data-[state=pressed]:text-refineui-alias-foreground-primary data-[state=active]:bg-refineui-alias-background-surface-hover data-[state=active]:text-refineui-alias-foreground-primary data-[state=disabled]:bg-transparent data-[state=disabled]:text-refineui-alias-foreground-disabled"
|
|
4651
4688
|
),
|
|
4652
4689
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
4653
4690
|
itemEnabled: "cursor-pointer text-refineui-alias-foreground-primary",
|
|
@@ -5754,7 +5791,7 @@ function AvatarGroup({
|
|
|
5754
5791
|
"data-avatar-stack-size": normalizedSize,
|
|
5755
5792
|
className: (0, import_clsx36.clsx)(
|
|
5756
5793
|
avatarStyles.groupRoot,
|
|
5757
|
-
layout === "stack" ? "gap-0" : avatarSpreadGap[normalizedSize],
|
|
5794
|
+
layout === "stack" ? "gap-0 pe-[var(--avatar-stack-overlap)]" : avatarSpreadGap[normalizedSize],
|
|
5758
5795
|
className
|
|
5759
5796
|
),
|
|
5760
5797
|
style: {
|
|
@@ -5765,9 +5802,9 @@ function AvatarGroup({
|
|
|
5765
5802
|
const isCount = (0, import_react17.isValidElement)(child) && child.type === AvatarGroupCount;
|
|
5766
5803
|
const z = layout === "stack" ? index : void 0;
|
|
5767
5804
|
if (isCount) {
|
|
5768
|
-
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: avatarStyles.groupCountWrap, style: { zIndex: z }, children: child }, `count-${index}`);
|
|
5805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx36.clsx)(avatarStyles.groupCountWrap, layout === "stack" && index > 0 && "-ms-[var(--avatar-stack-overlap)]"), style: { zIndex: z }, children: child }, `count-${index}`);
|
|
5769
5806
|
}
|
|
5770
|
-
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: avatarStyles.groupAvatarWrap, style: { zIndex: z }, children: child }, `avatar-${index}`);
|
|
5807
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx36.clsx)(avatarStyles.groupAvatarWrap, layout === "stack" && index > 0 && "-ms-[var(--avatar-stack-overlap)]"), style: { zIndex: z }, children: child }, `avatar-${index}`);
|
|
5771
5808
|
})
|
|
5772
5809
|
}
|
|
5773
5810
|
) });
|
|
@@ -5838,14 +5875,23 @@ function Avatars({
|
|
|
5838
5875
|
...style
|
|
5839
5876
|
},
|
|
5840
5877
|
children: [
|
|
5841
|
-
display.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5878
|
+
display.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5879
|
+
"div",
|
|
5880
|
+
{
|
|
5881
|
+
className: (0, import_clsx37.clsx)(avatarsStyles.avatarWrap, isStack && i > 0 && "-ms-[var(--avatar-stack-overlap)]"),
|
|
5882
|
+
style: isStack ? { zIndex: i } : void 0,
|
|
5883
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Avatar, { src: a.src, alt: a.alt, size })
|
|
5884
|
+
},
|
|
5885
|
+
i
|
|
5886
|
+
)),
|
|
5842
5887
|
remainder > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
5843
5888
|
"div",
|
|
5844
5889
|
{
|
|
5845
5890
|
className: (0, import_clsx37.clsx)(
|
|
5846
5891
|
avatarsStyles.overflowCount,
|
|
5847
5892
|
avatarsCountSizeBySize[normalizedSize],
|
|
5848
|
-
avatarsCountTypoBySize[normalizedSize]
|
|
5893
|
+
avatarsCountTypoBySize[normalizedSize],
|
|
5894
|
+
isStack && display.length > 0 && "-ms-[var(--avatar-stack-overlap)]"
|
|
5849
5895
|
),
|
|
5850
5896
|
style: isStack ? { zIndex: display.length } : void 0,
|
|
5851
5897
|
children: [
|
|
@@ -5926,7 +5972,7 @@ var alertRecipe = defineSlotRecipe({
|
|
|
5926
5972
|
"close"
|
|
5927
5973
|
],
|
|
5928
5974
|
base: {
|
|
5929
|
-
root: "box-border flex items-start border-refineui-thin border-refineui-alias-border-default px-refineui-size-large py-refineui-size-medium",
|
|
5975
|
+
root: "box-border flex items-start rounded-[var(--refineui-radius-rounded-x-large)] border-refineui-thin border-refineui-alias-border-default px-refineui-size-large py-refineui-size-medium",
|
|
5930
5976
|
icon: "relative box-border flex size-refineui-size-xx-large min-w-refineui-size-xx-large shrink-0 items-center justify-center overflow-hidden rounded-refineui-circle",
|
|
5931
5977
|
content: "flex min-w-0 flex-1 flex-col gap-refineui-size-medium",
|
|
5932
5978
|
row: "flex w-full flex-row items-start gap-refineui-size-medium",
|
|
@@ -6465,7 +6511,7 @@ var import_clsx44 = require("clsx");
|
|
|
6465
6511
|
|
|
6466
6512
|
// src/components/Spinner/style.ts
|
|
6467
6513
|
var spinnerStyles = {
|
|
6468
|
-
ringBase: "box-border rounded-refineui-circle border-solid border-refineui-alias-background-brand-subtle border-t-refineui-alias-background-brand",
|
|
6514
|
+
ringBase: "box-border shrink-0 animate-spin rounded-refineui-circle border-solid border-refineui-alias-background-brand-subtle border-t-refineui-alias-background-brand [animation-duration:var(--refineui-motion-duration-spinner)] [animation-timing-function:var(--refineui-motion-easing-linear)]",
|
|
6469
6515
|
label: "text-refineui-alias-foreground-primary",
|
|
6470
6516
|
withLabel: "inline-flex items-center justify-center gap-refineui-size-x-small"
|
|
6471
6517
|
};
|
|
@@ -6542,23 +6588,23 @@ var tabsStyles = {
|
|
|
6542
6588
|
list: (0, import_clsx45.clsx)(
|
|
6543
6589
|
"relative flex w-full min-w-0 flex-nowrap items-stretch overflow-x-auto",
|
|
6544
6590
|
"after:pointer-events-none after:absolute after:inset-inline-0 after:bottom-0",
|
|
6545
|
-
"after:h-(--refineui-stroke-width-thin) after:bg-refineui-alias-border-default"
|
|
6591
|
+
"after:h-(--refineui-stroke-width-thin) after:bg-refineui-alias-border-default data-[ready=false]:[&_[data-refineui=tab][data-selected=true]]:after:block data-[ready=false]:[&_[data-refineui=tab][data-selected=true]]:after:h-(--refineui-stroke-width-thick) data-[ready=false]:[&_[data-refineui=tab][data-selected=true]]:after:bg-refineui-alias-background-brand"
|
|
6546
6592
|
),
|
|
6547
6593
|
indicator: (0, import_clsx45.clsx)(
|
|
6548
6594
|
"pointer-events-none absolute bottom-0 start-0 z-[1] block",
|
|
6549
6595
|
"h-(--refineui-stroke-width-thick) bg-refineui-alias-background-brand",
|
|
6550
|
-
"will-change-[transform,width]"
|
|
6596
|
+
"will-change-[transform,width] opacity-0 data-[ready=true]:opacity-100 transition-none data-[animate=true]:transition-[transform,width] data-[animate=true]:duration-[var(--refineui-motion-duration-medium)] data-[animate=true]:ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:transition-none"
|
|
6551
6597
|
),
|
|
6552
6598
|
trigger: (0, import_clsx45.clsx)(
|
|
6553
6599
|
componentTextClass(componentTypographyTokens.tabs),
|
|
6554
6600
|
"relative z-[1] box-border inline-flex min-h-0 min-w-0 shrink-0 items-center justify-center",
|
|
6555
6601
|
"gap-refineui-size-x-small border-none bg-transparent",
|
|
6556
6602
|
"px-refineui-size-medium py-refineui-size-x-small outline-none",
|
|
6557
|
-
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
6603
|
+
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] active:transform-none"
|
|
6558
6604
|
),
|
|
6559
6605
|
triggerDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
6560
|
-
triggerEnabled: "cursor-pointer",
|
|
6561
|
-
triggerSelectedEnabled: "text-refineui-alias-foreground-primary",
|
|
6606
|
+
triggerEnabled: "cursor-pointer hover:text-refineui-alias-foreground-primary-hover",
|
|
6607
|
+
triggerSelectedEnabled: "text-refineui-alias-foreground-primary hover:text-refineui-alias-foreground-primary",
|
|
6562
6608
|
triggerSelectedDisabled: "text-refineui-alias-foreground-disabled",
|
|
6563
6609
|
triggerUnselected: "text-refineui-alias-foreground-tertiary"
|
|
6564
6610
|
};
|
|
@@ -6672,6 +6718,7 @@ function TabsList({ className, children, ...props }) {
|
|
|
6672
6718
|
{
|
|
6673
6719
|
ref: tabListRef,
|
|
6674
6720
|
"data-refineui": "tabs-list",
|
|
6721
|
+
"data-ready": indicator.ready ? "true" : "false",
|
|
6675
6722
|
role: "tablist",
|
|
6676
6723
|
"aria-orientation": "horizontal",
|
|
6677
6724
|
className: (0, import_clsx46.clsx)(tabsStyles.list, className),
|
|
@@ -6821,19 +6868,19 @@ var segmentedControlRecipe = defineSlotRecipe({
|
|
|
6821
6868
|
* so at narrow widths `overflow-hidden` would make trailing options
|
|
6822
6869
|
* unreachable. Scrollbar chrome is suppressed in `refineui.css`.
|
|
6823
6870
|
*/
|
|
6824
|
-
"overflow-x-auto overflow-y-hidden rounded-refineui-circle border-refineui-thin border-refineui-alias-border-default",
|
|
6825
|
-
"bg-refineui-alias-background-brand-subtle"
|
|
6871
|
+
"overflow-x-auto overflow-y-hidden rounded-refineui-circle border-refineui-thin border-refineui-alias-border-default [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
6872
|
+
"bg-refineui-alias-background-brand-subtle data-[ready=false]:[&_[data-refineui=segmented-control-item][data-selected=true]]:bg-refineui-alias-background-brand data-[ready=false]:[&_[data-refineui=segmented-control-item][data-selected=true]]:shadow-refineui-2"
|
|
6826
6873
|
),
|
|
6827
6874
|
indicator: (0, import_clsx47.clsx)(
|
|
6828
|
-
"pointer-events-none absolute inset-y-0 start-0 z-0 block h-full",
|
|
6875
|
+
"pointer-events-none absolute inset-y-0 start-0 z-0 block h-full opacity-0 data-[ready=true]:opacity-100",
|
|
6829
6876
|
"rounded-refineui-circle bg-refineui-alias-background-brand shadow-refineui-2",
|
|
6830
|
-
"will-change-[transform,width]"
|
|
6877
|
+
"will-change-[transform,width] transition-none data-[animate=true]:transition-[transform,width] data-[animate=true]:duration-[var(--refineui-motion-duration-medium)] data-[animate=true]:ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:transition-none"
|
|
6831
6878
|
),
|
|
6832
6879
|
item: (0, import_clsx47.clsx)(
|
|
6833
6880
|
componentTextClass(componentTypographyTokens.segmentedControl),
|
|
6834
6881
|
"relative z-[1] box-border inline-flex min-h-0 min-w-0 shrink-0 items-center justify-center gap-refineui-size-xx-small",
|
|
6835
6882
|
"rounded-refineui-circle border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small outline-none",
|
|
6836
|
-
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
6883
|
+
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] active:transform-none"
|
|
6837
6884
|
)
|
|
6838
6885
|
}
|
|
6839
6886
|
});
|
|
@@ -6842,7 +6889,7 @@ var segmentedControlStyles = {
|
|
|
6842
6889
|
indicator: segmentedControlRecipe.base.indicator,
|
|
6843
6890
|
item: segmentedControlRecipe.base.item,
|
|
6844
6891
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
6845
|
-
itemEnabled: "cursor-pointer",
|
|
6892
|
+
itemEnabled: "cursor-pointer hover:text-refineui-alias-foreground-primary",
|
|
6846
6893
|
itemSelectedEnabled: "text-refineui-alias-foreground-on-brand",
|
|
6847
6894
|
itemSelectedDisabled: "text-refineui-alias-foreground-disabled",
|
|
6848
6895
|
itemUnselected: "text-refineui-alias-foreground-secondary"
|
|
@@ -6950,6 +6997,7 @@ function SegmentedControl({
|
|
|
6950
6997
|
{
|
|
6951
6998
|
ref: groupRef,
|
|
6952
6999
|
"data-refineui": "segmented-control",
|
|
7000
|
+
"data-ready": indicator.ready ? "true" : "false",
|
|
6953
7001
|
role: "radiogroup",
|
|
6954
7002
|
"aria-orientation": "horizontal",
|
|
6955
7003
|
className: (0, import_clsx48.clsx)(segmentedControlStyles.root, className),
|
|
@@ -7072,14 +7120,14 @@ var tableStyles = {
|
|
|
7072
7120
|
"relative box-border w-full min-w-0",
|
|
7073
7121
|
"px-refineui-size-small pb-refineui-size-small"
|
|
7074
7122
|
),
|
|
7075
|
-
table: "w-full
|
|
7076
|
-
header: "",
|
|
7123
|
+
table: "w-full border-separate border-spacing-y-refineui-size-xx-small caption-bottom text-start",
|
|
7124
|
+
header: "[&_th]:bg-refineui-alias-background-surface-active [&_th]:shadow-[inset_0_calc(-1*var(--refineui-stroke-width-thin))_0_0_var(--refineui-color-alias-border-subtle)] [&_th:first-child]:rounded-s-refineui-large [&_th:last-child]:rounded-e-refineui-large",
|
|
7077
7125
|
body: "",
|
|
7078
|
-
footer: "",
|
|
7126
|
+
footer: "[&_td]:bg-refineui-alias-background-surface-active [&_td]:font-medium [&_td]:text-refineui-alias-foreground-secondary [&_td:first-child]:rounded-s-refineui-large [&_td:last-child]:rounded-e-refineui-large",
|
|
7079
7127
|
row: (0, import_clsx49.clsx)(
|
|
7080
7128
|
"transition-[background-color,box-shadow,border-radius]",
|
|
7081
7129
|
"duration-[var(--refineui-motion-duration-fast)]",
|
|
7082
|
-
"ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7130
|
+
"ease-[var(--refineui-motion-easing-ease-out)] hover:[&>td]:bg-refineui-alias-background-surface-hover hover:[&>td:first-child]:rounded-s-refineui-large hover:[&>td:last-child]:rounded-e-refineui-large data-[state=selected]:[&>td]:bg-refineui-alias-background-surface-selected data-[state=selected]:[&>td:first-child]:rounded-s-refineui-large data-[state=selected]:[&>td:last-child]:rounded-e-refineui-large"
|
|
7083
7131
|
),
|
|
7084
7132
|
head: (0, import_clsx49.clsx)(
|
|
7085
7133
|
componentTextClass(componentTypographyTokens.table.head),
|
|
@@ -7165,7 +7213,7 @@ var accordionRecipe = defineSlotRecipe({
|
|
|
7165
7213
|
base: {
|
|
7166
7214
|
root: "flex flex-col gap-refineui-size-x-small",
|
|
7167
7215
|
item: "overflow-hidden rounded-refineui-x-large transition-[background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
7168
|
-
trigger: "flex min-h-refineui-control-touch-min w-full cursor-pointer items-center justify-between gap-refineui-size-medium rounded-refineui-x-large border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small text-start text-refineui-alias-foreground-primary outline-none transition-[background-color,transform] duration-[var(--refineui-motion-duration-fast)]",
|
|
7216
|
+
trigger: "flex min-h-refineui-control-touch-min w-full cursor-pointer items-center justify-between gap-refineui-size-medium rounded-refineui-x-large border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small text-start text-refineui-alias-foreground-primary outline-none transition-[background-color,transform] duration-[var(--refineui-motion-duration-fast)] active:bg-refineui-alias-background-primary-active active:scale-[var(--refineui-motion-scale-press)]",
|
|
7169
7217
|
triggerRow: "flex min-w-0 flex-1 items-center gap-refineui-size-medium",
|
|
7170
7218
|
chevron: "shrink-0 transition-transform duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]",
|
|
7171
7219
|
panel: "min-h-0 overflow-hidden",
|
|
@@ -7442,13 +7490,13 @@ var breadcrumbStyles = {
|
|
|
7442
7490
|
root: "py-refineui-size-x-small",
|
|
7443
7491
|
list: "m-0 flex flex-wrap list-none items-center gap-refineui-size-medium p-0",
|
|
7444
7492
|
item: "inline-flex items-center",
|
|
7445
|
-
link: "box-border inline-flex min-h-refineui-button-min-height-sm items-center justify-center rounded-refineui-large px-refineui-size-medium py-refineui-size-x-small text-refineui-alias-foreground-tertiary no-underline outline-none transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
7493
|
+
link: "box-border inline-flex min-h-refineui-button-min-height-sm items-center justify-center rounded-refineui-large px-refineui-size-medium py-refineui-size-x-small text-refineui-alias-foreground-tertiary no-underline outline-none transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]",
|
|
7446
7494
|
page: "inline-flex items-center px-refineui-size-medium py-refineui-size-x-small font-medium text-refineui-alias-foreground-primary",
|
|
7447
7495
|
separator: "inline-flex shrink-0 items-center",
|
|
7448
7496
|
separatorText: "inline-flex items-center text-refineui-alias-foreground-tertiary select-none",
|
|
7449
7497
|
ellipsis: `${ellipsisChip} text-refineui-alias-foreground-tertiary`,
|
|
7450
7498
|
/** Color only — size/layout come from Button `layout="icon" size="sm"`. */
|
|
7451
|
-
ellipsisTrigger: "text-refineui-alias-foreground-tertiary"
|
|
7499
|
+
ellipsisTrigger: "text-refineui-alias-foreground-tertiary hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]"
|
|
7452
7500
|
};
|
|
7453
7501
|
|
|
7454
7502
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
@@ -7592,7 +7640,7 @@ var footerStyles = {
|
|
|
7592
7640
|
"m-0 text-refineui-alias-foreground-tertiary"
|
|
7593
7641
|
),
|
|
7594
7642
|
nav: (0, import_clsx56.clsx)(
|
|
7595
|
-
"grid w-full items-start",
|
|
7643
|
+
"grid w-full grid-cols-[repeat(auto-fit,minmax(var(--refineui-size-foundation-size-2000),1fr))] items-start",
|
|
7596
7644
|
"gap-x-refineui-size-xxx-large gap-y-refineui-size-xx-large"
|
|
7597
7645
|
),
|
|
7598
7646
|
group: "flex min-w-0 flex-col gap-refineui-size-large",
|
|
@@ -7604,7 +7652,7 @@ var footerStyles = {
|
|
|
7604
7652
|
componentTextClass(componentTypographyTokens.footer.link),
|
|
7605
7653
|
/** `min-h` carries the WCAG 2.2 Target Size (Minimum) 24px floor — the 20px line box alone is under it. */
|
|
7606
7654
|
"box-border inline-flex w-fit min-h-refineui-foundation-size-240 cursor-pointer items-center",
|
|
7607
|
-
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
7655
|
+
"text-refineui-alias-foreground-tertiary no-underline outline-none hover:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)] aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:!text-refineui-alias-foreground-disabled",
|
|
7608
7656
|
"transition-[color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7609
7657
|
),
|
|
7610
7658
|
meta: (0, import_clsx56.clsx)(
|
|
@@ -7613,11 +7661,15 @@ var footerStyles = {
|
|
|
7613
7661
|
"md:grid-cols-[1fr_auto_1fr] md:justify-items-stretch md:gap-refineui-size-x-large"
|
|
7614
7662
|
),
|
|
7615
7663
|
metaEnd: "flex shrink-0 items-center md:col-start-3 md:justify-self-end",
|
|
7616
|
-
locale:
|
|
7664
|
+
locale: (0, import_clsx56.clsx)(
|
|
7665
|
+
"flex shrink-0 items-center",
|
|
7666
|
+
"[&_[data-refineui-select-trigger-value]]:inline-flex [&_[data-refineui-select-trigger-value]]:flex-none [&_[data-refineui-select-trigger-value]]:items-center [&_[data-refineui-select-trigger-value]]:gap-refineui-size-xx-small",
|
|
7667
|
+
"[&_[data-refineui=select-trigger]]:hover:border-refineui-alias-border-strong [&_[data-refineui=select-trigger]]:active:border-refineui-alias-border-strong [&_[data-refineui=select-trigger][data-state=open]]:border-refineui-alias-border-strong"
|
|
7668
|
+
),
|
|
7617
7669
|
localeLink: (0, import_clsx56.clsx)(
|
|
7618
7670
|
componentTextClass(componentTypographyTokens.footer.copyright),
|
|
7619
7671
|
"box-border inline-flex w-fit cursor-pointer items-center",
|
|
7620
|
-
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
7672
|
+
"text-refineui-alias-foreground-tertiary no-underline outline-none hover:text-refineui-alias-foreground-primary aria-[current]:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)] aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:!text-refineui-alias-foreground-disabled",
|
|
7621
7673
|
"transition-[color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7622
7674
|
),
|
|
7623
7675
|
/** Select trigger chrome — Button `outline` / `sm` recipe (plain Select). */
|
|
@@ -7638,7 +7690,7 @@ var footerStyles = {
|
|
|
7638
7690
|
/** Box is the 24px tap target; the glyph inside stays 16px (see `refineui.css`). */
|
|
7639
7691
|
socialLink: (0, import_clsx56.clsx)(
|
|
7640
7692
|
"box-border inline-flex size-refineui-foundation-size-240 shrink-0 cursor-pointer items-center justify-center",
|
|
7641
|
-
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
7693
|
+
"text-refineui-alias-foreground-tertiary no-underline outline-none hover:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)] aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:!text-refineui-alias-foreground-disabled [&_svg]:block [&_svg]:size-refineui-foundation-size-160",
|
|
7642
7694
|
"transition-[color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7643
7695
|
)
|
|
7644
7696
|
};
|
|
@@ -7820,7 +7872,7 @@ var calendarStyles = {
|
|
|
7820
7872
|
grid7: "[grid-template-columns:repeat(7,var(--refineui-size-calendar-day-size))]",
|
|
7821
7873
|
dayBase: (0, import_clsx58.clsx)(
|
|
7822
7874
|
componentTextClass(componentTypographyTokens.calendar.day),
|
|
7823
|
-
"box-border inline-flex size-refineui-calendar-day-size min-h-refineui-calendar-day-size min-w-refineui-calendar-day-size cursor-pointer items-center justify-center border-none p-0"
|
|
7875
|
+
"box-border inline-flex size-refineui-calendar-day-size min-h-refineui-calendar-day-size min-w-refineui-calendar-day-size cursor-pointer items-center justify-center border-none p-0 hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary active:scale-[var(--refineui-motion-scale-press)] disabled:cursor-not-allowed disabled:hover:bg-transparent disabled:hover:text-refineui-alias-foreground-disabled data-[inactive=true]:cursor-default data-[inactive=true]:hover:bg-transparent data-[inactive=true]:hover:text-refineui-alias-foreground-disabled"
|
|
7824
7876
|
),
|
|
7825
7877
|
daySelected: "rounded-refineui-large bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed",
|
|
7826
7878
|
dayRangeMiddle: "rounded-refineui-none bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
@@ -8627,7 +8679,7 @@ var drawerStyles = {
|
|
|
8627
8679
|
inlineRoot: "relative z-auto flex",
|
|
8628
8680
|
rootLeft: "justify-start",
|
|
8629
8681
|
rootRight: "justify-end",
|
|
8630
|
-
scrim: "absolute inset-0 cursor-pointer transition-opacity",
|
|
8682
|
+
scrim: "absolute inset-0 cursor-pointer transition-opacity backdrop-blur-[var(--refineui-blur-overlay-scrim)]",
|
|
8631
8683
|
panel: "relative box-border flex h-full flex-col overflow-hidden bg-refineui-alias-background-primary outline-none",
|
|
8632
8684
|
panelOverlay: "shadow-refineui-16",
|
|
8633
8685
|
panelInline: "shadow-none",
|
|
@@ -8973,13 +9025,16 @@ var import_color8 = require("@refineui/utilities/color");
|
|
|
8973
9025
|
|
|
8974
9026
|
// src/components/Dropdown/style.ts
|
|
8975
9027
|
var import_clsx69 = require("clsx");
|
|
8976
|
-
var dropdownPanelChrome = "box-border flex w-refineui-dropdown-menu-width min-w-refineui-dropdown-menu-width flex-col overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default shadow-refineui-2 outline-none";
|
|
9028
|
+
var dropdownPanelChrome = "box-border flex w-refineui-dropdown-menu-width min-w-refineui-dropdown-menu-width flex-col overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default bg-refineui-alias-surface-frosted shadow-refineui-2 outline-none backdrop-blur-refineui-surface-frost";
|
|
8977
9029
|
var dropdownStyles = {
|
|
8978
9030
|
menuShell: (0, import_clsx69.clsx)(
|
|
8979
9031
|
dropdownPanelChrome,
|
|
8980
9032
|
"max-w-[min(100vw-16px,calc(100vw-2rem))]"
|
|
8981
9033
|
),
|
|
8982
|
-
submenuShell:
|
|
9034
|
+
submenuShell: (0, import_clsx69.clsx)(
|
|
9035
|
+
dropdownPanelChrome,
|
|
9036
|
+
"data-[state=open]:[animation:refineui-fade-enter_var(--refineui-motion-duration-fast)_var(--refineui-motion-easing-standard)] motion-reduce:animation-none"
|
|
9037
|
+
),
|
|
8983
9038
|
menuViewport: "box-border flex flex-col gap-px p-refineui-size-xx-small",
|
|
8984
9039
|
label: (0, import_clsx69.clsx)(
|
|
8985
9040
|
componentTextClass(componentTypographyTokens.dropdown.label),
|
|
@@ -8987,7 +9042,7 @@ var dropdownStyles = {
|
|
|
8987
9042
|
),
|
|
8988
9043
|
item: (0, import_clsx69.clsx)(
|
|
8989
9044
|
componentTextClass(componentTypographyTokens.dropdown.item),
|
|
8990
|
-
"flex w-full cursor-pointer items-center justify-between gap-refineui-size-x-small rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start text-refineui-alias-foreground-primary outline-none disabled:cursor-not-allowed disabled:text-refineui-alias-foreground-disabled"
|
|
9045
|
+
"flex w-full cursor-pointer items-center justify-between gap-refineui-size-x-small rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start text-refineui-alias-foreground-primary outline-none transition-[background-color,transform] duration-[var(--refineui-motion-duration-fast)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary data-[selected=true]:bg-refineui-alias-background-primary-hover data-[selected=true]:text-refineui-alias-foreground-primary data-[state=selected]:bg-refineui-alias-background-primary-hover data-[state=selected]:text-refineui-alias-foreground-primary data-[state=pressed]:bg-refineui-alias-background-primary-active data-[state=pressed]:text-refineui-alias-foreground-primary disabled:cursor-not-allowed disabled:text-refineui-alias-foreground-disabled"
|
|
8991
9046
|
),
|
|
8992
9047
|
shortcut: (0, import_clsx69.clsx)(
|
|
8993
9048
|
componentTextClass(componentTypographyTokens.dropdown.shortcut),
|
|
@@ -9806,10 +9861,10 @@ var import_tokens20 = require("@refineui/tokens");
|
|
|
9806
9861
|
|
|
9807
9862
|
// src/components/Link/style.ts
|
|
9808
9863
|
var linkStyles = {
|
|
9809
|
-
base: componentTextClass(componentTypographyTokens.link),
|
|
9864
|
+
base: `${componentTextClass(componentTypographyTokens.link)} text-refineui-alias-foreground-link no-underline transition-[color,text-decoration-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] visited:text-refineui-alias-foreground-link-visited hover:text-refineui-alias-foreground-link-hover hover:underline hover:decoration-current hover:underline-offset-refineui-size-xx-small focus-visible:text-refineui-alias-foreground-link-active focus-visible:underline focus-visible:decoration-current focus-visible:underline-offset-refineui-size-xx-small active:text-refineui-alias-foreground-link-visited active:underline active:decoration-current active:underline-offset-refineui-size-xx-small focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]`,
|
|
9810
9865
|
withIcon: "inline-flex items-center gap-refineui-size-xx-small",
|
|
9811
9866
|
inline: "inline",
|
|
9812
|
-
disabled: "cursor-not-allowed"
|
|
9867
|
+
disabled: "pointer-events-none cursor-not-allowed !text-refineui-alias-foreground-disabled !no-underline"
|
|
9813
9868
|
};
|
|
9814
9869
|
|
|
9815
9870
|
// src/components/Link/Link.tsx
|
|
@@ -9856,18 +9911,18 @@ var import_react37 = require("@refineui/utilities/react");
|
|
|
9856
9911
|
|
|
9857
9912
|
// src/components/Menu/style.ts
|
|
9858
9913
|
var import_clsx75 = require("clsx");
|
|
9859
|
-
var menuPanelChrome = "box-border flex flex-col gap-px overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default p-refineui-size-xx-small shadow-refineui-2";
|
|
9914
|
+
var menuPanelChrome = "box-border flex flex-col gap-px overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default bg-refineui-alias-surface-frosted p-refineui-size-xx-small shadow-refineui-2 backdrop-blur-refineui-surface-frost";
|
|
9860
9915
|
var menuStyles = {
|
|
9861
9916
|
/** Panel chrome — Web Kit Menu `633:4268` (fill/blur: `surfaceFrosted` + `surfaceFrost`) */
|
|
9862
9917
|
panel: (0, import_clsx75.clsx)(menuPanelChrome, "w-refineui-menu-panel-width"),
|
|
9863
9918
|
root: "relative inline-flex items-center leading-none",
|
|
9864
9919
|
triggerFallback: "cursor-pointer border-none bg-transparent p-0 font-inherit text-inherit",
|
|
9865
9920
|
/** Portal shell — position/z-index from `MenuPopover` fixed style */
|
|
9866
|
-
popover: "z-refineui-messages",
|
|
9921
|
+
popover: "z-refineui-messages data-[state=open]:[animation:refineui-fade-enter_var(--refineui-motion-duration-normal)_var(--refineui-motion-easing-standard)] data-[state=closed]:pointer-events-none data-[state=closed]:[animation:refineui-fade-exit_var(--refineui-motion-duration-normal)_var(--refineui-motion-easing-standard)] motion-reduce:animation-none",
|
|
9867
9922
|
list: (0, import_clsx75.clsx)(menuPanelChrome, "w-full min-w-refineui-menu-panel-width outline-none"),
|
|
9868
9923
|
subPanel: (0, import_clsx75.clsx)(
|
|
9869
9924
|
menuPanelChrome,
|
|
9870
|
-
"w-refineui-menu-panel-width min-w-refineui-menu-panel-width outline-none"
|
|
9925
|
+
"w-refineui-menu-panel-width min-w-refineui-menu-panel-width outline-none data-[state=open]:[animation:refineui-fade-enter_var(--refineui-motion-duration-fast)_var(--refineui-motion-easing-standard)] motion-reduce:animation-none"
|
|
9871
9926
|
),
|
|
9872
9927
|
/** Vertical density matches Sidebar `groupLabel` (`py-xxx-small`). */
|
|
9873
9928
|
section: "flex w-full items-center overflow-hidden px-refineui-size-x-small py-refineui-size-xxx-small",
|
|
@@ -9877,7 +9932,7 @@ var menuStyles = {
|
|
|
9877
9932
|
),
|
|
9878
9933
|
dividerWrap: "flex w-full items-center px-refineui-size-x-small py-refineui-size-xxx-small",
|
|
9879
9934
|
dividerLine: "h-px w-full shrink-0 bg-refineui-alias-border-default",
|
|
9880
|
-
itemBase: "block w-full rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start outline-none",
|
|
9935
|
+
itemBase: "block w-full rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start outline-none transition-[background-color,transform] duration-[var(--refineui-motion-duration-fast)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary active:scale-[var(--refineui-motion-scale-press)] data-[state=hover]:bg-refineui-alias-background-primary-hover data-[state=hover]:text-refineui-alias-foreground-primary-hover data-[state=pressed]:bg-refineui-alias-background-primary-active data-[state=pressed]:text-refineui-alias-foreground-primary data-[state=active]:bg-refineui-alias-background-primary-hover data-[state=active]:text-refineui-alias-foreground-primary data-[state=disabled]:bg-transparent data-[state=disabled]:text-refineui-alias-foreground-disabled",
|
|
9881
9936
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
9882
9937
|
itemEnabled: "cursor-pointer text-refineui-alias-foreground-primary",
|
|
9883
9938
|
row: "flex items-center gap-refineui-size-x-small",
|
|
@@ -10469,7 +10524,7 @@ var topLevelItem = (0, import_clsx77.clsx)(
|
|
|
10469
10524
|
componentTextClass(componentTypographyTokens.navigationMenu.trigger),
|
|
10470
10525
|
"box-border inline-flex h-refineui-button-min-height-md min-w-refineui-navigation-menu-item-min-width cursor-pointer items-center justify-center gap-refineui-size-x-small",
|
|
10471
10526
|
"rounded-refineui-x-large border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small",
|
|
10472
|
-
"text-refineui-alias-foreground-
|
|
10527
|
+
"text-refineui-alias-foreground-primary outline-none leading-none",
|
|
10473
10528
|
"transition-[color,background-color,box-shadow] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
10474
10529
|
);
|
|
10475
10530
|
var chevron = (0, import_clsx77.clsx)(
|
|
@@ -10479,22 +10534,52 @@ var navigationMenuStyles = {
|
|
|
10479
10534
|
root: "relative isolate z-refineui-messages flex w-full max-w-max items-center",
|
|
10480
10535
|
list: "relative m-0 flex list-none flex-wrap items-center gap-refineui-size-xxx-small p-0",
|
|
10481
10536
|
item: "relative inline-flex items-center",
|
|
10482
|
-
trigger: (0, import_clsx77.clsx)(topLevelItem, "m-0 appearance-none font-inherit"),
|
|
10537
|
+
trigger: (0, import_clsx77.clsx)(topLevelItem, "m-0 appearance-none font-inherit hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]"),
|
|
10483
10538
|
triggerOpen: "bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
10484
10539
|
triggerDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
10485
10540
|
chevron,
|
|
10486
10541
|
chevronOpen: "rotate-180",
|
|
10487
10542
|
content: (0, import_clsx77.clsx)(
|
|
10488
|
-
|
|
10489
|
-
"
|
|
10490
|
-
|
|
10491
|
-
|
|
10543
|
+
"box-border outline-none",
|
|
10544
|
+
"transition-opacity duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
10545
|
+
),
|
|
10546
|
+
/** Default compact panel, anchored to the triggering navigation item. */
|
|
10547
|
+
contentDropdown: "min-w-refineui-dropdown-menu-width",
|
|
10548
|
+
/**
|
|
10549
|
+
* Wide, viewport-aware panel. Width and inner composition stay with the
|
|
10550
|
+
* consuming navigation so this remains a content-agnostic primitive.
|
|
10551
|
+
*/
|
|
10552
|
+
contentFloating: (0, import_clsx77.clsx)(
|
|
10553
|
+
"max-w-full origin-top will-change-[opacity,translate]",
|
|
10554
|
+
"transition-[opacity,translate] duration-[var(--refineui-motion-duration-normal)] ease-[var(--refineui-motion-easing-emphasized)]"
|
|
10555
|
+
),
|
|
10556
|
+
/** Header-connected, full-width product navigation surface. */
|
|
10557
|
+
contentOverlay: (0, import_clsx77.clsx)(
|
|
10558
|
+
"fixed inset-x-0 bottom-0 origin-top"
|
|
10559
|
+
),
|
|
10560
|
+
/** Optional boundary for demos and embedded navigation experiences. */
|
|
10561
|
+
contentContained: "absolute",
|
|
10562
|
+
contentOverlayContained: "absolute inset-x-0 bottom-0",
|
|
10563
|
+
overlayBackdrop: (0, import_clsx77.clsx)(
|
|
10564
|
+
"absolute inset-0 bg-refineui-alias-surface-overlay",
|
|
10565
|
+
"transition-[opacity,backdrop-filter] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-panel)]"
|
|
10492
10566
|
),
|
|
10493
|
-
|
|
10494
|
-
|
|
10495
|
-
|
|
10567
|
+
overlayBackdropEnter: "[animation:refineui-navigation-overlay-backdrop-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none",
|
|
10568
|
+
overlayBackdropExit: "[animation:refineui-navigation-overlay-backdrop-exit_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none",
|
|
10569
|
+
contentPanel: "box-border flex flex-col gap-px overflow-hidden rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default p-refineui-size-xx-small shadow-refineui-2",
|
|
10570
|
+
/** Compact dropdowns retain the Menu's translucent frosted material. */
|
|
10571
|
+
contentPanelDropdown: "bg-refineui-alias-surface-frosted backdrop-blur-refineui-surface-frost",
|
|
10572
|
+
/** Wide panels prioritize readable product navigation over glass transparency. */
|
|
10573
|
+
contentPanelFloating: (0, import_clsx77.clsx)(
|
|
10574
|
+
"bg-refineui-alias-background-primary backdrop-blur-refineui-surface-frost"
|
|
10496
10575
|
),
|
|
10497
|
-
|
|
10576
|
+
contentPanelOverlay: (0, import_clsx77.clsx)(
|
|
10577
|
+
"relative flex w-full justify-center overflow-hidden rounded-none border-x-0 border-b-refineui-hairline border-t-0 p-0 border-refineui-alias-border-default bg-refineui-alias-background-primary shadow-refineui-2",
|
|
10578
|
+
"transition-[height,opacity] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-panel)]",
|
|
10579
|
+
"data-[state=open]:[animation:refineui-navigation-overlay-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none"
|
|
10580
|
+
),
|
|
10581
|
+
contentPanelOverlayExit: "[animation:refineui-navigation-overlay-exit_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none",
|
|
10582
|
+
link: (0, import_clsx77.clsx)(topLevelItem, "no-underline hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)] aria-disabled:pointer-events-none"),
|
|
10498
10583
|
linkActive: "bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
10499
10584
|
linkDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
10500
10585
|
/** Dense row inside a content panel — same density as Menu item. */
|
|
@@ -10503,7 +10588,7 @@ var navigationMenuStyles = {
|
|
|
10503
10588
|
"box-border flex w-full cursor-pointer items-center gap-refineui-size-x-small",
|
|
10504
10589
|
"rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start no-underline outline-none",
|
|
10505
10590
|
"text-refineui-alias-foreground-primary",
|
|
10506
|
-
"transition-[background-color,color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
10591
|
+
"transition-[background-color,color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary aria-disabled:pointer-events-none"
|
|
10507
10592
|
),
|
|
10508
10593
|
/** Optional — prefer omitting; kept for API compatibility. */
|
|
10509
10594
|
indicator: "hidden"
|
|
@@ -10553,12 +10638,17 @@ function NavigationMenu({
|
|
|
10553
10638
|
...props
|
|
10554
10639
|
}) {
|
|
10555
10640
|
const [value, setValue] = useControllableOpen(valueControlled, defaultValue, onValueChange);
|
|
10641
|
+
const idPrefix = `refineui-nav-menu-${(0, import_react38.useId)().replaceAll(":", "")}`;
|
|
10556
10642
|
const listRef = (0, import_react38.useRef)(null);
|
|
10557
10643
|
const triggerMapRef = (0, import_react38.useRef)(/* @__PURE__ */ new Map());
|
|
10558
10644
|
const contentMapRef = (0, import_react38.useRef)(/* @__PURE__ */ new Map());
|
|
10559
10645
|
const openTimerRef = (0, import_react38.useRef)(null);
|
|
10560
10646
|
const closeTimerRef = (0, import_react38.useRef)(null);
|
|
10647
|
+
const switchTimerRef = (0, import_react38.useRef)(null);
|
|
10561
10648
|
const rootRef = (0, import_react38.useRef)(null);
|
|
10649
|
+
const [isSwitching, setIsSwitching] = (0, import_react38.useState)(false);
|
|
10650
|
+
const overlayContentRef = (0, import_react38.useRef)(/* @__PURE__ */ new Map());
|
|
10651
|
+
const [overlayVersion, setOverlayVersion] = (0, import_react38.useState)(0);
|
|
10562
10652
|
const delayDuration = delayDurationProp ?? (0, import_animation5.motionMsToNumber)(import_tokens22.semanticInteraction.duration.normal);
|
|
10563
10653
|
const skipDelayDuration = skipDelayDurationProp ?? (0, import_animation5.motionMsToNumber)(import_tokens22.semanticInteraction.duration.fast);
|
|
10564
10654
|
const clearTimers = (0, import_react38.useCallback)(() => {
|
|
@@ -10574,24 +10664,36 @@ function NavigationMenu({
|
|
|
10574
10664
|
const setValueSafe = (0, import_react38.useCallback)(
|
|
10575
10665
|
(next) => {
|
|
10576
10666
|
clearTimers();
|
|
10667
|
+
if (switchTimerRef.current != null) {
|
|
10668
|
+
window.clearTimeout(switchTimerRef.current);
|
|
10669
|
+
switchTimerRef.current = null;
|
|
10670
|
+
}
|
|
10671
|
+
const switching = Boolean(value && next && value !== next);
|
|
10672
|
+
setIsSwitching(switching);
|
|
10673
|
+
if (switching) {
|
|
10674
|
+
switchTimerRef.current = window.setTimeout(() => {
|
|
10675
|
+
setIsSwitching(false);
|
|
10676
|
+
switchTimerRef.current = null;
|
|
10677
|
+
}, (0, import_animation5.motionMsToNumber)(import_tokens22.semanticInteraction.duration.normal));
|
|
10678
|
+
}
|
|
10577
10679
|
setValue(next);
|
|
10578
10680
|
},
|
|
10579
|
-
[clearTimers, setValue]
|
|
10681
|
+
[clearTimers, setValue, value]
|
|
10580
10682
|
);
|
|
10581
10683
|
const openItem = (0, import_react38.useCallback)(
|
|
10582
10684
|
(itemValue, options) => {
|
|
10583
10685
|
clearTimers();
|
|
10584
10686
|
const delay = options?.immediate || value !== "" ? skipDelayDuration : delayDuration;
|
|
10585
10687
|
if (delay <= 0 || options?.immediate) {
|
|
10586
|
-
|
|
10688
|
+
setValueSafe(itemValue);
|
|
10587
10689
|
return;
|
|
10588
10690
|
}
|
|
10589
10691
|
openTimerRef.current = window.setTimeout(() => {
|
|
10590
|
-
|
|
10692
|
+
setValueSafe(itemValue);
|
|
10591
10693
|
openTimerRef.current = null;
|
|
10592
10694
|
}, delay);
|
|
10593
10695
|
},
|
|
10594
|
-
[clearTimers, delayDuration,
|
|
10696
|
+
[clearTimers, delayDuration, setValueSafe, skipDelayDuration, value]
|
|
10595
10697
|
);
|
|
10596
10698
|
const close = (0, import_react38.useCallback)(
|
|
10597
10699
|
(options) => {
|
|
@@ -10621,6 +10723,36 @@ function NavigationMenu({
|
|
|
10621
10723
|
contentMapRef.current.delete(itemValue);
|
|
10622
10724
|
}
|
|
10623
10725
|
}, []);
|
|
10726
|
+
const registerOverlayContent = (0, import_react38.useCallback)((itemValue, content) => {
|
|
10727
|
+
overlayContentRef.current.set(itemValue, content);
|
|
10728
|
+
setOverlayVersion((version) => version + 1);
|
|
10729
|
+
}, []);
|
|
10730
|
+
const unregisterOverlayContent = (0, import_react38.useCallback)((itemValue) => {
|
|
10731
|
+
if (!overlayContentRef.current.delete(itemValue)) return;
|
|
10732
|
+
setOverlayVersion((version) => version + 1);
|
|
10733
|
+
}, []);
|
|
10734
|
+
const getOverlayContent = (0, import_react38.useCallback)(
|
|
10735
|
+
(itemValue) => overlayContentRef.current.get(itemValue),
|
|
10736
|
+
[]
|
|
10737
|
+
);
|
|
10738
|
+
const focusFirstContent = (0, import_react38.useCallback)((itemValue) => {
|
|
10739
|
+
const focus = () => {
|
|
10740
|
+
const content = contentMapRef.current.get(itemValue);
|
|
10741
|
+
const firstFocusable = content?.querySelector(
|
|
10742
|
+
'a[href]:not([aria-disabled="true"]), button:not(:disabled), [tabindex]:not([tabindex="-1"])'
|
|
10743
|
+
);
|
|
10744
|
+
if (firstFocusable) {
|
|
10745
|
+
firstFocusable.focus();
|
|
10746
|
+
return;
|
|
10747
|
+
}
|
|
10748
|
+
requestAnimationFrame(() => {
|
|
10749
|
+
contentMapRef.current.get(itemValue)?.querySelector(
|
|
10750
|
+
'a[href]:not([aria-disabled="true"]), button:not(:disabled), [tabindex]:not([tabindex="-1"])'
|
|
10751
|
+
)?.focus();
|
|
10752
|
+
});
|
|
10753
|
+
};
|
|
10754
|
+
requestAnimationFrame(focus);
|
|
10755
|
+
}, []);
|
|
10624
10756
|
const isContentTarget = (0, import_react38.useCallback)((itemValue, target) => {
|
|
10625
10757
|
return target instanceof Node && contentMapRef.current.get(itemValue)?.contains(target) === true;
|
|
10626
10758
|
}, []);
|
|
@@ -10628,7 +10760,10 @@ function NavigationMenu({
|
|
|
10628
10760
|
if (!(target instanceof Node)) return false;
|
|
10629
10761
|
return rootRef.current?.contains(target) === true || Array.from(contentMapRef.current.values()).some((content) => content.contains(target));
|
|
10630
10762
|
}, []);
|
|
10631
|
-
(0, import_react38.useEffect)(() => () =>
|
|
10763
|
+
(0, import_react38.useEffect)(() => () => {
|
|
10764
|
+
clearTimers();
|
|
10765
|
+
if (switchTimerRef.current != null) window.clearTimeout(switchTimerRef.current);
|
|
10766
|
+
}, [clearTimers]);
|
|
10632
10767
|
(0, import_react38.useEffect)(() => {
|
|
10633
10768
|
if (!value) return;
|
|
10634
10769
|
const onPointerDown = (event) => {
|
|
@@ -10657,19 +10792,31 @@ function NavigationMenu({
|
|
|
10657
10792
|
close,
|
|
10658
10793
|
delayDuration,
|
|
10659
10794
|
skipDelayDuration,
|
|
10795
|
+
idPrefix,
|
|
10660
10796
|
listRef,
|
|
10661
10797
|
registerTrigger,
|
|
10662
10798
|
registerContent,
|
|
10799
|
+
focusFirstContent,
|
|
10663
10800
|
isContentTarget,
|
|
10664
10801
|
isMenuTarget,
|
|
10665
|
-
isInsideContent: false
|
|
10802
|
+
isInsideContent: false,
|
|
10803
|
+
isSwitching,
|
|
10804
|
+
registerOverlayContent,
|
|
10805
|
+
unregisterOverlayContent,
|
|
10806
|
+
getOverlayContent
|
|
10666
10807
|
}),
|
|
10667
10808
|
[
|
|
10668
10809
|
close,
|
|
10669
10810
|
delayDuration,
|
|
10670
10811
|
isContentTarget,
|
|
10671
10812
|
isMenuTarget,
|
|
10813
|
+
isSwitching,
|
|
10814
|
+
registerOverlayContent,
|
|
10815
|
+
unregisterOverlayContent,
|
|
10816
|
+
getOverlayContent,
|
|
10817
|
+
idPrefix,
|
|
10672
10818
|
openItem,
|
|
10819
|
+
focusFirstContent,
|
|
10673
10820
|
registerContent,
|
|
10674
10821
|
registerTrigger,
|
|
10675
10822
|
setValueSafe,
|
|
@@ -10677,7 +10824,7 @@ function NavigationMenu({
|
|
|
10677
10824
|
value
|
|
10678
10825
|
]
|
|
10679
10826
|
);
|
|
10680
|
-
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuContext.Provider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime59.
|
|
10827
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuContext.Provider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
10681
10828
|
"nav",
|
|
10682
10829
|
{
|
|
10683
10830
|
ref: rootRef,
|
|
@@ -10685,7 +10832,10 @@ function NavigationMenu({
|
|
|
10685
10832
|
"aria-label": ariaLabel,
|
|
10686
10833
|
className: (0, import_clsx78.clsx)(navigationMenuStyles.root, className),
|
|
10687
10834
|
...props,
|
|
10688
|
-
children
|
|
10835
|
+
children: [
|
|
10836
|
+
children,
|
|
10837
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuOverlayViewport, { version: overlayVersion })
|
|
10838
|
+
]
|
|
10689
10839
|
}
|
|
10690
10840
|
) });
|
|
10691
10841
|
}
|
|
@@ -10737,8 +10887,8 @@ function NavigationMenuItem({
|
|
|
10737
10887
|
const reactId = (0, import_react38.useId)();
|
|
10738
10888
|
const value = valueProp ?? reactId;
|
|
10739
10889
|
const open = menu.value === value;
|
|
10740
|
-
const triggerId =
|
|
10741
|
-
const contentId =
|
|
10890
|
+
const triggerId = `${menu.idPrefix}-trigger-${value}`;
|
|
10891
|
+
const contentId = `${menu.idPrefix}-content-${value}`;
|
|
10742
10892
|
const itemCtx = (0, import_react38.useMemo)(
|
|
10743
10893
|
() => ({ value, open, triggerId, contentId }),
|
|
10744
10894
|
[contentId, open, triggerId, value]
|
|
@@ -10825,9 +10975,10 @@ function NavigationMenuTrigger({
|
|
|
10825
10975
|
} else {
|
|
10826
10976
|
menu.openItem(item.value, { immediate: true });
|
|
10827
10977
|
}
|
|
10828
|
-
} else if (event.key === "ArrowDown"
|
|
10978
|
+
} else if (event.key === "ArrowDown") {
|
|
10829
10979
|
event.preventDefault();
|
|
10830
10980
|
menu.openItem(item.value, { immediate: true });
|
|
10981
|
+
menu.focusFirstContent(item.value);
|
|
10831
10982
|
}
|
|
10832
10983
|
},
|
|
10833
10984
|
...props,
|
|
@@ -10849,9 +11000,44 @@ function NavigationMenuTrigger({
|
|
|
10849
11000
|
}
|
|
10850
11001
|
);
|
|
10851
11002
|
}
|
|
10852
|
-
function NavigationMenuContent({
|
|
11003
|
+
function NavigationMenuContent(props) {
|
|
11004
|
+
return props.layout === "overlay" ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuOverlayContent, { ...props }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuContentPanel, { ...props });
|
|
11005
|
+
}
|
|
11006
|
+
function NavigationMenuOverlayContent({
|
|
11007
|
+
children,
|
|
11008
|
+
className,
|
|
11009
|
+
portalContainer,
|
|
11010
|
+
onKeyDown,
|
|
11011
|
+
style
|
|
11012
|
+
}) {
|
|
11013
|
+
const menu = useNavigationMenu("NavigationMenuContent");
|
|
11014
|
+
const item = useNavigationMenuItem("NavigationMenuContent");
|
|
11015
|
+
const { registerOverlayContent, unregisterOverlayContent } = menu;
|
|
11016
|
+
const registrationRef = (0, import_react38.useRef)({
|
|
11017
|
+
children,
|
|
11018
|
+
className,
|
|
11019
|
+
portalContainer,
|
|
11020
|
+
onKeyDown,
|
|
11021
|
+
style
|
|
11022
|
+
});
|
|
11023
|
+
registrationRef.current = {
|
|
11024
|
+
children,
|
|
11025
|
+
className,
|
|
11026
|
+
portalContainer,
|
|
11027
|
+
onKeyDown,
|
|
11028
|
+
style
|
|
11029
|
+
};
|
|
11030
|
+
(0, import_react38.useEffect)(() => {
|
|
11031
|
+
registerOverlayContent(item.value, registrationRef.current);
|
|
11032
|
+
return () => unregisterOverlayContent(item.value);
|
|
11033
|
+
}, [item.value, registerOverlayContent, unregisterOverlayContent]);
|
|
11034
|
+
return null;
|
|
11035
|
+
}
|
|
11036
|
+
function NavigationMenuContentPanel({
|
|
10853
11037
|
children,
|
|
10854
11038
|
className,
|
|
11039
|
+
layout = "dropdown",
|
|
11040
|
+
portalContainer,
|
|
10855
11041
|
onKeyDown,
|
|
10856
11042
|
style,
|
|
10857
11043
|
...props
|
|
@@ -10880,9 +11066,11 @@ function NavigationMenuContent({
|
|
|
10880
11066
|
const timeout = window.setTimeout(() => {
|
|
10881
11067
|
setShouldRender(false);
|
|
10882
11068
|
setIsClosing(false);
|
|
10883
|
-
}, (0, import_animation5.motionMsToNumber)(
|
|
11069
|
+
}, (0, import_animation5.motionMsToNumber)(
|
|
11070
|
+
layout === "overlay" ? import_tokens22.semanticInteraction.duration.normal : import_tokens22.semanticInteraction.duration.fast
|
|
11071
|
+
));
|
|
10884
11072
|
return () => window.clearTimeout(timeout);
|
|
10885
|
-
}, [item.open,
|
|
11073
|
+
}, [item.open, layout, menu.isSwitching]);
|
|
10886
11074
|
useIsomorphicLayoutEffect5(() => {
|
|
10887
11075
|
if (!shouldRender || !item.open || typeof document === "undefined") return;
|
|
10888
11076
|
const trigger = document.getElementById(item.triggerId);
|
|
@@ -10892,14 +11080,21 @@ function NavigationMenuContent({
|
|
|
10892
11080
|
if (!content2) return;
|
|
10893
11081
|
const triggerRect = trigger.getBoundingClientRect();
|
|
10894
11082
|
const contentWidth = content2.offsetWidth;
|
|
11083
|
+
const portalRect = portalContainer?.getBoundingClientRect();
|
|
11084
|
+
const boundaryWidth = portalRect?.width ?? window.innerWidth;
|
|
10895
11085
|
const edge = Number.parseFloat(import_tokens22.spacings.sizeMedium) || 8;
|
|
10896
|
-
const
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
|
|
11086
|
+
const floatingOffset = Number.parseFloat(import_tokens22.spacings.sizeXXSmall) || 4;
|
|
11087
|
+
const left = layout === "floating" ? Math.max(edge, Math.min((boundaryWidth - contentWidth) / 2, boundaryWidth - contentWidth - edge)) : Math.max(edge, Math.min(triggerRect.left - (portalRect?.left ?? 0), boundaryWidth - contentWidth - edge));
|
|
11088
|
+
if (layout === "overlay") {
|
|
11089
|
+
setPositionStyle({
|
|
11090
|
+
top: portalRect ? triggerRect.bottom - portalRect.top : triggerRect.bottom,
|
|
11091
|
+
zIndex: Number.parseInt(String(import_tokens22.zIndex.zIndexMessages), 10) || 1e4
|
|
11092
|
+
});
|
|
11093
|
+
return;
|
|
11094
|
+
}
|
|
10900
11095
|
setPositionStyle({
|
|
10901
|
-
position: "fixed",
|
|
10902
|
-
top: triggerRect.bottom,
|
|
11096
|
+
position: portalRect ? "absolute" : "fixed",
|
|
11097
|
+
top: triggerRect.bottom + (layout === "floating" ? floatingOffset : 0) - (portalRect?.top ?? 0),
|
|
10903
11098
|
left,
|
|
10904
11099
|
zIndex: Number.parseInt(String(import_tokens22.zIndex.zIndexMessages), 10) || 1e4
|
|
10905
11100
|
});
|
|
@@ -10913,13 +11108,13 @@ function NavigationMenuContent({
|
|
|
10913
11108
|
window.removeEventListener("resize", updatePosition);
|
|
10914
11109
|
unsubscribe();
|
|
10915
11110
|
};
|
|
10916
|
-
}, [item.open, item.triggerId, shouldRender]);
|
|
11111
|
+
}, [item.open, item.triggerId, layout, portalContainer, shouldRender]);
|
|
10917
11112
|
const contentCtx = (0, import_react38.useMemo)(
|
|
10918
11113
|
() => ({ ...menu, isInsideContent: true }),
|
|
10919
11114
|
[menu]
|
|
10920
11115
|
);
|
|
10921
11116
|
if (!shouldRender) return null;
|
|
10922
|
-
const content = /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuContext.Provider, { value: contentCtx, children: /* @__PURE__ */ (0, import_jsx_runtime59.
|
|
11117
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuContext.Provider, { value: contentCtx, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
10923
11118
|
"div",
|
|
10924
11119
|
{
|
|
10925
11120
|
ref: setContentRef,
|
|
@@ -10927,8 +11122,15 @@ function NavigationMenuContent({
|
|
|
10927
11122
|
role: "region",
|
|
10928
11123
|
"aria-labelledby": item.triggerId,
|
|
10929
11124
|
"data-refineui": "navigation-menu-content",
|
|
11125
|
+
"data-layout": layout,
|
|
10930
11126
|
"data-state": isClosing || !item.open ? "closed" : "open",
|
|
10931
|
-
className: (0, import_clsx78.clsx)(
|
|
11127
|
+
className: (0, import_clsx78.clsx)(
|
|
11128
|
+
navigationMenuStyles.content,
|
|
11129
|
+
layout === "overlay" ? portalContainer ? navigationMenuStyles.contentOverlayContained : navigationMenuStyles.contentOverlay : layout === "floating" ? navigationMenuStyles.contentFloating : navigationMenuStyles.contentDropdown,
|
|
11130
|
+
layout !== "overlay" && portalContainer && navigationMenuStyles.contentContained,
|
|
11131
|
+
isClosing || !item.open ? layout === "overlay" ? "pointer-events-none" : layout === "floating" ? "pointer-events-none translate-y-refineui-size-x-small opacity-0" : "pointer-events-none opacity-0" : layout === "floating" ? "translate-y-0 opacity-100" : "opacity-100",
|
|
11132
|
+
className
|
|
11133
|
+
),
|
|
10932
11134
|
style: { ...positionStyle, ...style },
|
|
10933
11135
|
onPointerEnter: () => menu.openItem(item.value, { immediate: true }),
|
|
10934
11136
|
onPointerLeave: (event) => {
|
|
@@ -10941,13 +11143,226 @@ function NavigationMenuContent({
|
|
|
10941
11143
|
if (event.key === "Escape") {
|
|
10942
11144
|
event.preventDefault();
|
|
10943
11145
|
menu.setValue("");
|
|
11146
|
+
document.getElementById(item.triggerId)?.focus();
|
|
10944
11147
|
}
|
|
10945
11148
|
},
|
|
10946
11149
|
...props,
|
|
10947
|
-
children:
|
|
11150
|
+
children: [
|
|
11151
|
+
layout === "overlay" ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11152
|
+
"div",
|
|
11153
|
+
{
|
|
11154
|
+
"aria-hidden": true,
|
|
11155
|
+
"data-state": isClosing || !item.open ? "closed" : "open",
|
|
11156
|
+
className: (0, import_clsx78.clsx)(
|
|
11157
|
+
navigationMenuStyles.overlayBackdrop,
|
|
11158
|
+
isClosing || !item.open ? "backdrop-blur-none opacity-0" : "backdrop-blur-[var(--refineui-blur-overlay-scrim)] opacity-100",
|
|
11159
|
+
!menu.isSwitching && item.open ? navigationMenuStyles.overlayBackdropEnter : void 0,
|
|
11160
|
+
isClosing && !menu.isSwitching ? navigationMenuStyles.overlayBackdropExit : void 0
|
|
11161
|
+
),
|
|
11162
|
+
onPointerDown: (event) => {
|
|
11163
|
+
event.preventDefault();
|
|
11164
|
+
menu.setValue("");
|
|
11165
|
+
},
|
|
11166
|
+
onPointerEnter: () => menu.close()
|
|
11167
|
+
}
|
|
11168
|
+
) : null,
|
|
11169
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11170
|
+
"div",
|
|
11171
|
+
{
|
|
11172
|
+
"data-refineui": "navigation-menu-content-panel",
|
|
11173
|
+
"data-layout": layout,
|
|
11174
|
+
"data-state": isClosing || !item.open ? "closed" : "open",
|
|
11175
|
+
className: (0, import_clsx78.clsx)(
|
|
11176
|
+
layout === "overlay" ? navigationMenuStyles.contentPanelOverlay : navigationMenuStyles.contentPanel,
|
|
11177
|
+
layout === "overlay" ? void 0 : layout === "floating" ? navigationMenuStyles.contentPanelFloating : navigationMenuStyles.contentPanelDropdown,
|
|
11178
|
+
layout === "overlay" && (isClosing || !item.open) ? "translate-y-refineui-size-xxx-small opacity-0" : void 0,
|
|
11179
|
+
layout === "overlay" && isClosing && !menu.isSwitching ? navigationMenuStyles.contentPanelOverlayExit : void 0
|
|
11180
|
+
),
|
|
11181
|
+
children
|
|
11182
|
+
}
|
|
11183
|
+
)
|
|
11184
|
+
]
|
|
10948
11185
|
}
|
|
10949
11186
|
) });
|
|
10950
|
-
return typeof document === "undefined" ? content : (0, import_react_dom6.createPortal)(content, document.body);
|
|
11187
|
+
return typeof document === "undefined" ? content : (0, import_react_dom6.createPortal)(content, portalContainer ?? document.body);
|
|
11188
|
+
}
|
|
11189
|
+
function NavigationMenuOverlayViewport({ version: _version }) {
|
|
11190
|
+
const menu = useNavigationMenu("NavigationMenuContent");
|
|
11191
|
+
const [presentValue, setPresentValue] = (0, import_react38.useState)(menu.value);
|
|
11192
|
+
const [isClosing, setIsClosing] = (0, import_react38.useState)(false);
|
|
11193
|
+
const [positionStyle, setPositionStyle] = (0, import_react38.useState)(null);
|
|
11194
|
+
const [panelHeight, setPanelHeight] = (0, import_react38.useState)(null);
|
|
11195
|
+
const rootRef = (0, import_react38.useRef)(null);
|
|
11196
|
+
const innerRef = (0, import_react38.useRef)(null);
|
|
11197
|
+
const heightRef = (0, import_react38.useRef)(null);
|
|
11198
|
+
const heightTimerRef = (0, import_react38.useRef)(null);
|
|
11199
|
+
const isClosingRef = (0, import_react38.useRef)(false);
|
|
11200
|
+
const registration = presentValue ? menu.getOverlayContent(presentValue) : void 0;
|
|
11201
|
+
useIsomorphicLayoutEffect5(() => {
|
|
11202
|
+
if (menu.value) {
|
|
11203
|
+
isClosingRef.current = false;
|
|
11204
|
+
setPresentValue(menu.value);
|
|
11205
|
+
setIsClosing(false);
|
|
11206
|
+
return;
|
|
11207
|
+
}
|
|
11208
|
+
if (!presentValue) return;
|
|
11209
|
+
isClosingRef.current = true;
|
|
11210
|
+
setIsClosing(true);
|
|
11211
|
+
if (heightTimerRef.current != null) {
|
|
11212
|
+
window.clearTimeout(heightTimerRef.current);
|
|
11213
|
+
heightTimerRef.current = null;
|
|
11214
|
+
}
|
|
11215
|
+
const currentHeight = innerRef.current?.scrollHeight ?? heightRef.current;
|
|
11216
|
+
let frame;
|
|
11217
|
+
let settleFrame;
|
|
11218
|
+
if (currentHeight != null) {
|
|
11219
|
+
setPanelHeight(currentHeight);
|
|
11220
|
+
frame = requestAnimationFrame(() => {
|
|
11221
|
+
settleFrame = requestAnimationFrame(() => setPanelHeight(0));
|
|
11222
|
+
});
|
|
11223
|
+
}
|
|
11224
|
+
const timeout = window.setTimeout(() => {
|
|
11225
|
+
setPresentValue("");
|
|
11226
|
+
setIsClosing(false);
|
|
11227
|
+
setPanelHeight(null);
|
|
11228
|
+
heightRef.current = null;
|
|
11229
|
+
isClosingRef.current = false;
|
|
11230
|
+
}, (0, import_animation5.motionMsToNumber)(import_tokens22.semanticInteraction.duration.panel));
|
|
11231
|
+
return () => {
|
|
11232
|
+
if (frame != null) cancelAnimationFrame(frame);
|
|
11233
|
+
if (settleFrame != null) cancelAnimationFrame(settleFrame);
|
|
11234
|
+
window.clearTimeout(timeout);
|
|
11235
|
+
};
|
|
11236
|
+
}, [menu.value, presentValue]);
|
|
11237
|
+
useIsomorphicLayoutEffect5(() => {
|
|
11238
|
+
if (!presentValue || !registration || typeof document === "undefined") return;
|
|
11239
|
+
const trigger = document.getElementById(`${menu.idPrefix}-trigger-${CSS.escape(presentValue)}`);
|
|
11240
|
+
if (!trigger) return;
|
|
11241
|
+
const updatePosition = () => {
|
|
11242
|
+
const triggerRect = trigger.getBoundingClientRect();
|
|
11243
|
+
const portalRect = registration.portalContainer?.getBoundingClientRect();
|
|
11244
|
+
const headerBottom = trigger.closest("header")?.getBoundingClientRect().bottom;
|
|
11245
|
+
const overlayTop = headerBottom ?? triggerRect.bottom;
|
|
11246
|
+
setPositionStyle({
|
|
11247
|
+
top: portalRect ? overlayTop - portalRect.top : overlayTop,
|
|
11248
|
+
zIndex: Number.parseInt(String(import_tokens22.zIndex.zIndexMessages), 10) || 1e4
|
|
11249
|
+
});
|
|
11250
|
+
};
|
|
11251
|
+
updatePosition();
|
|
11252
|
+
window.addEventListener("resize", updatePosition);
|
|
11253
|
+
const unsubscribe = subscribeScrollAndScrollableAncestors2(trigger, updatePosition);
|
|
11254
|
+
return () => {
|
|
11255
|
+
window.removeEventListener("resize", updatePosition);
|
|
11256
|
+
unsubscribe();
|
|
11257
|
+
};
|
|
11258
|
+
}, [presentValue, registration]);
|
|
11259
|
+
useIsomorphicLayoutEffect5(() => {
|
|
11260
|
+
if (!presentValue || !innerRef.current) return;
|
|
11261
|
+
const nextHeight = innerRef.current.scrollHeight;
|
|
11262
|
+
const previousHeight = heightRef.current;
|
|
11263
|
+
heightRef.current = nextHeight;
|
|
11264
|
+
if (previousHeight === nextHeight) {
|
|
11265
|
+
setPanelHeight(null);
|
|
11266
|
+
return;
|
|
11267
|
+
}
|
|
11268
|
+
if (heightTimerRef.current != null) window.clearTimeout(heightTimerRef.current);
|
|
11269
|
+
setPanelHeight(previousHeight ?? 0);
|
|
11270
|
+
let settleFrame;
|
|
11271
|
+
const frame = requestAnimationFrame(() => {
|
|
11272
|
+
settleFrame = requestAnimationFrame(() => setPanelHeight(nextHeight));
|
|
11273
|
+
});
|
|
11274
|
+
heightTimerRef.current = window.setTimeout(
|
|
11275
|
+
() => {
|
|
11276
|
+
if (!isClosingRef.current) setPanelHeight(null);
|
|
11277
|
+
},
|
|
11278
|
+
(0, import_animation5.motionMsToNumber)(import_tokens22.semanticInteraction.duration.panel)
|
|
11279
|
+
);
|
|
11280
|
+
return () => {
|
|
11281
|
+
cancelAnimationFrame(frame);
|
|
11282
|
+
if (settleFrame != null) cancelAnimationFrame(settleFrame);
|
|
11283
|
+
if (heightTimerRef.current != null) window.clearTimeout(heightTimerRef.current);
|
|
11284
|
+
};
|
|
11285
|
+
}, [presentValue, registration?.children]);
|
|
11286
|
+
(0, import_react38.useEffect)(() => {
|
|
11287
|
+
menu.registerContent(presentValue, rootRef.current);
|
|
11288
|
+
return () => menu.registerContent(presentValue, null);
|
|
11289
|
+
}, [menu, presentValue]);
|
|
11290
|
+
(0, import_react38.useEffect)(() => {
|
|
11291
|
+
if (!presentValue || typeof document === "undefined") return;
|
|
11292
|
+
const trigger = document.getElementById(`${menu.idPrefix}-trigger-${CSS.escape(presentValue)}`);
|
|
11293
|
+
const header = trigger?.closest("header");
|
|
11294
|
+
if (!header) return;
|
|
11295
|
+
header.setAttribute("data-refineui-navigation-menu-overlay-open", "");
|
|
11296
|
+
return () => header.removeAttribute("data-refineui-navigation-menu-overlay-open");
|
|
11297
|
+
}, [presentValue]);
|
|
11298
|
+
if (!presentValue || !registration) return null;
|
|
11299
|
+
const state = isClosing ? "closed" : "open";
|
|
11300
|
+
const contentCtx = { ...menu, isInsideContent: true };
|
|
11301
|
+
const root = /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(NavigationMenuContext.Provider, { value: contentCtx, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
11302
|
+
"div",
|
|
11303
|
+
{
|
|
11304
|
+
ref: rootRef,
|
|
11305
|
+
id: `${menu.idPrefix}-content-${presentValue}`,
|
|
11306
|
+
role: "region",
|
|
11307
|
+
"aria-labelledby": `${menu.idPrefix}-trigger-${presentValue}`,
|
|
11308
|
+
"data-refineui": "navigation-menu-content",
|
|
11309
|
+
"data-layout": "overlay",
|
|
11310
|
+
"data-state": state,
|
|
11311
|
+
className: (0, import_clsx78.clsx)(
|
|
11312
|
+
registration.portalContainer ? navigationMenuStyles.contentOverlayContained : navigationMenuStyles.contentOverlay,
|
|
11313
|
+
isClosing && "pointer-events-none",
|
|
11314
|
+
registration.className
|
|
11315
|
+
),
|
|
11316
|
+
style: { ...positionStyle, ...registration.style },
|
|
11317
|
+
onPointerEnter: () => menu.openItem(presentValue, { immediate: true }),
|
|
11318
|
+
onPointerLeave: (event) => {
|
|
11319
|
+
if (menu.isMenuTarget(event.relatedTarget)) return;
|
|
11320
|
+
menu.close();
|
|
11321
|
+
},
|
|
11322
|
+
onKeyDown: (event) => {
|
|
11323
|
+
registration.onKeyDown?.(event);
|
|
11324
|
+
if (event.defaultPrevented || event.key !== "Escape") return;
|
|
11325
|
+
event.preventDefault();
|
|
11326
|
+
menu.setValue("");
|
|
11327
|
+
document.getElementById(`${menu.idPrefix}-trigger-${presentValue}`)?.focus();
|
|
11328
|
+
},
|
|
11329
|
+
children: [
|
|
11330
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11331
|
+
"div",
|
|
11332
|
+
{
|
|
11333
|
+
"aria-hidden": true,
|
|
11334
|
+
"data-state": state,
|
|
11335
|
+
className: (0, import_clsx78.clsx)(
|
|
11336
|
+
navigationMenuStyles.overlayBackdrop,
|
|
11337
|
+
isClosing ? "backdrop-blur-none opacity-0" : "backdrop-blur-[var(--refineui-blur-overlay-scrim)] opacity-100",
|
|
11338
|
+
!isClosing && navigationMenuStyles.overlayBackdropEnter,
|
|
11339
|
+
isClosing && navigationMenuStyles.overlayBackdropExit
|
|
11340
|
+
),
|
|
11341
|
+
onPointerDown: (event) => {
|
|
11342
|
+
event.preventDefault();
|
|
11343
|
+
menu.setValue("");
|
|
11344
|
+
},
|
|
11345
|
+
onPointerEnter: () => menu.close()
|
|
11346
|
+
}
|
|
11347
|
+
),
|
|
11348
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
11349
|
+
"div",
|
|
11350
|
+
{
|
|
11351
|
+
"data-refineui": "navigation-menu-content-panel",
|
|
11352
|
+
"data-layout": "overlay",
|
|
11353
|
+
"data-state": state,
|
|
11354
|
+
className: (0, import_clsx78.clsx)(
|
|
11355
|
+
navigationMenuStyles.contentPanelOverlay,
|
|
11356
|
+
isClosing && navigationMenuStyles.contentPanelOverlayExit
|
|
11357
|
+
),
|
|
11358
|
+
style: panelHeight == null ? void 0 : { height: panelHeight },
|
|
11359
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { ref: innerRef, className: "w-full", children: registration.children })
|
|
11360
|
+
}
|
|
11361
|
+
)
|
|
11362
|
+
]
|
|
11363
|
+
}
|
|
11364
|
+
) });
|
|
11365
|
+
return typeof document === "undefined" ? root : (0, import_react_dom6.createPortal)(root, registration.portalContainer ?? document.body);
|
|
10951
11366
|
}
|
|
10952
11367
|
function NavigationMenuLink({
|
|
10953
11368
|
children,
|
|
@@ -10996,7 +11411,7 @@ function NavigationMenuLink({
|
|
|
10996
11411
|
);
|
|
10997
11412
|
}
|
|
10998
11413
|
function NavigationMenuIndicator({ className, style, ...props }) {
|
|
10999
|
-
const { value, listRef } = useNavigationMenu("NavigationMenuIndicator");
|
|
11414
|
+
const { value, listRef, idPrefix } = useNavigationMenu("NavigationMenuIndicator");
|
|
11000
11415
|
const [box, setBox] = (0, import_react38.useState)(null);
|
|
11001
11416
|
const measure = (0, import_react38.useCallback)(() => {
|
|
11002
11417
|
const list = listRef.current;
|
|
@@ -11005,7 +11420,7 @@ function NavigationMenuIndicator({ className, style, ...props }) {
|
|
|
11005
11420
|
return;
|
|
11006
11421
|
}
|
|
11007
11422
|
const trigger = list.querySelector(
|
|
11008
|
-
`[data-refineui="navigation-menu-trigger"][id="
|
|
11423
|
+
`[data-refineui="navigation-menu-trigger"][id="${CSS.escape(idPrefix)}-trigger-${CSS.escape(value)}"]`
|
|
11009
11424
|
);
|
|
11010
11425
|
if (!trigger) {
|
|
11011
11426
|
setBox(null);
|
|
@@ -11076,9 +11491,9 @@ var sidebarStyles = {
|
|
|
11076
11491
|
"box-border flex w-full min-w-0 cursor-pointer items-center gap-refineui-size-x-small",
|
|
11077
11492
|
"rounded-refineui-large border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small",
|
|
11078
11493
|
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
11079
|
-
"transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
11494
|
+
"transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)] aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:!text-refineui-alias-foreground-disabled"
|
|
11080
11495
|
),
|
|
11081
|
-
linkActive: "font-medium text-refineui-alias-foreground-primary",
|
|
11496
|
+
linkActive: "font-medium bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
11082
11497
|
linkDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
11083
11498
|
footer: (0, import_clsx79.clsx)(
|
|
11084
11499
|
"mt-auto flex shrink-0 flex-col",
|
|
@@ -11213,17 +11628,43 @@ var import_clsx81 = require("clsx");
|
|
|
11213
11628
|
var sidebarPeekStyles = {
|
|
11214
11629
|
root: "relative h-full w-full min-h-0 min-w-0",
|
|
11215
11630
|
edgeContained: (0, import_clsx81.clsx)(
|
|
11216
|
-
"absolute inset-y-0 inset-inline-start-0 z-[calc(var(--refineui-z-floating)-1)]",
|
|
11631
|
+
"absolute inset-y-0 inset-inline-start-0 z-[calc(var(--refineui-z-floating)-1)] data-[sidebar-peek-edge-suspended]:pointer-events-none",
|
|
11217
11632
|
"w-refineui-foundation-size-120"
|
|
11218
11633
|
),
|
|
11219
11634
|
edgeViewport: (0, import_clsx81.clsx)(
|
|
11220
|
-
"fixed inset-inline-start-0 inset-block-end-0 z-[calc(var(--refineui-z-floating)-1)]",
|
|
11635
|
+
"fixed inset-inline-start-0 inset-block-end-0 z-[calc(var(--refineui-z-floating)-1)] data-[sidebar-peek-edge-suspended]:pointer-events-none",
|
|
11221
11636
|
"w-refineui-foundation-size-120",
|
|
11222
11637
|
"top-[var(--refineui-sidebar-peek-viewport-offset,0px)]"
|
|
11223
11638
|
),
|
|
11224
|
-
surfaceContained: (0, import_clsx81.clsx)(
|
|
11225
|
-
|
|
11226
|
-
|
|
11639
|
+
surfaceContained: (0, import_clsx81.clsx)(
|
|
11640
|
+
"group/sidebar-peek-surface absolute z-refineui-floating flex min-h-0 box-border pointer-events-none invisible",
|
|
11641
|
+
"inset-y-[calc(var(--refineui-spacing-size-small)-var(--refineui-spacing-size-x-small))]",
|
|
11642
|
+
"start-[calc(var(--refineui-size-foundation-size-120)-var(--refineui-spacing-size-x-small))]",
|
|
11643
|
+
"w-[calc(var(--refineui-sidebar-peek-panel-width)+2*var(--refineui-spacing-size-x-small))]",
|
|
11644
|
+
"p-refineui-size-x-small",
|
|
11645
|
+
"translate-x-[calc(-100%-var(--refineui-size-foundation-size-120)+var(--refineui-spacing-size-x-small))]",
|
|
11646
|
+
"transition-[translate,visibility] duration-refineui-overlay ease-refineui-standard motion-reduce:transition-none",
|
|
11647
|
+
"data-[sidebar-peek-panel-open]:pointer-events-auto data-[sidebar-peek-panel-open]:visible data-[sidebar-peek-panel-open]:translate-x-0"
|
|
11648
|
+
),
|
|
11649
|
+
surfaceViewport: (0, import_clsx81.clsx)(
|
|
11650
|
+
"group/sidebar-peek-surface fixed z-refineui-floating flex min-h-0 box-border pointer-events-none invisible",
|
|
11651
|
+
"bottom-[calc(var(--refineui-spacing-size-small)-var(--refineui-spacing-size-x-small))]",
|
|
11652
|
+
"start-[calc(var(--refineui-size-foundation-size-120)-var(--refineui-spacing-size-x-small))]",
|
|
11653
|
+
"top-[calc(var(--refineui-sidebar-peek-viewport-offset,0px)+var(--refineui-spacing-size-small)-var(--refineui-spacing-size-x-small))]",
|
|
11654
|
+
"w-[calc(var(--refineui-sidebar-peek-panel-width)+2*var(--refineui-spacing-size-x-small))]",
|
|
11655
|
+
"p-refineui-size-x-small",
|
|
11656
|
+
"translate-x-[calc(-100%-var(--refineui-size-foundation-size-120)+var(--refineui-spacing-size-x-small))]",
|
|
11657
|
+
"transition-[translate,visibility] duration-refineui-overlay ease-refineui-standard motion-reduce:transition-none",
|
|
11658
|
+
"data-[sidebar-peek-panel-open]:pointer-events-auto data-[sidebar-peek-panel-open]:visible data-[sidebar-peek-panel-open]:translate-x-0"
|
|
11659
|
+
),
|
|
11660
|
+
panel: (0, import_clsx81.clsx)(
|
|
11661
|
+
"box-border flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden pointer-events-auto",
|
|
11662
|
+
"rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default",
|
|
11663
|
+
"bg-refineui-alias-surface-frosted backdrop-blur-refineui-surface-frost",
|
|
11664
|
+
"shadow-refineui-16 transition-shadow duration-refineui-overlay ease-refineui-standard motion-reduce:transition-none",
|
|
11665
|
+
"group-data-[sidebar-peek-panel-open]/sidebar-peek-surface:shadow-refineui-24",
|
|
11666
|
+
"[&_[data-refineui=sidebar]]:h-full [&_[data-refineui=sidebar]]:border-e-0 [&_[data-refineui=sidebar]]:rounded-inherit [&_[data-refineui=sidebar]]:bg-transparent"
|
|
11667
|
+
),
|
|
11227
11668
|
toolbar: "flex shrink-0 justify-end px-refineui-size-x-small pt-refineui-size-x-small",
|
|
11228
11669
|
panelBody: "flex min-h-0 w-full flex-1 flex-col",
|
|
11229
11670
|
inset: "relative flex min-h-0 min-w-0 flex-1 flex-col"
|
|
@@ -11568,7 +12009,7 @@ var import_clsx83 = require("clsx");
|
|
|
11568
12009
|
var paginationStyles = {
|
|
11569
12010
|
root: "flex flex-wrap items-center gap-refineui-size-medium",
|
|
11570
12011
|
listWrap: "flex flex-wrap items-center gap-refineui-size-medium",
|
|
11571
|
-
itemShell: "box-border inline-flex h-refineui-pagination-button-min-width min-h-refineui-pagination-button-min-width w-refineui-pagination-button-min-width min-w-refineui-pagination-button-min-width shrink-0 items-center justify-center rounded-refineui-x-large border-refineui-thin p-refineui-size-x-small outline-none transition-[background-color,border-color,box-shadow,transform,color] duration-[var(--refineui-motion-duration-fast)]",
|
|
12012
|
+
itemShell: "box-border inline-flex h-refineui-pagination-button-min-width min-h-refineui-pagination-button-min-width w-refineui-pagination-button-min-width min-w-refineui-pagination-button-min-width shrink-0 items-center justify-center rounded-refineui-x-large border-refineui-thin p-refineui-size-x-small outline-none transition-[background-color,border-color,box-shadow,transform,color] duration-[var(--refineui-motion-duration-fast)] hover:bg-refineui-alias-background-surface-hover hover:border-refineui-alias-border-hover active:scale-[var(--refineui-motion-scale-press)] [&[data-page=true][data-selected=true]]:border-2 [&[data-page=true][data-selected=true]]:border-refineui-alias-border-focus [&[data-page=true][data-selected=true]]:bg-refineui-alias-background-surface-selected [&[data-page=true][data-selected=true]]:font-semibold disabled:cursor-not-allowed disabled:border-refineui-alias-border-disabled disabled:bg-refineui-alias-background-surface-disabled disabled:text-refineui-alias-foreground-disabled disabled:opacity-100 disabled:transform-none",
|
|
11572
12013
|
page: (0, import_clsx83.clsx)(
|
|
11573
12014
|
componentTextClass(componentTypographyTokens.pagination),
|
|
11574
12015
|
"border-refineui-alias-border-default bg-refineui-alias-background-primary font-medium text-refineui-alias-foreground-primary no-underline"
|
|
@@ -11863,8 +12304,8 @@ function FloatingSurface({
|
|
|
11863
12304
|
};
|
|
11864
12305
|
const clip = `path("${shape}")`;
|
|
11865
12306
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { "data-refineui": "floating-chrome", "aria-hidden": true, className: "pointer-events-none absolute -z-1", style: rootStyle, children: [
|
|
11866
|
-
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "absolute", style: shadowStyle, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-refineui": "floating-shadow", className: "absolute", style: { inset: SHADOW_BLEED }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "absolute inset-0", style: { clipPath: clip, backgroundColor: borderColor } }) }) }),
|
|
11867
|
-
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-refineui": "floating-surface", className: "absolute inset-0", style: surfaceStyle }),
|
|
12307
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "absolute", style: shadowStyle, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-refineui": "floating-shadow", className: "absolute [filter:var(--refineui-elevation-floating-filter)]", style: { inset: SHADOW_BLEED }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "absolute inset-0", style: { clipPath: clip, backgroundColor: borderColor } }) }) }),
|
|
12308
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-refineui": "floating-surface", className: "absolute inset-0 bg-refineui-alias-surface-frosted backdrop-blur-refineui-surface-frost", style: surfaceStyle }),
|
|
11868
12309
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
11869
12310
|
"svg",
|
|
11870
12311
|
{
|
|
@@ -12135,9 +12576,9 @@ var import_clsx86 = require("clsx");
|
|
|
12135
12576
|
// src/components/Skeleton/style.ts
|
|
12136
12577
|
var skeletonStyles = {
|
|
12137
12578
|
/** Line / block placeholder */
|
|
12138
|
-
rectangle: "block rounded-refineui-large",
|
|
12579
|
+
rectangle: "block animate-pulse rounded-refineui-large bg-refineui-alias-background-surface-selected motion-reduce:animate-none motion-reduce:opacity-100 [animation-duration:var(--refineui-motion-duration-skeleton)] [animation-timing-function:var(--refineui-motion-easing-ease-in-out)]",
|
|
12139
12580
|
/** Avatar-style placeholder */
|
|
12140
|
-
circle: "block shrink-0 rounded-refineui-circle"
|
|
12581
|
+
circle: "block shrink-0 animate-pulse rounded-refineui-circle bg-refineui-alias-background-surface-selected motion-reduce:animate-none motion-reduce:opacity-100 [animation-duration:var(--refineui-motion-duration-skeleton)] [animation-timing-function:var(--refineui-motion-easing-ease-in-out)]"
|
|
12141
12582
|
};
|
|
12142
12583
|
|
|
12143
12584
|
// src/components/Skeleton/Skeleton.tsx
|
|
@@ -12195,7 +12636,7 @@ var import_react46 = require("react");
|
|
|
12195
12636
|
|
|
12196
12637
|
// src/components/Slider/style.ts
|
|
12197
12638
|
var sliderStyles = {
|
|
12198
|
-
root: "h-refineui-slider-interaction-height w-full cursor-
|
|
12639
|
+
root: "h-refineui-slider-interaction-height w-full cursor-grab appearance-none bg-transparent outline-none touch-none [--refineui-slider-rail:var(--refineui-color-alias-background-brand-subtle)] [--refineui-slider-fill-color:var(--refineui-color-alias-background-brand)] [--refineui-slider-thumb-size:var(--refineui-size-foundation-size-200)] active:cursor-grabbing disabled:cursor-not-allowed disabled:[--refineui-slider-rail:var(--refineui-color-alias-background-surface-disabled)] disabled:[--refineui-slider-fill-color:var(--refineui-color-alias-foreground-disabled)] data-[size=md]:[&::-webkit-slider-runnable-track]:h-refineui-slider-track-height-md data-[size=sm]:[&::-webkit-slider-runnable-track]:h-refineui-slider-track-height-sm data-[size=md]:[&::-moz-range-track]:h-refineui-slider-track-height-md data-[size=sm]:[&::-moz-range-track]:h-refineui-slider-track-height-sm data-[size=md]:[&::-moz-range-progress]:h-refineui-slider-track-height-md data-[size=sm]:[&::-moz-range-progress]:h-refineui-slider-track-height-sm [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:[background:linear-gradient(to_right,var(--refineui-slider-fill-color)_0%,var(--refineui-slider-fill-color)_var(--refineui-slider-fill,0%),var(--refineui-slider-rail)_var(--refineui-slider-fill,0%),var(--refineui-slider-rail)_100%)] [&::-moz-range-track]:rounded-full [&::-moz-range-track]:bg-[var(--refineui-slider-rail)] [&::-moz-range-progress]:rounded-full [&::-moz-range-progress]:bg-[var(--refineui-slider-fill-color)] [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:size-[var(--refineui-slider-thumb-size)] [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border [&::-webkit-slider-thumb]:border-refineui-alias-border-default [&::-webkit-slider-thumb]:bg-refineui-alias-background-primary [&::-webkit-slider-thumb]:shadow-refineui-2lighter [&::-webkit-slider-thumb]:transition-[transform,box-shadow,border-color,background-color] data-[size=md]:[&::-webkit-slider-thumb]:mt-[calc((var(--refineui-slider-thumb-size)-var(--refineui-size-slider-track-height-md))/-2)] data-[size=sm]:[&::-webkit-slider-thumb]:mt-[calc((var(--refineui-slider-thumb-size)-var(--refineui-size-slider-track-height-sm))/-2)] [&::-moz-range-thumb]:size-[var(--refineui-slider-thumb-size)] [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border [&::-moz-range-thumb]:border-refineui-alias-border-default [&::-moz-range-thumb]:bg-refineui-alias-background-primary [&::-moz-range-thumb]:shadow-refineui-2lighter [&::-moz-range-thumb]:transition-[transform,box-shadow,border-color,background-color] hover:[&::-webkit-slider-thumb]:border-refineui-alias-border-strong hover:[&::-webkit-slider-thumb]:shadow-refineui-2 hover:[&::-webkit-slider-thumb]:scale-[var(--refineui-motion-scale-hover-grow)] hover:[&::-moz-range-thumb]:border-refineui-alias-border-strong hover:[&::-moz-range-thumb]:shadow-refineui-2 hover:[&::-moz-range-thumb]:scale-[var(--refineui-motion-scale-hover-grow)] active:[&::-webkit-slider-thumb]:border-refineui-alias-border-strong active:[&::-webkit-slider-thumb]:shadow-refineui-2lighter active:[&::-webkit-slider-thumb]:scale-[var(--refineui-motion-scale-press)] active:[&::-moz-range-thumb]:border-refineui-alias-border-strong active:[&::-moz-range-thumb]:shadow-refineui-2lighter active:[&::-moz-range-thumb]:scale-[var(--refineui-motion-scale-press)] focus-visible:[&::-webkit-slider-thumb]:border-refineui-alias-border-focus focus-visible:[&::-webkit-slider-thumb]:shadow-[0_0_0_var(--refineui-stroke-width-thick)_var(--refineui-color-alias-border-focus),var(--refineui-elevation-2lighter)] focus-visible:[&::-moz-range-thumb]:border-refineui-alias-border-focus focus-visible:[&::-moz-range-thumb]:shadow-[0_0_0_var(--refineui-stroke-width-thick)_var(--refineui-color-alias-border-focus),var(--refineui-elevation-2lighter)] disabled:[&::-webkit-slider-thumb]:bg-refineui-alias-background-surface-disabled disabled:[&::-webkit-slider-thumb]:border-refineui-alias-border-disabled disabled:[&::-webkit-slider-thumb]:shadow-none disabled:[&::-webkit-slider-thumb]:transform-none disabled:[&::-moz-range-thumb]:bg-refineui-alias-background-surface-disabled disabled:[&::-moz-range-thumb]:border-refineui-alias-border-disabled disabled:[&::-moz-range-thumb]:shadow-none disabled:[&::-moz-range-thumb]:transform-none"
|
|
12199
12640
|
};
|
|
12200
12641
|
|
|
12201
12642
|
// src/components/Slider/Slider.tsx
|
|
@@ -12264,15 +12705,16 @@ var import_react47 = require("react");
|
|
|
12264
12705
|
// src/components/Carousel/style.ts
|
|
12265
12706
|
var import_clsx88 = require("clsx");
|
|
12266
12707
|
var carouselStyles = {
|
|
12267
|
-
root: "box-border flex w-full flex-col gap-refineui-size-large outline-none",
|
|
12708
|
+
root: "box-border flex w-full flex-col gap-refineui-size-large outline-none focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]",
|
|
12268
12709
|
viewport: (0, import_clsx88.clsx)(
|
|
12269
12710
|
"relative w-full cursor-grab overflow-hidden rounded-refineui-xx-large",
|
|
12270
12711
|
"border-refineui-thin border-refineui-alias-border-default bg-refineui-alias-background-primary",
|
|
12271
12712
|
"shadow-refineui-2 select-none",
|
|
12272
|
-
"active:cursor-grabbing"
|
|
12713
|
+
"touch-pan-y active:cursor-grabbing data-[dragging=true]:cursor-grabbing"
|
|
12273
12714
|
),
|
|
12274
12715
|
track: "flex will-change-transform",
|
|
12275
|
-
trackAnimated: "transition-transform duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)]",
|
|
12716
|
+
trackAnimated: "transition-transform duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:transition-none",
|
|
12717
|
+
navFocus: "focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]",
|
|
12276
12718
|
item: "box-border min-w-0 shrink-0 grow-0 basis-full",
|
|
12277
12719
|
controls: "flex w-full items-center justify-center gap-refineui-size-medium",
|
|
12278
12720
|
/** Sliding-pill meter (SegmentedControl-like), not a row of dots */
|
|
@@ -12283,11 +12725,10 @@ var carouselStyles = {
|
|
|
12283
12725
|
),
|
|
12284
12726
|
indicatorThumb: (0, import_clsx88.clsx)(
|
|
12285
12727
|
"pointer-events-none absolute top-refineui-size-xxx-small bottom-refineui-size-xxx-small start-refineui-size-xxx-small z-0",
|
|
12286
|
-
|
|
12287
|
-
"rounded-refineui-circle bg-refineui-alias-background-brand shadow-refineui-2"
|
|
12728
|
+
"rounded-refineui-circle bg-refineui-alias-background-brand shadow-refineui-2 transition-none data-[animate=true]:transition-[transform,width] data-[animate=true]:duration-[var(--refineui-motion-duration-medium)] data-[animate=true]:ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:transition-none"
|
|
12288
12729
|
),
|
|
12289
12730
|
indicatorHitRow: "relative z-[1] flex h-full w-full",
|
|
12290
|
-
indicatorHit: "h-full min-w-0 flex-1 cursor-pointer border-none bg-transparent p-0 outline-none"
|
|
12731
|
+
indicatorHit: "h-full min-w-0 flex-1 cursor-pointer border-none bg-transparent p-0 outline-none focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)]"
|
|
12291
12732
|
};
|
|
12292
12733
|
|
|
12293
12734
|
// src/components/Carousel/Carousel.tsx
|
|
@@ -12303,6 +12744,14 @@ function clampIndex(i, count) {
|
|
|
12303
12744
|
if (count <= 0) return 0;
|
|
12304
12745
|
return Math.min(count - 1, Math.max(0, i));
|
|
12305
12746
|
}
|
|
12747
|
+
function getInitialSlideCount(children) {
|
|
12748
|
+
let slideCount = 0;
|
|
12749
|
+
import_react47.Children.forEach(children, (child) => {
|
|
12750
|
+
if (!(0, import_react47.isValidElement)(child) || child.type !== CarouselContent) return;
|
|
12751
|
+
slideCount = import_react47.Children.toArray(child.props.children).filter(import_react47.isValidElement).length;
|
|
12752
|
+
});
|
|
12753
|
+
return slideCount;
|
|
12754
|
+
}
|
|
12306
12755
|
function Carousel({
|
|
12307
12756
|
children,
|
|
12308
12757
|
className,
|
|
@@ -12315,7 +12764,7 @@ function Carousel({
|
|
|
12315
12764
|
}) {
|
|
12316
12765
|
const isControlled = indexControlled !== void 0;
|
|
12317
12766
|
const [internalIndex, setInternalIndex] = (0, import_react47.useState)(defaultIndex);
|
|
12318
|
-
const [count, setCount] = (0, import_react47.useState)(
|
|
12767
|
+
const [count, setCount] = (0, import_react47.useState)(() => getInitialSlideCount(children));
|
|
12319
12768
|
const [trackIndex, setTrackIndex] = (0, import_react47.useState)(defaultIndex);
|
|
12320
12769
|
const [instant, setInstant] = (0, import_react47.useState)(false);
|
|
12321
12770
|
const index = isControlled ? indexControlled : internalIndex;
|
|
@@ -12595,7 +13044,7 @@ function CarouselPrevious({ className, disabled, onClick, ...props }) {
|
|
|
12595
13044
|
"data-dir": "prev",
|
|
12596
13045
|
"aria-label": "Previous slide",
|
|
12597
13046
|
disabled: isDisabled,
|
|
12598
|
-
className,
|
|
13047
|
+
className: (0, import_clsx89.clsx)(carouselStyles.navFocus, className),
|
|
12599
13048
|
...props,
|
|
12600
13049
|
onClick: (e) => {
|
|
12601
13050
|
onClick?.(e);
|
|
@@ -12627,7 +13076,7 @@ function CarouselNext({ className, disabled, onClick, ...props }) {
|
|
|
12627
13076
|
"data-dir": "next",
|
|
12628
13077
|
"aria-label": "Next slide",
|
|
12629
13078
|
disabled: isDisabled,
|
|
12630
|
-
className,
|
|
13079
|
+
className: (0, import_clsx89.clsx)(carouselStyles.navFocus, className),
|
|
12631
13080
|
...props,
|
|
12632
13081
|
onClick: (e) => {
|
|
12633
13082
|
onClick?.(e);
|
|
@@ -12648,33 +13097,10 @@ function CarouselNext({ className, disabled, onClick, ...props }) {
|
|
|
12648
13097
|
}
|
|
12649
13098
|
function CarouselIndicators({ className, ...props }) {
|
|
12650
13099
|
const { count, index, scrollTo } = useCarouselContext("CarouselIndicators");
|
|
12651
|
-
const trackRef = (0, import_react47.useRef)(null);
|
|
12652
|
-
const [thumb, setThumb] = (0, import_react47.useState)({ width: 0, x: 0, ready: false });
|
|
12653
13100
|
const [animate, setAnimate] = (0, import_react47.useState)(false);
|
|
12654
|
-
const updateThumb = (0, import_react47.useCallback)(() => {
|
|
12655
|
-
const el = trackRef.current;
|
|
12656
|
-
if (!el || count <= 0) {
|
|
12657
|
-
setThumb({ width: 0, x: 0, ready: false });
|
|
12658
|
-
return;
|
|
12659
|
-
}
|
|
12660
|
-
const hits = el.querySelector("[data-refineui='carousel-indicator-hits']");
|
|
12661
|
-
const inner = hits?.clientWidth ?? el.clientWidth;
|
|
12662
|
-
const width = inner / count;
|
|
12663
|
-
setThumb({
|
|
12664
|
-
width,
|
|
12665
|
-
x: width * index,
|
|
12666
|
-
ready: true
|
|
12667
|
-
});
|
|
12668
|
-
}, [count, index]);
|
|
12669
|
-
(0, import_react47.useLayoutEffect)(() => {
|
|
12670
|
-
updateThumb();
|
|
12671
|
-
}, [updateThumb]);
|
|
12672
13101
|
(0, import_react47.useEffect)(() => {
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
return;
|
|
12676
|
-
}
|
|
12677
|
-
if (animate) return;
|
|
13102
|
+
setAnimate(false);
|
|
13103
|
+
if (count <= 0) return;
|
|
12678
13104
|
let raf2 = 0;
|
|
12679
13105
|
const raf1 = requestAnimationFrame(() => {
|
|
12680
13106
|
raf2 = requestAnimationFrame(() => setAnimate(true));
|
|
@@ -12683,23 +13109,16 @@ function CarouselIndicators({ className, ...props }) {
|
|
|
12683
13109
|
cancelAnimationFrame(raf1);
|
|
12684
13110
|
cancelAnimationFrame(raf2);
|
|
12685
13111
|
};
|
|
12686
|
-
}, [
|
|
12687
|
-
(0, import_react47.useEffect)(() => {
|
|
12688
|
-
const el = trackRef.current;
|
|
12689
|
-
if (!el) return;
|
|
12690
|
-
const ro = new ResizeObserver(() => updateThumb());
|
|
12691
|
-
ro.observe(el);
|
|
12692
|
-
return () => ro.disconnect();
|
|
12693
|
-
}, [updateThumb]);
|
|
13112
|
+
}, [count]);
|
|
12694
13113
|
if (count <= 0) return null;
|
|
13114
|
+
const selectedIndex = clampIndex(index, count);
|
|
12695
13115
|
const thumbStyle = {
|
|
12696
|
-
width:
|
|
12697
|
-
transform: `translate3d(${
|
|
13116
|
+
width: `${100 / count}%`,
|
|
13117
|
+
transform: `translate3d(${selectedIndex * 100}%, 0, 0)`
|
|
12698
13118
|
};
|
|
12699
13119
|
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
12700
13120
|
"div",
|
|
12701
13121
|
{
|
|
12702
|
-
ref: trackRef,
|
|
12703
13122
|
"data-refineui": "carousel-indicators",
|
|
12704
13123
|
role: "tablist",
|
|
12705
13124
|
"aria-label": "Slides",
|
|
@@ -12710,7 +13129,6 @@ function CarouselIndicators({ className, ...props }) {
|
|
|
12710
13129
|
"span",
|
|
12711
13130
|
{
|
|
12712
13131
|
"data-refineui": "carousel-indicator-thumb",
|
|
12713
|
-
"data-ready": thumb.ready ? "true" : void 0,
|
|
12714
13132
|
"data-animate": animate ? "true" : void 0,
|
|
12715
13133
|
"aria-hidden": true,
|
|
12716
13134
|
className: carouselStyles.indicatorThumb,
|
|
@@ -12746,10 +13164,14 @@ var BUBBLE_MAX_WIDTH = "80%";
|
|
|
12746
13164
|
var bubbleStyles = {
|
|
12747
13165
|
group: (0, import_clsx90.clsx)(
|
|
12748
13166
|
"flex min-w-0 flex-col gap-refineui-size-xx-small",
|
|
12749
|
-
// Connected corners
|
|
12750
|
-
|
|
12751
|
-
"[&>[data-refineui=bubble]:
|
|
12752
|
-
"[&>[data-refineui=bubble]:
|
|
13167
|
+
// Connected corners only flatten along the sender edge. The opposite
|
|
13168
|
+
// edge keeps the outer bubble radius, including in RTL layouts.
|
|
13169
|
+
"[&>[data-refineui=bubble][data-align=start]:first-child:not(:only-child)_[data-refineui=bubble-content]]:[border-end-start-radius:var(--refineui-radius-rounded-medium)]",
|
|
13170
|
+
"[&>[data-refineui=bubble][data-align=end]:first-child:not(:only-child)_[data-refineui=bubble-content]]:[border-end-end-radius:var(--refineui-radius-rounded-medium)]",
|
|
13171
|
+
"[&>[data-refineui=bubble][data-align=start]:last-child:not(:only-child)_[data-refineui=bubble-content]]:[border-start-start-radius:var(--refineui-radius-rounded-medium)]",
|
|
13172
|
+
"[&>[data-refineui=bubble][data-align=end]:last-child:not(:only-child)_[data-refineui=bubble-content]]:[border-start-end-radius:var(--refineui-radius-rounded-medium)]",
|
|
13173
|
+
"[&>[data-refineui=bubble][data-align=start]:not(:first-child):not(:last-child)_[data-refineui=bubble-content]]:[border-start-start-radius:var(--refineui-radius-rounded-medium)] [&>[data-refineui=bubble][data-align=start]:not(:first-child):not(:last-child)_[data-refineui=bubble-content]]:[border-end-start-radius:var(--refineui-radius-rounded-medium)]",
|
|
13174
|
+
"[&>[data-refineui=bubble][data-align=end]:not(:first-child):not(:last-child)_[data-refineui=bubble-content]]:[border-start-end-radius:var(--refineui-radius-rounded-medium)] [&>[data-refineui=bubble][data-align=end]:not(:first-child):not(:last-child)_[data-refineui=bubble-content]]:[border-end-end-radius:var(--refineui-radius-rounded-medium)]",
|
|
12753
13175
|
// Room for overlapping reactions on the last bubble in a group
|
|
12754
13176
|
"[&>[data-refineui=bubble][data-has-reactions-bottom]:not(:last-child)]:mb-refineui-size-xx-large"
|
|
12755
13177
|
),
|
|
@@ -12945,7 +13367,10 @@ var stepperStyles = {
|
|
|
12945
13367
|
"hover:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:bg-refineui-alias-background-primary-hover",
|
|
12946
13368
|
"hover:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:border-refineui-alias-border-strong",
|
|
12947
13369
|
"hover:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:text-refineui-alias-foreground-primary-hover",
|
|
12948
|
-
"hover:[&_[data-refineui=stepper-title][data-state=upcoming]]:text-refineui-alias-foreground-primary"
|
|
13370
|
+
"hover:[&_[data-refineui=stepper-title][data-state=upcoming]]:text-refineui-alias-foreground-primary",
|
|
13371
|
+
"active:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:bg-refineui-alias-background-primary-active",
|
|
13372
|
+
"active:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:border-refineui-alias-border-strong",
|
|
13373
|
+
"active:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:text-refineui-alias-foreground-primary"
|
|
12949
13374
|
),
|
|
12950
13375
|
itemDisabled: "cursor-not-allowed opacity-50",
|
|
12951
13376
|
indicator: (0, import_clsx92.clsx)(
|
|
@@ -13796,7 +14221,7 @@ var import_tokens29 = require("@refineui/tokens");
|
|
|
13796
14221
|
|
|
13797
14222
|
// src/components/SpinButton/style.ts
|
|
13798
14223
|
var spinButtonStyles = {
|
|
13799
|
-
root: "box-border flex w-full min-w-0 items-stretch overflow-hidden outline-none",
|
|
14224
|
+
root: "box-border flex w-full min-w-0 items-stretch overflow-hidden outline-none transition-[border-color,background-color] duration-[var(--refineui-motion-duration-fast)] focus-within:border-refineui-alias-border-focus active:transform-none",
|
|
13800
14225
|
borderDisabled: "border-refineui-thin border-refineui-alias-border-disabled",
|
|
13801
14226
|
borderDefault: "border-refineui-thin border-refineui-alias-border-default",
|
|
13802
14227
|
bgDisabled: "bg-refineui-alias-background-surface-disabled",
|
|
@@ -13807,9 +14232,9 @@ var spinButtonStyles = {
|
|
|
13807
14232
|
valueTextDefault: "text-refineui-alias-foreground-primary",
|
|
13808
14233
|
stepper: "flex h-full min-h-0 w-refineui-spin-stepper-width shrink-0 flex-col",
|
|
13809
14234
|
/** Split column evenly inside shared `controlHeight*` shell */
|
|
13810
|
-
stepButtonBase: "box-border flex min-h-0 w-full flex-1 items-center justify-center border-none p-0 text-refineui-alias-foreground-secondary",
|
|
13811
|
-
stepButtonDisabled: "cursor-not-allowed bg-refineui-alias-background-surface-disabled opacity-50",
|
|
13812
|
-
stepButtonEnabled: "cursor-pointer bg-refineui-alias-background-primary opacity-100"
|
|
14235
|
+
stepButtonBase: "box-border flex min-h-0 w-full flex-1 items-center justify-center border-none p-0 text-refineui-alias-foreground-secondary outline-none transition-[background-color,color,opacity] duration-[var(--refineui-motion-duration-fast)] active:transform-none focus-visible:outline-none",
|
|
14236
|
+
stepButtonDisabled: "cursor-not-allowed bg-refineui-alias-background-surface-disabled opacity-50 text-refineui-alias-foreground-disabled",
|
|
14237
|
+
stepButtonEnabled: "cursor-pointer bg-refineui-alias-background-primary opacity-100 hover:bg-refineui-alias-background-surface-hover hover:text-refineui-alias-foreground-primary active:bg-refineui-alias-background-surface-active active:text-refineui-alias-foreground-primary"
|
|
13813
14238
|
};
|
|
13814
14239
|
var spinButtonShellClass = formControlShellHeightClass;
|
|
13815
14240
|
var spinButtonValueTypo = formControlTypoClass;
|
|
@@ -14068,7 +14493,7 @@ var toastRecipe = defineRecipe({
|
|
|
14068
14493
|
dataStates: ["default"]
|
|
14069
14494
|
});
|
|
14070
14495
|
var toastStyles = {
|
|
14071
|
-
card: toastRecipe.base,
|
|
14496
|
+
card: `${toastRecipe.base} touch-none [--refineui-toast-swipe-x:0] [--refineui-toast-swipe-y:0] [--refineui-toast-motion-duration:var(--refineui-motion-duration-toast-enter)] [--refineui-toast-motion-easing:var(--refineui-motion-easing-emphasized)] [transform:translate3d(var(--refineui-toast-swipe-x),var(--refineui-toast-swipe-y),0)] transition-[opacity,transform] duration-[var(--refineui-toast-motion-duration)] ease-[var(--refineui-toast-motion-easing)] shadow-refineui-toast will-change-[transform,opacity] motion-reduce:duration-[var(--refineui-motion-duration-instant)] motion-reduce:data-[stack-state=entering]:transform-none motion-reduce:[&[data-stack-state=leaving]:not([data-swipe-out])]:transform-none data-[swiping=true]:cursor-grabbing data-[swiping=true]:transition-none data-[swipe-out=left]:[--refineui-toast-swipe-x:-120%] data-[swipe-out=left]:opacity-0 data-[swipe-out=right]:[--refineui-toast-swipe-x:120%] data-[swipe-out=right]:opacity-0 data-[swipe-out=top]:[--refineui-toast-swipe-y:-120%] data-[swipe-out=top]:opacity-0 data-[swipe-out=bottom]:[--refineui-toast-swipe-y:120%] data-[swipe-out=bottom]:opacity-0 data-[stack-state=entering]:opacity-0 data-[stack-state=entering]:[transform:translate3d(var(--refineui-toast-swipe-x),var(--refineui-toast-slide-in-y,-100%),0)] data-[stack-state=leaving]:[--refineui-toast-motion-duration:var(--refineui-motion-duration-toast-leave)] data-[stack-state=leaving]:[--refineui-toast-motion-easing:var(--refineui-motion-easing-standard)] [&[data-stack-state=leaving]:not([data-swipe-out])]:opacity-0 [&[data-stack-state=leaving]:not([data-swipe-out])]:[transform:translate3d(var(--refineui-toast-swipe-x),var(--refineui-toast-slide-out-y,-100%),0)]`,
|
|
14072
14497
|
iconWrap: "flex shrink-0 items-center justify-center self-center",
|
|
14073
14498
|
contentWrap: "flex min-h-px min-w-0 flex-1 items-center",
|
|
14074
14499
|
message: (0, import_clsx97.clsx)(
|
|
@@ -14076,7 +14501,9 @@ var toastStyles = {
|
|
|
14076
14501
|
"text-refineui-alias-foreground-primary"
|
|
14077
14502
|
),
|
|
14078
14503
|
actionButton: "shrink-0 whitespace-nowrap",
|
|
14079
|
-
toasterRoot: "refineui-toaster
|
|
14504
|
+
toasterRoot: "group/toaster fixed start-1/2 top-[calc(var(--refineui-spacing-size-xxx-large)+var(--refineui-spacing-size-large)+env(safe-area-inset-top,0px))] z-refineui-messages box-border min-h-[var(--refineui-toast-collapsed-stack-height,var(--refineui-toast-front-height,0))] w-[min(calc(100%-env(safe-area-inset-left,0px)-env(safe-area-inset-right,0px)-2*var(--refineui-spacing-size-large)),var(--refineui-size-toast-max-width))] max-w-refineui-toast-max-width -translate-x-1/2 list-none p-0 pointer-events-none transition-[min-height] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:duration-[var(--refineui-motion-duration-instant)] before:absolute before:inset-0 before:z-0 before:content-[''] before:pointer-events-auto group-hover/toaster:min-h-[var(--refineui-toast-expanded-stack-height,var(--refineui-toast-collapsed-stack-height,0))] max-[480px]:top-[calc(var(--refineui-spacing-size-xxx-large)+env(safe-area-inset-top,0px))] max-[480px]:w-[min(calc(100%-env(safe-area-inset-left,0px)-env(safe-area-inset-right,0px)-2*var(--refineui-spacing-size-medium)),var(--refineui-size-toast-max-width))]",
|
|
14505
|
+
stackItem: "absolute inset-x-0 top-0 z-[var(--refineui-toast-z-index,100)] flex justify-center overflow-visible pointer-events-auto translate-y-[var(--refineui-toast-offset-collapsed,0)] transition-[transform,height] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)] group-hover/toaster:translate-y-[var(--refineui-toast-offset-expanded,0)]",
|
|
14506
|
+
scaleLayer: "relative box-border w-fit max-w-full origin-top scale-[calc(1-(var(--refineui-toast-stack-index,0)*0.018))] opacity-[calc(1-(var(--refineui-toast-stack-index,0)*0.12))] transition-[transform,opacity] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)] group-hover/toaster:scale-100 group-hover/toaster:opacity-100"
|
|
14080
14507
|
};
|
|
14081
14508
|
|
|
14082
14509
|
// src/components/Toast/Toast.tsx
|
|
@@ -14307,7 +14734,20 @@ var Toast = (0, import_react52.forwardRef)(function Toast2(props, ref) {
|
|
|
14307
14734
|
style: { ...tokenStyle, ...style },
|
|
14308
14735
|
className: (0, import_clsx98.clsx)(toastStyles.card, className),
|
|
14309
14736
|
children: [
|
|
14310
|
-
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
14737
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
14738
|
+
"div",
|
|
14739
|
+
{
|
|
14740
|
+
"data-refineui": "toast-icon",
|
|
14741
|
+
className: (0, import_clsx98.clsx)(
|
|
14742
|
+
toastStyles.iconWrap,
|
|
14743
|
+
variant === "success" && "text-refineui-alias-foreground-success",
|
|
14744
|
+
variant === "error" && "text-refineui-alias-foreground-error",
|
|
14745
|
+
variant === "warning" && "text-refineui-alias-foreground-warning",
|
|
14746
|
+
variant === "default" && "text-refineui-alias-foreground-primary"
|
|
14747
|
+
),
|
|
14748
|
+
children: iconContent
|
|
14749
|
+
}
|
|
14750
|
+
),
|
|
14311
14751
|
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: toastStyles.contentWrap, children: message != null && message !== "" ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: toastStyles.message, children: message }) : null }),
|
|
14312
14752
|
action != null && actionEl
|
|
14313
14753
|
]
|
|
@@ -14558,11 +14998,12 @@ function Toaster({
|
|
|
14558
14998
|
"data-toast-id": rec.id,
|
|
14559
14999
|
"data-index": index,
|
|
14560
15000
|
"data-front": index === 0 ? "true" : "false",
|
|
15001
|
+
className: toastStyles.stackItem,
|
|
14561
15002
|
style: {
|
|
14562
15003
|
["--refineui-toast-z-index"]: String(STACK_Z_BASE - index),
|
|
14563
15004
|
["--refineui-toast-stack-index"]: String(index)
|
|
14564
15005
|
},
|
|
14565
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { "data-refineui": "toast-scale-layer", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
15006
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { "data-refineui": "toast-scale-layer", className: toastStyles.scaleLayer, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
14566
15007
|
SwipeableToast,
|
|
14567
15008
|
{
|
|
14568
15009
|
record: rec,
|
|
@@ -14625,9 +15066,9 @@ var treeStyles = {
|
|
|
14625
15066
|
"rounded-refineui-large border-none bg-transparent",
|
|
14626
15067
|
"px-refineui-size-medium py-refineui-size-x-small",
|
|
14627
15068
|
"text-refineui-alias-foreground-tertiary outline-none",
|
|
14628
|
-
"transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
15069
|
+
"transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] hover:bg-refineui-alias-background-primary-hover hover:text-refineui-alias-foreground-primary-hover active:bg-refineui-alias-background-primary-active active:text-refineui-alias-foreground-primary focus-visible:outline-[length:var(--refineui-stroke-width-thick)] focus-visible:[outline-color:var(--refineui-focus-color)] focus-visible:[outline-offset:var(--refineui-focus-offset)] aria-disabled:pointer-events-none"
|
|
14629
15070
|
),
|
|
14630
|
-
rowSelected: "font-medium text-refineui-alias-foreground-primary",
|
|
15071
|
+
rowSelected: "font-medium bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
14631
15072
|
rowDisabled: "cursor-not-allowed",
|
|
14632
15073
|
rowMain: "flex min-w-0 flex-1 items-center gap-refineui-size-x-small",
|
|
14633
15074
|
chevronButton: (0, import_clsx99.clsx)(
|
|
@@ -15252,7 +15693,7 @@ var chartStyles = {
|
|
|
15252
15693
|
root: "flex w-full min-w-0 flex-col gap-refineui-size-medium",
|
|
15253
15694
|
body: "grid w-full min-w-0 grid-cols-[auto_minmax(0,1fr)] grid-rows-[minmax(0,1fr)_auto_auto] items-stretch gap-x-refineui-size-medium",
|
|
15254
15695
|
plotColumn: "contents",
|
|
15255
|
-
plotFrame: "relative col-start-2 row-start-1 min-w-0",
|
|
15696
|
+
plotFrame: "group/chart-plot relative col-start-2 row-start-1 min-w-0",
|
|
15256
15697
|
plot: "block h-auto w-full min-w-0 aspect-[5/2] overflow-visible",
|
|
15257
15698
|
yAxis: "relative col-start-1 row-start-1 min-w-refineui-foundation-size-400 pe-refineui-size-x-small",
|
|
15258
15699
|
yAxisTick: (0, import_clsx106.clsx)(
|
|
@@ -15284,7 +15725,12 @@ var chartStyles = {
|
|
|
15284
15725
|
componentTextClass(componentTypographyTokens.chart.legendLabel),
|
|
15285
15726
|
"flex items-center gap-refineui-size-x-small text-refineui-alias-foreground-secondary"
|
|
15286
15727
|
),
|
|
15287
|
-
legendSwatch: "size-refineui-foundation-size-80 shrink-0 rounded-refineui-small"
|
|
15728
|
+
legendSwatch: "size-refineui-foundation-size-80 shrink-0 rounded-refineui-small",
|
|
15729
|
+
bar: "[transform-box:fill-box] origin-bottom [animation:refineui-chart-bar-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-emphasized)_both] transition-opacity duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] group-data-[hover]/chart-plot:data-[state=default]:opacity-[var(--refineui-opacity-disabled)] data-[state=hover]:opacity-[var(--refineui-opacity-full)] data-[state=selected]:opacity-[var(--refineui-opacity-full)]",
|
|
15730
|
+
barTrack: "pointer-events-none",
|
|
15731
|
+
lineStroke: "[stroke-dasharray:1] [stroke-dashoffset:1] [animation:refineui-chart-line-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-emphasized)_both]",
|
|
15732
|
+
lineArea: "[animation:refineui-chart-point-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-emphasized)_both]",
|
|
15733
|
+
point: "[animation:refineui-chart-point-enter_var(--refineui-motion-duration-fast)_var(--refineui-motion-easing-emphasized)_both]"
|
|
15288
15734
|
};
|
|
15289
15735
|
|
|
15290
15736
|
// src/components/Chart/utils.ts
|
|
@@ -15761,7 +16207,8 @@ function ChartBars({
|
|
|
15761
16207
|
trackHeight,
|
|
15762
16208
|
barRadius
|
|
15763
16209
|
),
|
|
15764
|
-
fill: track
|
|
16210
|
+
fill: track,
|
|
16211
|
+
className: chartStyles.barTrack
|
|
15765
16212
|
},
|
|
15766
16213
|
`track-${index}`
|
|
15767
16214
|
);
|
|
@@ -15778,7 +16225,8 @@ function ChartBars({
|
|
|
15778
16225
|
"data-refineui": "chart-bar",
|
|
15779
16226
|
"data-state": state,
|
|
15780
16227
|
d: barPathTopRounded(x, y, barWidth, height, barRadius),
|
|
15781
|
-
fill
|
|
16228
|
+
fill,
|
|
16229
|
+
className: chartStyles.bar
|
|
15782
16230
|
},
|
|
15783
16231
|
index
|
|
15784
16232
|
);
|
|
@@ -15823,7 +16271,8 @@ function ChartLine({
|
|
|
15823
16271
|
{
|
|
15824
16272
|
"data-refineui": "chart-line-area",
|
|
15825
16273
|
d: monotoneAreaPath(coords, baselineY),
|
|
15826
|
-
fill: `url(#${gradientId})
|
|
16274
|
+
fill: `url(#${gradientId})`,
|
|
16275
|
+
className: chartStyles.lineArea
|
|
15827
16276
|
}
|
|
15828
16277
|
)
|
|
15829
16278
|
] }) : null,
|
|
@@ -15838,7 +16287,8 @@ function ChartLine({
|
|
|
15838
16287
|
strokeWidth: "var(--refineui-stroke-width-thick)",
|
|
15839
16288
|
vectorEffect: "non-scaling-stroke",
|
|
15840
16289
|
strokeLinejoin: "round",
|
|
15841
|
-
strokeLinecap: "round"
|
|
16290
|
+
strokeLinecap: "round",
|
|
16291
|
+
className: chartStyles.lineStroke
|
|
15842
16292
|
}
|
|
15843
16293
|
),
|
|
15844
16294
|
coords.map(({ x, y }, index) => {
|
|
@@ -15855,7 +16305,8 @@ function ChartLine({
|
|
|
15855
16305
|
r: CHART_POINT_RADIUS,
|
|
15856
16306
|
fill: stroke,
|
|
15857
16307
|
stroke: pointRing,
|
|
15858
|
-
strokeWidth: CHART_POINT_STROKE
|
|
16308
|
+
strokeWidth: CHART_POINT_STROKE,
|
|
16309
|
+
className: chartStyles.point
|
|
15859
16310
|
},
|
|
15860
16311
|
index
|
|
15861
16312
|
);
|