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.
Files changed (177) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/components/charts/progress-circle.d.ts +12 -3
  3. package/dist/components/data-table/data-table.d.ts +2 -2
  4. package/dist/components/feedback/index.d.ts +0 -2
  5. package/dist/components/layout/section.d.ts +1 -8
  6. package/dist/components/patterns/index.d.ts +0 -8
  7. package/dist/components/patterns/public.d.ts +0 -8
  8. package/dist/components/ui/hover-card/index.cjs +1 -0
  9. package/dist/components/ui/hover-card/index.d.ts +11 -0
  10. package/dist/components/ui/hover-card/index.js +1 -0
  11. package/dist/components/ui/menubar/index.cjs +1 -0
  12. package/dist/components/ui/menubar/index.d.ts +42 -0
  13. package/dist/components/ui/menubar/index.js +1 -0
  14. package/dist/components/ui/navigation-menu/index.cjs +1 -0
  15. package/dist/components/ui/navigation-menu/index.d.ts +20 -0
  16. package/dist/components/ui/navigation-menu/index.js +1 -0
  17. package/dist/components/ui/number-field/index.cjs +1 -0
  18. package/dist/components/ui/number-field/index.d.ts +18 -0
  19. package/dist/components/ui/number-field/index.js +1 -0
  20. package/dist/components/ui/toggle-group/index.cjs +1 -0
  21. package/dist/components/ui/toggle-group/index.d.ts +13 -0
  22. package/dist/components/ui/toggle-group/index.js +1 -0
  23. package/dist/components/ui/toolbar/index.cjs +1 -0
  24. package/dist/components/ui/toolbar/index.d.ts +14 -0
  25. package/dist/components/ui/toolbar/index.js +1 -0
  26. package/dist/index.d.ts +7 -0
  27. package/dist/src/components/charts/progress-circle.cjs +1 -1
  28. package/dist/src/components/charts/progress-circle.js +57 -3
  29. package/dist/src/components/data-table/data-table.cjs +1 -1
  30. package/dist/src/components/data-table/data-table.js +102 -100
  31. package/dist/src/components/feedback/index.cjs +1 -1
  32. package/dist/src/components/feedback/index.js +2 -4
  33. package/dist/src/components/layout/index.cjs +1 -1
  34. package/dist/src/components/layout/index.js +3 -3
  35. package/dist/src/components/layout/public.cjs +1 -1
  36. package/dist/src/components/layout/public.js +3 -3
  37. package/dist/src/components/layout/section.cjs +1 -1
  38. package/dist/src/components/layout/section.js +2 -26
  39. package/dist/src/components/patterns/index.cjs +1 -1
  40. package/dist/src/components/patterns/index.js +2 -10
  41. package/dist/src/components/patterns/public.cjs +1 -1
  42. package/dist/src/components/patterns/public.js +2 -10
  43. package/dist/src/components/ui/hover-card/index.cjs +1 -0
  44. package/dist/src/components/ui/hover-card/index.js +50 -0
  45. package/dist/src/components/ui/menubar/index.cjs +1 -0
  46. package/dist/src/components/ui/menubar/index.js +132 -0
  47. package/dist/src/components/ui/navigation-menu/index.cjs +1 -0
  48. package/dist/src/components/ui/navigation-menu/index.js +73 -0
  49. package/dist/src/components/ui/number-field/index.cjs +1 -0
  50. package/dist/src/components/ui/number-field/index.js +73 -0
  51. package/dist/src/components/ui/toggle-group/index.cjs +1 -0
  52. package/dist/src/components/ui/toggle-group/index.js +32 -0
  53. package/dist/src/components/ui/toolbar/index.cjs +1 -0
  54. package/dist/src/components/ui/toolbar/index.js +50 -0
  55. package/dist/src/index.cjs +1 -1
  56. package/dist/src/index.js +92 -95
  57. package/dist/src/public-component-surface.cjs +1 -1
  58. package/dist/src/public-component-surface.js +31 -42
  59. package/package.json +1 -1
  60. package/packages/cli/dist/index.cjs +112 -112
  61. package/packages/cli/vendor/src/components/charts/progress-circle.tsx +78 -3
  62. package/packages/cli/vendor/src/components/data-table/data-table.tsx +4 -4
  63. package/packages/cli/vendor/src/components/feedback/index.ts +0 -2
  64. package/packages/cli/vendor/src/components/layout/section.tsx +1 -28
  65. package/packages/cli/vendor/src/components/patterns/index.ts +0 -8
  66. package/packages/cli/vendor/src/components/patterns/public.ts +0 -8
  67. package/packages/cli/vendor/src/components/ui/hover-card/index.tsx +72 -0
  68. package/packages/cli/vendor/src/components/ui/menubar/index.tsx +140 -0
  69. package/packages/cli/vendor/src/components/ui/navigation-menu/index.tsx +100 -0
  70. package/packages/cli/vendor/src/components/ui/number-field/index.tsx +89 -0
  71. package/packages/cli/vendor/src/components/ui/toggle-group/index.tsx +72 -0
  72. package/packages/cli/vendor/src/components/ui/toolbar/index.tsx +67 -0
  73. package/packages/cli/vendor/src/index.ts +12 -5
  74. package/packages/cli/vendor/src/public-component-surface.ts +7 -10
  75. package/packages/cli/vendor/templates/showcase/src/showcase/data/registry.ts +14 -12
  76. package/packages/cli/vendor/templates/showcase/src/showcase/layout/HeroSection.tsx +2 -2
  77. package/packages/cli/vendor/templates/showcase/src/showcase/layout/WorkbenchSidebar.tsx +1 -1
  78. package/packages/cli/vendor/templates/showcase/src/showcase/sections/ComponentLivePreview.tsx +2 -2
  79. package/packages/cli/vendor/templates/showcase/src/showcase/sections/FormsSection.tsx +2 -2
  80. package/packages/cli/vendor/templates/styles/globals.css +5 -5
  81. package/registry.json +2630 -233
  82. package/dist/components/charts/progress-ring.cjs +0 -1
  83. package/dist/components/charts/progress-ring.d.ts +0 -13
  84. package/dist/components/charts/progress-ring.js +0 -1
  85. package/dist/components/feedback/loading-state.cjs +0 -1
  86. package/dist/components/feedback/loading-state.d.ts +0 -9
  87. package/dist/components/feedback/loading-state.js +0 -1
  88. package/dist/components/feedback/page-state.cjs +0 -1
  89. package/dist/components/feedback/page-state.d.ts +0 -18
  90. package/dist/components/feedback/page-state.js +0 -1
  91. package/dist/components/layout/page-container.cjs +0 -1
  92. package/dist/components/layout/page-container.d.ts +0 -7
  93. package/dist/components/layout/page-container.js +0 -1
  94. package/dist/components/layout/page-header.cjs +0 -1
  95. package/dist/components/layout/page-header.d.ts +0 -23
  96. package/dist/components/layout/page-header.js +0 -1
  97. package/dist/components/layout/section-header.cjs +0 -1
  98. package/dist/components/layout/section-header.d.ts +0 -14
  99. package/dist/components/layout/section-header.js +0 -1
  100. package/dist/components/layout/sidebar-nav.cjs +0 -1
  101. package/dist/components/layout/sidebar-nav.d.ts +0 -37
  102. package/dist/components/layout/sidebar-nav.js +0 -1
  103. package/dist/components/layout/sticky-footer-bar.cjs +0 -1
  104. package/dist/components/layout/sticky-footer-bar.d.ts +0 -7
  105. package/dist/components/layout/sticky-footer-bar.js +0 -1
  106. package/dist/components/patterns/bulk-action-bar.cjs +0 -1
  107. package/dist/components/patterns/bulk-action-bar.d.ts +0 -10
  108. package/dist/components/patterns/bulk-action-bar.js +0 -1
  109. package/dist/components/patterns/data-view.cjs +0 -1
  110. package/dist/components/patterns/data-view.d.ts +0 -17
  111. package/dist/components/patterns/data-view.js +0 -1
  112. package/dist/components/patterns/detail-layout.cjs +0 -1
  113. package/dist/components/patterns/detail-layout.d.ts +0 -16
  114. package/dist/components/patterns/detail-layout.js +0 -1
  115. package/dist/components/patterns/form-builder.cjs +0 -1
  116. package/dist/components/patterns/form-builder.d.ts +0 -110
  117. package/dist/components/patterns/form-builder.js +0 -1
  118. package/dist/components/patterns/page-toolbar.cjs +0 -1
  119. package/dist/components/patterns/page-toolbar.d.ts +0 -11
  120. package/dist/components/patterns/page-toolbar.js +0 -1
  121. package/dist/components/patterns/resource-detail-page.cjs +0 -1
  122. package/dist/components/patterns/resource-detail-page.d.ts +0 -39
  123. package/dist/components/patterns/resource-detail-page.js +0 -1
  124. package/dist/components/patterns/resource-page.cjs +0 -1
  125. package/dist/components/patterns/resource-page.d.ts +0 -30
  126. package/dist/components/patterns/resource-page.js +0 -1
  127. package/dist/components/patterns/settings-page.cjs +0 -1
  128. package/dist/components/patterns/settings-page.d.ts +0 -21
  129. package/dist/components/patterns/settings-page.js +0 -1
  130. package/dist/src/components/charts/progress-ring.cjs +0 -1
  131. package/dist/src/components/charts/progress-ring.js +0 -57
  132. package/dist/src/components/feedback/loading-state.cjs +0 -1
  133. package/dist/src/components/feedback/loading-state.js +0 -15
  134. package/dist/src/components/feedback/page-state.cjs +0 -1
  135. package/dist/src/components/feedback/page-state.js +0 -28
  136. package/dist/src/components/layout/page-container.cjs +0 -1
  137. package/dist/src/components/layout/page-container.js +0 -21
  138. package/dist/src/components/layout/page-header.cjs +0 -1
  139. package/dist/src/components/layout/page-header.js +0 -92
  140. package/dist/src/components/layout/section-header.cjs +0 -1
  141. package/dist/src/components/layout/section-header.js +0 -44
  142. package/dist/src/components/layout/sidebar-nav.cjs +0 -1
  143. package/dist/src/components/layout/sidebar-nav.js +0 -220
  144. package/dist/src/components/layout/sticky-footer-bar.cjs +0 -1
  145. package/dist/src/components/layout/sticky-footer-bar.js +0 -20
  146. package/dist/src/components/patterns/bulk-action-bar.cjs +0 -1
  147. package/dist/src/components/patterns/bulk-action-bar.js +0 -34
  148. package/dist/src/components/patterns/data-view.cjs +0 -1
  149. package/dist/src/components/patterns/data-view.js +0 -47
  150. package/dist/src/components/patterns/detail-layout.cjs +0 -1
  151. package/dist/src/components/patterns/detail-layout.js +0 -65
  152. package/dist/src/components/patterns/form-builder.cjs +0 -1
  153. package/dist/src/components/patterns/form-builder.js +0 -263
  154. package/dist/src/components/patterns/page-toolbar.cjs +0 -1
  155. package/dist/src/components/patterns/page-toolbar.js +0 -41
  156. package/dist/src/components/patterns/resource-detail-page.cjs +0 -1
  157. package/dist/src/components/patterns/resource-detail-page.js +0 -100
  158. package/dist/src/components/patterns/resource-page.cjs +0 -1
  159. package/dist/src/components/patterns/resource-page.js +0 -88
  160. package/dist/src/components/patterns/settings-page.cjs +0 -1
  161. package/dist/src/components/patterns/settings-page.js +0 -64
  162. package/packages/cli/vendor/src/components/charts/progress-ring.tsx +0 -56
  163. package/packages/cli/vendor/src/components/feedback/loading-state.tsx +0 -15
  164. package/packages/cli/vendor/src/components/feedback/page-state.tsx +0 -29
  165. package/packages/cli/vendor/src/components/layout/page-container.tsx +0 -30
  166. package/packages/cli/vendor/src/components/layout/page-header.tsx +0 -104
  167. package/packages/cli/vendor/src/components/layout/section-header.tsx +0 -56
  168. package/packages/cli/vendor/src/components/layout/sidebar-nav.tsx +0 -377
  169. package/packages/cli/vendor/src/components/layout/sticky-footer-bar.tsx +0 -23
  170. package/packages/cli/vendor/src/components/patterns/bulk-action-bar.tsx +0 -53
  171. package/packages/cli/vendor/src/components/patterns/data-view.tsx +0 -64
  172. package/packages/cli/vendor/src/components/patterns/detail-layout.tsx +0 -75
  173. package/packages/cli/vendor/src/components/patterns/form-builder.tsx +0 -472
  174. package/packages/cli/vendor/src/components/patterns/page-toolbar.tsx +0 -61
  175. package/packages/cli/vendor/src/components/patterns/resource-detail-page.tsx +0 -164
  176. package/packages/cli/vendor/src/components/patterns/resource-page.tsx +0 -149
  177. 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/skeleton'
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("loading-state", "stable", "src/components/feedback/loading-state.tsx"),
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
- { name: "navigation", components: [component("pagination", "stable", "src/components/navigation/pagination.tsx")] },
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: "105 registry components", completed: true },
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@4.2.1 list --json">Copy list command</CopyButton>
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@4.2.1" />
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>
@@ -72,7 +72,7 @@ export function WorkbenchSidebar({ selectedKey, onSelect }: WorkbenchSidebarProp
72
72
  }),
73
73
  ]}
74
74
  footerAccount={{
75
- label: "tembro@4.2.1",
75
+ label: "tembro@6.0.0",
76
76
  description: `${moduleCount} registry components`,
77
77
  }}
78
78
  activeIndicator="bar"
@@ -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 { LoadingState } from "@/components/feedback/loading-state"
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." /> : <LoadingState label="LoadingState" description="Rendered from feedback/loading-state." />
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 { LoadingState } from "@/components/feedback/loading-state"
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
- <LoadingState label="Loading state" description="Spinner/skeleton/progress state component." />
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="page-state"] {
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="page-state-icon"] { color: var(--muted-foreground); background: var(--aui-surface-muted); }
1887
- [data-slot="page-state"][data-tone="error"] [data-slot="page-state-icon"] { color: var(--destructive); background: color-mix(in oklch, var(--destructive), transparent 90%); }
1888
- [data-slot="page-state"][data-tone="success"] [data-slot="page-state-icon"] { color: var(--aui-success-fg); background: var(--aui-success-bg); }
1889
- [data-slot="page-state"][data-tone="info"] [data-slot="page-state-icon"] { color: var(--aui-info-fg); background: var(--aui-info-bg); }
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"] {