@godxjp/ui 19.1.0 → 19.2.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 (436) hide show
  1. package/README.md +25 -128
  2. package/dist/app/theme-axes.d.ts +4 -15
  3. package/dist/app/timezones.d.ts +1 -4
  4. package/dist/components/charts/area-chart.d.ts +2 -3
  5. package/dist/components/charts/bar-chart.d.ts +2 -3
  6. package/dist/components/charts/chart-frame.d.ts +7 -16
  7. package/dist/components/charts/chart-summary.d.ts +2 -2
  8. package/dist/components/charts/compact-bar-trend.d.ts +9 -24
  9. package/dist/components/charts/index.d.ts +1 -6
  10. package/dist/components/data-display/badge.d.ts +2 -12
  11. package/dist/components/data-display/card.d.ts +21 -41
  12. package/dist/components/data-display/carousel.d.ts +1 -2
  13. package/dist/components/data-display/code-block.d.ts +4 -0
  14. package/dist/components/data-display/code-block.js +24 -0
  15. package/dist/components/data-display/data-table.d.ts +15 -37
  16. package/dist/components/data-display/data-table.js +1 -3
  17. package/dist/components/data-display/descriptions.d.ts +2 -6
  18. package/dist/components/data-display/descriptions.js +0 -2
  19. package/dist/components/data-display/index.d.ts +4 -0
  20. package/dist/components/data-display/index.js +4 -0
  21. package/dist/components/data-display/list-row.d.ts +3 -22
  22. package/dist/components/data-display/permission-matrix.d.ts +7 -20
  23. package/dist/components/data-display/progress.d.ts +1 -1
  24. package/dist/components/data-display/prose.d.ts +4 -0
  25. package/dist/components/data-display/prose.js +20 -0
  26. package/dist/components/data-display/service-launcher-card.d.ts +3 -10
  27. package/dist/components/data-display/table.d.ts +20 -80
  28. package/dist/components/data-display/table.js +0 -3
  29. package/dist/components/data-display/timeline.d.ts +3 -5
  30. package/dist/components/data-entry/branch-scope-picker.d.ts +2 -19
  31. package/dist/components/data-entry/branch-scope-picker.js +0 -1
  32. package/dist/components/data-entry/calendar.d.ts +3 -2
  33. package/dist/components/data-entry/calendar.js +58 -3
  34. package/dist/components/data-entry/command-palette.d.ts +8 -22
  35. package/dist/components/data-entry/date-picker.d.ts +4 -5
  36. package/dist/components/data-entry/date-picker.js +6 -1
  37. package/dist/components/data-entry/date-range-picker.d.ts +1 -1
  38. package/dist/components/data-entry/date-range-picker.js +8 -3
  39. package/dist/components/data-entry/form-errors.d.ts +7 -18
  40. package/dist/components/data-entry/form-field.js +1 -5
  41. package/dist/components/data-entry/form.d.ts +1 -9
  42. package/dist/components/data-entry/input.d.ts +16 -14
  43. package/dist/components/data-entry/input.js +3 -0
  44. package/dist/components/data-entry/month-picker.js +2 -2
  45. package/dist/components/data-entry/month-range-picker.d.ts +4 -6
  46. package/dist/components/data-entry/month-range-picker.js +2 -2
  47. package/dist/components/data-entry/number-input.d.ts +1 -5
  48. package/dist/components/data-entry/number-input.js +1 -0
  49. package/dist/components/data-entry/radio.js +0 -1
  50. package/dist/components/data-entry/search-select.d.ts +2 -4
  51. package/dist/components/data-entry/select.d.ts +11 -6
  52. package/dist/components/data-entry/select.js +4 -2
  53. package/dist/components/data-entry/switch.js +0 -1
  54. package/dist/components/data-entry/textarea.d.ts +10 -16
  55. package/dist/components/data-entry/time-picker.d.ts +3 -5
  56. package/dist/components/data-entry/upload-types.d.ts +1 -5
  57. package/dist/components/data-entry/use-upload-draft.d.ts +0 -4
  58. package/dist/components/feedback/dialog.d.ts +6 -15
  59. package/dist/components/feedback/overlay-header-tone.d.ts +1 -1
  60. package/dist/components/feedback/sheet.d.ts +3 -10
  61. package/dist/components/feedback/sheet.js +1 -1
  62. package/dist/components/feedback/sonner.js +2 -3
  63. package/dist/components/general/activity.d.ts +4 -30
  64. package/dist/components/general/button.js +1 -10
  65. package/dist/components/general/logo.d.ts +6 -28
  66. package/dist/components/general/reveal.d.ts +3 -9
  67. package/dist/components/general/typography.d.ts +1 -3
  68. package/dist/components/layout/account-chip.d.ts +8 -0
  69. package/dist/components/layout/account-chip.js +45 -0
  70. package/dist/components/layout/auth-divider.d.ts +2 -9
  71. package/dist/components/layout/auth-shell.d.ts +1 -14
  72. package/dist/components/layout/breadcrumb.d.ts +1 -5
  73. package/dist/components/layout/centered-shell.d.ts +4 -18
  74. package/dist/components/layout/error-surface.d.ts +11 -28
  75. package/dist/components/layout/error-surface.js +4 -1
  76. package/dist/components/layout/index.d.ts +2 -0
  77. package/dist/components/layout/index.js +2 -0
  78. package/dist/components/layout/legal-document-shell.d.ts +5 -28
  79. package/dist/components/layout/master-detail.d.ts +2 -18
  80. package/dist/components/layout/page-container.js +0 -1
  81. package/dist/components/layout/responsive-grid.d.ts +6 -1
  82. package/dist/components/layout/responsive-grid.js +9 -2
  83. package/dist/components/layout/service-role-panel.d.ts +7 -19
  84. package/dist/components/layout/sidebar.d.ts +5 -27
  85. package/dist/components/layout/sidebar.js +0 -1
  86. package/dist/components/layout/split-pane.d.ts +0 -7
  87. package/dist/components/layout/topbar.d.ts +1 -14
  88. package/dist/components/navigation/app-setting-picker.js +1 -3
  89. package/dist/components/navigation/filter-bar.d.ts +1 -6
  90. package/dist/components/navigation/pagination-utils.d.ts +2 -12
  91. package/dist/components/navigation/tabs-scroll.d.ts +2 -36
  92. package/dist/components/navigation/tabs.js +4 -8
  93. package/dist/components/query/data-state.d.ts +2 -2
  94. package/dist/components/ui/credential-reveal.d.ts +1 -4
  95. package/dist/components/ui/hover-card.d.ts +1 -2
  96. package/dist/components/ui/separator.d.ts +2 -15
  97. package/dist/components/ui/toggle-group.d.ts +1 -5
  98. package/dist/components/ui/toggle.d.ts +6 -31
  99. package/dist/email/brand-mark.d.ts +6 -34
  100. package/dist/email/color.d.ts +7 -17
  101. package/dist/email/geometry.d.ts +4 -8
  102. package/dist/email/index.d.ts +4 -48
  103. package/dist/email/inline-style.d.ts +3 -9
  104. package/dist/email/urgency.d.ts +2 -7
  105. package/dist/form/form-context.d.ts +2 -5
  106. package/dist/form/form-root.d.ts +1 -2
  107. package/dist/i18n/messages/en.json +4 -0
  108. package/dist/i18n/messages/ja.json +4 -0
  109. package/dist/i18n/messages/vi.json +4 -0
  110. package/dist/inertia/index.d.ts +2 -10
  111. package/dist/lib/control-styles.d.ts +10 -21
  112. package/dist/lib/control-styles.js +4 -6
  113. package/dist/lib/datetime/format-date.d.ts +1 -4
  114. package/dist/lib/field-a11y.d.ts +11 -68
  115. package/dist/lib/field-a11y.js +0 -1
  116. package/dist/lib/format.d.ts +4 -8
  117. package/dist/lib/hooks.d.ts +6 -12
  118. package/dist/lib/permission-grid.d.ts +3 -18
  119. package/dist/lib/query-error.d.ts +3 -3
  120. package/dist/props/components/app.prop.d.ts +15 -38
  121. package/dist/props/components/charts.prop.d.ts +2 -3
  122. package/dist/props/components/data-display.prop.d.ts +48 -72
  123. package/dist/props/components/data-entry.prop.d.ts +35 -40
  124. package/dist/props/components/form.prop.d.ts +2 -6
  125. package/dist/props/components/general.prop.d.ts +11 -27
  126. package/dist/props/components/layout.prop.d.ts +89 -260
  127. package/dist/props/components/navigation.prop.d.ts +27 -42
  128. package/dist/props/registry.d.ts +31 -0
  129. package/dist/props/registry.js +33 -0
  130. package/dist/props/vocabulary/data.prop.d.ts +18 -49
  131. package/dist/props/vocabulary/index.d.ts +1 -1
  132. package/dist/props/vocabulary/interaction.prop.d.ts +10 -12
  133. package/dist/props/vocabulary/layout.prop.d.ts +8 -30
  134. package/dist/props/vocabulary/shared.prop.d.ts +3 -2
  135. package/dist/styles/alert-layout.css +1 -32
  136. package/dist/styles/badge-layout.css +4 -18
  137. package/dist/styles/base.css +14 -113
  138. package/dist/styles/card-layout.css +6 -128
  139. package/dist/styles/chart-layout.css +2 -17
  140. package/dist/styles/control.css +380 -458
  141. package/dist/styles/core.css +21 -0
  142. package/dist/styles/data-display-layout.css +175 -94
  143. package/dist/styles/data-entry-layout.css +0 -45
  144. package/dist/styles/density.css +1 -30
  145. package/dist/styles/dialog-layout.css +5 -69
  146. package/dist/styles/focus-ring.css +13 -87
  147. package/dist/styles/fonts.css +1 -31
  148. package/dist/styles/form-layout.css +7 -91
  149. package/dist/styles/index.css +2 -20
  150. package/dist/styles/layout.css +38 -456
  151. package/dist/styles/logo-layout.css +1 -35
  152. package/dist/styles/motion.css +3 -42
  153. package/dist/styles/navigation-layout.css +3 -50
  154. package/dist/styles/shell-layout.css +37 -403
  155. package/dist/styles/table-layout.css +16 -274
  156. package/dist/styles/text-layout.css +7 -21
  157. package/dist/styles/toggle.css +1 -23
  158. package/dist/theme/dxs.canonical.css +1 -55
  159. package/dist/theme/example.service.css +1 -26
  160. package/dist/theme/famgia.service.css +5 -15
  161. package/dist/tokens/axes.css +3 -40
  162. package/dist/tokens/base.css +1 -4
  163. package/dist/tokens/components/activity.css +6 -42
  164. package/dist/tokens/components/badge.css +4 -13
  165. package/dist/tokens/components/banner.css +4 -9
  166. package/dist/tokens/components/card.css +32 -88
  167. package/dist/tokens/components/chart.css +9 -26
  168. package/dist/tokens/components/control.css +37 -222
  169. package/dist/tokens/components/data-display.css +28 -79
  170. package/dist/tokens/components/data-entry.css +5 -19
  171. package/dist/tokens/components/descriptions.css +7 -27
  172. package/dist/tokens/components/email.css +38 -84
  173. package/dist/tokens/components/error-surface.css +2 -18
  174. package/dist/tokens/components/feedback.css +27 -124
  175. package/dist/tokens/components/form.css +13 -45
  176. package/dist/tokens/components/legal-document.css +16 -41
  177. package/dist/tokens/components/list-row.css +11 -36
  178. package/dist/tokens/components/logo.css +2 -57
  179. package/dist/tokens/components/navigation.css +16 -94
  180. package/dist/tokens/components/scroll-area.css +2 -18
  181. package/dist/tokens/components/separator.css +8 -30
  182. package/dist/tokens/components/sheet.css +3 -14
  183. package/dist/tokens/components/shell.css +53 -307
  184. package/dist/tokens/components/sidebar.css +5 -22
  185. package/dist/tokens/components/table.css +19 -140
  186. package/dist/tokens/components/toggle.css +3 -65
  187. package/dist/tokens/components/upload.css +7 -43
  188. package/dist/tokens/foundation.css +108 -383
  189. package/dist/tokens/semantic/layout.css +33 -207
  190. package/docs/CANONICAL-CONTRACTS.md +206 -0
  191. package/docs/COMPONENTS.md +157 -0
  192. package/docs/COMPOSITION-VS-COMPONENT.md +105 -0
  193. package/docs/CONSUMER-RULES.md +14 -0
  194. package/docs/CUSTOMER-THEMING.md +162 -0
  195. package/docs/DATETIME.md +69 -0
  196. package/docs/DEVELOPMENT.md +173 -0
  197. package/docs/FORMS.md +143 -0
  198. package/docs/FRAME-A11Y-CI.md +267 -0
  199. package/docs/FRAME-COVERAGE-LEDGER.md +123 -0
  200. package/docs/FRAME-COVERAGE-REPORT.md +140 -0
  201. package/docs/FRAME-COVERAGE-STANDARD.md +65 -0
  202. package/docs/FRAME-COVERAGE.md +29 -0
  203. package/docs/PROPS-REGISTRY.md +61 -0
  204. package/docs/PROPS-VOCABULARY.md +100 -0
  205. package/docs/README.md +60 -0
  206. package/docs/REGISTRY.md +70 -0
  207. package/docs/SPACING.md +56 -0
  208. package/docs/STANDARDS-vocabulary-tokens.md +48 -0
  209. package/docs/TESTING.md +98 -0
  210. package/docs/TOKENS.md +347 -0
  211. package/docs/asset-modules.d.ts +46 -0
  212. package/docs/assets/cover-terrain.svg +6 -0
  213. package/docs/assets/portrait-amber.svg +5 -0
  214. package/docs/assets/portrait-clay.svg +5 -0
  215. package/docs/assets/portrait-indigo.svg +5 -0
  216. package/docs/assets/portrait-iris.svg +5 -0
  217. package/docs/assets/portrait-moss.svg +5 -0
  218. package/docs/assets/portrait-plum.svg +5 -0
  219. package/docs/assets/portrait-slate.svg +5 -0
  220. package/docs/charts/compact-bar-trend.tsx +328 -0
  221. package/docs/charts/size-tiers.tsx +192 -0
  222. package/docs/data-display/accordion.tsx +99 -0
  223. package/docs/data-display/avatar.tsx +355 -0
  224. package/docs/data-display/badge.tsx +247 -0
  225. package/docs/data-display/card/examples/detail-panel.tsx +106 -0
  226. package/docs/data-display/card/index.md +3 -0
  227. package/docs/data-display/card/index.tsx +285 -0
  228. package/docs/data-display/carousel.tsx +156 -0
  229. package/docs/data-display/charts.tsx +198 -0
  230. package/docs/data-display/code-block.tsx +90 -0
  231. package/docs/data-display/collapsible.tsx +162 -0
  232. package/docs/data-display/credential-reveal.tsx +145 -0
  233. package/docs/data-display/data-table/examples/approval-queue.tsx +212 -0
  234. package/docs/data-display/data-table/examples/grid-features.tsx +158 -0
  235. package/docs/data-display/data-table/examples/list-page.tsx +175 -0
  236. package/docs/data-display/data-table/index.md +5 -0
  237. package/docs/data-display/data-table/index.tsx +295 -0
  238. package/docs/data-display/descriptions.tsx +143 -0
  239. package/docs/data-display/empty-state.tsx +164 -0
  240. package/docs/data-display/hover-card.tsx +181 -0
  241. package/docs/data-display/list-row.tsx +420 -0
  242. package/docs/data-display/permission-matrix.tsx +184 -0
  243. package/docs/data-display/popover-touch.tsx +27 -0
  244. package/docs/data-display/popover.tsx +245 -0
  245. package/docs/data-display/progress.tsx +84 -0
  246. package/docs/data-display/prose.tsx +105 -0
  247. package/docs/data-display/qr-code.tsx +68 -0
  248. package/docs/data-display/scroll-area.tsx +271 -0
  249. package/docs/data-display/service-launcher-card.tsx +145 -0
  250. package/docs/data-display/stat-card.tsx +99 -0
  251. package/docs/data-display/table.tsx +251 -0
  252. package/docs/data-display/timeline.tsx +112 -0
  253. package/docs/data-display/touch-actions.tsx +36 -0
  254. package/docs/data-display/tree-list.tsx +107 -0
  255. package/docs/data-entry/branch-scope-picker.tsx +123 -0
  256. package/docs/data-entry/calendar.tsx +180 -0
  257. package/docs/data-entry/cascader.tsx +378 -0
  258. package/docs/data-entry/checkbox.tsx +256 -0
  259. package/docs/data-entry/color-picker.tsx +117 -0
  260. package/docs/data-entry/command-palette.tsx +179 -0
  261. package/docs/data-entry/command.tsx +262 -0
  262. package/docs/data-entry/country-picker-recipe.tsx +170 -0
  263. package/docs/data-entry/date-picker.tsx +191 -0
  264. package/docs/data-entry/date-range-picker.tsx +149 -0
  265. package/docs/data-entry/form/examples/employee-settings.tsx +267 -0
  266. package/docs/data-entry/form/examples/invoice-form.tsx +387 -0
  267. package/docs/data-entry/form-field/examples/a11y-contract.tsx +240 -0
  268. package/docs/data-entry/form-field/examples/create-form.tsx +105 -0
  269. package/docs/data-entry/form-field/index.md +8 -0
  270. package/docs/data-entry/form-field/index.tsx +326 -0
  271. package/docs/data-entry/form-inertia.tsx +80 -0
  272. package/docs/data-entry/form-root.tsx +102 -0
  273. package/docs/data-entry/form.tsx +724 -0
  274. package/docs/data-entry/input-otp.tsx +231 -0
  275. package/docs/data-entry/input.tsx +114 -0
  276. package/docs/data-entry/label.tsx +100 -0
  277. package/docs/data-entry/month-picker.tsx +101 -0
  278. package/docs/data-entry/month-range-picker.tsx +115 -0
  279. package/docs/data-entry/number-input.tsx +240 -0
  280. package/docs/data-entry/password-input.tsx +106 -0
  281. package/docs/data-entry/password-strength.tsx +97 -0
  282. package/docs/data-entry/radio-group.tsx +95 -0
  283. package/docs/data-entry/rating.tsx +87 -0
  284. package/docs/data-entry/search-input.tsx +120 -0
  285. package/docs/data-entry/select-async-contracts.tsx +108 -0
  286. package/docs/data-entry/select-matrix.tsx +204 -0
  287. package/docs/data-entry/select.tsx +369 -0
  288. package/docs/data-entry/slider.tsx +130 -0
  289. package/docs/data-entry/switch.tsx +67 -0
  290. package/docs/data-entry/tag-input.tsx +108 -0
  291. package/docs/data-entry/textarea.tsx +209 -0
  292. package/docs/data-entry/time-picker.tsx +99 -0
  293. package/docs/data-entry/toggle-count.tsx +293 -0
  294. package/docs/data-entry/toggle-group.tsx +225 -0
  295. package/docs/data-entry/toggle.tsx +127 -0
  296. package/docs/data-entry/transfer.tsx +97 -0
  297. package/docs/data-entry/tree-select.tsx +204 -0
  298. package/docs/data-entry/upload.tsx +184 -0
  299. package/docs/feedback/alert-dialog.tsx +270 -0
  300. package/docs/feedback/alert.tsx +248 -0
  301. package/docs/feedback/banner.tsx +183 -0
  302. package/docs/feedback/danger-confirm.tsx +88 -0
  303. package/docs/feedback/dialog-touch.tsx +24 -0
  304. package/docs/feedback/dialog.tsx +193 -0
  305. package/docs/feedback/sheet.tsx +410 -0
  306. package/docs/feedback/skeleton.tsx +111 -0
  307. package/docs/feedback/toast.tsx +135 -0
  308. package/docs/feedback/tooltip.tsx +171 -0
  309. package/docs/feedback/two-factor-setup.tsx +68 -0
  310. package/docs/foundation/_email-specimen.ts +274 -0
  311. package/docs/foundation/colors.tsx +202 -0
  312. package/docs/foundation/density.tsx +232 -0
  313. package/docs/foundation/email-tokens.tsx +306 -0
  314. package/docs/foundation/radius-shadow.tsx +152 -0
  315. package/docs/foundation/spacing.tsx +211 -0
  316. package/docs/foundation/typography.tsx +147 -0
  317. package/docs/general/activity.tsx +224 -0
  318. package/docs/general/button/examples/destructive-confirm.tsx +90 -0
  319. package/docs/general/button/examples/form-actions.tsx +85 -0
  320. package/docs/general/button/examples/toolbar.tsx +160 -0
  321. package/docs/general/button/index.md +12 -0
  322. package/docs/general/button/index.tsx +211 -0
  323. package/docs/general/logo.tsx +131 -0
  324. package/docs/general/reveal.tsx +41 -0
  325. package/docs/general/typography.tsx +152 -0
  326. package/docs/layout/account-chip.tsx +72 -0
  327. package/docs/layout/admin-collection.tsx +122 -0
  328. package/docs/layout/app-shell.tsx +374 -0
  329. package/docs/layout/aspect-ratio.tsx +119 -0
  330. package/docs/layout/auth-account-summary.tsx +103 -0
  331. package/docs/layout/auth-divider.tsx +28 -0
  332. package/docs/layout/auth-footer.tsx +37 -0
  333. package/docs/layout/auth-identity.tsx +36 -0
  334. package/docs/layout/auth-recovery/examples/mfa-challenge.md +41 -0
  335. package/docs/layout/auth-recovery/examples/mfa-challenge.tsx +254 -0
  336. package/docs/layout/auth-recovery/examples/mobile-390.md +25 -0
  337. package/docs/layout/auth-recovery/examples/mobile-390.tsx +82 -0
  338. package/docs/layout/auth-recovery/examples/password-recovery.md +24 -0
  339. package/docs/layout/auth-recovery/examples/password-recovery.tsx +197 -0
  340. package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.md +27 -0
  341. package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.tsx +156 -0
  342. package/docs/layout/auth-recovery/index.md +140 -0
  343. package/docs/layout/auth-recovery/index.tsx +96 -0
  344. package/docs/layout/auth-shell-context.tsx +103 -0
  345. package/docs/layout/auth-shell-device.tsx +112 -0
  346. package/docs/layout/auth-shell-registration.tsx +335 -0
  347. package/docs/layout/auth-shell-variants.tsx +139 -0
  348. package/docs/layout/auth-shell.tsx +59 -0
  349. package/docs/layout/auth-stack.tsx +40 -0
  350. package/docs/layout/centered-shell.tsx +102 -0
  351. package/docs/layout/error-surface/examples/application-403.tsx +84 -0
  352. package/docs/layout/error-surface/examples/application-404.tsx +77 -0
  353. package/docs/layout/error-surface/examples/system-500.tsx +47 -0
  354. package/docs/layout/error-surface/examples/system-503.tsx +48 -0
  355. package/docs/layout/error-surface/index.md +153 -0
  356. package/docs/layout/error-surface/index.tsx +239 -0
  357. package/docs/layout/flex.tsx +262 -0
  358. package/docs/layout/legal-document-shell/_data.ts +110 -0
  359. package/docs/layout/legal-document-shell/examples/desktop-1440.md +12 -0
  360. package/docs/layout/legal-document-shell/examples/desktop-1440.tsx +83 -0
  361. package/docs/layout/legal-document-shell/examples/mobile-390.md +22 -0
  362. package/docs/layout/legal-document-shell/examples/mobile-390.tsx +70 -0
  363. package/docs/layout/legal-document-shell/examples/tablet-1024.md +3 -0
  364. package/docs/layout/legal-document-shell/examples/tablet-1024.tsx +84 -0
  365. package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.md +18 -0
  366. package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.tsx +61 -0
  367. package/docs/layout/legal-document-shell/index.md +51 -0
  368. package/docs/layout/legal-document-shell/index.tsx +101 -0
  369. package/docs/layout/master-detail.tsx +387 -0
  370. package/docs/layout/org-switcher.tsx +131 -0
  371. package/docs/layout/page-container.tsx +946 -0
  372. package/docs/layout/resizable-panel.tsx +419 -0
  373. package/docs/layout/responsive-grid.tsx +235 -0
  374. package/docs/layout/separator.tsx +327 -0
  375. package/docs/layout/service-role-panel.tsx +144 -0
  376. package/docs/layout/sidebar.tsx +586 -0
  377. package/docs/layout/split-pane.tsx +451 -0
  378. package/docs/layout/topbar.tsx +347 -0
  379. package/docs/navigation/app-setting-picker.tsx +141 -0
  380. package/docs/navigation/breadcrumb.tsx +128 -0
  381. package/docs/navigation/context-menu.tsx +117 -0
  382. package/docs/navigation/dropdown-menu.tsx +213 -0
  383. package/docs/navigation/filter-bar.tsx +227 -0
  384. package/docs/navigation/menubar.tsx +141 -0
  385. package/docs/navigation/navigation-menu.tsx +165 -0
  386. package/docs/navigation/pagination.tsx +241 -0
  387. package/docs/navigation/steps.tsx +263 -0
  388. package/docs/navigation/tabs-rtl.tsx +28 -0
  389. package/docs/navigation/tabs.tsx +308 -0
  390. package/docs/navigation/toolbar.tsx +339 -0
  391. package/docs/providers/app-provider.tsx +191 -0
  392. package/docs/providers/format-date.tsx +230 -0
  393. package/docs/query/button-refetch.tsx +160 -0
  394. package/docs/query/data-state.tsx +192 -0
  395. package/docs/query/infinite-query-state.tsx +93 -0
  396. package/docs/query/mutation-feedback.tsx +70 -0
  397. package/docs/query/prefetch-link.tsx +262 -0
  398. package/docs/query/touch-actions.tsx +68 -0
  399. package/docs/showcase/acme-portal.tsx +441 -0
  400. package/docs/showcase/acme-website.tsx +455 -0
  401. package/docs/showcase/case1-warehouse-dashboard.tsx +343 -0
  402. package/docs/showcase/case2-employee-me.tsx +441 -0
  403. package/docs/showcase/case3-approval-workflow.tsx +527 -0
  404. package/docs/showcase/case4-login.tsx +307 -0
  405. package/docs/showcase/case5-shift-calendar.tsx +795 -0
  406. package/docs/showcase/case6-agency-handy.tsx +1072 -0
  407. package/docs/showcase/futurelastic-web.tsx +390 -0
  408. package/docs/showcase/org-switcher.tsx +313 -0
  409. package/docs/showcase/permission-matrix.tsx +343 -0
  410. package/docs/showcase/public-landing.tsx +210 -0
  411. package/docs/showcase/settings-account-sections.tsx +559 -0
  412. package/docs/showcase/settings-security-mfa.tsx +145 -0
  413. package/docs/showcase/table-approval-queue.tsx +199 -0
  414. package/docs/showcase/table-bulk-actions.tsx +460 -0
  415. package/docs/showcase/table-compact-kintone.tsx +438 -0
  416. package/docs/showcase/table-conditional-format.tsx +367 -0
  417. package/docs/showcase/table-crud-list.tsx +544 -0
  418. package/docs/showcase/table-density.tsx +340 -0
  419. package/docs/showcase/table-expandable-rows.tsx +471 -0
  420. package/docs/showcase/table-filter-chips.tsx +461 -0
  421. package/docs/showcase/table-footer-totals.tsx +311 -0
  422. package/docs/showcase/table-grouped-subtotals.tsx +388 -0
  423. package/docs/showcase/table-master-detail.tsx +479 -0
  424. package/docs/showcase/table-pagination.tsx +320 -0
  425. package/docs/showcase/table-states.tsx +363 -0
  426. package/docs/showcase/table-sticky-columns.tsx +373 -0
  427. package/docs/showcase/table-tree-rows.tsx +444 -0
  428. package/docs/showcase/table-view-tabs.tsx +488 -0
  429. package/package.json +9 -11
  430. package/scripts/_agent-setup.mjs +16 -2
  431. package/scripts/audit-hook.mjs +3 -13
  432. package/scripts/init-agent-kit.mjs +1 -14
  433. package/scripts/postinstall.mjs +12 -12
  434. package/scripts/ui-audit.mjs +93 -31
  435. package/scripts/visual-audit-rules.mjs +51 -7
  436. package/scripts/visual-audit.mjs +118 -47
@@ -0,0 +1,141 @@
1
+ import { useState } from "react";
2
+
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display";
4
+ import {
5
+ Menubar,
6
+ MenubarCheckboxItem,
7
+ MenubarContent,
8
+ MenubarItem,
9
+ MenubarLabel,
10
+ MenubarMenu,
11
+ MenubarRadioGroup,
12
+ MenubarRadioItem,
13
+ MenubarSeparator,
14
+ MenubarShortcut,
15
+ MenubarSub,
16
+ MenubarSubContent,
17
+ MenubarSubTrigger,
18
+ MenubarTrigger,
19
+ } from "@godxjp/ui/navigation";
20
+ import { Flex, PageContainer } from "@godxjp/ui/layout";
21
+
22
+ /**
23
+ * Menubar — アプリトップバー型メニュー。MenubarMenu > MenubarTrigger +
24
+ * MenubarContent > items で構成。チェック・ラジオ・サブメニュー・ショートカット対応。
25
+ * デスクトップ風のコマンドパレットや会計ソフトのツールバーに最適。
26
+ * Composed only from real @godxjp/ui components.
27
+ */
28
+ export default function Demo() {
29
+ const [autoSave, setAutoSave] = useState(true);
30
+ const [showRuler, setShowRuler] = useState(false);
31
+ const [theme, setTheme] = useState("light");
32
+
33
+ return (
34
+ <PageContainer
35
+ title="Menubar"
36
+ subtitle="アプリケーションメニューバー · デスクトップ風のコマンドメニュー"
37
+ >
38
+ <Flex direction="col" gap="lg">
39
+ <Card>
40
+ <CardHeader>
41
+ <CardTitle level={2}>会計アプリメニュー</CardTitle>
42
+ <CardDescription>
43
+ ファイル・編集・表示・ヘルプメニューを含む標準的なアプリメニューバー。MenubarItem の
44
+ variant は default と destructive の 2 つ。編集メニューの末尾で両方を並べている。
45
+ </CardDescription>
46
+ </CardHeader>
47
+ <CardContent>
48
+ <Menubar>
49
+ <MenubarMenu>
50
+ <MenubarTrigger>ファイル</MenubarTrigger>
51
+ <MenubarContent>
52
+ <MenubarItem>
53
+ 新規仕訳
54
+ <MenubarShortcut>⌘N</MenubarShortcut>
55
+ </MenubarItem>
56
+ <MenubarItem>
57
+ 開く
58
+ <MenubarShortcut>⌘O</MenubarShortcut>
59
+ </MenubarItem>
60
+ <MenubarSeparator />
61
+ <MenubarSub>
62
+ <MenubarSubTrigger>エクスポート</MenubarSubTrigger>
63
+ <MenubarSubContent>
64
+ <MenubarItem>仕訳帳 CSV</MenubarItem>
65
+ <MenubarItem>試算表 PDF</MenubarItem>
66
+ <MenubarItem>貸借対照表 Excel</MenubarItem>
67
+ </MenubarSubContent>
68
+ </MenubarSub>
69
+ <MenubarSeparator />
70
+ <MenubarItem>
71
+ 終了
72
+ <MenubarShortcut>⌘Q</MenubarShortcut>
73
+ </MenubarItem>
74
+ </MenubarContent>
75
+ </MenubarMenu>
76
+
77
+ <MenubarMenu>
78
+ <MenubarTrigger>編集</MenubarTrigger>
79
+ <MenubarContent>
80
+ <MenubarItem>
81
+ 元に戻す
82
+ <MenubarShortcut>⌘Z</MenubarShortcut>
83
+ </MenubarItem>
84
+ <MenubarItem>
85
+ やり直す
86
+ <MenubarShortcut>⇧⌘Z</MenubarShortcut>
87
+ </MenubarItem>
88
+ <MenubarSeparator />
89
+ <MenubarItem>
90
+ コピー
91
+ <MenubarShortcut>⌘C</MenubarShortcut>
92
+ </MenubarItem>
93
+ <MenubarItem>
94
+ 貼り付け
95
+ <MenubarShortcut>⌘V</MenubarShortcut>
96
+ </MenubarItem>
97
+ <MenubarSeparator />
98
+ <MenubarItem variant="default">選択行をアーカイブ</MenubarItem>
99
+ <MenubarItem variant="destructive">
100
+ 選択行を削除
101
+ <MenubarShortcut>⌫</MenubarShortcut>
102
+ </MenubarItem>
103
+ </MenubarContent>
104
+ </MenubarMenu>
105
+
106
+ <MenubarMenu>
107
+ <MenubarTrigger>表示</MenubarTrigger>
108
+ <MenubarContent>
109
+ <MenubarLabel>オプション</MenubarLabel>
110
+ <MenubarCheckboxItem checked={autoSave} onCheckedChange={setAutoSave}>
111
+ 自動保存
112
+ </MenubarCheckboxItem>
113
+ <MenubarCheckboxItem checked={showRuler} onCheckedChange={setShowRuler}>
114
+ ルーラーを表示
115
+ </MenubarCheckboxItem>
116
+ <MenubarSeparator />
117
+ <MenubarLabel>テーマ</MenubarLabel>
118
+ <MenubarRadioGroup value={theme} onValueChange={setTheme}>
119
+ <MenubarRadioItem value="light">ライト</MenubarRadioItem>
120
+ <MenubarRadioItem value="dark">ダーク</MenubarRadioItem>
121
+ <MenubarRadioItem value="system">システム</MenubarRadioItem>
122
+ </MenubarRadioGroup>
123
+ </MenubarContent>
124
+ </MenubarMenu>
125
+
126
+ <MenubarMenu>
127
+ <MenubarTrigger>ヘルプ</MenubarTrigger>
128
+ <MenubarContent>
129
+ <MenubarItem>ドキュメント</MenubarItem>
130
+ <MenubarItem>キーボードショートカット</MenubarItem>
131
+ <MenubarSeparator />
132
+ <MenubarItem>バージョン情報</MenubarItem>
133
+ </MenubarContent>
134
+ </MenubarMenu>
135
+ </Menubar>
136
+ </CardContent>
137
+ </Card>
138
+ </Flex>
139
+ </PageContainer>
140
+ );
141
+ }
@@ -0,0 +1,165 @@
1
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display";
2
+ import {
3
+ NavigationMenu,
4
+ NavigationMenuContent,
5
+ NavigationMenuItem,
6
+ NavigationMenuLink,
7
+ NavigationMenuList,
8
+ NavigationMenuTrigger,
9
+ NavigationMenuViewport,
10
+ } from "@godxjp/ui/navigation";
11
+ import { Flex, PageContainer } from "@godxjp/ui/layout";
12
+ import { Text } from "@godxjp/ui/general";
13
+
14
+ /**
15
+ * NavigationMenu — 水平ナビゲーションメニュー。Trigger でドロップダウン展開、
16
+ * Link で直接ページ遷移。NavigationMenu > NavigationMenuList >
17
+ * NavigationMenuItem > Trigger + Content で構成。Viewport で浮動パネルを制御。
18
+ * Composed only from real @godxjp/ui components.
19
+ */
20
+ export default function Demo() {
21
+ return (
22
+ <PageContainer
23
+ title="NavigationMenu"
24
+ subtitle="水平ナビゲーション · トリガー展開コンテンツ・リンク・ビューポートをサポート"
25
+ >
26
+ <Flex direction="col" gap="lg">
27
+ <Card>
28
+ <CardHeader>
29
+ <CardTitle level={2}>会計モジュールナビゲーション</CardTitle>
30
+ <CardDescription>
31
+ 各メニュートリガーをホバーするとコンテンツパネルが展開します。
32
+ </CardDescription>
33
+ </CardHeader>
34
+ <CardContent>
35
+ <NavigationMenu>
36
+ <NavigationMenuList>
37
+ <NavigationMenuItem>
38
+ <NavigationMenuTrigger>会計</NavigationMenuTrigger>
39
+ <NavigationMenuContent>
40
+ {/* ui-audit-disable-next-line no-arbitrary-size — NavigationMenu flyout panel width (demo layout) */}
41
+ <ul className="grid gap-2 p-4 md:w-[400px] md:grid-cols-2">
42
+ <li>
43
+ <NavigationMenuLink
44
+ href="#"
45
+ className="hover:bg-accent block rounded-md p-3"
46
+ >
47
+ <Text as="div" weight="medium">
48
+ 仕訳入力
49
+ </Text>
50
+ <Text as="p" size="xs" tone="muted" className="mt-1">
51
+ 借方・貸方を直接入力して仕訳を作成します。
52
+ </Text>
53
+ </NavigationMenuLink>
54
+ </li>
55
+ <li>
56
+ <NavigationMenuLink
57
+ href="#"
58
+ className="hover:bg-accent block rounded-md p-3"
59
+ >
60
+ <Text as="div" weight="medium">
61
+ 仕訳帳
62
+ </Text>
63
+ <Text as="p" size="xs" tone="muted" className="mt-1">
64
+ 全仕訳の一覧・検索・フィルタリング。
65
+ </Text>
66
+ </NavigationMenuLink>
67
+ </li>
68
+ <li>
69
+ <NavigationMenuLink
70
+ href="#"
71
+ className="hover:bg-accent block rounded-md p-3"
72
+ >
73
+ <Text as="div" weight="medium">
74
+ 総勘定元帳
75
+ </Text>
76
+ <Text as="p" size="xs" tone="muted" className="mt-1">
77
+ 勘定科目ごとの残高・取引履歴。
78
+ </Text>
79
+ </NavigationMenuLink>
80
+ </li>
81
+ <li>
82
+ <NavigationMenuLink
83
+ href="#"
84
+ className="hover:bg-accent block rounded-md p-3"
85
+ >
86
+ <Text as="div" weight="medium">
87
+ 試算表
88
+ </Text>
89
+ <Text as="p" size="xs" tone="muted" className="mt-1">
90
+ 期間指定で借方・貸方の合計を確認。
91
+ </Text>
92
+ </NavigationMenuLink>
93
+ </li>
94
+ </ul>
95
+ </NavigationMenuContent>
96
+ </NavigationMenuItem>
97
+
98
+ <NavigationMenuItem>
99
+ <NavigationMenuTrigger>レポート</NavigationMenuTrigger>
100
+ <NavigationMenuContent>
101
+ {/* ui-audit-disable-next-line no-arbitrary-size — NavigationMenu flyout panel width (demo layout) */}
102
+ <ul className="grid gap-2 p-4 md:w-[360px]">
103
+ <li>
104
+ <NavigationMenuLink
105
+ href="#"
106
+ className="hover:bg-accent block rounded-md p-3"
107
+ >
108
+ <Text as="div" weight="medium">
109
+ 貸借対照表
110
+ </Text>
111
+ <Text as="p" size="xs" tone="muted" className="mt-1">
112
+ 特定日時点の資産・負債・純資産。
113
+ </Text>
114
+ </NavigationMenuLink>
115
+ </li>
116
+ <li>
117
+ <NavigationMenuLink
118
+ href="#"
119
+ className="hover:bg-accent block rounded-md p-3"
120
+ >
121
+ <Text as="div" weight="medium">
122
+ 損益計算書
123
+ </Text>
124
+ <Text as="p" size="xs" tone="muted" className="mt-1">
125
+ 期間中の収益・費用・利益の要約。
126
+ </Text>
127
+ </NavigationMenuLink>
128
+ </li>
129
+ <li>
130
+ <NavigationMenuLink
131
+ href="#"
132
+ className="hover:bg-accent block rounded-md p-3"
133
+ >
134
+ <Text as="div" weight="medium">
135
+ キャッシュフロー計算書
136
+ </Text>
137
+ <Text as="p" size="xs" tone="muted" className="mt-1">
138
+ 営業・投資・財務活動別の資金移動。
139
+ </Text>
140
+ </NavigationMenuLink>
141
+ </li>
142
+ </ul>
143
+ </NavigationMenuContent>
144
+ </NavigationMenuItem>
145
+
146
+ <NavigationMenuItem>
147
+ <NavigationMenuLink href="#" className="text-sm font-medium">
148
+ マスタ管理
149
+ </NavigationMenuLink>
150
+ </NavigationMenuItem>
151
+
152
+ <NavigationMenuItem>
153
+ <NavigationMenuLink href="#" className="text-sm font-medium">
154
+ 設定
155
+ </NavigationMenuLink>
156
+ </NavigationMenuItem>
157
+ </NavigationMenuList>
158
+ <NavigationMenuViewport />
159
+ </NavigationMenu>
160
+ </CardContent>
161
+ </Card>
162
+ </Flex>
163
+ </PageContainer>
164
+ );
165
+ }
@@ -0,0 +1,241 @@
1
+ import { useState } from "react";
2
+
3
+ import {
4
+ Card,
5
+ CardContent,
6
+ CardDescription,
7
+ CardHeader,
8
+ CardTitle,
9
+ Table,
10
+ TableBody,
11
+ TableCell,
12
+ TableHead,
13
+ TableHeader,
14
+ TableRow,
15
+ } from "@godxjp/ui/data-display";
16
+ import { Flex, PageContainer } from "@godxjp/ui/layout";
17
+ import { Pagination } from "@godxjp/ui/navigation";
18
+
19
+ /**
20
+ * Pagination — fully controlled offset/page bar. Sits BELOW a table card.
21
+ * Pass total as raw item count (not page count). onValueChange receives (page, pageSize).
22
+ * Composed only from real @godxjp/ui components.
23
+ */
24
+ const yen = new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" });
25
+
26
+ const invoices = Array.from({ length: 47 }, (_, i) => ({
27
+ id: `INV-${String(i + 1).padStart(4, "0")}`,
28
+ partner: ["株式会社山田商事", "有限会社田中工業", "ABC株式会社", "合同会社鈴木", "株式会社佐藤"][
29
+ i % 5
30
+ ],
31
+ amount: (i + 1) * 38500 + 12000,
32
+ status: ["承認済", "未承認", "取消済"][i % 3],
33
+ }));
34
+
35
+ export default function Demo() {
36
+ const [page, setPage] = useState(1);
37
+ const [pageSize, setPageSize] = useState(10);
38
+
39
+ const [simplePage, setSimplePage] = useState(1);
40
+
41
+ const start = (page - 1) * pageSize;
42
+ const pageData = invoices.slice(start, start + pageSize);
43
+
44
+ function handleChange(p: number, ps: number) {
45
+ setPage(p);
46
+ setPageSize(ps);
47
+ }
48
+
49
+ return (
50
+ <PageContainer
51
+ title="Pagination"
52
+ subtitle="Fully controlled offset/page bar · total is raw item count, not page count"
53
+ >
54
+ <Flex direction="col" gap="lg">
55
+ {/* Full pagination below a Table */}
56
+ <Card>
57
+ <CardHeader>
58
+ <CardTitle level={2}>請求書一覧 (47 件)</CardTitle>
59
+ <CardDescription>
60
+ Pagination sits BELOW the card. value + pageSize are controlled state. showTotal shows
61
+ the built-in i18n count label. showSizeChanger lets users pick rows per page.
62
+ </CardDescription>
63
+ </CardHeader>
64
+ <CardContent flush>
65
+ <Table>
66
+ <TableHeader>
67
+ <TableRow>
68
+ <TableHead>番号</TableHead>
69
+ <TableHead>取引先</TableHead>
70
+ <TableHead className="text-end">金額 (円)</TableHead>
71
+ <TableHead>ステータス</TableHead>
72
+ </TableRow>
73
+ </TableHeader>
74
+ <TableBody>
75
+ {pageData.map((inv) => (
76
+ <TableRow key={inv.id}>
77
+ <TableCell className="font-mono text-sm">{inv.id}</TableCell>
78
+ <TableCell>{inv.partner}</TableCell>
79
+ <TableCell className="text-end">{yen.format(inv.amount)}</TableCell>
80
+ <TableCell>{inv.status}</TableCell>
81
+ </TableRow>
82
+ ))}
83
+ </TableBody>
84
+ </Table>
85
+ </CardContent>
86
+ </Card>
87
+
88
+ {/* Pagination component itself — outside the card, below it */}
89
+ <Pagination
90
+ ariaLabel="請求書一覧のページネーション"
91
+ value={page}
92
+ total={invoices.length}
93
+ pageSize={pageSize}
94
+ showTotal
95
+ showSizeChanger
96
+ pageSizeOptions={[5, 10, 20, 50]}
97
+ onValueChange={handleChange}
98
+ />
99
+
100
+ {/* Regression: total=0, exactly one page, multiple pages, + the single-page opt-in (gh#153). */}
101
+ <Card>
102
+ <CardHeader>
103
+ <CardTitle level={2}>境界状態 · 0 件 / 1 ページ / 複数ページ</CardTitle>
104
+ <CardDescription>
105
+ Pagination は複数ページ間のナビゲーション。0 件と 1 ページ(total ≤ pageSize)は
106
+ 既定で「非表示」になる(下の 2 例は何もレンダリングしない)。合計だけ見せたい 1
107
+ ページでは hideOnSinglePage={"{false}"} で明示的にオプトインする。複数ページでは 1
108
+ 行のまま折り返さずに全ページャを表示する。
109
+ </CardDescription>
110
+ </CardHeader>
111
+ <CardContent>
112
+ <Flex direction="col" gap="md">
113
+ {/* total=0 → hidden (nothing renders). */}
114
+ <Pagination total={0} pageSize={10} showTotal />
115
+ {/* exactly one page → hidden by default (nothing renders). */}
116
+ <Pagination total={8} pageSize={10} showTotal />
117
+ {/* single-page opt-in → the bar renders so the total stays visible. */}
118
+ <Pagination
119
+ total={8}
120
+ pageSize={10}
121
+ hideOnSinglePage={false}
122
+ showTotal={(total, [from, to]) => `${from}〜${to} / ${total} 件`}
123
+ ariaLabel="1 ページのみ・opt-in 表示のページネーション"
124
+ />
125
+ {/* multiple pages → full pager, one horizontal row, no wrap. */}
126
+ <Pagination
127
+ value={2}
128
+ total={137}
129
+ pageSize={10}
130
+ showTotal
131
+ showSizeChanger
132
+ onValueChange={() => {}}
133
+ ariaLabel="複数ページの境界状態のページネーション"
134
+ />
135
+ </Flex>
136
+ </CardContent>
137
+ </Card>
138
+
139
+ {/* Long localized total label — the row stays ONE line and never wraps on desktop (gh#153). */}
140
+ <Card>
141
+ <CardHeader>
142
+ <CardTitle level={2}>長いローカライズ済みラベル · 折り返さない</CardTitle>
143
+ <CardDescription>
144
+ 長い合計ラベル(JA/VI)でも Pagination は 1 行を維持する。ラベルは省略記号で切り詰め、
145
+ ページ送りを 2 行目に押し出さない。
146
+ </CardDescription>
147
+ </CardHeader>
148
+ <CardContent>
149
+ <Flex direction="col" gap="md">
150
+ <Pagination
151
+ value={3}
152
+ total={1284}
153
+ pageSize={20}
154
+ showSizeChanger
155
+ showTotal={(total, [from, to]) =>
156
+ `${from.toLocaleString("ja-JP")}〜${to.toLocaleString("ja-JP")} 件目 / 全 ${total.toLocaleString("ja-JP")} 件の請求書を表示中`
157
+ }
158
+ onValueChange={() => {}}
159
+ ariaLabel="日本語ラベルのページネーション"
160
+ />
161
+ <Pagination
162
+ value={3}
163
+ total={1284}
164
+ pageSize={20}
165
+ showSizeChanger
166
+ showTotal={(total, [from, to]) =>
167
+ `Đang hiển thị ${from}–${to} trong tổng số ${total.toLocaleString("vi-VN")} hoá đơn`
168
+ }
169
+ onValueChange={() => {}}
170
+ ariaLabel="Phân trang nhãn tiếng Việt"
171
+ />
172
+ </Flex>
173
+ </CardContent>
174
+ </Card>
175
+
176
+ {/* showTotal custom label */}
177
+ <Card>
178
+ <CardHeader>
179
+ <CardTitle level={2}>showTotal · カスタムラベル関数</CardTitle>
180
+ <CardDescription>
181
+ showTotal に関数を渡すと範囲ラベルをカスタマイズできる。 例: &quot;1〜10 / 47
182
+ 件の請求書&quot;
183
+ </CardDescription>
184
+ </CardHeader>
185
+ <CardContent>
186
+ <Pagination
187
+ ariaLabel="カスタムラベル例のページネーション"
188
+ value={page}
189
+ total={invoices.length}
190
+ pageSize={pageSize}
191
+ showTotal={(total, [from, to]) => `${from}〜${to} / ${total} 件の請求書`}
192
+ onValueChange={handleChange}
193
+ />
194
+ </CardContent>
195
+ </Card>
196
+
197
+ {/* Simple mode for compact contexts */}
198
+ <Card>
199
+ <CardHeader>
200
+ <CardTitle level={2}>Simple モード · コンパクト表示</CardTitle>
201
+ <CardDescription>
202
+ simple=true でモーダルフッターやサイドバーに収まるコンパクトな Prev / n/total / Next
203
+ を表示する。
204
+ </CardDescription>
205
+ </CardHeader>
206
+ <CardContent>
207
+ <Pagination
208
+ ariaLabel="コンパクト例のページネーション"
209
+ simple
210
+ value={simplePage}
211
+ total={200}
212
+ pageSize={20}
213
+ onValueChange={(p) => setSimplePage(p)}
214
+ />
215
+ </CardContent>
216
+ </Card>
217
+
218
+ {/* Disabled state */}
219
+ <Card>
220
+ <CardHeader>
221
+ <CardTitle level={2}>Disabled 状態</CardTitle>
222
+ <CardDescription>
223
+ disabled=true でデータ読み込み中などページ送りを一時的に無効にする。
224
+ </CardDescription>
225
+ </CardHeader>
226
+ <CardContent>
227
+ <Pagination
228
+ ariaLabel="無効状態例のページネーション"
229
+ value={1}
230
+ total={100}
231
+ pageSize={10}
232
+ showTotal
233
+ disabled
234
+ onValueChange={() => {}}
235
+ />
236
+ </CardContent>
237
+ </Card>
238
+ </Flex>
239
+ </PageContainer>
240
+ );
241
+ }