raft-ui 0.0.1
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/README.md +24 -0
- package/dist/cn.d.mts +2 -0
- package/dist/cn.mjs +2 -0
- package/dist/index.d.mts +2710 -0
- package/dist/index.mjs +4821 -0
- package/dist/label-DWq4ia5I.mjs +115 -0
- package/dist/styled-props-B3SNekJg.d.mts +16 -0
- package/dist/wip.d.mts +1238 -0
- package/dist/wip.mjs +1416 -0
- package/package.json +70 -0
- package/src/components/avatar/avatar.tsx +375 -0
- package/src/components/avatar/index.ts +17 -0
- package/src/components/badge/badge.tsx +393 -0
- package/src/components/badge/index.ts +2 -0
- package/src/components/banner/banner.tsx +269 -0
- package/src/components/banner/index.ts +8 -0
- package/src/components/bottom-sheet/bottom-sheet.tsx +152 -0
- package/src/components/bottom-sheet/index.ts +22 -0
- package/src/components/button/button.tsx +497 -0
- package/src/components/button/index.ts +2 -0
- package/src/components/checkbox/checkbox-indicator.tsx +128 -0
- package/src/components/checkbox/checkbox.tsx +350 -0
- package/src/components/checkbox/index.ts +2 -0
- package/src/components/combobox/combobox.tsx +603 -0
- package/src/components/combobox/index.ts +52 -0
- package/src/components/context-menu/context-menu.tsx +380 -0
- package/src/components/context-menu/index.ts +34 -0
- package/src/components/conversation-preview-card/conversation-preview-card.tsx +336 -0
- package/src/components/conversation-preview-card/index.ts +32 -0
- package/src/components/description-list/description-list.tsx +116 -0
- package/src/components/description-list/index.ts +14 -0
- package/src/components/dropdown-menu/dropdown-menu.tsx +405 -0
- package/src/components/dropdown-menu/index.ts +38 -0
- package/src/components/empty-state/empty-state.tsx +177 -0
- package/src/components/empty-state/index.ts +16 -0
- package/src/components/field/field.tsx +125 -0
- package/src/components/field/index.ts +18 -0
- package/src/components/inline-code/index.ts +2 -0
- package/src/components/inline-code/inline-code.tsx +33 -0
- package/src/components/input/index.ts +2 -0
- package/src/components/input/input.tsx +76 -0
- package/src/components/input-group/index.ts +7 -0
- package/src/components/input-group/input-group.tsx +215 -0
- package/src/components/kbd/index.ts +2 -0
- package/src/components/kbd/kbd.tsx +43 -0
- package/src/components/label/index.ts +7 -0
- package/src/components/label/label.tsx +99 -0
- package/src/components/lightbox/index.ts +24 -0
- package/src/components/lightbox/lightbox.tsx +245 -0
- package/src/components/list-item/index.ts +20 -0
- package/src/components/list-item/list-item.tsx +263 -0
- package/src/components/media-list-item/index.ts +20 -0
- package/src/components/media-list-item/media-list-item.tsx +169 -0
- package/src/components/notification-center/index.ts +39 -0
- package/src/components/notification-center/notification-center.tsx +558 -0
- package/src/components/panel-header/index.ts +22 -0
- package/src/components/panel-header/panel-header.tsx +199 -0
- package/src/components/popover/index.ts +30 -0
- package/src/components/popover/popover.tsx +248 -0
- package/src/components/preview-shell/index.ts +2 -0
- package/src/components/preview-shell/preview-shell.tsx +51 -0
- package/src/components/quoted-message-card/index.ts +36 -0
- package/src/components/quoted-message-card/quoted-message-card.tsx +391 -0
- package/src/components/radio-group/index.ts +6 -0
- package/src/components/radio-group/radio-group.tsx +119 -0
- package/src/components/section-header/index.ts +16 -0
- package/src/components/section-header/section-header.tsx +117 -0
- package/src/components/section-label/index.ts +2 -0
- package/src/components/section-label/section-label.tsx +38 -0
- package/src/components/segmented-control/index.ts +12 -0
- package/src/components/segmented-control/segmented-control.tsx +129 -0
- package/src/components/select/index.ts +40 -0
- package/src/components/select/select.tsx +382 -0
- package/src/components/spinner/index.ts +2 -0
- package/src/components/spinner/spinner.tsx +228 -0
- package/src/components/status/index.ts +2 -0
- package/src/components/status/status.tsx +152 -0
- package/src/components/tabs/index.ts +24 -0
- package/src/components/tabs/tabs.tsx +417 -0
- package/src/components/text/index.ts +2 -0
- package/src/components/text/text.tsx +130 -0
- package/src/components/textarea/index.ts +2 -0
- package/src/components/textarea/textarea.tsx +136 -0
- package/src/components/toggle-group/index.ts +12 -0
- package/src/components/toggle-group/toggle-group.tsx +111 -0
- package/src/components/tooltip/index.ts +14 -0
- package/src/components/tooltip/tooltip.tsx +186 -0
- package/src/fonts/brutal.css +2 -0
- package/src/index.ts +404 -0
- package/src/legacy/AttentionDot.tsx +28 -0
- package/src/legacy/AvatarListRow.tsx +87 -0
- package/src/legacy/AvatarSlot.tsx +157 -0
- package/src/legacy/Badge.tsx +95 -0
- package/src/legacy/Banner.tsx +74 -0
- package/src/legacy/BottomSheet.tsx +76 -0
- package/src/legacy/CheckMarker.tsx +72 -0
- package/src/legacy/Checkbox.tsx +81 -0
- package/src/legacy/ConversationPreviewCard.tsx +169 -0
- package/src/legacy/DismissBackdrop.tsx +68 -0
- package/src/legacy/EmptyState.tsx +63 -0
- package/src/legacy/ExperimentalBadge.tsx +19 -0
- package/src/legacy/FormField.tsx +106 -0
- package/src/legacy/KeyValueRow.tsx +67 -0
- package/src/legacy/Lightbox.tsx +119 -0
- package/src/legacy/NotificationCenter.tsx +217 -0
- package/src/legacy/PanelHeader.tsx +94 -0
- package/src/legacy/PreviewShell.tsx +40 -0
- package/src/legacy/QuotedMessageCard.tsx +181 -0
- package/src/legacy/ReorderablePanelTabs.tsx +151 -0
- package/src/legacy/SandboxedPreviewFrame.tsx +59 -0
- package/src/legacy/SearchInput.tsx +23 -0
- package/src/legacy/SectionEyebrow.tsx +60 -0
- package/src/legacy/SectionHeader.tsx +68 -0
- package/src/legacy/SegmentedControl.tsx +74 -0
- package/src/legacy/SlugInput.tsx +29 -0
- package/src/legacy/Spinner.tsx +89 -0
- package/src/legacy/StatusDot.tsx +51 -0
- package/src/legacy/SurfaceListItem.tsx +32 -0
- package/src/legacy/Textarea.tsx +137 -0
- package/src/legacy/button.tsx +100 -0
- package/src/legacy/context-menu-divider.tsx +12 -0
- package/src/legacy/menu-item.tsx +66 -0
- package/src/legacy/selection-popover.tsx +212 -0
- package/src/legacy/server-switcher-menu.tsx +203 -0
- package/src/legacy/source.css +240 -0
- package/src/lib/cn.ts +1 -0
- package/src/lib/styled-props.ts +11 -0
- package/src/lib/theme/theme-context.ts +28 -0
- package/src/lib/theme/theme-provider.tsx +181 -0
- package/src/lib/theme/use-theme.ts +12 -0
- package/src/lib/tv.ts +29 -0
- package/src/lib/without-children.ts +6 -0
- package/src/styles.css +467 -0
- package/src/wip.ts +255 -0
|
@@ -0,0 +1,228 @@
|
|
|
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.ts";
|
|
4
|
+
import { useThemeFamily } from "../../lib/theme/use-theme.ts";
|
|
5
|
+
import type { WithoutChildren } from "../../lib/without-children.ts";
|
|
6
|
+
|
|
7
|
+
const BRAILLE_SPINNER_STYLE = `
|
|
8
|
+
@keyframes raft-braille-spinner {
|
|
9
|
+
0%,
|
|
10
|
+
9.99% {
|
|
11
|
+
content: "⠋";
|
|
12
|
+
}
|
|
13
|
+
10%,
|
|
14
|
+
19.99% {
|
|
15
|
+
content: "⠙";
|
|
16
|
+
}
|
|
17
|
+
20%,
|
|
18
|
+
29.99% {
|
|
19
|
+
content: "⠹";
|
|
20
|
+
}
|
|
21
|
+
30%,
|
|
22
|
+
39.99% {
|
|
23
|
+
content: "⠸";
|
|
24
|
+
}
|
|
25
|
+
40%,
|
|
26
|
+
49.99% {
|
|
27
|
+
content: "⠼";
|
|
28
|
+
}
|
|
29
|
+
50%,
|
|
30
|
+
59.99% {
|
|
31
|
+
content: "⠴";
|
|
32
|
+
}
|
|
33
|
+
60%,
|
|
34
|
+
69.99% {
|
|
35
|
+
content: "⠦";
|
|
36
|
+
}
|
|
37
|
+
70%,
|
|
38
|
+
79.99% {
|
|
39
|
+
content: "⠧";
|
|
40
|
+
}
|
|
41
|
+
80%,
|
|
42
|
+
89.99% {
|
|
43
|
+
content: "⠇";
|
|
44
|
+
}
|
|
45
|
+
90%,
|
|
46
|
+
100% {
|
|
47
|
+
content: "⠏";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[data-slot="spinner"] [data-spinner-glyph]::before {
|
|
52
|
+
content: "⠋";
|
|
53
|
+
animation: raft-braille-spinner 800ms steps(1, end) infinite;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@media (prefers-reduced-motion: reduce) {
|
|
57
|
+
[data-slot="spinner"] [data-spinner-glyph]::before {
|
|
58
|
+
animation-duration: 1600ms;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`;
|
|
62
|
+
|
|
63
|
+
const ELEGANT_SPINNER_STYLE = `
|
|
64
|
+
@keyframes raft-elegant-spinner-spin {
|
|
65
|
+
to {
|
|
66
|
+
transform: rotate(360deg);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@keyframes raft-elegant-spinner-dash {
|
|
71
|
+
0% {
|
|
72
|
+
stroke-dasharray: 1 150;
|
|
73
|
+
stroke-dashoffset: 0;
|
|
74
|
+
}
|
|
75
|
+
50% {
|
|
76
|
+
stroke-dasharray: 90 150;
|
|
77
|
+
stroke-dashoffset: -35;
|
|
78
|
+
}
|
|
79
|
+
100% {
|
|
80
|
+
stroke-dasharray: 90 150;
|
|
81
|
+
stroke-dashoffset: -124;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[data-slot="spinner"] [data-spinner-ring] {
|
|
86
|
+
animation: raft-elegant-spinner-spin 1600ms linear infinite;
|
|
87
|
+
transform-box: fill-box;
|
|
88
|
+
transform-origin: center;
|
|
89
|
+
will-change: transform;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
[data-slot="spinner"] [data-spinner-arc] {
|
|
93
|
+
animation: raft-elegant-spinner-dash 1400ms cubic-bezier(0.42, 0, 0.58, 1) infinite;
|
|
94
|
+
stroke-dasharray: 1 150;
|
|
95
|
+
stroke-dashoffset: 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@media (prefers-reduced-motion: reduce) {
|
|
99
|
+
[data-slot="spinner"] [data-spinner-ring] {
|
|
100
|
+
animation-duration: 2400ms;
|
|
101
|
+
will-change: auto;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
[data-slot="spinner"] [data-spinner-arc] {
|
|
105
|
+
animation: none;
|
|
106
|
+
stroke-dasharray: 72 150;
|
|
107
|
+
stroke-dashoffset: -30;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
`;
|
|
111
|
+
|
|
112
|
+
const SPINNER_STYLE = `${BRAILLE_SPINNER_STYLE}${ELEGANT_SPINNER_STYLE}`;
|
|
113
|
+
|
|
114
|
+
const spinner = tv({
|
|
115
|
+
slots: {
|
|
116
|
+
root: [
|
|
117
|
+
"relative inline-flex shrink-0 items-center justify-center",
|
|
118
|
+
"leading-none text-current",
|
|
119
|
+
],
|
|
120
|
+
glyph: "inline-block min-w-[1ch] font-mono tabular-nums",
|
|
121
|
+
ring: "block size-full shrink-0",
|
|
122
|
+
},
|
|
123
|
+
variants: {
|
|
124
|
+
theme: {
|
|
125
|
+
brutal: {},
|
|
126
|
+
elegant: {},
|
|
127
|
+
},
|
|
128
|
+
size: {
|
|
129
|
+
sm: {},
|
|
130
|
+
lg: {},
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
defaultVariants: {
|
|
134
|
+
size: "sm",
|
|
135
|
+
},
|
|
136
|
+
compoundVariants: [
|
|
137
|
+
{
|
|
138
|
+
theme: "brutal",
|
|
139
|
+
size: "sm",
|
|
140
|
+
class: { root: "h-4 text-base" },
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
theme: "brutal",
|
|
144
|
+
size: "lg",
|
|
145
|
+
class: { root: "h-6 text-xl" },
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
theme: "elegant",
|
|
149
|
+
size: "sm",
|
|
150
|
+
class: { root: "size-3.5" },
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
theme: "elegant",
|
|
154
|
+
size: "lg",
|
|
155
|
+
class: { root: "size-[18px]" },
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
const spinnerStyle = (
|
|
161
|
+
<style href="raft-ui-spinner" precedence="default">
|
|
162
|
+
{SPINNER_STYLE}
|
|
163
|
+
</style>
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
export type SpinnerProps = WithoutChildren<useRender.ComponentProps<"span">> &
|
|
167
|
+
Omit<VariantProps<typeof spinner>, "theme">;
|
|
168
|
+
|
|
169
|
+
export function Spinner({ size = "sm", className, render, ...props }: SpinnerProps) {
|
|
170
|
+
const theme = useThemeFamily();
|
|
171
|
+
const { root, glyph, ring } = spinner({ theme, size });
|
|
172
|
+
const children =
|
|
173
|
+
theme === "elegant" ? (
|
|
174
|
+
<>
|
|
175
|
+
{spinnerStyle}
|
|
176
|
+
<svg
|
|
177
|
+
data-spinner-ring=""
|
|
178
|
+
aria-hidden="true"
|
|
179
|
+
className={ring()}
|
|
180
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
181
|
+
fill="none"
|
|
182
|
+
viewBox="0 0 24 24"
|
|
183
|
+
>
|
|
184
|
+
<circle
|
|
185
|
+
className="opacity-20"
|
|
186
|
+
cx="12"
|
|
187
|
+
cy="12"
|
|
188
|
+
r="10"
|
|
189
|
+
stroke="currentColor"
|
|
190
|
+
strokeWidth="2.5"
|
|
191
|
+
/>
|
|
192
|
+
<circle
|
|
193
|
+
data-spinner-arc=""
|
|
194
|
+
className="opacity-80"
|
|
195
|
+
cx="12"
|
|
196
|
+
cy="12"
|
|
197
|
+
r="10"
|
|
198
|
+
fill="none"
|
|
199
|
+
pathLength="150"
|
|
200
|
+
stroke="currentColor"
|
|
201
|
+
strokeLinecap="round"
|
|
202
|
+
strokeWidth="2.5"
|
|
203
|
+
/>
|
|
204
|
+
</svg>
|
|
205
|
+
</>
|
|
206
|
+
) : (
|
|
207
|
+
<>
|
|
208
|
+
{spinnerStyle}
|
|
209
|
+
<span data-spinner-glyph="" aria-hidden="true" className={glyph()} />
|
|
210
|
+
</>
|
|
211
|
+
);
|
|
212
|
+
const defaultProps: useRender.ElementProps<"span"> = {
|
|
213
|
+
role: "status",
|
|
214
|
+
"aria-label": "Loading",
|
|
215
|
+
className: root({ className }),
|
|
216
|
+
children,
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
return useRender({
|
|
220
|
+
defaultTagName: "span",
|
|
221
|
+
render,
|
|
222
|
+
props: mergeProps<"span">(defaultProps, props),
|
|
223
|
+
state: {
|
|
224
|
+
slot: "spinner",
|
|
225
|
+
size,
|
|
226
|
+
},
|
|
227
|
+
});
|
|
228
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
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.ts";
|
|
4
|
+
import { useThemeFamily } from "../../lib/theme/use-theme.ts";
|
|
5
|
+
|
|
6
|
+
const STATUS_STYLE = `
|
|
7
|
+
@keyframes raft-status-pulse-background {
|
|
8
|
+
0% {
|
|
9
|
+
box-shadow: 0 0 0 1px color-mix(in oklch, var(--status-color) 42%, transparent);
|
|
10
|
+
}
|
|
11
|
+
70%,
|
|
12
|
+
100% {
|
|
13
|
+
box-shadow: 0 0 0 8px color-mix(in oklch, var(--status-color) 0%, transparent);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
|
|
18
|
+
const dot = tv({
|
|
19
|
+
slots: {
|
|
20
|
+
root: ["relative inline-block shrink-0 rounded-full", "[background-color:var(--status-color)]"],
|
|
21
|
+
},
|
|
22
|
+
variants: {
|
|
23
|
+
theme: {
|
|
24
|
+
brutal: {
|
|
25
|
+
root: "border border-line-strong",
|
|
26
|
+
},
|
|
27
|
+
elegant: {},
|
|
28
|
+
},
|
|
29
|
+
variant: {
|
|
30
|
+
default: {
|
|
31
|
+
root: "[--status-color:var(--color-gray-400)]",
|
|
32
|
+
},
|
|
33
|
+
primary: {
|
|
34
|
+
root: "[--status-color:var(--color-primary-400)]",
|
|
35
|
+
},
|
|
36
|
+
information: {
|
|
37
|
+
root: "[--status-color:var(--color-info-base)]",
|
|
38
|
+
},
|
|
39
|
+
muted: {
|
|
40
|
+
root: "[--status-color:var(--color-secondary-400)]",
|
|
41
|
+
},
|
|
42
|
+
accent: {
|
|
43
|
+
root: "[--status-color:var(--color-accent-400)]",
|
|
44
|
+
},
|
|
45
|
+
success: {
|
|
46
|
+
root: "[--status-color:var(--color-success-base)]",
|
|
47
|
+
},
|
|
48
|
+
warning: {
|
|
49
|
+
root: "[--status-color:var(--color-warning-base)]",
|
|
50
|
+
},
|
|
51
|
+
danger: {
|
|
52
|
+
root: "[--status-color:var(--color-danger-base)]",
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
defaultVariants: {
|
|
57
|
+
variant: "default",
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const status = tv({
|
|
62
|
+
extend: dot,
|
|
63
|
+
variants: {
|
|
64
|
+
theme: {
|
|
65
|
+
brutal: {},
|
|
66
|
+
elegant: {},
|
|
67
|
+
},
|
|
68
|
+
size: {
|
|
69
|
+
xs: {
|
|
70
|
+
root: "size-1",
|
|
71
|
+
},
|
|
72
|
+
sm: {
|
|
73
|
+
root: "size-2",
|
|
74
|
+
},
|
|
75
|
+
md: {
|
|
76
|
+
root: "size-2.5",
|
|
77
|
+
},
|
|
78
|
+
lg: {
|
|
79
|
+
root: "size-[11px]",
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
pulse: {
|
|
83
|
+
true: {
|
|
84
|
+
root: "",
|
|
85
|
+
},
|
|
86
|
+
false: {
|
|
87
|
+
root: "",
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
defaultVariants: {
|
|
92
|
+
size: "md",
|
|
93
|
+
variant: "default",
|
|
94
|
+
pulse: false,
|
|
95
|
+
},
|
|
96
|
+
compoundVariants: [
|
|
97
|
+
{
|
|
98
|
+
theme: "brutal",
|
|
99
|
+
variant: "success",
|
|
100
|
+
class: { root: "[--status-color:var(--color-brutal-lime)]" },
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
theme: "brutal",
|
|
104
|
+
variant: "warning",
|
|
105
|
+
class: { root: "[--status-color:var(--color-warning-base)]" },
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
theme: "brutal",
|
|
109
|
+
pulse: true,
|
|
110
|
+
class: { root: "animate-pulse" },
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
theme: "elegant",
|
|
114
|
+
pulse: true,
|
|
115
|
+
class: {
|
|
116
|
+
root: "[animation:raft-status-pulse-background_1.4s_ease-out_infinite] motion-reduce:animate-none",
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
const statusStyle = (
|
|
123
|
+
<style href="raft-ui-status" precedence="default">
|
|
124
|
+
{STATUS_STYLE}
|
|
125
|
+
</style>
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
export type StatusProps = Omit<useRender.ComponentProps<"span">, "children"> &
|
|
129
|
+
Omit<VariantProps<typeof status>, "theme">;
|
|
130
|
+
|
|
131
|
+
function StatusRoot({ size, variant, pulse, className, render, ...props }: StatusProps) {
|
|
132
|
+
const theme = useThemeFamily();
|
|
133
|
+
const { root } = status({ theme, size, variant, pulse });
|
|
134
|
+
const defaultProps: useRender.ElementProps<"span"> = {
|
|
135
|
+
className: root({ className }),
|
|
136
|
+
children: statusStyle,
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
return useRender({
|
|
140
|
+
defaultTagName: "span",
|
|
141
|
+
render,
|
|
142
|
+
props: mergeProps<"span">(defaultProps, props),
|
|
143
|
+
state: {
|
|
144
|
+
slot: "status",
|
|
145
|
+
variant,
|
|
146
|
+
pulse,
|
|
147
|
+
size,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export const Status = StatusRoot;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export {
|
|
2
|
+
Tabs,
|
|
3
|
+
TabsBackground,
|
|
4
|
+
TabsIndicator,
|
|
5
|
+
TabsLabel,
|
|
6
|
+
TabsList,
|
|
7
|
+
TabsPanel,
|
|
8
|
+
TabsTab,
|
|
9
|
+
SortableTabsList,
|
|
10
|
+
SortableTabsTab,
|
|
11
|
+
useOrderedTabs,
|
|
12
|
+
} from "./tabs.tsx";
|
|
13
|
+
export type {
|
|
14
|
+
OrderedTabItem,
|
|
15
|
+
SortableTabsListProps,
|
|
16
|
+
SortableTabsTabProps,
|
|
17
|
+
TabsBackgroundProps,
|
|
18
|
+
TabsIndicatorProps,
|
|
19
|
+
TabsLabelProps,
|
|
20
|
+
TabsListProps,
|
|
21
|
+
TabsPanelProps,
|
|
22
|
+
TabsProps,
|
|
23
|
+
TabsTabProps,
|
|
24
|
+
} from "./tabs.tsx";
|