@kushagradhawan/kookie-ui 0.1.17 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +3730 -1072
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +3 -3
- package/dist/cjs/components/_internal/base-button.props.d.ts +9 -0
- package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-menu.props.d.ts +5 -0
- package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts +5 -0
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
- package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +3 -3
- package/dist/cjs/components/avatar.d.ts.map +1 -1
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +3 -3
- package/dist/cjs/components/avatar.props.d.ts +6 -1
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +3 -3
- package/dist/cjs/components/badge.d.ts.map +1 -1
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +3 -3
- package/dist/cjs/components/badge.props.d.ts +6 -1
- package/dist/cjs/components/badge.props.d.ts.map +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +2 -2
- package/dist/cjs/components/callout.d.ts.map +1 -1
- package/dist/cjs/components/callout.js +1 -1
- package/dist/cjs/components/callout.js.map +3 -3
- package/dist/cjs/components/callout.props.d.ts +5 -0
- package/dist/cjs/components/callout.props.d.ts.map +1 -1
- package/dist/cjs/components/callout.props.js +1 -1
- package/dist/cjs/components/callout.props.js.map +3 -3
- package/dist/cjs/components/card.d.ts.map +1 -1
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +3 -3
- package/dist/cjs/components/card.props.d.ts +11 -2
- package/dist/cjs/components/card.props.d.ts.map +1 -1
- package/dist/cjs/components/card.props.js +1 -1
- package/dist/cjs/components/card.props.js.map +3 -3
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +3 -3
- package/dist/cjs/components/dialog.d.ts.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +3 -3
- package/dist/cjs/components/dialog.props.d.ts +5 -0
- package/dist/cjs/components/dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/dialog.props.js +1 -1
- package/dist/cjs/components/dialog.props.js.map +3 -3
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +3 -3
- package/dist/cjs/components/image.d.ts +6 -1
- package/dist/cjs/components/image.d.ts.map +1 -1
- package/dist/cjs/components/image.js +1 -1
- package/dist/cjs/components/image.js.map +3 -3
- package/dist/cjs/components/popover.d.ts.map +1 -1
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +3 -3
- package/dist/cjs/components/popover.props.d.ts +5 -0
- package/dist/cjs/components/popover.props.d.ts.map +1 -1
- package/dist/cjs/components/popover.props.js +1 -1
- package/dist/cjs/components/popover.props.js.map +3 -3
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +3 -3
- package/dist/cjs/components/select.props.d.ts +6 -1
- package/dist/cjs/components/select.props.d.ts.map +1 -1
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +2 -2
- package/dist/cjs/components/sidebar.d.ts +13 -2
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +3 -3
- package/dist/cjs/components/sidebar.props.d.ts +5 -0
- package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.props.js +1 -1
- package/dist/cjs/components/sidebar.props.js.map +2 -2
- package/dist/cjs/components/tabs.d.ts.map +1 -1
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +3 -3
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +3 -3
- package/dist/cjs/components/text-area.props.d.ts +6 -1
- package/dist/cjs/components/text-area.props.d.ts.map +1 -1
- package/dist/cjs/components/text-area.props.js +1 -1
- package/dist/cjs/components/text-area.props.js.map +3 -3
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +3 -3
- package/dist/cjs/components/text-field.props.d.ts +6 -1
- package/dist/cjs/components/text-field.props.d.ts.map +1 -1
- package/dist/cjs/components/text-field.props.js +1 -1
- package/dist/cjs/components/text-field.props.js.map +3 -3
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +2 -2
- package/dist/cjs/helpers/map-prop-values.js +1 -1
- package/dist/cjs/helpers/map-prop-values.js.map +2 -2
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.js.map +3 -3
- package/dist/esm/components/_internal/base-button.props.d.ts +9 -0
- package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-button.props.js.map +3 -3
- package/dist/esm/components/_internal/base-menu.props.d.ts +5 -0
- package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
- package/dist/esm/components/_internal/base-tab-list.props.d.ts +5 -0
- package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js.map +3 -3
- package/dist/esm/components/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.js.map +3 -3
- package/dist/esm/components/avatar.d.ts.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.js.map +3 -3
- package/dist/esm/components/avatar.props.d.ts +6 -1
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/avatar.props.js.map +3 -3
- package/dist/esm/components/badge.d.ts.map +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.js.map +3 -3
- package/dist/esm/components/badge.props.d.ts +6 -1
- package/dist/esm/components/badge.props.d.ts.map +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/badge.props.js.map +2 -2
- package/dist/esm/components/callout.d.ts.map +1 -1
- package/dist/esm/components/callout.js +1 -1
- package/dist/esm/components/callout.js.map +3 -3
- package/dist/esm/components/callout.props.d.ts +5 -0
- package/dist/esm/components/callout.props.d.ts.map +1 -1
- package/dist/esm/components/callout.props.js +1 -1
- package/dist/esm/components/callout.props.js.map +3 -3
- package/dist/esm/components/card.d.ts.map +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.js.map +3 -3
- package/dist/esm/components/card.props.d.ts +11 -2
- package/dist/esm/components/card.props.d.ts.map +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/card.props.js.map +3 -3
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.js.map +3 -3
- package/dist/esm/components/dialog.d.ts.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.js.map +3 -3
- package/dist/esm/components/dialog.props.d.ts +5 -0
- package/dist/esm/components/dialog.props.d.ts.map +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dialog.props.js.map +3 -3
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.js.map +3 -3
- package/dist/esm/components/image.d.ts +6 -1
- package/dist/esm/components/image.d.ts.map +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/image.js.map +3 -3
- package/dist/esm/components/popover.d.ts.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.js.map +3 -3
- package/dist/esm/components/popover.props.d.ts +5 -0
- package/dist/esm/components/popover.props.d.ts.map +1 -1
- package/dist/esm/components/popover.props.js +1 -1
- package/dist/esm/components/popover.props.js.map +3 -3
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.js.map +3 -3
- package/dist/esm/components/select.props.d.ts +6 -1
- package/dist/esm/components/select.props.d.ts.map +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/select.props.js.map +2 -2
- package/dist/esm/components/sidebar.d.ts +13 -2
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.js.map +3 -3
- package/dist/esm/components/sidebar.props.d.ts +5 -0
- package/dist/esm/components/sidebar.props.d.ts.map +1 -1
- package/dist/esm/components/sidebar.props.js +1 -1
- package/dist/esm/components/sidebar.props.js.map +2 -2
- package/dist/esm/components/tabs.d.ts.map +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.js.map +3 -3
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.js.map +3 -3
- package/dist/esm/components/text-area.props.d.ts +6 -1
- package/dist/esm/components/text-area.props.d.ts.map +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-area.props.js.map +3 -3
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +2 -2
- package/dist/esm/components/text-field.js.map +3 -3
- package/dist/esm/components/text-field.props.d.ts +6 -1
- package/dist/esm/components/text-field.props.d.ts.map +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text-field.props.js.map +3 -3
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.js.map +2 -2
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/helpers/map-prop-values.js.map +2 -2
- package/package.json +1 -1
- package/src/components/_internal/base-button.css +518 -110
- package/src/components/_internal/base-button.props.ts +5 -0
- package/src/components/_internal/base-button.tsx +4 -0
- package/src/components/_internal/base-card.css +59 -11
- package/src/components/_internal/base-dialog.css +26 -9
- package/src/components/_internal/base-menu.css +192 -21
- package/src/components/_internal/base-menu.props.ts +7 -0
- package/src/components/_internal/base-tab-list.css +56 -5
- package/src/components/_internal/base-tab-list.props.ts +3 -0
- package/src/components/alert-dialog.tsx +22 -7
- package/src/components/animations.css +31 -0
- package/src/components/avatar.css +436 -9
- package/src/components/avatar.props.tsx +4 -1
- package/src/components/avatar.tsx +19 -6
- package/src/components/badge.css +222 -7
- package/src/components/badge.props.tsx +3 -1
- package/src/components/badge.tsx +3 -2
- package/src/components/button.css +17 -17
- package/src/components/callout.css +75 -6
- package/src/components/callout.props.tsx +3 -0
- package/src/components/callout.tsx +6 -5
- package/src/components/card.css +361 -44
- package/src/components/card.props.tsx +7 -2
- package/src/components/card.tsx +7 -1
- package/src/components/context-menu.tsx +47 -22
- package/src/components/dialog.props.tsx +3 -0
- package/src/components/dialog.tsx +22 -7
- package/src/components/dropdown-menu.css +10 -10
- package/src/components/dropdown-menu.tsx +37 -11
- package/src/components/icon-button.css +36 -8
- package/src/components/image.tsx +92 -73
- package/src/components/kbd.css +122 -54
- package/src/components/popover.css +22 -3
- package/src/components/popover.props.tsx +3 -0
- package/src/components/popover.tsx +15 -8
- package/src/components/select.css +386 -95
- package/src/components/select.props.tsx +7 -1
- package/src/components/select.tsx +21 -13
- package/src/components/sidebar.css +201 -86
- package/src/components/sidebar.props.tsx +15 -3
- package/src/components/sidebar.tsx +306 -235
- package/src/components/tabs.css +3 -1
- package/src/components/tabs.tsx +8 -3
- package/src/components/text-area.css +323 -32
- package/src/components/text-area.props.tsx +4 -1
- package/src/components/text-area.tsx +3 -2
- package/src/components/text-field.css +336 -15
- package/src/components/text-field.props.tsx +4 -1
- package/src/components/text-field.tsx +5 -7
- package/src/components/theme.tsx +11 -9
- package/src/helpers/map-prop-values.ts +1 -1
- package/src/styles/tokens/color.css +19 -5
- package/src/styles/tokens/constants.css +118 -0
- package/src/styles/tokens/index.css +1 -0
- package/src/styles/tokens/radius.css +9 -6
- package/src/styles/tokens/shadow.css +10 -10
- package/src/styles/tokens/transition.css +33 -1
- package/styles.css +3846 -1089
- package/tokens/base.css +51 -22
- package/tokens.css +133 -34
|
@@ -15,6 +15,7 @@ import { Theme, useThemeContext } from './theme.js';
|
|
|
15
15
|
import { ThickCheckIcon, ThickChevronRightIcon } from './icons.js';
|
|
16
16
|
import { extractProps } from '../helpers/extract-props.js';
|
|
17
17
|
import { requireReactElement } from '../helpers/require-react-element.js';
|
|
18
|
+
import { Kbd } from './kbd.js';
|
|
18
19
|
|
|
19
20
|
import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
|
|
20
21
|
import type { GetPropDefTypes } from '../props/prop-def.js';
|
|
@@ -34,7 +35,7 @@ const ContextMenuTrigger = React.forwardRef<ContextMenuTriggerElement, ContextMe
|
|
|
34
35
|
<ContextMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>
|
|
35
36
|
{requireReactElement(children)}
|
|
36
37
|
</ContextMenuPrimitive.Trigger>
|
|
37
|
-
)
|
|
38
|
+
),
|
|
38
39
|
);
|
|
39
40
|
ContextMenuTrigger.displayName = 'ContextMenu.Trigger';
|
|
40
41
|
|
|
@@ -54,17 +55,24 @@ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMe
|
|
|
54
55
|
size = contextMenuContentPropDefs.size.default,
|
|
55
56
|
variant = contextMenuContentPropDefs.variant.default,
|
|
56
57
|
highContrast = contextMenuContentPropDefs.highContrast.default,
|
|
58
|
+
panelBackground = props.panelBackground ?? themeContext.panelBackground,
|
|
57
59
|
} = props;
|
|
58
|
-
const {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const {
|
|
61
|
+
className,
|
|
62
|
+
children,
|
|
63
|
+
color,
|
|
64
|
+
container,
|
|
65
|
+
forceMount,
|
|
66
|
+
panelBackground: _,
|
|
67
|
+
...contentProps
|
|
68
|
+
} = extractProps(props, contextMenuContentPropDefs);
|
|
62
69
|
const resolvedColor = color || themeContext.accentColor;
|
|
63
70
|
return (
|
|
64
71
|
<ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>
|
|
65
72
|
<Theme asChild>
|
|
66
73
|
<ContextMenuPrimitive.Content
|
|
67
74
|
data-accent-color={resolvedColor}
|
|
75
|
+
data-panel-background={panelBackground}
|
|
68
76
|
alignOffset={-Number(size) * 4}
|
|
69
77
|
collisionPadding={10}
|
|
70
78
|
{...contentProps}
|
|
@@ -74,15 +82,15 @@ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMe
|
|
|
74
82
|
'rt-PopperContent',
|
|
75
83
|
'rt-BaseMenuContent',
|
|
76
84
|
'rt-ContextMenuContent',
|
|
77
|
-
className
|
|
85
|
+
className,
|
|
78
86
|
)}
|
|
79
87
|
>
|
|
80
88
|
<ScrollArea type="auto">
|
|
81
89
|
<div className={classNames('rt-BaseMenuViewport', 'rt-ContextMenuViewport')}>
|
|
82
90
|
<ContextMenuContentContext.Provider
|
|
83
91
|
value={React.useMemo(
|
|
84
|
-
() => ({ size, variant, color: resolvedColor, highContrast }),
|
|
85
|
-
[size, variant, resolvedColor, highContrast]
|
|
92
|
+
() => ({ size, variant, color: resolvedColor, highContrast, panelBackground }),
|
|
93
|
+
[size, variant, resolvedColor, highContrast, panelBackground],
|
|
86
94
|
)}
|
|
87
95
|
>
|
|
88
96
|
{children}
|
|
@@ -93,7 +101,7 @@ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMe
|
|
|
93
101
|
</Theme>
|
|
94
102
|
</ContextMenuPrimitive.Portal>
|
|
95
103
|
);
|
|
96
|
-
}
|
|
104
|
+
},
|
|
97
105
|
);
|
|
98
106
|
ContextMenuContent.displayName = 'ContextMenu.Content';
|
|
99
107
|
|
|
@@ -108,7 +116,7 @@ const ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLa
|
|
|
108
116
|
ref={forwardedRef}
|
|
109
117
|
className={classNames('rt-BaseMenuLabel', 'rt-ContextMenuLabel', className)}
|
|
110
118
|
/>
|
|
111
|
-
)
|
|
119
|
+
),
|
|
112
120
|
);
|
|
113
121
|
ContextMenuLabel.displayName = 'ContextMenu.Label';
|
|
114
122
|
|
|
@@ -134,10 +142,14 @@ const ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItem
|
|
|
134
142
|
className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-ContextMenuItem', className)}
|
|
135
143
|
>
|
|
136
144
|
<Slot.Slottable>{children}</Slot.Slottable>
|
|
137
|
-
{shortcut &&
|
|
145
|
+
{shortcut && (
|
|
146
|
+
<div className="rt-BaseMenuShortcut rt-ContextMenuShortcut">
|
|
147
|
+
<Kbd size="1">{shortcut}</Kbd>
|
|
148
|
+
</div>
|
|
149
|
+
)}
|
|
138
150
|
</ContextMenuPrimitive.Item>
|
|
139
151
|
);
|
|
140
|
-
}
|
|
152
|
+
},
|
|
141
153
|
);
|
|
142
154
|
ContextMenuItem.displayName = 'ContextMenu.Item';
|
|
143
155
|
|
|
@@ -152,7 +164,7 @@ const ContextMenuGroup = React.forwardRef<ContextMenuGroupElement, ContextMenuGr
|
|
|
152
164
|
ref={forwardedRef}
|
|
153
165
|
className={classNames('rt-BaseMenuGroup', 'rt-ContextMenuGroup', className)}
|
|
154
166
|
/>
|
|
155
|
-
)
|
|
167
|
+
),
|
|
156
168
|
);
|
|
157
169
|
ContextMenuGroup.displayName = 'ContextMenu.Group';
|
|
158
170
|
|
|
@@ -198,7 +210,7 @@ const ContextMenuRadioItem = React.forwardRef<
|
|
|
198
210
|
'rt-BaseMenuRadioItem',
|
|
199
211
|
'rt-ContextMenuItem',
|
|
200
212
|
'rt-ContextMenuRadioItem',
|
|
201
|
-
className
|
|
213
|
+
className,
|
|
202
214
|
)}
|
|
203
215
|
>
|
|
204
216
|
<Slot.Slottable>{children}</Slot.Slottable>
|
|
@@ -237,14 +249,18 @@ const ContextMenuCheckboxItem = React.forwardRef<
|
|
|
237
249
|
'rt-BaseMenuCheckboxItem',
|
|
238
250
|
'rt-ContextMenuItem',
|
|
239
251
|
'rt-ContextMenuCheckboxItem',
|
|
240
|
-
className
|
|
252
|
+
className,
|
|
241
253
|
)}
|
|
242
254
|
>
|
|
243
255
|
<Slot.Slottable>{children}</Slot.Slottable>
|
|
244
256
|
<ContextMenuPrimitive.ItemIndicator className="rt-BaseMenuItemIndicator rt-ContextMenuItemIndicator">
|
|
245
257
|
<ThickCheckIcon className="rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon" />
|
|
246
258
|
</ContextMenuPrimitive.ItemIndicator>
|
|
247
|
-
{shortcut &&
|
|
259
|
+
{shortcut && (
|
|
260
|
+
<div className="rt-BaseMenuShortcut rt-ContextMenuShortcut">
|
|
261
|
+
<Kbd size="1">{shortcut}</Kbd>
|
|
262
|
+
</div>
|
|
263
|
+
)}
|
|
248
264
|
</ContextMenuPrimitive.CheckboxItem>
|
|
249
265
|
);
|
|
250
266
|
});
|
|
@@ -275,7 +291,7 @@ const ContextMenuSubTrigger = React.forwardRef<
|
|
|
275
291
|
'rt-BaseMenuSubTrigger',
|
|
276
292
|
'rt-ContextMenuItem',
|
|
277
293
|
'rt-ContextMenuSubTrigger',
|
|
278
|
-
className
|
|
294
|
+
className,
|
|
279
295
|
)}
|
|
280
296
|
>
|
|
281
297
|
{children}
|
|
@@ -296,16 +312,25 @@ const ContextMenuSubContent = React.forwardRef<
|
|
|
296
312
|
ContextMenuSubContentElement,
|
|
297
313
|
ContextMenuSubContentProps
|
|
298
314
|
>((props, forwardedRef) => {
|
|
299
|
-
const { size, variant, color, highContrast } =
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
315
|
+
const { size, variant, color, highContrast, panelBackground } =
|
|
316
|
+
React.useContext(ContextMenuContentContext);
|
|
317
|
+
const {
|
|
318
|
+
className,
|
|
319
|
+
children,
|
|
320
|
+
container,
|
|
321
|
+
forceMount,
|
|
322
|
+
panelBackground: _,
|
|
323
|
+
...subContentProps
|
|
324
|
+
} = extractProps(
|
|
325
|
+
{ size, variant, color, highContrast, panelBackground, ...props },
|
|
326
|
+
contextMenuContentPropDefs,
|
|
303
327
|
);
|
|
304
328
|
return (
|
|
305
329
|
<ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>
|
|
306
330
|
<Theme asChild>
|
|
307
331
|
<ContextMenuPrimitive.SubContent
|
|
308
332
|
data-accent-color={color}
|
|
333
|
+
data-panel-background={panelBackground}
|
|
309
334
|
alignOffset={-Number(size) * 4}
|
|
310
335
|
// Side offset accounts for the outer solid box-shadow
|
|
311
336
|
sideOffset={1}
|
|
@@ -319,7 +344,7 @@ const ContextMenuSubContent = React.forwardRef<
|
|
|
319
344
|
'rt-BaseMenuSubContent',
|
|
320
345
|
'rt-ContextMenuContent',
|
|
321
346
|
'rt-ContextMenuSubContent',
|
|
322
|
-
className
|
|
347
|
+
className,
|
|
323
348
|
)}
|
|
324
349
|
>
|
|
325
350
|
<ScrollArea type="auto">
|
|
@@ -7,6 +7,7 @@ import type { PropDef, GetPropDefTypes } from '../props/prop-def.js';
|
|
|
7
7
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
8
|
const alignValues = ['start', 'center'] as const;
|
|
9
9
|
const contentSizes = ['1', '2', '3', '4'] as const;
|
|
10
|
+
const panelBackgrounds = ['solid', 'translucent'] as const;
|
|
10
11
|
|
|
11
12
|
const dialogContentPropDefs = {
|
|
12
13
|
...asChildPropDef,
|
|
@@ -23,6 +24,7 @@ const dialogContentPropDefs = {
|
|
|
23
24
|
default: '3',
|
|
24
25
|
responsive: true,
|
|
25
26
|
},
|
|
27
|
+
panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
|
|
26
28
|
width: widthPropDefs.width,
|
|
27
29
|
minWidth: widthPropDefs.minWidth,
|
|
28
30
|
maxWidth: { ...widthPropDefs.maxWidth, default: '600px' },
|
|
@@ -30,6 +32,7 @@ const dialogContentPropDefs = {
|
|
|
30
32
|
} satisfies {
|
|
31
33
|
align: PropDef<(typeof alignValues)[number]>;
|
|
32
34
|
size: PropDef<(typeof contentSizes)[number]>;
|
|
35
|
+
panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
|
|
33
36
|
width: PropDef<string>;
|
|
34
37
|
minWidth: PropDef<string>;
|
|
35
38
|
maxWidth: PropDef<string>;
|
|
@@ -28,7 +28,7 @@ const DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>
|
|
|
28
28
|
<DialogPrimitive.Trigger {...props} ref={forwardedRef} asChild>
|
|
29
29
|
{requireReactElement(children)}
|
|
30
30
|
</DialogPrimitive.Trigger>
|
|
31
|
-
)
|
|
31
|
+
),
|
|
32
32
|
);
|
|
33
33
|
DialogTrigger.displayName = 'Dialog.Trigger';
|
|
34
34
|
|
|
@@ -40,9 +40,23 @@ interface DialogContentProps
|
|
|
40
40
|
}
|
|
41
41
|
const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(
|
|
42
42
|
({ align, ...props }, forwardedRef) => {
|
|
43
|
-
const {
|
|
43
|
+
const {
|
|
44
|
+
align: alignPropDef,
|
|
45
|
+
panelBackground: panelBackgroundPropDef,
|
|
46
|
+
...propDefs
|
|
47
|
+
} = dialogContentPropDefs;
|
|
44
48
|
const { className: alignClassName } = extractProps({ align }, { align: alignPropDef });
|
|
45
|
-
const {
|
|
49
|
+
const { panelBackground } = extractProps(
|
|
50
|
+
{ panelBackground: props.panelBackground },
|
|
51
|
+
{ panelBackground: panelBackgroundPropDef },
|
|
52
|
+
);
|
|
53
|
+
const {
|
|
54
|
+
className,
|
|
55
|
+
forceMount,
|
|
56
|
+
container,
|
|
57
|
+
panelBackground: _,
|
|
58
|
+
...contentProps
|
|
59
|
+
} = extractProps(props, propDefs);
|
|
46
60
|
return (
|
|
47
61
|
<DialogPrimitive.Portal container={container} forceMount={forceMount}>
|
|
48
62
|
<Theme asChild>
|
|
@@ -55,6 +69,7 @@ const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>
|
|
|
55
69
|
{...contentProps}
|
|
56
70
|
ref={forwardedRef}
|
|
57
71
|
className={classNames('rt-BaseDialogContent', 'rt-DialogContent', className)}
|
|
72
|
+
data-panel-background={panelBackground}
|
|
58
73
|
/>
|
|
59
74
|
</div>
|
|
60
75
|
</div>
|
|
@@ -62,7 +77,7 @@ const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>
|
|
|
62
77
|
</Theme>
|
|
63
78
|
</DialogPrimitive.Portal>
|
|
64
79
|
);
|
|
65
|
-
}
|
|
80
|
+
},
|
|
66
81
|
);
|
|
67
82
|
DialogContent.displayName = 'Dialog.Content';
|
|
68
83
|
|
|
@@ -73,7 +88,7 @@ const DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(
|
|
|
73
88
|
<DialogPrimitive.Title asChild>
|
|
74
89
|
<Heading size="5" mb="3" trim="start" {...props} asChild={false} ref={forwardedRef} />
|
|
75
90
|
</DialogPrimitive.Title>
|
|
76
|
-
)
|
|
91
|
+
),
|
|
77
92
|
);
|
|
78
93
|
DialogTitle.displayName = 'Dialog.Title';
|
|
79
94
|
|
|
@@ -84,7 +99,7 @@ const DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescr
|
|
|
84
99
|
<DialogPrimitive.Description asChild>
|
|
85
100
|
<Text as="p" size="3" {...props} asChild={false} ref={forwardedRef} />
|
|
86
101
|
</DialogPrimitive.Description>
|
|
87
|
-
)
|
|
102
|
+
),
|
|
88
103
|
);
|
|
89
104
|
DialogDescription.displayName = 'Dialog.Description';
|
|
90
105
|
|
|
@@ -96,7 +111,7 @@ const DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(
|
|
|
96
111
|
<DialogPrimitive.Close {...props} ref={forwardedRef} asChild>
|
|
97
112
|
{requireReactElement(children)}
|
|
98
113
|
</DialogPrimitive.Close>
|
|
99
|
-
)
|
|
114
|
+
),
|
|
100
115
|
);
|
|
101
116
|
DialogClose.displayName = 'Dialog.Close';
|
|
102
117
|
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
flex-shrink: 0;
|
|
10
10
|
|
|
11
11
|
/* Default size for when not in a sized button */
|
|
12
|
-
width:
|
|
13
|
-
height:
|
|
12
|
+
width: var(--trigger-icon-size-default);
|
|
13
|
+
height: var(--trigger-icon-size-default);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/***************************************************************************************************
|
|
@@ -22,25 +22,25 @@
|
|
|
22
22
|
@breakpoints {
|
|
23
23
|
/* Size 1 Button */
|
|
24
24
|
.rt-Button:where(.rt-r-size-1) :where(.rt-DropdownMenuTriggerIcon) {
|
|
25
|
-
width:
|
|
26
|
-
height:
|
|
25
|
+
width: var(--trigger-icon-size-1);
|
|
26
|
+
height: var(--trigger-icon-size-1);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/* Size 2 Button */
|
|
30
30
|
.rt-Button:where(.rt-r-size-2) :where(.rt-DropdownMenuTriggerIcon) {
|
|
31
|
-
width:
|
|
32
|
-
height:
|
|
31
|
+
width: var(--trigger-icon-size-2);
|
|
32
|
+
height: var(--trigger-icon-size-2);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/* Size 3 Button */
|
|
36
36
|
.rt-Button:where(.rt-r-size-3) :where(.rt-DropdownMenuTriggerIcon) {
|
|
37
|
-
width:
|
|
38
|
-
height:
|
|
37
|
+
width: var(--trigger-icon-size-3);
|
|
38
|
+
height: var(--trigger-icon-size-3);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/* Size 4 Button */
|
|
42
42
|
.rt-Button:where(.rt-r-size-4) :where(.rt-DropdownMenuTriggerIcon) {
|
|
43
|
-
width:
|
|
44
|
-
height:
|
|
43
|
+
width: var(--trigger-icon-size-4);
|
|
44
|
+
height: var(--trigger-icon-size-4);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -15,6 +15,7 @@ import { Theme, useThemeContext } from './theme.js';
|
|
|
15
15
|
import { ChevronDownIcon, ThickCheckIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';
|
|
16
16
|
import { extractProps } from '../helpers/extract-props.js';
|
|
17
17
|
import { requireReactElement } from '../helpers/require-react-element.js';
|
|
18
|
+
import { Kbd } from './kbd.js';
|
|
18
19
|
|
|
19
20
|
import type { IconProps } from './icons.js';
|
|
20
21
|
import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
|
|
@@ -55,17 +56,24 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
|
|
|
55
56
|
size = dropdownMenuContentPropDefs.size.default,
|
|
56
57
|
variant = dropdownMenuContentPropDefs.variant.default,
|
|
57
58
|
highContrast = dropdownMenuContentPropDefs.highContrast.default,
|
|
59
|
+
panelBackground = props.panelBackground ?? themeContext.panelBackground,
|
|
58
60
|
} = props;
|
|
59
|
-
const {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
const {
|
|
62
|
+
className,
|
|
63
|
+
children,
|
|
64
|
+
color,
|
|
65
|
+
container,
|
|
66
|
+
forceMount,
|
|
67
|
+
panelBackground: _,
|
|
68
|
+
...contentProps
|
|
69
|
+
} = extractProps(props, dropdownMenuContentPropDefs);
|
|
63
70
|
const resolvedColor = color || themeContext.accentColor;
|
|
64
71
|
return (
|
|
65
72
|
<DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>
|
|
66
73
|
<Theme asChild>
|
|
67
74
|
<DropdownMenuPrimitive.Content
|
|
68
75
|
data-accent-color={resolvedColor}
|
|
76
|
+
data-panel-background={panelBackground}
|
|
69
77
|
align="start"
|
|
70
78
|
sideOffset={4}
|
|
71
79
|
collisionPadding={10}
|
|
@@ -83,8 +91,8 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
|
|
|
83
91
|
<div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>
|
|
84
92
|
<DropdownMenuContentContext.Provider
|
|
85
93
|
value={React.useMemo(
|
|
86
|
-
() => ({ size, variant, color: resolvedColor, highContrast }),
|
|
87
|
-
[size, variant, resolvedColor, highContrast],
|
|
94
|
+
() => ({ size, variant, color: resolvedColor, highContrast, panelBackground }),
|
|
95
|
+
[size, variant, resolvedColor, highContrast, panelBackground],
|
|
88
96
|
)}
|
|
89
97
|
>
|
|
90
98
|
{children}
|
|
@@ -136,7 +144,11 @@ const DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuI
|
|
|
136
144
|
className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-DropdownMenuItem', className)}
|
|
137
145
|
>
|
|
138
146
|
<Slot.Slottable>{children}</Slot.Slottable>
|
|
139
|
-
{shortcut &&
|
|
147
|
+
{shortcut && (
|
|
148
|
+
<div className="rt-BaseMenuShortcut rt-DropdownMenuShortcut">
|
|
149
|
+
<Kbd size="1">{shortcut}</Kbd>
|
|
150
|
+
</div>
|
|
151
|
+
)}
|
|
140
152
|
</DropdownMenuPrimitive.Item>
|
|
141
153
|
);
|
|
142
154
|
},
|
|
@@ -246,7 +258,11 @@ const DropdownMenuCheckboxItem = React.forwardRef<
|
|
|
246
258
|
<DropdownMenuPrimitive.ItemIndicator className="rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator">
|
|
247
259
|
<ThickCheckIcon className="rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon" />
|
|
248
260
|
</DropdownMenuPrimitive.ItemIndicator>
|
|
249
|
-
{shortcut &&
|
|
261
|
+
{shortcut && (
|
|
262
|
+
<div className="rt-BaseMenuShortcut rt-DropdownMenuShortcut">
|
|
263
|
+
<Kbd size="1">{shortcut}</Kbd>
|
|
264
|
+
</div>
|
|
265
|
+
)}
|
|
250
266
|
</DropdownMenuPrimitive.CheckboxItem>
|
|
251
267
|
);
|
|
252
268
|
});
|
|
@@ -298,9 +314,18 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
298
314
|
DropdownMenuSubContentElement,
|
|
299
315
|
DropdownMenuSubContentProps
|
|
300
316
|
>((props, forwardedRef) => {
|
|
301
|
-
const { size, variant, color, highContrast } = React.useContext(
|
|
302
|
-
|
|
303
|
-
|
|
317
|
+
const { size, variant, color, highContrast, panelBackground } = React.useContext(
|
|
318
|
+
DropdownMenuContentContext,
|
|
319
|
+
);
|
|
320
|
+
const {
|
|
321
|
+
className,
|
|
322
|
+
children,
|
|
323
|
+
container,
|
|
324
|
+
forceMount,
|
|
325
|
+
panelBackground: _,
|
|
326
|
+
...subContentProps
|
|
327
|
+
} = extractProps(
|
|
328
|
+
{ size, variant, color, highContrast, panelBackground, ...props },
|
|
304
329
|
dropdownMenuContentPropDefs,
|
|
305
330
|
);
|
|
306
331
|
return (
|
|
@@ -308,6 +333,7 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
308
333
|
<Theme asChild>
|
|
309
334
|
<DropdownMenuPrimitive.SubContent
|
|
310
335
|
data-accent-color={color}
|
|
336
|
+
data-panel-background={panelBackground}
|
|
311
337
|
alignOffset={-Number(size) * 4}
|
|
312
338
|
// Side offset accounts for the outer solid box-shadow
|
|
313
339
|
sideOffset={1}
|
|
@@ -16,34 +16,62 @@
|
|
|
16
16
|
&:where(.rt-r-size-1) {
|
|
17
17
|
/* stylelint-disable-next-line selector-max-type */
|
|
18
18
|
& :where(svg) {
|
|
19
|
-
width:
|
|
20
|
-
height:
|
|
19
|
+
width: var(--content-icon-size-1);
|
|
20
|
+
height: var(--content-icon-size-1);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
&:where(.rt-r-size-2) {
|
|
24
24
|
/* stylelint-disable-next-line selector-max-type */
|
|
25
25
|
& :where(svg) {
|
|
26
|
-
width: var(--
|
|
27
|
-
height: var(--
|
|
26
|
+
width: var(--content-icon-size-2);
|
|
27
|
+
height: var(--content-icon-size-2);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
&:where(.rt-r-size-3) {
|
|
31
31
|
/* stylelint-disable-next-line selector-max-type */
|
|
32
32
|
& :where(svg) {
|
|
33
|
-
width: var(--
|
|
34
|
-
height: var(--
|
|
33
|
+
width: var(--content-icon-size-3);
|
|
34
|
+
height: var(--content-icon-size-3);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
&:where(.rt-r-size-4) {
|
|
38
38
|
/* stylelint-disable-next-line selector-max-type */
|
|
39
39
|
& :where(svg) {
|
|
40
|
-
width: var(--
|
|
41
|
-
height: var(--
|
|
40
|
+
width: var(--content-icon-size-4);
|
|
41
|
+
height: var(--content-icon-size-4);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.rt-IconButton:where(.rt-variant-ghost) {
|
|
47
|
+
&:where([data-flush='true']) {
|
|
48
|
+
/* We reset the defined margin variables to avoid inheriting them from a higher component */
|
|
49
|
+
/* If a margin IS defined on the component itself, the utility class will win and reset it */
|
|
50
|
+
--margin-top: 0px;
|
|
51
|
+
--margin-right: 0px;
|
|
52
|
+
--margin-bottom: 0px;
|
|
53
|
+
--margin-left: 0px;
|
|
54
|
+
|
|
55
|
+
/* Define the overrides to incorporate the negative margins using ghost padding */
|
|
56
|
+
--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));
|
|
57
|
+
--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));
|
|
58
|
+
--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));
|
|
59
|
+
--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));
|
|
60
|
+
|
|
61
|
+
margin-top: var(--margin-top-override);
|
|
62
|
+
margin-right: var(--margin-right-override);
|
|
63
|
+
margin-bottom: var(--margin-bottom-override);
|
|
64
|
+
margin-left: var(--margin-left-override);
|
|
65
|
+
|
|
66
|
+
/* Reset the overrides on direct children */
|
|
67
|
+
:where(&) > * {
|
|
68
|
+
--margin-top-override: initial;
|
|
69
|
+
--margin-right-override: initial;
|
|
70
|
+
--margin-bottom-override: initial;
|
|
71
|
+
--margin-left-override: initial;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
47
75
|
&:where(.rt-r-size-1) {
|
|
48
76
|
--icon-button-ghost-padding: var(--space-1);
|
|
49
77
|
}
|