tembro 4.2.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/dist/components/charts/progress-circle.d.ts +12 -3
- package/dist/components/data-table/data-table.d.ts +2 -2
- package/dist/components/feedback/index.d.ts +0 -2
- package/dist/components/layout/section.d.ts +1 -8
- package/dist/components/patterns/index.d.ts +0 -8
- package/dist/components/patterns/public.d.ts +0 -8
- package/dist/components/ui/hover-card/index.cjs +1 -0
- package/dist/components/ui/hover-card/index.d.ts +11 -0
- package/dist/components/ui/hover-card/index.js +1 -0
- package/dist/components/ui/menubar/index.cjs +1 -0
- package/dist/components/ui/menubar/index.d.ts +42 -0
- package/dist/components/ui/menubar/index.js +1 -0
- package/dist/components/ui/navigation-menu/index.cjs +1 -0
- package/dist/components/ui/navigation-menu/index.d.ts +20 -0
- package/dist/components/ui/navigation-menu/index.js +1 -0
- package/dist/components/ui/number-field/index.cjs +1 -0
- package/dist/components/ui/number-field/index.d.ts +18 -0
- package/dist/components/ui/number-field/index.js +1 -0
- package/dist/components/ui/toggle-group/index.cjs +1 -0
- package/dist/components/ui/toggle-group/index.d.ts +13 -0
- package/dist/components/ui/toggle-group/index.js +1 -0
- package/dist/components/ui/toolbar/index.cjs +1 -0
- package/dist/components/ui/toolbar/index.d.ts +14 -0
- package/dist/components/ui/toolbar/index.js +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/src/components/charts/progress-circle.cjs +1 -1
- package/dist/src/components/charts/progress-circle.js +57 -3
- package/dist/src/components/data-table/data-table.cjs +1 -1
- package/dist/src/components/data-table/data-table.js +102 -100
- package/dist/src/components/feedback/index.cjs +1 -1
- package/dist/src/components/feedback/index.js +2 -4
- package/dist/src/components/layout/index.cjs +1 -1
- package/dist/src/components/layout/index.js +3 -3
- package/dist/src/components/layout/public.cjs +1 -1
- package/dist/src/components/layout/public.js +3 -3
- package/dist/src/components/layout/section.cjs +1 -1
- package/dist/src/components/layout/section.js +2 -26
- package/dist/src/components/patterns/index.cjs +1 -1
- package/dist/src/components/patterns/index.js +2 -10
- package/dist/src/components/patterns/public.cjs +1 -1
- package/dist/src/components/patterns/public.js +2 -10
- package/dist/src/components/ui/hover-card/index.cjs +1 -0
- package/dist/src/components/ui/hover-card/index.js +50 -0
- package/dist/src/components/ui/menubar/index.cjs +1 -0
- package/dist/src/components/ui/menubar/index.js +132 -0
- package/dist/src/components/ui/navigation-menu/index.cjs +1 -0
- package/dist/src/components/ui/navigation-menu/index.js +73 -0
- package/dist/src/components/ui/number-field/index.cjs +1 -0
- package/dist/src/components/ui/number-field/index.js +73 -0
- package/dist/src/components/ui/toggle-group/index.cjs +1 -0
- package/dist/src/components/ui/toggle-group/index.js +32 -0
- package/dist/src/components/ui/toolbar/index.cjs +1 -0
- package/dist/src/components/ui/toolbar/index.js +50 -0
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +92 -95
- package/dist/src/public-component-surface.cjs +1 -1
- package/dist/src/public-component-surface.js +31 -42
- package/package.json +1 -1
- package/packages/cli/dist/index.cjs +112 -112
- package/packages/cli/vendor/src/components/charts/progress-circle.tsx +78 -3
- package/packages/cli/vendor/src/components/data-table/data-table.tsx +4 -4
- package/packages/cli/vendor/src/components/feedback/index.ts +0 -2
- package/packages/cli/vendor/src/components/layout/section.tsx +1 -28
- package/packages/cli/vendor/src/components/patterns/index.ts +0 -8
- package/packages/cli/vendor/src/components/patterns/public.ts +0 -8
- package/packages/cli/vendor/src/components/ui/hover-card/index.tsx +72 -0
- package/packages/cli/vendor/src/components/ui/menubar/index.tsx +140 -0
- package/packages/cli/vendor/src/components/ui/navigation-menu/index.tsx +100 -0
- package/packages/cli/vendor/src/components/ui/number-field/index.tsx +89 -0
- package/packages/cli/vendor/src/components/ui/toggle-group/index.tsx +72 -0
- package/packages/cli/vendor/src/components/ui/toolbar/index.tsx +67 -0
- package/packages/cli/vendor/src/index.ts +12 -5
- package/packages/cli/vendor/src/public-component-surface.ts +7 -10
- package/packages/cli/vendor/templates/showcase/src/showcase/data/registry.ts +14 -12
- package/packages/cli/vendor/templates/showcase/src/showcase/layout/HeroSection.tsx +2 -2
- package/packages/cli/vendor/templates/showcase/src/showcase/layout/WorkbenchSidebar.tsx +1 -1
- package/packages/cli/vendor/templates/showcase/src/showcase/sections/ComponentLivePreview.tsx +2 -2
- package/packages/cli/vendor/templates/showcase/src/showcase/sections/FormsSection.tsx +2 -2
- package/packages/cli/vendor/templates/styles/globals.css +5 -5
- package/registry.json +2630 -233
- package/dist/components/charts/progress-ring.cjs +0 -1
- package/dist/components/charts/progress-ring.d.ts +0 -13
- package/dist/components/charts/progress-ring.js +0 -1
- package/dist/components/feedback/loading-state.cjs +0 -1
- package/dist/components/feedback/loading-state.d.ts +0 -9
- package/dist/components/feedback/loading-state.js +0 -1
- package/dist/components/feedback/page-state.cjs +0 -1
- package/dist/components/feedback/page-state.d.ts +0 -18
- package/dist/components/feedback/page-state.js +0 -1
- package/dist/components/layout/page-container.cjs +0 -1
- package/dist/components/layout/page-container.d.ts +0 -7
- package/dist/components/layout/page-container.js +0 -1
- package/dist/components/layout/page-header.cjs +0 -1
- package/dist/components/layout/page-header.d.ts +0 -23
- package/dist/components/layout/page-header.js +0 -1
- package/dist/components/layout/section-header.cjs +0 -1
- package/dist/components/layout/section-header.d.ts +0 -14
- package/dist/components/layout/section-header.js +0 -1
- package/dist/components/layout/sidebar-nav.cjs +0 -1
- package/dist/components/layout/sidebar-nav.d.ts +0 -37
- package/dist/components/layout/sidebar-nav.js +0 -1
- package/dist/components/layout/sticky-footer-bar.cjs +0 -1
- package/dist/components/layout/sticky-footer-bar.d.ts +0 -7
- package/dist/components/layout/sticky-footer-bar.js +0 -1
- package/dist/components/patterns/bulk-action-bar.cjs +0 -1
- package/dist/components/patterns/bulk-action-bar.d.ts +0 -10
- package/dist/components/patterns/bulk-action-bar.js +0 -1
- package/dist/components/patterns/data-view.cjs +0 -1
- package/dist/components/patterns/data-view.d.ts +0 -17
- package/dist/components/patterns/data-view.js +0 -1
- package/dist/components/patterns/detail-layout.cjs +0 -1
- package/dist/components/patterns/detail-layout.d.ts +0 -16
- package/dist/components/patterns/detail-layout.js +0 -1
- package/dist/components/patterns/form-builder.cjs +0 -1
- package/dist/components/patterns/form-builder.d.ts +0 -110
- package/dist/components/patterns/form-builder.js +0 -1
- package/dist/components/patterns/page-toolbar.cjs +0 -1
- package/dist/components/patterns/page-toolbar.d.ts +0 -11
- package/dist/components/patterns/page-toolbar.js +0 -1
- package/dist/components/patterns/resource-detail-page.cjs +0 -1
- package/dist/components/patterns/resource-detail-page.d.ts +0 -39
- package/dist/components/patterns/resource-detail-page.js +0 -1
- package/dist/components/patterns/resource-page.cjs +0 -1
- package/dist/components/patterns/resource-page.d.ts +0 -30
- package/dist/components/patterns/resource-page.js +0 -1
- package/dist/components/patterns/settings-page.cjs +0 -1
- package/dist/components/patterns/settings-page.d.ts +0 -21
- package/dist/components/patterns/settings-page.js +0 -1
- package/dist/src/components/charts/progress-ring.cjs +0 -1
- package/dist/src/components/charts/progress-ring.js +0 -57
- package/dist/src/components/feedback/loading-state.cjs +0 -1
- package/dist/src/components/feedback/loading-state.js +0 -15
- package/dist/src/components/feedback/page-state.cjs +0 -1
- package/dist/src/components/feedback/page-state.js +0 -28
- package/dist/src/components/layout/page-container.cjs +0 -1
- package/dist/src/components/layout/page-container.js +0 -21
- package/dist/src/components/layout/page-header.cjs +0 -1
- package/dist/src/components/layout/page-header.js +0 -92
- package/dist/src/components/layout/section-header.cjs +0 -1
- package/dist/src/components/layout/section-header.js +0 -44
- package/dist/src/components/layout/sidebar-nav.cjs +0 -1
- package/dist/src/components/layout/sidebar-nav.js +0 -220
- package/dist/src/components/layout/sticky-footer-bar.cjs +0 -1
- package/dist/src/components/layout/sticky-footer-bar.js +0 -20
- package/dist/src/components/patterns/bulk-action-bar.cjs +0 -1
- package/dist/src/components/patterns/bulk-action-bar.js +0 -34
- package/dist/src/components/patterns/data-view.cjs +0 -1
- package/dist/src/components/patterns/data-view.js +0 -47
- package/dist/src/components/patterns/detail-layout.cjs +0 -1
- package/dist/src/components/patterns/detail-layout.js +0 -65
- package/dist/src/components/patterns/form-builder.cjs +0 -1
- package/dist/src/components/patterns/form-builder.js +0 -263
- package/dist/src/components/patterns/page-toolbar.cjs +0 -1
- package/dist/src/components/patterns/page-toolbar.js +0 -41
- package/dist/src/components/patterns/resource-detail-page.cjs +0 -1
- package/dist/src/components/patterns/resource-detail-page.js +0 -100
- package/dist/src/components/patterns/resource-page.cjs +0 -1
- package/dist/src/components/patterns/resource-page.js +0 -88
- package/dist/src/components/patterns/settings-page.cjs +0 -1
- package/dist/src/components/patterns/settings-page.js +0 -64
- package/packages/cli/vendor/src/components/charts/progress-ring.tsx +0 -56
- package/packages/cli/vendor/src/components/feedback/loading-state.tsx +0 -15
- package/packages/cli/vendor/src/components/feedback/page-state.tsx +0 -29
- package/packages/cli/vendor/src/components/layout/page-container.tsx +0 -30
- package/packages/cli/vendor/src/components/layout/page-header.tsx +0 -104
- package/packages/cli/vendor/src/components/layout/section-header.tsx +0 -56
- package/packages/cli/vendor/src/components/layout/sidebar-nav.tsx +0 -377
- package/packages/cli/vendor/src/components/layout/sticky-footer-bar.tsx +0 -23
- package/packages/cli/vendor/src/components/patterns/bulk-action-bar.tsx +0 -53
- package/packages/cli/vendor/src/components/patterns/data-view.tsx +0 -64
- package/packages/cli/vendor/src/components/patterns/detail-layout.tsx +0 -75
- package/packages/cli/vendor/src/components/patterns/form-builder.tsx +0 -472
- package/packages/cli/vendor/src/components/patterns/page-toolbar.tsx +0 -61
- package/packages/cli/vendor/src/components/patterns/resource-detail-page.tsx +0 -164
- package/packages/cli/vendor/src/components/patterns/resource-page.tsx +0 -149
- package/packages/cli/vendor/src/components/patterns/settings-page.tsx +0 -84
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { Toolbar as ToolbarPrimitive } from "@base-ui/react/toolbar"
|
|
4
|
+
|
|
5
|
+
import { cn } from "@/lib/utils"
|
|
6
|
+
|
|
7
|
+
export type ToolbarProps = ToolbarPrimitive.Root.Props
|
|
8
|
+
export type ToolbarGroupProps = ToolbarPrimitive.Group.Props
|
|
9
|
+
export type ToolbarButtonProps = ToolbarPrimitive.Button.Props
|
|
10
|
+
export type ToolbarLinkProps = ToolbarPrimitive.Link.Props
|
|
11
|
+
export type ToolbarInputProps = ToolbarPrimitive.Input.Props
|
|
12
|
+
export type ToolbarSeparatorProps = ToolbarPrimitive.Separator.Props
|
|
13
|
+
|
|
14
|
+
function Toolbar({ className, orientation = "horizontal", ...props }: ToolbarProps) {
|
|
15
|
+
return (
|
|
16
|
+
<ToolbarPrimitive.Root
|
|
17
|
+
data-slot="toolbar"
|
|
18
|
+
orientation={orientation}
|
|
19
|
+
className={cn(
|
|
20
|
+
"flex min-w-0 items-center gap-1 rounded-[var(--radius-lg)] border border-border bg-card p-1 text-card-foreground shadow-xs",
|
|
21
|
+
orientation === "vertical" && "w-max flex-col items-stretch",
|
|
22
|
+
className
|
|
23
|
+
)}
|
|
24
|
+
{...props}
|
|
25
|
+
/>
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function ToolbarGroup({ className, ...props }: ToolbarGroupProps) {
|
|
30
|
+
return <ToolbarPrimitive.Group data-slot="toolbar-group" className={cn("flex min-w-0 items-center gap-1", className)} {...props} />
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function ToolbarButton({ className, ...props }: ToolbarButtonProps) {
|
|
34
|
+
return (
|
|
35
|
+
<ToolbarPrimitive.Button
|
|
36
|
+
data-slot="toolbar-button"
|
|
37
|
+
className={cn("inline-flex h-8 min-w-8 items-center justify-center gap-1.5 rounded-[var(--radius-md)] px-2.5 text-sm font-medium text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[pressed]:bg-muted data-[pressed]:text-foreground [&_svg]:size-4 [&_svg]:shrink-0", className)}
|
|
38
|
+
{...props}
|
|
39
|
+
/>
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function ToolbarLink({ className, ...props }: ToolbarLinkProps) {
|
|
44
|
+
return (
|
|
45
|
+
<ToolbarPrimitive.Link
|
|
46
|
+
data-slot="toolbar-link"
|
|
47
|
+
className={cn("inline-flex h-8 items-center justify-center gap-1.5 rounded-[var(--radius-md)] px-2.5 text-sm font-medium text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring", className)}
|
|
48
|
+
{...props}
|
|
49
|
+
/>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function ToolbarInput({ className, ...props }: ToolbarInputProps) {
|
|
54
|
+
return (
|
|
55
|
+
<ToolbarPrimitive.Input
|
|
56
|
+
data-slot="toolbar-input"
|
|
57
|
+
className={cn("h-8 min-w-32 rounded-[var(--radius-md)] border border-input bg-background px-2.5 text-sm outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring", className)}
|
|
58
|
+
{...props}
|
|
59
|
+
/>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function ToolbarSeparator({ className, ...props }: ToolbarSeparatorProps) {
|
|
64
|
+
return <ToolbarPrimitive.Separator data-slot="toolbar-separator" className={cn("mx-1 h-5 w-px bg-border data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full", className)} {...props} />
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { Toolbar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarSeparator }
|
|
@@ -9,20 +9,27 @@ export * from './components/ui/badge'
|
|
|
9
9
|
export * from './components/ui/tabs'
|
|
10
10
|
export * from './components/ui/dialog'
|
|
11
11
|
export * from './components/ui/dropdown-menu'
|
|
12
|
-
export * from './components/ui/popover'
|
|
12
|
+
export * from './components/ui/popover'
|
|
13
|
+
export * from './components/ui/hover-card'
|
|
14
|
+
export * from './components/ui/menubar'
|
|
15
|
+
export * from './components/ui/navigation-menu'
|
|
13
16
|
export * from './components/ui/select'
|
|
14
17
|
export * from './components/ui/table'
|
|
15
18
|
export * from './components/ui/accordion'
|
|
16
19
|
export * from './components/ui/collapse'
|
|
17
|
-
export * from './components/ui/
|
|
20
|
+
export * from './components/ui/command'
|
|
21
|
+
export * from './components/ui/skeleton'
|
|
18
22
|
export * from './components/ui/divider'
|
|
19
23
|
export * from './components/ui/segmented-control'
|
|
20
24
|
export * from './components/ui/spinner'
|
|
21
25
|
export * from './components/ui/tooltip'
|
|
22
26
|
export * from './components/ui/kbd'
|
|
23
|
-
export * from './components/ui/radio-group'
|
|
24
|
-
export * from './components/ui/scroll-box'
|
|
25
|
-
export * from './components/ui/right-click-menu'
|
|
27
|
+
export * from './components/ui/radio-group'
|
|
28
|
+
export * from './components/ui/scroll-box'
|
|
29
|
+
export * from './components/ui/right-click-menu'
|
|
30
|
+
export * from './components/ui/number-field'
|
|
31
|
+
export * from './components/ui/toggle-group'
|
|
32
|
+
export * from './components/ui/toolbar'
|
|
26
33
|
|
|
27
34
|
// Reusable groups
|
|
28
35
|
export * from './components/actions/public'
|
|
@@ -16,9 +16,15 @@ export const documentedPublicComponentSurfaces: readonly PublicComponentSurfaceE
|
|
|
16
16
|
{ slug: "checkbox", registryName: "checkbox", surface: "documented" },
|
|
17
17
|
{ slug: "switch", registryName: "switch", surface: "documented" },
|
|
18
18
|
{ slug: "radio-group", registryName: "radio-group", surface: "documented" },
|
|
19
|
+
{ slug: "number-field", registryName: "number-field", surface: "documented" },
|
|
20
|
+
{ slug: "toggle-group", registryName: "toggle-group", surface: "documented" },
|
|
21
|
+
{ slug: "toolbar", registryName: "toolbar", surface: "documented" },
|
|
19
22
|
{ slug: "overlay", registryName: "dialog", surface: "documented" },
|
|
20
23
|
{ slug: "dropdown-menu", registryName: "dropdown-menu", surface: "documented" },
|
|
21
24
|
{ slug: "popover", registryName: "popover", surface: "documented" },
|
|
25
|
+
{ slug: "hover-card", registryName: "hover-card", surface: "documented" },
|
|
26
|
+
{ slug: "menubar", registryName: "menubar", surface: "documented" },
|
|
27
|
+
{ slug: "navigation-menu", registryName: "navigation-menu", surface: "documented" },
|
|
22
28
|
{ slug: "tooltip", registryName: "tooltip", surface: "documented" },
|
|
23
29
|
{ slug: "data-table", registryName: "data-table", surface: "documented" },
|
|
24
30
|
{ slug: "pagination", registryName: "pagination", surface: "documented" },
|
|
@@ -71,16 +77,7 @@ export const documentedPublicComponentSurfaces: readonly PublicComponentSurfaceE
|
|
|
71
77
|
{ slug: "image-cropper", registryName: "image-cropper", surface: "documented" },
|
|
72
78
|
] as const
|
|
73
79
|
|
|
74
|
-
export const standalonePublicComponentSurfaces: readonly PublicComponentSurfaceEntry[] = [
|
|
75
|
-
{ slug: "form-builder", registryName: "form-builder", surface: "standalone" },
|
|
76
|
-
{ slug: "page-toolbar", registryName: "page-toolbar", surface: "standalone" },
|
|
77
|
-
{ slug: "bulk-action-bar", registryName: "bulk-action-bar", surface: "standalone" },
|
|
78
|
-
{ slug: "detail-layout", registryName: "detail-layout", surface: "standalone" },
|
|
79
|
-
{ slug: "settings-page", registryName: "settings-page", surface: "standalone" },
|
|
80
|
-
{ slug: "data-view", registryName: "data-view", surface: "standalone" },
|
|
81
|
-
{ slug: "resource-page", registryName: "resource-page", surface: "standalone" },
|
|
82
|
-
{ slug: "resource-detail-page", registryName: "resource-detail-page", surface: "standalone" },
|
|
83
|
-
] as const
|
|
80
|
+
export const standalonePublicComponentSurfaces: readonly PublicComponentSurfaceEntry[] = [] as const
|
|
84
81
|
|
|
85
82
|
export const publicComponentSurfaceEntries = [
|
|
86
83
|
...documentedPublicComponentSurfaces,
|
|
@@ -42,6 +42,8 @@ export const registryGroups: RegistryGroup[] = [
|
|
|
42
42
|
component("dropdown-menu", "stable", "src/components/ui/dropdown-menu"),
|
|
43
43
|
component("popover", "stable", "src/components/ui/popover"),
|
|
44
44
|
component("tooltip", "preview", "src/components/ui/tooltip"),
|
|
45
|
+
component("hover-card", "stable", "src/components/ui/hover-card"),
|
|
46
|
+
component("menubar", "preview", "src/components/ui/menubar"),
|
|
45
47
|
component("select", "stable", "src/components/ui/select"),
|
|
46
48
|
component("table", "stable", "src/components/ui/table"),
|
|
47
49
|
component("segmented-control", "preview", "src/components/ui/segmented-control"),
|
|
@@ -50,6 +52,8 @@ export const registryGroups: RegistryGroup[] = [
|
|
|
50
52
|
component("kbd", "stable", "src/components/ui/kbd"),
|
|
51
53
|
component("scroll-box", "stable", "src/components/ui/scroll-box"),
|
|
52
54
|
component("right-click-menu", "stable", "src/components/ui/right-click-menu"),
|
|
55
|
+
component("toggle-group", "preview", "src/components/ui/toggle-group"),
|
|
56
|
+
component("toolbar", "preview", "src/components/ui/toolbar"),
|
|
53
57
|
component("collapse", "preview", "src/components/ui/collapse"),
|
|
54
58
|
component("command", "preview", "src/components/ui/command"),
|
|
55
59
|
component("divider", "preview", "src/components/ui/divider"),
|
|
@@ -78,6 +82,7 @@ export const registryGroups: RegistryGroup[] = [
|
|
|
78
82
|
component("inline-editable", "preview", "src/components/inputs/inline-editable.tsx"),
|
|
79
83
|
component("json-input", "preview", "src/components/inputs/json-input.tsx"),
|
|
80
84
|
component("time-picker", "preview", "src/components/inputs/time-picker.tsx"),
|
|
85
|
+
component("number-field", "preview", "src/components/ui/number-field"),
|
|
81
86
|
],
|
|
82
87
|
},
|
|
83
88
|
{
|
|
@@ -137,8 +142,7 @@ export const registryGroups: RegistryGroup[] = [
|
|
|
137
142
|
{
|
|
138
143
|
name: "feedback",
|
|
139
144
|
components: [
|
|
140
|
-
component("
|
|
141
|
-
component("page-state", "preview", "src/components/feedback/page-state.tsx"),
|
|
145
|
+
component("state-view", "stable", "src/components/feedback/state-view.tsx"),
|
|
142
146
|
component("alert", "preview", "src/components/feedback/alert.tsx"),
|
|
143
147
|
],
|
|
144
148
|
},
|
|
@@ -153,15 +157,7 @@ export const registryGroups: RegistryGroup[] = [
|
|
|
153
157
|
{
|
|
154
158
|
name: "patterns",
|
|
155
159
|
components: [
|
|
156
|
-
component("bulk-action-bar", "preview", "src/components/patterns/bulk-action-bar.tsx"),
|
|
157
|
-
component("data-view", "preview", "src/components/patterns/data-view.tsx"),
|
|
158
|
-
component("detail-layout", "preview", "src/components/patterns/detail-layout.tsx"),
|
|
159
160
|
component("empty-state", "preview", "src/components/patterns/empty-state.tsx"),
|
|
160
|
-
component("form-builder", "preview", "src/components/patterns/form-builder.tsx"),
|
|
161
|
-
component("resource-detail-page", "preview", "src/components/patterns/resource-detail-page.tsx"),
|
|
162
|
-
component("resource-page", "preview", "src/components/patterns/resource-page.tsx"),
|
|
163
|
-
component("page-toolbar", "preview", "src/components/patterns/page-toolbar.tsx"),
|
|
164
|
-
component("settings-page", "preview", "src/components/patterns/settings-page.tsx"),
|
|
165
161
|
],
|
|
166
162
|
},
|
|
167
163
|
{
|
|
@@ -188,7 +184,13 @@ export const registryGroups: RegistryGroup[] = [
|
|
|
188
184
|
component("saved-filter-select", "preview", "src/components/filters/saved-filter-select.tsx"),
|
|
189
185
|
],
|
|
190
186
|
},
|
|
191
|
-
{
|
|
187
|
+
{
|
|
188
|
+
name: "navigation",
|
|
189
|
+
components: [
|
|
190
|
+
component("navigation-menu", "preview", "src/components/ui/navigation-menu"),
|
|
191
|
+
component("pagination", "stable", "src/components/navigation/pagination.tsx"),
|
|
192
|
+
],
|
|
193
|
+
},
|
|
192
194
|
{ name: "charts", components: [component("progress-circle", "stable", "src/components/charts/progress-circle.tsx")] },
|
|
193
195
|
{
|
|
194
196
|
name: "wizard",
|
|
@@ -221,7 +223,7 @@ export const componentRows: ComponentRow[] = [
|
|
|
221
223
|
|
|
222
224
|
export const wizardSteps = [
|
|
223
225
|
{ id: "setup", title: "Setup", description: "init + theme", completed: true },
|
|
224
|
-
{ id: "add", title: "Add", description: "
|
|
226
|
+
{ id: "add", title: "Add", description: "registry components", completed: true },
|
|
225
227
|
{ id: "test", title: "Test", description: "visible workbench" },
|
|
226
228
|
]
|
|
227
229
|
|
|
@@ -25,7 +25,7 @@ export function HeroSection() {
|
|
|
25
25
|
<div className="flex flex-wrap gap-2">
|
|
26
26
|
<Button leftIcon={<PlusIcon className="size-4" />}>Create</Button>
|
|
27
27
|
<Button variant="outline" leftIcon={<SettingsIcon className="size-4" />}>Settings</Button>
|
|
28
|
-
<CopyButton value="npx tembro@
|
|
28
|
+
<CopyButton value="npx tembro@6.0.0 list --json">Copy list command</CopyButton>
|
|
29
29
|
</div>
|
|
30
30
|
</div>
|
|
31
31
|
|
|
@@ -33,7 +33,7 @@ export function HeroSection() {
|
|
|
33
33
|
<StatisticCard label="Registry components" value={moduleCount} change="visible below" trend="up" description="tembro add <name>" />
|
|
34
34
|
<StatisticCard label="Local source files" value="152" change="with hooks/lib" trend="up" description="installed by CLI" />
|
|
35
35
|
<StatisticCard label="Categories" value={registryGroups.length} change="all shown" trend="up" description="actions to wizard" />
|
|
36
|
-
<StatisticCard label="Build" value="Pass" change="doctor pass" trend="up" description="tembro@
|
|
36
|
+
<StatisticCard label="Build" value="Pass" change="doctor pass" trend="up" description="tembro@6.0.0" />
|
|
37
37
|
</StatisticGrid>
|
|
38
38
|
</div>
|
|
39
39
|
</section>
|
package/packages/cli/vendor/templates/showcase/src/showcase/sections/ComponentLivePreview.tsx
CHANGED
|
@@ -19,7 +19,7 @@ import { StatusLegend } from "@/components/display/status-legend"
|
|
|
19
19
|
import { Tag, TagGroup } from "@/components/display/tag"
|
|
20
20
|
import { Timeline } from "@/components/display/timeline"
|
|
21
21
|
import { Alert } from "@/components/feedback/alert"
|
|
22
|
-
import {
|
|
22
|
+
import { StateView } from "@/components/feedback/state-view"
|
|
23
23
|
import { Pagination } from "@/components/navigation/pagination"
|
|
24
24
|
import { EmptyState } from "@/components/patterns/empty-state"
|
|
25
25
|
import { Badge } from "@/components/ui/badge"
|
|
@@ -283,7 +283,7 @@ function DirectComponentSurface({ group, component }: ComponentLivePreviewProps)
|
|
|
283
283
|
if (group.name === "form") return <FormsSection />
|
|
284
284
|
if (group.name === "display") return <DisplayPreview />
|
|
285
285
|
if (group.name === "calendar" || group.name === "navigation") return group.name === "navigation" ? <Pagination page={2} pageCount={8} onPageChange={() => undefined} /> : <CalendarSection />
|
|
286
|
-
if (group.name === "feedback") return component.name === "alert" ? <Alert tone="success" title="Alert component" description="Rendered from feedback/alert." /> : <
|
|
286
|
+
if (group.name === "feedback") return component.name === "alert" ? <Alert tone="success" title="Alert component" description="Rendered from feedback/alert." /> : <StateView status="loading" title="StateView" description="Rendered from feedback/state-view." />
|
|
287
287
|
if (group.name === "patterns") return <EmptyState title="EmptyState component" description="Rendered from patterns/empty-state." primaryAction={{ label: "Create item" }} secondaryAction={{ label: "Reset" }} />
|
|
288
288
|
if (group.name === "wizard") return <WizardSection />
|
|
289
289
|
if (group.name === "overlay") return <OverlaySection />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProgressCard } from "@/components/display/progress"
|
|
2
|
-
import {
|
|
2
|
+
import { StateView } from "@/components/feedback/state-view"
|
|
3
3
|
import { Rating } from "@/components/inputs/rating"
|
|
4
4
|
import { RangeSlider, Slider } from "@/components/inputs/slider"
|
|
5
5
|
import { Badge } from "@/components/ui/badge"
|
|
@@ -20,7 +20,7 @@ export function FormsSection() {
|
|
|
20
20
|
</CardContent>
|
|
21
21
|
</Card>
|
|
22
22
|
<ProgressCard title="Form completeness" description="input, select, switch, textarea" value={86} tone="success" footer={<Badge label="forms" status="success" />} />
|
|
23
|
-
<
|
|
23
|
+
<StateView status="loading" title="Loading state" description="Spinner/skeleton/progress state component." />
|
|
24
24
|
</div>
|
|
25
25
|
)
|
|
26
26
|
}
|
|
@@ -1876,17 +1876,17 @@
|
|
|
1876
1876
|
[data-slot="statistic-change"][data-trend="up"] { color: var(--aui-success-fg); background: var(--aui-success-bg); }
|
|
1877
1877
|
[data-slot="statistic-change"][data-trend="down"] { color: var(--destructive); background: color-mix(in oklch, var(--destructive), transparent 90%); }
|
|
1878
1878
|
|
|
1879
|
-
[data-slot="
|
|
1879
|
+
[data-slot="state-view"] {
|
|
1880
1880
|
border-color: var(--aui-card-border, var(--border));
|
|
1881
1881
|
border-radius: var(--aui-radius-panel);
|
|
1882
1882
|
background: var(--card);
|
|
1883
1883
|
box-shadow: var(--aui-card-shadow, var(--aui-shadow-xs));
|
|
1884
1884
|
}
|
|
1885
1885
|
|
|
1886
|
-
[data-slot="
|
|
1887
|
-
[data-slot="
|
|
1888
|
-
[data-slot="
|
|
1889
|
-
[data-slot="
|
|
1886
|
+
[data-slot="state-view-icon"] { color: var(--muted-foreground); background: var(--aui-surface-muted); }
|
|
1887
|
+
[data-slot="state-view"][data-tone="danger"] [data-slot="state-view-icon"] { color: var(--destructive); background: color-mix(in oklch, var(--destructive), transparent 90%); }
|
|
1888
|
+
[data-slot="state-view"][data-tone="success"] [data-slot="state-view-icon"] { color: var(--aui-success-fg); background: var(--aui-success-bg); }
|
|
1889
|
+
[data-slot="state-view"][data-tone="info"] [data-slot="state-view-icon"] { color: var(--aui-info-fg); background: var(--aui-info-bg); }
|
|
1890
1890
|
|
|
1891
1891
|
[data-slot="file-upload-dropzone"],
|
|
1892
1892
|
[data-slot="file-upload-item"] {
|