@squadbase/vantage 0.6.2-dev1.b332e5a → 0.6.2-dev1.d7c0911

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 (212) hide show
  1. package/dist/add-4GHF2TX2.js +6 -0
  2. package/dist/add-4GHF2TX2.js.map +1 -0
  3. package/dist/{build-TVKFIVFQ.js → build-X5NVCQKT.js} +7 -7
  4. package/dist/{build-TVKFIVFQ.js.map → build-X5NVCQKT.js.map} +1 -1
  5. package/dist/{check-3KHZXZMQ.js → check-ZBIH422T.js} +5 -5
  6. package/dist/{check-3KHZXZMQ.js.map → check-ZBIH422T.js.map} +1 -1
  7. package/dist/chunk-2ICNHUG6.js +1820 -0
  8. package/dist/chunk-2ICNHUG6.js.map +1 -0
  9. package/dist/{chunk-5ZOP4SQR.js → chunk-2N72FKLB.js} +12 -7
  10. package/dist/chunk-2N72FKLB.js.map +1 -0
  11. package/dist/{chunk-P7W4LR3Z.js → chunk-7DZGJQ3P.js} +3 -3
  12. package/dist/{chunk-P7W4LR3Z.js.map → chunk-7DZGJQ3P.js.map} +1 -1
  13. package/dist/{chunk-U2M6HGKQ.js → chunk-AABMKHEU.js} +4 -4
  14. package/dist/{chunk-U2M6HGKQ.js.map → chunk-AABMKHEU.js.map} +1 -1
  15. package/dist/{chunk-QI3XQKHS.js → chunk-GNXCX4WE.js} +10 -3
  16. package/dist/chunk-GNXCX4WE.js.map +1 -0
  17. package/dist/{chunk-PXRX5PEC.js → chunk-PDOBHMUQ.js} +3 -3
  18. package/dist/chunk-PDOBHMUQ.js.map +1 -0
  19. package/dist/{chunk-ZVANIULZ.js → chunk-RNTDBX6S.js} +4 -4
  20. package/dist/{chunk-ZVANIULZ.js.map → chunk-RNTDBX6S.js.map} +1 -1
  21. package/dist/{chunk-A2UUGASH.js → chunk-U736PVHY.js} +2 -2
  22. package/dist/chunk-U736PVHY.js.map +1 -0
  23. package/dist/{chunk-PVTHHV7X.js → chunk-V3LF7BE7.js} +27 -5
  24. package/dist/chunk-V3LF7BE7.js.map +1 -0
  25. package/dist/{chunk-LMUACBMA.js → chunk-WAMZWZJB.js} +53 -8
  26. package/dist/chunk-WAMZWZJB.js.map +1 -0
  27. package/dist/chunk-WRSX2MDK.js +7866 -0
  28. package/dist/chunk-WRSX2MDK.js.map +1 -0
  29. package/dist/{chunk-RPZAALCX.js → chunk-XPQSTZUU.js} +254 -164
  30. package/dist/chunk-XPQSTZUU.js.map +1 -0
  31. package/dist/{chunk-DTDVSFRY.js → chunk-XQUSGIDG.js} +17 -3
  32. package/dist/chunk-XQUSGIDG.js.map +1 -0
  33. package/dist/cli.js +12 -11
  34. package/dist/cli.js.map +1 -1
  35. package/dist/client/index.d.ts +32 -3
  36. package/dist/client/index.js +205 -12
  37. package/dist/client/index.js.map +1 -1
  38. package/dist/components/index.d.ts +1975 -28
  39. package/dist/components/index.js +4 -4
  40. package/dist/{dev-GDKATCC7.js → dev-4XEDTELV.js} +8 -8
  41. package/dist/dev-4XEDTELV.js.map +1 -0
  42. package/dist/doc/index.js +2 -2
  43. package/dist/doc/index.js.map +1 -1
  44. package/dist/{docs-EJJ3BECT.js → docs-JVP4RPKT.js} +3 -3
  45. package/dist/{docs-EJJ3BECT.js.map → docs-JVP4RPKT.js.map} +1 -1
  46. package/dist/{doctor-WQXPXP6K.js → doctor-5E2VEZPK.js} +5 -5
  47. package/dist/{doctor-WQXPXP6K.js.map → doctor-5E2VEZPK.js.map} +1 -1
  48. package/dist/markdown/index.js +1 -1
  49. package/dist/markdown/index.js.map +1 -1
  50. package/dist/{preview-OGMCNQUO.js → preview-T6CLSQVX.js} +3 -3
  51. package/dist/{preview-OGMCNQUO.js.map → preview-T6CLSQVX.js.map} +1 -1
  52. package/dist/query/index.d.ts +0 -11
  53. package/dist/query/index.js +2 -2
  54. package/dist/{routes-MWBWWOJ2.js → routes-3SGAFDMC.js} +4 -4
  55. package/dist/{routes-MWBWWOJ2.js.map → routes-3SGAFDMC.js.map} +1 -1
  56. package/dist/{search-6Y422SV6.js → search-5LC4XPB5.js} +3 -3
  57. package/dist/{search-6Y422SV6.js.map → search-5LC4XPB5.js.map} +1 -1
  58. package/dist/table/index.js +10 -9
  59. package/dist/table/index.js.map +1 -1
  60. package/dist/ui/index.d.ts +144 -11
  61. package/dist/ui/index.js +1339 -87
  62. package/dist/ui/index.js.map +1 -1
  63. package/dist/{upgrade-HCANX4GQ.js → upgrade-JHXZBGQS.js} +6 -6
  64. package/dist/{upgrade-HCANX4GQ.js.map → upgrade-JHXZBGQS.js.map} +1 -1
  65. package/dist/vite/index.d.ts +10 -0
  66. package/dist/vite/index.js +3 -3
  67. package/docs/en/components.md +29 -15
  68. package/docs/en/parts/data-table.md +22 -0
  69. package/docs/en/parts/delta.md +50 -0
  70. package/docs/en/parts/format.md +43 -0
  71. package/docs/en/parts/kpi-card.md +57 -0
  72. package/docs/en/parts/metric-value.md +3 -2
  73. package/docs/en/parts/sparkline.md +1 -1
  74. package/docs/en/parts/trend-indicator.md +17 -1
  75. package/docs/en/ui-and-theming.md +1 -1
  76. package/docs/index.json +366 -76
  77. package/docs/ja/changelog.md +31 -0
  78. package/docs/ja/components.md +57 -101
  79. package/docs/ja/page-types/csv.md +83 -0
  80. package/docs/ja/page-types/doc.md +83 -0
  81. package/docs/ja/page-types/excel.md +82 -0
  82. package/docs/ja/page-types/slide.md +132 -0
  83. package/docs/ja/page-types.md +47 -0
  84. package/docs/ja/parts/area-chart.md +61 -0
  85. package/docs/ja/parts/bar-chart.md +69 -0
  86. package/docs/ja/parts/bar-list.md +35 -0
  87. package/docs/ja/parts/category-bar.md +36 -0
  88. package/docs/ja/parts/data-table.md +22 -0
  89. package/docs/ja/parts/delta.md +50 -0
  90. package/docs/ja/parts/donut-chart.md +47 -0
  91. package/docs/ja/parts/echart.md +3 -0
  92. package/docs/ja/parts/format.md +44 -0
  93. package/docs/ja/parts/kpi-card.md +55 -0
  94. package/docs/ja/parts/line-chart.md +58 -0
  95. package/docs/ja/parts/metric-value.md +3 -2
  96. package/docs/ja/parts/progress-circle.md +34 -0
  97. package/docs/ja/parts/sparkline.md +2 -2
  98. package/docs/ja/parts/tracker.md +32 -0
  99. package/docs/ja/parts/trend-indicator.md +17 -1
  100. package/docs/ja/routing.md +8 -86
  101. package/docs/ja/ui/alert-dialog.md +41 -0
  102. package/docs/ja/ui/avatar.md +31 -0
  103. package/docs/ja/ui/combobox.md +74 -0
  104. package/docs/ja/ui/drawer.md +41 -0
  105. package/docs/ja/ui/field.md +42 -0
  106. package/docs/ja/ui/hover-card.md +21 -0
  107. package/docs/ja/ui/kbd.md +16 -0
  108. package/docs/ja/ui/pagination.md +36 -0
  109. package/docs/ja/ui/radio-group.md +21 -0
  110. package/docs/ja/ui/toast.md +46 -0
  111. package/docs/ja/ui-and-theming.md +14 -7
  112. package/package.json +13 -4
  113. package/registry/ui/accordion.tsx +76 -0
  114. package/registry/ui/alert-dialog.tsx +189 -0
  115. package/registry/ui/alert.tsx +80 -0
  116. package/registry/ui/app-shell.tsx +287 -0
  117. package/registry/ui/area-chart.tsx +3639 -0
  118. package/registry/ui/avatar.tsx +110 -0
  119. package/registry/ui/badge.tsx +56 -0
  120. package/registry/ui/bar-chart.tsx +3636 -0
  121. package/registry/ui/bar-list.tsx +3680 -0
  122. package/registry/ui/breadcrumb.tsx +128 -0
  123. package/registry/ui/button.tsx +62 -0
  124. package/registry/ui/calendar.tsx +223 -0
  125. package/registry/ui/card.tsx +107 -0
  126. package/registry/ui/category-bar.tsx +1255 -0
  127. package/registry/ui/chart-frame.tsx +1358 -0
  128. package/registry/ui/checkbox.tsx +30 -0
  129. package/registry/ui/collapsible.tsx +23 -0
  130. package/registry/ui/combobox.tsx +310 -0
  131. package/registry/ui/command.tsx +198 -0
  132. package/registry/ui/dashboard-card.tsx +217 -0
  133. package/registry/ui/data-table.tsx +693 -146
  134. package/registry/ui/date-range-picker.tsx +390 -0
  135. package/registry/ui/delta.tsx +188 -0
  136. package/registry/ui/dialog.tsx +161 -0
  137. package/registry/ui/donut-chart.tsx +3688 -0
  138. package/registry/ui/drawer.tsx +229 -0
  139. package/registry/ui/dropdown-menu.tsx +274 -0
  140. package/registry/ui/echart.tsx +890 -0
  141. package/registry/ui/field.tsx +240 -0
  142. package/registry/ui/filter-bar.tsx +392 -0
  143. package/registry/ui/funnel-steps.tsx +3541 -0
  144. package/registry/ui/heatmap.tsx +1752 -0
  145. package/registry/ui/hover-card.tsx +52 -0
  146. package/registry/ui/input-group.tsx +160 -0
  147. package/registry/ui/input.tsx +24 -0
  148. package/registry/ui/kbd.tsx +30 -0
  149. package/registry/ui/kpi-card.tsx +677 -0
  150. package/registry/ui/label.tsx +22 -0
  151. package/registry/ui/legend.tsx +3500 -0
  152. package/registry/ui/line-chart.tsx +3637 -0
  153. package/registry/ui/metric-value.tsx +62 -0
  154. package/registry/ui/multi-select.tsx +232 -0
  155. package/registry/ui/page-shell.tsx +282 -0
  156. package/registry/ui/pagination.tsx +140 -0
  157. package/registry/ui/placeholder.tsx +36 -0
  158. package/registry/ui/popover.tsx +92 -0
  159. package/registry/ui/progress-circle.tsx +867 -0
  160. package/registry/ui/progress.tsx +85 -0
  161. package/registry/ui/radio-group.tsx +39 -0
  162. package/registry/ui/sample-data.tsx +86 -0
  163. package/registry/ui/scatter-chart.tsx +4150 -0
  164. package/registry/ui/scroll-area.tsx +56 -0
  165. package/registry/ui/searchable-select.tsx +214 -0
  166. package/registry/ui/section-header.tsx +43 -0
  167. package/registry/ui/segmented-control.tsx +76 -0
  168. package/registry/ui/select.tsx +255 -0
  169. package/registry/ui/separator.tsx +27 -0
  170. package/registry/ui/sheet.tsx +139 -0
  171. package/registry/ui/sidebar.tsx +725 -0
  172. package/registry/ui/skeleton.tsx +17 -0
  173. package/registry/ui/slider.tsx +56 -0
  174. package/registry/ui/sparkline.tsx +230 -0
  175. package/registry/ui/spinner.tsx +14 -0
  176. package/registry/ui/states.tsx +90 -0
  177. package/registry/ui/status-badge.tsx +121 -0
  178. package/registry/ui/switch.tsx +34 -0
  179. package/registry/ui/table.tsx +118 -0
  180. package/registry/ui/tabs.tsx +84 -0
  181. package/registry/ui/textarea.tsx +22 -0
  182. package/registry/ui/toast.tsx +250 -0
  183. package/registry/ui/toggle-group.tsx +91 -0
  184. package/registry/ui/toggle.tsx +47 -0
  185. package/registry/ui/tooltip.tsx +68 -0
  186. package/registry/ui/tracker.tsx +843 -0
  187. package/registry/ui/trend-indicator.tsx +74 -0
  188. package/registry/ui/updated-at.tsx +122 -0
  189. package/registry/ui/waterfall-chart.tsx +4186 -0
  190. package/skills/vantage-add-feature/SKILL.md +9 -7
  191. package/skills/vantage-pitfalls/SKILL.md +5 -1
  192. package/templates/AGENTS.md +22 -1
  193. package/templates/agents/csv.md +2 -1
  194. package/templates/agents/doc.md +4 -3
  195. package/templates/agents/page.md +20 -6
  196. package/templates/agents/xlsx.md +2 -1
  197. package/theme.css +237 -136
  198. package/dist/add-DY4AXANK.js +0 -6
  199. package/dist/add-DY4AXANK.js.map +0 -1
  200. package/dist/chunk-5ZOP4SQR.js.map +0 -1
  201. package/dist/chunk-A2UUGASH.js.map +0 -1
  202. package/dist/chunk-DTDVSFRY.js.map +0 -1
  203. package/dist/chunk-LMUACBMA.js.map +0 -1
  204. package/dist/chunk-NKFBFDRZ.js +0 -2241
  205. package/dist/chunk-NKFBFDRZ.js.map +0 -1
  206. package/dist/chunk-PVTHHV7X.js.map +0 -1
  207. package/dist/chunk-PXRX5PEC.js.map +0 -1
  208. package/dist/chunk-QI3XQKHS.js.map +0 -1
  209. package/dist/chunk-RPZAALCX.js.map +0 -1
  210. package/dist/chunk-VA776YE5.js +0 -316
  211. package/dist/chunk-VA776YE5.js.map +0 -1
  212. package/dist/dev-GDKATCC7.js.map +0 -1
@@ -0,0 +1,217 @@
1
+ // Copied by `vantage add ui dashboard-card`. This file is yours to edit.
2
+ // Generated from @squadbase/squadkit registry/components/dashboard-card.tsx by `npm run registry` (in Vantage, edit packages/squadkit, not registry/).
3
+ "use client"
4
+
5
+ /**
6
+ * DashboardCard — the tighter card used for dashboard tiles: smaller padding
7
+ * than the plain `Card`, a title/description/action header, and a matching
8
+ * skeleton for the loading state. `DashboardCardPreset` wires the common
9
+ * arrangement in one prop-driven component.
10
+ *
11
+ * - **Rows line up by subgrid.** `subgrid={3}` (header, content, footer) or `{2}` makes the
12
+ * tile span that many rows of its parent grid (`row-span-N` + `grid-template-rows: subgrid`),
13
+ * so tiles placed directly in one grid share the top edge of each part. Parts that are not
14
+ * given are not drawn (no empty header or footer, no fixed `h-*` / `min-h-*`); the preset puts
15
+ * each part on its own row. Without `subgrid` it is a plain block.
16
+ * - **`size="sm"`** is a step tighter (padding), for two tiles side by side in a narrow place.
17
+ *
18
+ * Use it for tiles that hold a chart, ranking or table. For a single KPI use
19
+ * `KpiCard` — it is already a card, and computes the delta, labels and target
20
+ * lines from the values.
21
+ */
22
+ import { forwardRef, type HTMLAttributes, type ReactNode } from "react"
23
+
24
+ import { cn } from "@squadbase/vantage/ui"
25
+ import { Skeleton } from "@squadbase/vantage/ui"
26
+ import { SampleBadge, SampleClaim, useSampleMark } from "@squadbase/vantage/components"
27
+
28
+ export interface DashboardCardProps extends HTMLAttributes<HTMLDivElement> {
29
+ /** 親の grid の何行にまたがって subgrid で揃えるか(ヘッダー・本文・フッターなら 3、ヘッダー・本文なら 2)。未指定なら通常のブロック。 */
30
+ subgrid?: 2 | 3
31
+ /** `"sm"` は一段小さい余白。Sheet の中などで 2 枚を横に並べるとき。既定 `"default"`。 */
32
+ size?: "default" | "sm"
33
+ }
34
+
35
+ const SUBGRID_CLASS = {
36
+ 2: "row-span-2 grid content-start grid-rows-subgrid",
37
+ 3: "row-span-3 grid content-start grid-rows-subgrid",
38
+ } as const
39
+
40
+ export const DashboardCard = forwardRef<HTMLDivElement, DashboardCardProps>(
41
+ ({ className, subgrid, size = "default", ...props }, ref) => (
42
+ <div
43
+ ref={ref}
44
+ data-slot="dashboard-card"
45
+ data-size={size}
46
+ className={cn(
47
+ "group rounded-xl border bg-card shadow-[var(--shadow-card)] px-1 py-1 text-card-foreground",
48
+ subgrid && SUBGRID_CLASS[subgrid],
49
+ className,
50
+ )}
51
+ {...props}
52
+ />
53
+ ),
54
+ )
55
+ DashboardCard.displayName = "DashboardCard"
56
+
57
+ export interface DashboardCardHeaderProps extends HTMLAttributes<HTMLDivElement> {}
58
+
59
+ export const DashboardCardHeader = forwardRef<HTMLDivElement, DashboardCardHeaderProps>(
60
+ ({ className, ...props }, ref) => (
61
+ <div
62
+ ref={ref}
63
+ data-slot="dashboard-card-header"
64
+ className={cn("flex flex-row items-start justify-between gap-4 px-3 py-3 group-data-[size=sm]:px-2 group-data-[size=sm]:py-2", className)}
65
+ {...props}
66
+ />
67
+ ),
68
+ )
69
+ DashboardCardHeader.displayName = "DashboardCardHeader"
70
+
71
+ export interface DashboardCardTitleProps extends HTMLAttributes<HTMLHeadingElement> {}
72
+
73
+ export const DashboardCardTitle = forwardRef<HTMLHeadingElement, DashboardCardTitleProps>(
74
+ ({ className, ...props }, ref) => (
75
+ <h3
76
+ ref={ref}
77
+ data-slot="dashboard-card-title"
78
+ className={cn("text-sm leading-none font-semibold tracking-tight", className)}
79
+ {...props}
80
+ />
81
+ ),
82
+ )
83
+ DashboardCardTitle.displayName = "DashboardCardTitle"
84
+
85
+ export interface DashboardCardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {}
86
+
87
+ export const DashboardCardDescription = forwardRef<
88
+ HTMLParagraphElement,
89
+ DashboardCardDescriptionProps
90
+ >(({ className, ...props }, ref) => (
91
+ <p
92
+ ref={ref}
93
+ data-slot="dashboard-card-description"
94
+ className={cn("text-xs text-muted-foreground", className)}
95
+ {...props}
96
+ />
97
+ ))
98
+ DashboardCardDescription.displayName = "DashboardCardDescription"
99
+
100
+ export interface DashboardCardActionProps extends HTMLAttributes<HTMLDivElement> {}
101
+
102
+ export const DashboardCardAction = forwardRef<HTMLDivElement, DashboardCardActionProps>(
103
+ ({ className, ...props }, ref) => (
104
+ <div
105
+ ref={ref}
106
+ data-slot="dashboard-card-action"
107
+ className={cn("ml-auto shrink-0", className)}
108
+ {...props}
109
+ />
110
+ ),
111
+ )
112
+ DashboardCardAction.displayName = "DashboardCardAction"
113
+
114
+ export interface DashboardCardContentProps extends HTMLAttributes<HTMLDivElement> {}
115
+
116
+ export const DashboardCardContent = forwardRef<HTMLDivElement, DashboardCardContentProps>(
117
+ ({ className, ...props }, ref) => (
118
+ <div ref={ref} data-slot="dashboard-card-content" className={cn("p-3 group-data-[size=sm]:p-2", className)} {...props} />
119
+ ),
120
+ )
121
+ DashboardCardContent.displayName = "DashboardCardContent"
122
+
123
+ export interface DashboardCardFooterProps extends HTMLAttributes<HTMLDivElement> {}
124
+
125
+ export const DashboardCardFooter = forwardRef<HTMLDivElement, DashboardCardFooterProps>(
126
+ ({ className, ...props }, ref) => (
127
+ <div
128
+ ref={ref}
129
+ data-slot="dashboard-card-footer"
130
+ className={cn("flex items-center px-3 py-1.5 group-data-[size=sm]:px-2", className)}
131
+ {...props}
132
+ />
133
+ ),
134
+ )
135
+ DashboardCardFooter.displayName = "DashboardCardFooter"
136
+
137
+ export interface DashboardCardSkeletonProps {
138
+ className?: string
139
+ }
140
+
141
+ export function DashboardCardSkeleton({ className }: DashboardCardSkeletonProps) {
142
+ return (
143
+ <div
144
+ data-slot="dashboard-card-skeleton"
145
+ className={cn("rounded-xl border bg-card p-6 shadow-[var(--shadow-card)]", className)}
146
+ >
147
+ <div className="flex items-start justify-between gap-4 pb-4">
148
+ <Skeleton className="h-5 w-32" />
149
+ <Skeleton className="h-8 w-8 rounded-md" />
150
+ </div>
151
+ <Skeleton className="h-4 w-full" />
152
+ <Skeleton className="mt-2 h-4 w-3/4" />
153
+ </div>
154
+ )
155
+ }
156
+
157
+ export interface DashboardCardPresetProps
158
+ extends Omit<HTMLAttributes<HTMLDivElement>, "title">,
159
+ Pick<DashboardCardProps, "subgrid" | "size"> {
160
+ title?: ReactNode
161
+ description?: ReactNode
162
+ actions?: ReactNode
163
+ footer?: ReactNode
164
+ headerClassName?: string
165
+ contentClassName?: string
166
+ footerClassName?: string
167
+ }
168
+
169
+ export function DashboardCardPreset({
170
+ title,
171
+ description,
172
+ actions,
173
+ footer,
174
+ children,
175
+ headerClassName,
176
+ contentClassName,
177
+ footerClassName,
178
+ className,
179
+ subgrid,
180
+ ...props
181
+ }: DashboardCardPresetProps) {
182
+ // Inside SampleData the card shows the mark in its header, and the parts inside it do not repeat it.
183
+ const sample = useSampleMark()
184
+ const hasHeader = title || description || actions || sample
185
+ return (
186
+ <DashboardCard className={className} subgrid={subgrid} {...props}>
187
+ <SampleClaim>
188
+ {hasHeader && (
189
+ <DashboardCardHeader className={cn(subgrid && "row-start-1", headerClassName)}>
190
+ {(title || description) && (
191
+ <div>
192
+ {title && <DashboardCardTitle>{title}</DashboardCardTitle>}
193
+ {description && <DashboardCardDescription>{description}</DashboardCardDescription>}
194
+ </div>
195
+ )}
196
+ {(actions || sample) && (
197
+ <DashboardCardAction className={cn(sample && actions && "flex items-center gap-2")}>
198
+ {sample && <SampleBadge label={sample.label} />}
199
+ {actions}
200
+ </DashboardCardAction>
201
+ )}
202
+ </DashboardCardHeader>
203
+ )}
204
+ {children && (
205
+ <DashboardCardContent className={cn(subgrid && "row-start-2", contentClassName)}>
206
+ {children}
207
+ </DashboardCardContent>
208
+ )}
209
+ {footer && (
210
+ <DashboardCardFooter className={cn(subgrid === 3 && "row-start-3", footerClassName)}>
211
+ {footer}
212
+ </DashboardCardFooter>
213
+ )}
214
+ </SampleClaim>
215
+ </DashboardCard>
216
+ )
217
+ }