raft-ui 0.0.6 → 0.0.7

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 (131) hide show
  1. package/CHANGELOG.md +2 -8
  2. package/{src → dist}/styles.css +0 -2
  3. package/package.json +3 -4
  4. package/src/components/alert-dialog/alert-dialog.tsx +0 -215
  5. package/src/components/alert-dialog/index.ts +0 -30
  6. package/src/components/avatar/avatar.tsx +0 -375
  7. package/src/components/avatar/index.ts +0 -17
  8. package/src/components/badge/badge.tsx +0 -393
  9. package/src/components/badge/index.ts +0 -2
  10. package/src/components/banner/banner.tsx +0 -269
  11. package/src/components/banner/index.ts +0 -8
  12. package/src/components/bottom-sheet/bottom-sheet.tsx +0 -152
  13. package/src/components/bottom-sheet/index.ts +0 -22
  14. package/src/components/button/button.tsx +0 -499
  15. package/src/components/button/index.ts +0 -2
  16. package/src/components/checkbox/checkbox-indicator.tsx +0 -128
  17. package/src/components/checkbox/checkbox.tsx +0 -350
  18. package/src/components/checkbox/index.ts +0 -2
  19. package/src/components/combobox/combobox.tsx +0 -603
  20. package/src/components/combobox/index.ts +0 -52
  21. package/src/components/context-menu/context-menu.tsx +0 -380
  22. package/src/components/context-menu/index.ts +0 -34
  23. package/src/components/conversation-preview-card/conversation-preview-card.tsx +0 -336
  24. package/src/components/conversation-preview-card/index.ts +0 -32
  25. package/src/components/description-list/description-list.tsx +0 -116
  26. package/src/components/description-list/index.ts +0 -14
  27. package/src/components/dialog/dialog.tsx +0 -152
  28. package/src/components/dialog/index.ts +0 -26
  29. package/src/components/dropdown-menu/dropdown-menu.tsx +0 -405
  30. package/src/components/dropdown-menu/index.ts +0 -38
  31. package/src/components/empty-state/empty-state.tsx +0 -177
  32. package/src/components/empty-state/index.ts +0 -16
  33. package/src/components/field/field.tsx +0 -125
  34. package/src/components/field/index.ts +0 -18
  35. package/src/components/inline-code/index.ts +0 -2
  36. package/src/components/inline-code/inline-code.tsx +0 -35
  37. package/src/components/input/index.ts +0 -2
  38. package/src/components/input/input.tsx +0 -76
  39. package/src/components/input-group/index.ts +0 -7
  40. package/src/components/input-group/input-group.tsx +0 -215
  41. package/src/components/kbd/index.ts +0 -2
  42. package/src/components/kbd/kbd.tsx +0 -43
  43. package/src/components/label/index.ts +0 -2
  44. package/src/components/label/label.tsx +0 -99
  45. package/src/components/lightbox/index.ts +0 -24
  46. package/src/components/lightbox/lightbox.tsx +0 -245
  47. package/src/components/list-item/index.ts +0 -20
  48. package/src/components/list-item/list-item.tsx +0 -263
  49. package/src/components/media-list-item/index.ts +0 -20
  50. package/src/components/media-list-item/media-list-item.tsx +0 -169
  51. package/src/components/notification-center/index.ts +0 -39
  52. package/src/components/notification-center/notification-center.tsx +0 -558
  53. package/src/components/panel-header/index.ts +0 -22
  54. package/src/components/panel-header/panel-header.tsx +0 -199
  55. package/src/components/popover/index.ts +0 -30
  56. package/src/components/popover/popover.tsx +0 -248
  57. package/src/components/preview-shell/index.ts +0 -2
  58. package/src/components/preview-shell/preview-shell.tsx +0 -51
  59. package/src/components/quoted-message-card/index.ts +0 -36
  60. package/src/components/quoted-message-card/quoted-message-card.tsx +0 -391
  61. package/src/components/radio-group/index.ts +0 -2
  62. package/src/components/radio-group/radio-group.tsx +0 -119
  63. package/src/components/section-header/index.ts +0 -16
  64. package/src/components/section-header/section-header.tsx +0 -117
  65. package/src/components/section-label/index.ts +0 -2
  66. package/src/components/section-label/section-label.tsx +0 -38
  67. package/src/components/segmented-control/index.ts +0 -12
  68. package/src/components/segmented-control/segmented-control.tsx +0 -129
  69. package/src/components/select/index.ts +0 -40
  70. package/src/components/select/select.tsx +0 -382
  71. package/src/components/separator/index.ts +0 -2
  72. package/src/components/separator/separator.tsx +0 -40
  73. package/src/components/spinner/index.ts +0 -2
  74. package/src/components/spinner/spinner.tsx +0 -228
  75. package/src/components/status/index.ts +0 -2
  76. package/src/components/status/status.tsx +0 -152
  77. package/src/components/tabs/index.ts +0 -24
  78. package/src/components/tabs/tabs.tsx +0 -451
  79. package/src/components/text/index.ts +0 -2
  80. package/src/components/text/text.tsx +0 -131
  81. package/src/components/textarea/index.ts +0 -2
  82. package/src/components/textarea/textarea.tsx +0 -136
  83. package/src/components/toggle-group/index.ts +0 -7
  84. package/src/components/toggle-group/toggle-group.tsx +0 -111
  85. package/src/components/tooltip/index.ts +0 -8
  86. package/src/components/tooltip/tooltip.tsx +0 -212
  87. package/src/index.ts +0 -429
  88. package/src/legacy/AttentionDot.tsx +0 -28
  89. package/src/legacy/AvatarListRow.tsx +0 -87
  90. package/src/legacy/AvatarSlot.tsx +0 -157
  91. package/src/legacy/Badge.tsx +0 -95
  92. package/src/legacy/Banner.tsx +0 -74
  93. package/src/legacy/BottomSheet.tsx +0 -76
  94. package/src/legacy/CheckMarker.tsx +0 -72
  95. package/src/legacy/Checkbox.tsx +0 -81
  96. package/src/legacy/ConversationPreviewCard.tsx +0 -169
  97. package/src/legacy/DismissBackdrop.tsx +0 -68
  98. package/src/legacy/EmptyState.tsx +0 -63
  99. package/src/legacy/ExperimentalBadge.tsx +0 -19
  100. package/src/legacy/FormField.tsx +0 -106
  101. package/src/legacy/KeyValueRow.tsx +0 -67
  102. package/src/legacy/Lightbox.tsx +0 -119
  103. package/src/legacy/NotificationCenter.tsx +0 -217
  104. package/src/legacy/PanelHeader.tsx +0 -94
  105. package/src/legacy/PreviewShell.tsx +0 -40
  106. package/src/legacy/QuotedMessageCard.tsx +0 -181
  107. package/src/legacy/ReorderablePanelTabs.tsx +0 -156
  108. package/src/legacy/SandboxedPreviewFrame.tsx +0 -59
  109. package/src/legacy/SearchInput.tsx +0 -23
  110. package/src/legacy/SectionEyebrow.tsx +0 -60
  111. package/src/legacy/SectionHeader.tsx +0 -68
  112. package/src/legacy/SegmentedControl.tsx +0 -74
  113. package/src/legacy/SlugInput.tsx +0 -29
  114. package/src/legacy/Spinner.tsx +0 -89
  115. package/src/legacy/StatusDot.tsx +0 -51
  116. package/src/legacy/SurfaceListItem.tsx +0 -32
  117. package/src/legacy/Textarea.tsx +0 -137
  118. package/src/legacy/button.tsx +0 -100
  119. package/src/legacy/context-menu-divider.tsx +0 -12
  120. package/src/legacy/menu-item.tsx +0 -66
  121. package/src/legacy/selection-popover.tsx +0 -212
  122. package/src/legacy/server-switcher-menu.tsx +0 -203
  123. package/src/legacy/source.css +0 -240
  124. package/src/lib/cn.ts +0 -1
  125. package/src/lib/styled-props.ts +0 -11
  126. package/src/lib/theme/theme-context.ts +0 -28
  127. package/src/lib/theme/theme-provider.tsx +0 -181
  128. package/src/lib/theme/use-theme.ts +0 -12
  129. package/src/lib/tv.ts +0 -29
  130. package/src/lib/without-children.ts +0 -6
  131. package/src/wip.ts +0 -291
@@ -1,199 +0,0 @@
1
- import { mergeProps } from "@base-ui/react/merge-props";
2
- import { useRender } from "@base-ui/react/use-render";
3
- import { tv } from "../../lib/tv";
4
- import { useThemeFamily } from "../../lib/theme/use-theme";
5
-
6
- const panelHeader = tv({
7
- slots: {
8
- root: ["flex h-[62px] items-center gap-3 px-5", "[@media(max-height:600px)]:h-12"],
9
- icon: [
10
- "hidden size-9 shrink-0 items-center justify-center border-2 md:flex",
11
- "[&_svg]:size-[18px]",
12
- ],
13
- visual: ["hidden shrink-0 md:flex"],
14
- content: ["min-w-0 flex-1"],
15
- titleRow: ["flex min-w-0 items-center gap-2"],
16
- title: ["truncate text-base font-bold leading-tight"],
17
- suffix: ["shrink-0"],
18
- subtitle: ["truncate font-mono text-xs"],
19
- actions: ["flex shrink-0 items-center gap-1.5"],
20
- },
21
- variants: {
22
- theme: {
23
- brutal: {
24
- root: "border-b-2 border-line-strong bg-layer-panel",
25
- icon: "border-line-strong",
26
- title: "text-foreground-strong",
27
- subtitle: "text-foreground/50",
28
- },
29
- // Elegant styling is deferred; see the component TODO.
30
- elegant: {},
31
- },
32
- },
33
- });
34
-
35
- export type PanelHeaderProps = useRender.ComponentProps<"div">;
36
-
37
- export function PanelHeader({ className, render, ...props }: PanelHeaderProps) {
38
- const theme = useThemeFamily();
39
- const { root } = panelHeader({ theme });
40
- const defaultProps: useRender.ElementProps<"div"> = {
41
- className: root({ className }),
42
- };
43
-
44
- return useRender({
45
- defaultTagName: "div",
46
- render,
47
- props: mergeProps<"div">(defaultProps, props),
48
- state: {
49
- slot: "panel-header",
50
- },
51
- });
52
- }
53
-
54
- export type PanelHeaderIconProps = useRender.ComponentProps<"div">;
55
-
56
- export function PanelHeaderIcon({ className, render, ...props }: PanelHeaderIconProps) {
57
- const theme = useThemeFamily();
58
- const { icon } = panelHeader({ theme });
59
- const defaultProps: useRender.ElementProps<"div"> = {
60
- className: icon({ className }),
61
- };
62
-
63
- return useRender({
64
- defaultTagName: "div",
65
- render,
66
- props: mergeProps<"div">(defaultProps, props),
67
- state: {
68
- slot: "panel-header-icon",
69
- },
70
- });
71
- }
72
-
73
- export type PanelHeaderVisualProps = useRender.ComponentProps<"div">;
74
-
75
- export function PanelHeaderVisual({ className, render, ...props }: PanelHeaderVisualProps) {
76
- const { visual } = panelHeader();
77
- const defaultProps: useRender.ElementProps<"div"> = {
78
- className: visual({ className }),
79
- };
80
-
81
- return useRender({
82
- defaultTagName: "div",
83
- render,
84
- props: mergeProps<"div">(defaultProps, props),
85
- state: {
86
- slot: "panel-header-visual",
87
- },
88
- });
89
- }
90
-
91
- export type PanelHeaderContentProps = useRender.ComponentProps<"div">;
92
-
93
- export function PanelHeaderContent({ className, render, ...props }: PanelHeaderContentProps) {
94
- const { content } = panelHeader();
95
- const defaultProps: useRender.ElementProps<"div"> = {
96
- className: content({ className }),
97
- };
98
-
99
- return useRender({
100
- defaultTagName: "div",
101
- render,
102
- props: mergeProps<"div">(defaultProps, props),
103
- state: {
104
- slot: "panel-header-content",
105
- },
106
- });
107
- }
108
-
109
- export type PanelHeaderTitleRowProps = useRender.ComponentProps<"div">;
110
-
111
- export function PanelHeaderTitleRow({ className, render, ...props }: PanelHeaderTitleRowProps) {
112
- const { titleRow } = panelHeader();
113
- const defaultProps: useRender.ElementProps<"div"> = {
114
- className: titleRow({ className }),
115
- };
116
-
117
- return useRender({
118
- defaultTagName: "div",
119
- render,
120
- props: mergeProps<"div">(defaultProps, props),
121
- state: {
122
- slot: "panel-header-title-row",
123
- },
124
- });
125
- }
126
-
127
- export type PanelHeaderTitleProps = useRender.ComponentProps<"h2">;
128
-
129
- export function PanelHeaderTitle({ className, render, ...props }: PanelHeaderTitleProps) {
130
- const theme = useThemeFamily();
131
- const { title } = panelHeader({ theme });
132
- const defaultProps: useRender.ElementProps<"h2"> = {
133
- className: title({ className }),
134
- };
135
-
136
- return useRender({
137
- defaultTagName: "h2",
138
- render,
139
- props: mergeProps<"h2">(defaultProps, props),
140
- state: {
141
- slot: "panel-header-title",
142
- },
143
- });
144
- }
145
-
146
- export type PanelHeaderSuffixProps = useRender.ComponentProps<"div">;
147
-
148
- export function PanelHeaderSuffix({ className, render, ...props }: PanelHeaderSuffixProps) {
149
- const { suffix } = panelHeader();
150
- const defaultProps: useRender.ElementProps<"div"> = {
151
- className: suffix({ className }),
152
- };
153
-
154
- return useRender({
155
- defaultTagName: "div",
156
- render,
157
- props: mergeProps<"div">(defaultProps, props),
158
- state: {
159
- slot: "panel-header-suffix",
160
- },
161
- });
162
- }
163
-
164
- export type PanelHeaderSubtitleProps = useRender.ComponentProps<"p">;
165
-
166
- export function PanelHeaderSubtitle({ className, render, ...props }: PanelHeaderSubtitleProps) {
167
- const theme = useThemeFamily();
168
- const { subtitle } = panelHeader({ theme });
169
- const defaultProps: useRender.ElementProps<"p"> = {
170
- className: subtitle({ className }),
171
- };
172
-
173
- return useRender({
174
- defaultTagName: "p",
175
- render,
176
- props: mergeProps<"p">(defaultProps, props),
177
- state: {
178
- slot: "panel-header-subtitle",
179
- },
180
- });
181
- }
182
-
183
- export type PanelHeaderActionsProps = useRender.ComponentProps<"div">;
184
-
185
- export function PanelHeaderActions({ className, render, ...props }: PanelHeaderActionsProps) {
186
- const { actions } = panelHeader();
187
- const defaultProps: useRender.ElementProps<"div"> = {
188
- className: actions({ className }),
189
- };
190
-
191
- return useRender({
192
- defaultTagName: "div",
193
- render,
194
- props: mergeProps<"div">(defaultProps, props),
195
- state: {
196
- slot: "panel-header-actions",
197
- },
198
- });
199
- }
@@ -1,30 +0,0 @@
1
- export {
2
- Popover,
3
- PopoverArrow,
4
- PopoverBackdrop,
5
- PopoverClose,
6
- PopoverContent,
7
- PopoverDescription,
8
- PopoverHeader,
9
- PopoverPortal,
10
- PopoverPopup,
11
- PopoverSeparator,
12
- PopoverTitle,
13
- PopoverTrigger,
14
- PopoverViewport,
15
- } from "./popover";
16
- export type {
17
- PopoverArrowProps,
18
- PopoverBackdropProps,
19
- PopoverCloseProps,
20
- PopoverContentProps,
21
- PopoverDescriptionProps,
22
- PopoverHeaderProps,
23
- PopoverPortalProps,
24
- PopoverProps,
25
- PopoverPopupProps,
26
- PopoverSeparatorProps,
27
- PopoverTitleProps,
28
- PopoverTriggerProps,
29
- PopoverViewportProps,
30
- } from "./popover";
@@ -1,248 +0,0 @@
1
- import type { ComponentPropsWithRef } from "react";
2
- import { Popover as BasePopover } from "@base-ui/react/popover";
3
- import { tv } from "../../lib/tv";
4
- import type { StyledProps } from "../../lib/styled-props";
5
- import { useThemeFamily } from "../../lib/theme/use-theme";
6
-
7
- const popover = tv({
8
- slots: {
9
- trigger: ["select-none"],
10
- positioner: ["isolate z-50 outline-none"],
11
- content: [
12
- "max-h-[var(--available-height)] min-w-[220px] overflow-hidden bg-layer-panel",
13
- "outline-none",
14
- ],
15
- header: ["flex items-center justify-between px-3 py-2"],
16
- separator: ["border-t"],
17
- title: ["m-0 text-[10px] font-bold leading-none"],
18
- description: ["m-0 text-xs leading-5"],
19
- close: [
20
- "inline-flex items-center justify-center",
21
- "text-[10px] font-bold",
22
- "outline-none transition-colors",
23
- ],
24
- arrow: ["size-2 rotate-45"],
25
- backdrop: ["fixed inset-0"],
26
- viewport: ["block"],
27
- },
28
- variants: {
29
- theme: {
30
- brutal: {
31
- content: ["border-2 border-black bg-white shadow-lg"],
32
- separator: ["border-black"],
33
- title: ["font-sans uppercase tracking-wide text-black/60"],
34
- description: ["font-sans text-black"],
35
- close: ["font-sans uppercase tracking-wide text-black/60 hover:text-black"],
36
- arrow: ["border-l-2 border-t-2 border-black bg-white"],
37
- backdrop: ["bg-transparent"],
38
- },
39
- elegant: {
40
- content: ["rounded-md bg-layer-popover", "shadow-xl"],
41
- separator: ["border-line-muted"],
42
- title: ["text-[11px] font-medium tracking-[-0.005em] text-foreground/45"],
43
- description: ["text-xs leading-5 text-foreground-muted"],
44
- close: [
45
- "text-[11px] font-medium tracking-[-0.005em]",
46
- "text-foreground-muted transition-colors duration-150 hover:text-foreground-strong",
47
- ],
48
- arrow: ["border-l border-t border-line-muted bg-layer-popover"],
49
- backdrop: ["bg-black/20"],
50
- },
51
- },
52
- },
53
- });
54
-
55
- export type PopoverProps = BasePopover.Root.Props;
56
-
57
- export function Popover(props: PopoverProps) {
58
- return <BasePopover.Root data-slot="popover" {...props} />;
59
- }
60
-
61
- export type PopoverTriggerProps = StyledProps<BasePopover.Trigger.Props>;
62
-
63
- export function PopoverTrigger({ className, ...props }: PopoverTriggerProps) {
64
- const theme = useThemeFamily();
65
- const { trigger } = popover({ theme });
66
- return (
67
- <BasePopover.Trigger
68
- data-slot="popover-trigger"
69
- className={trigger({ className })}
70
- {...props}
71
- />
72
- );
73
- }
74
-
75
- export type PopoverPortalProps = BasePopover.Portal.Props;
76
-
77
- export function PopoverPortal(props: PopoverPortalProps) {
78
- return <BasePopover.Portal data-slot="popover-portal" {...props} />;
79
- }
80
-
81
- export type PopoverPopupProps = ComponentPropsWithRef<"div">;
82
-
83
- export function PopoverPopup({ className, ...props }: PopoverPopupProps) {
84
- const theme = useThemeFamily();
85
- const { content } = popover({ theme });
86
- return <div data-slot="popover-content" className={content({ className })} {...props} />;
87
- }
88
-
89
- export type PopoverContentProps = StyledProps<BasePopover.Popup.Props> &
90
- Pick<
91
- BasePopover.Positioner.Props,
92
- | "align"
93
- | "alignOffset"
94
- | "anchor"
95
- | "arrowPadding"
96
- | "collisionAvoidance"
97
- | "collisionBoundary"
98
- | "collisionPadding"
99
- | "disableAnchorTracking"
100
- | "positionMethod"
101
- | "side"
102
- | "sideOffset"
103
- | "sticky"
104
- > & {
105
- portalProps?: PopoverPortalProps;
106
- };
107
-
108
- export function PopoverContent({
109
- align = "start",
110
- alignOffset = 0,
111
- anchor,
112
- arrowPadding,
113
- collisionAvoidance,
114
- collisionBoundary,
115
- collisionPadding,
116
- disableAnchorTracking = true,
117
- positionMethod = "fixed",
118
- side = "bottom",
119
- sideOffset = 4,
120
- sticky,
121
- portalProps,
122
- className,
123
- ...props
124
- }: PopoverContentProps) {
125
- const theme = useThemeFamily();
126
- const { positioner, content } = popover({ theme });
127
- return (
128
- <BasePopover.Portal {...portalProps}>
129
- <BasePopover.Positioner
130
- align={align}
131
- alignOffset={alignOffset}
132
- anchor={anchor}
133
- arrowPadding={arrowPadding}
134
- collisionAvoidance={collisionAvoidance}
135
- collisionBoundary={collisionBoundary}
136
- collisionPadding={collisionPadding}
137
- disableAnchorTracking={disableAnchorTracking}
138
- positionMethod={positionMethod}
139
- side={side}
140
- sideOffset={sideOffset}
141
- sticky={sticky}
142
- className={positioner()}
143
- >
144
- <BasePopover.Popup
145
- data-slot="popover-content"
146
- className={content({ className })}
147
- {...props}
148
- />
149
- </BasePopover.Positioner>
150
- </BasePopover.Portal>
151
- );
152
- }
153
-
154
- export type PopoverViewportProps = StyledProps<BasePopover.Viewport.Props>;
155
-
156
- export function PopoverViewport({ className, ...props }: PopoverViewportProps) {
157
- const theme = useThemeFamily();
158
- const { viewport } = popover({ theme });
159
- return (
160
- <BasePopover.Viewport
161
- data-slot="popover-viewport"
162
- className={viewport({ className })}
163
- {...props}
164
- />
165
- );
166
- }
167
-
168
- export type PopoverHeaderProps = ComponentPropsWithRef<"div">;
169
-
170
- export function PopoverHeader({ className, ...props }: PopoverHeaderProps) {
171
- const theme = useThemeFamily();
172
- const { header } = popover({ theme });
173
- return <div data-slot="popover-header" className={header({ className })} {...props} />;
174
- }
175
-
176
- export type PopoverSeparatorProps = StyledProps<ComponentPropsWithRef<"div">>;
177
-
178
- export function PopoverSeparator({ className, ...props }: PopoverSeparatorProps) {
179
- const theme = useThemeFamily();
180
- const { separator } = popover({ theme });
181
- return (
182
- <div
183
- role="separator"
184
- aria-orientation="horizontal"
185
- data-slot="popover-separator"
186
- className={separator({ className })}
187
- {...props}
188
- />
189
- );
190
- }
191
-
192
- export type PopoverTitleProps = StyledProps<BasePopover.Title.Props>;
193
-
194
- export function PopoverTitle({ className, ...props }: PopoverTitleProps) {
195
- const theme = useThemeFamily();
196
- const { title } = popover({ theme });
197
- return (
198
- <BasePopover.Title data-slot="popover-title" className={title({ className })} {...props} />
199
- );
200
- }
201
-
202
- export type PopoverDescriptionProps = StyledProps<BasePopover.Description.Props>;
203
-
204
- export function PopoverDescription({ className, ...props }: PopoverDescriptionProps) {
205
- const theme = useThemeFamily();
206
- const { description } = popover({ theme });
207
- return (
208
- <BasePopover.Description
209
- data-slot="popover-description"
210
- className={description({ className })}
211
- {...props}
212
- />
213
- );
214
- }
215
-
216
- export type PopoverCloseProps = StyledProps<BasePopover.Close.Props>;
217
-
218
- export function PopoverClose({ className, ...props }: PopoverCloseProps) {
219
- const theme = useThemeFamily();
220
- const { close } = popover({ theme });
221
- return (
222
- <BasePopover.Close data-slot="popover-close" className={close({ className })} {...props} />
223
- );
224
- }
225
-
226
- export type PopoverArrowProps = StyledProps<BasePopover.Arrow.Props>;
227
-
228
- export function PopoverArrow({ className, ...props }: PopoverArrowProps) {
229
- const theme = useThemeFamily();
230
- const { arrow } = popover({ theme });
231
- return (
232
- <BasePopover.Arrow data-slot="popover-arrow" className={arrow({ className })} {...props} />
233
- );
234
- }
235
-
236
- export type PopoverBackdropProps = StyledProps<BasePopover.Backdrop.Props>;
237
-
238
- export function PopoverBackdrop({ className, ...props }: PopoverBackdropProps) {
239
- const theme = useThemeFamily();
240
- const { backdrop } = popover({ theme });
241
- return (
242
- <BasePopover.Backdrop
243
- data-slot="popover-backdrop"
244
- className={backdrop({ className })}
245
- {...props}
246
- />
247
- );
248
- }
@@ -1,2 +0,0 @@
1
- export { PreviewShell } from "./preview-shell";
2
- export type { PreviewShellProps } from "./preview-shell";
@@ -1,51 +0,0 @@
1
- import { mergeProps } from "@base-ui/react/merge-props";
2
- import { useRender } from "@base-ui/react/use-render";
3
- import { tv, type VariantProps } from "../../lib/tv";
4
- import { useThemeFamily } from "../../lib/theme/use-theme";
5
-
6
- const previewShell = tv({
7
- slots: {
8
- root: [],
9
- },
10
- variants: {
11
- theme: {
12
- brutal: {},
13
- // Elegant styling is deferred; see the component TODO.
14
- elegant: {},
15
- },
16
- variant: {
17
- default: {
18
- root: "border border-line-muted bg-layer-panel hover:border-line-subtle hover:bg-layer-muted",
19
- },
20
- muted: {
21
- root: "border-2 border-line-subtle bg-layer-muted italic text-foreground/40 hover:shadow-sm",
22
- },
23
- },
24
- },
25
- defaultVariants: {
26
- variant: "default",
27
- },
28
- });
29
-
30
- export type PreviewShellProps = useRender.ComponentProps<"div"> &
31
- Omit<VariantProps<typeof previewShell>, "theme"> & {
32
- "data-testid"?: string;
33
- };
34
-
35
- export function PreviewShell({ variant, className, render, ...props }: PreviewShellProps) {
36
- const theme = useThemeFamily();
37
- const { root } = previewShell({ theme, variant });
38
- const defaultProps: useRender.ElementProps<"div"> = {
39
- className: root({ className }),
40
- };
41
-
42
- return useRender({
43
- defaultTagName: "div",
44
- render,
45
- props: mergeProps<"div">(defaultProps, props),
46
- state: {
47
- slot: "preview-shell",
48
- variant,
49
- },
50
- });
51
- }
@@ -1,36 +0,0 @@
1
- export {
2
- QuotedMessageCard,
3
- QuotedMessageCardAttachments,
4
- QuotedMessageCardAuthor,
5
- QuotedMessageCardAuthorName,
6
- QuotedMessageCardAuthorSubtitle,
7
- QuotedMessageCardBody,
8
- QuotedMessageCardChannel,
9
- QuotedMessageCardContent,
10
- QuotedMessageCardContentWrap,
11
- QuotedMessageCardHeader,
12
- QuotedMessageCardMeta,
13
- QuotedMessageCardSeparator,
14
- QuotedMessageCardTag,
15
- QuotedMessageCardThread,
16
- QuotedMessageCardTimestamp,
17
- QuotedMessageCardUnavailable,
18
- } from "./quoted-message-card";
19
- export type {
20
- QuotedMessageCardAttachmentsProps,
21
- QuotedMessageCardAuthorNameProps,
22
- QuotedMessageCardAuthorProps,
23
- QuotedMessageCardAuthorSubtitleProps,
24
- QuotedMessageCardBodyProps,
25
- QuotedMessageCardChannelProps,
26
- QuotedMessageCardContentProps,
27
- QuotedMessageCardContentWrapProps,
28
- QuotedMessageCardHeaderProps,
29
- QuotedMessageCardMetaProps,
30
- QuotedMessageCardProps,
31
- QuotedMessageCardSeparatorProps,
32
- QuotedMessageCardTagProps,
33
- QuotedMessageCardThreadProps,
34
- QuotedMessageCardTimestampProps,
35
- QuotedMessageCardUnavailableProps,
36
- } from "./quoted-message-card";