@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.js
CHANGED
|
@@ -1201,10 +1201,10 @@ function resolveSlotClasses(recipe, slot, variants = {}) {
|
|
|
1201
1201
|
|
|
1202
1202
|
// src/recipes/button.recipe.ts
|
|
1203
1203
|
var buttonVariantClass = {
|
|
1204
|
-
primary: "border-refineui-none border border-transparent bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed",
|
|
1205
|
-
secondary: "border-refineui-none border border-transparent bg-refineui-alias-background-surface-hover text-refineui-alias-foreground-primary",
|
|
1206
|
-
outline: "border-refineui-thin border-refineui-alias-border-default bg-transparent text-refineui-alias-foreground-primary",
|
|
1207
|
-
ghost: "border-refineui-none border border-transparent bg-transparent text-refineui-alias-foreground-primary"
|
|
1204
|
+
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",
|
|
1205
|
+
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",
|
|
1206
|
+
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",
|
|
1207
|
+
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"
|
|
1208
1208
|
};
|
|
1209
1209
|
var buttonLabelSizeClass = {
|
|
1210
1210
|
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")}`,
|
|
@@ -1218,7 +1218,7 @@ var buttonIconSizeClass = {
|
|
|
1218
1218
|
};
|
|
1219
1219
|
var buttonRecipe = defineRecipe({
|
|
1220
1220
|
name: "button",
|
|
1221
|
-
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)]",
|
|
1221
|
+
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",
|
|
1222
1222
|
variants: {
|
|
1223
1223
|
variant: buttonVariantClass,
|
|
1224
1224
|
layout: {
|
|
@@ -1234,7 +1234,7 @@ var buttonRecipe = defineRecipe({
|
|
|
1234
1234
|
compoundVariants: [
|
|
1235
1235
|
{
|
|
1236
1236
|
match: { variant: "ghost", layout: "icon" },
|
|
1237
|
-
className: "border-refineui-none border border-transparent bg-transparent text-refineui-alias-foreground-secondary hover:text-refineui-alias-foreground-primary-hover"
|
|
1237
|
+
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"
|
|
1238
1238
|
},
|
|
1239
1239
|
{
|
|
1240
1240
|
match: { layout: "icon", variant: "primary" },
|
|
@@ -1368,7 +1368,7 @@ var formControlShellHeightClass = {
|
|
|
1368
1368
|
|
|
1369
1369
|
// src/components/Input/style.ts
|
|
1370
1370
|
var inputStyles = {
|
|
1371
|
-
base: "box-border appearance-none outline-none transition-[border-color,box-shadow,background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
1371
|
+
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",
|
|
1372
1372
|
text: "text-refineui-alias-foreground-primary placeholder:text-refineui-alias-foreground-placeholder",
|
|
1373
1373
|
disabledText: "disabled:text-refineui-alias-foreground-disabled",
|
|
1374
1374
|
disabledBg: "bg-refineui-alias-background-surface-disabled",
|
|
@@ -1455,6 +1455,13 @@ var inputOtpStyles = {
|
|
|
1455
1455
|
"transition-[background-color,border-color]",
|
|
1456
1456
|
"duration-[var(--refineui-motion-duration-fast)]",
|
|
1457
1457
|
"ease-[var(--refineui-motion-easing-emphasized)]",
|
|
1458
|
+
// Empty slots retain the staggered soft pulse until they receive focus or a digit.
|
|
1459
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:animate-pulse",
|
|
1460
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:[animation-duration:var(--refineui-motion-duration-skeleton)]",
|
|
1461
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:[animation-timing-function:var(--refineui-motion-easing-ease-in-out)]",
|
|
1462
|
+
"[&:not(:disabled):not(:focus):not([data-filled])]:[animation-delay:calc(var(--refineui-input-otp-slot-index,0)*var(--refineui-motion-duration-fast)*-1)]",
|
|
1463
|
+
"motion-reduce:animate-none",
|
|
1464
|
+
"caret-refineui-alias-foreground-primary hover:bg-refineui-alias-background-surface-active focus:border-refineui-alias-border-default",
|
|
1458
1465
|
"disabled:cursor-not-allowed",
|
|
1459
1466
|
"disabled:border-refineui-alias-border-disabled",
|
|
1460
1467
|
"disabled:bg-refineui-alias-background-surface-disabled",
|
|
@@ -1462,9 +1469,9 @@ var inputOtpStyles = {
|
|
|
1462
1469
|
)
|
|
1463
1470
|
};
|
|
1464
1471
|
var inputOtpSlotSizeClass = {
|
|
1465
|
-
sm: "size-refineui-control-height-sm rounded-refineui-large p-0",
|
|
1466
|
-
md: "size-refineui-control-height-md rounded-refineui-x-large p-0",
|
|
1467
|
-
lg: "size-refineui-control-height-lg rounded-refineui-xx-large p-0"
|
|
1472
|
+
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)]",
|
|
1473
|
+
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)]",
|
|
1474
|
+
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)]"
|
|
1468
1475
|
};
|
|
1469
1476
|
|
|
1470
1477
|
// src/components/InputOTP/InputOTP.tsx
|
|
@@ -1754,7 +1761,7 @@ var searchFieldStyles = {
|
|
|
1754
1761
|
"box-border flex w-full min-w-0 items-center gap-refineui-size-x-small overflow-hidden outline-none",
|
|
1755
1762
|
"transition-[background-color,border-color]",
|
|
1756
1763
|
"duration-[var(--refineui-motion-duration-fast)]",
|
|
1757
|
-
"ease-[var(--refineui-motion-easing-emphasized)]"
|
|
1764
|
+
"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"
|
|
1758
1765
|
].join(" "),
|
|
1759
1766
|
rootFilled: [
|
|
1760
1767
|
"border-refineui-thin border-transparent",
|
|
@@ -1762,14 +1769,14 @@ var searchFieldStyles = {
|
|
|
1762
1769
|
"bg-refineui-alias-background-surface-hover"
|
|
1763
1770
|
].join(" "),
|
|
1764
1771
|
rootPlain: [
|
|
1765
|
-
"h-auto min-h-0 rounded-none border-none bg-transparent px-0 py-0"
|
|
1772
|
+
"h-auto min-h-0 rounded-none border-none bg-transparent px-0 py-0 hover:bg-transparent focus-within:border-transparent"
|
|
1766
1773
|
].join(" "),
|
|
1767
1774
|
rootDisabled: "border-refineui-alias-border-disabled bg-refineui-alias-background-surface-disabled",
|
|
1768
1775
|
rootPlainDisabled: "bg-transparent",
|
|
1769
1776
|
icon: "inline-flex shrink-0 items-center justify-center text-refineui-alias-foreground-tertiary",
|
|
1770
1777
|
iconDisabled: "text-refineui-alias-foreground-disabled",
|
|
1771
|
-
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",
|
|
1772
|
-
clear: "inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent p-0 leading-none text-refineui-alias-foreground-tertiary",
|
|
1778
|
+
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",
|
|
1779
|
+
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",
|
|
1773
1780
|
clearDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled"
|
|
1774
1781
|
};
|
|
1775
1782
|
var searchFieldFilledSizeClass = formControlRowShellSizeClass;
|
|
@@ -2000,7 +2007,7 @@ import { clsx as clsx9 } from "clsx";
|
|
|
2000
2007
|
// src/components/Textarea/style.ts
|
|
2001
2008
|
import { clsx as clsx8 } from "clsx";
|
|
2002
2009
|
var textareaStyles = {
|
|
2003
|
-
base: "box-border appearance-none outline-none transition-[border-color,box-shadow,background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
2010
|
+
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",
|
|
2004
2011
|
field: clsx8(
|
|
2005
2012
|
componentTextClass(componentTypographyTokens.textarea),
|
|
2006
2013
|
"min-h-refineui-control-textarea-min resize-y rounded-refineui-large px-refineui-size-x-small py-refineui-size-medium"
|
|
@@ -2057,18 +2064,18 @@ import { clsx as clsx11 } from "clsx";
|
|
|
2057
2064
|
// src/recipes/badge.recipe.ts
|
|
2058
2065
|
import { clsx as clsx10 } from "clsx";
|
|
2059
2066
|
var badgeVariantClass = {
|
|
2060
|
-
default: "bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed",
|
|
2061
|
-
neutral: "bg-refineui-alias-background-brand-subtle text-refineui-alias-foreground-brand-strong",
|
|
2062
|
-
outline: "border-refineui-thin border-refineui-alias-border-default border bg-transparent text-refineui-alias-foreground-primary box-border",
|
|
2063
|
-
success: "bg-refineui-alias-background-success text-refineui-alias-foreground-inversed",
|
|
2064
|
-
warning: "bg-refineui-alias-background-warning text-refineui-alias-foreground-inversed",
|
|
2065
|
-
danger: "bg-refineui-alias-background-error text-refineui-alias-foreground-inversed"
|
|
2067
|
+
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",
|
|
2068
|
+
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",
|
|
2069
|
+
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",
|
|
2070
|
+
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",
|
|
2071
|
+
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",
|
|
2072
|
+
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"
|
|
2066
2073
|
};
|
|
2067
2074
|
var badgeRecipe = defineRecipe({
|
|
2068
2075
|
name: "badge",
|
|
2069
2076
|
base: clsx10(
|
|
2070
2077
|
componentTextClass(componentTypographyTokens.badge),
|
|
2071
|
-
"inline-flex items-center justify-center py-refineui-size-xxsmall px-refineui-size-small"
|
|
2078
|
+
"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)]"
|
|
2072
2079
|
),
|
|
2073
2080
|
variants: {
|
|
2074
2081
|
variant: badgeVariantClass,
|
|
@@ -2114,26 +2121,27 @@ import { clsx as clsx13 } from "clsx";
|
|
|
2114
2121
|
// src/components/Card/style.ts
|
|
2115
2122
|
import { clsx as clsx12 } from "clsx";
|
|
2116
2123
|
var cardStyles = {
|
|
2117
|
-
root: "box-border flex h-full flex-col gap-refineui-size-none overflow-hidden rounded-refineui-xx-large bg-refineui-alias-background-primary",
|
|
2118
|
-
elevated: "border-refineui-none shadow-refineui-4",
|
|
2124
|
+
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)]",
|
|
2125
|
+
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)]",
|
|
2119
2126
|
outlined: "border-refineui-thin border-refineui-alias-border-default shadow-none",
|
|
2120
2127
|
stateDefault: "bg-refineui-alias-background-primary",
|
|
2121
2128
|
stateHover: "bg-refineui-alias-background-primary-hover",
|
|
2122
2129
|
statePressed: "bg-refineui-alias-background-surface-active",
|
|
2123
2130
|
stateDisabled: "bg-refineui-alias-background-surface-disabled",
|
|
2124
|
-
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)]",
|
|
2131
|
+
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",
|
|
2132
|
+
interactiveOutlined: "hover:border-refineui-alias-border-default active:border-refineui-alias-border-strong",
|
|
2125
2133
|
headerMain: "flex min-w-0 flex-1 flex-col gap-refineui-size-xx-small",
|
|
2126
2134
|
header: "flex flex-row flex-wrap items-start justify-between gap-refineui-size-medium px-refineui-size-x-large py-refineui-size-large",
|
|
2127
2135
|
title: clsx12(
|
|
2128
2136
|
componentTextClass(componentTypographyTokens.card.title),
|
|
2129
|
-
"text-refineui-alias-foreground-primary"
|
|
2137
|
+
"text-refineui-alias-foreground-primary group-aria-disabled:text-refineui-alias-foreground-disabled"
|
|
2130
2138
|
),
|
|
2131
2139
|
description: clsx12(
|
|
2132
2140
|
componentTextClass(componentTypographyTokens.card.description),
|
|
2133
|
-
"text-refineui-alias-foreground-tertiary"
|
|
2141
|
+
"text-refineui-alias-foreground-tertiary group-aria-disabled:text-refineui-alias-foreground-disabled"
|
|
2134
2142
|
),
|
|
2135
2143
|
action: "flex shrink-0 items-center justify-end",
|
|
2136
|
-
content: "flex flex-1 flex-col px-refineui-size-x-large pb-refineui-size-large",
|
|
2144
|
+
content: "flex flex-1 flex-col px-refineui-size-x-large pb-refineui-size-large group-aria-disabled:text-refineui-alias-foreground-disabled",
|
|
2137
2145
|
footer: "mt-auto flex shrink-0 items-center justify-end gap-refineui-size-x-small px-refineui-size-x-large py-refineui-size-medium"
|
|
2138
2146
|
};
|
|
2139
2147
|
|
|
@@ -2163,6 +2171,7 @@ function Card({
|
|
|
2163
2171
|
state === "pressed" && cardStyles.statePressed,
|
|
2164
2172
|
state === "disabled" && cardStyles.stateDisabled,
|
|
2165
2173
|
interactive && !isDisabled && cardStyles.interactive,
|
|
2174
|
+
interactive && !isDisabled && variant === "outlined" && cardStyles.interactiveOutlined,
|
|
2166
2175
|
className
|
|
2167
2176
|
),
|
|
2168
2177
|
...props
|
|
@@ -2247,16 +2256,16 @@ var labelCompanionStyles = {
|
|
|
2247
2256
|
|
|
2248
2257
|
// src/components/Checkbox/style.ts
|
|
2249
2258
|
var checkboxStyles = {
|
|
2250
|
-
root: "inline-flex gap-refineui-size-x-small",
|
|
2259
|
+
root: "group inline-flex gap-refineui-size-x-small",
|
|
2251
2260
|
textTop: "items-start",
|
|
2252
2261
|
textCenter: "items-center",
|
|
2253
2262
|
disabledCursor: "cursor-not-allowed",
|
|
2254
2263
|
enabledCursor: "cursor-pointer",
|
|
2255
2264
|
controlWrap: "relative h-[var(--refineui-size-control-checkbox,20px)] w-[var(--refineui-size-control-checkbox,20px)] shrink-0",
|
|
2256
2265
|
controlWrapDesc: "mt-refineui-size-xxx-small",
|
|
2257
|
-
input: "absolute inset-0 z-1 m-0 h-full w-full cursor-pointer opacity-0 outline-none",
|
|
2266
|
+
input: "peer absolute inset-0 z-1 m-0 h-full w-full cursor-pointer opacity-0 outline-none",
|
|
2258
2267
|
inputDisabled: "cursor-not-allowed",
|
|
2259
|
-
visual: "pointer-events-none absolute inset-0 box-border flex items-center justify-center overflow-hidden",
|
|
2268
|
+
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",
|
|
2260
2269
|
textCol: "flex min-w-0 flex-col gap-refineui-size-x-small",
|
|
2261
2270
|
label: labelCompanionStyles.label,
|
|
2262
2271
|
desc: labelCompanionStyles.description,
|
|
@@ -2390,7 +2399,7 @@ var radioStyles = {
|
|
|
2390
2399
|
rootWithoutDescription: "items-center",
|
|
2391
2400
|
rootDisabled: "cursor-not-allowed",
|
|
2392
2401
|
rootEnabled: "cursor-pointer",
|
|
2393
|
-
input: "h-[var(--refineui-size-control-checkbox-radio,20px)] w-[var(--refineui-size-control-checkbox-radio,20px)] shrink-0 cursor-pointer",
|
|
2402
|
+
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",
|
|
2394
2403
|
inputWithDescriptionOffset: "mt-refineui-size-xxx-small",
|
|
2395
2404
|
textWrap: "flex min-w-0 flex-col gap-refineui-size-x-small",
|
|
2396
2405
|
label: labelCompanionStyles.label,
|
|
@@ -2512,7 +2521,7 @@ import {
|
|
|
2512
2521
|
} from "react";
|
|
2513
2522
|
import { createPortal } from "react-dom";
|
|
2514
2523
|
import { iconSizes as iconSizes4 } from "@refineui/tokens";
|
|
2515
|
-
import {
|
|
2524
|
+
import { composeRefs } from "@refineui/utilities/react";
|
|
2516
2525
|
|
|
2517
2526
|
// src/components/ScrollArea/ScrollAreaRegion.tsx
|
|
2518
2527
|
import { clsx as clsx26 } from "clsx";
|
|
@@ -2539,7 +2548,7 @@ import { spacings } from "@refineui/tokens";
|
|
|
2539
2548
|
var SCROLL_AREA_THUMB_MIN_PX = Number.parseFloat(spacings.sizeXLarge);
|
|
2540
2549
|
var SCROLL_EDGE_FALLOFF_RATIO = 0.25;
|
|
2541
2550
|
var scrollAreaStyles = {
|
|
2542
|
-
root: "box-border min-h-0 min-w-0 overflow-hidden outline-none",
|
|
2551
|
+
root: "relative box-border min-h-0 min-w-0 overflow-hidden outline-none",
|
|
2543
2552
|
/**
|
|
2544
2553
|
* Overflow and scroll chaining are per axis: an axis only becomes scrollable
|
|
2545
2554
|
* when its scrollbar is declared, so a horizontal-only area lets vertical
|
|
@@ -2548,26 +2557,31 @@ var scrollAreaStyles = {
|
|
|
2548
2557
|
viewport: clsx24(
|
|
2549
2558
|
"size-full min-h-0 min-w-0 rounded-[inherit]",
|
|
2550
2559
|
"overflow-hidden",
|
|
2551
|
-
"outline-none",
|
|
2560
|
+
"outline-none [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
2552
2561
|
"data-[overflow-x=true]:overflow-x-auto data-[overflow-x=true]:overscroll-x-contain",
|
|
2553
2562
|
"data-[overflow-y=true]:overflow-y-auto data-[overflow-y=true]:overscroll-y-contain"
|
|
2554
2563
|
),
|
|
2555
2564
|
scrollbar: clsx24(
|
|
2556
2565
|
"z-refineui-content box-border touch-none select-none",
|
|
2557
|
-
"transition-opacity duration-[var(--refineui-motion-duration-
|
|
2558
|
-
"ease-[var(--refineui-motion-easing-ease-out)]"
|
|
2566
|
+
"transition-opacity duration-[var(--refineui-motion-duration-normal)]",
|
|
2567
|
+
"ease-[var(--refineui-motion-easing-ease-out)]",
|
|
2568
|
+
"data-[state=hidden]:pointer-events-none data-[state=hidden]:opacity-0",
|
|
2569
|
+
"data-[visibility=always]:data-[state=visible]:opacity-100",
|
|
2570
|
+
"data-[visibility=hover]:data-[state=visible]:pointer-events-none data-[visibility=hover]:data-[state=visible]:opacity-0",
|
|
2571
|
+
"data-[visibility=scroll]:data-[state=visible]:pointer-events-none data-[visibility=scroll]:data-[state=visible]:opacity-0",
|
|
2572
|
+
"data-[active=true]:!pointer-events-auto data-[active=true]:!opacity-100"
|
|
2559
2573
|
),
|
|
2560
|
-
scrollbarVertical: "",
|
|
2561
|
-
scrollbarHorizontal: "",
|
|
2574
|
+
scrollbarVertical: "absolute inset-y-refineui-size-xxx-small end-refineui-size-xxx-small w-refineui-size-medium overflow-hidden",
|
|
2575
|
+
scrollbarHorizontal: "absolute inset-x-refineui-size-xxx-small bottom-refineui-size-xxx-small h-refineui-size-medium overflow-hidden",
|
|
2562
2576
|
/** Inner rail — thumb is absolutely positioned here (padding lives on the outer scrollbar). */
|
|
2563
|
-
track: "relative size-full min-h-0 min-w-0 overflow-hidden rounded-refineui-circle",
|
|
2577
|
+
track: "relative size-full min-h-0 min-w-0 overflow-hidden rounded-refineui-circle bg-refineui-alias-background-surface-selected",
|
|
2564
2578
|
thumb: clsx24(
|
|
2565
2579
|
"absolute rounded-refineui-circle",
|
|
2566
2580
|
"bg-refineui-alias-border-strong",
|
|
2567
2581
|
"transition-[background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
2568
2582
|
"ease-[var(--refineui-motion-easing-ease-out)]",
|
|
2569
2583
|
"hover:bg-refineui-alias-foreground-secondary",
|
|
2570
|
-
"data-[dragging=true]:bg-refineui-alias-foreground-secondary"
|
|
2584
|
+
"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"
|
|
2571
2585
|
)
|
|
2572
2586
|
};
|
|
2573
2587
|
var scrollAreaScrollbarOrientationClass = {
|
|
@@ -2649,6 +2663,8 @@ var ScrollArea = forwardRef4(function ScrollArea2({
|
|
|
2649
2663
|
const [vertical, setVertical] = useState4(EMPTY_METRICS);
|
|
2650
2664
|
const [horizontal, setHorizontal] = useState4(EMPTY_METRICS);
|
|
2651
2665
|
const [scrolling, setScrolling] = useState4(false);
|
|
2666
|
+
const [hovering, setHovering] = useState4(false);
|
|
2667
|
+
const [focused, setFocused] = useState4(false);
|
|
2652
2668
|
const [interacting, setInteracting] = useState4(false);
|
|
2653
2669
|
const [axes, setAxes] = useState4(NO_AXES);
|
|
2654
2670
|
const hideTimerRef = useRef4(null);
|
|
@@ -2716,6 +2732,14 @@ var ScrollArea = forwardRef4(function ScrollArea2({
|
|
|
2716
2732
|
if (hideTimerRef.current != null) window.clearTimeout(hideTimerRef.current);
|
|
2717
2733
|
};
|
|
2718
2734
|
}, [sync, markScrolling, viewportEpoch]);
|
|
2735
|
+
useEffect(() => {
|
|
2736
|
+
if (!hovering) return;
|
|
2737
|
+
const clearHoverAfterAncestorScroll = (event) => {
|
|
2738
|
+
if (event.target !== viewportRef.current) setHovering(false);
|
|
2739
|
+
};
|
|
2740
|
+
window.addEventListener("scroll", clearHoverAfterAncestorScroll, true);
|
|
2741
|
+
return () => window.removeEventListener("scroll", clearHoverAfterAncestorScroll, true);
|
|
2742
|
+
}, [hovering]);
|
|
2719
2743
|
const ctx = useMemo3(
|
|
2720
2744
|
() => ({
|
|
2721
2745
|
type,
|
|
@@ -2726,6 +2750,10 @@ var ScrollArea = forwardRef4(function ScrollArea2({
|
|
|
2726
2750
|
vertical,
|
|
2727
2751
|
horizontal,
|
|
2728
2752
|
scrolling,
|
|
2753
|
+
hovering,
|
|
2754
|
+
setHovering,
|
|
2755
|
+
focused,
|
|
2756
|
+
setFocused,
|
|
2729
2757
|
interacting,
|
|
2730
2758
|
setInteracting
|
|
2731
2759
|
}),
|
|
@@ -2737,6 +2765,8 @@ var ScrollArea = forwardRef4(function ScrollArea2({
|
|
|
2737
2765
|
vertical,
|
|
2738
2766
|
horizontal,
|
|
2739
2767
|
scrolling,
|
|
2768
|
+
hovering,
|
|
2769
|
+
focused,
|
|
2740
2770
|
interacting
|
|
2741
2771
|
]
|
|
2742
2772
|
);
|
|
@@ -2747,6 +2777,7 @@ var ScrollArea = forwardRef4(function ScrollArea2({
|
|
|
2747
2777
|
"data-refineui": "scroll-area",
|
|
2748
2778
|
"data-type": type,
|
|
2749
2779
|
"data-scrolling": scrolling || void 0,
|
|
2780
|
+
"data-hovering": hovering || void 0,
|
|
2750
2781
|
"data-interacting": interacting || void 0,
|
|
2751
2782
|
className: clsx25(scrollAreaStyles.root, className),
|
|
2752
2783
|
...props,
|
|
@@ -2755,8 +2786,8 @@ var ScrollArea = forwardRef4(function ScrollArea2({
|
|
|
2755
2786
|
) });
|
|
2756
2787
|
});
|
|
2757
2788
|
var ScrollAreaViewport = forwardRef4(
|
|
2758
|
-
function ScrollAreaViewport2({ className, children, ...props }, forwardedRef) {
|
|
2759
|
-
const { setViewportNode, axes, vertical, horizontal } = useScrollAreaContext("ScrollAreaViewport");
|
|
2789
|
+
function ScrollAreaViewport2({ className, children, onPointerEnter, onPointerLeave, onFocus, onBlur, ...props }, forwardedRef) {
|
|
2790
|
+
const { setViewportNode, axes, vertical, horizontal, setHovering, setFocused } = useScrollAreaContext("ScrollAreaViewport");
|
|
2760
2791
|
const composedRef = useComposedRefs(setViewportNode, forwardedRef);
|
|
2761
2792
|
const scrollable = isScrollable(vertical) || isScrollable(horizontal);
|
|
2762
2793
|
return /* @__PURE__ */ jsx20(
|
|
@@ -2768,6 +2799,23 @@ var ScrollAreaViewport = forwardRef4(
|
|
|
2768
2799
|
"data-overflow-y": axes.vertical ? "true" : void 0,
|
|
2769
2800
|
tabIndex: scrollable ? 0 : void 0,
|
|
2770
2801
|
className: clsx25(scrollAreaStyles.viewport, className),
|
|
2802
|
+
onPointerEnter: (event) => {
|
|
2803
|
+
onPointerEnter?.(event);
|
|
2804
|
+
setHovering(true);
|
|
2805
|
+
},
|
|
2806
|
+
onPointerLeave: (event) => {
|
|
2807
|
+
onPointerLeave?.(event);
|
|
2808
|
+
setHovering(false);
|
|
2809
|
+
},
|
|
2810
|
+
onFocus: (event) => {
|
|
2811
|
+
onFocus?.(event);
|
|
2812
|
+
setFocused(true);
|
|
2813
|
+
},
|
|
2814
|
+
onBlur: (event) => {
|
|
2815
|
+
onBlur?.(event);
|
|
2816
|
+
const next = event.relatedTarget;
|
|
2817
|
+
if (!next || !event.currentTarget.contains(next)) setFocused(false);
|
|
2818
|
+
},
|
|
2771
2819
|
...props,
|
|
2772
2820
|
children
|
|
2773
2821
|
}
|
|
@@ -2779,6 +2827,8 @@ function ScrollAreaScrollbar({
|
|
|
2779
2827
|
className,
|
|
2780
2828
|
children,
|
|
2781
2829
|
onPointerDown,
|
|
2830
|
+
onPointerEnter,
|
|
2831
|
+
onPointerLeave,
|
|
2782
2832
|
...props
|
|
2783
2833
|
}) {
|
|
2784
2834
|
const {
|
|
@@ -2788,12 +2838,15 @@ function ScrollAreaScrollbar({
|
|
|
2788
2838
|
vertical,
|
|
2789
2839
|
horizontal,
|
|
2790
2840
|
scrolling,
|
|
2791
|
-
|
|
2841
|
+
hovering,
|
|
2842
|
+
focused,
|
|
2843
|
+
interacting,
|
|
2844
|
+
setHovering
|
|
2792
2845
|
} = useScrollAreaContext("ScrollAreaScrollbar");
|
|
2793
2846
|
const trackRef = useRef4(null);
|
|
2794
2847
|
const metrics = orientation === "vertical" ? vertical : horizontal;
|
|
2795
2848
|
const visible = isScrollable(metrics);
|
|
2796
|
-
const active = scrolling || interacting;
|
|
2849
|
+
const active = type === "hover" ? hovering || focused || scrolling || interacting : type === "scroll" ? focused || scrolling || interacting : false;
|
|
2797
2850
|
useLayoutEffect(() => {
|
|
2798
2851
|
setAxisEnabled(orientation, true);
|
|
2799
2852
|
return () => setAxisEnabled(orientation, false);
|
|
@@ -2843,6 +2896,14 @@ function ScrollAreaScrollbar({
|
|
|
2843
2896
|
className
|
|
2844
2897
|
),
|
|
2845
2898
|
onPointerDown: onTrackPointerDown,
|
|
2899
|
+
onPointerEnter: (event) => {
|
|
2900
|
+
onPointerEnter?.(event);
|
|
2901
|
+
setHovering(true);
|
|
2902
|
+
},
|
|
2903
|
+
onPointerLeave: (event) => {
|
|
2904
|
+
onPointerLeave?.(event);
|
|
2905
|
+
setHovering(false);
|
|
2906
|
+
},
|
|
2846
2907
|
...props,
|
|
2847
2908
|
children: /* @__PURE__ */ jsx20(
|
|
2848
2909
|
"div",
|
|
@@ -2991,7 +3052,7 @@ var selectStyles = {
|
|
|
2991
3052
|
"border-refineui-hairline border-refineui-alias-border-default",
|
|
2992
3053
|
"bg-refineui-alias-background-primary px-refineui-size-medium py-refineui-size-x-small",
|
|
2993
3054
|
"text-refineui-alias-foreground-primary outline-none",
|
|
2994
|
-
"transition-[color,background-color,border-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
3055
|
+
"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"
|
|
2995
3056
|
),
|
|
2996
3057
|
/** Ghost plate — same gap/radius as filled, no field border (Button ghost-like). */
|
|
2997
3058
|
triggerGhost: clsx27(
|
|
@@ -3000,7 +3061,7 @@ var selectStyles = {
|
|
|
3000
3061
|
"border-refineui-none border-transparent bg-transparent",
|
|
3001
3062
|
"px-refineui-size-x-small py-refineui-size-xx-small",
|
|
3002
3063
|
"text-refineui-alias-foreground-primary outline-none",
|
|
3003
|
-
"transition-[color,background-color,transform] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
3064
|
+
"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"
|
|
3004
3065
|
),
|
|
3005
3066
|
/** Flush shell — consumer / parent owns padding, radius, surface. */
|
|
3006
3067
|
triggerPlain: clsx27(
|
|
@@ -3018,13 +3079,14 @@ var selectStyles = {
|
|
|
3018
3079
|
chevronOpen: "rotate-180",
|
|
3019
3080
|
/* No overflow-hidden — it isolates descendants and kills panel `backdrop-filter`. */
|
|
3020
3081
|
positioner: "z-refineui-popup flex flex-col",
|
|
3021
|
-
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",
|
|
3082
|
+
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",
|
|
3022
3083
|
contentPopper: "h-auto max-h-[var(--refineui-select-content-available-height,100dvh)]",
|
|
3023
|
-
|
|
3084
|
+
/** The positioner owns alignment height; the frosted surface only covers its content. */
|
|
3085
|
+
contentItemAligned: "h-fit max-h-full self-start",
|
|
3024
3086
|
viewportPopper: "relative flex max-h-full min-h-0 min-w-full w-full flex-col",
|
|
3025
|
-
viewportItemAligned: "relative flex min-h-0 min-w-full w-full max-h-full flex-
|
|
3087
|
+
viewportItemAligned: "relative flex h-auto min-h-0 min-w-full w-full max-h-full flex-none flex-col",
|
|
3026
3088
|
scrollAreaRootPopper: "relative flex max-h-full min-h-0 flex-col",
|
|
3027
|
-
scrollAreaRootItemAligned: "relative flex h-
|
|
3089
|
+
scrollAreaRootItemAligned: "relative flex h-auto min-h-0 max-h-full flex-none flex-col",
|
|
3028
3090
|
group: "flex flex-col gap-px",
|
|
3029
3091
|
label: clsx27(
|
|
3030
3092
|
componentTextClass(componentTypographyTokens.select.label),
|
|
@@ -3033,7 +3095,7 @@ var selectStyles = {
|
|
|
3033
3095
|
separator: "my-refineui-size-x-small h-px bg-refineui-alias-border-default",
|
|
3034
3096
|
item: clsx27(
|
|
3035
3097
|
componentTextClass(componentTypographyTokens.select.item),
|
|
3036
|
-
"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-
|
|
3098
|
+
"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"
|
|
3037
3099
|
),
|
|
3038
3100
|
itemActive: "bg-refineui-alias-background-primary-hover",
|
|
3039
3101
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
@@ -3166,32 +3228,6 @@ function Select({
|
|
|
3166
3228
|
document.addEventListener("mousedown", onOutside);
|
|
3167
3229
|
return () => document.removeEventListener("mousedown", onOutside);
|
|
3168
3230
|
}, [open, setOpen]);
|
|
3169
|
-
useEffect2(() => {
|
|
3170
|
-
if (!open) return;
|
|
3171
|
-
const releaseBodyLock = acquireBodyScrollLock();
|
|
3172
|
-
const ancestors = getScrollableAncestors(triggerRef.current).filter(
|
|
3173
|
-
(el) => el !== document.body && el !== document.documentElement
|
|
3174
|
-
);
|
|
3175
|
-
const prevStyles = ancestors.map((el) => ({
|
|
3176
|
-
el,
|
|
3177
|
-
overflow: el.style.overflow,
|
|
3178
|
-
overflowX: el.style.overflowX,
|
|
3179
|
-
overflowY: el.style.overflowY
|
|
3180
|
-
}));
|
|
3181
|
-
for (const { el } of prevStyles) {
|
|
3182
|
-
el.style.overflow = "hidden";
|
|
3183
|
-
el.style.overflowX = "hidden";
|
|
3184
|
-
el.style.overflowY = "hidden";
|
|
3185
|
-
}
|
|
3186
|
-
return () => {
|
|
3187
|
-
for (const { el, overflow, overflowX, overflowY } of prevStyles) {
|
|
3188
|
-
el.style.overflow = overflow;
|
|
3189
|
-
el.style.overflowX = overflowX;
|
|
3190
|
-
el.style.overflowY = overflowY;
|
|
3191
|
-
}
|
|
3192
|
-
releaseBodyLock();
|
|
3193
|
-
};
|
|
3194
|
-
}, [open]);
|
|
3195
3231
|
const onKeyDown = useCallback4(
|
|
3196
3232
|
(event) => {
|
|
3197
3233
|
if (disabled) return;
|
|
@@ -3379,7 +3415,7 @@ function SelectValue({ placeholder, className, ...props }) {
|
|
|
3379
3415
|
className
|
|
3380
3416
|
),
|
|
3381
3417
|
...props,
|
|
3382
|
-
children: label || placeholder || rootPlaceholder || "Select..."
|
|
3418
|
+
children: label || placeholder || rootPlaceholder || value || "Select..."
|
|
3383
3419
|
}
|
|
3384
3420
|
);
|
|
3385
3421
|
}
|
|
@@ -3735,7 +3771,7 @@ function SelectItem({
|
|
|
3735
3771
|
const [pressed, setPressed] = useState5(false);
|
|
3736
3772
|
const isSelected = value === itemValue;
|
|
3737
3773
|
const label = (textValue || (typeof children === "string" ? children : String(itemValue))).trim();
|
|
3738
|
-
|
|
3774
|
+
useIsomorphicLayoutEffect(() => {
|
|
3739
3775
|
return registerItem({ value: itemValue, label, disabled, ref });
|
|
3740
3776
|
}, [registerItem, itemValue, label, disabled]);
|
|
3741
3777
|
const enabledItems = itemsRef.current.filter((item) => !item.disabled);
|
|
@@ -3853,16 +3889,17 @@ import { clsx as clsx29 } from "clsx";
|
|
|
3853
3889
|
|
|
3854
3890
|
// src/components/Toggle/style.ts
|
|
3855
3891
|
var toggleStyles = {
|
|
3856
|
-
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)]",
|
|
3892
|
+
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",
|
|
3857
3893
|
/** OFF rest — Web Kit track fill off */
|
|
3858
|
-
unchecked: "cursor-pointer bg-refineui-alias-background-primary-active",
|
|
3894
|
+
unchecked: "cursor-pointer bg-refineui-alias-background-primary-active hover:bg-refineui-alias-background-surface-selected active:bg-refineui-alias-background-brand-subtle",
|
|
3859
3895
|
/** ON rest */
|
|
3860
|
-
checked: "cursor-pointer bg-refineui-alias-background-brand",
|
|
3896
|
+
checked: "cursor-pointer bg-refineui-alias-background-brand hover:bg-refineui-alias-background-brand-hover active:bg-refineui-alias-background-brand-active",
|
|
3861
3897
|
/** Disabled OFF — muted empty track */
|
|
3862
3898
|
disabledUnchecked: "cursor-not-allowed bg-refineui-alias-background-surface-disabled",
|
|
3863
3899
|
/** Disabled ON — muted brand so on/off stay distinguishable */
|
|
3864
3900
|
disabledChecked: "cursor-not-allowed bg-refineui-alias-background-brand-subtle",
|
|
3865
|
-
thumb: "block h-refineui-switch-thumb w-refineui-switch-thumb rounded-refineui-x-large shadow-refineui-2 transition-[
|
|
3901
|
+
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)]",
|
|
3902
|
+
thumbChecked: "translate-x-refineui-switch-thumb rtl:-translate-x-refineui-switch-thumb",
|
|
3866
3903
|
thumbDefault: "bg-refineui-alias-background-primary",
|
|
3867
3904
|
/** Disabled OFF thumb — slightly darker than track */
|
|
3868
3905
|
thumbDisabledUnchecked: "bg-refineui-alias-background-brand-subtle shadow-none",
|
|
@@ -3897,7 +3934,7 @@ function Toggle({
|
|
|
3897
3934
|
},
|
|
3898
3935
|
disabled,
|
|
3899
3936
|
...props,
|
|
3900
|
-
children: /* @__PURE__ */ jsx23("span", { className: clsx29(toggleStyles.thumb, thumbClass) })
|
|
3937
|
+
children: /* @__PURE__ */ jsx23("span", { className: clsx29(toggleStyles.thumb, checked && toggleStyles.thumbChecked, thumbClass) })
|
|
3901
3938
|
}
|
|
3902
3939
|
);
|
|
3903
3940
|
}
|
|
@@ -3908,14 +3945,14 @@ import { clsx as clsx30 } from "clsx";
|
|
|
3908
3945
|
// src/recipes/chip.recipe.ts
|
|
3909
3946
|
import { iconSizes as iconSizes5 } from "@refineui/tokens";
|
|
3910
3947
|
var chipVariantClass = {
|
|
3911
|
-
default: "border-none bg-refineui-alias-background-surface-selected text-refineui-alias-foreground-brand",
|
|
3912
|
-
outline: "border border-refineui-thin border-refineui-alias-border-default box-border bg-transparent text-refineui-alias-foreground-brand",
|
|
3913
|
-
filled: "border-none bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed"
|
|
3948
|
+
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",
|
|
3949
|
+
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",
|
|
3950
|
+
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"
|
|
3914
3951
|
};
|
|
3915
3952
|
var chipDisabledVariantClass = {
|
|
3916
|
-
default: "border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled",
|
|
3917
|
-
outline: "border border-refineui-thin border-refineui-alias-border-disabled box-border bg-transparent text-refineui-alias-foreground-disabled",
|
|
3918
|
-
filled: "border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled"
|
|
3953
|
+
default: "pointer-events-none cursor-not-allowed border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled",
|
|
3954
|
+
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",
|
|
3955
|
+
filled: "pointer-events-none cursor-not-allowed border-none bg-refineui-alias-background-surface-disabled text-refineui-alias-foreground-disabled"
|
|
3919
3956
|
};
|
|
3920
3957
|
var chipSizeClass = {
|
|
3921
3958
|
sm: "min-h-refineui-chip-min-height-sm px-refineui-size-x-small",
|
|
@@ -3930,7 +3967,7 @@ var chipSizeIcon = {
|
|
|
3930
3967
|
};
|
|
3931
3968
|
var chipRecipe = defineRecipe({
|
|
3932
3969
|
name: "chip",
|
|
3933
|
-
base: "box-border inline-flex max-w-full items-center gap-refineui-size-xx-small rounded-refineui-medium",
|
|
3970
|
+
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)]",
|
|
3934
3971
|
variants: {
|
|
3935
3972
|
variant: chipVariantClass,
|
|
3936
3973
|
size: chipSizeClass
|
|
@@ -4096,7 +4133,7 @@ var dialogRecipe = defineSlotRecipe({
|
|
|
4096
4133
|
slots: ["root", "scrim", "panel", "panelScrollWrap", "header", "headerMain", "title", "description"],
|
|
4097
4134
|
base: {
|
|
4098
4135
|
root: "fixed inset-0 z-refineui-messages flex items-center justify-center p-refineui-size-large",
|
|
4099
|
-
scrim: "absolute inset-0 cursor-pointer transition-opacity",
|
|
4136
|
+
scrim: "absolute inset-0 cursor-pointer transition-opacity backdrop-blur-[var(--refineui-blur-overlay-scrim)]",
|
|
4100
4137
|
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",
|
|
4101
4138
|
panelScrollWrap: "flex min-h-0 min-w-0 flex-1 flex-col",
|
|
4102
4139
|
header: "flex shrink-0 items-start justify-between gap-refineui-size-x-small",
|
|
@@ -4357,7 +4394,7 @@ import { foundationSizes as foundationSizes2, iconSizes as iconSizes7 } from "@r
|
|
|
4357
4394
|
var COMMAND_LIST_MAX_HEIGHT = `min(60vh, ${foundationSizes2.foundationSize3200})`;
|
|
4358
4395
|
var commandStyles = {
|
|
4359
4396
|
/** Detached layout: the search field and the results panel are separate surfaces, so the root has none. */
|
|
4360
|
-
root: "flex w-full flex-col gap-refineui-size-small text-refineui-alias-foreground-primary outline-none",
|
|
4397
|
+
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)]",
|
|
4361
4398
|
rootInDialog: "min-h-0 w-full",
|
|
4362
4399
|
/** Dialog panel stays transparent — the field and results panel float on the scrim themselves. */
|
|
4363
4400
|
dialogContentPanel: {
|
|
@@ -4374,21 +4411,21 @@ var commandStyles = {
|
|
|
4374
4411
|
* Radius comes from `--refineui-command-list-radius` (per size, refineui.css) so the scrollbar inset can share it.
|
|
4375
4412
|
*/
|
|
4376
4413
|
listShell: clsx33(
|
|
4377
|
-
"box-border w-full overflow-hidden",
|
|
4414
|
+
"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",
|
|
4378
4415
|
"border-refineui-hairline border-refineui-alias-border-default",
|
|
4379
4416
|
"bg-refineui-alias-background-primary shadow-refineui-2"
|
|
4380
4417
|
),
|
|
4381
|
-
list: "h-full min-h-0 w-full",
|
|
4418
|
+
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)]",
|
|
4382
4419
|
listShellMaxHeight: {
|
|
4383
4420
|
maxHeight: COMMAND_LIST_MAX_HEIGHT
|
|
4384
4421
|
},
|
|
4385
4422
|
listViewport: "outline-none",
|
|
4386
4423
|
listInner: "relative flex flex-col gap-refineui-size-xxx-small px-refineui-size-medium py-refineui-size-small",
|
|
4387
4424
|
/** Sliding highlight behind the selected item; geometry is measured, so physical `left`/`top` (inline) are intentional. */
|
|
4388
|
-
indicator: "pointer-events-none absolute rounded-refineui-large bg-refineui-alias-background-surface-hover",
|
|
4425
|
+
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",
|
|
4389
4426
|
empty: clsx33(
|
|
4390
4427
|
componentTextClass(componentTypographyTokens.command.empty),
|
|
4391
|
-
"px-refineui-size-medium py-refineui-size-xx-large text-center text-refineui-alias-foreground-tertiary"
|
|
4428
|
+
"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"
|
|
4392
4429
|
),
|
|
4393
4430
|
/** `overflow-clip`, not hidden: a hidden group would become the scroll container the edge effect tracks. */
|
|
4394
4431
|
group: "flex flex-col gap-refineui-size-xxx-small overflow-clip",
|
|
@@ -4400,7 +4437,7 @@ var commandStyles = {
|
|
|
4400
4437
|
separatorLine: "h-px w-full shrink-0 bg-refineui-alias-border-default",
|
|
4401
4438
|
itemBase: clsx33(
|
|
4402
4439
|
"relative flex w-full items-center gap-refineui-size-x-small rounded-refineui-large border-none bg-transparent",
|
|
4403
|
-
"px-refineui-size-x-small text-start outline-none"
|
|
4440
|
+
"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"
|
|
4404
4441
|
),
|
|
4405
4442
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
4406
4443
|
itemEnabled: "cursor-pointer text-refineui-alias-foreground-primary",
|
|
@@ -5507,7 +5544,7 @@ function AvatarGroup({
|
|
|
5507
5544
|
"data-avatar-stack-size": normalizedSize,
|
|
5508
5545
|
className: clsx36(
|
|
5509
5546
|
avatarStyles.groupRoot,
|
|
5510
|
-
layout === "stack" ? "gap-0" : avatarSpreadGap[normalizedSize],
|
|
5547
|
+
layout === "stack" ? "gap-0 pe-[var(--avatar-stack-overlap)]" : avatarSpreadGap[normalizedSize],
|
|
5511
5548
|
className
|
|
5512
5549
|
),
|
|
5513
5550
|
style: {
|
|
@@ -5518,9 +5555,9 @@ function AvatarGroup({
|
|
|
5518
5555
|
const isCount = isValidElement3(child) && child.type === AvatarGroupCount;
|
|
5519
5556
|
const z = layout === "stack" ? index : void 0;
|
|
5520
5557
|
if (isCount) {
|
|
5521
|
-
return /* @__PURE__ */ jsx28("div", { className: avatarStyles.groupCountWrap, style: { zIndex: z }, children: child }, `count-${index}`);
|
|
5558
|
+
return /* @__PURE__ */ jsx28("div", { className: clsx36(avatarStyles.groupCountWrap, layout === "stack" && index > 0 && "-ms-[var(--avatar-stack-overlap)]"), style: { zIndex: z }, children: child }, `count-${index}`);
|
|
5522
5559
|
}
|
|
5523
|
-
return /* @__PURE__ */ jsx28("div", { className: avatarStyles.groupAvatarWrap, style: { zIndex: z }, children: child }, `avatar-${index}`);
|
|
5560
|
+
return /* @__PURE__ */ jsx28("div", { className: clsx36(avatarStyles.groupAvatarWrap, layout === "stack" && index > 0 && "-ms-[var(--avatar-stack-overlap)]"), style: { zIndex: z }, children: child }, `avatar-${index}`);
|
|
5524
5561
|
})
|
|
5525
5562
|
}
|
|
5526
5563
|
) });
|
|
@@ -5591,14 +5628,23 @@ function Avatars({
|
|
|
5591
5628
|
...style
|
|
5592
5629
|
},
|
|
5593
5630
|
children: [
|
|
5594
|
-
display.map((a, i) => /* @__PURE__ */ jsx29(
|
|
5631
|
+
display.map((a, i) => /* @__PURE__ */ jsx29(
|
|
5632
|
+
"div",
|
|
5633
|
+
{
|
|
5634
|
+
className: clsx37(avatarsStyles.avatarWrap, isStack && i > 0 && "-ms-[var(--avatar-stack-overlap)]"),
|
|
5635
|
+
style: isStack ? { zIndex: i } : void 0,
|
|
5636
|
+
children: /* @__PURE__ */ jsx29(Avatar, { src: a.src, alt: a.alt, size })
|
|
5637
|
+
},
|
|
5638
|
+
i
|
|
5639
|
+
)),
|
|
5595
5640
|
remainder > 0 && /* @__PURE__ */ jsxs10(
|
|
5596
5641
|
"div",
|
|
5597
5642
|
{
|
|
5598
5643
|
className: clsx37(
|
|
5599
5644
|
avatarsStyles.overflowCount,
|
|
5600
5645
|
avatarsCountSizeBySize[normalizedSize],
|
|
5601
|
-
avatarsCountTypoBySize[normalizedSize]
|
|
5646
|
+
avatarsCountTypoBySize[normalizedSize],
|
|
5647
|
+
isStack && display.length > 0 && "-ms-[var(--avatar-stack-overlap)]"
|
|
5602
5648
|
),
|
|
5603
5649
|
style: isStack ? { zIndex: display.length } : void 0,
|
|
5604
5650
|
children: [
|
|
@@ -5679,7 +5725,7 @@ var alertRecipe = defineSlotRecipe({
|
|
|
5679
5725
|
"close"
|
|
5680
5726
|
],
|
|
5681
5727
|
base: {
|
|
5682
|
-
root: "box-border flex items-start border-refineui-thin border-refineui-alias-border-default px-refineui-size-large py-refineui-size-medium",
|
|
5728
|
+
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",
|
|
5683
5729
|
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",
|
|
5684
5730
|
content: "flex min-w-0 flex-1 flex-col gap-refineui-size-medium",
|
|
5685
5731
|
row: "flex w-full flex-row items-start gap-refineui-size-medium",
|
|
@@ -6226,7 +6272,7 @@ import { clsx as clsx44 } from "clsx";
|
|
|
6226
6272
|
|
|
6227
6273
|
// src/components/Spinner/style.ts
|
|
6228
6274
|
var spinnerStyles = {
|
|
6229
|
-
ringBase: "box-border rounded-refineui-circle border-solid border-refineui-alias-background-brand-subtle border-t-refineui-alias-background-brand",
|
|
6275
|
+
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)]",
|
|
6230
6276
|
label: "text-refineui-alias-foreground-primary",
|
|
6231
6277
|
withLabel: "inline-flex items-center justify-center gap-refineui-size-x-small"
|
|
6232
6278
|
};
|
|
@@ -6314,23 +6360,23 @@ var tabsStyles = {
|
|
|
6314
6360
|
list: clsx45(
|
|
6315
6361
|
"relative flex w-full min-w-0 flex-nowrap items-stretch overflow-x-auto",
|
|
6316
6362
|
"after:pointer-events-none after:absolute after:inset-inline-0 after:bottom-0",
|
|
6317
|
-
"after:h-(--refineui-stroke-width-thin) after:bg-refineui-alias-border-default"
|
|
6363
|
+
"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"
|
|
6318
6364
|
),
|
|
6319
6365
|
indicator: clsx45(
|
|
6320
6366
|
"pointer-events-none absolute bottom-0 start-0 z-[1] block",
|
|
6321
6367
|
"h-(--refineui-stroke-width-thick) bg-refineui-alias-background-brand",
|
|
6322
|
-
"will-change-[transform,width]"
|
|
6368
|
+
"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"
|
|
6323
6369
|
),
|
|
6324
6370
|
trigger: clsx45(
|
|
6325
6371
|
componentTextClass(componentTypographyTokens.tabs),
|
|
6326
6372
|
"relative z-[1] box-border inline-flex min-h-0 min-w-0 shrink-0 items-center justify-center",
|
|
6327
6373
|
"gap-refineui-size-x-small border-none bg-transparent",
|
|
6328
6374
|
"px-refineui-size-medium py-refineui-size-x-small outline-none",
|
|
6329
|
-
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
6375
|
+
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] active:transform-none"
|
|
6330
6376
|
),
|
|
6331
6377
|
triggerDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
6332
|
-
triggerEnabled: "cursor-pointer",
|
|
6333
|
-
triggerSelectedEnabled: "text-refineui-alias-foreground-primary",
|
|
6378
|
+
triggerEnabled: "cursor-pointer hover:text-refineui-alias-foreground-primary-hover",
|
|
6379
|
+
triggerSelectedEnabled: "text-refineui-alias-foreground-primary hover:text-refineui-alias-foreground-primary",
|
|
6334
6380
|
triggerSelectedDisabled: "text-refineui-alias-foreground-disabled",
|
|
6335
6381
|
triggerUnselected: "text-refineui-alias-foreground-tertiary"
|
|
6336
6382
|
};
|
|
@@ -6444,6 +6490,7 @@ function TabsList({ className, children, ...props }) {
|
|
|
6444
6490
|
{
|
|
6445
6491
|
ref: tabListRef,
|
|
6446
6492
|
"data-refineui": "tabs-list",
|
|
6493
|
+
"data-ready": indicator.ready ? "true" : "false",
|
|
6447
6494
|
role: "tablist",
|
|
6448
6495
|
"aria-orientation": "horizontal",
|
|
6449
6496
|
className: clsx46(tabsStyles.list, className),
|
|
@@ -6603,19 +6650,19 @@ var segmentedControlRecipe = defineSlotRecipe({
|
|
|
6603
6650
|
* so at narrow widths `overflow-hidden` would make trailing options
|
|
6604
6651
|
* unreachable. Scrollbar chrome is suppressed in `refineui.css`.
|
|
6605
6652
|
*/
|
|
6606
|
-
"overflow-x-auto overflow-y-hidden rounded-refineui-circle border-refineui-thin border-refineui-alias-border-default",
|
|
6607
|
-
"bg-refineui-alias-background-brand-subtle"
|
|
6653
|
+
"overflow-x-auto overflow-y-hidden rounded-refineui-circle border-refineui-thin border-refineui-alias-border-default [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
6654
|
+
"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"
|
|
6608
6655
|
),
|
|
6609
6656
|
indicator: clsx47(
|
|
6610
|
-
"pointer-events-none absolute inset-y-0 start-0 z-0 block h-full",
|
|
6657
|
+
"pointer-events-none absolute inset-y-0 start-0 z-0 block h-full opacity-0 data-[ready=true]:opacity-100",
|
|
6611
6658
|
"rounded-refineui-circle bg-refineui-alias-background-brand shadow-refineui-2",
|
|
6612
|
-
"will-change-[transform,width]"
|
|
6659
|
+
"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"
|
|
6613
6660
|
),
|
|
6614
6661
|
item: clsx47(
|
|
6615
6662
|
componentTextClass(componentTypographyTokens.segmentedControl),
|
|
6616
6663
|
"relative z-[1] box-border inline-flex min-h-0 min-w-0 shrink-0 items-center justify-center gap-refineui-size-xx-small",
|
|
6617
6664
|
"rounded-refineui-circle border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small outline-none",
|
|
6618
|
-
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
6665
|
+
"transition-colors duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)] active:transform-none"
|
|
6619
6666
|
)
|
|
6620
6667
|
}
|
|
6621
6668
|
});
|
|
@@ -6624,7 +6671,7 @@ var segmentedControlStyles = {
|
|
|
6624
6671
|
indicator: segmentedControlRecipe.base.indicator,
|
|
6625
6672
|
item: segmentedControlRecipe.base.item,
|
|
6626
6673
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
6627
|
-
itemEnabled: "cursor-pointer",
|
|
6674
|
+
itemEnabled: "cursor-pointer hover:text-refineui-alias-foreground-primary",
|
|
6628
6675
|
itemSelectedEnabled: "text-refineui-alias-foreground-on-brand",
|
|
6629
6676
|
itemSelectedDisabled: "text-refineui-alias-foreground-disabled",
|
|
6630
6677
|
itemUnselected: "text-refineui-alias-foreground-secondary"
|
|
@@ -6732,6 +6779,7 @@ function SegmentedControl({
|
|
|
6732
6779
|
{
|
|
6733
6780
|
ref: groupRef,
|
|
6734
6781
|
"data-refineui": "segmented-control",
|
|
6782
|
+
"data-ready": indicator.ready ? "true" : "false",
|
|
6735
6783
|
role: "radiogroup",
|
|
6736
6784
|
"aria-orientation": "horizontal",
|
|
6737
6785
|
className: clsx48(segmentedControlStyles.root, className),
|
|
@@ -6854,14 +6902,14 @@ var tableStyles = {
|
|
|
6854
6902
|
"relative box-border w-full min-w-0",
|
|
6855
6903
|
"px-refineui-size-small pb-refineui-size-small"
|
|
6856
6904
|
),
|
|
6857
|
-
table: "w-full
|
|
6858
|
-
header: "",
|
|
6905
|
+
table: "w-full border-separate border-spacing-y-refineui-size-xx-small caption-bottom text-start",
|
|
6906
|
+
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",
|
|
6859
6907
|
body: "",
|
|
6860
|
-
footer: "",
|
|
6908
|
+
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",
|
|
6861
6909
|
row: clsx49(
|
|
6862
6910
|
"transition-[background-color,box-shadow,border-radius]",
|
|
6863
6911
|
"duration-[var(--refineui-motion-duration-fast)]",
|
|
6864
|
-
"ease-[var(--refineui-motion-easing-ease-out)]"
|
|
6912
|
+
"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"
|
|
6865
6913
|
),
|
|
6866
6914
|
head: clsx49(
|
|
6867
6915
|
componentTextClass(componentTypographyTokens.table.head),
|
|
@@ -6947,7 +6995,7 @@ var accordionRecipe = defineSlotRecipe({
|
|
|
6947
6995
|
base: {
|
|
6948
6996
|
root: "flex flex-col gap-refineui-size-x-small",
|
|
6949
6997
|
item: "overflow-hidden rounded-refineui-x-large transition-[background-color] duration-[var(--refineui-motion-duration-fast)]",
|
|
6950
|
-
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)]",
|
|
6998
|
+
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)]",
|
|
6951
6999
|
triggerRow: "flex min-w-0 flex-1 items-center gap-refineui-size-medium",
|
|
6952
7000
|
chevron: "shrink-0 transition-transform duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]",
|
|
6953
7001
|
panel: "min-h-0 overflow-hidden",
|
|
@@ -7224,13 +7272,13 @@ var breadcrumbStyles = {
|
|
|
7224
7272
|
root: "py-refineui-size-x-small",
|
|
7225
7273
|
list: "m-0 flex flex-wrap list-none items-center gap-refineui-size-medium p-0",
|
|
7226
7274
|
item: "inline-flex items-center",
|
|
7227
|
-
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)]",
|
|
7275
|
+
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)]",
|
|
7228
7276
|
page: "inline-flex items-center px-refineui-size-medium py-refineui-size-x-small font-medium text-refineui-alias-foreground-primary",
|
|
7229
7277
|
separator: "inline-flex shrink-0 items-center",
|
|
7230
7278
|
separatorText: "inline-flex items-center text-refineui-alias-foreground-tertiary select-none",
|
|
7231
7279
|
ellipsis: `${ellipsisChip} text-refineui-alias-foreground-tertiary`,
|
|
7232
7280
|
/** Color only — size/layout come from Button `layout="icon" size="sm"`. */
|
|
7233
|
-
ellipsisTrigger: "text-refineui-alias-foreground-tertiary"
|
|
7281
|
+
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)]"
|
|
7234
7282
|
};
|
|
7235
7283
|
|
|
7236
7284
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
@@ -7374,7 +7422,7 @@ var footerStyles = {
|
|
|
7374
7422
|
"m-0 text-refineui-alias-foreground-tertiary"
|
|
7375
7423
|
),
|
|
7376
7424
|
nav: clsx56(
|
|
7377
|
-
"grid w-full items-start",
|
|
7425
|
+
"grid w-full grid-cols-[repeat(auto-fit,minmax(var(--refineui-size-foundation-size-2000),1fr))] items-start",
|
|
7378
7426
|
"gap-x-refineui-size-xxx-large gap-y-refineui-size-xx-large"
|
|
7379
7427
|
),
|
|
7380
7428
|
group: "flex min-w-0 flex-col gap-refineui-size-large",
|
|
@@ -7386,7 +7434,7 @@ var footerStyles = {
|
|
|
7386
7434
|
componentTextClass(componentTypographyTokens.footer.link),
|
|
7387
7435
|
/** `min-h` carries the WCAG 2.2 Target Size (Minimum) 24px floor — the 20px line box alone is under it. */
|
|
7388
7436
|
"box-border inline-flex w-fit min-h-refineui-foundation-size-240 cursor-pointer items-center",
|
|
7389
|
-
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
7437
|
+
"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",
|
|
7390
7438
|
"transition-[color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7391
7439
|
),
|
|
7392
7440
|
meta: clsx56(
|
|
@@ -7395,11 +7443,15 @@ var footerStyles = {
|
|
|
7395
7443
|
"md:grid-cols-[1fr_auto_1fr] md:justify-items-stretch md:gap-refineui-size-x-large"
|
|
7396
7444
|
),
|
|
7397
7445
|
metaEnd: "flex shrink-0 items-center md:col-start-3 md:justify-self-end",
|
|
7398
|
-
locale:
|
|
7446
|
+
locale: clsx56(
|
|
7447
|
+
"flex shrink-0 items-center",
|
|
7448
|
+
"[&_[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",
|
|
7449
|
+
"[&_[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"
|
|
7450
|
+
),
|
|
7399
7451
|
localeLink: clsx56(
|
|
7400
7452
|
componentTextClass(componentTypographyTokens.footer.copyright),
|
|
7401
7453
|
"box-border inline-flex w-fit cursor-pointer items-center",
|
|
7402
|
-
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
7454
|
+
"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",
|
|
7403
7455
|
"transition-[color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7404
7456
|
),
|
|
7405
7457
|
/** Select trigger chrome — Button `outline` / `sm` recipe (plain Select). */
|
|
@@ -7420,7 +7472,7 @@ var footerStyles = {
|
|
|
7420
7472
|
/** Box is the 24px tap target; the glyph inside stays 16px (see `refineui.css`). */
|
|
7421
7473
|
socialLink: clsx56(
|
|
7422
7474
|
"box-border inline-flex size-refineui-foundation-size-240 shrink-0 cursor-pointer items-center justify-center",
|
|
7423
|
-
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
7475
|
+
"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",
|
|
7424
7476
|
"transition-[color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
7425
7477
|
)
|
|
7426
7478
|
};
|
|
@@ -7602,7 +7654,7 @@ var calendarStyles = {
|
|
|
7602
7654
|
grid7: "[grid-template-columns:repeat(7,var(--refineui-size-calendar-day-size))]",
|
|
7603
7655
|
dayBase: clsx58(
|
|
7604
7656
|
componentTextClass(componentTypographyTokens.calendar.day),
|
|
7605
|
-
"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"
|
|
7657
|
+
"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"
|
|
7606
7658
|
),
|
|
7607
7659
|
daySelected: "rounded-refineui-large bg-refineui-alias-background-brand text-refineui-alias-foreground-inversed",
|
|
7608
7660
|
dayRangeMiddle: "rounded-refineui-none bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
@@ -8411,7 +8463,7 @@ import { createPortal as createPortal3 } from "react-dom";
|
|
|
8411
8463
|
import { semanticInteraction as semanticInteraction4 } from "@refineui/tokens";
|
|
8412
8464
|
import { motionMsToNumber as motionMsToNumber2 } from "@refineui/utilities/animation";
|
|
8413
8465
|
import { resolveColorTokenValue as resolveColorTokenValue6 } from "@refineui/utilities/color";
|
|
8414
|
-
import { acquireBodyScrollLock
|
|
8466
|
+
import { acquireBodyScrollLock } from "@refineui/utilities/react";
|
|
8415
8467
|
|
|
8416
8468
|
// src/components/Drawer/style.ts
|
|
8417
8469
|
import { clsx as clsx67 } from "clsx";
|
|
@@ -8420,7 +8472,7 @@ var drawerStyles = {
|
|
|
8420
8472
|
inlineRoot: "relative z-auto flex",
|
|
8421
8473
|
rootLeft: "justify-start",
|
|
8422
8474
|
rootRight: "justify-end",
|
|
8423
|
-
scrim: "absolute inset-0 cursor-pointer transition-opacity",
|
|
8475
|
+
scrim: "absolute inset-0 cursor-pointer transition-opacity backdrop-blur-[var(--refineui-blur-overlay-scrim)]",
|
|
8424
8476
|
panel: "relative box-border flex h-full flex-col overflow-hidden bg-refineui-alias-background-primary outline-none",
|
|
8425
8477
|
panelOverlay: "shadow-refineui-16",
|
|
8426
8478
|
panelInline: "shadow-none",
|
|
@@ -8585,7 +8637,7 @@ function DrawerContent({
|
|
|
8585
8637
|
}, [open]);
|
|
8586
8638
|
useEffect9(() => {
|
|
8587
8639
|
if (!isOverlay || !rendering) return;
|
|
8588
|
-
return
|
|
8640
|
+
return acquireBodyScrollLock();
|
|
8589
8641
|
}, [isOverlay, rendering]);
|
|
8590
8642
|
useEffect9(() => {
|
|
8591
8643
|
if (!isOverlay || !rendering || !entered) return;
|
|
@@ -8775,13 +8827,16 @@ import { resolveColorTokenValue as resolveColorTokenValue7 } from "@refineui/uti
|
|
|
8775
8827
|
|
|
8776
8828
|
// src/components/Dropdown/style.ts
|
|
8777
8829
|
import { clsx as clsx69 } from "clsx";
|
|
8778
|
-
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";
|
|
8830
|
+
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";
|
|
8779
8831
|
var dropdownStyles = {
|
|
8780
8832
|
menuShell: clsx69(
|
|
8781
8833
|
dropdownPanelChrome,
|
|
8782
8834
|
"max-w-[min(100vw-16px,calc(100vw-2rem))]"
|
|
8783
8835
|
),
|
|
8784
|
-
submenuShell:
|
|
8836
|
+
submenuShell: clsx69(
|
|
8837
|
+
dropdownPanelChrome,
|
|
8838
|
+
"data-[state=open]:[animation:refineui-fade-enter_var(--refineui-motion-duration-fast)_var(--refineui-motion-easing-standard)] motion-reduce:animation-none"
|
|
8839
|
+
),
|
|
8785
8840
|
menuViewport: "box-border flex flex-col gap-px p-refineui-size-xx-small",
|
|
8786
8841
|
label: clsx69(
|
|
8787
8842
|
componentTextClass(componentTypographyTokens.dropdown.label),
|
|
@@ -8789,7 +8844,7 @@ var dropdownStyles = {
|
|
|
8789
8844
|
),
|
|
8790
8845
|
item: clsx69(
|
|
8791
8846
|
componentTextClass(componentTypographyTokens.dropdown.item),
|
|
8792
|
-
"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"
|
|
8847
|
+
"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"
|
|
8793
8848
|
),
|
|
8794
8849
|
shortcut: clsx69(
|
|
8795
8850
|
componentTextClass(componentTypographyTokens.dropdown.shortcut),
|
|
@@ -8798,7 +8853,7 @@ var dropdownStyles = {
|
|
|
8798
8853
|
};
|
|
8799
8854
|
|
|
8800
8855
|
// src/components/Dropdown/Dropdown.tsx
|
|
8801
|
-
import { Slot, acquireBodyScrollLock as
|
|
8856
|
+
import { Slot, acquireBodyScrollLock as acquireBodyScrollLock2, getMergeableTriggerChild } from "@refineui/utilities/react";
|
|
8802
8857
|
|
|
8803
8858
|
// src/components/Dropdown/positioning.ts
|
|
8804
8859
|
import { useEffect as useEffect10, useLayoutEffect as useLayoutEffect6 } from "react";
|
|
@@ -8954,7 +9009,7 @@ function Dropdown({
|
|
|
8954
9009
|
}, [open]);
|
|
8955
9010
|
useEffect11(() => {
|
|
8956
9011
|
if (!open) return;
|
|
8957
|
-
return
|
|
9012
|
+
return acquireBodyScrollLock2();
|
|
8958
9013
|
}, [open]);
|
|
8959
9014
|
return /* @__PURE__ */ jsx53(DropdownCtx.Provider, { value: ctx, children: /* @__PURE__ */ jsx53(
|
|
8960
9015
|
"div",
|
|
@@ -9608,10 +9663,10 @@ import { iconSizes as iconSizes14 } from "@refineui/tokens";
|
|
|
9608
9663
|
|
|
9609
9664
|
// src/components/Link/style.ts
|
|
9610
9665
|
var linkStyles = {
|
|
9611
|
-
base: componentTextClass(componentTypographyTokens.link),
|
|
9666
|
+
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)]`,
|
|
9612
9667
|
withIcon: "inline-flex items-center gap-refineui-size-xx-small",
|
|
9613
9668
|
inline: "inline",
|
|
9614
|
-
disabled: "cursor-not-allowed"
|
|
9669
|
+
disabled: "pointer-events-none cursor-not-allowed !text-refineui-alias-foreground-disabled !no-underline"
|
|
9615
9670
|
};
|
|
9616
9671
|
|
|
9617
9672
|
// src/components/Link/Link.tsx
|
|
@@ -9667,18 +9722,18 @@ import { Slot as Slot2, getMergeableTriggerChild as getMergeableTriggerChild2 }
|
|
|
9667
9722
|
|
|
9668
9723
|
// src/components/Menu/style.ts
|
|
9669
9724
|
import { clsx as clsx75 } from "clsx";
|
|
9670
|
-
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";
|
|
9725
|
+
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";
|
|
9671
9726
|
var menuStyles = {
|
|
9672
9727
|
/** Panel chrome — Web Kit Menu `633:4268` (fill/blur: `surfaceFrosted` + `surfaceFrost`) */
|
|
9673
9728
|
panel: clsx75(menuPanelChrome, "w-refineui-menu-panel-width"),
|
|
9674
9729
|
root: "relative inline-flex items-center leading-none",
|
|
9675
9730
|
triggerFallback: "cursor-pointer border-none bg-transparent p-0 font-inherit text-inherit",
|
|
9676
9731
|
/** Portal shell — position/z-index from `MenuPopover` fixed style */
|
|
9677
|
-
popover: "z-refineui-messages",
|
|
9732
|
+
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",
|
|
9678
9733
|
list: clsx75(menuPanelChrome, "w-full min-w-refineui-menu-panel-width outline-none"),
|
|
9679
9734
|
subPanel: clsx75(
|
|
9680
9735
|
menuPanelChrome,
|
|
9681
|
-
"w-refineui-menu-panel-width min-w-refineui-menu-panel-width outline-none"
|
|
9736
|
+
"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"
|
|
9682
9737
|
),
|
|
9683
9738
|
/** Vertical density matches Sidebar `groupLabel` (`py-xxx-small`). */
|
|
9684
9739
|
section: "flex w-full items-center overflow-hidden px-refineui-size-x-small py-refineui-size-xxx-small",
|
|
@@ -9688,7 +9743,7 @@ var menuStyles = {
|
|
|
9688
9743
|
),
|
|
9689
9744
|
dividerWrap: "flex w-full items-center px-refineui-size-x-small py-refineui-size-xxx-small",
|
|
9690
9745
|
dividerLine: "h-px w-full shrink-0 bg-refineui-alias-border-default",
|
|
9691
|
-
itemBase: "block w-full rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start outline-none",
|
|
9746
|
+
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",
|
|
9692
9747
|
itemDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
9693
9748
|
itemEnabled: "cursor-pointer text-refineui-alias-foreground-primary",
|
|
9694
9749
|
row: "flex items-center gap-refineui-size-x-small",
|
|
@@ -10290,7 +10345,7 @@ var topLevelItem = clsx77(
|
|
|
10290
10345
|
componentTextClass(componentTypographyTokens.navigationMenu.trigger),
|
|
10291
10346
|
"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",
|
|
10292
10347
|
"rounded-refineui-x-large border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small",
|
|
10293
|
-
"text-refineui-alias-foreground-
|
|
10348
|
+
"text-refineui-alias-foreground-primary outline-none leading-none",
|
|
10294
10349
|
"transition-[color,background-color,box-shadow] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
10295
10350
|
);
|
|
10296
10351
|
var chevron = clsx77(
|
|
@@ -10300,22 +10355,52 @@ var navigationMenuStyles = {
|
|
|
10300
10355
|
root: "relative isolate z-refineui-messages flex w-full max-w-max items-center",
|
|
10301
10356
|
list: "relative m-0 flex list-none flex-wrap items-center gap-refineui-size-xxx-small p-0",
|
|
10302
10357
|
item: "relative inline-flex items-center",
|
|
10303
|
-
trigger: clsx77(topLevelItem, "m-0 appearance-none font-inherit"),
|
|
10358
|
+
trigger: clsx77(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)]"),
|
|
10304
10359
|
triggerOpen: "bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
10305
10360
|
triggerDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
10306
10361
|
chevron,
|
|
10307
10362
|
chevronOpen: "rotate-180",
|
|
10308
10363
|
content: clsx77(
|
|
10309
|
-
|
|
10310
|
-
"
|
|
10311
|
-
|
|
10312
|
-
|
|
10364
|
+
"box-border outline-none",
|
|
10365
|
+
"transition-opacity duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
10366
|
+
),
|
|
10367
|
+
/** Default compact panel, anchored to the triggering navigation item. */
|
|
10368
|
+
contentDropdown: "min-w-refineui-dropdown-menu-width",
|
|
10369
|
+
/**
|
|
10370
|
+
* Wide, viewport-aware panel. Width and inner composition stay with the
|
|
10371
|
+
* consuming navigation so this remains a content-agnostic primitive.
|
|
10372
|
+
*/
|
|
10373
|
+
contentFloating: clsx77(
|
|
10374
|
+
"max-w-full origin-top will-change-[opacity,translate]",
|
|
10375
|
+
"transition-[opacity,translate] duration-[var(--refineui-motion-duration-normal)] ease-[var(--refineui-motion-easing-emphasized)]"
|
|
10376
|
+
),
|
|
10377
|
+
/** Header-connected, full-width product navigation surface. */
|
|
10378
|
+
contentOverlay: clsx77(
|
|
10379
|
+
"fixed inset-x-0 bottom-0 origin-top"
|
|
10313
10380
|
),
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10381
|
+
/** Optional boundary for demos and embedded navigation experiences. */
|
|
10382
|
+
contentContained: "absolute",
|
|
10383
|
+
contentOverlayContained: "absolute inset-x-0 bottom-0",
|
|
10384
|
+
overlayBackdrop: clsx77(
|
|
10385
|
+
"absolute inset-0 bg-refineui-alias-surface-overlay",
|
|
10386
|
+
"transition-[opacity,backdrop-filter] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-panel)]"
|
|
10317
10387
|
),
|
|
10318
|
-
|
|
10388
|
+
overlayBackdropEnter: "[animation:refineui-navigation-overlay-backdrop-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none",
|
|
10389
|
+
overlayBackdropExit: "[animation:refineui-navigation-overlay-backdrop-exit_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none",
|
|
10390
|
+
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",
|
|
10391
|
+
/** Compact dropdowns retain the Menu's translucent frosted material. */
|
|
10392
|
+
contentPanelDropdown: "bg-refineui-alias-surface-frosted backdrop-blur-refineui-surface-frost",
|
|
10393
|
+
/** Wide panels prioritize readable product navigation over glass transparency. */
|
|
10394
|
+
contentPanelFloating: clsx77(
|
|
10395
|
+
"bg-refineui-alias-background-primary backdrop-blur-refineui-surface-frost"
|
|
10396
|
+
),
|
|
10397
|
+
contentPanelOverlay: clsx77(
|
|
10398
|
+
"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",
|
|
10399
|
+
"transition-[height,opacity] duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-panel)]",
|
|
10400
|
+
"data-[state=open]:[animation:refineui-navigation-overlay-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none"
|
|
10401
|
+
),
|
|
10402
|
+
contentPanelOverlayExit: "[animation:refineui-navigation-overlay-exit_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-panel)_both] motion-reduce:animation-none",
|
|
10403
|
+
link: clsx77(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"),
|
|
10319
10404
|
linkActive: "bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
10320
10405
|
linkDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
10321
10406
|
/** Dense row inside a content panel — same density as Menu item. */
|
|
@@ -10324,7 +10409,7 @@ var navigationMenuStyles = {
|
|
|
10324
10409
|
"box-border flex w-full cursor-pointer items-center gap-refineui-size-x-small",
|
|
10325
10410
|
"rounded-refineui-large border-none bg-transparent p-refineui-size-x-small text-start no-underline outline-none",
|
|
10326
10411
|
"text-refineui-alias-foreground-primary",
|
|
10327
|
-
"transition-[background-color,color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
10412
|
+
"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"
|
|
10328
10413
|
),
|
|
10329
10414
|
/** Optional — prefer omitting; kept for API compatibility. */
|
|
10330
10415
|
indicator: "hidden"
|
|
@@ -10374,12 +10459,17 @@ function NavigationMenu({
|
|
|
10374
10459
|
...props
|
|
10375
10460
|
}) {
|
|
10376
10461
|
const [value, setValue] = useControllableOpen(valueControlled, defaultValue, onValueChange);
|
|
10462
|
+
const idPrefix = `refineui-nav-menu-${useId12().replaceAll(":", "")}`;
|
|
10377
10463
|
const listRef = useRef15(null);
|
|
10378
10464
|
const triggerMapRef = useRef15(/* @__PURE__ */ new Map());
|
|
10379
10465
|
const contentMapRef = useRef15(/* @__PURE__ */ new Map());
|
|
10380
10466
|
const openTimerRef = useRef15(null);
|
|
10381
10467
|
const closeTimerRef = useRef15(null);
|
|
10468
|
+
const switchTimerRef = useRef15(null);
|
|
10382
10469
|
const rootRef = useRef15(null);
|
|
10470
|
+
const [isSwitching, setIsSwitching] = useState18(false);
|
|
10471
|
+
const overlayContentRef = useRef15(/* @__PURE__ */ new Map());
|
|
10472
|
+
const [overlayVersion, setOverlayVersion] = useState18(0);
|
|
10383
10473
|
const delayDuration = delayDurationProp ?? motionMsToNumber4(semanticInteraction6.duration.normal);
|
|
10384
10474
|
const skipDelayDuration = skipDelayDurationProp ?? motionMsToNumber4(semanticInteraction6.duration.fast);
|
|
10385
10475
|
const clearTimers = useCallback14(() => {
|
|
@@ -10395,24 +10485,36 @@ function NavigationMenu({
|
|
|
10395
10485
|
const setValueSafe = useCallback14(
|
|
10396
10486
|
(next) => {
|
|
10397
10487
|
clearTimers();
|
|
10488
|
+
if (switchTimerRef.current != null) {
|
|
10489
|
+
window.clearTimeout(switchTimerRef.current);
|
|
10490
|
+
switchTimerRef.current = null;
|
|
10491
|
+
}
|
|
10492
|
+
const switching = Boolean(value && next && value !== next);
|
|
10493
|
+
setIsSwitching(switching);
|
|
10494
|
+
if (switching) {
|
|
10495
|
+
switchTimerRef.current = window.setTimeout(() => {
|
|
10496
|
+
setIsSwitching(false);
|
|
10497
|
+
switchTimerRef.current = null;
|
|
10498
|
+
}, motionMsToNumber4(semanticInteraction6.duration.normal));
|
|
10499
|
+
}
|
|
10398
10500
|
setValue(next);
|
|
10399
10501
|
},
|
|
10400
|
-
[clearTimers, setValue]
|
|
10502
|
+
[clearTimers, setValue, value]
|
|
10401
10503
|
);
|
|
10402
10504
|
const openItem = useCallback14(
|
|
10403
10505
|
(itemValue, options) => {
|
|
10404
10506
|
clearTimers();
|
|
10405
10507
|
const delay = options?.immediate || value !== "" ? skipDelayDuration : delayDuration;
|
|
10406
10508
|
if (delay <= 0 || options?.immediate) {
|
|
10407
|
-
|
|
10509
|
+
setValueSafe(itemValue);
|
|
10408
10510
|
return;
|
|
10409
10511
|
}
|
|
10410
10512
|
openTimerRef.current = window.setTimeout(() => {
|
|
10411
|
-
|
|
10513
|
+
setValueSafe(itemValue);
|
|
10412
10514
|
openTimerRef.current = null;
|
|
10413
10515
|
}, delay);
|
|
10414
10516
|
},
|
|
10415
|
-
[clearTimers, delayDuration,
|
|
10517
|
+
[clearTimers, delayDuration, setValueSafe, skipDelayDuration, value]
|
|
10416
10518
|
);
|
|
10417
10519
|
const close = useCallback14(
|
|
10418
10520
|
(options) => {
|
|
@@ -10442,6 +10544,36 @@ function NavigationMenu({
|
|
|
10442
10544
|
contentMapRef.current.delete(itemValue);
|
|
10443
10545
|
}
|
|
10444
10546
|
}, []);
|
|
10547
|
+
const registerOverlayContent = useCallback14((itemValue, content) => {
|
|
10548
|
+
overlayContentRef.current.set(itemValue, content);
|
|
10549
|
+
setOverlayVersion((version) => version + 1);
|
|
10550
|
+
}, []);
|
|
10551
|
+
const unregisterOverlayContent = useCallback14((itemValue) => {
|
|
10552
|
+
if (!overlayContentRef.current.delete(itemValue)) return;
|
|
10553
|
+
setOverlayVersion((version) => version + 1);
|
|
10554
|
+
}, []);
|
|
10555
|
+
const getOverlayContent = useCallback14(
|
|
10556
|
+
(itemValue) => overlayContentRef.current.get(itemValue),
|
|
10557
|
+
[]
|
|
10558
|
+
);
|
|
10559
|
+
const focusFirstContent = useCallback14((itemValue) => {
|
|
10560
|
+
const focus = () => {
|
|
10561
|
+
const content = contentMapRef.current.get(itemValue);
|
|
10562
|
+
const firstFocusable = content?.querySelector(
|
|
10563
|
+
'a[href]:not([aria-disabled="true"]), button:not(:disabled), [tabindex]:not([tabindex="-1"])'
|
|
10564
|
+
);
|
|
10565
|
+
if (firstFocusable) {
|
|
10566
|
+
firstFocusable.focus();
|
|
10567
|
+
return;
|
|
10568
|
+
}
|
|
10569
|
+
requestAnimationFrame(() => {
|
|
10570
|
+
contentMapRef.current.get(itemValue)?.querySelector(
|
|
10571
|
+
'a[href]:not([aria-disabled="true"]), button:not(:disabled), [tabindex]:not([tabindex="-1"])'
|
|
10572
|
+
)?.focus();
|
|
10573
|
+
});
|
|
10574
|
+
};
|
|
10575
|
+
requestAnimationFrame(focus);
|
|
10576
|
+
}, []);
|
|
10445
10577
|
const isContentTarget = useCallback14((itemValue, target) => {
|
|
10446
10578
|
return target instanceof Node && contentMapRef.current.get(itemValue)?.contains(target) === true;
|
|
10447
10579
|
}, []);
|
|
@@ -10449,7 +10581,10 @@ function NavigationMenu({
|
|
|
10449
10581
|
if (!(target instanceof Node)) return false;
|
|
10450
10582
|
return rootRef.current?.contains(target) === true || Array.from(contentMapRef.current.values()).some((content) => content.contains(target));
|
|
10451
10583
|
}, []);
|
|
10452
|
-
useEffect13(() => () =>
|
|
10584
|
+
useEffect13(() => () => {
|
|
10585
|
+
clearTimers();
|
|
10586
|
+
if (switchTimerRef.current != null) window.clearTimeout(switchTimerRef.current);
|
|
10587
|
+
}, [clearTimers]);
|
|
10453
10588
|
useEffect13(() => {
|
|
10454
10589
|
if (!value) return;
|
|
10455
10590
|
const onPointerDown = (event) => {
|
|
@@ -10478,19 +10613,31 @@ function NavigationMenu({
|
|
|
10478
10613
|
close,
|
|
10479
10614
|
delayDuration,
|
|
10480
10615
|
skipDelayDuration,
|
|
10616
|
+
idPrefix,
|
|
10481
10617
|
listRef,
|
|
10482
10618
|
registerTrigger,
|
|
10483
10619
|
registerContent,
|
|
10620
|
+
focusFirstContent,
|
|
10484
10621
|
isContentTarget,
|
|
10485
10622
|
isMenuTarget,
|
|
10486
|
-
isInsideContent: false
|
|
10623
|
+
isInsideContent: false,
|
|
10624
|
+
isSwitching,
|
|
10625
|
+
registerOverlayContent,
|
|
10626
|
+
unregisterOverlayContent,
|
|
10627
|
+
getOverlayContent
|
|
10487
10628
|
}),
|
|
10488
10629
|
[
|
|
10489
10630
|
close,
|
|
10490
10631
|
delayDuration,
|
|
10491
10632
|
isContentTarget,
|
|
10492
10633
|
isMenuTarget,
|
|
10634
|
+
isSwitching,
|
|
10635
|
+
registerOverlayContent,
|
|
10636
|
+
unregisterOverlayContent,
|
|
10637
|
+
getOverlayContent,
|
|
10638
|
+
idPrefix,
|
|
10493
10639
|
openItem,
|
|
10640
|
+
focusFirstContent,
|
|
10494
10641
|
registerContent,
|
|
10495
10642
|
registerTrigger,
|
|
10496
10643
|
setValueSafe,
|
|
@@ -10498,7 +10645,7 @@ function NavigationMenu({
|
|
|
10498
10645
|
value
|
|
10499
10646
|
]
|
|
10500
10647
|
);
|
|
10501
|
-
return /* @__PURE__ */ jsx59(NavigationMenuContext.Provider, { value: ctx, children: /* @__PURE__ */
|
|
10648
|
+
return /* @__PURE__ */ jsx59(NavigationMenuContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs23(
|
|
10502
10649
|
"nav",
|
|
10503
10650
|
{
|
|
10504
10651
|
ref: rootRef,
|
|
@@ -10506,7 +10653,10 @@ function NavigationMenu({
|
|
|
10506
10653
|
"aria-label": ariaLabel,
|
|
10507
10654
|
className: clsx78(navigationMenuStyles.root, className),
|
|
10508
10655
|
...props,
|
|
10509
|
-
children
|
|
10656
|
+
children: [
|
|
10657
|
+
children,
|
|
10658
|
+
/* @__PURE__ */ jsx59(NavigationMenuOverlayViewport, { version: overlayVersion })
|
|
10659
|
+
]
|
|
10510
10660
|
}
|
|
10511
10661
|
) });
|
|
10512
10662
|
}
|
|
@@ -10558,8 +10708,8 @@ function NavigationMenuItem({
|
|
|
10558
10708
|
const reactId = useId12();
|
|
10559
10709
|
const value = valueProp ?? reactId;
|
|
10560
10710
|
const open = menu.value === value;
|
|
10561
|
-
const triggerId =
|
|
10562
|
-
const contentId =
|
|
10711
|
+
const triggerId = `${menu.idPrefix}-trigger-${value}`;
|
|
10712
|
+
const contentId = `${menu.idPrefix}-content-${value}`;
|
|
10563
10713
|
const itemCtx = useMemo14(
|
|
10564
10714
|
() => ({ value, open, triggerId, contentId }),
|
|
10565
10715
|
[contentId, open, triggerId, value]
|
|
@@ -10646,9 +10796,10 @@ function NavigationMenuTrigger({
|
|
|
10646
10796
|
} else {
|
|
10647
10797
|
menu.openItem(item.value, { immediate: true });
|
|
10648
10798
|
}
|
|
10649
|
-
} else if (event.key === "ArrowDown"
|
|
10799
|
+
} else if (event.key === "ArrowDown") {
|
|
10650
10800
|
event.preventDefault();
|
|
10651
10801
|
menu.openItem(item.value, { immediate: true });
|
|
10802
|
+
menu.focusFirstContent(item.value);
|
|
10652
10803
|
}
|
|
10653
10804
|
},
|
|
10654
10805
|
...props,
|
|
@@ -10670,9 +10821,44 @@ function NavigationMenuTrigger({
|
|
|
10670
10821
|
}
|
|
10671
10822
|
);
|
|
10672
10823
|
}
|
|
10673
|
-
function NavigationMenuContent({
|
|
10824
|
+
function NavigationMenuContent(props) {
|
|
10825
|
+
return props.layout === "overlay" ? /* @__PURE__ */ jsx59(NavigationMenuOverlayContent, { ...props }) : /* @__PURE__ */ jsx59(NavigationMenuContentPanel, { ...props });
|
|
10826
|
+
}
|
|
10827
|
+
function NavigationMenuOverlayContent({
|
|
10828
|
+
children,
|
|
10829
|
+
className,
|
|
10830
|
+
portalContainer,
|
|
10831
|
+
onKeyDown,
|
|
10832
|
+
style
|
|
10833
|
+
}) {
|
|
10834
|
+
const menu = useNavigationMenu("NavigationMenuContent");
|
|
10835
|
+
const item = useNavigationMenuItem("NavigationMenuContent");
|
|
10836
|
+
const { registerOverlayContent, unregisterOverlayContent } = menu;
|
|
10837
|
+
const registrationRef = useRef15({
|
|
10838
|
+
children,
|
|
10839
|
+
className,
|
|
10840
|
+
portalContainer,
|
|
10841
|
+
onKeyDown,
|
|
10842
|
+
style
|
|
10843
|
+
});
|
|
10844
|
+
registrationRef.current = {
|
|
10845
|
+
children,
|
|
10846
|
+
className,
|
|
10847
|
+
portalContainer,
|
|
10848
|
+
onKeyDown,
|
|
10849
|
+
style
|
|
10850
|
+
};
|
|
10851
|
+
useEffect13(() => {
|
|
10852
|
+
registerOverlayContent(item.value, registrationRef.current);
|
|
10853
|
+
return () => unregisterOverlayContent(item.value);
|
|
10854
|
+
}, [item.value, registerOverlayContent, unregisterOverlayContent]);
|
|
10855
|
+
return null;
|
|
10856
|
+
}
|
|
10857
|
+
function NavigationMenuContentPanel({
|
|
10674
10858
|
children,
|
|
10675
10859
|
className,
|
|
10860
|
+
layout = "dropdown",
|
|
10861
|
+
portalContainer,
|
|
10676
10862
|
onKeyDown,
|
|
10677
10863
|
style,
|
|
10678
10864
|
...props
|
|
@@ -10701,9 +10887,11 @@ function NavigationMenuContent({
|
|
|
10701
10887
|
const timeout = window.setTimeout(() => {
|
|
10702
10888
|
setShouldRender(false);
|
|
10703
10889
|
setIsClosing(false);
|
|
10704
|
-
}, motionMsToNumber4(
|
|
10890
|
+
}, motionMsToNumber4(
|
|
10891
|
+
layout === "overlay" ? semanticInteraction6.duration.normal : semanticInteraction6.duration.fast
|
|
10892
|
+
));
|
|
10705
10893
|
return () => window.clearTimeout(timeout);
|
|
10706
|
-
}, [item.open,
|
|
10894
|
+
}, [item.open, layout, menu.isSwitching]);
|
|
10707
10895
|
useIsomorphicLayoutEffect5(() => {
|
|
10708
10896
|
if (!shouldRender || !item.open || typeof document === "undefined") return;
|
|
10709
10897
|
const trigger = document.getElementById(item.triggerId);
|
|
@@ -10713,14 +10901,21 @@ function NavigationMenuContent({
|
|
|
10713
10901
|
if (!content2) return;
|
|
10714
10902
|
const triggerRect = trigger.getBoundingClientRect();
|
|
10715
10903
|
const contentWidth = content2.offsetWidth;
|
|
10904
|
+
const portalRect = portalContainer?.getBoundingClientRect();
|
|
10905
|
+
const boundaryWidth = portalRect?.width ?? window.innerWidth;
|
|
10716
10906
|
const edge = Number.parseFloat(spacings4.sizeMedium) || 8;
|
|
10717
|
-
const
|
|
10718
|
-
|
|
10719
|
-
|
|
10720
|
-
|
|
10907
|
+
const floatingOffset = Number.parseFloat(spacings4.sizeXXSmall) || 4;
|
|
10908
|
+
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));
|
|
10909
|
+
if (layout === "overlay") {
|
|
10910
|
+
setPositionStyle({
|
|
10911
|
+
top: portalRect ? triggerRect.bottom - portalRect.top : triggerRect.bottom,
|
|
10912
|
+
zIndex: Number.parseInt(String(zIndex3.zIndexMessages), 10) || 1e4
|
|
10913
|
+
});
|
|
10914
|
+
return;
|
|
10915
|
+
}
|
|
10721
10916
|
setPositionStyle({
|
|
10722
|
-
position: "fixed",
|
|
10723
|
-
top: triggerRect.bottom,
|
|
10917
|
+
position: portalRect ? "absolute" : "fixed",
|
|
10918
|
+
top: triggerRect.bottom + (layout === "floating" ? floatingOffset : 0) - (portalRect?.top ?? 0),
|
|
10724
10919
|
left,
|
|
10725
10920
|
zIndex: Number.parseInt(String(zIndex3.zIndexMessages), 10) || 1e4
|
|
10726
10921
|
});
|
|
@@ -10734,13 +10929,13 @@ function NavigationMenuContent({
|
|
|
10734
10929
|
window.removeEventListener("resize", updatePosition);
|
|
10735
10930
|
unsubscribe();
|
|
10736
10931
|
};
|
|
10737
|
-
}, [item.open, item.triggerId, shouldRender]);
|
|
10932
|
+
}, [item.open, item.triggerId, layout, portalContainer, shouldRender]);
|
|
10738
10933
|
const contentCtx = useMemo14(
|
|
10739
10934
|
() => ({ ...menu, isInsideContent: true }),
|
|
10740
10935
|
[menu]
|
|
10741
10936
|
);
|
|
10742
10937
|
if (!shouldRender) return null;
|
|
10743
|
-
const content = /* @__PURE__ */ jsx59(NavigationMenuContext.Provider, { value: contentCtx, children: /* @__PURE__ */
|
|
10938
|
+
const content = /* @__PURE__ */ jsx59(NavigationMenuContext.Provider, { value: contentCtx, children: /* @__PURE__ */ jsxs23(
|
|
10744
10939
|
"div",
|
|
10745
10940
|
{
|
|
10746
10941
|
ref: setContentRef,
|
|
@@ -10748,8 +10943,15 @@ function NavigationMenuContent({
|
|
|
10748
10943
|
role: "region",
|
|
10749
10944
|
"aria-labelledby": item.triggerId,
|
|
10750
10945
|
"data-refineui": "navigation-menu-content",
|
|
10946
|
+
"data-layout": layout,
|
|
10751
10947
|
"data-state": isClosing || !item.open ? "closed" : "open",
|
|
10752
|
-
className: clsx78(
|
|
10948
|
+
className: clsx78(
|
|
10949
|
+
navigationMenuStyles.content,
|
|
10950
|
+
layout === "overlay" ? portalContainer ? navigationMenuStyles.contentOverlayContained : navigationMenuStyles.contentOverlay : layout === "floating" ? navigationMenuStyles.contentFloating : navigationMenuStyles.contentDropdown,
|
|
10951
|
+
layout !== "overlay" && portalContainer && navigationMenuStyles.contentContained,
|
|
10952
|
+
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",
|
|
10953
|
+
className
|
|
10954
|
+
),
|
|
10753
10955
|
style: { ...positionStyle, ...style },
|
|
10754
10956
|
onPointerEnter: () => menu.openItem(item.value, { immediate: true }),
|
|
10755
10957
|
onPointerLeave: (event) => {
|
|
@@ -10762,13 +10964,226 @@ function NavigationMenuContent({
|
|
|
10762
10964
|
if (event.key === "Escape") {
|
|
10763
10965
|
event.preventDefault();
|
|
10764
10966
|
menu.setValue("");
|
|
10967
|
+
document.getElementById(item.triggerId)?.focus();
|
|
10765
10968
|
}
|
|
10766
10969
|
},
|
|
10767
10970
|
...props,
|
|
10768
|
-
children:
|
|
10971
|
+
children: [
|
|
10972
|
+
layout === "overlay" ? /* @__PURE__ */ jsx59(
|
|
10973
|
+
"div",
|
|
10974
|
+
{
|
|
10975
|
+
"aria-hidden": true,
|
|
10976
|
+
"data-state": isClosing || !item.open ? "closed" : "open",
|
|
10977
|
+
className: clsx78(
|
|
10978
|
+
navigationMenuStyles.overlayBackdrop,
|
|
10979
|
+
isClosing || !item.open ? "backdrop-blur-none opacity-0" : "backdrop-blur-[var(--refineui-blur-overlay-scrim)] opacity-100",
|
|
10980
|
+
!menu.isSwitching && item.open ? navigationMenuStyles.overlayBackdropEnter : void 0,
|
|
10981
|
+
isClosing && !menu.isSwitching ? navigationMenuStyles.overlayBackdropExit : void 0
|
|
10982
|
+
),
|
|
10983
|
+
onPointerDown: (event) => {
|
|
10984
|
+
event.preventDefault();
|
|
10985
|
+
menu.setValue("");
|
|
10986
|
+
},
|
|
10987
|
+
onPointerEnter: () => menu.close()
|
|
10988
|
+
}
|
|
10989
|
+
) : null,
|
|
10990
|
+
/* @__PURE__ */ jsx59(
|
|
10991
|
+
"div",
|
|
10992
|
+
{
|
|
10993
|
+
"data-refineui": "navigation-menu-content-panel",
|
|
10994
|
+
"data-layout": layout,
|
|
10995
|
+
"data-state": isClosing || !item.open ? "closed" : "open",
|
|
10996
|
+
className: clsx78(
|
|
10997
|
+
layout === "overlay" ? navigationMenuStyles.contentPanelOverlay : navigationMenuStyles.contentPanel,
|
|
10998
|
+
layout === "overlay" ? void 0 : layout === "floating" ? navigationMenuStyles.contentPanelFloating : navigationMenuStyles.contentPanelDropdown,
|
|
10999
|
+
layout === "overlay" && (isClosing || !item.open) ? "translate-y-refineui-size-xxx-small opacity-0" : void 0,
|
|
11000
|
+
layout === "overlay" && isClosing && !menu.isSwitching ? navigationMenuStyles.contentPanelOverlayExit : void 0
|
|
11001
|
+
),
|
|
11002
|
+
children
|
|
11003
|
+
}
|
|
11004
|
+
)
|
|
11005
|
+
]
|
|
11006
|
+
}
|
|
11007
|
+
) });
|
|
11008
|
+
return typeof document === "undefined" ? content : createPortal6(content, portalContainer ?? document.body);
|
|
11009
|
+
}
|
|
11010
|
+
function NavigationMenuOverlayViewport({ version: _version }) {
|
|
11011
|
+
const menu = useNavigationMenu("NavigationMenuContent");
|
|
11012
|
+
const [presentValue, setPresentValue] = useState18(menu.value);
|
|
11013
|
+
const [isClosing, setIsClosing] = useState18(false);
|
|
11014
|
+
const [positionStyle, setPositionStyle] = useState18(null);
|
|
11015
|
+
const [panelHeight, setPanelHeight] = useState18(null);
|
|
11016
|
+
const rootRef = useRef15(null);
|
|
11017
|
+
const innerRef = useRef15(null);
|
|
11018
|
+
const heightRef = useRef15(null);
|
|
11019
|
+
const heightTimerRef = useRef15(null);
|
|
11020
|
+
const isClosingRef = useRef15(false);
|
|
11021
|
+
const registration = presentValue ? menu.getOverlayContent(presentValue) : void 0;
|
|
11022
|
+
useIsomorphicLayoutEffect5(() => {
|
|
11023
|
+
if (menu.value) {
|
|
11024
|
+
isClosingRef.current = false;
|
|
11025
|
+
setPresentValue(menu.value);
|
|
11026
|
+
setIsClosing(false);
|
|
11027
|
+
return;
|
|
11028
|
+
}
|
|
11029
|
+
if (!presentValue) return;
|
|
11030
|
+
isClosingRef.current = true;
|
|
11031
|
+
setIsClosing(true);
|
|
11032
|
+
if (heightTimerRef.current != null) {
|
|
11033
|
+
window.clearTimeout(heightTimerRef.current);
|
|
11034
|
+
heightTimerRef.current = null;
|
|
11035
|
+
}
|
|
11036
|
+
const currentHeight = innerRef.current?.scrollHeight ?? heightRef.current;
|
|
11037
|
+
let frame;
|
|
11038
|
+
let settleFrame;
|
|
11039
|
+
if (currentHeight != null) {
|
|
11040
|
+
setPanelHeight(currentHeight);
|
|
11041
|
+
frame = requestAnimationFrame(() => {
|
|
11042
|
+
settleFrame = requestAnimationFrame(() => setPanelHeight(0));
|
|
11043
|
+
});
|
|
11044
|
+
}
|
|
11045
|
+
const timeout = window.setTimeout(() => {
|
|
11046
|
+
setPresentValue("");
|
|
11047
|
+
setIsClosing(false);
|
|
11048
|
+
setPanelHeight(null);
|
|
11049
|
+
heightRef.current = null;
|
|
11050
|
+
isClosingRef.current = false;
|
|
11051
|
+
}, motionMsToNumber4(semanticInteraction6.duration.panel));
|
|
11052
|
+
return () => {
|
|
11053
|
+
if (frame != null) cancelAnimationFrame(frame);
|
|
11054
|
+
if (settleFrame != null) cancelAnimationFrame(settleFrame);
|
|
11055
|
+
window.clearTimeout(timeout);
|
|
11056
|
+
};
|
|
11057
|
+
}, [menu.value, presentValue]);
|
|
11058
|
+
useIsomorphicLayoutEffect5(() => {
|
|
11059
|
+
if (!presentValue || !registration || typeof document === "undefined") return;
|
|
11060
|
+
const trigger = document.getElementById(`${menu.idPrefix}-trigger-${CSS.escape(presentValue)}`);
|
|
11061
|
+
if (!trigger) return;
|
|
11062
|
+
const updatePosition = () => {
|
|
11063
|
+
const triggerRect = trigger.getBoundingClientRect();
|
|
11064
|
+
const portalRect = registration.portalContainer?.getBoundingClientRect();
|
|
11065
|
+
const headerBottom = trigger.closest("header")?.getBoundingClientRect().bottom;
|
|
11066
|
+
const overlayTop = headerBottom ?? triggerRect.bottom;
|
|
11067
|
+
setPositionStyle({
|
|
11068
|
+
top: portalRect ? overlayTop - portalRect.top : overlayTop,
|
|
11069
|
+
zIndex: Number.parseInt(String(zIndex3.zIndexMessages), 10) || 1e4
|
|
11070
|
+
});
|
|
11071
|
+
};
|
|
11072
|
+
updatePosition();
|
|
11073
|
+
window.addEventListener("resize", updatePosition);
|
|
11074
|
+
const unsubscribe = subscribeScrollAndScrollableAncestors2(trigger, updatePosition);
|
|
11075
|
+
return () => {
|
|
11076
|
+
window.removeEventListener("resize", updatePosition);
|
|
11077
|
+
unsubscribe();
|
|
11078
|
+
};
|
|
11079
|
+
}, [presentValue, registration]);
|
|
11080
|
+
useIsomorphicLayoutEffect5(() => {
|
|
11081
|
+
if (!presentValue || !innerRef.current) return;
|
|
11082
|
+
const nextHeight = innerRef.current.scrollHeight;
|
|
11083
|
+
const previousHeight = heightRef.current;
|
|
11084
|
+
heightRef.current = nextHeight;
|
|
11085
|
+
if (previousHeight === nextHeight) {
|
|
11086
|
+
setPanelHeight(null);
|
|
11087
|
+
return;
|
|
11088
|
+
}
|
|
11089
|
+
if (heightTimerRef.current != null) window.clearTimeout(heightTimerRef.current);
|
|
11090
|
+
setPanelHeight(previousHeight ?? 0);
|
|
11091
|
+
let settleFrame;
|
|
11092
|
+
const frame = requestAnimationFrame(() => {
|
|
11093
|
+
settleFrame = requestAnimationFrame(() => setPanelHeight(nextHeight));
|
|
11094
|
+
});
|
|
11095
|
+
heightTimerRef.current = window.setTimeout(
|
|
11096
|
+
() => {
|
|
11097
|
+
if (!isClosingRef.current) setPanelHeight(null);
|
|
11098
|
+
},
|
|
11099
|
+
motionMsToNumber4(semanticInteraction6.duration.panel)
|
|
11100
|
+
);
|
|
11101
|
+
return () => {
|
|
11102
|
+
cancelAnimationFrame(frame);
|
|
11103
|
+
if (settleFrame != null) cancelAnimationFrame(settleFrame);
|
|
11104
|
+
if (heightTimerRef.current != null) window.clearTimeout(heightTimerRef.current);
|
|
11105
|
+
};
|
|
11106
|
+
}, [presentValue, registration?.children]);
|
|
11107
|
+
useEffect13(() => {
|
|
11108
|
+
menu.registerContent(presentValue, rootRef.current);
|
|
11109
|
+
return () => menu.registerContent(presentValue, null);
|
|
11110
|
+
}, [menu, presentValue]);
|
|
11111
|
+
useEffect13(() => {
|
|
11112
|
+
if (!presentValue || typeof document === "undefined") return;
|
|
11113
|
+
const trigger = document.getElementById(`${menu.idPrefix}-trigger-${CSS.escape(presentValue)}`);
|
|
11114
|
+
const header = trigger?.closest("header");
|
|
11115
|
+
if (!header) return;
|
|
11116
|
+
header.setAttribute("data-refineui-navigation-menu-overlay-open", "");
|
|
11117
|
+
return () => header.removeAttribute("data-refineui-navigation-menu-overlay-open");
|
|
11118
|
+
}, [presentValue]);
|
|
11119
|
+
if (!presentValue || !registration) return null;
|
|
11120
|
+
const state = isClosing ? "closed" : "open";
|
|
11121
|
+
const contentCtx = { ...menu, isInsideContent: true };
|
|
11122
|
+
const root = /* @__PURE__ */ jsx59(NavigationMenuContext.Provider, { value: contentCtx, children: /* @__PURE__ */ jsxs23(
|
|
11123
|
+
"div",
|
|
11124
|
+
{
|
|
11125
|
+
ref: rootRef,
|
|
11126
|
+
id: `${menu.idPrefix}-content-${presentValue}`,
|
|
11127
|
+
role: "region",
|
|
11128
|
+
"aria-labelledby": `${menu.idPrefix}-trigger-${presentValue}`,
|
|
11129
|
+
"data-refineui": "navigation-menu-content",
|
|
11130
|
+
"data-layout": "overlay",
|
|
11131
|
+
"data-state": state,
|
|
11132
|
+
className: clsx78(
|
|
11133
|
+
registration.portalContainer ? navigationMenuStyles.contentOverlayContained : navigationMenuStyles.contentOverlay,
|
|
11134
|
+
isClosing && "pointer-events-none",
|
|
11135
|
+
registration.className
|
|
11136
|
+
),
|
|
11137
|
+
style: { ...positionStyle, ...registration.style },
|
|
11138
|
+
onPointerEnter: () => menu.openItem(presentValue, { immediate: true }),
|
|
11139
|
+
onPointerLeave: (event) => {
|
|
11140
|
+
if (menu.isMenuTarget(event.relatedTarget)) return;
|
|
11141
|
+
menu.close();
|
|
11142
|
+
},
|
|
11143
|
+
onKeyDown: (event) => {
|
|
11144
|
+
registration.onKeyDown?.(event);
|
|
11145
|
+
if (event.defaultPrevented || event.key !== "Escape") return;
|
|
11146
|
+
event.preventDefault();
|
|
11147
|
+
menu.setValue("");
|
|
11148
|
+
document.getElementById(`${menu.idPrefix}-trigger-${presentValue}`)?.focus();
|
|
11149
|
+
},
|
|
11150
|
+
children: [
|
|
11151
|
+
/* @__PURE__ */ jsx59(
|
|
11152
|
+
"div",
|
|
11153
|
+
{
|
|
11154
|
+
"aria-hidden": true,
|
|
11155
|
+
"data-state": state,
|
|
11156
|
+
className: clsx78(
|
|
11157
|
+
navigationMenuStyles.overlayBackdrop,
|
|
11158
|
+
isClosing ? "backdrop-blur-none opacity-0" : "backdrop-blur-[var(--refineui-blur-overlay-scrim)] opacity-100",
|
|
11159
|
+
!isClosing && navigationMenuStyles.overlayBackdropEnter,
|
|
11160
|
+
isClosing && navigationMenuStyles.overlayBackdropExit
|
|
11161
|
+
),
|
|
11162
|
+
onPointerDown: (event) => {
|
|
11163
|
+
event.preventDefault();
|
|
11164
|
+
menu.setValue("");
|
|
11165
|
+
},
|
|
11166
|
+
onPointerEnter: () => menu.close()
|
|
11167
|
+
}
|
|
11168
|
+
),
|
|
11169
|
+
/* @__PURE__ */ jsx59(
|
|
11170
|
+
"div",
|
|
11171
|
+
{
|
|
11172
|
+
"data-refineui": "navigation-menu-content-panel",
|
|
11173
|
+
"data-layout": "overlay",
|
|
11174
|
+
"data-state": state,
|
|
11175
|
+
className: clsx78(
|
|
11176
|
+
navigationMenuStyles.contentPanelOverlay,
|
|
11177
|
+
isClosing && navigationMenuStyles.contentPanelOverlayExit
|
|
11178
|
+
),
|
|
11179
|
+
style: panelHeight == null ? void 0 : { height: panelHeight },
|
|
11180
|
+
children: /* @__PURE__ */ jsx59("div", { ref: innerRef, className: "w-full", children: registration.children })
|
|
11181
|
+
}
|
|
11182
|
+
)
|
|
11183
|
+
]
|
|
10769
11184
|
}
|
|
10770
11185
|
) });
|
|
10771
|
-
return typeof document === "undefined" ?
|
|
11186
|
+
return typeof document === "undefined" ? root : createPortal6(root, registration.portalContainer ?? document.body);
|
|
10772
11187
|
}
|
|
10773
11188
|
function NavigationMenuLink({
|
|
10774
11189
|
children,
|
|
@@ -10817,7 +11232,7 @@ function NavigationMenuLink({
|
|
|
10817
11232
|
);
|
|
10818
11233
|
}
|
|
10819
11234
|
function NavigationMenuIndicator({ className, style, ...props }) {
|
|
10820
|
-
const { value, listRef } = useNavigationMenu("NavigationMenuIndicator");
|
|
11235
|
+
const { value, listRef, idPrefix } = useNavigationMenu("NavigationMenuIndicator");
|
|
10821
11236
|
const [box, setBox] = useState18(null);
|
|
10822
11237
|
const measure = useCallback14(() => {
|
|
10823
11238
|
const list = listRef.current;
|
|
@@ -10826,7 +11241,7 @@ function NavigationMenuIndicator({ className, style, ...props }) {
|
|
|
10826
11241
|
return;
|
|
10827
11242
|
}
|
|
10828
11243
|
const trigger = list.querySelector(
|
|
10829
|
-
`[data-refineui="navigation-menu-trigger"][id="
|
|
11244
|
+
`[data-refineui="navigation-menu-trigger"][id="${CSS.escape(idPrefix)}-trigger-${CSS.escape(value)}"]`
|
|
10830
11245
|
);
|
|
10831
11246
|
if (!trigger) {
|
|
10832
11247
|
setBox(null);
|
|
@@ -10897,9 +11312,9 @@ var sidebarStyles = {
|
|
|
10897
11312
|
"box-border flex w-full min-w-0 cursor-pointer items-center gap-refineui-size-x-small",
|
|
10898
11313
|
"rounded-refineui-large border-none bg-transparent px-refineui-size-medium py-refineui-size-x-small",
|
|
10899
11314
|
"text-refineui-alias-foreground-tertiary no-underline outline-none",
|
|
10900
|
-
"transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
11315
|
+
"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"
|
|
10901
11316
|
),
|
|
10902
|
-
linkActive: "font-medium text-refineui-alias-foreground-primary",
|
|
11317
|
+
linkActive: "font-medium bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
10903
11318
|
linkDisabled: "cursor-not-allowed text-refineui-alias-foreground-disabled",
|
|
10904
11319
|
footer: clsx79(
|
|
10905
11320
|
"mt-auto flex shrink-0 flex-col",
|
|
@@ -11042,17 +11457,43 @@ import { clsx as clsx81 } from "clsx";
|
|
|
11042
11457
|
var sidebarPeekStyles = {
|
|
11043
11458
|
root: "relative h-full w-full min-h-0 min-w-0",
|
|
11044
11459
|
edgeContained: clsx81(
|
|
11045
|
-
"absolute inset-y-0 inset-inline-start-0 z-[calc(var(--refineui-z-floating)-1)]",
|
|
11460
|
+
"absolute inset-y-0 inset-inline-start-0 z-[calc(var(--refineui-z-floating)-1)] data-[sidebar-peek-edge-suspended]:pointer-events-none",
|
|
11046
11461
|
"w-refineui-foundation-size-120"
|
|
11047
11462
|
),
|
|
11048
11463
|
edgeViewport: clsx81(
|
|
11049
|
-
"fixed inset-inline-start-0 inset-block-end-0 z-[calc(var(--refineui-z-floating)-1)]",
|
|
11464
|
+
"fixed inset-inline-start-0 inset-block-end-0 z-[calc(var(--refineui-z-floating)-1)] data-[sidebar-peek-edge-suspended]:pointer-events-none",
|
|
11050
11465
|
"w-refineui-foundation-size-120",
|
|
11051
11466
|
"top-[var(--refineui-sidebar-peek-viewport-offset,0px)]"
|
|
11052
11467
|
),
|
|
11053
|
-
surfaceContained: clsx81(
|
|
11054
|
-
|
|
11055
|
-
|
|
11468
|
+
surfaceContained: clsx81(
|
|
11469
|
+
"group/sidebar-peek-surface absolute z-refineui-floating flex min-h-0 box-border pointer-events-none invisible",
|
|
11470
|
+
"inset-y-[calc(var(--refineui-spacing-size-small)-var(--refineui-spacing-size-x-small))]",
|
|
11471
|
+
"start-[calc(var(--refineui-size-foundation-size-120)-var(--refineui-spacing-size-x-small))]",
|
|
11472
|
+
"w-[calc(var(--refineui-sidebar-peek-panel-width)+2*var(--refineui-spacing-size-x-small))]",
|
|
11473
|
+
"p-refineui-size-x-small",
|
|
11474
|
+
"translate-x-[calc(-100%-var(--refineui-size-foundation-size-120)+var(--refineui-spacing-size-x-small))]",
|
|
11475
|
+
"transition-[translate,visibility] duration-refineui-overlay ease-refineui-standard motion-reduce:transition-none",
|
|
11476
|
+
"data-[sidebar-peek-panel-open]:pointer-events-auto data-[sidebar-peek-panel-open]:visible data-[sidebar-peek-panel-open]:translate-x-0"
|
|
11477
|
+
),
|
|
11478
|
+
surfaceViewport: clsx81(
|
|
11479
|
+
"group/sidebar-peek-surface fixed z-refineui-floating flex min-h-0 box-border pointer-events-none invisible",
|
|
11480
|
+
"bottom-[calc(var(--refineui-spacing-size-small)-var(--refineui-spacing-size-x-small))]",
|
|
11481
|
+
"start-[calc(var(--refineui-size-foundation-size-120)-var(--refineui-spacing-size-x-small))]",
|
|
11482
|
+
"top-[calc(var(--refineui-sidebar-peek-viewport-offset,0px)+var(--refineui-spacing-size-small)-var(--refineui-spacing-size-x-small))]",
|
|
11483
|
+
"w-[calc(var(--refineui-sidebar-peek-panel-width)+2*var(--refineui-spacing-size-x-small))]",
|
|
11484
|
+
"p-refineui-size-x-small",
|
|
11485
|
+
"translate-x-[calc(-100%-var(--refineui-size-foundation-size-120)+var(--refineui-spacing-size-x-small))]",
|
|
11486
|
+
"transition-[translate,visibility] duration-refineui-overlay ease-refineui-standard motion-reduce:transition-none",
|
|
11487
|
+
"data-[sidebar-peek-panel-open]:pointer-events-auto data-[sidebar-peek-panel-open]:visible data-[sidebar-peek-panel-open]:translate-x-0"
|
|
11488
|
+
),
|
|
11489
|
+
panel: clsx81(
|
|
11490
|
+
"box-border flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden pointer-events-auto",
|
|
11491
|
+
"rounded-refineui-xx-large border-refineui-hairline border-refineui-alias-border-default",
|
|
11492
|
+
"bg-refineui-alias-surface-frosted backdrop-blur-refineui-surface-frost",
|
|
11493
|
+
"shadow-refineui-16 transition-shadow duration-refineui-overlay ease-refineui-standard motion-reduce:transition-none",
|
|
11494
|
+
"group-data-[sidebar-peek-panel-open]/sidebar-peek-surface:shadow-refineui-24",
|
|
11495
|
+
"[&_[data-refineui=sidebar]]:h-full [&_[data-refineui=sidebar]]:border-e-0 [&_[data-refineui=sidebar]]:rounded-inherit [&_[data-refineui=sidebar]]:bg-transparent"
|
|
11496
|
+
),
|
|
11056
11497
|
toolbar: "flex shrink-0 justify-end px-refineui-size-x-small pt-refineui-size-x-small",
|
|
11057
11498
|
panelBody: "flex min-h-0 w-full flex-1 flex-col",
|
|
11058
11499
|
inset: "relative flex min-h-0 min-w-0 flex-1 flex-col"
|
|
@@ -11405,7 +11846,7 @@ import { clsx as clsx83 } from "clsx";
|
|
|
11405
11846
|
var paginationStyles = {
|
|
11406
11847
|
root: "flex flex-wrap items-center gap-refineui-size-medium",
|
|
11407
11848
|
listWrap: "flex flex-wrap items-center gap-refineui-size-medium",
|
|
11408
|
-
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)]",
|
|
11849
|
+
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",
|
|
11409
11850
|
page: clsx83(
|
|
11410
11851
|
componentTextClass(componentTypographyTokens.pagination),
|
|
11411
11852
|
"border-refineui-alias-border-default bg-refineui-alias-background-primary font-medium text-refineui-alias-foreground-primary no-underline"
|
|
@@ -11709,8 +12150,8 @@ function FloatingSurface({
|
|
|
11709
12150
|
};
|
|
11710
12151
|
const clip = `path("${shape}")`;
|
|
11711
12152
|
return /* @__PURE__ */ jsxs24("div", { "data-refineui": "floating-chrome", "aria-hidden": true, className: "pointer-events-none absolute -z-1", style: rootStyle, children: [
|
|
11712
|
-
/* @__PURE__ */ jsx64("div", { className: "absolute", style: shadowStyle, children: /* @__PURE__ */ jsx64("div", { "data-refineui": "floating-shadow", className: "absolute", style: { inset: SHADOW_BLEED }, children: /* @__PURE__ */ jsx64("div", { className: "absolute inset-0", style: { clipPath: clip, backgroundColor: borderColor } }) }) }),
|
|
11713
|
-
/* @__PURE__ */ jsx64("div", { "data-refineui": "floating-surface", className: "absolute inset-0", style: surfaceStyle }),
|
|
12153
|
+
/* @__PURE__ */ jsx64("div", { className: "absolute", style: shadowStyle, children: /* @__PURE__ */ jsx64("div", { "data-refineui": "floating-shadow", className: "absolute [filter:var(--refineui-elevation-floating-filter)]", style: { inset: SHADOW_BLEED }, children: /* @__PURE__ */ jsx64("div", { className: "absolute inset-0", style: { clipPath: clip, backgroundColor: borderColor } }) }) }),
|
|
12154
|
+
/* @__PURE__ */ jsx64("div", { "data-refineui": "floating-surface", className: "absolute inset-0 bg-refineui-alias-surface-frosted backdrop-blur-refineui-surface-frost", style: surfaceStyle }),
|
|
11714
12155
|
/* @__PURE__ */ jsx64(
|
|
11715
12156
|
"svg",
|
|
11716
12157
|
{
|
|
@@ -11981,9 +12422,9 @@ import { clsx as clsx86 } from "clsx";
|
|
|
11981
12422
|
// src/components/Skeleton/style.ts
|
|
11982
12423
|
var skeletonStyles = {
|
|
11983
12424
|
/** Line / block placeholder */
|
|
11984
|
-
rectangle: "block rounded-refineui-large",
|
|
12425
|
+
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)]",
|
|
11985
12426
|
/** Avatar-style placeholder */
|
|
11986
|
-
circle: "block shrink-0 rounded-refineui-circle"
|
|
12427
|
+
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)]"
|
|
11987
12428
|
};
|
|
11988
12429
|
|
|
11989
12430
|
// src/components/Skeleton/Skeleton.tsx
|
|
@@ -12041,7 +12482,7 @@ import { useState as useState23 } from "react";
|
|
|
12041
12482
|
|
|
12042
12483
|
// src/components/Slider/style.ts
|
|
12043
12484
|
var sliderStyles = {
|
|
12044
|
-
root: "h-refineui-slider-interaction-height w-full cursor-
|
|
12485
|
+
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"
|
|
12045
12486
|
};
|
|
12046
12487
|
|
|
12047
12488
|
// src/components/Slider/Slider.tsx
|
|
@@ -12123,15 +12564,16 @@ import {
|
|
|
12123
12564
|
// src/components/Carousel/style.ts
|
|
12124
12565
|
import { clsx as clsx88 } from "clsx";
|
|
12125
12566
|
var carouselStyles = {
|
|
12126
|
-
root: "box-border flex w-full flex-col gap-refineui-size-large outline-none",
|
|
12567
|
+
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)]",
|
|
12127
12568
|
viewport: clsx88(
|
|
12128
12569
|
"relative w-full cursor-grab overflow-hidden rounded-refineui-xx-large",
|
|
12129
12570
|
"border-refineui-thin border-refineui-alias-border-default bg-refineui-alias-background-primary",
|
|
12130
12571
|
"shadow-refineui-2 select-none",
|
|
12131
|
-
"active:cursor-grabbing"
|
|
12572
|
+
"touch-pan-y active:cursor-grabbing data-[dragging=true]:cursor-grabbing"
|
|
12132
12573
|
),
|
|
12133
12574
|
track: "flex will-change-transform",
|
|
12134
|
-
trackAnimated: "transition-transform duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)]",
|
|
12575
|
+
trackAnimated: "transition-transform duration-[var(--refineui-motion-duration-panel)] ease-[var(--refineui-motion-easing-emphasized)] motion-reduce:transition-none",
|
|
12576
|
+
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)]",
|
|
12135
12577
|
item: "box-border min-w-0 shrink-0 grow-0 basis-full",
|
|
12136
12578
|
controls: "flex w-full items-center justify-center gap-refineui-size-medium",
|
|
12137
12579
|
/** Sliding-pill meter (SegmentedControl-like), not a row of dots */
|
|
@@ -12142,11 +12584,10 @@ var carouselStyles = {
|
|
|
12142
12584
|
),
|
|
12143
12585
|
indicatorThumb: clsx88(
|
|
12144
12586
|
"pointer-events-none absolute top-refineui-size-xxx-small bottom-refineui-size-xxx-small start-refineui-size-xxx-small z-0",
|
|
12145
|
-
|
|
12146
|
-
"rounded-refineui-circle bg-refineui-alias-background-brand shadow-refineui-2"
|
|
12587
|
+
"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"
|
|
12147
12588
|
),
|
|
12148
12589
|
indicatorHitRow: "relative z-[1] flex h-full w-full",
|
|
12149
|
-
indicatorHit: "h-full min-w-0 flex-1 cursor-pointer border-none bg-transparent p-0 outline-none"
|
|
12590
|
+
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)]"
|
|
12150
12591
|
};
|
|
12151
12592
|
|
|
12152
12593
|
// src/components/Carousel/Carousel.tsx
|
|
@@ -12162,6 +12603,14 @@ function clampIndex(i, count) {
|
|
|
12162
12603
|
if (count <= 0) return 0;
|
|
12163
12604
|
return Math.min(count - 1, Math.max(0, i));
|
|
12164
12605
|
}
|
|
12606
|
+
function getInitialSlideCount(children) {
|
|
12607
|
+
let slideCount = 0;
|
|
12608
|
+
Children6.forEach(children, (child) => {
|
|
12609
|
+
if (!isValidElement5(child) || child.type !== CarouselContent) return;
|
|
12610
|
+
slideCount = Children6.toArray(child.props.children).filter(isValidElement5).length;
|
|
12611
|
+
});
|
|
12612
|
+
return slideCount;
|
|
12613
|
+
}
|
|
12165
12614
|
function Carousel({
|
|
12166
12615
|
children,
|
|
12167
12616
|
className,
|
|
@@ -12174,7 +12623,7 @@ function Carousel({
|
|
|
12174
12623
|
}) {
|
|
12175
12624
|
const isControlled = indexControlled !== void 0;
|
|
12176
12625
|
const [internalIndex, setInternalIndex] = useState24(defaultIndex);
|
|
12177
|
-
const [count, setCount] = useState24(
|
|
12626
|
+
const [count, setCount] = useState24(() => getInitialSlideCount(children));
|
|
12178
12627
|
const [trackIndex, setTrackIndex] = useState24(defaultIndex);
|
|
12179
12628
|
const [instant, setInstant] = useState24(false);
|
|
12180
12629
|
const index = isControlled ? indexControlled : internalIndex;
|
|
@@ -12454,7 +12903,7 @@ function CarouselPrevious({ className, disabled, onClick, ...props }) {
|
|
|
12454
12903
|
"data-dir": "prev",
|
|
12455
12904
|
"aria-label": "Previous slide",
|
|
12456
12905
|
disabled: isDisabled,
|
|
12457
|
-
className,
|
|
12906
|
+
className: clsx89(carouselStyles.navFocus, className),
|
|
12458
12907
|
...props,
|
|
12459
12908
|
onClick: (e) => {
|
|
12460
12909
|
onClick?.(e);
|
|
@@ -12486,7 +12935,7 @@ function CarouselNext({ className, disabled, onClick, ...props }) {
|
|
|
12486
12935
|
"data-dir": "next",
|
|
12487
12936
|
"aria-label": "Next slide",
|
|
12488
12937
|
disabled: isDisabled,
|
|
12489
|
-
className,
|
|
12938
|
+
className: clsx89(carouselStyles.navFocus, className),
|
|
12490
12939
|
...props,
|
|
12491
12940
|
onClick: (e) => {
|
|
12492
12941
|
onClick?.(e);
|
|
@@ -12507,33 +12956,10 @@ function CarouselNext({ className, disabled, onClick, ...props }) {
|
|
|
12507
12956
|
}
|
|
12508
12957
|
function CarouselIndicators({ className, ...props }) {
|
|
12509
12958
|
const { count, index, scrollTo } = useCarouselContext("CarouselIndicators");
|
|
12510
|
-
const trackRef = useRef18(null);
|
|
12511
|
-
const [thumb, setThumb] = useState24({ width: 0, x: 0, ready: false });
|
|
12512
12959
|
const [animate, setAnimate] = useState24(false);
|
|
12513
|
-
const updateThumb = useCallback18(() => {
|
|
12514
|
-
const el = trackRef.current;
|
|
12515
|
-
if (!el || count <= 0) {
|
|
12516
|
-
setThumb({ width: 0, x: 0, ready: false });
|
|
12517
|
-
return;
|
|
12518
|
-
}
|
|
12519
|
-
const hits = el.querySelector("[data-refineui='carousel-indicator-hits']");
|
|
12520
|
-
const inner = hits?.clientWidth ?? el.clientWidth;
|
|
12521
|
-
const width = inner / count;
|
|
12522
|
-
setThumb({
|
|
12523
|
-
width,
|
|
12524
|
-
x: width * index,
|
|
12525
|
-
ready: true
|
|
12526
|
-
});
|
|
12527
|
-
}, [count, index]);
|
|
12528
|
-
useLayoutEffect10(() => {
|
|
12529
|
-
updateThumb();
|
|
12530
|
-
}, [updateThumb]);
|
|
12531
12960
|
useEffect17(() => {
|
|
12532
|
-
|
|
12533
|
-
|
|
12534
|
-
return;
|
|
12535
|
-
}
|
|
12536
|
-
if (animate) return;
|
|
12961
|
+
setAnimate(false);
|
|
12962
|
+
if (count <= 0) return;
|
|
12537
12963
|
let raf2 = 0;
|
|
12538
12964
|
const raf1 = requestAnimationFrame(() => {
|
|
12539
12965
|
raf2 = requestAnimationFrame(() => setAnimate(true));
|
|
@@ -12542,23 +12968,16 @@ function CarouselIndicators({ className, ...props }) {
|
|
|
12542
12968
|
cancelAnimationFrame(raf1);
|
|
12543
12969
|
cancelAnimationFrame(raf2);
|
|
12544
12970
|
};
|
|
12545
|
-
}, [
|
|
12546
|
-
useEffect17(() => {
|
|
12547
|
-
const el = trackRef.current;
|
|
12548
|
-
if (!el) return;
|
|
12549
|
-
const ro = new ResizeObserver(() => updateThumb());
|
|
12550
|
-
ro.observe(el);
|
|
12551
|
-
return () => ro.disconnect();
|
|
12552
|
-
}, [updateThumb]);
|
|
12971
|
+
}, [count]);
|
|
12553
12972
|
if (count <= 0) return null;
|
|
12973
|
+
const selectedIndex = clampIndex(index, count);
|
|
12554
12974
|
const thumbStyle = {
|
|
12555
|
-
width:
|
|
12556
|
-
transform: `translate3d(${
|
|
12975
|
+
width: `${100 / count}%`,
|
|
12976
|
+
transform: `translate3d(${selectedIndex * 100}%, 0, 0)`
|
|
12557
12977
|
};
|
|
12558
12978
|
return /* @__PURE__ */ jsxs26(
|
|
12559
12979
|
"div",
|
|
12560
12980
|
{
|
|
12561
|
-
ref: trackRef,
|
|
12562
12981
|
"data-refineui": "carousel-indicators",
|
|
12563
12982
|
role: "tablist",
|
|
12564
12983
|
"aria-label": "Slides",
|
|
@@ -12569,7 +12988,6 @@ function CarouselIndicators({ className, ...props }) {
|
|
|
12569
12988
|
"span",
|
|
12570
12989
|
{
|
|
12571
12990
|
"data-refineui": "carousel-indicator-thumb",
|
|
12572
|
-
"data-ready": thumb.ready ? "true" : void 0,
|
|
12573
12991
|
"data-animate": animate ? "true" : void 0,
|
|
12574
12992
|
"aria-hidden": true,
|
|
12575
12993
|
className: carouselStyles.indicatorThumb,
|
|
@@ -12610,10 +13028,14 @@ var BUBBLE_MAX_WIDTH = "80%";
|
|
|
12610
13028
|
var bubbleStyles = {
|
|
12611
13029
|
group: clsx90(
|
|
12612
13030
|
"flex min-w-0 flex-col gap-refineui-size-xx-small",
|
|
12613
|
-
// Connected corners
|
|
12614
|
-
|
|
12615
|
-
"[&>[data-refineui=bubble]:
|
|
12616
|
-
"[&>[data-refineui=bubble]:
|
|
13031
|
+
// Connected corners only flatten along the sender edge. The opposite
|
|
13032
|
+
// edge keeps the outer bubble radius, including in RTL layouts.
|
|
13033
|
+
"[&>[data-refineui=bubble][data-align=start]:first-child:not(:only-child)_[data-refineui=bubble-content]]:[border-end-start-radius:var(--refineui-radius-rounded-medium)]",
|
|
13034
|
+
"[&>[data-refineui=bubble][data-align=end]:first-child:not(:only-child)_[data-refineui=bubble-content]]:[border-end-end-radius:var(--refineui-radius-rounded-medium)]",
|
|
13035
|
+
"[&>[data-refineui=bubble][data-align=start]:last-child:not(:only-child)_[data-refineui=bubble-content]]:[border-start-start-radius:var(--refineui-radius-rounded-medium)]",
|
|
13036
|
+
"[&>[data-refineui=bubble][data-align=end]:last-child:not(:only-child)_[data-refineui=bubble-content]]:[border-start-end-radius:var(--refineui-radius-rounded-medium)]",
|
|
13037
|
+
"[&>[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)]",
|
|
13038
|
+
"[&>[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)]",
|
|
12617
13039
|
// Room for overlapping reactions on the last bubble in a group
|
|
12618
13040
|
"[&>[data-refineui=bubble][data-has-reactions-bottom]:not(:last-child)]:mb-refineui-size-xx-large"
|
|
12619
13041
|
),
|
|
@@ -12816,7 +13238,10 @@ var stepperStyles = {
|
|
|
12816
13238
|
"hover:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:bg-refineui-alias-background-primary-hover",
|
|
12817
13239
|
"hover:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:border-refineui-alias-border-strong",
|
|
12818
13240
|
"hover:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:text-refineui-alias-foreground-primary-hover",
|
|
12819
|
-
"hover:[&_[data-refineui=stepper-title][data-state=upcoming]]:text-refineui-alias-foreground-primary"
|
|
13241
|
+
"hover:[&_[data-refineui=stepper-title][data-state=upcoming]]:text-refineui-alias-foreground-primary",
|
|
13242
|
+
"active:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:bg-refineui-alias-background-primary-active",
|
|
13243
|
+
"active:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:border-refineui-alias-border-strong",
|
|
13244
|
+
"active:[&_[data-refineui=stepper-indicator][data-state=upcoming]]:text-refineui-alias-foreground-primary"
|
|
12820
13245
|
),
|
|
12821
13246
|
itemDisabled: "cursor-not-allowed opacity-50",
|
|
12822
13247
|
indicator: clsx92(
|
|
@@ -13676,7 +14101,7 @@ import { iconSizes as iconSizes20 } from "@refineui/tokens";
|
|
|
13676
14101
|
|
|
13677
14102
|
// src/components/SpinButton/style.ts
|
|
13678
14103
|
var spinButtonStyles = {
|
|
13679
|
-
root: "box-border flex w-full min-w-0 items-stretch overflow-hidden outline-none",
|
|
14104
|
+
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",
|
|
13680
14105
|
borderDisabled: "border-refineui-thin border-refineui-alias-border-disabled",
|
|
13681
14106
|
borderDefault: "border-refineui-thin border-refineui-alias-border-default",
|
|
13682
14107
|
bgDisabled: "bg-refineui-alias-background-surface-disabled",
|
|
@@ -13687,9 +14112,9 @@ var spinButtonStyles = {
|
|
|
13687
14112
|
valueTextDefault: "text-refineui-alias-foreground-primary",
|
|
13688
14113
|
stepper: "flex h-full min-h-0 w-refineui-spin-stepper-width shrink-0 flex-col",
|
|
13689
14114
|
/** Split column evenly inside shared `controlHeight*` shell */
|
|
13690
|
-
stepButtonBase: "box-border flex min-h-0 w-full flex-1 items-center justify-center border-none p-0 text-refineui-alias-foreground-secondary",
|
|
13691
|
-
stepButtonDisabled: "cursor-not-allowed bg-refineui-alias-background-surface-disabled opacity-50",
|
|
13692
|
-
stepButtonEnabled: "cursor-pointer bg-refineui-alias-background-primary opacity-100"
|
|
14115
|
+
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",
|
|
14116
|
+
stepButtonDisabled: "cursor-not-allowed bg-refineui-alias-background-surface-disabled opacity-50 text-refineui-alias-foreground-disabled",
|
|
14117
|
+
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"
|
|
13693
14118
|
};
|
|
13694
14119
|
var spinButtonShellClass = formControlShellHeightClass;
|
|
13695
14120
|
var spinButtonValueTypo = formControlTypoClass;
|
|
@@ -13956,7 +14381,7 @@ var toastRecipe = defineRecipe({
|
|
|
13956
14381
|
dataStates: ["default"]
|
|
13957
14382
|
});
|
|
13958
14383
|
var toastStyles = {
|
|
13959
|
-
card: toastRecipe.base,
|
|
14384
|
+
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)]`,
|
|
13960
14385
|
iconWrap: "flex shrink-0 items-center justify-center self-center",
|
|
13961
14386
|
contentWrap: "flex min-h-px min-w-0 flex-1 items-center",
|
|
13962
14387
|
message: clsx97(
|
|
@@ -13964,7 +14389,9 @@ var toastStyles = {
|
|
|
13964
14389
|
"text-refineui-alias-foreground-primary"
|
|
13965
14390
|
),
|
|
13966
14391
|
actionButton: "shrink-0 whitespace-nowrap",
|
|
13967
|
-
toasterRoot: "refineui-toaster
|
|
14392
|
+
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))]",
|
|
14393
|
+
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)]",
|
|
14394
|
+
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"
|
|
13968
14395
|
};
|
|
13969
14396
|
|
|
13970
14397
|
// src/components/Toast/Toast.tsx
|
|
@@ -14195,7 +14622,20 @@ var Toast = forwardRef16(function Toast2(props, ref) {
|
|
|
14195
14622
|
style: { ...tokenStyle, ...style },
|
|
14196
14623
|
className: clsx98(toastStyles.card, className),
|
|
14197
14624
|
children: [
|
|
14198
|
-
/* @__PURE__ */ jsx73(
|
|
14625
|
+
/* @__PURE__ */ jsx73(
|
|
14626
|
+
"div",
|
|
14627
|
+
{
|
|
14628
|
+
"data-refineui": "toast-icon",
|
|
14629
|
+
className: clsx98(
|
|
14630
|
+
toastStyles.iconWrap,
|
|
14631
|
+
variant === "success" && "text-refineui-alias-foreground-success",
|
|
14632
|
+
variant === "error" && "text-refineui-alias-foreground-error",
|
|
14633
|
+
variant === "warning" && "text-refineui-alias-foreground-warning",
|
|
14634
|
+
variant === "default" && "text-refineui-alias-foreground-primary"
|
|
14635
|
+
),
|
|
14636
|
+
children: iconContent
|
|
14637
|
+
}
|
|
14638
|
+
),
|
|
14199
14639
|
/* @__PURE__ */ jsx73("div", { className: toastStyles.contentWrap, children: message != null && message !== "" ? /* @__PURE__ */ jsx73("div", { className: toastStyles.message, children: message }) : null }),
|
|
14200
14640
|
action != null && actionEl
|
|
14201
14641
|
]
|
|
@@ -14446,11 +14886,12 @@ function Toaster({
|
|
|
14446
14886
|
"data-toast-id": rec.id,
|
|
14447
14887
|
"data-index": index,
|
|
14448
14888
|
"data-front": index === 0 ? "true" : "false",
|
|
14889
|
+
className: toastStyles.stackItem,
|
|
14449
14890
|
style: {
|
|
14450
14891
|
["--refineui-toast-z-index"]: String(STACK_Z_BASE - index),
|
|
14451
14892
|
["--refineui-toast-stack-index"]: String(index)
|
|
14452
14893
|
},
|
|
14453
|
-
children: /* @__PURE__ */ jsx73("div", { "data-refineui": "toast-scale-layer", children: /* @__PURE__ */ jsx73(
|
|
14894
|
+
children: /* @__PURE__ */ jsx73("div", { "data-refineui": "toast-scale-layer", className: toastStyles.scaleLayer, children: /* @__PURE__ */ jsx73(
|
|
14454
14895
|
SwipeableToast,
|
|
14455
14896
|
{
|
|
14456
14897
|
record: rec,
|
|
@@ -14518,9 +14959,9 @@ var treeStyles = {
|
|
|
14518
14959
|
"rounded-refineui-large border-none bg-transparent",
|
|
14519
14960
|
"px-refineui-size-medium py-refineui-size-x-small",
|
|
14520
14961
|
"text-refineui-alias-foreground-tertiary outline-none",
|
|
14521
|
-
"transition-[color,background-color] duration-[var(--refineui-motion-duration-fast)] ease-[var(--refineui-motion-easing-ease-out)]"
|
|
14962
|
+
"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"
|
|
14522
14963
|
),
|
|
14523
|
-
rowSelected: "font-medium text-refineui-alias-foreground-primary",
|
|
14964
|
+
rowSelected: "font-medium bg-refineui-alias-background-primary-hover text-refineui-alias-foreground-primary",
|
|
14524
14965
|
rowDisabled: "cursor-not-allowed",
|
|
14525
14966
|
rowMain: "flex min-w-0 flex-1 items-center gap-refineui-size-x-small",
|
|
14526
14967
|
chevronButton: clsx99(
|
|
@@ -15157,7 +15598,7 @@ var chartStyles = {
|
|
|
15157
15598
|
root: "flex w-full min-w-0 flex-col gap-refineui-size-medium",
|
|
15158
15599
|
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",
|
|
15159
15600
|
plotColumn: "contents",
|
|
15160
|
-
plotFrame: "relative col-start-2 row-start-1 min-w-0",
|
|
15601
|
+
plotFrame: "group/chart-plot relative col-start-2 row-start-1 min-w-0",
|
|
15161
15602
|
plot: "block h-auto w-full min-w-0 aspect-[5/2] overflow-visible",
|
|
15162
15603
|
yAxis: "relative col-start-1 row-start-1 min-w-refineui-foundation-size-400 pe-refineui-size-x-small",
|
|
15163
15604
|
yAxisTick: clsx106(
|
|
@@ -15189,7 +15630,12 @@ var chartStyles = {
|
|
|
15189
15630
|
componentTextClass(componentTypographyTokens.chart.legendLabel),
|
|
15190
15631
|
"flex items-center gap-refineui-size-x-small text-refineui-alias-foreground-secondary"
|
|
15191
15632
|
),
|
|
15192
|
-
legendSwatch: "size-refineui-foundation-size-80 shrink-0 rounded-refineui-small"
|
|
15633
|
+
legendSwatch: "size-refineui-foundation-size-80 shrink-0 rounded-refineui-small",
|
|
15634
|
+
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)]",
|
|
15635
|
+
barTrack: "pointer-events-none",
|
|
15636
|
+
lineStroke: "[stroke-dasharray:1] [stroke-dashoffset:1] [animation:refineui-chart-line-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-emphasized)_both]",
|
|
15637
|
+
lineArea: "[animation:refineui-chart-point-enter_var(--refineui-motion-duration-panel)_var(--refineui-motion-easing-emphasized)_both]",
|
|
15638
|
+
point: "[animation:refineui-chart-point-enter_var(--refineui-motion-duration-fast)_var(--refineui-motion-easing-emphasized)_both]"
|
|
15193
15639
|
};
|
|
15194
15640
|
|
|
15195
15641
|
// src/components/Chart/utils.ts
|
|
@@ -15666,7 +16112,8 @@ function ChartBars({
|
|
|
15666
16112
|
trackHeight,
|
|
15667
16113
|
barRadius
|
|
15668
16114
|
),
|
|
15669
|
-
fill: track
|
|
16115
|
+
fill: track,
|
|
16116
|
+
className: chartStyles.barTrack
|
|
15670
16117
|
},
|
|
15671
16118
|
`track-${index}`
|
|
15672
16119
|
);
|
|
@@ -15683,7 +16130,8 @@ function ChartBars({
|
|
|
15683
16130
|
"data-refineui": "chart-bar",
|
|
15684
16131
|
"data-state": state,
|
|
15685
16132
|
d: barPathTopRounded(x, y, barWidth, height, barRadius),
|
|
15686
|
-
fill
|
|
16133
|
+
fill,
|
|
16134
|
+
className: chartStyles.bar
|
|
15687
16135
|
},
|
|
15688
16136
|
index
|
|
15689
16137
|
);
|
|
@@ -15728,7 +16176,8 @@ function ChartLine({
|
|
|
15728
16176
|
{
|
|
15729
16177
|
"data-refineui": "chart-line-area",
|
|
15730
16178
|
d: monotoneAreaPath(coords, baselineY),
|
|
15731
|
-
fill: `url(#${gradientId})
|
|
16179
|
+
fill: `url(#${gradientId})`,
|
|
16180
|
+
className: chartStyles.lineArea
|
|
15732
16181
|
}
|
|
15733
16182
|
)
|
|
15734
16183
|
] }) : null,
|
|
@@ -15743,7 +16192,8 @@ function ChartLine({
|
|
|
15743
16192
|
strokeWidth: "var(--refineui-stroke-width-thick)",
|
|
15744
16193
|
vectorEffect: "non-scaling-stroke",
|
|
15745
16194
|
strokeLinejoin: "round",
|
|
15746
|
-
strokeLinecap: "round"
|
|
16195
|
+
strokeLinecap: "round",
|
|
16196
|
+
className: chartStyles.lineStroke
|
|
15747
16197
|
}
|
|
15748
16198
|
),
|
|
15749
16199
|
coords.map(({ x, y }, index) => {
|
|
@@ -15760,7 +16210,8 @@ function ChartLine({
|
|
|
15760
16210
|
r: CHART_POINT_RADIUS,
|
|
15761
16211
|
fill: stroke,
|
|
15762
16212
|
stroke: pointRing,
|
|
15763
|
-
strokeWidth: CHART_POINT_STROKE
|
|
16213
|
+
strokeWidth: CHART_POINT_STROKE,
|
|
16214
|
+
className: chartStyles.point
|
|
15764
16215
|
},
|
|
15765
16216
|
index
|
|
15766
16217
|
);
|