@lobehub/ui 5.48.1 → 5.49.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.
Files changed (205) hide show
  1. package/es/Highlighter/FullFeatured.mjs +1 -1
  2. package/es/Highlighter/FullFeatured.mjs.map +1 -1
  3. package/es/Highlighter/LangSelect.mjs +1 -1
  4. package/es/Highlighter/LangSelect.mjs.map +1 -1
  5. package/es/Highlighter/style.mjs +14 -11
  6. package/es/Highlighter/style.mjs.map +1 -1
  7. package/es/Mermaid/FullFeatured.mjs +1 -1
  8. package/es/Mermaid/FullFeatured.mjs.map +1 -1
  9. package/es/ThemeProvider/ThemeProvider.mjs +2 -2
  10. package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
  11. package/es/awesome/AgentSkillCard/AgentSkillCard.d.mts +6 -0
  12. package/es/awesome/AgentSkillCard/AgentSkillCard.mjs +83 -0
  13. package/es/awesome/AgentSkillCard/AgentSkillCard.mjs.map +1 -0
  14. package/es/awesome/AgentSkillCard/agents.d.mts +6 -0
  15. package/es/awesome/AgentSkillCard/agents.mjs +40 -0
  16. package/es/awesome/AgentSkillCard/agents.mjs.map +1 -0
  17. package/es/awesome/AgentSkillCard/index.d.mts +4 -0
  18. package/es/awesome/AgentSkillCard/style.mjs +85 -0
  19. package/es/awesome/AgentSkillCard/style.mjs.map +1 -0
  20. package/es/awesome/AgentSkillCard/type.d.mts +41 -0
  21. package/es/awesome/BentoGrid/BentoCard.d.mts +6 -0
  22. package/es/awesome/BentoGrid/BentoCard.mjs +39 -0
  23. package/es/awesome/BentoGrid/BentoCard.mjs.map +1 -0
  24. package/es/awesome/BentoGrid/BentoGrid.d.mts +6 -0
  25. package/es/awesome/BentoGrid/BentoGrid.mjs +20 -0
  26. package/es/awesome/BentoGrid/BentoGrid.mjs.map +1 -0
  27. package/es/awesome/BentoGrid/index.d.mts +4 -0
  28. package/es/awesome/BentoGrid/style.mjs +102 -0
  29. package/es/awesome/BentoGrid/style.mjs.map +1 -0
  30. package/es/awesome/BentoGrid/type.d.mts +40 -0
  31. package/es/awesome/CodeShowcase/CodeShowcase.d.mts +6 -0
  32. package/es/awesome/CodeShowcase/CodeShowcase.mjs +51 -0
  33. package/es/awesome/CodeShowcase/CodeShowcase.mjs.map +1 -0
  34. package/es/awesome/CodeShowcase/index.d.mts +3 -0
  35. package/es/awesome/CodeShowcase/style.mjs +50 -0
  36. package/es/awesome/CodeShowcase/style.mjs.map +1 -0
  37. package/es/awesome/CodeShowcase/type.d.mts +27 -0
  38. package/es/awesome/FeatureGrid/FeatureGrid.d.mts +6 -0
  39. package/es/awesome/FeatureGrid/FeatureGrid.mjs +48 -0
  40. package/es/awesome/FeatureGrid/FeatureGrid.mjs.map +1 -0
  41. package/es/awesome/FeatureGrid/index.d.mts +3 -0
  42. package/es/awesome/FeatureGrid/style.mjs +75 -0
  43. package/es/awesome/FeatureGrid/style.mjs.map +1 -0
  44. package/es/awesome/FeatureGrid/type.d.mts +25 -0
  45. package/es/awesome/FluidGradient/FluidGradient.d.mts +6 -0
  46. package/es/awesome/FluidGradient/FluidGradient.mjs +293 -0
  47. package/es/awesome/FluidGradient/FluidGradient.mjs.map +1 -0
  48. package/es/awesome/FluidGradient/index.d.mts +3 -0
  49. package/es/awesome/FluidGradient/style.mjs +52 -0
  50. package/es/awesome/FluidGradient/style.mjs.map +1 -0
  51. package/es/awesome/FluidGradient/type.d.mts +22 -0
  52. package/es/awesome/InstallBanner/InstallBanner.d.mts +6 -0
  53. package/es/awesome/InstallBanner/InstallBanner.mjs +35 -0
  54. package/es/awesome/InstallBanner/InstallBanner.mjs.map +1 -0
  55. package/es/awesome/InstallBanner/index.d.mts +3 -0
  56. package/es/awesome/InstallBanner/style.mjs +46 -0
  57. package/es/awesome/InstallBanner/style.mjs.map +1 -0
  58. package/es/awesome/InstallBanner/type.d.mts +18 -0
  59. package/es/awesome/LandingHero/LandingHero.d.mts +6 -0
  60. package/es/awesome/LandingHero/LandingHero.mjs +55 -0
  61. package/es/awesome/LandingHero/LandingHero.mjs.map +1 -0
  62. package/es/awesome/LandingHero/index.d.mts +3 -0
  63. package/es/awesome/LandingHero/style.mjs +155 -0
  64. package/es/awesome/LandingHero/style.mjs.map +1 -0
  65. package/es/awesome/LandingHero/type.d.mts +29 -0
  66. package/es/awesome/LandingSection/LandingSection.d.mts +6 -0
  67. package/es/awesome/LandingSection/LandingSection.mjs +61 -0
  68. package/es/awesome/LandingSection/LandingSection.mjs.map +1 -0
  69. package/es/awesome/LandingSection/index.d.mts +3 -0
  70. package/es/awesome/LandingSection/style.mjs +88 -0
  71. package/es/awesome/LandingSection/style.mjs.map +1 -0
  72. package/es/awesome/LandingSection/type.d.mts +40 -0
  73. package/es/awesome/LogoMarquee/LogoMarquee.d.mts +6 -0
  74. package/es/awesome/LogoMarquee/LogoMarquee.mjs +52 -0
  75. package/es/awesome/LogoMarquee/LogoMarquee.mjs.map +1 -0
  76. package/es/awesome/LogoMarquee/index.d.mts +3 -0
  77. package/es/awesome/LogoMarquee/style.mjs +70 -0
  78. package/es/awesome/LogoMarquee/style.mjs.map +1 -0
  79. package/es/awesome/LogoMarquee/type.d.mts +40 -0
  80. package/es/awesome/index.d.mts +33 -1
  81. package/es/awesome/index.mjs +13 -1
  82. package/es/awesome/landingActions.d.mts +20 -0
  83. package/es/awesome/landingActions.mjs +123 -0
  84. package/es/awesome/landingActions.mjs.map +1 -0
  85. package/es/awesome/landingIcon.mjs +13 -0
  86. package/es/awesome/landingIcon.mjs.map +1 -0
  87. package/es/awesome/landingLink.d.mts +12 -0
  88. package/es/awesome/landingLink.mjs +23 -0
  89. package/es/awesome/landingLink.mjs.map +1 -0
  90. package/es/awesome/landingTokens.d.mts +10 -0
  91. package/es/awesome/landingTokens.mjs +19 -0
  92. package/es/awesome/landingTokens.mjs.map +1 -0
  93. package/es/base-ui/Avatar/Avatar.mjs +1 -1
  94. package/es/base-ui/Avatar/Avatar.mjs.map +1 -1
  95. package/es/base-ui/Segmented/atoms.mjs +1 -0
  96. package/es/base-ui/Segmented/atoms.mjs.map +1 -1
  97. package/es/base-ui/Segmented/style.mjs +127 -125
  98. package/es/base-ui/Segmented/style.mjs.map +1 -1
  99. package/es/base-ui/Text/style.d.mts +1 -1
  100. package/es/base-ui/index.mjs +4 -4
  101. package/es/dashboard/AuthLayout/AuthLayout.d.mts +9 -0
  102. package/es/dashboard/AuthLayout/AuthLayout.mjs +54 -0
  103. package/es/dashboard/AuthLayout/AuthLayout.mjs.map +1 -0
  104. package/es/dashboard/AuthLayout/index.d.mts +3 -0
  105. package/es/dashboard/AuthLayout/style.mjs +120 -0
  106. package/es/dashboard/AuthLayout/style.mjs.map +1 -0
  107. package/es/dashboard/AuthLayout/type.d.mts +16 -0
  108. package/es/dashboard/Breadcrumb/Breadcrumb.d.mts +9 -0
  109. package/es/dashboard/Breadcrumb/Breadcrumb.mjs +55 -0
  110. package/es/dashboard/Breadcrumb/Breadcrumb.mjs.map +1 -0
  111. package/es/dashboard/Breadcrumb/index.d.mts +3 -0
  112. package/es/dashboard/Breadcrumb/style.mjs +66 -0
  113. package/es/dashboard/Breadcrumb/style.mjs.map +1 -0
  114. package/es/dashboard/Breadcrumb/type.d.mts +25 -0
  115. package/es/dashboard/ConsoleNav/ConsoleNav.d.mts +9 -0
  116. package/es/dashboard/ConsoleNav/ConsoleNav.mjs +275 -0
  117. package/es/dashboard/ConsoleNav/ConsoleNav.mjs.map +1 -0
  118. package/es/dashboard/ConsoleNav/active.d.mts +7 -0
  119. package/es/dashboard/ConsoleNav/active.mjs +29 -0
  120. package/es/dashboard/ConsoleNav/active.mjs.map +1 -0
  121. package/es/dashboard/ConsoleNav/index.d.mts +4 -0
  122. package/es/dashboard/ConsoleNav/style.mjs +283 -0
  123. package/es/dashboard/ConsoleNav/style.mjs.map +1 -0
  124. package/es/dashboard/ConsoleNav/type.d.mts +71 -0
  125. package/es/dashboard/ConsoleShell/ConsoleBrand.d.mts +9 -0
  126. package/es/dashboard/ConsoleShell/ConsoleBrand.mjs +37 -0
  127. package/es/dashboard/ConsoleShell/ConsoleBrand.mjs.map +1 -0
  128. package/es/dashboard/ConsoleShell/ConsoleShell.d.mts +9 -0
  129. package/es/dashboard/ConsoleShell/ConsoleShell.mjs +149 -0
  130. package/es/dashboard/ConsoleShell/ConsoleShell.mjs.map +1 -0
  131. package/es/dashboard/ConsoleShell/context.d.mts +6 -0
  132. package/es/dashboard/ConsoleShell/context.mjs +16 -0
  133. package/es/dashboard/ConsoleShell/context.mjs.map +1 -0
  134. package/es/dashboard/ConsoleShell/index.d.mts +5 -0
  135. package/es/dashboard/ConsoleShell/style.mjs +209 -0
  136. package/es/dashboard/ConsoleShell/style.mjs.map +1 -0
  137. package/es/dashboard/ConsoleShell/type.d.mts +67 -0
  138. package/es/dashboard/FilterSidebar/FilterSidebar.d.mts +17 -0
  139. package/es/dashboard/FilterSidebar/FilterSidebar.mjs +151 -0
  140. package/es/dashboard/FilterSidebar/FilterSidebar.mjs.map +1 -0
  141. package/es/dashboard/FilterSidebar/context.d.mts +7 -0
  142. package/es/dashboard/FilterSidebar/context.mjs +19 -0
  143. package/es/dashboard/FilterSidebar/context.mjs.map +1 -0
  144. package/es/dashboard/FilterSidebar/index.d.mts +4 -0
  145. package/es/dashboard/FilterSidebar/style.mjs +155 -0
  146. package/es/dashboard/FilterSidebar/style.mjs.map +1 -0
  147. package/es/dashboard/FilterSidebar/type.d.mts +44 -0
  148. package/es/dashboard/FilterSidebar/width.mjs +18 -0
  149. package/es/dashboard/FilterSidebar/width.mjs.map +1 -0
  150. package/es/dashboard/PageHeader/PageHeader.d.mts +9 -0
  151. package/es/dashboard/PageHeader/PageHeader.mjs +37 -0
  152. package/es/dashboard/PageHeader/PageHeader.mjs.map +1 -0
  153. package/es/dashboard/PageHeader/index.d.mts +3 -0
  154. package/es/dashboard/PageHeader/style.mjs +47 -0
  155. package/es/dashboard/PageHeader/style.mjs.map +1 -0
  156. package/es/dashboard/PageHeader/type.d.mts +14 -0
  157. package/es/dashboard/PageSkeleton/PageSkeleton.d.mts +25 -0
  158. package/es/dashboard/PageSkeleton/PageSkeleton.mjs +136 -0
  159. package/es/dashboard/PageSkeleton/PageSkeleton.mjs.map +1 -0
  160. package/es/dashboard/PageSkeleton/style.mjs +122 -0
  161. package/es/dashboard/PageSkeleton/style.mjs.map +1 -0
  162. package/es/dashboard/PageSkeleton/type.d.mts +22 -0
  163. package/es/dashboard/PageTabs/PageTabs.d.mts +9 -0
  164. package/es/dashboard/PageTabs/PageTabs.mjs +37 -0
  165. package/es/dashboard/PageTabs/PageTabs.mjs.map +1 -0
  166. package/es/dashboard/PageTabs/index.d.mts +3 -0
  167. package/es/dashboard/PageTabs/style.mjs +57 -0
  168. package/es/dashboard/PageTabs/style.mjs.map +1 -0
  169. package/es/dashboard/PageTabs/type.d.mts +17 -0
  170. package/es/dashboard/RouteProgress/RouteProgress.d.mts +9 -0
  171. package/es/dashboard/RouteProgress/RouteProgress.mjs +44 -0
  172. package/es/dashboard/RouteProgress/RouteProgress.mjs.map +1 -0
  173. package/es/dashboard/RouteProgress/style.mjs +19 -0
  174. package/es/dashboard/RouteProgress/style.mjs.map +1 -0
  175. package/es/dashboard/RouteProgress/type.d.mts +8 -0
  176. package/es/dashboard/StatCard/StatCard.d.mts +9 -0
  177. package/es/dashboard/StatCard/StatCard.mjs +84 -0
  178. package/es/dashboard/StatCard/StatCard.mjs.map +1 -0
  179. package/es/dashboard/StatCard/index.d.mts +3 -0
  180. package/es/dashboard/StatCard/style.mjs +135 -0
  181. package/es/dashboard/StatCard/style.mjs.map +1 -0
  182. package/es/dashboard/StatCard/type.d.mts +26 -0
  183. package/es/dashboard/Surface/Surface.d.mts +13 -0
  184. package/es/dashboard/Surface/Surface.mjs +20 -0
  185. package/es/dashboard/Surface/Surface.mjs.map +1 -0
  186. package/es/dashboard/Surface/index.d.mts +4 -0
  187. package/es/dashboard/Surface/style.d.mts +14 -0
  188. package/es/dashboard/Surface/style.mjs +22 -0
  189. package/es/dashboard/Surface/style.mjs.map +1 -0
  190. package/es/dashboard/Surface/type.d.mts +8 -0
  191. package/es/dashboard/hooks.mjs +49 -0
  192. package/es/dashboard/hooks.mjs.map +1 -0
  193. package/es/dashboard/index.d.mts +37 -0
  194. package/es/dashboard/index.d.ts +1 -0
  195. package/es/dashboard/index.js +1 -0
  196. package/es/dashboard/index.mjs +17 -0
  197. package/es/static-css/registry.mjs +2 -2
  198. package/es/static-css/registry.mjs.map +1 -1
  199. package/es/storybook/StoryBook/index.mjs +4 -0
  200. package/es/storybook/StoryBook/index.mjs.map +1 -1
  201. package/es/storybook/StoryBook/style.mjs +7 -2
  202. package/es/storybook/StoryBook/style.mjs.map +1 -1
  203. package/es/styles/theme/token/base.mjs +2 -2
  204. package/es/styles/theme/token/base.mjs.map +1 -1
  205. package/package.json +6 -2
@@ -1,13 +1,25 @@
1
1
  import Spotlight from "./Spotlight/Spotlight.mjs";
2
+ import { DEFAULT_SKILL_AGENTS } from "./AgentSkillCard/agents.mjs";
3
+ import AgentSkillCard from "./AgentSkillCard/AgentSkillCard.mjs";
2
4
  import AuroraBackground from "./AuroraBackground/AuroraBackground.mjs";
5
+ import BentoCard from "./BentoGrid/BentoCard.mjs";
6
+ import BentoGrid from "./BentoGrid/BentoGrid.mjs";
3
7
  import BottomGradientButton from "./BottomGradientButton/BottomGradientButton.mjs";
8
+ import CodeShowcase from "./CodeShowcase/CodeShowcase.mjs";
9
+ import FeatureGrid from "./FeatureGrid/FeatureGrid.mjs";
4
10
  import SpotlightCard from "./SpotlightCard/SpotlightCard.mjs";
5
11
  import Features from "./Features/Features.mjs";
12
+ import { LANDING_GRADIENT_VAR, LANDING_PALETTE_DARK, LANDING_PALETTE_LIGHT, accentGradient } from "./landingTokens.mjs";
13
+ import FluidGradient from "./FluidGradient/FluidGradient.mjs";
6
14
  import Giscus from "./Giscus/Giscus.mjs";
7
15
  import GradientButton from "./GradientButton/GradientButton.mjs";
8
16
  import GridBackground from "./GridBackground/GridBackground.mjs";
9
17
  import GridShowcase from "./GridBackground/GridShowcase.mjs";
10
18
  import Hero from "./Hero/Hero.mjs";
19
+ import InstallBanner from "./InstallBanner/InstallBanner.mjs";
20
+ import LandingHero from "./LandingHero/LandingHero.mjs";
21
+ import LandingSection from "./LandingSection/LandingSection.mjs";
22
+ import LogoMarquee from "./LogoMarquee/LogoMarquee.mjs";
11
23
  import Spline from "./Spline/Spine.mjs";
12
24
  import TypewriterEffect from "./TypewriterEffect/TypewriterEffect.mjs";
13
- export { AuroraBackground, BottomGradientButton, Features, Giscus, GradientButton, GridBackground, GridShowcase, Hero, Spline, Spotlight, SpotlightCard, TypewriterEffect };
25
+ export { AgentSkillCard, AuroraBackground, BentoCard, BentoGrid, BottomGradientButton, CodeShowcase, DEFAULT_SKILL_AGENTS, FeatureGrid, Features, FluidGradient, Giscus, GradientButton, GridBackground, GridShowcase, Hero, InstallBanner, LANDING_GRADIENT_VAR, LANDING_PALETTE_DARK, LANDING_PALETTE_LIGHT, LandingHero, LandingSection, LogoMarquee, Spline, Spotlight, SpotlightCard, TypewriterEffect, accentGradient as landingAccentGradient };
@@ -0,0 +1,20 @@
1
+ import { IconProps } from "../Icon/type.mjs";
2
+ import "../Icon/index.mjs";
3
+ import "./landingLink.mjs";
4
+ import { ReactNode } from "react";
5
+ //#region src/awesome/landingActions.d.ts
6
+ interface LandingAction {
7
+ /** Opens in a new tab. Inferred from absolute URLs when omitted. */
8
+ external?: boolean;
9
+ href: string;
10
+ icon?: IconProps['icon'];
11
+ /** Places the icon after the label, e.g. for an arrow. */
12
+ iconPlacement?: 'start' | 'end';
13
+ label: ReactNode;
14
+ /** The primary action is a filled pill; others render as BottomGradientButton. */
15
+ primary?: boolean;
16
+ }
17
+ type LandingNavigate = (href: string) => void;
18
+ //#endregion
19
+ export { LandingAction, LandingNavigate };
20
+ //# sourceMappingURL=landingActions.d.mts.map
@@ -0,0 +1,123 @@
1
+ import Icon from "../Icon/Icon.mjs";
2
+ import { isExternalHref, renderLandingLink } from "./landingLink.mjs";
3
+ import BottomGradientButton from "./BottomGradientButton/BottomGradientButton.mjs";
4
+ import { accentGradient } from "./landingTokens.mjs";
5
+ import { Fragment } from "react";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
+ import { createStaticStyles, cx } from "antd-style";
8
+ //#region src/awesome/landingActions.tsx
9
+ const styles = createStaticStyles(({ css, cssVar, responsive }) => ({
10
+ action: css`
11
+ display: inline-flex;
12
+ gap: 8px;
13
+ align-items: center;
14
+ justify-content: center;
15
+
16
+ min-block-size: 44px;
17
+ padding-block: 0;
18
+ padding-inline: 22px;
19
+ border: 1px solid transparent;
20
+ border-radius: 999px;
21
+
22
+ font-size: ${cssVar.fontSize};
23
+ font-weight: 600;
24
+ color: ${cssVar.colorText};
25
+ text-decoration: none;
26
+ white-space: nowrap;
27
+
28
+ background-image:
29
+ linear-gradient(${cssVar.colorBgContainer}, ${cssVar.colorBgContainer}), ${accentGradient};
30
+ background-clip: padding-box, border-box;
31
+ background-origin: border-box;
32
+
33
+ transition:
34
+ filter 140ms ease,
35
+ transform 90ms ease;
36
+
37
+ &:hover {
38
+ color: ${cssVar.colorText};
39
+ filter: brightness(1.06);
40
+ }
41
+
42
+ &:active {
43
+ transform: scale(0.97);
44
+ }
45
+ `,
46
+ actionPrimary: css`
47
+ && {
48
+ color: ${cssVar.colorBgContainer};
49
+ background: ${cssVar.colorText};
50
+ }
51
+
52
+ &&:hover {
53
+ color: ${cssVar.colorBgContainer};
54
+ }
55
+ `,
56
+ actionSmall: css`
57
+ && {
58
+ gap: 6px;
59
+ min-block-size: 34px;
60
+ padding-inline: 14px;
61
+ font-size: ${cssVar.fontSizeSM};
62
+ }
63
+ `,
64
+ group: css`
65
+ display: flex;
66
+ flex-wrap: wrap;
67
+ gap: 12px;
68
+
69
+ &[data-size='small'] {
70
+ gap: 8px;
71
+ }
72
+
73
+ ${responsive.mobile} {
74
+ &[data-size='large'] {
75
+ align-self: stretch;
76
+ }
77
+
78
+ &[data-size='large'] > * {
79
+ flex: 1;
80
+ }
81
+ }
82
+ `
83
+ }));
84
+ const LandingActions = ({ actions, className, onNavigate, renderLink, size = "large" }) => /* @__PURE__ */ jsx("div", {
85
+ className: cx(styles.group, className),
86
+ "data-size": size,
87
+ children: actions.map(({ external, href, icon, iconPlacement = "start", label, primary }) => {
88
+ const iconNode = icon && /* @__PURE__ */ jsx(Icon, {
89
+ icon,
90
+ size: size === "small" ? 14 : 16
91
+ });
92
+ if (!primary) {
93
+ const isExternal = external ?? isExternalHref(href);
94
+ return /* @__PURE__ */ jsx(BottomGradientButton, {
95
+ href,
96
+ icon: iconNode,
97
+ iconPlacement,
98
+ rel: isExternal ? "noreferrer" : void 0,
99
+ size: size === "small" ? "middle" : "large",
100
+ target: isExternal ? "_blank" : void 0,
101
+ onClick: !isExternal && onNavigate ? (event) => {
102
+ event.preventDefault();
103
+ onNavigate(href);
104
+ } : void 0,
105
+ children: label
106
+ }, href);
107
+ }
108
+ return /* @__PURE__ */ jsx(Fragment, { children: renderLandingLink(renderLink, {
109
+ children: /* @__PURE__ */ jsxs(Fragment$1, { children: [
110
+ iconPlacement === "start" && iconNode,
111
+ label,
112
+ iconPlacement === "end" && iconNode
113
+ ] }),
114
+ className: cx(styles.action, styles.actionPrimary, size === "small" && styles.actionSmall),
115
+ external,
116
+ href
117
+ }) }, href);
118
+ })
119
+ });
120
+ //#endregion
121
+ export { LandingActions };
122
+
123
+ //# sourceMappingURL=landingActions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landingActions.mjs","names":[],"sources":["../../src/awesome/landingActions.tsx"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { Fragment, type ReactNode } from 'react';\n\nimport BottomGradientButton from '@/awesome/BottomGradientButton';\nimport { isExternalHref, type LandingLinkRender, renderLandingLink } from '@/awesome/landingLink';\nimport { accentGradient } from '@/awesome/landingTokens';\nimport Icon, { type IconProps } from '@/Icon';\n\nexport interface LandingAction {\n /** Opens in a new tab. Inferred from absolute URLs when omitted. */\n external?: boolean;\n href: string;\n icon?: IconProps['icon'];\n /** Places the icon after the label, e.g. for an arrow. */\n iconPlacement?: 'start' | 'end';\n label: ReactNode;\n /** The primary action is a filled pill; others render as BottomGradientButton. */\n primary?: boolean;\n}\n\nconst styles = createStaticStyles(({ css, cssVar, responsive }) => ({\n action: css`\n display: inline-flex;\n gap: 8px;\n align-items: center;\n justify-content: center;\n\n min-block-size: 44px;\n padding-block: 0;\n padding-inline: 22px;\n border: 1px solid transparent;\n border-radius: 999px;\n\n font-size: ${cssVar.fontSize};\n font-weight: 600;\n color: ${cssVar.colorText};\n text-decoration: none;\n white-space: nowrap;\n\n background-image:\n linear-gradient(${cssVar.colorBgContainer}, ${cssVar.colorBgContainer}), ${accentGradient};\n background-clip: padding-box, border-box;\n background-origin: border-box;\n\n transition:\n filter 140ms ease,\n transform 90ms ease;\n\n &:hover {\n color: ${cssVar.colorText};\n filter: brightness(1.06);\n }\n\n &:active {\n transform: scale(0.97);\n }\n `,\n actionPrimary: css`\n && {\n color: ${cssVar.colorBgContainer};\n background: ${cssVar.colorText};\n }\n\n &&:hover {\n color: ${cssVar.colorBgContainer};\n }\n `,\n actionSmall: css`\n && {\n gap: 6px;\n min-block-size: 34px;\n padding-inline: 14px;\n font-size: ${cssVar.fontSizeSM};\n }\n `,\n group: css`\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n\n &[data-size='small'] {\n gap: 8px;\n }\n\n ${responsive.mobile} {\n &[data-size='large'] {\n align-self: stretch;\n }\n\n &[data-size='large'] > * {\n flex: 1;\n }\n }\n `,\n}));\n\nexport type LandingNavigate = (href: string) => void;\n\nexport interface LandingActionsProps {\n actions: LandingAction[];\n className?: string;\n /** Client-side navigation for internal non-primary actions, which render as buttons with an href. */\n onNavigate?: LandingNavigate;\n renderLink?: LandingLinkRender;\n size?: 'large' | 'small';\n}\n\nexport const LandingActions = ({\n actions,\n className,\n onNavigate,\n renderLink,\n size = 'large',\n}: LandingActionsProps) => (\n <div className={cx(styles.group, className)} data-size={size}>\n {actions.map(({ external, href, icon, iconPlacement = 'start', label, primary }) => {\n const iconNode = icon && <Icon icon={icon} size={size === 'small' ? 14 : 16} />;\n if (!primary) {\n const isExternal = external ?? isExternalHref(href);\n return (\n <BottomGradientButton\n href={href}\n icon={iconNode}\n iconPlacement={iconPlacement}\n key={href}\n rel={isExternal ? 'noreferrer' : undefined}\n size={size === 'small' ? 'middle' : 'large'}\n target={isExternal ? '_blank' : undefined}\n onClick={\n !isExternal && onNavigate\n ? (event) => {\n event.preventDefault();\n onNavigate(href);\n }\n : undefined\n }\n >\n {label}\n </BottomGradientButton>\n );\n }\n return (\n <Fragment key={href}>\n {renderLandingLink(renderLink, {\n children: (\n <>\n {iconPlacement === 'start' && iconNode}\n {label}\n {iconPlacement === 'end' && iconNode}\n </>\n ),\n className: cx(\n styles.action,\n styles.actionPrimary,\n size === 'small' && styles.actionSmall,\n ),\n external,\n href,\n })}\n </Fragment>\n );\n })}\n </div>\n);\n"],"mappings":";;;;;;;;AAoBA,MAAM,SAAS,oBAAoB,EAAE,KAAK,QAAQ,kBAAkB;CAClE,QAAQ,GAAG;;;;;;;;;;;;iBAYI,OAAO,SAAS;;aAEpB,OAAO,UAAU;;;;;wBAKN,OAAO,iBAAiB,IAAI,OAAO,iBAAiB,KAAK,eAAe;;;;;;;;;eASjF,OAAO,UAAU;;;;;;;;CAQ9B,eAAe,GAAG;;eAEL,OAAO,iBAAiB;oBACnB,OAAO,UAAU;;;;eAItB,OAAO,iBAAiB;;;CAGrC,aAAa,GAAG;;;;;mBAKC,OAAO,WAAW;;;CAGnC,OAAO,GAAG;;;;;;;;;MASN,WAAW,OAAO;;;;;;;;;;AAUxB,EAAE;AAaF,MAAa,kBAAkB,EAC7B,SACA,WACA,YACA,YACA,OAAO,cAEP,oBAAC,OAAD;CAAK,WAAW,GAAG,OAAO,OAAO,SAAS;CAAG,aAAW;CACrD,UAAA,QAAQ,KAAK,EAAE,UAAU,MAAM,MAAM,gBAAgB,SAAS,OAAO,cAAc;EAClF,MAAM,WAAW,QAAQ,oBAAC,MAAD;GAAY;GAAM,MAAM,SAAS,UAAU,KAAK;EAAK,CAAA;EAC9E,IAAI,CAAC,SAAS;GACZ,MAAM,aAAa,YAAY,eAAe,IAAI;GAClD,OACE,oBAAC,sBAAD;IACQ;IACN,MAAM;IACS;IAEf,KAAK,aAAa,eAAe,KAAA;IACjC,MAAM,SAAS,UAAU,WAAW;IACpC,QAAQ,aAAa,WAAW,KAAA;IAChC,SACE,CAAC,cAAc,cACV,UAAU;KACT,MAAM,eAAe;KACrB,WAAW,IAAI;IACjB,IACA,KAAA;IAGL,UAAA;GACmB,GAdf,IAce;EAE1B;EACA,OACE,oBAAC,UAAD,EAAA,UACG,kBAAkB,YAAY;GAC7B,UACE,qBAAA,YAAA,EAAA,UAAA;IACG,kBAAkB,WAAW;IAC7B;IACA,kBAAkB,SAAS;GAC5B,EAAA,CAAA;GAEJ,WAAW,GACT,OAAO,QACP,OAAO,eACP,SAAS,WAAW,OAAO,WAC7B;GACA;GACA;EACF,CAAC,EACO,GAjBK,IAiBL;CAEd,CAAC;AACE,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { isValidElement } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/awesome/landingIcon.tsx
4
+ const isElementType = (icon) => typeof icon === "function" || typeof icon === "object" && icon !== null && !isValidElement(icon) && "$$typeof" in icon;
5
+ /** Renders an icon given either a component (e.g. from `@lobehub/icons`) or a ready-made node. */
6
+ const renderLandingIcon = (icon, size) => {
7
+ if (!isElementType(icon)) return icon;
8
+ return /* @__PURE__ */ jsx(icon, { size });
9
+ };
10
+ //#endregion
11
+ export { renderLandingIcon };
12
+
13
+ //# sourceMappingURL=landingIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landingIcon.mjs","names":["IconComponent"],"sources":["../../src/awesome/landingIcon.tsx"],"sourcesContent":["import { type ElementType, isValidElement, type ReactNode } from 'react';\n\nexport type LandingIconSource = ElementType<{ size: number }> | ReactNode;\n\nconst isElementType = (icon: LandingIconSource): icon is ElementType<{ size: number }> =>\n typeof icon === 'function' ||\n (typeof icon === 'object' && icon !== null && !isValidElement(icon) && '$$typeof' in icon);\n\n/** Renders an icon given either a component (e.g. from `@lobehub/icons`) or a ready-made node. */\nexport const renderLandingIcon = (icon: LandingIconSource, size: number): ReactNode => {\n if (!isElementType(icon)) return icon as ReactNode;\n const IconComponent = icon;\n return <IconComponent size={size} />;\n};\n"],"mappings":";;;AAIA,MAAM,iBAAiB,SACrB,OAAO,SAAS,cACf,OAAO,SAAS,YAAY,SAAS,QAAQ,CAAC,eAAe,IAAI,KAAK,cAAc;;AAGvF,MAAa,qBAAqB,MAAyB,SAA4B;CACrF,IAAI,CAAC,cAAc,IAAI,GAAG,OAAO;CAEjC,OAAO,oBAACA,MAAD,EAAqB,KAAO,CAAA;AACrC"}
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from "react";
2
+ //#region src/awesome/landingLink.d.ts
3
+ interface LandingLinkProps {
4
+ children: ReactNode;
5
+ className?: string;
6
+ external?: boolean;
7
+ href: string;
8
+ }
9
+ type LandingLinkRender = (props: LandingLinkProps) => ReactNode;
10
+ //#endregion
11
+ export { LandingLinkProps, LandingLinkRender };
12
+ //# sourceMappingURL=landingLink.d.mts.map
@@ -0,0 +1,23 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ //#region src/awesome/landingLink.tsx
3
+ const isExternalHref = (href) => /^[a-z][\d+.a-z-]*:/i.test(href);
4
+ const renderLandingLink = (renderLink, { external, href, ...props }) => {
5
+ const isExternal = external ?? isExternalHref(href);
6
+ if (renderLink) return renderLink({
7
+ ...props,
8
+ external: isExternal,
9
+ href
10
+ });
11
+ return /* @__PURE__ */ jsx("a", {
12
+ href,
13
+ ...isExternal ? {
14
+ rel: "noreferrer",
15
+ target: "_blank"
16
+ } : {},
17
+ ...props
18
+ });
19
+ };
20
+ //#endregion
21
+ export { isExternalHref, renderLandingLink };
22
+
23
+ //# sourceMappingURL=landingLink.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landingLink.mjs","names":[],"sources":["../../src/awesome/landingLink.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nexport interface LandingLinkProps {\n children: ReactNode;\n className?: string;\n external?: boolean;\n href: string;\n}\n\nexport type LandingLinkRender = (props: LandingLinkProps) => ReactNode;\n\nexport const isExternalHref = (href: string) => /^[a-z][\\d+.a-z-]*:/i.test(href);\n\nexport const renderLandingLink = (\n renderLink: LandingLinkRender | undefined,\n { external, href, ...props }: LandingLinkProps,\n): ReactNode => {\n const isExternal = external ?? isExternalHref(href);\n if (renderLink) return renderLink({ ...props, external: isExternal, href });\n\n return (\n <a href={href} {...(isExternal ? { rel: 'noreferrer', target: '_blank' } : {})} {...props} />\n );\n};\n"],"mappings":";;AAWA,MAAa,kBAAkB,SAAiB,sBAAsB,KAAK,IAAI;AAE/E,MAAa,qBACX,YACA,EAAE,UAAU,MAAM,GAAG,YACP;CACd,MAAM,aAAa,YAAY,eAAe,IAAI;CAClD,IAAI,YAAY,OAAO,WAAW;EAAE,GAAG;EAAO,UAAU;EAAY;CAAK,CAAC;CAE1E,OACE,oBAAC,KAAD;EAAS;EAAM,GAAK,aAAa;GAAE,KAAK;GAAc,QAAQ;EAAS,IAAI,CAAC;EAAI,GAAI;CAAQ,CAAA;AAEhG"}
@@ -0,0 +1,10 @@
1
+ //#region src/awesome/landingTokens.d.ts
2
+ type LandingPalette = [string, string, string];
3
+ declare const LANDING_PALETTE_LIGHT: LandingPalette;
4
+ declare const LANDING_PALETTE_DARK: LandingPalette;
5
+ /** Consumers can override the accent of every landing component with this CSS variable. */
6
+ declare const LANDING_GRADIENT_VAR = "--lobe-landing-gradient";
7
+ declare const accentGradient: string;
8
+ //#endregion
9
+ export { LANDING_GRADIENT_VAR, LANDING_PALETTE_DARK, LANDING_PALETTE_LIGHT, LandingPalette, accentGradient };
10
+ //# sourceMappingURL=landingTokens.d.mts.map
@@ -0,0 +1,19 @@
1
+ //#region src/awesome/landingTokens.ts
2
+ const LANDING_PALETTE_LIGHT = [
3
+ "#7c5cff",
4
+ "#d6549e",
5
+ "#f0885f"
6
+ ];
7
+ const LANDING_PALETTE_DARK = [
8
+ "#a78bfa",
9
+ "#ef7fc0",
10
+ "#f8a878"
11
+ ];
12
+ const landingGradient = ([from, via, to]) => `linear-gradient(105deg, ${from} 8%, ${via} 55%, ${to} 95%)`;
13
+ /** Consumers can override the accent of every landing component with this CSS variable. */
14
+ const LANDING_GRADIENT_VAR = "--lobe-landing-gradient";
15
+ const accentGradient = `var(${LANDING_GRADIENT_VAR}, ${landingGradient(LANDING_PALETTE_LIGHT)})`;
16
+ //#endregion
17
+ export { LANDING_GRADIENT_VAR, LANDING_PALETTE_DARK, LANDING_PALETTE_LIGHT, accentGradient, landingGradient };
18
+
19
+ //# sourceMappingURL=landingTokens.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landingTokens.mjs","names":[],"sources":["../../src/awesome/landingTokens.ts"],"sourcesContent":["export type LandingPalette = [string, string, string];\n\nexport const LANDING_PALETTE_LIGHT: LandingPalette = ['#7c5cff', '#d6549e', '#f0885f'];\nexport const LANDING_PALETTE_DARK: LandingPalette = ['#a78bfa', '#ef7fc0', '#f8a878'];\n\nexport const landingGradient = ([from, via, to]: LandingPalette) =>\n `linear-gradient(105deg, ${from} 8%, ${via} 55%, ${to} 95%)`;\n\n/** Consumers can override the accent of every landing component with this CSS variable. */\nexport const LANDING_GRADIENT_VAR = '--lobe-landing-gradient';\n\nexport const accentGradient = `var(${LANDING_GRADIENT_VAR}, ${landingGradient(LANDING_PALETTE_LIGHT)})`;\n"],"mappings":";AAEA,MAAa,wBAAwC;CAAC;CAAW;CAAW;AAAS;AACrF,MAAa,uBAAuC;CAAC;CAAW;CAAW;AAAS;AAEpF,MAAa,mBAAmB,CAAC,MAAM,KAAK,QAC1C,2BAA2B,KAAK,OAAO,IAAI,QAAQ,GAAG;;AAGxD,MAAa,uBAAuB;AAEpC,MAAa,iBAAiB,OAAO,qBAAqB,IAAI,gBAAgB,qBAAqB,EAAE"}
@@ -20,7 +20,7 @@ const Avatar = memo(({ alt, animation, avatar, background, bordered, borderedCol
20
20
  isStringAvatar,
21
21
  isUrlOrElement
22
22
  ]);
23
- const text = String(isUrlOrElement ? title : avatar);
23
+ const text = isUrlOrElement ? title : typeof avatar === "string" ? avatar : void 0;
24
24
  const imgAlt = alt || title || "avatar";
25
25
  const hasBackground = hasValidBackground(background);
26
26
  const showImage = isUrlOrElement && isStringAvatar && !isImgError;
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.mjs","names":[],"sources":["../../../src/base-ui/Avatar/Avatar.tsx"],"sourcesContent":["'use client';\n\nimport { getEmoji } from '@lobehub/fluent-emoji';\nimport { cssVar, cx } from 'antd-style';\nimport { Loader2 } from 'lucide-react';\nimport { memo, useMemo, useState } from 'react';\n\nimport { Center } from '@/Flex';\nimport FluentEmoji from '@/FluentEmoji';\nimport Icon from '@/Icon';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { styles, variants } from './style';\nimport { type AvatarProps } from './type';\nimport {\n calculateEmojiSize,\n formatAvatarText,\n hasValidBackground,\n isDefaultAntAvatar,\n} from './utils';\n\nconst Avatar = memo<AvatarProps>(\n ({\n alt,\n animation,\n avatar,\n background,\n bordered,\n borderedColor,\n className,\n classNames,\n crossOrigin,\n draggable = false,\n emojiScaleWithBackground = true,\n loading,\n ref,\n shadow,\n shape = 'square',\n size = 48,\n sliceText = true,\n style,\n styles: customStyles,\n title,\n tooltipProps,\n unoptimized,\n variant = 'borderless',\n ...rest\n }) => {\n const isStringAvatar = typeof avatar === 'string';\n\n const [isImgError, setIsImgError] = useState(false);\n\n const isUrlOrElement = useMemo(() => isDefaultAntAvatar(avatar), [avatar]);\n\n const emoji = useMemo(\n () => (avatar && isStringAvatar && !isUrlOrElement ? getEmoji(avatar) : undefined),\n [avatar, isStringAvatar, isUrlOrElement],\n );\n\n const text = String(isUrlOrElement ? title : avatar);\n\n const imgAlt = alt || title || 'avatar';\n\n const hasBackground = hasValidBackground(background);\n const showImage = isUrlOrElement && isStringAvatar && !isImgError;\n const showElement = isUrlOrElement && !isStringAvatar && !isImgError;\n\n const customAvatar = useMemo(\n () =>\n emoji ? (\n <FluentEmoji\n emoji={emoji}\n size={calculateEmojiSize(size, hasBackground, emojiScaleWithBackground)}\n type={animation ? 'anim' : '3d'}\n unoptimized={unoptimized}\n />\n ) : (\n formatAvatarText(text || title, sliceText)\n ),\n [\n animation,\n emoji,\n hasBackground,\n size,\n sliceText,\n text,\n title,\n unoptimized,\n emojiScaleWithBackground,\n ],\n );\n\n return (\n <div\n {...rest}\n className={cx(variants({ shadow, variant }), className, classNames?.root)}\n ref={ref}\n style={{\n backgroundColor:\n (isUrlOrElement && !isImgError) || emoji\n ? background\n : background || cssVar.colorBorder,\n borderRadius: shape === 'circle' ? '50%' : size < 24 ? '33%' : Math.max(size / 6, 2),\n boxShadow: bordered\n ? `${cssVar.colorBgLayout} 0 0 0 2px, ${borderedColor || cssVar.colorTextTertiary} 0 0 0 4px`\n : undefined,\n color: safeReadableColor(background || cssVar.colorBorder),\n cursor: rest?.onClick ? 'pointer' : undefined,\n fontSize: size * (emoji ? 0.7 : 0.5),\n height: size,\n width: size,\n ...style,\n ...customStyles?.root,\n }}\n >\n {loading && (\n <Center\n className={cx(styles.loading, classNames?.loading)}\n flex={'none'}\n height={'100%'}\n style={customStyles?.loading}\n width={'100%'}\n >\n <Icon spin icon={Loader2} />\n </Center>\n )}\n {typeof avatar === 'string' && showImage && (\n <img\n alt={imgAlt}\n className={cx(styles.img, classNames?.img)}\n crossOrigin={crossOrigin}\n draggable={draggable}\n height={size}\n loading={'lazy'}\n src={avatar}\n style={customStyles?.img}\n width={size}\n onError={() => setIsImgError(true)}\n />\n )}\n {!showImage && (\n <span className={cx(styles.content, classNames?.content)} style={customStyles?.content}>\n {showElement ? avatar : customAvatar}\n </span>\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":";;;;;;;;;;;;;AAqBA,MAAM,SAAS,MACZ,EACC,KACA,WACA,QACA,YACA,UACA,eACA,WACA,YACA,aACA,YAAY,OACZ,2BAA2B,MAC3B,SACA,KACA,QACA,QAAQ,UACR,OAAO,IACP,YAAY,MACZ,OACA,QAAQ,cACR,OACA,cACA,aACA,UAAU,cACV,GAAG,WACC;CACJ,MAAM,iBAAiB,OAAO,WAAW;CAEzC,MAAM,CAAC,YAAY,iBAAiB,SAAS,KAAK;CAElD,MAAM,iBAAiB,cAAc,mBAAmB,MAAM,GAAG,CAAC,MAAM,CAAC;CAEzE,MAAM,QAAQ,cACL,UAAU,kBAAkB,CAAC,iBAAiB,SAAS,MAAM,IAAI,KAAA,GACxE;EAAC;EAAQ;EAAgB;CAAc,CACzC;CAEA,MAAM,OAAO,OAAO,iBAAiB,QAAQ,MAAM;CAEnD,MAAM,SAAS,OAAO,SAAS;CAE/B,MAAM,gBAAgB,mBAAmB,UAAU;CACnD,MAAM,YAAY,kBAAkB,kBAAkB,CAAC;CACvD,MAAM,cAAc,kBAAkB,CAAC,kBAAkB,CAAC;CAE1D,MAAM,eAAe,cAEjB,QACE,oBAAC,aAAD;EACS;EACP,MAAM,mBAAmB,MAAM,eAAe,wBAAwB;EACtE,MAAM,YAAY,SAAS;EACd;CACd,CAAA,IAED,iBAAiB,QAAQ,OAAO,SAAS,GAE7C;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,WAAW,GAAG,SAAS;GAAE;GAAQ;EAAQ,CAAC,GAAG,WAAW,YAAY,IAAI;EACnE;EACL,OAAO;GACL,iBACG,kBAAkB,CAAC,cAAe,QAC/B,aACA,cAAc,OAAO;GAC3B,cAAc,UAAU,WAAW,QAAQ,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,GAAG,CAAC;GACnF,WAAW,WACP,GAAG,OAAO,cAAc,cAAc,iBAAiB,OAAO,kBAAkB,cAChF,KAAA;GACJ,OAAO,kBAAkB,cAAc,OAAO,WAAW;GACzD,QAAQ,MAAM,UAAU,YAAY,KAAA;GACpC,UAAU,QAAQ,QAAQ,KAAM;GAChC,QAAQ;GACR,OAAO;GACP,GAAG;GACH,GAAG,cAAc;EACnB;EApBF,UAAA;GAsBG,WACC,oBAAC,QAAD;IACE,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;IACjD,MAAM;IACN,QAAQ;IACR,OAAO,cAAc;IACrB,OAAO;IAEP,UAAA,oBAAC,MAAD;KAAM,MAAA;KAAK,MAAM;IAAU,CAAA;GACrB,CAAA;GAET,OAAO,WAAW,YAAY,aAC7B,oBAAC,OAAD;IACE,KAAK;IACL,WAAW,GAAG,OAAO,KAAK,YAAY,GAAG;IAC5B;IACF;IACX,QAAQ;IACR,SAAS;IACT,KAAK;IACL,OAAO,cAAc;IACrB,OAAO;IACP,eAAe,cAAc,IAAI;GAClC,CAAA;GAEF,CAAC,aACA,oBAAC,QAAD;IAAM,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;IAAG,OAAO,cAAc;IAC5E,UAAA,cAAc,SAAS;GACpB,CAAA;EAEL;;AAET,CACF;AAEA,OAAO,cAAc"}
1
+ {"version":3,"file":"Avatar.mjs","names":[],"sources":["../../../src/base-ui/Avatar/Avatar.tsx"],"sourcesContent":["'use client';\n\nimport { getEmoji } from '@lobehub/fluent-emoji';\nimport { cssVar, cx } from 'antd-style';\nimport { Loader2 } from 'lucide-react';\nimport { memo, useMemo, useState } from 'react';\n\nimport { Center } from '@/Flex';\nimport FluentEmoji from '@/FluentEmoji';\nimport Icon from '@/Icon';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { styles, variants } from './style';\nimport { type AvatarProps } from './type';\nimport {\n calculateEmojiSize,\n formatAvatarText,\n hasValidBackground,\n isDefaultAntAvatar,\n} from './utils';\n\nconst Avatar = memo<AvatarProps>(\n ({\n alt,\n animation,\n avatar,\n background,\n bordered,\n borderedColor,\n className,\n classNames,\n crossOrigin,\n draggable = false,\n emojiScaleWithBackground = true,\n loading,\n ref,\n shadow,\n shape = 'square',\n size = 48,\n sliceText = true,\n style,\n styles: customStyles,\n title,\n tooltipProps,\n unoptimized,\n variant = 'borderless',\n ...rest\n }) => {\n const isStringAvatar = typeof avatar === 'string';\n\n const [isImgError, setIsImgError] = useState(false);\n\n const isUrlOrElement = useMemo(() => isDefaultAntAvatar(avatar), [avatar]);\n\n const emoji = useMemo(\n () => (avatar && isStringAvatar && !isUrlOrElement ? getEmoji(avatar) : undefined),\n [avatar, isStringAvatar, isUrlOrElement],\n );\n\n const text = isUrlOrElement ? title : typeof avatar === 'string' ? avatar : undefined;\n\n const imgAlt = alt || title || 'avatar';\n\n const hasBackground = hasValidBackground(background);\n const showImage = isUrlOrElement && isStringAvatar && !isImgError;\n const showElement = isUrlOrElement && !isStringAvatar && !isImgError;\n\n const customAvatar = useMemo(\n () =>\n emoji ? (\n <FluentEmoji\n emoji={emoji}\n size={calculateEmojiSize(size, hasBackground, emojiScaleWithBackground)}\n type={animation ? 'anim' : '3d'}\n unoptimized={unoptimized}\n />\n ) : (\n formatAvatarText(text || title, sliceText)\n ),\n [\n animation,\n emoji,\n hasBackground,\n size,\n sliceText,\n text,\n title,\n unoptimized,\n emojiScaleWithBackground,\n ],\n );\n\n return (\n <div\n {...rest}\n className={cx(variants({ shadow, variant }), className, classNames?.root)}\n ref={ref}\n style={{\n backgroundColor:\n (isUrlOrElement && !isImgError) || emoji\n ? background\n : background || cssVar.colorBorder,\n borderRadius: shape === 'circle' ? '50%' : size < 24 ? '33%' : Math.max(size / 6, 2),\n boxShadow: bordered\n ? `${cssVar.colorBgLayout} 0 0 0 2px, ${borderedColor || cssVar.colorTextTertiary} 0 0 0 4px`\n : undefined,\n color: safeReadableColor(background || cssVar.colorBorder),\n cursor: rest?.onClick ? 'pointer' : undefined,\n fontSize: size * (emoji ? 0.7 : 0.5),\n height: size,\n width: size,\n ...style,\n ...customStyles?.root,\n }}\n >\n {loading && (\n <Center\n className={cx(styles.loading, classNames?.loading)}\n flex={'none'}\n height={'100%'}\n style={customStyles?.loading}\n width={'100%'}\n >\n <Icon spin icon={Loader2} />\n </Center>\n )}\n {typeof avatar === 'string' && showImage && (\n <img\n alt={imgAlt}\n className={cx(styles.img, classNames?.img)}\n crossOrigin={crossOrigin}\n draggable={draggable}\n height={size}\n loading={'lazy'}\n src={avatar}\n style={customStyles?.img}\n width={size}\n onError={() => setIsImgError(true)}\n />\n )}\n {!showImage && (\n <span className={cx(styles.content, classNames?.content)} style={customStyles?.content}>\n {showElement ? avatar : customAvatar}\n </span>\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":";;;;;;;;;;;;;AAqBA,MAAM,SAAS,MACZ,EACC,KACA,WACA,QACA,YACA,UACA,eACA,WACA,YACA,aACA,YAAY,OACZ,2BAA2B,MAC3B,SACA,KACA,QACA,QAAQ,UACR,OAAO,IACP,YAAY,MACZ,OACA,QAAQ,cACR,OACA,cACA,aACA,UAAU,cACV,GAAG,WACC;CACJ,MAAM,iBAAiB,OAAO,WAAW;CAEzC,MAAM,CAAC,YAAY,iBAAiB,SAAS,KAAK;CAElD,MAAM,iBAAiB,cAAc,mBAAmB,MAAM,GAAG,CAAC,MAAM,CAAC;CAEzE,MAAM,QAAQ,cACL,UAAU,kBAAkB,CAAC,iBAAiB,SAAS,MAAM,IAAI,KAAA,GACxE;EAAC;EAAQ;EAAgB;CAAc,CACzC;CAEA,MAAM,OAAO,iBAAiB,QAAQ,OAAO,WAAW,WAAW,SAAS,KAAA;CAE5E,MAAM,SAAS,OAAO,SAAS;CAE/B,MAAM,gBAAgB,mBAAmB,UAAU;CACnD,MAAM,YAAY,kBAAkB,kBAAkB,CAAC;CACvD,MAAM,cAAc,kBAAkB,CAAC,kBAAkB,CAAC;CAE1D,MAAM,eAAe,cAEjB,QACE,oBAAC,aAAD;EACS;EACP,MAAM,mBAAmB,MAAM,eAAe,wBAAwB;EACtE,MAAM,YAAY,SAAS;EACd;CACd,CAAA,IAED,iBAAiB,QAAQ,OAAO,SAAS,GAE7C;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,WAAW,GAAG,SAAS;GAAE;GAAQ;EAAQ,CAAC,GAAG,WAAW,YAAY,IAAI;EACnE;EACL,OAAO;GACL,iBACG,kBAAkB,CAAC,cAAe,QAC/B,aACA,cAAc,OAAO;GAC3B,cAAc,UAAU,WAAW,QAAQ,OAAO,KAAK,QAAQ,KAAK,IAAI,OAAO,GAAG,CAAC;GACnF,WAAW,WACP,GAAG,OAAO,cAAc,cAAc,iBAAiB,OAAO,kBAAkB,cAChF,KAAA;GACJ,OAAO,kBAAkB,cAAc,OAAO,WAAW;GACzD,QAAQ,MAAM,UAAU,YAAY,KAAA;GACpC,UAAU,QAAQ,QAAQ,KAAM;GAChC,QAAQ;GACR,OAAO;GACP,GAAG;GACH,GAAG,cAAc;EACnB;EApBF,UAAA;GAsBG,WACC,oBAAC,QAAD;IACE,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;IACjD,MAAM;IACN,QAAQ;IACR,OAAO,cAAc;IACrB,OAAO;IAEP,UAAA,oBAAC,MAAD;KAAM,MAAA;KAAK,MAAM;IAAU,CAAA;GACrB,CAAA;GAET,OAAO,WAAW,YAAY,aAC7B,oBAAC,OAAD;IACE,KAAK;IACL,WAAW,GAAG,OAAO,KAAK,YAAY,GAAG;IAC5B;IACF;IACX,QAAQ;IACR,SAAS;IACT,KAAK;IACL,OAAO,cAAc;IACrB,OAAO;IACP,eAAe,cAAc,IAAI;GAClC,CAAA;GAEF,CAAC,aACA,oBAAC,QAAD;IAAM,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;IAAG,OAAO,cAAc;IAC5E,UAAA,cAAc,SAAS;GACpB,CAAA;EAEL;;AAET,CACF;AAEA,OAAO,cAAc"}
@@ -13,6 +13,7 @@ const SegmentedRoot = ({ block = false, className, glass = false, shadow = false
13
13
  shadow,
14
14
  variant
15
15
  }), className),
16
+ "data-variant": variant,
16
17
  ...rest
17
18
  });
18
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"atoms.mjs","names":["BaseUIToggleGroup","BaseUIToggle"],"sources":["../../../src/base-ui/Segmented/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Toggle as BaseUIToggle } from '@base-ui/react/toggle';\nimport { ToggleGroup as BaseUIToggleGroup } from '@base-ui/react/toggle-group';\nimport { cx } from 'antd-style';\nimport { type ComponentProps, type CSSProperties, type FC, type ReactNode } from 'react';\n\nimport { itemVariants, listVariants, styles } from './style';\nimport type { SegmentedSize, SegmentedVariant } from './type';\n\nexport type SegmentedRootProps<Value extends string = string> = Omit<\n ComponentProps<typeof BaseUIToggleGroup<Value>>,\n 'className' | 'render'\n> & {\n block?: boolean;\n className?: string;\n glass?: boolean;\n shadow?: boolean;\n variant?: SegmentedVariant;\n};\n\nexport const SegmentedRoot = <Value extends string = string>({\n block = false,\n className,\n glass = false,\n shadow = false,\n variant = 'filled',\n ...rest\n}: SegmentedRootProps<Value>) => {\n return (\n <BaseUIToggleGroup<Value>\n className={cx(listVariants({ block, glass, shadow, variant }), className)}\n {...rest}\n />\n );\n};\n\nSegmentedRoot.displayName = 'SegmentedRoot';\n\nexport type SegmentedItemProps<Value extends string = string> = Omit<\n ComponentProps<typeof BaseUIToggle<Value>>,\n 'className' | 'render'\n> & {\n block?: boolean;\n className?: string;\n size?: SegmentedSize;\n};\n\nexport const SegmentedItem = <Value extends string = string>({\n block = false,\n className,\n size = 'middle',\n ...rest\n}: SegmentedItemProps<Value>) => {\n return <BaseUIToggle<Value> className={cx(itemVariants({ block, size }), className)} {...rest} />;\n};\n\nSegmentedItem.displayName = 'SegmentedItem';\n\ninterface SimpleSpanProps {\n children?: ReactNode;\n className?: string;\n style?: CSSProperties;\n}\n\nexport const SegmentedItemIcon: FC<SimpleSpanProps> = ({ children, className, style }) => (\n <span className={cx(styles.itemIcon, className)} style={style}>\n {children}\n </span>\n);\nSegmentedItemIcon.displayName = 'SegmentedItemIcon';\n\nexport const SegmentedItemLabel: FC<SimpleSpanProps> = ({ children, className, style }) => (\n <span className={cx(styles.itemLabel, className)} style={style}>\n {children}\n </span>\n);\nSegmentedItemLabel.displayName = 'SegmentedItemLabel';\n\nexport interface SegmentedIndicatorProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport const SegmentedIndicator: FC<SegmentedIndicatorProps> = ({ className, style }) => (\n <span aria-hidden className={cx(styles.indicator, className)} style={style} />\n);\nSegmentedIndicator.displayName = 'SegmentedIndicator';\n"],"mappings":";;;;;;;AAqBA,MAAa,iBAAgD,EAC3D,QAAQ,OACR,WACA,QAAQ,OACR,SAAS,OACT,UAAU,UACV,GAAG,WAC4B;CAC/B,OACE,oBAACA,aAAD;EACE,WAAW,GAAG,aAAa;GAAE;GAAO;GAAO;GAAQ;EAAQ,CAAC,GAAG,SAAS;EACxE,GAAI;CACL,CAAA;AAEL;AAEA,cAAc,cAAc;AAW5B,MAAa,iBAAgD,EAC3D,QAAQ,OACR,WACA,OAAO,UACP,GAAG,WAC4B;CAC/B,OAAO,oBAACC,QAAD;EAAqB,WAAW,GAAG,aAAa;GAAE;GAAO;EAAK,CAAC,GAAG,SAAS;EAAG,GAAI;CAAO,CAAA;AAClG;AAEA,cAAc,cAAc;AAQ5B,MAAa,qBAA0C,EAAE,UAAU,WAAW,YAC5E,oBAAC,QAAD;CAAM,WAAW,GAAG,OAAO,UAAU,SAAS;CAAU;CACrD;AACG,CAAA;AAER,kBAAkB,cAAc;AAEhC,MAAa,sBAA2C,EAAE,UAAU,WAAW,YAC7E,oBAAC,QAAD;CAAM,WAAW,GAAG,OAAO,WAAW,SAAS;CAAU;CACtD;AACG,CAAA;AAER,mBAAmB,cAAc;AAOjC,MAAa,sBAAmD,EAAE,WAAW,YAC3E,oBAAC,QAAD;CAAM,eAAA;CAAY,WAAW,GAAG,OAAO,WAAW,SAAS;CAAU;AAAQ,CAAA;AAE/E,mBAAmB,cAAc"}
1
+ {"version":3,"file":"atoms.mjs","names":["BaseUIToggleGroup","BaseUIToggle"],"sources":["../../../src/base-ui/Segmented/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Toggle as BaseUIToggle } from '@base-ui/react/toggle';\nimport { ToggleGroup as BaseUIToggleGroup } from '@base-ui/react/toggle-group';\nimport { cx } from 'antd-style';\nimport { type ComponentProps, type CSSProperties, type FC, type ReactNode } from 'react';\n\nimport { itemVariants, listVariants, styles } from './style';\nimport type { SegmentedSize, SegmentedVariant } from './type';\n\nexport type SegmentedRootProps<Value extends string = string> = Omit<\n ComponentProps<typeof BaseUIToggleGroup<Value>>,\n 'className' | 'render'\n> & {\n block?: boolean;\n className?: string;\n glass?: boolean;\n shadow?: boolean;\n variant?: SegmentedVariant;\n};\n\nexport const SegmentedRoot = <Value extends string = string>({\n block = false,\n className,\n glass = false,\n shadow = false,\n variant = 'filled',\n ...rest\n}: SegmentedRootProps<Value>) => {\n return (\n <BaseUIToggleGroup<Value>\n className={cx(listVariants({ block, glass, shadow, variant }), className)}\n data-variant={variant}\n {...rest}\n />\n );\n};\n\nSegmentedRoot.displayName = 'SegmentedRoot';\n\nexport type SegmentedItemProps<Value extends string = string> = Omit<\n ComponentProps<typeof BaseUIToggle<Value>>,\n 'className' | 'render'\n> & {\n block?: boolean;\n className?: string;\n size?: SegmentedSize;\n};\n\nexport const SegmentedItem = <Value extends string = string>({\n block = false,\n className,\n size = 'middle',\n ...rest\n}: SegmentedItemProps<Value>) => {\n return <BaseUIToggle<Value> className={cx(itemVariants({ block, size }), className)} {...rest} />;\n};\n\nSegmentedItem.displayName = 'SegmentedItem';\n\ninterface SimpleSpanProps {\n children?: ReactNode;\n className?: string;\n style?: CSSProperties;\n}\n\nexport const SegmentedItemIcon: FC<SimpleSpanProps> = ({ children, className, style }) => (\n <span className={cx(styles.itemIcon, className)} style={style}>\n {children}\n </span>\n);\nSegmentedItemIcon.displayName = 'SegmentedItemIcon';\n\nexport const SegmentedItemLabel: FC<SimpleSpanProps> = ({ children, className, style }) => (\n <span className={cx(styles.itemLabel, className)} style={style}>\n {children}\n </span>\n);\nSegmentedItemLabel.displayName = 'SegmentedItemLabel';\n\nexport interface SegmentedIndicatorProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport const SegmentedIndicator: FC<SegmentedIndicatorProps> = ({ className, style }) => (\n <span aria-hidden className={cx(styles.indicator, className)} style={style} />\n);\nSegmentedIndicator.displayName = 'SegmentedIndicator';\n"],"mappings":";;;;;;;AAqBA,MAAa,iBAAgD,EAC3D,QAAQ,OACR,WACA,QAAQ,OACR,SAAS,OACT,UAAU,UACV,GAAG,WAC4B;CAC/B,OACE,oBAACA,aAAD;EACE,WAAW,GAAG,aAAa;GAAE;GAAO;GAAO;GAAQ;EAAQ,CAAC,GAAG,SAAS;EACxE,gBAAc;EACd,GAAI;CACL,CAAA;AAEL;AAEA,cAAc,cAAc;AAW5B,MAAa,iBAAgD,EAC3D,QAAQ,OACR,WACA,OAAO,UACP,GAAG,WAC4B;CAC/B,OAAO,oBAACC,QAAD;EAAqB,WAAW,GAAG,aAAa;GAAE;GAAO;EAAK,CAAC,GAAG,SAAS;EAAG,GAAI;CAAO,CAAA;AAClG;AAEA,cAAc,cAAc;AAQ5B,MAAa,qBAA0C,EAAE,UAAU,WAAW,YAC5E,oBAAC,QAAD;CAAM,WAAW,GAAG,OAAO,UAAU,SAAS;CAAU;CACrD;AACG,CAAA;AAER,kBAAkB,cAAc;AAEhC,MAAa,sBAA2C,EAAE,UAAU,WAAW,YAC7E,oBAAC,QAAD;CAAM,WAAW,GAAG,OAAO,WAAW,SAAS;CAAU;CACtD;AACG,CAAA;AAER,mBAAmB,cAAc;AAOjC,MAAa,sBAAmD,EAAE,WAAW,YAC3E,oBAAC,QAAD;CAAM,eAAA;CAAY,WAAW,GAAG,OAAO,WAAW,SAAS;CAAU;AAAQ,CAAA;AAE/E,mBAAmB,cAAc"}
@@ -3,8 +3,9 @@ import { focusRing } from "../focusRing.mjs";
3
3
  import { createStaticStyles } from "antd-style";
4
4
  import { cva } from "class-variance-authority";
5
5
  //#region src/base-ui/Segmented/style.ts
6
- const styles = createStaticStyles(({ css, cssVar }) => ({
7
- indicator: css`
6
+ const styles = createStaticStyles(({ css, cssVar }) => {
7
+ return {
8
+ indicator: css`
8
9
  pointer-events: none;
9
10
 
10
11
  position: absolute;
@@ -17,7 +18,7 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
17
18
  border-radius: ${cssVar.borderRadius};
18
19
 
19
20
  background: ${cssVar.colorBgElevated};
20
- box-shadow: ${cssVar.boxShadowTertiary};
21
+ box-shadow: none;
21
22
 
22
23
  transition-timing-function: ${cssVar.motionEaseOut};
23
24
  transition-duration: 240ms;
@@ -31,130 +32,131 @@ const styles = createStaticStyles(({ css, cssVar }) => ({
31
32
  transition-duration: 0s;
32
33
  }
33
34
  `,
34
- item: css`
35
- cursor: pointer;
36
- user-select: none;
37
-
38
- position: relative;
39
- z-index: 1;
40
-
41
- display: inline-flex;
42
- flex-shrink: 0;
43
- gap: 6px;
44
- align-items: center;
45
- justify-content: center;
46
-
47
- box-sizing: border-box;
48
- border: 0;
49
-
50
- font-weight: 500;
51
- color: ${cssVar.colorTextSecondary};
52
- white-space: nowrap;
53
-
54
- background: transparent;
55
- outline: none;
56
-
57
- transition:
58
- color 120ms ${cssVar.motionEaseOut},
59
- transform 120ms ${cssVar.motionEaseOut};
60
-
61
- &:hover:not([data-disabled], [data-pressed]) {
62
- color: ${cssVar.colorText};
63
- }
64
-
65
- &:active:not([data-disabled]) {
66
- transform: scale(0.98);
67
- }
68
-
69
- border-radius: ${cssVar.borderRadius};
70
- ${focusRing};
71
-
72
- &[data-pressed] {
73
- color: ${cssVar.colorText};
74
- }
75
-
76
- &[data-disabled] {
77
- cursor: not-allowed;
78
- color: ${cssVar.colorTextDisabled};
79
- }
80
-
81
- @media (prefers-reduced-motion: reduce) {
82
- transition-duration: 0s;
83
- }
84
- `,
85
- itemBlock: css`
86
- flex: 1 1 0;
87
- `,
88
- itemIcon: css`
89
- display: inline-flex;
90
- align-items: center;
91
- justify-content: center;
92
- `,
93
- itemLabel: css`
94
- display: inline-flex;
95
- align-items: center;
96
- `,
97
- itemLarge: css`
98
- height: 36px;
99
- padding-inline: 16px;
100
- border-radius: ${cssVar.borderRadius};
101
- font-size: 14px;
102
- `,
103
- itemMiddle: css`
104
- height: 32px;
105
- padding-inline: 12px;
106
- border-radius: ${cssVar.borderRadius};
107
- font-size: 13px;
108
- `,
109
- itemSmall: css`
110
- height: 26px;
111
- padding-inline: 10px;
112
- border-radius: ${cssVar.borderRadius};
113
- font-size: 12px;
114
- `,
115
- list: css`
116
- position: relative;
117
-
118
- display: inline-flex;
119
- flex-wrap: nowrap;
120
- gap: 4px;
121
- align-items: center;
122
- align-self: flex-start;
123
-
124
- box-sizing: border-box;
125
- padding: 3px;
126
- border-radius: ${cssVar.borderRadiusLG};
127
-
128
- &[data-orientation='vertical'] {
129
- flex-direction: column;
130
- align-items: stretch;
131
- align-self: stretch;
132
- }
133
- `,
134
- listBlock: css`
135
- display: flex;
136
- align-self: stretch;
137
- width: 100%;
138
- `,
139
- listFilled: css`
140
- border: 1px solid ${cssVar.colorFillQuaternary};
141
- background: ${cssVar.colorBgLayout};
142
- `,
143
- listGlass: staticStylish.blur,
144
- listOutlined: css`
145
- border: 1px solid ${cssVar.colorBorderSecondary};
146
- background: transparent;
147
- `,
148
- listShadow: staticStylish.shadow,
149
- root: css`
150
- display: inline-flex;
151
-
152
- &[data-block='true'] {
35
+ item: css`
36
+ cursor: pointer;
37
+ user-select: none;
38
+
39
+ position: relative;
40
+ z-index: 1;
41
+
42
+ display: inline-flex;
43
+ flex-shrink: 0;
44
+ gap: 6px;
45
+ align-items: center;
46
+ justify-content: center;
47
+
48
+ box-sizing: border-box;
49
+ border: 0;
50
+ border-radius: ${cssVar.borderRadius};
51
+
52
+ font-weight: 500;
53
+ color: ${cssVar.colorTextSecondary};
54
+ white-space: nowrap;
55
+
56
+ background: transparent;
57
+ outline: none;
58
+
59
+ transition:
60
+ color 120ms ${cssVar.motionEaseOut},
61
+ transform 120ms ${cssVar.motionEaseOut};
62
+
63
+ &:hover:not([data-disabled], [data-pressed]) {
64
+ color: ${cssVar.colorText};
65
+ }
66
+
67
+ &:active:not([data-disabled]) {
68
+ transform: scale(0.98);
69
+ }
70
+
71
+ ${focusRing};
72
+
73
+ &[data-pressed] {
74
+ color: ${cssVar.colorText};
75
+ }
76
+
77
+ &[data-disabled] {
78
+ cursor: not-allowed;
79
+ color: ${cssVar.colorTextDisabled};
80
+ }
81
+
82
+ @media (prefers-reduced-motion: reduce) {
83
+ transition-duration: 0s;
84
+ }
85
+ `,
86
+ itemBlock: css`
87
+ flex: 1 1 0;
88
+ `,
89
+ itemIcon: css`
90
+ display: inline-flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ `,
94
+ itemLabel: css`
95
+ display: inline-flex;
96
+ align-items: center;
97
+ `,
98
+ itemLarge: css`
99
+ height: 36px;
100
+ padding-inline: 16px;
101
+ border-radius: ${cssVar.borderRadius};
102
+ font-size: 14px;
103
+ `,
104
+ itemMiddle: css`
105
+ height: 32px;
106
+ padding-inline: 12px;
107
+ border-radius: ${cssVar.borderRadius};
108
+ font-size: 13px;
109
+ `,
110
+ itemSmall: css`
111
+ height: 26px;
112
+ padding-inline: 10px;
113
+ border-radius: ${cssVar.borderRadius};
114
+ font-size: 12px;
115
+ `,
116
+ list: css`
117
+ position: relative;
118
+
119
+ display: inline-flex;
120
+ flex-wrap: nowrap;
121
+ gap: 4px;
122
+ align-items: center;
123
+ align-self: flex-start;
124
+
125
+ box-sizing: border-box;
126
+ padding: 3px;
127
+ border-radius: ${cssVar.borderRadiusLG};
128
+
129
+ &[data-orientation='vertical'] {
130
+ flex-direction: column;
131
+ align-items: stretch;
132
+ align-self: stretch;
133
+ }
134
+ `,
135
+ listBlock: css`
153
136
  display: flex;
137
+ align-self: stretch;
154
138
  width: 100%;
155
- }
156
- `
157
- }));
139
+ `,
140
+ listFilled: css`
141
+ border: 1px solid ${cssVar.colorFillQuaternary};
142
+ background: ${cssVar.colorBgLayout};
143
+ `,
144
+ listGlass: staticStylish.blur,
145
+ listOutlined: css`
146
+ border: 1px solid ${cssVar.colorBorderSecondary};
147
+ background: transparent;
148
+ `,
149
+ listShadow: staticStylish.shadow,
150
+ root: css`
151
+ display: inline-flex;
152
+
153
+ &[data-block='true'] {
154
+ display: flex;
155
+ width: 100%;
156
+ }
157
+ `
158
+ };
159
+ });
158
160
  const listVariants = cva(styles.list, {
159
161
  defaultVariants: {
160
162
  block: false,