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,28 +0,0 @@
1
- import { cn as e } from "../../lib/utils.js";
2
- import { StateView as t } from "./state-view.js";
3
- import "react";
4
- import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
5
- //#region src/components/feedback/page-state.tsx
6
- function a({ tone: e = "empty", action: a, extra: o, compact: s = !1, className: c, ...l }) {
7
- return /* @__PURE__ */ r(t, {
8
- status: e,
9
- size: s ? "compact" : "page",
10
- actions: /* @__PURE__ */ i(n, { children: [a, o] }),
11
- slot: "page-state",
12
- className: c,
13
- ...l
14
- });
15
- }
16
- function o({ tone: n = "empty", action: i, className: a, ...o }) {
17
- return /* @__PURE__ */ r(t, {
18
- variant: "inline",
19
- size: "compact",
20
- actions: i,
21
- slot: "inline-state",
22
- className: e("min-h-0", a),
23
- ...o,
24
- status: n
25
- });
26
- }
27
- //#endregion
28
- export { o as InlineState, a as PageState };
@@ -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");var i={sm:`max-w-3xl`,md:`max-w-5xl`,lg:`max-w-6xl`,xl:`max-w-7xl`,default:`max-w-7xl`,full:`max-w-none`};function a({className:e,size:n=`default`,...a}){return(0,r.jsx)(`div`,{"data-slot":`page-container`,className:t.cn(`mx-auto flex w-full flex-col gap-4`,i[n],e),...a})}exports.PageContainer=a;
@@ -1,21 +0,0 @@
1
- import { cn as e } from "../../lib/utils.js";
2
- import "react";
3
- import { jsx as t } from "react/jsx-runtime";
4
- //#region src/components/layout/page-container.tsx
5
- var n = {
6
- sm: "max-w-3xl",
7
- md: "max-w-5xl",
8
- lg: "max-w-6xl",
9
- xl: "max-w-7xl",
10
- default: "max-w-7xl",
11
- full: "max-w-none"
12
- };
13
- function r({ className: r, size: i = "default", ...a }) {
14
- return /* @__PURE__ */ t("div", {
15
- "data-slot": "page-container",
16
- className: e("mx-auto flex w-full flex-col gap-4", n[i], r),
17
- ...a
18
- });
19
- }
20
- //#endregion
21
- export { r as PageContainer };
@@ -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("class-variance-authority"),i=require("react/jsx-runtime");var a=(0,r.cva)(`flex flex-col border transition-[background-color,border-color,box-shadow]`,{variants:{variant:{default:`border-border/75 bg-card/96 shadow-sm ring-1 ring-foreground/5`,elevated:`border-border/70 bg-card shadow-[0_1px_2px_rgba(15,23,42,0.06),0_18px_45px_rgba(15,23,42,0.08)] ring-1 ring-foreground/5`,outline:`border-border bg-transparent shadow-none`,ghost:`border-transparent bg-transparent shadow-none`,soft:`border-transparent bg-muted/45 shadow-none`},size:{sm:`gap-3 rounded-[var(--radius-2xl)] p-4`,default:`gap-4 rounded-[var(--radius-3xl)] p-5`,lg:`gap-5 rounded-[calc(var(--radius-3xl)*1.1)] p-6`},tone:{neutral:``,info:`border-blue-500/20 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),oklch(0.94_0.03_235)_28%),var(--card))]`,success:`border-emerald-500/20 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),oklch(0.94_0.04_155)_30%),var(--card))]`,warning:`border-amber-500/24 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),oklch(0.94_0.05_85)_30%),var(--card))]`,danger:`border-destructive/24 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),var(--destructive)_8%),var(--card))]`}},defaultVariants:{variant:`default`,size:`default`,tone:`neutral`}});function o({className:e,variant:n,size:r,tone:o,title:s,description:c,eyebrow:l,breadcrumbs:u,actions:d,meta:f,leading:p,footer:m,sticky:h=!1,titleClassName:g,descriptionClassName:_,actionsClassName:v,children:y,...b}){return(0,i.jsxs)(`div`,{"data-slot":`page-header`,"data-sticky":h||void 0,className:t.cn(a({variant:n,size:r,tone:o}),h&&`sticky top-0 z-30 bg-background/92 backdrop-blur supports-[backdrop-filter]:bg-background/78`,e),...b,children:[u&&(0,i.jsx)(`div`,{className:`text-sm text-muted-foreground/95`,children:u}),(0,i.jsxs)(`div`,{className:`flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex min-w-0 gap-4`,children:[p?(0,i.jsx)(`div`,{className:`shrink-0`,children:p}):null,(0,i.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[l&&(0,i.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] text-muted-foreground`,children:l}),s&&(0,i.jsx)(`h1`,{className:t.cn(`truncate text-3xl font-semibold tracking-[-0.03em] text-foreground`,r===`sm`&&`text-2xl`,r===`lg`&&`text-4xl`,g),children:s}),c&&(0,i.jsx)(`p`,{className:t.cn(`max-w-3xl text-sm leading-7 text-muted-foreground`,_),children:c}),f&&(0,i.jsx)(`div`,{className:`pt-1 text-sm text-muted-foreground`,children:f})]})]}),d&&(0,i.jsx)(`div`,{className:t.cn(`flex shrink-0 flex-wrap items-center gap-2.5`,v),children:d})]}),y,m&&(0,i.jsx)(`div`,{"data-slot":`page-header-footer`,className:`border-t border-border/70 pt-4`,children:m})]})}exports.PageHeader=o,exports.pageHeaderVariants=a;
@@ -1,92 +0,0 @@
1
- import { cn as e } from "../../lib/utils.js";
2
- import "react";
3
- import { cva as t } from "class-variance-authority";
4
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
- //#region src/components/layout/page-header.tsx
6
- var i = t("flex flex-col border transition-[background-color,border-color,box-shadow]", {
7
- variants: {
8
- variant: {
9
- default: "border-border/75 bg-card/96 shadow-sm ring-1 ring-foreground/5",
10
- elevated: "border-border/70 bg-card shadow-[0_1px_2px_rgba(15,23,42,0.06),0_18px_45px_rgba(15,23,42,0.08)] ring-1 ring-foreground/5",
11
- outline: "border-border bg-transparent shadow-none",
12
- ghost: "border-transparent bg-transparent shadow-none",
13
- soft: "border-transparent bg-muted/45 shadow-none"
14
- },
15
- size: {
16
- sm: "gap-3 rounded-[var(--radius-2xl)] p-4",
17
- default: "gap-4 rounded-[var(--radius-3xl)] p-5",
18
- lg: "gap-5 rounded-[calc(var(--radius-3xl)*1.1)] p-6"
19
- },
20
- tone: {
21
- neutral: "",
22
- info: "border-blue-500/20 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),oklch(0.94_0.03_235)_28%),var(--card))]",
23
- success: "border-emerald-500/20 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),oklch(0.94_0.04_155)_30%),var(--card))]",
24
- warning: "border-amber-500/24 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),oklch(0.94_0.05_85)_30%),var(--card))]",
25
- danger: "border-destructive/24 bg-[linear-gradient(180deg,color-mix(in_oklch,var(--card),var(--destructive)_8%),var(--card))]"
26
- }
27
- },
28
- defaultVariants: {
29
- variant: "default",
30
- size: "default",
31
- tone: "neutral"
32
- }
33
- });
34
- function a({ className: t, variant: a, size: o, tone: s, title: c, description: l, eyebrow: u, breadcrumbs: d, actions: f, meta: p, leading: m, footer: h, sticky: g = !1, titleClassName: _, descriptionClassName: v, actionsClassName: y, children: b, ...x }) {
35
- return /* @__PURE__ */ r("div", {
36
- "data-slot": "page-header",
37
- "data-sticky": g || void 0,
38
- className: e(i({
39
- variant: a,
40
- size: o,
41
- tone: s
42
- }), g && "sticky top-0 z-30 bg-background/92 backdrop-blur supports-[backdrop-filter]:bg-background/78", t),
43
- ...x,
44
- children: [
45
- d && /* @__PURE__ */ n("div", {
46
- className: "text-sm text-muted-foreground/95",
47
- children: d
48
- }),
49
- /* @__PURE__ */ r("div", {
50
- className: "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
51
- children: [/* @__PURE__ */ r("div", {
52
- className: "flex min-w-0 gap-4",
53
- children: [m ? /* @__PURE__ */ n("div", {
54
- className: "shrink-0",
55
- children: m
56
- }) : null, /* @__PURE__ */ r("div", {
57
- className: "min-w-0 space-y-2",
58
- children: [
59
- u && /* @__PURE__ */ n("div", {
60
- className: "text-[11px] font-semibold uppercase tracking-[0.24em] text-muted-foreground",
61
- children: u
62
- }),
63
- c && /* @__PURE__ */ n("h1", {
64
- className: e("truncate text-3xl font-semibold tracking-[-0.03em] text-foreground", o === "sm" && "text-2xl", o === "lg" && "text-4xl", _),
65
- children: c
66
- }),
67
- l && /* @__PURE__ */ n("p", {
68
- className: e("max-w-3xl text-sm leading-7 text-muted-foreground", v),
69
- children: l
70
- }),
71
- p && /* @__PURE__ */ n("div", {
72
- className: "pt-1 text-sm text-muted-foreground",
73
- children: p
74
- })
75
- ]
76
- })]
77
- }), f && /* @__PURE__ */ n("div", {
78
- className: e("flex shrink-0 flex-wrap items-center gap-2.5", y),
79
- children: f
80
- })]
81
- }),
82
- b,
83
- h && /* @__PURE__ */ n("div", {
84
- "data-slot": "page-header-footer",
85
- className: "border-t border-border/70 pt-4",
86
- children: h
87
- })
88
- ]
89
- });
90
- }
91
- //#endregion
92
- export { a as PageHeader, i as pageHeaderVariants };
@@ -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");var i={sm:`text-xl`,default:`text-2xl`,lg:`text-3xl`};function a({className:e,eyebrow:n,title:a,description:o,actions:s,meta:c,align:l=`start`,size:u=`default`,titleClassName:d,descriptionClassName:f,children:p,...m}){return(0,r.jsxs)(`div`,{"data-slot":`section-header`,"data-align":l,className:t.cn(`flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between`,l===`center`&&`text-center sm:flex-col sm:items-center`,e),...m,children:[(0,r.jsxs)(`div`,{className:t.cn(`min-w-0 space-y-2`,l===`center`&&`mx-auto max-w-2xl`),children:[n?(0,r.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.24em] text-muted-foreground`,children:n}):null,a?(0,r.jsx)(`h2`,{className:t.cn(`font-semibold tracking-[-0.03em] text-foreground`,i[u],d),children:a}):null,o?(0,r.jsx)(`p`,{className:t.cn(`max-w-3xl text-sm leading-7 text-muted-foreground`,f),children:o}):null,c?(0,r.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:c}):null,p]}),s?(0,r.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2.5`,children:s}):null]})}exports.SectionHeader=a;
@@ -1,44 +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/layout/section-header.tsx
5
- var r = {
6
- sm: "text-xl",
7
- default: "text-2xl",
8
- lg: "text-3xl"
9
- };
10
- function i({ className: i, eyebrow: a, title: o, description: s, actions: c, meta: l, align: u = "start", size: d = "default", titleClassName: f, descriptionClassName: p, children: m, ...h }) {
11
- return /* @__PURE__ */ n("div", {
12
- "data-slot": "section-header",
13
- "data-align": u,
14
- className: e("flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between", u === "center" && "text-center sm:flex-col sm:items-center", i),
15
- ...h,
16
- children: [/* @__PURE__ */ n("div", {
17
- className: e("min-w-0 space-y-2", u === "center" && "mx-auto max-w-2xl"),
18
- children: [
19
- a ? /* @__PURE__ */ t("p", {
20
- className: "text-xs font-semibold uppercase tracking-[0.24em] text-muted-foreground",
21
- children: a
22
- }) : null,
23
- o ? /* @__PURE__ */ t("h2", {
24
- className: e("font-semibold tracking-[-0.03em] text-foreground", r[d], f),
25
- children: o
26
- }) : null,
27
- s ? /* @__PURE__ */ t("p", {
28
- className: e("max-w-3xl text-sm leading-7 text-muted-foreground", p),
29
- children: s
30
- }) : null,
31
- l ? /* @__PURE__ */ t("div", {
32
- className: "text-sm text-muted-foreground",
33
- children: l
34
- }) : null,
35
- m
36
- ]
37
- }), c ? /* @__PURE__ */ t("div", {
38
- className: "flex shrink-0 flex-wrap items-center gap-2.5",
39
- children: c
40
- }) : null]
41
- });
42
- }
43
- //#endregion
44
- export { i as SectionHeader };
@@ -1 +0,0 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/badge/index.cjs"),r=require("./controllable-details.cjs"),i=require("../ui/tooltip/index.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("react/jsx-runtime");function s(e){return e.items?.some(e=>!e.hidden)??!1}function c(e){return e.active?!0:e.items?.some(e=>c(e))??!1}function l({item:e,collapsed:r,depth:a,itemSize:s,activeIndicator:c,itemClassName:l,activeItemClassName:u,renderLink:d}){let f=e.current??(e.active?`page`:void 0),p=(0,o.jsxs)(o.Fragment,{children:[e.icon&&(0,o.jsx)(`span`,{className:`shrink-0 [&_svg]:size-4`,children:e.icon}),!r&&(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge&&(0,o.jsx)(n.Badge,{variant:`secondary`,className:`ml-auto h-5 shrink-0 px-1.5`,children:e.badge})]}),m=t.cn(`group flex items-center gap-2 border border-transparent text-sm font-medium transition-[background-color,border-color,color,box-shadow] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,r&&`justify-center px-0`,a>0&&!r&&`pl-3`,l,e.active&&u),h=t=>r?(0,o.jsx)(i.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:t})}):t;return e.href&&e.href.startsWith(`/`)?h(d?d({item:e,href:e.href,"data-slot":`sidebar-nav-item`,"data-depth":String(a),"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,"data-size":s,"data-active-indicator":c,"aria-current":f,className:m,onClick:t=>{if(e.disabled){t.preventDefault();return}e.onSelect?.()},children:p}):(0,o.jsx)(`a`,{href:e.href,"data-slot":`sidebar-nav-item`,"data-depth":a,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,"data-size":s,"data-active-indicator":c,"aria-current":f,className:m,onClick:t=>{if(e.disabled){t.preventDefault();return}e.onSelect?.()},children:p})):e.href?h((0,o.jsx)(`button`,{type:`button`,"data-slot":`sidebar-nav-item`,"data-depth":a,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,"data-size":s,"data-active-indicator":c,"aria-current":f,className:t.cn(`w-full text-left`,m),onClick:()=>{if(e.disabled)return;let t=e.href;if(t){if(e.onSelect?.(),t.startsWith(`http`)){window.open(t,`_blank`,`noopener,noreferrer`);return}window.location.assign(t)}},children:p})):h((0,o.jsx)(`button`,{type:`button`,"data-slot":`sidebar-nav-item`,"data-depth":a,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,"data-size":s,"data-active-indicator":c,"aria-current":f,disabled:e.disabled,className:t.cn(`w-full text-left`,m),onClick:e.onSelect,children:p}))}function u({items:e,collapsed:d,depth:f,showSectionLabels:p,itemSize:m,activeIndicator:h,itemClassName:g,activeItemClassName:_,renderItem:v,renderLink:y}){return e.map(e=>{if(e.hidden)return null;let b=p&&!d&&f===0&&e.sectionLabel;if(!s(e)){let t=(0,o.jsx)(l,{item:e,collapsed:d,depth:f,itemSize:m,activeIndicator:h,itemClassName:g,activeItemClassName:_,renderLink:y});return(0,o.jsxs)(a.Fragment,{children:[b?(0,o.jsx)(`div`,{"data-slot":`sidebar-nav-group-label`,className:`px-2 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0`,children:e.sectionLabel}):null,v?v(e,t):t]},e.key)}let x=e.defaultExpanded??c(e),S=(0,o.jsxs)(`summary`,{"data-slot":`sidebar-nav-group-trigger`,className:t.cn(`flex min-h-9 list-none items-center gap-2 rounded-xl border border-transparent px-2.5 text-sm font-medium text-[color:var(--aui-page-muted-strong,var(--muted-foreground))] transition-[background-color,border-color,color,box-shadow] hover:border-[color:var(--aui-divider)] hover:bg-[color:var(--aui-page-bg-alt)] hover:text-[color:var(--aui-page-foreground)]`,d?`justify-center px-0`:`px-2`),children:[e.icon?d?(0,o.jsx)(i.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`shrink-0 [&_svg]:size-4`,children:e.icon})}):(0,o.jsx)(`span`,{className:`shrink-0 [&_svg]:size-4`,children:e.icon}):null,!d&&(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!d&&e.badge?(0,o.jsx)(n.Badge,{variant:`secondary`,className:`h-5 shrink-0 px-1.5`,children:e.badge}):null,!d&&(0,o.jsx)(`span`,{"data-slot":`sidebar-nav-group-chevron`,className:`ml-auto text-xs text-muted-foreground transition-transform group-open/sidebar-nav-details:rotate-90`,children:`›`})]}),C=(0,o.jsxs)(`div`,{"data-slot":`sidebar-nav-group`,"data-depth":f,children:[b?(0,o.jsx)(`div`,{"data-slot":`sidebar-nav-group-label`,className:`px-2 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0`,children:e.sectionLabel}):null,(0,o.jsxs)(r.ControllableDetails,{"data-slot":`sidebar-nav-group-details`,open:e.expanded,defaultOpen:x,className:`group/sidebar-nav-details`,onOpenChange:e.onExpandedChange,children:[S,(0,o.jsx)(`div`,{"data-slot":`sidebar-nav-group-content`,className:t.cn(`mt-1 grid gap-1`,!d&&`ml-3 border-l border-border/55 pl-2`),children:(0,o.jsx)(u,{items:e.items??[],collapsed:d,depth:f+1,showSectionLabels:p,itemSize:m,activeIndicator:h,itemClassName:g,activeItemClassName:_,renderItem:v,renderLink:y})})]})]});return v?(0,o.jsx)(a.Fragment,{children:v(e,C)},e.key):(0,o.jsx)(a.Fragment,{children:C},e.key)})}function d({className:e,items:n,collapsed:r=!1,scrollable:i=!0,showSectionLabels:a=!0,itemSize:s=`md`,activeIndicator:c=`bar`,itemClassName:l,activeItemClassName:d,renderItem:f,renderLink:p,...m}){let h=n.filter(e=>!e.hidden);return(0,o.jsx)(`nav`,{"aria-label":`Primary navigation`,"data-slot":`sidebar-nav`,"data-collapsed":r||void 0,className:t.cn(`grid min-h-0 gap-1`,i?`overflow-y-auto overscroll-contain`:null,e),...m,children:(0,o.jsx)(u,{items:h,collapsed:r,depth:0,showSectionLabels:a,itemSize:s,activeIndicator:c,itemClassName:l,activeItemClassName:d,renderItem:f,renderLink:p})})}exports.SidebarNav=d;
@@ -1,220 +0,0 @@
1
- "use client";
2
- import { cn as e } from "../../lib/utils.js";
3
- import { Badge as t } from "../ui/badge/index.js";
4
- import { ControllableDetails as n } from "./controllable-details.js";
5
- import { Tooltip as r } from "../ui/tooltip/index.js";
6
- import * as i from "react";
7
- import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
8
- //#region src/components/layout/sidebar-nav.tsx
9
- function c(e) {
10
- return e.items?.some((e) => !e.hidden) ?? !1;
11
- }
12
- function l(e) {
13
- return e.active ? !0 : e.items?.some((e) => l(e)) ?? !1;
14
- }
15
- function u({ item: n, collapsed: i, depth: c, itemSize: l, activeIndicator: u, itemClassName: d, activeItemClassName: f, renderLink: p }) {
16
- let m = n.current ?? (n.active ? "page" : void 0), h = /* @__PURE__ */ s(a, { children: [
17
- n.icon && /* @__PURE__ */ o("span", {
18
- className: "shrink-0 [&_svg]:size-4",
19
- children: n.icon
20
- }),
21
- !i && /* @__PURE__ */ o("span", {
22
- className: "min-w-0 flex-1 truncate",
23
- children: n.label
24
- }),
25
- !i && n.badge && /* @__PURE__ */ o(t, {
26
- variant: "secondary",
27
- className: "ml-auto h-5 shrink-0 px-1.5",
28
- children: n.badge
29
- })
30
- ] }), g = e("group flex items-center gap-2 border border-transparent text-sm font-medium transition-[background-color,border-color,color,box-shadow] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50", i && "justify-center px-0", c > 0 && !i && "pl-3", d, n.active && f), _ = (e) => i ? /* @__PURE__ */ o(r, {
31
- content: n.tooltip ?? n.label,
32
- side: "right",
33
- children: /* @__PURE__ */ o("span", {
34
- className: "block",
35
- children: e
36
- })
37
- }) : e;
38
- return n.href && n.href.startsWith("/") ? _(p ? p({
39
- item: n,
40
- href: n.href,
41
- "data-slot": "sidebar-nav-item",
42
- "data-depth": String(c),
43
- "data-active": n.active || void 0,
44
- "data-disabled": n.disabled || void 0,
45
- "data-size": l,
46
- "data-active-indicator": u,
47
- "aria-current": m,
48
- className: g,
49
- onClick: (e) => {
50
- if (n.disabled) {
51
- e.preventDefault();
52
- return;
53
- }
54
- n.onSelect?.();
55
- },
56
- children: h
57
- }) : /* @__PURE__ */ o("a", {
58
- href: n.href,
59
- "data-slot": "sidebar-nav-item",
60
- "data-depth": c,
61
- "data-active": n.active || void 0,
62
- "data-disabled": n.disabled || void 0,
63
- "data-size": l,
64
- "data-active-indicator": u,
65
- "aria-current": m,
66
- className: g,
67
- onClick: (e) => {
68
- if (n.disabled) {
69
- e.preventDefault();
70
- return;
71
- }
72
- n.onSelect?.();
73
- },
74
- children: h
75
- })) : n.href ? _(/* @__PURE__ */ o("button", {
76
- type: "button",
77
- "data-slot": "sidebar-nav-item",
78
- "data-depth": c,
79
- "data-active": n.active || void 0,
80
- "data-disabled": n.disabled || void 0,
81
- "data-size": l,
82
- "data-active-indicator": u,
83
- "aria-current": m,
84
- className: e("w-full text-left", g),
85
- onClick: () => {
86
- if (n.disabled) return;
87
- let e = n.href;
88
- if (e) {
89
- if (n.onSelect?.(), e.startsWith("http")) {
90
- window.open(e, "_blank", "noopener,noreferrer");
91
- return;
92
- }
93
- window.location.assign(e);
94
- }
95
- },
96
- children: h
97
- })) : _(/* @__PURE__ */ o("button", {
98
- type: "button",
99
- "data-slot": "sidebar-nav-item",
100
- "data-depth": c,
101
- "data-active": n.active || void 0,
102
- "data-disabled": n.disabled || void 0,
103
- "data-size": l,
104
- "data-active-indicator": u,
105
- "aria-current": m,
106
- disabled: n.disabled,
107
- className: e("w-full text-left", g),
108
- onClick: n.onSelect,
109
- children: h
110
- }));
111
- }
112
- function d({ items: a, collapsed: f, depth: p, showSectionLabels: m, itemSize: h, activeIndicator: g, itemClassName: _, activeItemClassName: v, renderItem: y, renderLink: b }) {
113
- return a.map((a) => {
114
- if (a.hidden) return null;
115
- let x = m && !f && p === 0 && a.sectionLabel;
116
- if (!c(a)) {
117
- let e = /* @__PURE__ */ o(u, {
118
- item: a,
119
- collapsed: f,
120
- depth: p,
121
- itemSize: h,
122
- activeIndicator: g,
123
- itemClassName: _,
124
- activeItemClassName: v,
125
- renderLink: b
126
- });
127
- return /* @__PURE__ */ s(i.Fragment, { children: [x ? /* @__PURE__ */ o("div", {
128
- "data-slot": "sidebar-nav-group-label",
129
- className: "px-2 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0",
130
- children: a.sectionLabel
131
- }) : null, y ? y(a, e) : e] }, a.key);
132
- }
133
- let S = a.defaultExpanded ?? l(a), C = /* @__PURE__ */ s("summary", {
134
- "data-slot": "sidebar-nav-group-trigger",
135
- className: e("flex min-h-9 list-none items-center gap-2 rounded-xl border border-transparent px-2.5 text-sm font-medium text-[color:var(--aui-page-muted-strong,var(--muted-foreground))] transition-[background-color,border-color,color,box-shadow] hover:border-[color:var(--aui-divider)] hover:bg-[color:var(--aui-page-bg-alt)] hover:text-[color:var(--aui-page-foreground)]", f ? "justify-center px-0" : "px-2"),
136
- children: [
137
- a.icon ? f ? /* @__PURE__ */ o(r, {
138
- content: a.tooltip ?? a.label,
139
- side: "right",
140
- children: /* @__PURE__ */ o("span", {
141
- className: "shrink-0 [&_svg]:size-4",
142
- children: a.icon
143
- })
144
- }) : /* @__PURE__ */ o("span", {
145
- className: "shrink-0 [&_svg]:size-4",
146
- children: a.icon
147
- }) : null,
148
- !f && /* @__PURE__ */ o("span", {
149
- className: "min-w-0 flex-1 truncate",
150
- children: a.label
151
- }),
152
- !f && a.badge ? /* @__PURE__ */ o(t, {
153
- variant: "secondary",
154
- className: "h-5 shrink-0 px-1.5",
155
- children: a.badge
156
- }) : null,
157
- !f && /* @__PURE__ */ o("span", {
158
- "data-slot": "sidebar-nav-group-chevron",
159
- className: "ml-auto text-xs text-muted-foreground transition-transform group-open/sidebar-nav-details:rotate-90",
160
- children: "›"
161
- })
162
- ]
163
- }), w = /* @__PURE__ */ s("div", {
164
- "data-slot": "sidebar-nav-group",
165
- "data-depth": p,
166
- children: [x ? /* @__PURE__ */ o("div", {
167
- "data-slot": "sidebar-nav-group-label",
168
- className: "px-2 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0",
169
- children: a.sectionLabel
170
- }) : null, /* @__PURE__ */ s(n, {
171
- "data-slot": "sidebar-nav-group-details",
172
- open: a.expanded,
173
- defaultOpen: S,
174
- className: "group/sidebar-nav-details",
175
- onOpenChange: a.onExpandedChange,
176
- children: [C, /* @__PURE__ */ o("div", {
177
- "data-slot": "sidebar-nav-group-content",
178
- className: e("mt-1 grid gap-1", !f && "ml-3 border-l border-border/55 pl-2"),
179
- children: /* @__PURE__ */ o(d, {
180
- items: a.items ?? [],
181
- collapsed: f,
182
- depth: p + 1,
183
- showSectionLabels: m,
184
- itemSize: h,
185
- activeIndicator: g,
186
- itemClassName: _,
187
- activeItemClassName: v,
188
- renderItem: y,
189
- renderLink: b
190
- })
191
- })]
192
- })]
193
- });
194
- return y ? /* @__PURE__ */ o(i.Fragment, { children: y(a, w) }, a.key) : /* @__PURE__ */ o(i.Fragment, { children: w }, a.key);
195
- });
196
- }
197
- function f({ className: t, items: n, collapsed: r = !1, scrollable: i = !0, showSectionLabels: a = !0, itemSize: s = "md", activeIndicator: c = "bar", itemClassName: l, activeItemClassName: u, renderItem: f, renderLink: p, ...m }) {
198
- let h = n.filter((e) => !e.hidden);
199
- return /* @__PURE__ */ o("nav", {
200
- "aria-label": "Primary navigation",
201
- "data-slot": "sidebar-nav",
202
- "data-collapsed": r || void 0,
203
- className: e("grid min-h-0 gap-1", i ? "overflow-y-auto overscroll-contain" : null, t),
204
- ...m,
205
- children: /* @__PURE__ */ o(d, {
206
- items: h,
207
- collapsed: r,
208
- depth: 0,
209
- showSectionLabels: a,
210
- itemSize: s,
211
- activeIndicator: c,
212
- itemClassName: l,
213
- activeItemClassName: u,
214
- renderItem: f,
215
- renderLink: p
216
- })
217
- });
218
- }
219
- //#endregion
220
- export { f as SidebarNav };
@@ -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({start:e,end:n,className:i,children:a,...o}){return(0,r.jsxs)(`div`,{"data-slot":`sticky-footer-bar`,className:t.cn(`sticky bottom-0 z-30 flex flex-wrap items-center justify-between gap-3 border-t bg-background px-4 py-3 shadow-lg`,i),...o,children:[(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:e??a}),n&&(0,r.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:n})]})}exports.StickyFooterBar=i;
@@ -1,20 +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/layout/sticky-footer-bar.tsx
5
- function r({ start: r, end: i, className: a, children: o, ...s }) {
6
- return /* @__PURE__ */ n("div", {
7
- "data-slot": "sticky-footer-bar",
8
- className: e("sticky bottom-0 z-30 flex flex-wrap items-center justify-between gap-3 border-t bg-background px-4 py-3 shadow-lg", a),
9
- ...s,
10
- children: [/* @__PURE__ */ t("div", {
11
- className: "min-w-0 flex-1",
12
- children: r ?? o
13
- }), i && /* @__PURE__ */ t("div", {
14
- className: "flex shrink-0 items-center gap-2",
15
- children: i
16
- })]
17
- });
18
- }
19
- //#endregion
20
- export { r as StickyFooterBar };
@@ -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("../ui/button/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("lucide-react"),a=require("react/jsx-runtime");function o({className:e,selectedCount:r,selectedLabel:o=e=>`${e} selected`,actions:s,clearLabel:c=`Clear`,onClear:l,children:u,...d}){return r<=0?null:(0,a.jsxs)(`div`,{"data-slot":`bulk-action-bar`,className:t.cn(`flex flex-col gap-3 rounded-xl border bg-card p-3 shadow-sm sm:flex-row sm:items-center sm:justify-between`,e),...d,children:[(0,a.jsx)(`div`,{"data-slot":`bulk-action-bar-count`,className:`text-sm font-medium`,children:o(r)}),(0,a.jsxs)(`div`,{"data-slot":`bulk-action-bar-actions`,className:`flex flex-wrap items-center gap-2`,children:[u,s,l&&(0,a.jsxs)(n.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:l,children:[(0,a.jsx)(i.XIcon,{"data-icon":`inline-start`}),c]})]})]})}exports.BulkActionBar=o;
@@ -1,34 +0,0 @@
1
- import { cn as e } from "../../lib/utils.js";
2
- import { Button as t } from "../ui/button/index.js";
3
- import "react";
4
- import { XIcon as n } from "lucide-react";
5
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
- //#region src/components/patterns/bulk-action-bar.tsx
7
- function a({ className: a, selectedCount: o, selectedLabel: s = (e) => `${e} selected`, actions: c, clearLabel: l = "Clear", onClear: u, children: d, ...f }) {
8
- return o <= 0 ? null : /* @__PURE__ */ i("div", {
9
- "data-slot": "bulk-action-bar",
10
- className: e("flex flex-col gap-3 rounded-xl border bg-card p-3 shadow-sm sm:flex-row sm:items-center sm:justify-between", a),
11
- ...f,
12
- children: [/* @__PURE__ */ r("div", {
13
- "data-slot": "bulk-action-bar-count",
14
- className: "text-sm font-medium",
15
- children: s(o)
16
- }), /* @__PURE__ */ i("div", {
17
- "data-slot": "bulk-action-bar-actions",
18
- className: "flex flex-wrap items-center gap-2",
19
- children: [
20
- d,
21
- c,
22
- u && /* @__PURE__ */ i(t, {
23
- type: "button",
24
- variant: "ghost",
25
- size: "sm",
26
- onClick: u,
27
- children: [/* @__PURE__ */ r(n, { "data-icon": "inline-start" }), l]
28
- })
29
- ]
30
- })]
31
- });
32
- }
33
- //#endregion
34
- export { a as BulkActionBar };
@@ -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("../data-table/data-table.cjs"),r=require("./empty-state.cjs"),i=require("./page-toolbar.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("react/jsx-runtime");function s({className:e,title:a,description:s,toolbar:c,table:l,count:u,loading:d=!1,error:f,emptyTitle:p=`No results`,emptyDescription:m=`Try adjusting filters or create a new item.`,children:h,...g}){let _=!!(a||s),v=!!c,y=u===void 0?!!(h||l):u>0;return(0,o.jsxs)(`div`,{"data-slot":`data-view`,className:t.cn(`grid min-w-0 gap-4`,e),...g,children:[_&&(0,o.jsxs)(`div`,{"data-slot":`data-view-header`,className:`grid gap-1`,children:[a&&(0,o.jsx)(`h2`,{className:`text-xl font-semibold tracking-tight`,children:a}),s&&(0,o.jsx)(`p`,{className:`text-sm leading-6 text-muted-foreground`,children:s})]}),v&&(0,o.jsx)(i.PageToolbar,{...c}),f?(0,o.jsx)(r.EmptyState,{tone:`error`,title:`Something went wrong`,description:f}):d?(0,o.jsx)(r.EmptyState,{tone:`info`,title:`Loading data`,description:`Please wait while the latest data is prepared.`}):y?(0,o.jsxs)(`div`,{"data-slot":`data-view-content`,className:`min-w-0`,children:[h,l&&(0,o.jsx)(n.DataTable,{...l})]}):(0,o.jsx)(r.EmptyState,{title:p,description:m})]})}exports.DataView=s;
@@ -1,47 +0,0 @@
1
- import { cn as e } from "../../lib/utils.js";
2
- import { DataTable as t } from "../data-table/data-table.js";
3
- import { EmptyState as n } from "./empty-state.js";
4
- import { PageToolbar as r } from "./page-toolbar.js";
5
- import "react";
6
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
- //#region src/components/patterns/data-view.tsx
8
- function o({ className: o, title: s, description: c, toolbar: l, table: u, count: d, loading: f = !1, error: p, emptyTitle: m = "No results", emptyDescription: h = "Try adjusting filters or create a new item.", children: g, ..._ }) {
9
- let v = !!(s || c), y = !!l, b = d === void 0 ? !!(g || u) : d > 0;
10
- return /* @__PURE__ */ a("div", {
11
- "data-slot": "data-view",
12
- className: e("grid min-w-0 gap-4", o),
13
- ..._,
14
- children: [
15
- v && /* @__PURE__ */ a("div", {
16
- "data-slot": "data-view-header",
17
- className: "grid gap-1",
18
- children: [s && /* @__PURE__ */ i("h2", {
19
- className: "text-xl font-semibold tracking-tight",
20
- children: s
21
- }), c && /* @__PURE__ */ i("p", {
22
- className: "text-sm leading-6 text-muted-foreground",
23
- children: c
24
- })]
25
- }),
26
- y && /* @__PURE__ */ i(r, { ...l }),
27
- p ? /* @__PURE__ */ i(n, {
28
- tone: "error",
29
- title: "Something went wrong",
30
- description: p
31
- }) : f ? /* @__PURE__ */ i(n, {
32
- tone: "info",
33
- title: "Loading data",
34
- description: "Please wait while the latest data is prepared."
35
- }) : b ? /* @__PURE__ */ a("div", {
36
- "data-slot": "data-view-content",
37
- className: "min-w-0",
38
- children: [g, u && /* @__PURE__ */ i(t, { ...u })]
39
- }) : /* @__PURE__ */ i(n, {
40
- title: m,
41
- description: h
42
- })
43
- ]
44
- });
45
- }
46
- //#endregion
47
- export { o as DataView };
@@ -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({className:e,title:n,description:i,eyebrow:a,actions:o,breadcrumbs:s,summary:c,aside:l,footer:u,headerClassName:d,contentClassName:f,asideClassName:p,children:m,...h}){let g=!!(n||i||a||o),_=!!(m||l);return(0,r.jsxs)(`div`,{"data-slot":`detail-layout`,className:t.cn(`grid min-w-0 gap-4`,e),...h,children:[s&&(0,r.jsx)(`div`,{"data-slot":`detail-layout-breadcrumbs`,children:s}),g&&(0,r.jsxs)(`div`,{"data-slot":`detail-layout-header`,className:t.cn(`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,d),children:[(0,r.jsxs)(`div`,{className:`grid min-w-0 gap-1`,children:[a&&(0,r.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:a}),n&&(0,r.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:n}),i&&(0,r.jsx)(`p`,{className:`max-w-3xl text-sm leading-6 text-muted-foreground`,children:i})]}),o&&(0,r.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2`,children:o})]}),c&&(0,r.jsx)(`div`,{"data-slot":`detail-layout-summary`,children:c}),_&&(0,r.jsxs)(`div`,{"data-slot":`detail-layout-content`,className:t.cn(`grid min-w-0 gap-4`,l&&`xl:grid-cols-[minmax(0,1fr)_20rem]`,f),children:[(0,r.jsx)(`main`,{"data-slot":`detail-layout-main`,className:`min-w-0`,children:m}),l&&(0,r.jsx)(`aside`,{"data-slot":`detail-layout-aside`,className:t.cn(`min-w-0`,p),children:l})]}),u&&(0,r.jsx)(`div`,{"data-slot":`detail-layout-footer`,children:u})]})}exports.DetailLayout=i;
@@ -1,65 +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/patterns/detail-layout.tsx
5
- function r({ className: r, title: i, description: a, eyebrow: o, actions: s, breadcrumbs: c, summary: l, aside: u, footer: d, headerClassName: f, contentClassName: p, asideClassName: m, children: h, ...g }) {
6
- let _ = !!(i || a || o || s), v = !!(h || u);
7
- return /* @__PURE__ */ n("div", {
8
- "data-slot": "detail-layout",
9
- className: e("grid min-w-0 gap-4", r),
10
- ...g,
11
- children: [
12
- c && /* @__PURE__ */ t("div", {
13
- "data-slot": "detail-layout-breadcrumbs",
14
- children: c
15
- }),
16
- _ && /* @__PURE__ */ n("div", {
17
- "data-slot": "detail-layout-header",
18
- className: e("flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between", f),
19
- children: [/* @__PURE__ */ n("div", {
20
- className: "grid min-w-0 gap-1",
21
- children: [
22
- o && /* @__PURE__ */ t("div", {
23
- className: "text-xs font-medium uppercase tracking-wide text-muted-foreground",
24
- children: o
25
- }),
26
- i && /* @__PURE__ */ t("h1", {
27
- className: "text-2xl font-semibold tracking-tight",
28
- children: i
29
- }),
30
- a && /* @__PURE__ */ t("p", {
31
- className: "max-w-3xl text-sm leading-6 text-muted-foreground",
32
- children: a
33
- })
34
- ]
35
- }), s && /* @__PURE__ */ t("div", {
36
- className: "flex shrink-0 flex-wrap items-center gap-2",
37
- children: s
38
- })]
39
- }),
40
- l && /* @__PURE__ */ t("div", {
41
- "data-slot": "detail-layout-summary",
42
- children: l
43
- }),
44
- v && /* @__PURE__ */ n("div", {
45
- "data-slot": "detail-layout-content",
46
- className: e("grid min-w-0 gap-4", u && "xl:grid-cols-[minmax(0,1fr)_20rem]", p),
47
- children: [/* @__PURE__ */ t("main", {
48
- "data-slot": "detail-layout-main",
49
- className: "min-w-0",
50
- children: h
51
- }), u && /* @__PURE__ */ t("aside", {
52
- "data-slot": "detail-layout-aside",
53
- className: e("min-w-0", m),
54
- children: u
55
- })]
56
- }),
57
- d && /* @__PURE__ */ t("div", {
58
- "data-slot": "detail-layout-footer",
59
- children: d
60
- })
61
- ]
62
- });
63
- }
64
- //#endregion
65
- export { r as DetailLayout };
@@ -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("../ui/button/index.cjs"),r=require("../form/form-date-range-input.cjs"),i=require("../form/form-input.cjs"),a=require("../form/form-select.cjs"),o=require("../form/form-switch.cjs"),s=require("../form/form-textarea.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u={compact:`gap-3`,default:`gap-4`,comfortable:`gap-6`},d={1:`grid-cols-1`,2:`grid-cols-1 md:grid-cols-2`,3:`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`,4:`grid-cols-1 md:grid-cols-2 xl:grid-cols-4`},f={1:`col-span-1`,2:`md:col-span-2`,3:`xl:col-span-3`,4:`xl:col-span-4`,full:`col-span-full`};function p(e){let{id:t,hidden:n,className:r,colSpan:i,props:a}=e;return{base:{id:t,hidden:n,className:r,colSpan:i},props:a}}function m(e){let{base:t,props:n}=p(e);return{...t,type:`input`,props:n}}function h(e){let{base:t,props:n}=p(e);return{...t,type:`textarea`,props:n}}function g(e){let{base:t,props:n}=p(e);return{...t,type:`select`,props:n}}function _(e){let{base:t,props:n}=p(e);return{...t,type:`async-select`,props:n}}function v(e){let{base:t,props:n}=p(e);return{...t,type:`switch`,props:n}}function y(e){let{base:t,props:n}=p(e);return{...t,type:`number`,props:n}}function b(e){let{base:t,props:n}=p(e);return{...t,type:`phone`,props:n}}function x(e){let{base:t,props:n}=p(e);return{...t,type:`date`,props:n}}function S(e){let{base:t,props:n}=p(e);return{...t,type:`date-range`,props:n}}function C(e){let{id:t,hidden:n,className:r,colSpan:i,render:a}=e;return{id:t,hidden:n,className:r,colSpan:i,type:`custom`,render:a}}function w(e){return e}function T(e,t){let n=i.FormInput,l=a.FormSelect,u=s.FormTextarea,d=o.FormSwitch,f=r.FormDateRangeInput;switch(e.type){case`custom`:return e.render(t);case`input`:return c.createElement(n,{control:t.control,disabled:t.disabled,readOnly:t.readOnly,...e.props});case`textarea`:return c.createElement(u,{control:t.control,disabled:t.disabled,readOnly:t.readOnly,...e.props});case`select`:return c.createElement(l,{control:t.control,disabled:t.disabled,...e.props});case`async-select`:return c.createElement(l,{control:t.control,disabled:t.disabled,kind:`async`,...e.props});case`switch`:return c.createElement(d,{control:t.control,disabled:t.disabled,...e.props});case`number`:return c.createElement(n,{control:t.control,disabled:t.disabled,readOnly:t.readOnly,kind:`number`,...e.props});case`phone`:return c.createElement(n,{control:t.control,disabled:t.disabled,readOnly:t.readOnly,kind:`phone`,...e.props});case`date`:return c.createElement(n,{control:t.control,disabled:t.disabled,readOnly:t.readOnly,kind:`date`,...e.props});case`date-range`:return c.createElement(f,{control:t.control,fromInputProps:{disabled:t.disabled,readOnly:t.readOnly},toInputProps:{disabled:t.disabled,readOnly:t.readOnly},...e.props});default:return null}}function E({fields:e,sections:t}){return t?.length?t:[{id:`default`,fields:e??[]}]}function D({className:e,control:r,fields:i,sections:a,layout:o=`grid`,density:s=`default`,columns:p=2,disabled:m,readOnly:h,footer:g,submitLabel:_,resetLabel:v,onResetClick:y,isSubmitting:b,sectionClassName:x,fieldClassName:S,footerClassName:C,...w}){let D=E({fields:i,sections:a}),O=c.useMemo(()=>({control:r,disabled:m,readOnly:h}),[r,m,h]);return(0,l.jsxs)(`form`,{"data-slot":`form-builder`,className:t.cn(`grid`,u[s],e),...w,children:[D.filter(e=>!e.hidden).map(e=>(0,l.jsxs)(`section`,{"data-slot":`form-builder-section`,className:t.cn(`grid gap-4`,e.className,x),children:[(e.title||e.description||e.actions)&&(0,l.jsxs)(`div`,{"data-slot":`form-builder-section-header`,className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,l.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[e.title&&(0,l.jsx)(`h2`,{className:`text-base font-semibold leading-none tracking-tight`,children:e.title}),e.description&&(0,l.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),e.actions&&(0,l.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2`,children:e.actions})]}),(0,l.jsx)(`div`,{"data-slot":`form-builder-fields`,"data-layout":o,className:t.cn(`grid`,u[s],o===`grid`?d[p]:`grid-cols-1`),children:e.fields.filter(e=>!e.hidden).map(e=>(0,l.jsx)(`div`,{"data-slot":`form-builder-field`,className:t.cn(e.colSpan&&f[e.colSpan],e.className,S),children:T(e,O)},e.id))})]},e.id)),(g||_||v)&&(0,l.jsx)(`div`,{"data-slot":`form-builder-footer`,className:t.cn(`flex flex-wrap items-center justify-end gap-2`,C),children:g??(0,l.jsxs)(l.Fragment,{children:[v&&(0,l.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:m||b,onClick:y,children:v}),_&&(0,l.jsx)(n.Button,{type:`submit`,disabled:m||b,children:_})]})})]})}exports.FormBuilder=D,exports.asyncSelectField=_,exports.customField=C,exports.dateField=x,exports.dateRangeField=S,exports.formSection=w,exports.inputField=m,exports.numberField=y,exports.phoneField=b,exports.renderFormBuilderField=T,exports.selectField=g,exports.switchField=v,exports.textareaField=h;