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
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/charts/progress-ring.cjs")
@@ -1,13 +0,0 @@
1
- import * as React from "react";
2
- export type ProgressRingProps = React.ComponentProps<"svg"> & {
3
- value: number;
4
- max?: number;
5
- size?: number;
6
- strokeWidth?: number;
7
- label?: React.ReactNode;
8
- description?: React.ReactNode;
9
- tone?: "default" | "success" | "warning" | "danger";
10
- loading?: boolean;
11
- };
12
- declare function ProgressRing({ value, max, size, strokeWidth, label, description, tone, loading, className, ...props }: ProgressRingProps): React.JSX.Element;
13
- export { ProgressRing };
@@ -1 +0,0 @@
1
- export * from "../../src/components/charts/progress-ring.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/feedback/loading-state.cjs")
@@ -1,9 +0,0 @@
1
- import * as React from "react";
2
- import { type StateViewProps } from "./state-view";
3
- export type LoadingStateProps = Omit<StateViewProps, "status" | "title" | "loadingVariant" | "variant" | "slot"> & {
4
- label?: React.ReactNode;
5
- variant?: "spinner" | "skeleton" | "progress";
6
- };
7
- /** @deprecated Use StateView with status="loading". */
8
- declare function LoadingState({ label, variant, ...props }: LoadingStateProps): React.JSX.Element;
9
- export { LoadingState };
@@ -1 +0,0 @@
1
- export * from "../../src/components/feedback/loading-state.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/feedback/page-state.cjs")
@@ -1,18 +0,0 @@
1
- import * as React from "react";
2
- import { type StateViewProps, type StateViewStatus } from "./state-view";
3
- export type PageStateTone = Extract<StateViewStatus, "empty" | "loading" | "error" | "success" | "info">;
4
- export type PageStateProps = Omit<StateViewProps, "status" | "size" | "variant" | "tone" | "actions" | "slot"> & {
5
- tone?: PageStateTone;
6
- action?: React.ReactNode;
7
- extra?: React.ReactNode;
8
- compact?: boolean;
9
- };
10
- /** @deprecated Use StateView. */
11
- declare function PageState({ tone, action, extra, compact, className, ...props }: PageStateProps): React.JSX.Element;
12
- export type InlineStateProps = Omit<PageStateProps, "compact"> & {
13
- retryLabel?: React.ReactNode;
14
- onRetry?: () => void;
15
- };
16
- /** @deprecated Use StateView with variant="inline". */
17
- declare function InlineState({ tone, action, className, ...props }: InlineStateProps): React.JSX.Element;
18
- export { InlineState, PageState };
@@ -1 +0,0 @@
1
- export * from "../../src/components/feedback/page-state.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/layout/page-container.cjs")
@@ -1,7 +0,0 @@
1
- import * as React from "react";
2
- export type PageContainerSize = "default" | "sm" | "md" | "lg" | "xl" | "full";
3
- export type PageContainerProps = React.ComponentProps<"div"> & {
4
- size?: PageContainerSize;
5
- };
6
- declare function PageContainer({ className, size, ...props }: PageContainerProps): React.JSX.Element;
7
- export { PageContainer };
@@ -1 +0,0 @@
1
- export * from "../../src/components/layout/page-container.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/layout/page-header.cjs")
@@ -1,23 +0,0 @@
1
- import * as React from "react";
2
- import { type VariantProps } from "class-variance-authority";
3
- declare const pageHeaderVariants: (props?: ({
4
- variant?: "default" | "outline" | "ghost" | "elevated" | "soft" | null | undefined;
5
- size?: "default" | "sm" | "lg" | null | undefined;
6
- tone?: "warning" | "neutral" | "info" | "success" | "danger" | null | undefined;
7
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- export type PageHeaderProps = React.ComponentProps<"div"> & VariantProps<typeof pageHeaderVariants> & {
9
- title?: React.ReactNode;
10
- description?: React.ReactNode;
11
- eyebrow?: React.ReactNode;
12
- breadcrumbs?: React.ReactNode;
13
- actions?: React.ReactNode;
14
- meta?: React.ReactNode;
15
- leading?: React.ReactNode;
16
- footer?: React.ReactNode;
17
- sticky?: boolean;
18
- titleClassName?: string;
19
- descriptionClassName?: string;
20
- actionsClassName?: string;
21
- };
22
- declare function PageHeader({ className, variant, size, tone, title, description, eyebrow, breadcrumbs, actions, meta, leading, footer, sticky, titleClassName, descriptionClassName, actionsClassName, children, ...props }: PageHeaderProps): React.JSX.Element;
23
- export { PageHeader, pageHeaderVariants };
@@ -1 +0,0 @@
1
- export * from "../../src/components/layout/page-header.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/layout/section-header.cjs")
@@ -1,14 +0,0 @@
1
- import * as React from "react";
2
- export type SectionHeaderProps = React.ComponentProps<"div"> & {
3
- eyebrow?: React.ReactNode;
4
- title?: React.ReactNode;
5
- description?: React.ReactNode;
6
- actions?: React.ReactNode;
7
- meta?: React.ReactNode;
8
- align?: "start" | "center";
9
- size?: "sm" | "default" | "lg";
10
- titleClassName?: string;
11
- descriptionClassName?: string;
12
- };
13
- declare function SectionHeader({ className, eyebrow, title, description, actions, meta, align, size, titleClassName, descriptionClassName, children, ...props }: SectionHeaderProps): React.JSX.Element;
14
- export { SectionHeader };
@@ -1 +0,0 @@
1
- export * from "../../src/components/layout/section-header.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/layout/sidebar-nav.cjs")
@@ -1,37 +0,0 @@
1
- import * as React from "react";
2
- export type SidebarNavItem = {
3
- key: string;
4
- label: React.ReactNode;
5
- icon?: React.ReactNode;
6
- badge?: React.ReactNode;
7
- href?: string;
8
- items?: SidebarNavItem[];
9
- active?: boolean;
10
- current?: React.AriaAttributes["aria-current"];
11
- disabled?: boolean;
12
- hidden?: boolean;
13
- sectionLabel?: React.ReactNode;
14
- defaultExpanded?: boolean;
15
- expanded?: boolean;
16
- onExpandedChange?: (expanded: boolean) => void;
17
- tooltip?: React.ReactNode;
18
- onSelect?: () => void;
19
- };
20
- export type SidebarNavProps = React.ComponentProps<"nav"> & {
21
- items: SidebarNavItem[];
22
- collapsed?: boolean;
23
- scrollable?: boolean;
24
- tooltipOnCollapsed?: boolean;
25
- showSectionLabels?: boolean;
26
- itemSize?: "sm" | "md" | "lg";
27
- activeIndicator?: "none" | "bar" | "pill";
28
- itemClassName?: string;
29
- activeItemClassName?: string;
30
- renderItem?: (item: SidebarNavItem, element: React.ReactNode) => React.ReactNode;
31
- renderLink?: (props: React.ComponentProps<"a"> & {
32
- item: SidebarNavItem;
33
- [key: `data-${string}`]: string | boolean | undefined;
34
- }) => React.ReactNode;
35
- };
36
- declare function SidebarNav({ className, items, collapsed, scrollable, showSectionLabels, itemSize, activeIndicator, itemClassName, activeItemClassName, renderItem, renderLink, ...props }: SidebarNavProps): React.JSX.Element;
37
- export { SidebarNav };
@@ -1 +0,0 @@
1
- export * from "../../src/components/layout/sidebar-nav.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/layout/sticky-footer-bar.cjs")
@@ -1,7 +0,0 @@
1
- import * as React from "react";
2
- export type StickyFooterBarProps = React.ComponentProps<"div"> & {
3
- start?: React.ReactNode;
4
- end?: React.ReactNode;
5
- };
6
- declare function StickyFooterBar({ start, end, className, children, ...props }: StickyFooterBarProps): React.JSX.Element;
7
- export { StickyFooterBar };
@@ -1 +0,0 @@
1
- export * from "../../src/components/layout/sticky-footer-bar.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/bulk-action-bar.cjs")
@@ -1,10 +0,0 @@
1
- import * as React from "react";
2
- export type BulkActionBarProps = React.ComponentProps<"div"> & {
3
- selectedCount: number;
4
- selectedLabel?: (count: number) => React.ReactNode;
5
- actions?: React.ReactNode;
6
- clearLabel?: React.ReactNode;
7
- onClear?: () => void;
8
- };
9
- declare function BulkActionBar({ className, selectedCount, selectedLabel, actions, clearLabel, onClear, children, ...props }: BulkActionBarProps): React.JSX.Element | null;
10
- export { BulkActionBar };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/bulk-action-bar.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/data-view.cjs")
@@ -1,17 +0,0 @@
1
- import * as React from "react";
2
- import { type DataTableProps } from "@/components/data-table/data-table";
3
- import { PageToolbar } from "@/components/patterns/page-toolbar";
4
- export type DataViewProps<TData, TValue = unknown> = Omit<React.ComponentProps<"div">, "children"> & {
5
- title?: React.ReactNode;
6
- description?: React.ReactNode;
7
- toolbar?: React.ComponentProps<typeof PageToolbar>;
8
- table?: DataTableProps<TData, TValue>;
9
- count?: number;
10
- loading?: boolean;
11
- error?: React.ReactNode;
12
- emptyTitle?: React.ReactNode;
13
- emptyDescription?: React.ReactNode;
14
- children?: React.ReactNode;
15
- };
16
- declare function DataView<TData, TValue = unknown>({ className, title, description, toolbar, table, count, loading, error, emptyTitle, emptyDescription, children, ...props }: DataViewProps<TData, TValue>): React.JSX.Element;
17
- export { DataView };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/data-view.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/detail-layout.cjs")
@@ -1,16 +0,0 @@
1
- import * as React from "react";
2
- export type DetailLayoutProps = React.ComponentProps<"div"> & {
3
- title?: React.ReactNode;
4
- description?: React.ReactNode;
5
- eyebrow?: React.ReactNode;
6
- actions?: React.ReactNode;
7
- breadcrumbs?: React.ReactNode;
8
- summary?: React.ReactNode;
9
- aside?: React.ReactNode;
10
- footer?: React.ReactNode;
11
- headerClassName?: string;
12
- contentClassName?: string;
13
- asideClassName?: string;
14
- };
15
- declare function DetailLayout({ className, title, description, eyebrow, actions, breadcrumbs, summary, aside, footer, headerClassName, contentClassName, asideClassName, children, ...props }: DetailLayoutProps): React.JSX.Element;
16
- export { DetailLayout };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/detail-layout.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/form-builder.cjs")
@@ -1,110 +0,0 @@
1
- import * as React from "react";
2
- import type { Control, FieldPath, FieldValues } from "react-hook-form";
3
- import { type FormInputDateVariantProps, type FormInputNumberVariantProps, type FormInputPhoneVariantProps, type FormInputProps } from "@/components/form/form-input";
4
- import { type FormTextareaProps } from "@/components/form/form-textarea";
5
- import { type FormSelectAsyncVariantProps, type FormSelectProps } from "@/components/form/form-select";
6
- import { type FormSwitchProps } from "@/components/form/form-switch";
7
- import { type FormDateRangeInputProps } from "@/components/form/form-date-range-input";
8
- export type FormBuilderLayout = "grid" | "stack";
9
- export type FormBuilderDensity = "compact" | "default" | "comfortable";
10
- type DistributiveOmit<T, TKey extends PropertyKey> = T extends unknown ? Omit<T, TKey> : never;
11
- export type FormBuilderFieldRenderContext<TFieldValues extends FieldValues> = {
12
- control: Control<TFieldValues>;
13
- disabled?: boolean;
14
- readOnly?: boolean;
15
- };
16
- type BaseFormBuilderField = {
17
- id: string;
18
- hidden?: boolean;
19
- className?: string;
20
- colSpan?: 1 | 2 | 3 | 4 | "full";
21
- };
22
- export type FormBuilderCustomField<TFieldValues extends FieldValues> = BaseFormBuilderField & {
23
- type: "custom";
24
- render: (context: FormBuilderFieldRenderContext<TFieldValues>) => React.ReactNode;
25
- };
26
- export type FormBuilderInputField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
27
- type: "input";
28
- props: DistributiveOmit<FormInputProps<TFieldValues, TName>, "control">;
29
- };
30
- export type FormBuilderTextareaField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
31
- type: "textarea";
32
- props: Omit<FormTextareaProps<TFieldValues, TName>, "control">;
33
- };
34
- export type FormBuilderSelectField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
35
- type: "select";
36
- props: DistributiveOmit<FormSelectProps<TFieldValues, TName>, "control">;
37
- };
38
- export type FormBuilderAsyncSelectField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
39
- type: "async-select";
40
- props: Omit<FormSelectAsyncVariantProps<TFieldValues, TName>, "control" | "kind">;
41
- };
42
- export type FormBuilderSwitchField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
43
- type: "switch";
44
- props: Omit<FormSwitchProps<TFieldValues, TName>, "control">;
45
- };
46
- export type FormBuilderNumberField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
47
- type: "number";
48
- props: Omit<FormInputNumberVariantProps<TFieldValues, TName>, "control" | "kind">;
49
- };
50
- export type FormBuilderPhoneField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
51
- type: "phone";
52
- props: Omit<FormInputPhoneVariantProps<TFieldValues, TName>, "control" | "kind">;
53
- };
54
- export type FormBuilderDateField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
55
- type: "date";
56
- props: Omit<FormInputDateVariantProps<TFieldValues, TName>, "control" | "kind">;
57
- };
58
- export type FormBuilderDateRangeField<TFieldValues extends FieldValues, TFromName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TToName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = BaseFormBuilderField & {
59
- type: "date-range";
60
- props: Omit<FormDateRangeInputProps<TFieldValues, TFromName, TToName>, "control">;
61
- };
62
- type FormBuilderStoredField = BaseFormBuilderField & {
63
- type: "input" | "textarea" | "select" | "async-select" | "switch" | "number" | "phone" | "date" | "date-range";
64
- props: object;
65
- };
66
- export type FormBuilderField<TFieldValues extends FieldValues> = FormBuilderCustomField<TFieldValues> | FormBuilderStoredField;
67
- export type FormBuilderSection<TFieldValues extends FieldValues> = {
68
- id: string;
69
- title?: React.ReactNode;
70
- description?: React.ReactNode;
71
- actions?: React.ReactNode;
72
- hidden?: boolean;
73
- className?: string;
74
- fields: FormBuilderField<TFieldValues>[];
75
- };
76
- export type FormBuilderProps<TFieldValues extends FieldValues> = Omit<React.ComponentProps<"form">, "children"> & {
77
- control: Control<TFieldValues>;
78
- fields?: FormBuilderField<TFieldValues>[];
79
- sections?: FormBuilderSection<TFieldValues>[];
80
- layout?: FormBuilderLayout;
81
- density?: FormBuilderDensity;
82
- columns?: 1 | 2 | 3 | 4;
83
- disabled?: boolean;
84
- readOnly?: boolean;
85
- footer?: React.ReactNode;
86
- submitLabel?: React.ReactNode;
87
- resetLabel?: React.ReactNode;
88
- onResetClick?: () => void;
89
- isSubmitting?: boolean;
90
- sectionClassName?: string;
91
- fieldClassName?: string;
92
- footerClassName?: string;
93
- };
94
- type FieldPresetOptions<TProps> = BaseFormBuilderField & {
95
- props: TProps;
96
- };
97
- declare function inputField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderInputField<TFieldValues, TName>["props"]>): FormBuilderInputField<TFieldValues, TName>;
98
- declare function textareaField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderTextareaField<TFieldValues, TName>["props"]>): FormBuilderTextareaField<TFieldValues, TName>;
99
- declare function selectField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderSelectField<TFieldValues, TName>["props"]>): FormBuilderSelectField<TFieldValues, TName>;
100
- declare function asyncSelectField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderAsyncSelectField<TFieldValues, TName>["props"]>): FormBuilderAsyncSelectField<TFieldValues, TName>;
101
- declare function switchField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderSwitchField<TFieldValues, TName>["props"]>): FormBuilderSwitchField<TFieldValues, TName>;
102
- declare function numberField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderNumberField<TFieldValues, TName>["props"]>): FormBuilderNumberField<TFieldValues, TName>;
103
- declare function phoneField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderPhoneField<TFieldValues, TName>["props"]>): FormBuilderPhoneField<TFieldValues, TName>;
104
- declare function dateField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderDateField<TFieldValues, TName>["props"]>): FormBuilderDateField<TFieldValues, TName>;
105
- declare function dateRangeField<TFieldValues extends FieldValues, TFromName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TToName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(options: FieldPresetOptions<FormBuilderDateRangeField<TFieldValues, TFromName, TToName>["props"]>): FormBuilderDateRangeField<TFieldValues, TFromName, TToName>;
106
- declare function customField<TFieldValues extends FieldValues>(options: BaseFormBuilderField & Pick<FormBuilderCustomField<TFieldValues>, "render">): FormBuilderCustomField<TFieldValues>;
107
- declare function formSection<TFieldValues extends FieldValues>(section: FormBuilderSection<TFieldValues>): FormBuilderSection<TFieldValues>;
108
- declare function renderFormBuilderField<TFieldValues extends FieldValues>(field: FormBuilderField<TFieldValues>, context: FormBuilderFieldRenderContext<TFieldValues>): React.ReactNode;
109
- declare function FormBuilder<TFieldValues extends FieldValues>({ className, control, fields, sections, layout, density, columns, disabled, readOnly, footer, submitLabel, resetLabel, onResetClick, isSubmitting, sectionClassName, fieldClassName, footerClassName, ...props }: FormBuilderProps<TFieldValues>): React.JSX.Element;
110
- export { FormBuilder, asyncSelectField, customField, dateField, dateRangeField, formSection, inputField, numberField, phoneField, renderFormBuilderField, selectField, switchField, textareaField, };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/form-builder.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/page-toolbar.cjs")
@@ -1,11 +0,0 @@
1
- import * as React from "react";
2
- export type PageToolbarProps = React.ComponentProps<"div"> & {
3
- search?: React.ReactNode;
4
- filters?: React.ReactNode;
5
- viewOptions?: React.ReactNode;
6
- actions?: React.ReactNode;
7
- summary?: React.ReactNode;
8
- sticky?: boolean;
9
- };
10
- declare function PageToolbar({ className, search, filters, viewOptions, actions, summary, sticky, children, ...props }: PageToolbarProps): React.JSX.Element | null;
11
- export { PageToolbar };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/page-toolbar.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/resource-detail-page.cjs")
@@ -1,39 +0,0 @@
1
- import * as React from "react";
2
- import { type DescriptionListItem } from "@/components/display/description-list";
3
- import { type PageHeaderProps } from "@/components/layout/page-header";
4
- export type ResourceDetailPageDensity = "default" | "compact" | "comfortable";
5
- export type ResourceDetailPageSection = {
6
- id: string;
7
- title?: React.ReactNode;
8
- description?: React.ReactNode;
9
- actions?: React.ReactNode;
10
- hidden?: boolean;
11
- className?: string;
12
- bodyClassName?: string;
13
- items?: DescriptionListItem[];
14
- children?: React.ReactNode;
15
- };
16
- export type ResourceDetailPageProps = Omit<React.ComponentProps<"div">, "children"> & {
17
- title?: React.ReactNode;
18
- description?: React.ReactNode;
19
- eyebrow?: React.ReactNode;
20
- actions?: React.ReactNode;
21
- breadcrumbs?: React.ReactNode;
22
- status?: React.ReactNode;
23
- summary?: React.ReactNode;
24
- meta?: React.ReactNode;
25
- sections?: ResourceDetailPageSection[];
26
- children?: React.ReactNode;
27
- aside?: React.ReactNode;
28
- footer?: React.ReactNode;
29
- backLabel?: React.ReactNode;
30
- onBack?: () => void;
31
- headerProps?: Omit<PageHeaderProps, "title" | "description" | "actions" | "eyebrow">;
32
- density?: ResourceDetailPageDensity;
33
- pageHeaderClassName?: string;
34
- contentClassName?: string;
35
- asideClassName?: string;
36
- sectionClassName?: string;
37
- };
38
- declare function ResourceDetailPage({ className, title, description, eyebrow, actions, breadcrumbs, status, summary, meta, sections, children, aside, footer, backLabel, onBack, headerProps, density, pageHeaderClassName, contentClassName, asideClassName, sectionClassName, ...props }: ResourceDetailPageProps): React.JSX.Element;
39
- export { ResourceDetailPage };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/resource-detail-page.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/resource-page.cjs")
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- import { type DataTableProps } from "@/components/data-table/data-table";
3
- import { type PageHeaderProps } from "@/components/layout/page-header";
4
- import { type SectionProps } from "@/components/layout/section";
5
- export type ResourcePageDensity = "default" | "compact" | "comfortable";
6
- export type ResourcePageSectionProps = Omit<SectionProps, "variant">;
7
- declare function ResourcePageSection({ className, title, description, actions, headerClassName, bodyClassName, children, ...props }: ResourcePageSectionProps): React.JSX.Element;
8
- export type ResourcePageProps<TData, TValue = unknown> = Omit<React.ComponentProps<"div">, "children"> & {
9
- title?: React.ReactNode;
10
- description?: React.ReactNode;
11
- eyebrow?: React.ReactNode;
12
- actions?: React.ReactNode;
13
- breadcrumbs?: React.ReactNode;
14
- stats?: React.ReactNode;
15
- filters?: React.ReactNode;
16
- tabs?: React.ReactNode;
17
- table?: DataTableProps<TData, TValue>;
18
- children?: React.ReactNode;
19
- aside?: React.ReactNode;
20
- footer?: React.ReactNode;
21
- headerProps?: Omit<PageHeaderProps, "title" | "description" | "actions" | "eyebrow">;
22
- density?: ResourcePageDensity;
23
- pageHeaderClassName?: string;
24
- toolbarClassName?: string;
25
- contentClassName?: string;
26
- asideClassName?: string;
27
- asideWidth?: React.CSSProperties["width"];
28
- };
29
- declare function ResourcePage<TData, TValue = unknown>({ className, title, description, eyebrow, actions, breadcrumbs, stats, filters, tabs, table, children, aside, footer, headerProps, density, pageHeaderClassName, toolbarClassName, contentClassName, asideClassName, asideWidth, style, ...props }: ResourcePageProps<TData, TValue>): React.JSX.Element;
30
- export { ResourcePage, ResourcePageSection };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/resource-page.js"
@@ -1 +0,0 @@
1
- module.exports = require("../../src/components/patterns/settings-page.cjs")
@@ -1,21 +0,0 @@
1
- import * as React from "react";
2
- export type SettingsPageSection = {
3
- value: string;
4
- label: React.ReactNode;
5
- description?: React.ReactNode;
6
- disabled?: boolean;
7
- content: React.ReactNode;
8
- };
9
- export type SettingsPageProps = Omit<React.ComponentProps<"div">, "children"> & {
10
- title?: React.ReactNode;
11
- description?: React.ReactNode;
12
- actions?: React.ReactNode;
13
- sections: SettingsPageSection[];
14
- defaultValue?: string;
15
- value?: string;
16
- onValueChange?: (value: string) => void;
17
- navClassName?: string;
18
- contentClassName?: string;
19
- };
20
- declare function SettingsPage({ className, title, description, actions, sections, defaultValue, value, onValueChange, navClassName, contentClassName, ...props }: SettingsPageProps): React.JSX.Element;
21
- export { SettingsPage };
@@ -1 +0,0 @@
1
- export * from "../../src/components/patterns/settings-page.js"
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i({value:e,max:n=100,size:i=120,strokeWidth:a=10,label:o,description:s,tone:c=`default`,loading:l=!1,className:u,...d}){let f=(i-a)/2,p=2*Math.PI*f,m=p-(n>0?Math.min(Math.max(e/n,0),1):0)*p,h=c===`success`?`var(--color-chart-3, var(--primary))`:c===`warning`?`var(--color-chart-4, var(--primary))`:c===`danger`?`var(--destructive)`:`var(--primary)`;return(0,r.jsxs)(`svg`,{"data-slot":`progress-ring`,viewBox:`0 0 ${i} ${i}`,className:t.cn(`h-auto w-full max-w-32`,u),role:`img`,...d,children:[(0,r.jsx)(`circle`,{cx:i/2,cy:i/2,r:f,fill:`none`,stroke:`var(--muted)`,strokeWidth:a}),(0,r.jsx)(`circle`,{cx:i/2,cy:i/2,r:f,fill:`none`,stroke:h,strokeWidth:a,strokeLinecap:`round`,strokeDasharray:p,strokeDashoffset:l?p*.45:m,transform:`rotate(-90 ${i/2} ${i/2})`,className:l?`animate-pulse`:void 0}),(o||s)&&(0,r.jsxs)(`text`,{x:`50%`,y:`50%`,textAnchor:`middle`,dominantBaseline:`middle`,fill:`var(--foreground)`,children:[o&&(0,r.jsx)(`tspan`,{x:`50%`,dy:s?`-0.15em`:`0`,className:`text-base font-semibold`,children:o}),s&&(0,r.jsx)(`tspan`,{x:`50%`,dy:`1.25em`,className:`text-xs fill-muted-foreground`,children:s})]})]})}exports.ProgressRing=i;
@@ -1,57 +0,0 @@
1
- import { cn as e } from "../../lib/utils.js";
2
- import "react";
3
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
- //#region src/components/charts/progress-ring.tsx
5
- function r({ value: r, max: i = 100, size: a = 120, strokeWidth: o = 10, label: s, description: c, tone: l = "default", loading: u = !1, className: d, ...f }) {
6
- let p = (a - o) / 2, m = 2 * Math.PI * p, h = m - (i > 0 ? Math.min(Math.max(r / i, 0), 1) : 0) * m, g = l === "success" ? "var(--color-chart-3, var(--primary))" : l === "warning" ? "var(--color-chart-4, var(--primary))" : l === "danger" ? "var(--destructive)" : "var(--primary)";
7
- return /* @__PURE__ */ n("svg", {
8
- "data-slot": "progress-ring",
9
- viewBox: `0 0 ${a} ${a}`,
10
- className: e("h-auto w-full max-w-32", d),
11
- role: "img",
12
- ...f,
13
- children: [
14
- /* @__PURE__ */ t("circle", {
15
- cx: a / 2,
16
- cy: a / 2,
17
- r: p,
18
- fill: "none",
19
- stroke: "var(--muted)",
20
- strokeWidth: o
21
- }),
22
- /* @__PURE__ */ t("circle", {
23
- cx: a / 2,
24
- cy: a / 2,
25
- r: p,
26
- fill: "none",
27
- stroke: g,
28
- strokeWidth: o,
29
- strokeLinecap: "round",
30
- strokeDasharray: m,
31
- strokeDashoffset: u ? m * .45 : h,
32
- transform: `rotate(-90 ${a / 2} ${a / 2})`,
33
- className: u ? "animate-pulse" : void 0
34
- }),
35
- (s || c) && /* @__PURE__ */ n("text", {
36
- x: "50%",
37
- y: "50%",
38
- textAnchor: "middle",
39
- dominantBaseline: "middle",
40
- fill: "var(--foreground)",
41
- children: [s && /* @__PURE__ */ t("tspan", {
42
- x: "50%",
43
- dy: c ? "-0.15em" : "0",
44
- className: "text-base font-semibold",
45
- children: s
46
- }), c && /* @__PURE__ */ t("tspan", {
47
- x: "50%",
48
- dy: "1.25em",
49
- className: "text-xs fill-muted-foreground",
50
- children: c
51
- })]
52
- })
53
- ]
54
- });
55
- }
56
- //#endregion
57
- export { r as ProgressRing };
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("./state-view.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");function i({label:e=`Loading...`,variant:n=`spinner`,...i}){return(0,r.jsx)(t.StateView,{status:`loading`,title:e,loadingVariant:n,slot:`loading-state`,...i})}exports.LoadingState=i;
@@ -1,15 +0,0 @@
1
- import { StateView as e } from "./state-view.js";
2
- import "react";
3
- import { jsx as t } from "react/jsx-runtime";
4
- //#region src/components/feedback/loading-state.tsx
5
- function n({ label: n = "Loading...", variant: r = "spinner", ...i }) {
6
- return /* @__PURE__ */ t(e, {
7
- status: "loading",
8
- title: n,
9
- loadingVariant: r,
10
- slot: "loading-state",
11
- ...i
12
- });
13
- }
14
- //#endregion
15
- export { n as LoadingState };
@@ -1 +0,0 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("./state-view.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime");function a({tone:e=`empty`,action:t,extra:r,compact:a=!1,className:o,...s}){return(0,i.jsx)(n.StateView,{status:e,size:a?`compact`:`page`,actions:(0,i.jsxs)(i.Fragment,{children:[t,r]}),slot:`page-state`,className:o,...s})}function o({tone:e=`empty`,action:r,className:a,...o}){return(0,i.jsx)(n.StateView,{variant:`inline`,size:`compact`,actions:r,slot:`inline-state`,className:t.cn(`min-h-0`,a),...o,status:e})}exports.InlineState=o,exports.PageState=a;