@kushagradhawan/kookie-ui 0.1.17 → 0.1.19

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 (276) hide show
  1. package/components.css +3730 -1072
  2. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  3. package/dist/cjs/components/_internal/base-button.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  5. package/dist/cjs/components/_internal/base-button.props.d.ts +9 -0
  6. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  7. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  8. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  9. package/dist/cjs/components/_internal/base-menu.props.d.ts +5 -0
  10. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  11. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  12. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  13. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +5 -0
  14. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  15. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  16. package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
  17. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  18. package/dist/cjs/components/alert-dialog.js +1 -1
  19. package/dist/cjs/components/alert-dialog.js.map +3 -3
  20. package/dist/cjs/components/avatar.d.ts.map +1 -1
  21. package/dist/cjs/components/avatar.js +1 -1
  22. package/dist/cjs/components/avatar.js.map +3 -3
  23. package/dist/cjs/components/avatar.props.d.ts +6 -1
  24. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  25. package/dist/cjs/components/avatar.props.js +1 -1
  26. package/dist/cjs/components/avatar.props.js.map +3 -3
  27. package/dist/cjs/components/badge.d.ts.map +1 -1
  28. package/dist/cjs/components/badge.js +1 -1
  29. package/dist/cjs/components/badge.js.map +3 -3
  30. package/dist/cjs/components/badge.props.d.ts +6 -1
  31. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  32. package/dist/cjs/components/badge.props.js +1 -1
  33. package/dist/cjs/components/badge.props.js.map +2 -2
  34. package/dist/cjs/components/callout.d.ts.map +1 -1
  35. package/dist/cjs/components/callout.js +1 -1
  36. package/dist/cjs/components/callout.js.map +3 -3
  37. package/dist/cjs/components/callout.props.d.ts +5 -0
  38. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  39. package/dist/cjs/components/callout.props.js +1 -1
  40. package/dist/cjs/components/callout.props.js.map +3 -3
  41. package/dist/cjs/components/card.d.ts.map +1 -1
  42. package/dist/cjs/components/card.js +1 -1
  43. package/dist/cjs/components/card.js.map +3 -3
  44. package/dist/cjs/components/card.props.d.ts +11 -2
  45. package/dist/cjs/components/card.props.d.ts.map +1 -1
  46. package/dist/cjs/components/card.props.js +1 -1
  47. package/dist/cjs/components/card.props.js.map +3 -3
  48. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  49. package/dist/cjs/components/context-menu.js +1 -1
  50. package/dist/cjs/components/context-menu.js.map +3 -3
  51. package/dist/cjs/components/dialog.d.ts.map +1 -1
  52. package/dist/cjs/components/dialog.js +1 -1
  53. package/dist/cjs/components/dialog.js.map +3 -3
  54. package/dist/cjs/components/dialog.props.d.ts +5 -0
  55. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  56. package/dist/cjs/components/dialog.props.js +1 -1
  57. package/dist/cjs/components/dialog.props.js.map +3 -3
  58. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  59. package/dist/cjs/components/dropdown-menu.js +1 -1
  60. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  61. package/dist/cjs/components/image.d.ts +6 -1
  62. package/dist/cjs/components/image.d.ts.map +1 -1
  63. package/dist/cjs/components/image.js +1 -1
  64. package/dist/cjs/components/image.js.map +3 -3
  65. package/dist/cjs/components/popover.d.ts.map +1 -1
  66. package/dist/cjs/components/popover.js +1 -1
  67. package/dist/cjs/components/popover.js.map +3 -3
  68. package/dist/cjs/components/popover.props.d.ts +5 -0
  69. package/dist/cjs/components/popover.props.d.ts.map +1 -1
  70. package/dist/cjs/components/popover.props.js +1 -1
  71. package/dist/cjs/components/popover.props.js.map +3 -3
  72. package/dist/cjs/components/select.d.ts.map +1 -1
  73. package/dist/cjs/components/select.js +1 -1
  74. package/dist/cjs/components/select.js.map +3 -3
  75. package/dist/cjs/components/select.props.d.ts +6 -1
  76. package/dist/cjs/components/select.props.d.ts.map +1 -1
  77. package/dist/cjs/components/select.props.js +1 -1
  78. package/dist/cjs/components/select.props.js.map +2 -2
  79. package/dist/cjs/components/sidebar.d.ts +17 -6
  80. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  81. package/dist/cjs/components/sidebar.js +1 -1
  82. package/dist/cjs/components/sidebar.js.map +3 -3
  83. package/dist/cjs/components/sidebar.props.d.ts +5 -0
  84. package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
  85. package/dist/cjs/components/sidebar.props.js +1 -1
  86. package/dist/cjs/components/sidebar.props.js.map +2 -2
  87. package/dist/cjs/components/tabs.d.ts.map +1 -1
  88. package/dist/cjs/components/tabs.js +1 -1
  89. package/dist/cjs/components/tabs.js.map +3 -3
  90. package/dist/cjs/components/text-area.d.ts.map +1 -1
  91. package/dist/cjs/components/text-area.js +1 -1
  92. package/dist/cjs/components/text-area.js.map +3 -3
  93. package/dist/cjs/components/text-area.props.d.ts +6 -1
  94. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  95. package/dist/cjs/components/text-area.props.js +1 -1
  96. package/dist/cjs/components/text-area.props.js.map +3 -3
  97. package/dist/cjs/components/text-field.d.ts.map +1 -1
  98. package/dist/cjs/components/text-field.js +2 -2
  99. package/dist/cjs/components/text-field.js.map +3 -3
  100. package/dist/cjs/components/text-field.props.d.ts +6 -1
  101. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  102. package/dist/cjs/components/text-field.props.js +1 -1
  103. package/dist/cjs/components/text-field.props.js.map +3 -3
  104. package/dist/cjs/components/theme.d.ts.map +1 -1
  105. package/dist/cjs/components/theme.js +1 -1
  106. package/dist/cjs/components/theme.js.map +2 -2
  107. package/dist/cjs/helpers/map-prop-values.js +1 -1
  108. package/dist/cjs/helpers/map-prop-values.js.map +2 -2
  109. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  110. package/dist/esm/components/_internal/base-button.js +1 -1
  111. package/dist/esm/components/_internal/base-button.js.map +3 -3
  112. package/dist/esm/components/_internal/base-button.props.d.ts +9 -0
  113. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  114. package/dist/esm/components/_internal/base-button.props.js +1 -1
  115. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  116. package/dist/esm/components/_internal/base-menu.props.d.ts +5 -0
  117. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  118. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  119. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  120. package/dist/esm/components/_internal/base-tab-list.props.d.ts +5 -0
  121. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  122. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  123. package/dist/esm/components/_internal/base-tab-list.props.js.map +3 -3
  124. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  125. package/dist/esm/components/alert-dialog.js +1 -1
  126. package/dist/esm/components/alert-dialog.js.map +3 -3
  127. package/dist/esm/components/avatar.d.ts.map +1 -1
  128. package/dist/esm/components/avatar.js +1 -1
  129. package/dist/esm/components/avatar.js.map +3 -3
  130. package/dist/esm/components/avatar.props.d.ts +6 -1
  131. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  132. package/dist/esm/components/avatar.props.js +1 -1
  133. package/dist/esm/components/avatar.props.js.map +3 -3
  134. package/dist/esm/components/badge.d.ts.map +1 -1
  135. package/dist/esm/components/badge.js +1 -1
  136. package/dist/esm/components/badge.js.map +3 -3
  137. package/dist/esm/components/badge.props.d.ts +6 -1
  138. package/dist/esm/components/badge.props.d.ts.map +1 -1
  139. package/dist/esm/components/badge.props.js +1 -1
  140. package/dist/esm/components/badge.props.js.map +2 -2
  141. package/dist/esm/components/callout.d.ts.map +1 -1
  142. package/dist/esm/components/callout.js +1 -1
  143. package/dist/esm/components/callout.js.map +3 -3
  144. package/dist/esm/components/callout.props.d.ts +5 -0
  145. package/dist/esm/components/callout.props.d.ts.map +1 -1
  146. package/dist/esm/components/callout.props.js +1 -1
  147. package/dist/esm/components/callout.props.js.map +3 -3
  148. package/dist/esm/components/card.d.ts.map +1 -1
  149. package/dist/esm/components/card.js +1 -1
  150. package/dist/esm/components/card.js.map +3 -3
  151. package/dist/esm/components/card.props.d.ts +11 -2
  152. package/dist/esm/components/card.props.d.ts.map +1 -1
  153. package/dist/esm/components/card.props.js +1 -1
  154. package/dist/esm/components/card.props.js.map +3 -3
  155. package/dist/esm/components/context-menu.d.ts.map +1 -1
  156. package/dist/esm/components/context-menu.js +1 -1
  157. package/dist/esm/components/context-menu.js.map +3 -3
  158. package/dist/esm/components/dialog.d.ts.map +1 -1
  159. package/dist/esm/components/dialog.js +1 -1
  160. package/dist/esm/components/dialog.js.map +3 -3
  161. package/dist/esm/components/dialog.props.d.ts +5 -0
  162. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  163. package/dist/esm/components/dialog.props.js +1 -1
  164. package/dist/esm/components/dialog.props.js.map +3 -3
  165. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  166. package/dist/esm/components/dropdown-menu.js +1 -1
  167. package/dist/esm/components/dropdown-menu.js.map +3 -3
  168. package/dist/esm/components/image.d.ts +6 -1
  169. package/dist/esm/components/image.d.ts.map +1 -1
  170. package/dist/esm/components/image.js +1 -1
  171. package/dist/esm/components/image.js.map +3 -3
  172. package/dist/esm/components/popover.d.ts.map +1 -1
  173. package/dist/esm/components/popover.js +1 -1
  174. package/dist/esm/components/popover.js.map +3 -3
  175. package/dist/esm/components/popover.props.d.ts +5 -0
  176. package/dist/esm/components/popover.props.d.ts.map +1 -1
  177. package/dist/esm/components/popover.props.js +1 -1
  178. package/dist/esm/components/popover.props.js.map +3 -3
  179. package/dist/esm/components/select.d.ts.map +1 -1
  180. package/dist/esm/components/select.js +1 -1
  181. package/dist/esm/components/select.js.map +3 -3
  182. package/dist/esm/components/select.props.d.ts +6 -1
  183. package/dist/esm/components/select.props.d.ts.map +1 -1
  184. package/dist/esm/components/select.props.js +1 -1
  185. package/dist/esm/components/select.props.js.map +2 -2
  186. package/dist/esm/components/sidebar.d.ts +17 -6
  187. package/dist/esm/components/sidebar.d.ts.map +1 -1
  188. package/dist/esm/components/sidebar.js +1 -1
  189. package/dist/esm/components/sidebar.js.map +3 -3
  190. package/dist/esm/components/sidebar.props.d.ts +5 -0
  191. package/dist/esm/components/sidebar.props.d.ts.map +1 -1
  192. package/dist/esm/components/sidebar.props.js +1 -1
  193. package/dist/esm/components/sidebar.props.js.map +2 -2
  194. package/dist/esm/components/tabs.d.ts.map +1 -1
  195. package/dist/esm/components/tabs.js +1 -1
  196. package/dist/esm/components/tabs.js.map +3 -3
  197. package/dist/esm/components/text-area.d.ts.map +1 -1
  198. package/dist/esm/components/text-area.js +1 -1
  199. package/dist/esm/components/text-area.js.map +3 -3
  200. package/dist/esm/components/text-area.props.d.ts +6 -1
  201. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  202. package/dist/esm/components/text-area.props.js +1 -1
  203. package/dist/esm/components/text-area.props.js.map +3 -3
  204. package/dist/esm/components/text-field.d.ts.map +1 -1
  205. package/dist/esm/components/text-field.js +2 -2
  206. package/dist/esm/components/text-field.js.map +3 -3
  207. package/dist/esm/components/text-field.props.d.ts +6 -1
  208. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  209. package/dist/esm/components/text-field.props.js +1 -1
  210. package/dist/esm/components/text-field.props.js.map +3 -3
  211. package/dist/esm/components/theme.d.ts.map +1 -1
  212. package/dist/esm/components/theme.js +1 -1
  213. package/dist/esm/components/theme.js.map +2 -2
  214. package/dist/esm/helpers/map-prop-values.js +1 -1
  215. package/dist/esm/helpers/map-prop-values.js.map +2 -2
  216. package/package.json +1 -1
  217. package/src/components/_internal/base-button.css +518 -110
  218. package/src/components/_internal/base-button.props.ts +5 -0
  219. package/src/components/_internal/base-button.tsx +4 -0
  220. package/src/components/_internal/base-card.css +59 -11
  221. package/src/components/_internal/base-dialog.css +26 -9
  222. package/src/components/_internal/base-menu.css +192 -21
  223. package/src/components/_internal/base-menu.props.ts +7 -0
  224. package/src/components/_internal/base-tab-list.css +56 -5
  225. package/src/components/_internal/base-tab-list.props.ts +3 -0
  226. package/src/components/alert-dialog.tsx +22 -7
  227. package/src/components/animations.css +31 -0
  228. package/src/components/avatar.css +436 -9
  229. package/src/components/avatar.props.tsx +4 -1
  230. package/src/components/avatar.tsx +19 -6
  231. package/src/components/badge.css +222 -7
  232. package/src/components/badge.props.tsx +3 -1
  233. package/src/components/badge.tsx +3 -2
  234. package/src/components/button.css +17 -17
  235. package/src/components/callout.css +75 -6
  236. package/src/components/callout.props.tsx +3 -0
  237. package/src/components/callout.tsx +6 -5
  238. package/src/components/card.css +361 -44
  239. package/src/components/card.props.tsx +7 -2
  240. package/src/components/card.tsx +7 -1
  241. package/src/components/context-menu.tsx +47 -22
  242. package/src/components/dialog.props.tsx +3 -0
  243. package/src/components/dialog.tsx +22 -7
  244. package/src/components/dropdown-menu.css +10 -10
  245. package/src/components/dropdown-menu.tsx +37 -11
  246. package/src/components/icon-button.css +36 -8
  247. package/src/components/image.tsx +92 -73
  248. package/src/components/kbd.css +122 -54
  249. package/src/components/popover.css +22 -3
  250. package/src/components/popover.props.tsx +3 -0
  251. package/src/components/popover.tsx +15 -8
  252. package/src/components/select.css +386 -95
  253. package/src/components/select.props.tsx +7 -1
  254. package/src/components/select.tsx +21 -13
  255. package/src/components/sidebar.css +201 -86
  256. package/src/components/sidebar.props.tsx +15 -3
  257. package/src/components/sidebar.tsx +313 -242
  258. package/src/components/tabs.css +3 -1
  259. package/src/components/tabs.tsx +8 -3
  260. package/src/components/text-area.css +323 -32
  261. package/src/components/text-area.props.tsx +4 -1
  262. package/src/components/text-area.tsx +3 -2
  263. package/src/components/text-field.css +336 -15
  264. package/src/components/text-field.props.tsx +4 -1
  265. package/src/components/text-field.tsx +5 -7
  266. package/src/components/theme.tsx +11 -9
  267. package/src/helpers/map-prop-values.ts +1 -1
  268. package/src/styles/tokens/color.css +19 -5
  269. package/src/styles/tokens/constants.css +118 -0
  270. package/src/styles/tokens/index.css +1 -0
  271. package/src/styles/tokens/radius.css +9 -6
  272. package/src/styles/tokens/shadow.css +10 -10
  273. package/src/styles/tokens/transition.css +33 -1
  274. package/styles.css +3846 -1089
  275. package/tokens/base.css +51 -22
  276. package/tokens.css +133 -34
@@ -8,12 +8,15 @@ import { extractProps } from '../helpers/extract-props.js';
8
8
  import { marginPropDefs } from '../props/margin.props.js';
9
9
  import { widthPropDefs } from '../props/width.props.js';
10
10
  import { heightPropDefs } from '../props/height.props.js';
11
+ import { layoutPropDefs } from '../props/layout.props.js';
11
12
  import { Skeleton } from './skeleton.js';
13
+ import { Box } from './box.js';
12
14
 
13
15
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
14
16
  import type { MarginProps } from '../props/margin.props.js';
15
17
  import type { WidthProps } from '../props/width.props.js';
16
18
  import type { HeightProps } from '../props/height.props.js';
19
+ import type { LayoutProps } from '../props/layout.props.js';
17
20
  import type { GetPropDefTypes } from '../props/prop-def.js';
18
21
 
19
22
  type ImageElement = React.ElementRef<'img'>;
@@ -40,6 +43,10 @@ type ImageOwnProps = GetPropDefTypes<typeof imagePropDefs> & {
40
43
  * Callback fired when the image fails to load.
41
44
  */
42
45
  onError?: (event: React.SyntheticEvent<HTMLImageElement>) => void;
46
+ /**
47
+ * Style object to apply to the wrapper container. Useful for overriding display, width, height, etc.
48
+ */
49
+ wrapperStyle?: React.CSSProperties;
43
50
  };
44
51
 
45
52
  interface ImageProps
@@ -47,6 +54,7 @@ interface ImageProps
47
54
  MarginProps,
48
55
  WidthProps,
49
56
  HeightProps,
57
+ LayoutProps,
50
58
  ImageOwnProps {
51
59
  /**
52
60
  * The alt attribute provides alternative information for an image if a user for some reason cannot view it.
@@ -56,7 +64,7 @@ interface ImageProps
56
64
  }
57
65
 
58
66
  const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) => {
59
- const { variant = 'surface', children } = props;
67
+ const { variant = 'surface', wrapperStyle, ...restProps } = props;
60
68
  const {
61
69
  asChild,
62
70
  className,
@@ -70,33 +78,46 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
70
78
  fadeIn = true,
71
79
  onLoad: userOnLoad,
72
80
  onError: userOnError,
73
- children: _children, // Extract children to exclude from imgProps
81
+ children,
74
82
  ...imgProps
75
- } = extractProps(props, imagePropDefs, marginPropDefs, widthPropDefs, heightPropDefs);
83
+ } = extractProps(
84
+ restProps,
85
+ imagePropDefs,
86
+ marginPropDefs,
87
+ widthPropDefs,
88
+ heightPropDefs,
89
+ layoutPropDefs,
90
+ );
76
91
 
77
92
  // Loading state management
78
93
  const [imageLoaded, setImageLoaded] = React.useState(false);
79
94
  const [imageError, setImageError] = React.useState(false);
80
95
  const [showPlaceholder, setShowPlaceholder] = React.useState(!!placeholder);
81
-
96
+
82
97
  // Ref to check if image is already loaded (for cached images)
83
98
  const imgRef = React.useRef<HTMLImageElement>(null);
84
99
 
85
100
  // Handle image load - moved to top to avoid conditional hook call
86
- const handleLoad = React.useCallback((event: React.SyntheticEvent<HTMLImageElement>) => {
87
- setImageLoaded(true);
88
- setImageError(false);
89
- setShowPlaceholder(false);
90
- userOnLoad?.(event);
91
- }, [userOnLoad]);
101
+ const handleLoad = React.useCallback(
102
+ (event: React.SyntheticEvent<HTMLImageElement>) => {
103
+ setImageLoaded(true);
104
+ setImageError(false);
105
+ setShowPlaceholder(false);
106
+ userOnLoad?.(event);
107
+ },
108
+ [userOnLoad],
109
+ );
92
110
 
93
111
  // Handle image error - moved to top to avoid conditional hook call
94
- const handleError = React.useCallback((event: React.SyntheticEvent<HTMLImageElement>) => {
95
- setImageLoaded(false);
96
- setImageError(true);
97
- setShowPlaceholder(false);
98
- userOnError?.(event);
99
- }, [userOnError]);
112
+ const handleError = React.useCallback(
113
+ (event: React.SyntheticEvent<HTMLImageElement>) => {
114
+ setImageLoaded(false);
115
+ setImageError(true);
116
+ setShowPlaceholder(false);
117
+ userOnError?.(event);
118
+ },
119
+ [userOnError],
120
+ );
100
121
 
101
122
  // Check if image is already loaded (for cached images)
102
123
  React.useEffect(() => {
@@ -119,43 +140,35 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
119
140
  }
120
141
 
121
142
  // Create skeleton placeholder
122
- const skeletonElement = showSkeleton && !imageLoaded && !imageError ? (
123
- <Skeleton
124
- style={{
125
- ...style,
126
- width: '100%',
127
- height: '100px', // Default height, can be overridden by style
128
- borderRadius: radius ? `var(--radius-${radius})` : undefined,
129
- }}
130
- className={className}
131
- />
132
- ) : null;
143
+ const skeletonElement =
144
+ showSkeleton && !imageLoaded && !imageError ? (
145
+ <Skeleton
146
+ width="100%"
147
+ height="100px" // Default height, can be overridden by style
148
+ style={{
149
+ ...style,
150
+ borderRadius: radius ? `var(--radius-${radius})` : undefined,
151
+ }}
152
+ className={className}
153
+ />
154
+ ) : null;
133
155
 
134
156
  // Create placeholder image element
135
- const placeholderElement = placeholder && showPlaceholder ? (
136
- <img
137
- data-radius={radius}
138
- style={{
139
- ...style,
140
- position: 'absolute',
141
- top: 0,
142
- left: 0,
143
- width: '100%',
144
- height: '100%',
145
- filter: 'blur(4px)',
146
- opacity: 0.7,
147
- transition: 'opacity 0.3s ease-out',
148
- }}
149
- className={classNames(
150
- 'rt-reset',
151
- 'rt-Image',
152
- 'rt-Image--placeholder',
153
- className,
154
- )}
155
- alt=""
156
- src={placeholder}
157
- />
158
- ) : null;
157
+ const placeholderElement =
158
+ placeholder && showPlaceholder ? (
159
+ <img
160
+ data-radius={radius}
161
+ style={{
162
+ ...style,
163
+ filter: 'blur(4px)',
164
+ opacity: 0.7,
165
+ transition: 'opacity 0.3s ease-out',
166
+ }}
167
+ className={classNames('rt-reset', 'rt-Image', 'rt-Image--placeholder', className)}
168
+ alt=""
169
+ src={placeholder}
170
+ />
171
+ ) : null;
159
172
 
160
173
  // Create the standard img element
161
174
  const imgElement = (
@@ -164,7 +177,7 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
164
177
  loading={loading}
165
178
  style={{
166
179
  ...style,
167
- opacity: fadeIn ? (imageLoaded ? 1 : 0) : 1,
180
+ opacity: fadeIn ? (imageLoaded ? (style?.opacity ?? 1) : 0) : (style?.opacity ?? 1),
168
181
  transition: fadeIn ? 'opacity 0.3s ease-out' : 'none',
169
182
  }}
170
183
  className={classNames(
@@ -190,13 +203,16 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
190
203
  );
191
204
 
192
205
  // Wrapper for images with placeholders
193
- const imageWithPlaceholder = (placeholder || showSkeleton) ? (
194
- <div style={{ position: 'relative', display: 'inline-block' }}>
195
- {skeletonElement}
196
- {placeholderElement}
197
- {imgElement}
198
- </div>
199
- ) : imgElement;
206
+ const imageWithPlaceholder =
207
+ placeholder || showSkeleton ? (
208
+ <Box position="relative" display="inline-block" style={wrapperStyle}>
209
+ {skeletonElement}
210
+ {placeholderElement}
211
+ {imgElement}
212
+ </Box>
213
+ ) : (
214
+ imgElement
215
+ );
200
216
 
201
217
  // Handle asChild - inject img into the child element
202
218
  if (asChild && children) {
@@ -207,8 +223,6 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
207
223
  return React.cloneElement(child, {
208
224
  className: classNames(child.props?.className, 'rt-variant-blur'),
209
225
  style: {
210
- position: 'relative',
211
- display: 'inline-block',
212
226
  textDecoration: 'none', // Reset link underlines
213
227
  color: 'inherit', // Reset link colors
214
228
  border: 'none', // Reset button borders
@@ -219,7 +233,7 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
219
233
  ...child.props?.style,
220
234
  },
221
235
  children: (
222
- <>
236
+ <Box position="relative" display="inline-block" style={wrapperStyle}>
223
237
  {/* Background blurred image */}
224
238
  <img
225
239
  data-radius={radius}
@@ -245,11 +259,11 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
245
259
  <img
246
260
  data-radius={radius}
247
261
  loading={loading}
248
- style={{
249
- ...style,
250
- position: 'relative',
262
+ style={{
263
+ ...style,
264
+ position: 'relative',
251
265
  zIndex: 1,
252
- opacity: fadeIn ? (imageLoaded ? 1 : 0) : 1,
266
+ opacity: fadeIn ? (imageLoaded ? (style?.opacity ?? 1) : 0) : (style?.opacity ?? 1),
253
267
  transition: fadeIn ? 'opacity 0.3s ease-out' : 'none',
254
268
  }}
255
269
  className={classNames('rt-reset', 'rt-Image', 'rt-Image--blur', className)}
@@ -267,7 +281,7 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
267
281
  }
268
282
  }}
269
283
  />
270
- </>
284
+ </Box>
271
285
  ),
272
286
  });
273
287
  } else {
@@ -292,7 +306,12 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
292
306
  // Regular rendering without asChild
293
307
  if (variant === 'blur') {
294
308
  return (
295
- <div className="rt-variant-blur" style={{ position: 'relative', display: 'inline-block' }}>
309
+ <Box
310
+ className="rt-variant-blur"
311
+ position="relative"
312
+ display="inline-block"
313
+ style={wrapperStyle}
314
+ >
296
315
  {/* Background blurred image */}
297
316
  <img
298
317
  data-radius={radius}
@@ -318,11 +337,11 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
318
337
  <img
319
338
  data-radius={radius}
320
339
  loading={loading}
321
- style={{
322
- ...style,
323
- position: 'relative',
340
+ style={{
341
+ ...style,
342
+ position: 'relative',
324
343
  zIndex: 1,
325
- opacity: fadeIn ? (imageLoaded ? 1 : 0) : 1,
344
+ opacity: fadeIn ? (imageLoaded ? (style?.opacity ?? 1) : 0) : (style?.opacity ?? 1),
326
345
  transition: fadeIn ? 'opacity 0.3s ease-out' : 'none',
327
346
  }}
328
347
  className={classNames('rt-reset', 'rt-Image', 'rt-Image--blur', className)}
@@ -340,7 +359,7 @@ const Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) =
340
359
  }
341
360
  }}
342
361
  />
343
- </div>
362
+ </Box>
344
363
  );
345
364
  }
346
365
 
@@ -1,27 +1,7 @@
1
1
  /* stylelint-disable selector-max-type */
2
2
  /* Disable selector-max-type rule to target individual element types. */
3
3
 
4
- :where(.radix-themes) {
5
- /* prettier-ignore */
6
- --kbd-box-shadow:
7
- inset 0 -0.05em 0.5em var(--gray-a2),
8
- inset 0 0.05em var(--white-a12),
9
- inset 0 0.25em 0.5em var(--gray-a2),
10
- inset 0 -0.05em var(--gray-a6),
11
- 0 0 0 0.05em var(--gray-a5),
12
- 0 0.08em 0.17em var(--gray-a7);
13
- }
14
- :is(.dark, .dark-theme),
15
- :is(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) {
16
- /* prettier-ignore */
17
- --kbd-box-shadow:
18
- inset 0 -0.05em 0.5em var(--gray-a3),
19
- inset 0 0.05em var(--gray-a11),
20
- inset 0 0.25em 0.5em var(--gray-a2),
21
- inset 0 -0.1em var(--black-a11),
22
- 0 0 0 0.075em var(--gray-a7),
23
- 0 0.08em 0.17em var(--black-a12);
24
- }
4
+
25
5
 
26
6
  .rt-Kbd {
27
7
  display: inline-flex;
@@ -30,30 +10,49 @@
30
10
  flex-shrink: 0;
31
11
  font-family: var(--default-font-family);
32
12
  font-weight: normal;
33
- vertical-align: text-top;
13
+ vertical-align: middle;
34
14
  white-space: nowrap;
35
15
  user-select: none;
36
16
 
37
17
  position: relative;
38
- top: -0.03em;
18
+ top: var(--classic-elevation-offset);
39
19
 
40
- font-size: 0.75em;
41
20
  min-width: 1.75em;
42
- line-height: 1.7em;
43
21
  box-sizing: border-box;
44
- padding-left: 0.5em;
45
- padding-right: 0.5em;
46
- padding-bottom: 0.05em;
47
- word-spacing: -0.1em;
48
- border-radius: calc(var(--radius-factor) * 0.35em);
49
- letter-spacing: var(--letter-spacing, var(--default-letter-spacing));
22
+ word-spacing: var(--classic-word-spacing);
23
+ border-radius: max(var(--radius-2), var(--radius-full));
24
+
25
+ /* Default sizing (size 2) */
26
+ font-size: var(--font-size-1);
27
+ line-height: var(--line-height-1);
28
+ letter-spacing: var(--letter-spacing-1);
29
+ padding: var(--space-1) var(--space-2);
50
30
 
51
31
  /* Make sure that the height is not stretched in a Flex/Grid layout */
52
32
  height: fit-content;
53
33
 
54
34
  color: var(--gray-12);
55
35
  background-color: var(--gray-1);
56
- box-shadow: var(--kbd-box-shadow);
36
+ /* prettier-ignore */
37
+ box-shadow:
38
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a2),
39
+ inset 0 var(--classic-border-width) var(--white-a12),
40
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
41
+ inset 0 calc(-1 * var(--classic-border-width)) var(--gray-a6),
42
+ 0 0 0 var(--classic-border-width) var(--gray-a5),
43
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--gray-a7);
44
+
45
+ :where(.dark, .dark-theme) &,
46
+ :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
47
+ /* prettier-ignore */
48
+ box-shadow:
49
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a3),
50
+ inset 0 var(--classic-border-width) var(--gray-a11),
51
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
52
+ inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
53
+ 0 0 0 var(--classic-border-width-thick) var(--gray-a7),
54
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12);
55
+ }
57
56
  transition: box-shadow 120ms, background-color 120ms;
58
57
 
59
58
  &:where(:any-link, button) {
@@ -61,20 +60,62 @@
61
60
  &:where(:hover) {
62
61
  transition-duration: 40ms, 40ms;
63
62
  background-color: var(--color-background);
64
- box-shadow: var(--kbd-box-shadow), 0 0 0 0.05em var(--gray-a5);
63
+ /* prettier-ignore */
64
+ box-shadow:
65
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a2),
66
+ inset 0 var(--classic-border-width) var(--white-a12),
67
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
68
+ inset 0 calc(-1 * var(--classic-border-width)) var(--gray-a6),
69
+ 0 0 0 var(--classic-border-width) var(--gray-a5),
70
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--gray-a7),
71
+ 0 0 0 var(--classic-border-width) var(--gray-a5);
72
+
73
+ :where(.dark, .dark-theme) &,
74
+ :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
75
+ /* prettier-ignore */
76
+ box-shadow:
77
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a3),
78
+ inset 0 var(--classic-border-width) var(--gray-a11),
79
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
80
+ inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
81
+ 0 0 0 var(--classic-border-width-thick) var(--gray-a7),
82
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
83
+ 0 0 0 var(--classic-border-width) var(--gray-a5);
84
+ }
65
85
  }
66
86
  }
67
87
  &:where([data-state='open']) {
68
88
  transition-duration: 40ms, 40ms;
69
89
  background-color: var(--color-background);
70
- box-shadow: var(--kbd-box-shadow), 0 0 0 0.05em var(--gray-a5);
90
+ /* prettier-ignore */
91
+ box-shadow:
92
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a2),
93
+ inset 0 var(--classic-border-width) var(--white-a12),
94
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
95
+ inset 0 calc(-1 * var(--classic-border-width)) var(--gray-a6),
96
+ 0 0 0 var(--classic-border-width) var(--gray-a5),
97
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--gray-a7),
98
+ 0 0 0 var(--classic-border-width) var(--gray-a5);
99
+
100
+ :where(.dark, .dark-theme) &,
101
+ :where(.dark, .dark-theme) :where(.radix-themes:not(.light, .light-theme)) & {
102
+ /* prettier-ignore */
103
+ box-shadow:
104
+ inset 0 calc(-1 * var(--classic-border-width)) var(--classic-shadow-blur-large) var(--gray-a3),
105
+ inset 0 var(--classic-border-width) var(--gray-a11),
106
+ inset 0 var(--classic-shadow-blur-medium) var(--classic-shadow-blur-large) var(--gray-a2),
107
+ inset 0 var(--classic-shadow-offset-negative) var(--black-a11),
108
+ 0 0 0 var(--classic-border-width-thick) var(--gray-a7),
109
+ 0 var(--classic-shadow-offset-y) var(--classic-shadow-blur-small) var(--black-a12),
110
+ 0 0 0 var(--classic-border-width) var(--gray-a5);
111
+ }
71
112
  }
72
113
  &:where(:active:not([data-state='open'])) {
73
- padding-top: 0.05em;
114
+ padding-top: var(--classic-border-width);
74
115
  padding-bottom: 0;
75
116
  transition-duration: 40ms, 40ms;
76
117
  background-color: var(--gray-2);
77
- box-shadow: inset 0 0.05em var(--black-a3), 0 0 0 0.05em var(--gray-a7);
118
+ box-shadow: inset 0 var(--classic-border-width) var(--black-a3), 0 0 0 var(--classic-border-width) var(--gray-a7);
78
119
  }
79
120
  &:where(:focus-visible) {
80
121
  outline: 2px solid var(--focus-8);
@@ -91,40 +132,67 @@
91
132
  @breakpoints {
92
133
  .rt-Kbd {
93
134
  &:where(.rt-r-size-1) {
94
- font-size: calc(var(--font-size-1) * 0.8);
95
- --letter-spacing: var(--letter-spacing-1);
135
+ font-size: var(--font-size-0);
136
+ line-height: var(--line-height-0);
137
+ letter-spacing: var(--letter-spacing-0);
138
+ padding: calc(var(--space-1) * 0.5) calc(var(--space-1) * 1.5);
139
+ border-radius: max(var(--radius-1), var(--radius-full));
96
140
  }
97
141
  &:where(.rt-r-size-2) {
98
- font-size: calc(var(--font-size-2) * 0.8);
99
- --letter-spacing: var(--letter-spacing-2);
142
+ font-size: var(--font-size-1);
143
+ line-height: var(--line-height-1);
144
+ letter-spacing: var(--letter-spacing-1);
145
+ padding: var(--space-1) var(--space-2);
146
+ border-radius: max(var(--radius-2), var(--radius-full));
100
147
  }
101
148
  &:where(.rt-r-size-3) {
102
- font-size: calc(var(--font-size-3) * 0.8);
103
- --letter-spacing: var(--letter-spacing-3);
149
+ font-size: var(--font-size-2);
150
+ line-height: var(--line-height-2);
151
+ letter-spacing: var(--letter-spacing-2);
152
+ padding: var(--space-1) calc(var(--space-2) * 1.25);
153
+ border-radius: max(var(--radius-2), var(--radius-full));
104
154
  }
105
155
  &:where(.rt-r-size-4) {
106
- font-size: calc(var(--font-size-4) * 0.8);
107
- --letter-spacing: var(--letter-spacing-4);
156
+ font-size: var(--font-size-3);
157
+ line-height: var(--line-height-3);
158
+ letter-spacing: var(--letter-spacing-3);
159
+ padding: calc(var(--space-1) * 1.25) calc(var(--space-2) * 1.5);
160
+ border-radius: max(var(--radius-3), var(--radius-full));
108
161
  }
109
162
  &:where(.rt-r-size-5) {
110
- font-size: calc(var(--font-size-5) * 0.8);
111
- --letter-spacing: var(--letter-spacing-5);
163
+ font-size: var(--font-size-4);
164
+ line-height: var(--line-height-4);
165
+ letter-spacing: var(--letter-spacing-4);
166
+ padding: calc(var(--space-1) * 1.5) var(--space-3);
167
+ border-radius: max(var(--radius-3), var(--radius-full));
112
168
  }
113
169
  &:where(.rt-r-size-6) {
114
- font-size: calc(var(--font-size-6) * 0.8);
115
- --letter-spacing: var(--letter-spacing-6);
170
+ font-size: var(--font-size-5);
171
+ line-height: var(--line-height-5);
172
+ letter-spacing: var(--letter-spacing-5);
173
+ padding: calc(var(--space-1) * 1.75) calc(var(--space-3) * 1.25);
174
+ border-radius: max(var(--radius-4), var(--radius-full));
116
175
  }
117
176
  &:where(.rt-r-size-7) {
118
- font-size: calc(var(--font-size-7) * 0.8);
119
- --letter-spacing: var(--letter-spacing-7);
177
+ font-size: var(--font-size-6);
178
+ line-height: var(--line-height-6);
179
+ letter-spacing: var(--letter-spacing-6);
180
+ padding: var(--space-2) calc(var(--space-3) * 1.5);
181
+ border-radius: max(var(--radius-4), var(--radius-full));
120
182
  }
121
183
  &:where(.rt-r-size-8) {
122
- font-size: calc(var(--font-size-8) * 0.8);
123
- --letter-spacing: var(--letter-spacing-8);
184
+ font-size: var(--font-size-7);
185
+ line-height: var(--line-height-7);
186
+ letter-spacing: var(--letter-spacing-7);
187
+ padding: calc(var(--space-2) * 1.25) var(--space-4);
188
+ border-radius: max(var(--radius-5), var(--radius-full));
124
189
  }
125
190
  &:where(.rt-r-size-9) {
126
- font-size: calc(var(--font-size-9) * 0.8);
127
- --letter-spacing: var(--letter-spacing-9);
191
+ font-size: var(--font-size-8);
192
+ line-height: var(--line-height-8);
193
+ letter-spacing: var(--letter-spacing-8);
194
+ padding: calc(var(--space-2) * 1.5) calc(var(--space-4) * 1.25);
195
+ border-radius: max(var(--radius-5), var(--radius-full));
128
196
  }
129
197
  }
130
198
  }
@@ -1,10 +1,13 @@
1
1
  .rt-PopoverContent {
2
- background-color: var(--color-panel-solid);
2
+ /* Base state: use --color-panel which adapts to theme context */
3
+ background-color: var(--color-panel);
4
+ backdrop-filter: var(--backdrop-filter-panel);
3
5
  box-shadow: var(--shadow-5);
4
6
  min-width: var(--radix-popover-trigger-width);
5
7
  outline: 0;
6
8
  overflow: auto;
7
9
  position: relative;
10
+ transition: var(--transition-background-blur);
8
11
 
9
12
  --inset-padding-top: var(--popover-content-padding);
10
13
  --inset-padding-right: var(--popover-content-padding);
@@ -14,6 +17,22 @@
14
17
  box-sizing: border-box;
15
18
 
16
19
  transform-origin: var(--radix-popover-content-transform-origin);
20
+
21
+ /* Reduced motion support */
22
+ @media (prefers-reduced-motion: reduce) {
23
+ transition: none;
24
+ }
25
+
26
+ /* Component-level overrides (higher specificity) */
27
+ &:where([data-panel-background='solid']) {
28
+ background-color: var(--color-panel-solid);
29
+ backdrop-filter: none;
30
+ }
31
+
32
+ &:where([data-panel-background='translucent']) {
33
+ background-color: var(--color-panel-translucent);
34
+ backdrop-filter: var(--backdrop-filter-panel);
35
+ }
17
36
  }
18
37
 
19
38
  /***************************************************************************************************
@@ -26,7 +45,7 @@
26
45
  .rt-PopoverContent {
27
46
  &:where(.rt-r-size-1) {
28
47
  --popover-content-padding: var(--space-3);
29
- border-radius: var(--radius-4);
48
+ border-radius: var(--radius-3);
30
49
  }
31
50
  &:where(.rt-r-size-2) {
32
51
  --popover-content-padding: var(--space-4);
@@ -38,7 +57,7 @@
38
57
  }
39
58
  &:where(.rt-r-size-4) {
40
59
  --popover-content-padding: var(--space-6);
41
- border-radius: var(--radius-5);
60
+ border-radius: var(--radius-6);
42
61
  }
43
62
  }
44
63
  }
@@ -5,6 +5,7 @@ import { widthPropDefs } from '../props/width.props.js';
5
5
  import type { PropDef, GetPropDefTypes } from '../props/prop-def.js';
6
6
 
7
7
  const contentSizes = ['1', '2', '3', '4'] as const;
8
+ const panelBackgrounds = ['solid', 'translucent'] as const;
8
9
 
9
10
  const popoverContentPropDefs = {
10
11
  ...asChildPropDef,
@@ -15,6 +16,7 @@ const popoverContentPropDefs = {
15
16
  default: '2',
16
17
  responsive: true,
17
18
  },
19
+ panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
18
20
  width: widthPropDefs.width,
19
21
  minWidth: widthPropDefs.minWidth,
20
22
  maxWidth: { ...widthPropDefs.maxWidth, default: '480px' },
@@ -24,6 +26,7 @@ const popoverContentPropDefs = {
24
26
  minWidth: PropDef<string>;
25
27
  maxWidth: PropDef<string>;
26
28
  size: PropDef<(typeof contentSizes)[number]>;
29
+ panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
27
30
  };
28
31
 
29
32
  type PopoverContentOwnProps = GetPropDefTypes<
@@ -6,6 +6,7 @@ import { extractProps } from '../helpers/extract-props.js';
6
6
  import { requireReactElement } from '../helpers/require-react-element.js';
7
7
  import { popoverContentPropDefs } from './popover.props.js';
8
8
  import { Theme } from './theme.js';
9
+ import { useThemeContext } from './theme.js';
9
10
 
10
11
  import type { PopoverContentOwnProps } from './popover.props.js';
11
12
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
@@ -24,7 +25,7 @@ const PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerPro
24
25
  <PopoverPrimitive.Trigger {...props} ref={forwardedRef} asChild>
25
26
  {requireReactElement(children)}
26
27
  </PopoverPrimitive.Trigger>
27
- )
28
+ ),
28
29
  );
29
30
  PopoverTrigger.displayName = 'Popover.Trigger';
30
31
 
@@ -36,10 +37,15 @@ interface PopoverContentProps
36
37
  }
37
38
  const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentProps>(
38
39
  (props, forwardedRef) => {
39
- const { className, forceMount, container, ...contentProps } = extractProps(
40
- props,
41
- popoverContentPropDefs
42
- );
40
+ const themeContext = useThemeContext();
41
+ const panelBackground = props.panelBackground ?? themeContext.panelBackground;
42
+ const {
43
+ className,
44
+ forceMount,
45
+ container,
46
+ panelBackground: _,
47
+ ...contentProps
48
+ } = extractProps(props, popoverContentPropDefs);
43
49
  return (
44
50
  <PopoverPrimitive.Portal container={container} forceMount={forceMount}>
45
51
  <Theme asChild>
@@ -49,12 +55,13 @@ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentPro
49
55
  collisionPadding={10}
50
56
  {...contentProps}
51
57
  ref={forwardedRef}
58
+ data-panel-background={panelBackground}
52
59
  className={classNames('rt-PopperContent', 'rt-PopoverContent', className)}
53
60
  />
54
61
  </Theme>
55
62
  </PopoverPrimitive.Portal>
56
63
  );
57
- }
64
+ },
58
65
  );
59
66
  PopoverContent.displayName = 'Popover.Content';
60
67
 
@@ -66,7 +73,7 @@ const PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(
66
73
  <PopoverPrimitive.Close {...props} ref={forwardedRef} asChild>
67
74
  {requireReactElement(children)}
68
75
  </PopoverPrimitive.Close>
69
- )
76
+ ),
70
77
  );
71
78
  PopoverClose.displayName = 'Popover.Close';
72
79
 
@@ -76,7 +83,7 @@ interface PopoverAnchorProps
76
83
  const PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(
77
84
  ({ children, ...props }, forwardedRef) => (
78
85
  <PopoverPrimitive.Anchor {...props} ref={forwardedRef} />
79
- )
86
+ ),
80
87
  );
81
88
 
82
89
  PopoverAnchor.displayName = 'Popover.Anchor';