@godxjp/ui 19.2.0 → 19.3.1

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 (66) hide show
  1. package/dist/components/data-display/badge.d.ts +18 -2
  2. package/dist/components/data-display/badge.js +18 -4
  3. package/dist/props/components/data-display.prop.d.ts +7 -0
  4. package/dist/props/registry.d.ts +5 -1
  5. package/dist/props/registry.js +12 -1
  6. package/dist/styles/badge-layout.css +15 -0
  7. package/dist/tokens/components/badge.css +8 -0
  8. package/docs/data-display/badge.tsx +36 -0
  9. package/docs/data-display/carousel.tsx +8 -4
  10. package/docs/data-display/data-table/examples/grid-features.tsx +1 -1
  11. package/docs/data-display/permission-matrix.tsx +13 -9
  12. package/docs/data-display/popover.tsx +2 -1
  13. package/docs/data-display/scroll-area.tsx +107 -75
  14. package/docs/data-display/table.tsx +1 -1
  15. package/docs/data-entry/calendar.tsx +1 -1
  16. package/docs/data-entry/checkbox.tsx +1 -1
  17. package/docs/data-entry/country-picker-recipe.tsx +11 -6
  18. package/docs/data-entry/form-field/index.tsx +33 -29
  19. package/docs/data-entry/form-root.tsx +1 -1
  20. package/docs/data-entry/password-input.tsx +1 -5
  21. package/docs/data-entry/select.tsx +7 -7
  22. package/docs/data-entry/textarea.tsx +2 -2
  23. package/docs/feedback/sheet.tsx +112 -102
  24. package/docs/feedback/skeleton.tsx +2 -2
  25. package/docs/foundation/colors.tsx +8 -6
  26. package/docs/foundation/email-tokens.tsx +82 -65
  27. package/docs/foundation/radius-shadow.tsx +13 -11
  28. package/docs/layout/app-shell.tsx +2 -2
  29. package/docs/layout/aspect-ratio.tsx +30 -14
  30. package/docs/layout/flex.tsx +6 -2
  31. package/docs/layout/page-container.tsx +9 -1
  32. package/docs/layout/responsive-grid.tsx +10 -2
  33. package/docs/layout/sidebar.tsx +169 -146
  34. package/docs/layout/split-pane.tsx +44 -27
  35. package/docs/layout/topbar.tsx +17 -15
  36. package/docs/navigation/app-setting-picker.tsx +5 -4
  37. package/docs/navigation/breadcrumb.tsx +12 -5
  38. package/docs/navigation/context-menu.tsx +10 -4
  39. package/docs/navigation/navigation-menu.tsx +89 -96
  40. package/docs/navigation/steps.tsx +12 -10
  41. package/docs/navigation/tabs.tsx +26 -20
  42. package/docs/navigation/toolbar.tsx +15 -15
  43. package/docs/providers/format-date.tsx +2 -2
  44. package/docs/showcase/acme-portal.tsx +41 -27
  45. package/docs/showcase/acme-website.tsx +60 -54
  46. package/docs/showcase/case1-warehouse-dashboard.tsx +46 -30
  47. package/docs/showcase/case2-employee-me.tsx +23 -20
  48. package/docs/showcase/case3-approval-workflow.tsx +34 -32
  49. package/docs/showcase/case4-login.tsx +119 -113
  50. package/docs/showcase/case5-shift-calendar.tsx +3 -3
  51. package/docs/showcase/case6-agency-handy.tsx +340 -299
  52. package/docs/showcase/futurelastic-web.tsx +23 -21
  53. package/docs/showcase/org-switcher.tsx +2 -2
  54. package/docs/showcase/permission-matrix.tsx +7 -4
  55. package/docs/showcase/table-conditional-format.tsx +8 -8
  56. package/docs/showcase/table-crud-list.tsx +3 -3
  57. package/docs/showcase/table-density.tsx +49 -42
  58. package/docs/showcase/table-expandable-rows.tsx +24 -15
  59. package/docs/showcase/table-filter-chips.tsx +2 -7
  60. package/docs/showcase/table-footer-totals.tsx +7 -4
  61. package/docs/showcase/table-grouped-subtotals.tsx +25 -22
  62. package/docs/showcase/table-master-detail.tsx +15 -10
  63. package/docs/showcase/table-pagination.tsx +34 -27
  64. package/docs/showcase/table-states.tsx +8 -5
  65. package/docs/showcase/table-sticky-columns.tsx +8 -5
  66. package/package.json +2 -3
@@ -26,6 +26,7 @@ import * as React from "react";
26
26
  import {
27
27
  Badge,
28
28
  Card,
29
+ CardAction,
29
30
  CardContent,
30
31
  CardHeader,
31
32
  CardTitle,
@@ -145,11 +146,13 @@ function NumberedPaginationCard() {
145
146
 
146
147
  return (
147
148
  <Card>
148
- <CardHeader className="flex flex-row items-center justify-between">
149
+ <CardHeader>
149
150
  <CardTitle level={2}>番号付き + 件数選択</CardTitle>
150
- <Text size="xs" tone="muted" tabular>
151
- {NUMBERED_DATA.length}
152
- </Text>
151
+ <CardAction>
152
+ <Text size="xs" tone="muted" tabular>
153
+ 全 {NUMBERED_DATA.length} 件
154
+ </Text>
155
+ </CardAction>
153
156
  </CardHeader>
154
157
  <CardContent flush>
155
158
  <DataTable data={rows} columns={columns} getRowId={(row) => row.id} density="compact" />
@@ -198,11 +201,13 @@ function LoadMoreCard() {
198
201
 
199
202
  return (
200
203
  <Card>
201
- <CardHeader className="flex flex-row items-center justify-between">
204
+ <CardHeader>
202
205
  <CardTitle level={2}>もっと読む</CardTitle>
203
- <Text size="xs" tone="muted" tabular>
204
- {rows.length} / {LOADMORE_DATA.length} 件表示
205
- </Text>
206
+ <CardAction>
207
+ <Text size="xs" tone="muted" tabular>
208
+ {rows.length} / {LOADMORE_DATA.length} 件表示
209
+ </Text>
210
+ </CardAction>
206
211
  </CardHeader>
207
212
  <CardContent flush>
208
213
  <DataTable data={rows} columns={columns} getRowId={(row) => row.id} density="compact" />
@@ -263,26 +268,28 @@ function CursorPeriodCard() {
263
268
 
264
269
  return (
265
270
  <Card>
266
- <CardHeader className="flex flex-row items-center justify-between gap-3">
271
+ <CardHeader>
267
272
  <CardTitle level={2}>カーソル / 期間ジャンプ</CardTitle>
268
- <Select
269
- value={period}
270
- onValueChange={(v: string) => {
271
- setPeriod(v);
272
- setCursor(undefined); // jumping period resets the cursor to the first page
273
- }}
274
- >
275
- <SelectTrigger size="sm" aria-label="期間を選択" className="w-36">
276
- <SelectValue />
277
- </SelectTrigger>
278
- <SelectContent>
279
- {PERIODS.map((p) => (
280
- <SelectItem key={p.value} value={p.value}>
281
- {p.label}
282
- </SelectItem>
283
- ))}
284
- </SelectContent>
285
- </Select>
273
+ <CardAction>
274
+ <Select
275
+ value={period}
276
+ onValueChange={(v: string) => {
277
+ setPeriod(v);
278
+ setCursor(undefined); // jumping period resets the cursor to the first page
279
+ }}
280
+ >
281
+ <SelectTrigger size="sm" aria-label="期間を選択" className="w-36">
282
+ <SelectValue />
283
+ </SelectTrigger>
284
+ <SelectContent>
285
+ {PERIODS.map((p) => (
286
+ <SelectItem key={p.value} value={p.value}>
287
+ {p.label}
288
+ </SelectItem>
289
+ ))}
290
+ </SelectContent>
291
+ </Select>
292
+ </CardAction>
286
293
  </CardHeader>
287
294
  <CardContent flush>
288
295
  <DataTable data={rows} columns={columns} getRowId={(row) => row.id} density="compact" />
@@ -29,12 +29,13 @@ import { Button, Heading, Text } from "@godxjp/ui/general";
29
29
  import {
30
30
  Badge,
31
31
  Card,
32
+ CardAction,
32
33
  CardContent,
33
34
  CardHeader,
34
35
  CardTitle,
35
- type ColumnDef,
36
36
  DataTable,
37
37
  EmptyState,
38
+ type ColumnDef,
38
39
  } from "@godxjp/ui/data-display";
39
40
  import {
40
41
  Alert,
@@ -197,11 +198,13 @@ function TableShell({
197
198
  }) {
198
199
  return (
199
200
  <Card>
200
- <CardHeader className="flex flex-row items-center justify-between">
201
+ <CardHeader>
201
202
  <CardTitle level={2}>本日の打刻</CardTitle>
202
- <Text size="xs" tone="muted">
203
- {caption}
204
- </Text>
203
+ <CardAction>
204
+ <Text size="xs" tone="muted">
205
+ {caption}
206
+ </Text>
207
+ </CardAction>
205
208
  </CardHeader>
206
209
  <CardContent flush>{children}</CardContent>
207
210
  </Card>
@@ -22,8 +22,8 @@ import { Check } from "lucide-react";
22
22
  import { Button, Text } from "@godxjp/ui/general";
23
23
  import {
24
24
  Badge,
25
- type BadgeProps,
26
25
  Card,
26
+ CardAction,
27
27
  CardContent,
28
28
  CardHeader,
29
29
  CardTitle,
@@ -33,6 +33,7 @@ import {
33
33
  TableHead,
34
34
  TableHeader,
35
35
  TableRow,
36
+ type BadgeProps,
36
37
  } from "@godxjp/ui/data-display";
37
38
  import { Flex, PageContainer } from "@godxjp/ui/layout";
38
39
 
@@ -221,11 +222,13 @@ export default function Demo() {
221
222
  >
222
223
  <Flex direction="col" gap="lg">
223
224
  <Card>
224
- <CardHeader className="flex flex-row items-center justify-between">
225
+ <CardHeader>
225
226
  <CardTitle level={2}>2026年6月 第1週</CardTitle>
226
- <Text size="xs" tone="muted" tabular>
227
- 従業員 {EMPLOYEES.length} · 横スクロールで全日表示
228
- </Text>
227
+ <CardAction>
228
+ <Text size="xs" tone="muted" tabular>
229
+ 従業員 {EMPLOYEES.length} 名 · 横スクロールで全日表示
230
+ </Text>
231
+ </CardAction>
229
232
  </CardHeader>
230
233
  <CardContent flush>
231
234
  {/* The scroll container. `overflow-x-auto` clips; the table holds a
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "19.2.0",
4
- "godxUiMcp": "19.2.0",
3
+ "version": "19.3.1",
4
+ "godxUiMcp": "19.3.1",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -333,7 +333,6 @@
333
333
  "check:frame-contracts": "pnpm check:component-api-manifest && pnpm audit:component-cases && pnpm check:frame-coverage && pnpm check:frame-coverage-ledger && pnpm check:screen-reader-evidence && pnpm check:data-entry-owner-source && pnpm check:display-runtime-evidence",
334
334
  "check:final-touch-rtl": "node scripts/check-final-touch-rtl.mjs",
335
335
  "check:frame-runtime": "pnpm check:data-entry-frame-runtime && pnpm check:data-entry-touch-aria && pnpm check:layout-nav-frames && pnpm check:provider-feedback-query-runtime && pnpm check:layout-nav-closure && pnpm check:final-touch-rtl && pnpm check:data-table-pagination-wrap && pnpm check:button-icon-xs",
336
- "pretest": "pnpm check:frame-coverage",
337
336
  "verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:no-external-assets && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:frame-coverage && pnpm test",
338
337
  "verify:static": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm check:contrast && pnpm check:visual-audit && pnpm test",
339
338
  "verify:ci": "pnpm build && pnpm check:packed-public-contract && pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:no-consumer-coupling && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:token-scale-bypass && pnpm check:dist-tokens-resolve && pnpm check:no-hardcoded-geometry && pnpm check:no-hardcoded-css-values && pnpm check:no-inline-magic-numbers && pnpm check:no-tailwind-class-assertions && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:doc-prop-existence && pnpm check:mcp-catalog-coverage && pnpm check:mcp-orphans && pnpm check:mcp-pattern-imports && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm test",