@godxjp/ui 31.31.7 → 32.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 (728) hide show
  1. package/README.md +102 -121
  2. package/agent/START-HERE.md +10 -10
  3. package/agent/components/Accordion.json +2 -2
  4. package/agent/components/AccountChip.json +1 -1
  5. package/agent/components/Actions.json +1 -1
  6. package/agent/components/Activity.json +2 -2
  7. package/agent/components/Affix.json +1 -1
  8. package/agent/components/Alert.json +22 -6
  9. package/agent/components/AlertDialog.json +8 -1
  10. package/agent/components/Anchor.json +4 -3
  11. package/agent/components/AppLauncher.json +2 -2
  12. package/agent/components/AppProvider.json +19 -11
  13. package/agent/components/AppSettingPicker.json +18 -2
  14. package/agent/components/AppShell.json +4 -5
  15. package/agent/components/AreaChart.json +0 -1
  16. package/agent/components/AspectRatio.json +2 -2
  17. package/agent/components/Attachments.json +3 -3
  18. package/agent/components/AuthAccountSummary.json +1 -1
  19. package/agent/components/AuthDivider.json +1 -1
  20. package/agent/components/AuthExpiryProvider.json +0 -1
  21. package/agent/components/AuthFooter.json +2 -2
  22. package/agent/components/AuthIdentity.json +3 -3
  23. package/agent/components/AuthStack.json +1 -1
  24. package/agent/components/Avatar.json +2 -12
  25. package/agent/components/Badge.json +1 -1
  26. package/agent/components/BarChart.json +0 -1
  27. package/agent/components/BranchScopePicker.json +1 -1
  28. package/agent/components/Breadcrumb.json +1 -1
  29. package/agent/components/Button.json +3 -3
  30. package/agent/components/Calendar.json +1 -1
  31. package/agent/components/Card.json +2 -2
  32. package/agent/components/CardBar.json +0 -1
  33. package/agent/components/CardContent.json +0 -1
  34. package/agent/components/Carousel.json +4 -3
  35. package/agent/components/Cascader.json +1 -1
  36. package/agent/components/CenteredShell.json +78 -17
  37. package/agent/components/ChatBubble.json +3 -3
  38. package/agent/components/ChatBubbleList.json +3 -3
  39. package/agent/components/ChatComposer.json +3 -3
  40. package/agent/components/ChatSuggestion.json +3 -3
  41. package/agent/components/Checkbox.json +1 -1
  42. package/agent/components/CheckboxGroup.json +0 -1
  43. package/agent/components/CodeBlock.json +1 -1
  44. package/agent/components/Collapsible.json +4 -4
  45. package/agent/components/ColorPicker.json +1 -1
  46. package/agent/components/Command.json +5 -5
  47. package/agent/components/CommandPalette.json +1 -1
  48. package/agent/components/CompactBarTrend.json +1 -1
  49. package/agent/components/Conversations.json +3 -3
  50. package/agent/components/CredentialReveal.json +1 -1
  51. package/agent/components/DataState.json +2 -2
  52. package/agent/components/DataTable.json +1 -1
  53. package/agent/components/DatePicker.json +1 -1
  54. package/agent/components/Descriptions.json +1 -1
  55. package/agent/components/Dialog.json +2 -2
  56. package/agent/components/DraggablePanel.json +5 -4
  57. package/agent/components/DropdownMenu.json +1 -1
  58. package/agent/components/EmojiPicker.json +3 -2
  59. package/agent/components/EmptyState.json +1 -1
  60. package/agent/components/ErrorSurface.json +3 -3
  61. package/agent/components/FeatureList.json +1 -1
  62. package/agent/components/Field.json +0 -1
  63. package/agent/components/Flex.json +34 -4
  64. package/agent/components/FloatButton.json +6 -5
  65. package/agent/components/Form.json +1 -1
  66. package/agent/components/FormErrors.json +0 -1
  67. package/agent/components/FormField.json +6 -6
  68. package/agent/components/FormFieldArray.json +0 -1
  69. package/agent/components/FormFieldControl.json +0 -1
  70. package/agent/components/FormRoot.json +1 -1
  71. package/agent/components/Heading.json +3 -0
  72. package/agent/components/Icon.json +1 -1
  73. package/agent/components/Image.json +7 -4
  74. package/agent/components/InfiniteQueryState.json +1 -1
  75. package/agent/components/Input.json +1 -1
  76. package/agent/components/InputOTP.json +2 -2
  77. package/agent/components/Label.json +3 -3
  78. package/agent/components/LegalDocumentShell.json +5 -4
  79. package/agent/components/Legend.json +1 -1
  80. package/agent/components/LineChart.json +0 -1
  81. package/agent/components/Link.json +0 -1
  82. package/agent/components/ListRow.json +1 -1
  83. package/agent/components/Logo.json +5 -4
  84. package/agent/components/Marquee.json +4 -3
  85. package/agent/components/Masonry.json +4 -3
  86. package/agent/components/MasterDetail.json +1 -1
  87. package/agent/components/MegaMenu.json +4 -3
  88. package/agent/components/MobileShell.json +4 -4
  89. package/agent/components/NavList.json +1 -1
  90. package/agent/components/NumberInput.json +1 -1
  91. package/agent/components/OrgChart.json +4 -3
  92. package/agent/components/OrgSwitcher.json +1 -1
  93. package/agent/components/OverlayPortalProvider.json +0 -1
  94. package/agent/components/PageContainer.json +3 -3
  95. package/agent/components/PageCover.json +3 -2
  96. package/agent/components/Pagination.json +1 -1
  97. package/agent/components/PasswordInput.json +1 -1
  98. package/agent/components/PasswordStrength.json +1 -1
  99. package/agent/components/PermissionMatrix.json +1 -1
  100. package/agent/components/PieChart.json +0 -1
  101. package/agent/components/Popover.json +31 -6
  102. package/agent/components/PrefetchLink.json +1 -1
  103. package/agent/components/Progress.json +1 -1
  104. package/agent/components/Prose.json +1 -1
  105. package/agent/components/QrCode.json +1 -1
  106. package/agent/components/Radio.json +0 -1
  107. package/agent/components/RadioGroup.json +2 -2
  108. package/agent/components/RangeTimeline.json +2 -1
  109. package/agent/components/Rating.json +1 -1
  110. package/agent/components/RecordPicker.json +1 -1
  111. package/agent/components/ResizablePanel.json +1 -1
  112. package/agent/components/ResponsiveGrid.json +2 -2
  113. package/agent/components/Reveal.json +3 -3
  114. package/agent/components/ScrollArea.json +2 -2
  115. package/agent/components/SearchInput.json +1 -1
  116. package/agent/components/Segmented.json +1 -1
  117. package/agent/components/Select.json +7 -5
  118. package/agent/components/Separator.json +1 -1
  119. package/agent/components/ServiceCatalogCta.json +0 -1
  120. package/agent/components/ServiceLauncherCard.json +1 -1
  121. package/agent/components/ServiceRolePanel.json +1 -1
  122. package/agent/components/Sheet.json +5 -5
  123. package/agent/components/Sidebar.json +1 -1
  124. package/agent/components/Skeleton.json +26 -12
  125. package/agent/components/Slider.json +2 -2
  126. package/agent/components/SortableList.json +3 -2
  127. package/agent/components/SplitPane.json +1 -1
  128. package/agent/components/StatCard.json +1 -1
  129. package/agent/components/Steps.json +1 -1
  130. package/agent/components/Swatch.json +1 -1
  131. package/agent/components/Switch.json +1 -1
  132. package/agent/components/Table.json +1 -1
  133. package/agent/components/Tabs.json +3 -3
  134. package/agent/components/Text.json +5 -1
  135. package/agent/components/TextDiff.json +5 -4
  136. package/agent/components/Textarea.json +1 -1
  137. package/agent/components/ThemeScope.json +1 -1
  138. package/agent/components/ThoughtChain.json +3 -3
  139. package/agent/components/TimePicker.json +1 -1
  140. package/agent/components/Timeline.json +1 -1
  141. package/agent/components/TimelineGrid.json +5 -4
  142. package/agent/components/Toaster.json +0 -1
  143. package/agent/components/Toggle.json +3 -3
  144. package/agent/components/ToggleGroup.json +1 -1
  145. package/agent/components/Toolbar.json +10 -3
  146. package/agent/components/Tooltip.json +9 -9
  147. package/agent/components/Topbar.json +1 -1
  148. package/agent/components/TopbarItem.json +1 -1
  149. package/agent/components/Transfer.json +2 -2
  150. package/agent/components/Tree.json +1 -1
  151. package/agent/components/TreeSelect.json +1 -1
  152. package/agent/components/TwoFactorSetup.json +1 -1
  153. package/agent/components/Upload.json +1 -1
  154. package/agent/components/UploadCropDialog.json +1 -1
  155. package/agent/components/Welcome.json +3 -3
  156. package/agent/components/formatDate.json +2 -2
  157. package/agent/components/inertiaUpload.json +0 -1
  158. package/agent/components/useZodForm.json +0 -1
  159. package/agent/components-index.json +80 -154
  160. package/agent/components.json +541 -1737
  161. package/agent/index.json +10 -10
  162. package/agent/llms.txt +9 -9
  163. package/agent/patterns/account-recovery-settings.json +1 -1
  164. package/agent/patterns/auth-recovery-panels.json +2 -2
  165. package/agent/patterns/error-pages.json +1 -1
  166. package/agent/patterns/pricing-plans.json +17 -0
  167. package/agent/patterns-index.json +17 -1
  168. package/agent/patterns.json +21 -4
  169. package/agent/rules.json +30 -65
  170. package/agent/tokens.json +27 -57
  171. package/agent/vocabulary.json +3 -3
  172. package/dist/app/app-provider.d.ts +5 -3
  173. package/dist/app/app-provider.js +47 -12
  174. package/dist/app/date-format-labels.d.ts +3 -1
  175. package/dist/app/date-format-labels.js +2 -4
  176. package/dist/app/date-formats.d.ts +21 -2
  177. package/dist/app/date-formats.js +51 -2
  178. package/dist/app/index.d.ts +3 -1
  179. package/dist/app/index.js +5 -0
  180. package/dist/app/locales.d.ts +58 -3
  181. package/dist/app/locales.js +134 -8
  182. package/dist/app/preset.d.ts +25 -0
  183. package/dist/app/preset.js +10 -0
  184. package/dist/app/request-headers.d.ts +3 -3
  185. package/dist/app/request-headers.js +19 -10
  186. package/dist/app/settings-scope.d.ts +54 -0
  187. package/dist/app/settings-scope.js +46 -0
  188. package/dist/app/tenant-theme.js +8 -3
  189. package/dist/app/time-format-labels.d.ts +4 -1
  190. package/dist/app/time-format-labels.js +7 -1
  191. package/dist/app/types.d.ts +10 -2
  192. package/dist/app/use-formatting.d.ts +1 -1
  193. package/dist/components/admin/index.d.ts +1 -1
  194. package/dist/components/admin/index.js +1 -1
  195. package/dist/components/data-display/accordion.d.ts +51 -1
  196. package/dist/components/data-display/accordion.js +247 -1
  197. package/dist/components/data-display/avatar.d.ts +16 -1
  198. package/dist/components/data-display/avatar.js +109 -1
  199. package/dist/components/data-display/credential-reveal.d.ts +9 -2
  200. package/dist/components/data-display/credential-reveal.js +156 -1
  201. package/dist/components/data-display/image.js +5 -3
  202. package/dist/components/data-display/index.d.ts +0 -21
  203. package/dist/components/data-display/index.js +1 -43
  204. package/dist/components/data-display/popover.d.ts +15 -3
  205. package/dist/components/data-display/popover.js +168 -2
  206. package/dist/components/data-entry/branch-scope-picker.d.ts +1 -1
  207. package/dist/components/data-entry/index.d.ts +5 -12
  208. package/dist/components/data-entry/index.js +11 -12
  209. package/dist/components/data-entry/input-otp.d.ts +48 -2
  210. package/dist/components/data-entry/input-otp.js +94 -1
  211. package/dist/components/data-entry/number-input.d.ts +1 -1
  212. package/dist/components/data-entry/password-input.d.ts +38 -2
  213. package/dist/components/data-entry/password-input.js +56 -1
  214. package/dist/components/data-entry/rating.d.ts +38 -2
  215. package/dist/components/data-entry/rating.js +127 -1
  216. package/dist/components/data-entry/segmented.d.ts +94 -2
  217. package/dist/components/data-entry/segmented.js +104 -1
  218. package/dist/components/{ui/tag-input.d.ts → data-entry/select-tags-inline.d.ts} +7 -4
  219. package/dist/components/{ui/tag-input.js → data-entry/select-tags-inline.js} +4 -4
  220. package/dist/components/data-entry/select.js +4 -0
  221. package/dist/components/data-entry/toggle-group.d.ts +108 -2
  222. package/dist/components/data-entry/toggle-group.js +189 -1
  223. package/dist/components/data-entry/toggle.d.ts +86 -2
  224. package/dist/components/data-entry/toggle.js +153 -2
  225. package/dist/components/feedback/alert.d.ts +5 -3
  226. package/dist/components/feedback/alert.js +14 -2
  227. package/dist/components/feedback/index.d.ts +2 -6
  228. package/dist/components/feedback/index.js +1 -13
  229. package/dist/components/feedback/skeleton.d.ts +4 -17
  230. package/dist/components/feedback/skeleton.js +3 -40
  231. package/dist/components/general/index.d.ts +2 -4
  232. package/dist/components/general/index.js +1 -6
  233. package/dist/components/general/typography.d.ts +4 -58
  234. package/dist/components/general/typography.js +7 -141
  235. package/dist/components/layout/aspect-ratio.d.ts +24 -1
  236. package/dist/components/layout/aspect-ratio.js +18 -1
  237. package/dist/components/layout/auth-divider.js +1 -1
  238. package/dist/components/layout/auth-identity.js +6 -2
  239. package/dist/components/layout/centered-shell.d.ts +13 -8
  240. package/dist/components/layout/centered-shell.js +43 -1
  241. package/dist/components/layout/flex.d.ts +1 -1
  242. package/dist/components/layout/flex.js +73 -1
  243. package/dist/components/layout/index.d.ts +1 -13
  244. package/dist/components/layout/index.js +0 -12
  245. package/dist/components/layout/separator.d.ts +25 -2
  246. package/dist/components/layout/separator.js +71 -1
  247. package/dist/components/navigation/{app-setting-toggle.d.ts → app-setting-cycle.d.ts} +3 -4
  248. package/dist/components/navigation/{app-setting-toggle.js → app-setting-cycle.js} +3 -3
  249. package/dist/components/navigation/app-setting-picker.d.ts +6 -2
  250. package/dist/components/navigation/app-setting-picker.js +20 -2
  251. package/dist/components/navigation/index.d.ts +3 -11
  252. package/dist/components/navigation/index.js +1 -9
  253. package/dist/components/navigation/tabs.js +1 -1
  254. package/dist/components/ui/carousel.d.ts +1 -1
  255. package/dist/components/ui/carousel.js +1 -1
  256. package/dist/components/ui/index.d.ts +11 -5
  257. package/dist/components/ui/index.js +5 -5
  258. package/dist/contracts/measurement.json +2 -2
  259. package/dist/email/brand-mark.d.ts +3 -2
  260. package/dist/email/brand-mark.js +1 -1
  261. package/dist/email/tokens.generated.d.ts +6 -6
  262. package/dist/email/tokens.generated.js +6 -6
  263. package/dist/i18n/locale-tags.d.ts +25 -0
  264. package/dist/i18n/locale-tags.js +59 -0
  265. package/dist/i18n/translate.d.ts +20 -3
  266. package/dist/i18n/translate.js +25 -14
  267. package/dist/i18n/use-translation.d.ts +3 -3
  268. package/dist/i18n/use-translation.js +4 -2
  269. package/dist/{components/navigation → lab}/anchor.d.ts +2 -2
  270. package/dist/{components/navigation → lab}/anchor.js +5 -5
  271. package/dist/{components/data-display → lab}/carousel.js +2 -2
  272. package/dist/{components/layout → lab}/draggable-panel.d.ts +8 -8
  273. package/dist/{components/layout → lab}/draggable-panel.js +2 -2
  274. package/dist/{components/data-entry → lab}/emoji-picker.d.ts +2 -2
  275. package/dist/{components/data-entry → lab}/emoji-picker.js +6 -6
  276. package/dist/{components/general → lab}/float-button.d.ts +8 -8
  277. package/dist/{components/general → lab}/float-button.js +7 -7
  278. package/dist/lab/index.d.ts +39 -0
  279. package/dist/lab/index.js +48 -0
  280. package/dist/{components/layout → lab}/legal-document-shell.d.ts +2 -2
  281. package/dist/{components/layout → lab}/legal-document-shell.js +4 -4
  282. package/dist/{components/data-display → lab}/marquee.d.ts +5 -5
  283. package/dist/{components/data-display → lab}/marquee.js +5 -5
  284. package/dist/{components/layout → lab}/masonry.d.ts +2 -2
  285. package/dist/{components/layout → lab}/masonry.js +3 -3
  286. package/dist/{components/navigation → lab}/mega-menu.d.ts +4 -4
  287. package/dist/{components/navigation → lab}/mega-menu.js +2 -2
  288. package/dist/{components/data-display → lab}/org-chart.d.ts +2 -2
  289. package/dist/{components/data-display → lab}/org-chart.js +4 -4
  290. package/dist/{components/layout → lab}/page-cover.d.ts +2 -2
  291. package/dist/{components/layout → lab}/page-cover.js +2 -2
  292. package/dist/{components/data-display → lab}/range-timeline.d.ts +1 -1
  293. package/dist/{components/data-display → lab}/range-timeline.js +6 -6
  294. package/dist/{components/data-entry → lab}/sortable-list.d.ts +2 -2
  295. package/dist/{components/data-entry → lab}/sortable-list.js +3 -3
  296. package/dist/{components/data-display → lab}/text-diff.d.ts +3 -3
  297. package/dist/{components/data-display → lab}/text-diff.js +4 -4
  298. package/dist/{components/data-display → lab}/timeline-grid.d.ts +2 -2
  299. package/dist/{components/data-display → lab}/timeline-grid.js +1 -1
  300. package/dist/lib/control-styles.js +1 -1
  301. package/dist/lib/datetime/format.js +20 -6
  302. package/dist/lib/datetime/sync.d.ts +6 -2
  303. package/dist/lib/datetime/sync.js +14 -18
  304. package/dist/lib/platform.d.ts +1 -1
  305. package/dist/props/components/app.prop.d.ts +28 -13
  306. package/dist/props/components/data-display.prop.d.ts +19 -29
  307. package/dist/props/components/feedback.prop.d.ts +15 -44
  308. package/dist/props/components/general.prop.d.ts +2 -64
  309. package/dist/props/components/index.d.ts +9 -1
  310. package/dist/props/components/layout.prop.d.ts +41 -57
  311. package/dist/props/registry.d.ts +48 -101
  312. package/dist/props/registry.js +45 -129
  313. package/dist/props/vocabulary/index.d.ts +1 -1
  314. package/dist/props/vocabulary/interaction.prop.d.ts +3 -12
  315. package/dist/styles/alert-layout.css +0 -29
  316. package/dist/styles/data-display-layout.css +14 -22
  317. package/dist/styles/dialog-layout.css +4 -0
  318. package/dist/styles/fonts/OFL.txt +93 -0
  319. package/dist/styles/form-layout.css +4 -0
  320. package/dist/styles/index.css +0 -2
  321. package/dist/styles/layers.json +44 -179
  322. package/dist/styles/text-layout.css +0 -15
  323. package/dist/styles.css +2 -0
  324. package/dist/themes/godx.css +43 -0
  325. package/dist/themes/godx.d.ts +13 -0
  326. package/dist/themes/godx.js +12 -0
  327. package/dist/tokens/components/feedback.css +0 -6
  328. package/dist/tokens/derived.css +23 -22
  329. package/dist/tokens/foundation.css +4 -6
  330. package/docs/COMPOSITION-VS-COMPONENT.md +58 -33
  331. package/docs/CONSUMER-RULES.md +1 -1
  332. package/docs/CUSTOMER-THEMING.md +17 -53
  333. package/docs/migrations/v32.md +98 -0
  334. package/package.json +58 -19
  335. package/scripts/_agent-setup.mjs +54 -3
  336. package/scripts/brand-accent.generated.mjs +15 -2
  337. package/scripts/cli.mjs +36 -11
  338. package/scripts/codemod.mjs +522 -0
  339. package/scripts/consumer-rule.md +21 -43
  340. package/scripts/postinstall.mjs +10 -47
  341. package/scripts/prune-css.mjs +1 -1
  342. package/scripts/ui-audit.mjs +5 -2
  343. package/dist/components/data-display/chat-bubble.d.ts +0 -30
  344. package/dist/components/data-display/chat-bubble.js +0 -229
  345. package/dist/components/data-display/hover-card.d.ts +0 -1
  346. package/dist/components/data-display/hover-card.js +0 -7
  347. package/dist/components/data-display/thought-chain.d.ts +0 -42
  348. package/dist/components/data-display/thought-chain.js +0 -177
  349. package/dist/components/data-display/thumbnail.d.ts +0 -37
  350. package/dist/components/data-display/thumbnail.js +0 -20
  351. package/dist/components/data-display/welcome.d.ts +0 -26
  352. package/dist/components/data-display/welcome.js +0 -37
  353. package/dist/components/data-entry/attachments.d.ts +0 -19
  354. package/dist/components/data-entry/attachments.js +0 -366
  355. package/dist/components/data-entry/chat-composer.d.ts +0 -51
  356. package/dist/components/data-entry/chat-composer.js +0 -200
  357. package/dist/components/data-entry/chat-suggestion.d.ts +0 -28
  358. package/dist/components/data-entry/chat-suggestion.js +0 -309
  359. package/dist/components/data-entry/tag-input.d.ts +0 -2
  360. package/dist/components/data-entry/tag-input.js +0 -5
  361. package/dist/components/feedback/banner.d.ts +0 -21
  362. package/dist/components/feedback/banner.js +0 -19
  363. package/dist/components/feedback/callout.d.ts +0 -23
  364. package/dist/components/feedback/callout.js +0 -42
  365. package/dist/components/layout/auth-shell.d.ts +0 -10
  366. package/dist/components/layout/auth-shell.js +0 -42
  367. package/dist/components/layout/space-compact.d.ts +0 -65
  368. package/dist/components/layout/space-compact.js +0 -52
  369. package/dist/components/navigation/conversations.d.ts +0 -39
  370. package/dist/components/navigation/conversations.js +0 -371
  371. package/dist/components/ui/accordion.d.ts +0 -51
  372. package/dist/components/ui/accordion.js +0 -254
  373. package/dist/components/ui/aspect-ratio.d.ts +0 -24
  374. package/dist/components/ui/aspect-ratio.js +0 -21
  375. package/dist/components/ui/avatar.d.ts +0 -16
  376. package/dist/components/ui/avatar.js +0 -115
  377. package/dist/components/ui/credential-reveal.d.ts +0 -9
  378. package/dist/components/ui/credential-reveal.js +0 -160
  379. package/dist/components/ui/hover-card.d.ts +0 -47
  380. package/dist/components/ui/hover-card.js +0 -205
  381. package/dist/components/ui/input-otp.d.ts +0 -48
  382. package/dist/components/ui/input-otp.js +0 -101
  383. package/dist/components/ui/password-input.d.ts +0 -38
  384. package/dist/components/ui/password-input.js +0 -60
  385. package/dist/components/ui/rating.d.ts +0 -38
  386. package/dist/components/ui/rating.js +0 -131
  387. package/dist/components/ui/segmented.d.ts +0 -94
  388. package/dist/components/ui/segmented.js +0 -108
  389. package/dist/components/ui/separator.d.ts +0 -25
  390. package/dist/components/ui/separator.js +0 -74
  391. package/dist/components/ui/toggle-group.d.ts +0 -108
  392. package/dist/components/ui/toggle-group.js +0 -194
  393. package/dist/components/ui/toggle.d.ts +0 -86
  394. package/dist/components/ui/toggle.js +0 -156
  395. package/docs/CANONICAL-CONTRACTS.md +0 -206
  396. package/docs/COMPONENTS.md +0 -163
  397. package/docs/DATETIME.md +0 -78
  398. package/docs/DEVELOPMENT.md +0 -269
  399. package/docs/FRAME-A11Y-CI.md +0 -287
  400. package/docs/FRAME-COVERAGE-LEDGER.md +0 -123
  401. package/docs/FRAME-COVERAGE-REPORT.md +0 -228
  402. package/docs/FRAME-COVERAGE-STANDARD.md +0 -65
  403. package/docs/FRAME-COVERAGE.md +0 -29
  404. package/docs/MEASUREMENT-CONTRACT.md +0 -109
  405. package/docs/PROPS-REGISTRY.md +0 -61
  406. package/docs/PROPS-VOCABULARY.md +0 -100
  407. package/docs/REGISTRY.md +0 -70
  408. package/docs/TESTING.md +0 -107
  409. package/docs/THEME-API-COVERAGE.md +0 -538
  410. package/docs/WHAT-BELONGS-HERE.md +0 -179
  411. package/docs/asset-modules.d.ts +0 -53
  412. package/docs/assets/cover-terrain.svg +0 -6
  413. package/docs/assets/portrait-amber.svg +0 -5
  414. package/docs/assets/portrait-clay.svg +0 -5
  415. package/docs/assets/portrait-indigo.svg +0 -5
  416. package/docs/assets/portrait-iris.svg +0 -5
  417. package/docs/assets/portrait-moss.svg +0 -5
  418. package/docs/assets/portrait-plum.svg +0 -5
  419. package/docs/assets/portrait-slate.svg +0 -5
  420. package/docs/assets/service-mark-rose.svg +0 -6
  421. package/docs/assets/service-mark-teal.svg +0 -5
  422. package/docs/assets/shot-landscape.svg +0 -12
  423. package/docs/assets/shot-portrait.svg +0 -10
  424. package/docs/assets/tcgm/card-1.svg +0 -1
  425. package/docs/assets/tcgm/card-2.svg +0 -1
  426. package/docs/assets/tcgm/card-3.svg +0 -1
  427. package/docs/assets/tcgm/card-4.svg +0 -1
  428. package/docs/assets/tcgm/card-5.svg +0 -1
  429. package/docs/assets/tcgm/card-6.svg +0 -1
  430. package/docs/assets/tcgm/hero-prism.svg +0 -1
  431. package/docs/assets/tcgm/scene-1.svg +0 -1
  432. package/docs/assets/tcgm/scene-2.svg +0 -1
  433. package/docs/assets/tcgm/scene-3.svg +0 -1
  434. package/docs/assets/tcgm/scene-4.svg +0 -1
  435. package/docs/assets/tcgm/scene-5.svg +0 -1
  436. package/docs/assets/tcgm/tcgm-lockup-color.svg +0 -1
  437. package/docs/assets/tcgm/tcgm-symbol-color.svg +0 -1
  438. package/docs/charts/cjk-category-axis.tsx +0 -81
  439. package/docs/charts/compact-bar-trend.tsx +0 -327
  440. package/docs/charts/size-tiers.tsx +0 -192
  441. package/docs/data-display/accordion.tsx +0 -99
  442. package/docs/data-display/avatar.tsx +0 -502
  443. package/docs/data-display/badge.tsx +0 -335
  444. package/docs/data-display/card/examples/detail-panel.tsx +0 -106
  445. package/docs/data-display/card/examples/tab-list.tsx +0 -97
  446. package/docs/data-display/card/index.md +0 -3
  447. package/docs/data-display/card/index.tsx +0 -390
  448. package/docs/data-display/carousel.tsx +0 -160
  449. package/docs/data-display/charts.tsx +0 -278
  450. package/docs/data-display/chat-bubble.tsx +0 -397
  451. package/docs/data-display/code-block.tsx +0 -188
  452. package/docs/data-display/collapsible.tsx +0 -162
  453. package/docs/data-display/credential-reveal.tsx +0 -148
  454. package/docs/data-display/data-table/examples/antd-parity.tsx +0 -257
  455. package/docs/data-display/data-table/examples/approval-queue.tsx +0 -212
  456. package/docs/data-display/data-table/examples/grid-features.tsx +0 -158
  457. package/docs/data-display/data-table/examples/list-page.tsx +0 -175
  458. package/docs/data-display/data-table/examples/selectable-inbox.tsx +0 -113
  459. package/docs/data-display/data-table/examples/server-paged.tsx +0 -179
  460. package/docs/data-display/data-table/examples/striped-list.tsx +0 -173
  461. package/docs/data-display/data-table/index.md +0 -9
  462. package/docs/data-display/data-table/index.tsx +0 -407
  463. package/docs/data-display/descriptions.tsx +0 -263
  464. package/docs/data-display/empty-state.tsx +0 -164
  465. package/docs/data-display/feature-list.tsx +0 -159
  466. package/docs/data-display/hover-card.tsx +0 -181
  467. package/docs/data-display/image.tsx +0 -170
  468. package/docs/data-display/legend.tsx +0 -158
  469. package/docs/data-display/list-row.tsx +0 -441
  470. package/docs/data-display/markdown.tsx +0 -86
  471. package/docs/data-display/marquee.tsx +0 -254
  472. package/docs/data-display/org-chart.tsx +0 -165
  473. package/docs/data-display/permission-matrix.tsx +0 -188
  474. package/docs/data-display/popover-touch.tsx +0 -27
  475. package/docs/data-display/popover.tsx +0 -331
  476. package/docs/data-display/progress.tsx +0 -162
  477. package/docs/data-display/prose.tsx +0 -169
  478. package/docs/data-display/qr-code.tsx +0 -68
  479. package/docs/data-display/scroll-area.tsx +0 -420
  480. package/docs/data-display/service-launcher-card.tsx +0 -445
  481. package/docs/data-display/stat-card.tsx +0 -354
  482. package/docs/data-display/swatch.tsx +0 -107
  483. package/docs/data-display/table.tsx +0 -362
  484. package/docs/data-display/text-diff.tsx +0 -89
  485. package/docs/data-display/thought-chain.tsx +0 -176
  486. package/docs/data-display/thumbnail.tsx +0 -128
  487. package/docs/data-display/timeline-grid.tsx +0 -119
  488. package/docs/data-display/timeline.tsx +0 -671
  489. package/docs/data-display/touch-actions.tsx +0 -36
  490. package/docs/data-display/tree.tsx +0 -724
  491. package/docs/data-display/welcome.tsx +0 -115
  492. package/docs/data-entry/attachments.tsx +0 -160
  493. package/docs/data-entry/block-editor.tsx +0 -105
  494. package/docs/data-entry/branch-scope-picker.tsx +0 -128
  495. package/docs/data-entry/calendar.tsx +0 -226
  496. package/docs/data-entry/cascader.tsx +0 -380
  497. package/docs/data-entry/chat-composer.tsx +0 -619
  498. package/docs/data-entry/chat-suggestion.tsx +0 -301
  499. package/docs/data-entry/checkbox.tsx +0 -256
  500. package/docs/data-entry/color-picker.tsx +0 -189
  501. package/docs/data-entry/command-palette.tsx +0 -179
  502. package/docs/data-entry/command.tsx +0 -341
  503. package/docs/data-entry/country-picker-recipe.tsx +0 -175
  504. package/docs/data-entry/date-picker.tsx +0 -452
  505. package/docs/data-entry/emoji-picker.tsx +0 -35
  506. package/docs/data-entry/form/examples/employee-settings.tsx +0 -267
  507. package/docs/data-entry/form/examples/invoice-form.tsx +0 -387
  508. package/docs/data-entry/form-dynamic-fields.tsx +0 -199
  509. package/docs/data-entry/form-field/examples/a11y-contract.tsx +0 -242
  510. package/docs/data-entry/form-field/examples/create-form.tsx +0 -107
  511. package/docs/data-entry/form-field/index.md +0 -8
  512. package/docs/data-entry/form-field/index.tsx +0 -337
  513. package/docs/data-entry/form-inertia.tsx +0 -80
  514. package/docs/data-entry/form-root.tsx +0 -112
  515. package/docs/data-entry/form.tsx +0 -1498
  516. package/docs/data-entry/input-otp.tsx +0 -258
  517. package/docs/data-entry/input.tsx +0 -796
  518. package/docs/data-entry/label.tsx +0 -102
  519. package/docs/data-entry/markdown-editor.tsx +0 -69
  520. package/docs/data-entry/number-input.tsx +0 -279
  521. package/docs/data-entry/password-input.tsx +0 -102
  522. package/docs/data-entry/password-strength.tsx +0 -99
  523. package/docs/data-entry/radio-group.tsx +0 -316
  524. package/docs/data-entry/rating.tsx +0 -91
  525. package/docs/data-entry/record-picker.tsx +0 -209
  526. package/docs/data-entry/search-input.tsx +0 -121
  527. package/docs/data-entry/segmented-in-filter-row.tsx +0 -60
  528. package/docs/data-entry/segmented.tsx +0 -300
  529. package/docs/data-entry/select-async-contracts.tsx +0 -108
  530. package/docs/data-entry/select-matrix.tsx +0 -209
  531. package/docs/data-entry/select.tsx +0 -547
  532. package/docs/data-entry/slider.tsx +0 -212
  533. package/docs/data-entry/sortable-list.tsx +0 -76
  534. package/docs/data-entry/switch.tsx +0 -314
  535. package/docs/data-entry/tag-input.tsx +0 -145
  536. package/docs/data-entry/textarea.tsx +0 -249
  537. package/docs/data-entry/time-picker.tsx +0 -187
  538. package/docs/data-entry/time-range-picker.tsx +0 -55
  539. package/docs/data-entry/toggle-count.tsx +0 -348
  540. package/docs/data-entry/toggle-group.tsx +0 -438
  541. package/docs/data-entry/toggle.tsx +0 -217
  542. package/docs/data-entry/transfer.tsx +0 -115
  543. package/docs/data-entry/tree-select.tsx +0 -204
  544. package/docs/data-entry/upload-crop-dialog.tsx +0 -109
  545. package/docs/data-entry/upload.tsx +0 -310
  546. package/docs/feedback/alert-dialog.tsx +0 -270
  547. package/docs/feedback/alert.tsx +0 -248
  548. package/docs/feedback/auth-expiry.tsx +0 -104
  549. package/docs/feedback/banner.tsx +0 -183
  550. package/docs/feedback/callout.tsx +0 -220
  551. package/docs/feedback/danger-confirm.tsx +0 -91
  552. package/docs/feedback/dialog-touch.tsx +0 -24
  553. package/docs/feedback/dialog.tsx +0 -373
  554. package/docs/feedback/sheet.tsx +0 -510
  555. package/docs/feedback/skeleton.tsx +0 -168
  556. package/docs/feedback/toast.tsx +0 -135
  557. package/docs/feedback/tooltip.tsx +0 -171
  558. package/docs/feedback/two-factor-setup.tsx +0 -68
  559. package/docs/foundation/_email-specimen.ts +0 -274
  560. package/docs/foundation/_theme-editor-scope.ts +0 -222
  561. package/docs/foundation/colors.tsx +0 -207
  562. package/docs/foundation/density.tsx +0 -242
  563. package/docs/foundation/email-tokens.tsx +0 -323
  564. package/docs/foundation/radius-shadow.tsx +0 -154
  565. package/docs/foundation/spacing.tsx +0 -216
  566. package/docs/foundation/theme-editor.tsx +0 -654
  567. package/docs/foundation/typography.tsx +0 -147
  568. package/docs/general/actions.tsx +0 -175
  569. package/docs/general/activity.tsx +0 -289
  570. package/docs/general/button/examples/destructive-confirm.tsx +0 -90
  571. package/docs/general/button/examples/form-actions.tsx +0 -87
  572. package/docs/general/button/examples/toolbar.tsx +0 -160
  573. package/docs/general/button/index.md +0 -16
  574. package/docs/general/button/index.tsx +0 -236
  575. package/docs/general/float-button.tsx +0 -133
  576. package/docs/general/icon.tsx +0 -217
  577. package/docs/general/logo.tsx +0 -194
  578. package/docs/general/reveal.tsx +0 -309
  579. package/docs/general/typography.tsx +0 -542
  580. package/docs/i18n/messages/en.json +0 -1715
  581. package/docs/i18n/messages/ja.json +0 -1708
  582. package/docs/i18n/messages/vi.json +0 -1708
  583. package/docs/layout/account-chip.tsx +0 -72
  584. package/docs/layout/admin-collection.tsx +0 -122
  585. package/docs/layout/affix.tsx +0 -209
  586. package/docs/layout/app-launcher.tsx +0 -211
  587. package/docs/layout/app-shell-arrangements.tsx +0 -225
  588. package/docs/layout/app-shell-narrow-bar.tsx +0 -205
  589. package/docs/layout/app-shell-states.tsx +0 -171
  590. package/docs/layout/app-shell.tsx +0 -395
  591. package/docs/layout/aspect-ratio.tsx +0 -135
  592. package/docs/layout/auth-account-summary.tsx +0 -103
  593. package/docs/layout/auth-divider.tsx +0 -28
  594. package/docs/layout/auth-footer.tsx +0 -37
  595. package/docs/layout/auth-identity.tsx +0 -70
  596. package/docs/layout/auth-recovery/examples/mfa-challenge.md +0 -41
  597. package/docs/layout/auth-recovery/examples/mfa-challenge.tsx +0 -254
  598. package/docs/layout/auth-recovery/examples/mobile-390.md +0 -25
  599. package/docs/layout/auth-recovery/examples/mobile-390.tsx +0 -82
  600. package/docs/layout/auth-recovery/examples/password-recovery.md +0 -24
  601. package/docs/layout/auth-recovery/examples/password-recovery.tsx +0 -197
  602. package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.md +0 -27
  603. package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.tsx +0 -156
  604. package/docs/layout/auth-recovery/index.md +0 -140
  605. package/docs/layout/auth-recovery/index.tsx +0 -96
  606. package/docs/layout/auth-shell-context.tsx +0 -103
  607. package/docs/layout/auth-shell-device.tsx +0 -112
  608. package/docs/layout/auth-shell-registration.tsx +0 -338
  609. package/docs/layout/auth-shell-variants.tsx +0 -143
  610. package/docs/layout/auth-shell.tsx +0 -59
  611. package/docs/layout/auth-stack.tsx +0 -40
  612. package/docs/layout/centered-shell.tsx +0 -102
  613. package/docs/layout/draggable-panel.tsx +0 -127
  614. package/docs/layout/error-surface/examples/application-403.tsx +0 -84
  615. package/docs/layout/error-surface/examples/application-404.tsx +0 -77
  616. package/docs/layout/error-surface/examples/system-500.tsx +0 -47
  617. package/docs/layout/error-surface/examples/system-503.tsx +0 -48
  618. package/docs/layout/error-surface/index.md +0 -153
  619. package/docs/layout/error-surface/index.tsx +0 -239
  620. package/docs/layout/flex.tsx +0 -444
  621. package/docs/layout/legal-document-shell/_data.ts +0 -110
  622. package/docs/layout/legal-document-shell/examples/desktop-1440.md +0 -12
  623. package/docs/layout/legal-document-shell/examples/desktop-1440.tsx +0 -83
  624. package/docs/layout/legal-document-shell/examples/mobile-390.md +0 -22
  625. package/docs/layout/legal-document-shell/examples/mobile-390.tsx +0 -70
  626. package/docs/layout/legal-document-shell/examples/tablet-1024.md +0 -3
  627. package/docs/layout/legal-document-shell/examples/tablet-1024.tsx +0 -84
  628. package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.md +0 -18
  629. package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.tsx +0 -61
  630. package/docs/layout/legal-document-shell/index.md +0 -51
  631. package/docs/layout/legal-document-shell/index.tsx +0 -101
  632. package/docs/layout/masonry.tsx +0 -291
  633. package/docs/layout/master-detail.tsx +0 -390
  634. package/docs/layout/mobile-shell.tsx +0 -106
  635. package/docs/layout/nav-list.tsx +0 -584
  636. package/docs/layout/org-switcher.tsx +0 -131
  637. package/docs/layout/page-container.tsx +0 -1020
  638. package/docs/layout/page-cover.tsx +0 -56
  639. package/docs/layout/resizable-panel.tsx +0 -419
  640. package/docs/layout/responsive-grid.tsx +0 -403
  641. package/docs/layout/separator.tsx +0 -327
  642. package/docs/layout/service-role-panel.tsx +0 -144
  643. package/docs/layout/sidebar.tsx +0 -689
  644. package/docs/layout/space-compact.tsx +0 -202
  645. package/docs/layout/split-pane.tsx +0 -532
  646. package/docs/layout/topbar-item.tsx +0 -233
  647. package/docs/layout/topbar.tsx +0 -360
  648. package/docs/navigation/anchor.tsx +0 -295
  649. package/docs/navigation/app-setting-picker.tsx +0 -178
  650. package/docs/navigation/app-setting-toggle.tsx +0 -111
  651. package/docs/navigation/breadcrumb.tsx +0 -207
  652. package/docs/navigation/card-tabs.tsx +0 -344
  653. package/docs/navigation/conversations.tsx +0 -176
  654. package/docs/navigation/dropdown-menu.tsx +0 -345
  655. package/docs/navigation/filter-bar.tsx +0 -247
  656. package/docs/navigation/mega-menu-panel.tsx +0 -86
  657. package/docs/navigation/mega-menu.tsx +0 -254
  658. package/docs/navigation/pagination.tsx +0 -293
  659. package/docs/navigation/steps.tsx +0 -315
  660. package/docs/navigation/tabs-rtl.tsx +0 -28
  661. package/docs/navigation/tabs.tsx +0 -755
  662. package/docs/navigation/toolbar.tsx +0 -347
  663. package/docs/providers/app-provider.tsx +0 -191
  664. package/docs/providers/format-date.tsx +0 -230
  665. package/docs/providers/theme-scope.tsx +0 -186
  666. package/docs/query/button-refetch.tsx +0 -161
  667. package/docs/query/data-state.tsx +0 -262
  668. package/docs/query/infinite-query-state.tsx +0 -97
  669. package/docs/query/mutation-feedback.tsx +0 -128
  670. package/docs/query/touch-actions.tsx +0 -68
  671. package/docs/react-router/prefetch-link.tsx +0 -262
  672. package/docs/roadmap/ai-chat-components.md +0 -206
  673. package/docs/roadmap/antd-parity.md +0 -155
  674. package/docs/roadmap/badge-tag-chip-count.md +0 -172
  675. package/docs/roadmap/list-masonry.md +0 -159
  676. package/docs/roadmap/parity-audit-data-display-feedback.md +0 -567
  677. package/docs/roadmap/parity-audit-data-entry.md +0 -368
  678. package/docs/roadmap/parity-audit-layout-navigation-general.md +0 -459
  679. package/docs/roadmap/parity-backlog.md +0 -77
  680. package/docs/roadmap/tree-components.md +0 -151
  681. package/docs/roadmap/website-components.md +0 -813
  682. package/docs/showcase/acme-portal.tsx +0 -461
  683. package/docs/showcase/acme-website.tsx +0 -499
  684. package/docs/showcase/caimono-price-comparison.tsx +0 -919
  685. package/docs/showcase/case1-warehouse-dashboard.tsx +0 -358
  686. package/docs/showcase/case2-employee-me.tsx +0 -438
  687. package/docs/showcase/case3-approval-workflow.tsx +0 -531
  688. package/docs/showcase/case4-login.tsx +0 -312
  689. package/docs/showcase/case5-shift-calendar.tsx +0 -702
  690. package/docs/showcase/case6-agency-handy.tsx +0 -1120
  691. package/docs/showcase/futurelastic-web.tsx +0 -441
  692. package/docs/showcase/marketing-page.tsx +0 -895
  693. package/docs/showcase/org-switcher.tsx +0 -320
  694. package/docs/showcase/permission-matrix.tsx +0 -354
  695. package/docs/showcase/public-landing.tsx +0 -210
  696. package/docs/showcase/settings-account-sections.tsx +0 -559
  697. package/docs/showcase/settings-security-mfa.tsx +0 -145
  698. package/docs/showcase/table-approval-queue.tsx +0 -199
  699. package/docs/showcase/table-bulk-actions.tsx +0 -468
  700. package/docs/showcase/table-compact-kintone.tsx +0 -438
  701. package/docs/showcase/table-conditional-format.tsx +0 -367
  702. package/docs/showcase/table-crud-list.tsx +0 -544
  703. package/docs/showcase/table-density.tsx +0 -349
  704. package/docs/showcase/table-expandable-rows.tsx +0 -496
  705. package/docs/showcase/table-filter-chips.tsx +0 -468
  706. package/docs/showcase/table-footer-totals.tsx +0 -328
  707. package/docs/showcase/table-grouped-subtotals.tsx +0 -398
  708. package/docs/showcase/table-master-detail.tsx +0 -482
  709. package/docs/showcase/table-pagination.tsx +0 -409
  710. package/docs/showcase/table-states.tsx +0 -371
  711. package/docs/showcase/table-sticky-columns.tsx +0 -377
  712. package/docs/showcase/table-tree-rows.tsx +0 -451
  713. package/docs/showcase/table-view-tabs.tsx +0 -488
  714. package/docs/showcase/tcgm-website.tsx +0 -1047
  715. package/docs/showcase/tenant-brand-color.tsx +0 -338
  716. package/docs/showcase/theme-customization.tsx +0 -1292
  717. package/docs/showcase/theme-lab.tsx +0 -2125
  718. package/docs/themes/flat.css +0 -466
  719. package/docs/themes/glassmorphism.css +0 -960
  720. package/docs/themes/index.ts +0 -219
  721. package/docs/themes/neubrutalism.css +0 -481
  722. /package/dist/components/navigation/{filter-bar.d.ts → toolbar.d.ts} +0 -0
  723. /package/dist/components/navigation/{filter-bar.js → toolbar.js} +0 -0
  724. /package/dist/{components/data-display → lab}/carousel.d.ts +0 -0
  725. /package/dist/{components/data-entry → lab}/emoji-data.d.ts +0 -0
  726. /package/dist/{components/data-entry → lab}/emoji-data.js +0 -0
  727. /package/dist/{components/data-display → lab}/marquee-reveal.d.ts +0 -0
  728. /package/dist/{components/data-display → lab}/marquee-reveal.js +0 -0
@@ -1,444 +0,0 @@
1
- import {
2
- Badge,
3
- Card,
4
- CardContent,
5
- CardDescription,
6
- CardHeader,
7
- CardTitle,
8
- ListRow,
9
- } from "@godxjp/ui/data-display";
10
- import { Button, Text } from "@godxjp/ui/general";
11
- import { useTranslation } from "@godxjp/ui/i18n";
12
- import { Flex, PageContainer } from "@godxjp/ui/layout";
13
-
14
- /**
15
- * Flex · canonical flex primitive (replaced Stack/Inline as named shortcuts).
16
- * The default direction is "row" — matching the CSS `display:flex` initial value.
17
- * Use direction="col" for vertical stacks (formerly Stack); direction="row" is the
18
- * default for horizontal groups (formerly Inline). Keep spacing in gap prop · same
19
- * token scale as Stack/Inline. align + justify expose cross-axis and main-axis control.
20
- * wrap allows chip clusters and action rows to reflow. Composed only from real
21
- * @godxjp/ui components.
22
- */
23
- export default function Demo() {
24
- const { t } = useTranslation();
25
- return (
26
- <PageContainer
27
- title="Flex"
28
- subtitle="方向・整列・間隔・折り返し · Stack/Inline を置き換えた汎用フレックスプリミティブ"
29
- >
30
- <Flex direction="col" gap="lg">
31
- <Card>
32
- <CardHeader>
33
- <CardTitle level={2}>既定 direction=&quot;row&quot; · CSS 標準</CardTitle>
34
- <CardDescription>
35
- direction を省略すると row(CSS の display:flex の初期値)。横並びが既定で、
36
- 縦積みには direction=&quot;col&quot; を明示する。
37
- </CardDescription>
38
- </CardHeader>
39
- <CardContent>
40
- <Flex gap="sm" align="center">
41
- <Badge variant="outline">借方</Badge>
42
- <Badge variant="outline">貸方</Badge>
43
- <Badge variant="outline">残高</Badge>
44
- </Flex>
45
- </CardContent>
46
- </Card>
47
-
48
- <Card>
49
- <CardHeader>
50
- <CardTitle level={2}>direction=&quot;col&quot; · 縦スタック</CardTitle>
51
- <CardDescription>
52
- 縦積みは direction=&quot;col&quot; を明示する。gap
53
- トークンで間隔を均一に制御。className で raw gap-* を使わない。
54
- </CardDescription>
55
- </CardHeader>
56
- <CardContent>
57
- <Flex direction="col" gap="sm">
58
- <Card>
59
- <CardContent>
60
- <Text tone="muted">行 1 · 仕訳入力</Text>
61
- </CardContent>
62
- </Card>
63
- <Card>
64
- <CardContent>
65
- <Text tone="muted">行 2 · 補助元帳</Text>
66
- </CardContent>
67
- </Card>
68
- <Card>
69
- <CardContent>
70
- <Text tone="muted">行 3 · 試算表</Text>
71
- </CardContent>
72
- </Card>
73
- </Flex>
74
- </CardContent>
75
- </Card>
76
-
77
- <Card>
78
- <CardHeader>
79
- <CardTitle level={2}>
80
- direction=&quot;row&quot; + justify=&quot;between&quot; · ツールバー
81
- </CardTitle>
82
- <CardDescription>
83
- カードヘッダー内でタイトルとアクションを左右に配置する典型パターン。
84
- </CardDescription>
85
- </CardHeader>
86
- <CardContent>
87
- <Flex direction="row" gap="sm" align="center" justify="between">
88
- <Text weight="medium">請求書一覧</Text>
89
- <Flex direction="row" gap="xs" align="center">
90
- <Button variant="outline" size="sm">
91
- エクスポート
92
- </Button>
93
- <Button size="sm">新規作成</Button>
94
- </Flex>
95
- </Flex>
96
- </CardContent>
97
- </Card>
98
-
99
- <Card>
100
- <CardHeader>
101
- <CardTitle level={2}>
102
- align=&quot;center&quot; + justify=&quot;center&quot; · センタリング
103
- </CardTitle>
104
- <CardDescription>
105
- 空状態やローディングブロックを両軸で中央揃えにする用途。
106
- </CardDescription>
107
- </CardHeader>
108
- <CardContent>
109
- <Flex direction="col" align="center" justify="center" gap="sm" className="min-h-32">
110
- <Text tone="muted">データがありません</Text>
111
- <Button variant="outline" size="sm">
112
- インポート
113
- </Button>
114
- </Flex>
115
- </CardContent>
116
- </Card>
117
-
118
- <Card>
119
- <CardHeader>
120
- <CardTitle level={2}>align · 交差軸の整列(全 5 値)</CardTitle>
121
- <CardDescription>
122
- direction=&quot;row&quot; の交差軸(縦方向)の揃え方。高さの異なる子要素で
123
- start・center・end・baseline・stretch の違いを比較。baseline はテキストの
124
- ベースライン、stretch は子要素を行の高さまで引き伸ばす。
125
- </CardDescription>
126
- </CardHeader>
127
- <CardContent>
128
- <Flex direction="col" gap="md">
129
- {(["start", "center", "end", "stretch", "baseline"] as const).map((a) => (
130
- <Flex
131
- key={a}
132
- direction="row"
133
- gap="sm"
134
- align={a}
135
- className="bg-muted min-h-20 rounded-md"
136
- style={{ padding: "var(--space-2)" }}
137
- >
138
- <Text size="xs" tone="muted" className="w-16">
139
- {a}
140
- </Text>
141
- <Badge variant="outline">短</Badge>
142
- <Text>標準テキスト</Text>
143
- <Text size="2xl" weight="bold">
144
- 大
145
- </Text>
146
- </Flex>
147
- ))}
148
- </Flex>
149
- </CardContent>
150
- </Card>
151
-
152
- <Card>
153
- <CardHeader>
154
- <CardTitle level={2}>justify · 主軸の配置(全 6 値)</CardTitle>
155
- <CardDescription>
156
- direction=&quot;row&quot; の主軸(横方向)の配置。固定幅トラックで余白の
157
- 分配を比較。between は端寄せ、around は各要素の周囲、evenly は要素間と端を
158
- すべて均等にする。
159
- </CardDescription>
160
- </CardHeader>
161
- <CardContent>
162
- <Flex direction="col" gap="md">
163
- {(["start", "center", "end", "between", "around", "evenly"] as const).map((j) => (
164
- <Flex key={j} direction="row" gap="sm" align="center">
165
- <Text size="xs" tone="muted" className="w-16">
166
- {j}
167
- </Text>
168
- <Flex
169
- direction="row"
170
- gap="xs"
171
- align="center"
172
- justify={j}
173
- className="bg-muted flex-1 rounded-md"
174
- style={{ padding: "var(--space-2)" }}
175
- >
176
- <Badge variant="outline">借方</Badge>
177
- <Badge variant="outline">貸方</Badge>
178
- <Badge variant="outline">残高</Badge>
179
- </Flex>
180
- </Flex>
181
- ))}
182
- </Flex>
183
- </CardContent>
184
- </Card>
185
-
186
- <Card>
187
- <CardHeader>
188
- <CardTitle level={2}>wrap · 折り返しの有無を比較</CardTitle>
189
- <CardDescription>
190
- wrap=&#123;true&#125;(既定の false に対して)。狭いトラックで折り返しの有無を
191
- 並べて比較。false では子要素が一行に圧縮され、true では次行へ流れる。
192
- </CardDescription>
193
- </CardHeader>
194
- <CardContent>
195
- <Flex direction="row" gap="md" align="start" wrap>
196
- <Flex direction="col" gap="xs" className="w-44">
197
- <Text size="xs" tone="muted">
198
- wrap=&#123;false&#125;(既定)
199
- </Text>
200
- {/* ui-audit-disable-next-line no-utility-spacing — a tinted tile so the gap between children is visible; the box IS the subject */}
201
- <Flex direction="row" gap="xs" wrap={false} className="bg-muted rounded-md p-2">
202
- <Badge variant="outline">勘定科目</Badge>
203
- <Badge variant="outline">補助科目</Badge>
204
- <Badge variant="outline">部門</Badge>
205
- </Flex>
206
- </Flex>
207
- <Flex direction="col" gap="xs" className="w-44">
208
- <Text size="xs" tone="muted">
209
- wrap=&#123;true&#125;
210
- </Text>
211
- {/* ui-audit-disable-next-line no-utility-spacing — a tinted tile so the gap between children is visible; the box IS the subject */}
212
- <Flex direction="row" gap="xs" wrap className="bg-muted rounded-md p-2">
213
- <Badge variant="outline">勘定科目</Badge>
214
- <Badge variant="outline">補助科目</Badge>
215
- <Badge variant="outline">部門</Badge>
216
- </Flex>
217
- </Flex>
218
- </Flex>
219
- </CardContent>
220
- </Card>
221
-
222
- <Card>
223
- <CardHeader>
224
- <CardTitle level={2}>wrap · バッジ・チップクラスター</CardTitle>
225
- <CardDescription>
226
- direction=&quot;row&quot; + wrap=&#123;true&#125; でタグ・ステータスバッジが折り返す。
227
- gap トークンで均一スペーシング。
228
- </CardDescription>
229
- </CardHeader>
230
- <CardContent>
231
- <Flex direction="row" wrap gap="xs" align="center">
232
- <Badge tone="success">承認済</Badge>
233
- <Badge tone="warning">保留中</Badge>
234
- <Badge tone="info">確認待ち</Badge>
235
- <Badge tone="destructive">却下</Badge>
236
- <Badge variant="secondary">下書き</Badge>
237
- <Badge variant="outline">アーカイブ</Badge>
238
- <Badge>既定</Badge>
239
- <Badge tone="neutral">中立</Badge>
240
- </Flex>
241
- </CardContent>
242
- </Card>
243
-
244
- <Card>
245
- <CardHeader>
246
- <CardTitle level={2}>gap トークンスケール</CardTitle>
247
- <CardDescription>
248
- xs · sm · md(既定)· lg · xl。raw gap-* / space-* ユーティリティは使わない。
249
- </CardDescription>
250
- </CardHeader>
251
- <CardContent>
252
- <Flex direction="col" gap="md">
253
- {(["xs", "sm", "md", "lg", "xl"] as const).map((g) => (
254
- <Flex key={g} direction="row" gap={g} align="center">
255
- <Text size="xs" tone="muted" className="w-6">
256
- {g}
257
- </Text>
258
- <Badge variant="outline">勘定科目</Badge>
259
- <Badge variant="outline">補助科目</Badge>
260
- <Badge variant="outline">部門</Badge>
261
- </Flex>
262
- ))}
263
- </Flex>
264
- </CardContent>
265
- </Card>
266
-
267
- <Card>
268
- <CardHeader>
269
- <CardTitle level={2}>レスポンシブな操作行</CardTitle>
270
- </CardHeader>
271
- <CardContent>
272
- <Flex
273
- id="responsive-actions"
274
- direction={{ base: "col", lg: "row" }}
275
- gap="md"
276
- align="start"
277
- >
278
- <Flex fill>
279
- <Text>画面幅に合わせて操作をまとめます。</Text>
280
- </Flex>
281
- <Button>保存</Button>
282
- <Button variant="outline">キャンセル</Button>
283
- </Flex>
284
- </CardContent>
285
- </Card>
286
- <Card>
287
- <CardHeader>
288
- <CardTitle level={2}>刻みにない幅で折りたたむ</CardTitle>
289
- <CardDescription>
290
- hideBelow の 4 段(40/48/64/80rem)に無い幅は hideBelowRaw / hideFromRaw
291
- で指定します。900px ちょうどでは「広い側」だけが残り、両方消える隙間はありません。
292
- </CardDescription>
293
- </CardHeader>
294
- <CardContent>
295
- <Flex align="center" gap="sm">
296
- <Flex id="raw-wide-nav" hideBelowRaw={900} align="center" gap="sm">
297
- <Button variant="ghost" size="sm">
298
- 機能
299
- </Button>
300
- <Button variant="ghost" size="sm">
301
- 料金
302
- </Button>
303
- <Button variant="ghost" size="sm">
304
- 導入事例
305
- </Button>
306
- </Flex>
307
- <Flex id="raw-narrow-nav" hideFromRaw={900} align="center" gap="sm">
308
- <Button variant="outline" size="sm">
309
- メニュー
310
- </Button>
311
- </Flex>
312
- </Flex>
313
- </CardContent>
314
- </Card>
315
- <Card>
316
- <CardHeader>
317
- <CardTitle level={2}>marker=&quot;none&quot; · 装飾のない意味的リスト</CardTitle>
318
- <CardDescription>
319
- as=&quot;ul&quot; は既定で中黒と字下げが付きます。設定メニューのような「行の一覧」では
320
- marker=&quot;none&quot; を指定すると、ul と li の意味づけと gap トークンは残したまま、
321
- 中黒も字下げも消えます。行は ListRow as=&quot;li&quot;
322
- で、区切り線は行が自分で描きます。
323
- </CardDescription>
324
- </CardHeader>
325
- <CardContent flush>
326
- <Flex id="semantic-list" as="ul" marker="none" direction="col" gap="none">
327
- <ListRow
328
- as="li"
329
- title="二要素認証"
330
- description="認証アプリ · 有効"
331
- trailing={
332
- <Button size="xs" variant="outline">
333
- 管理
334
- </Button>
335
- }
336
- />
337
- <ListRow
338
- as="li"
339
- title="パスキー"
340
- description="2 件登録済み"
341
- trailing={
342
- <Button size="xs" variant="outline">
343
- 管理
344
- </Button>
345
- }
346
- />
347
- <ListRow
348
- as="li"
349
- title="回復コード"
350
- description="未発行"
351
- trailing={
352
- <Button size="xs" variant="outline">
353
- 発行
354
- </Button>
355
- }
356
- />
357
- </Flex>
358
- </CardContent>
359
- <CardContent>
360
- <Flex id="semantic-list-gap" as="ul" marker="none" gap="sm" wrap>
361
- <Flex as="li">
362
- <Badge variant="outline">監査ログ</Badge>
363
- </Flex>
364
- <Flex as="li">
365
- <Badge variant="outline">IP 制限</Badge>
366
- </Flex>
367
- <Flex as="li">
368
- <Badge variant="outline">SSO</Badge>
369
- </Flex>
370
- </Flex>
371
- </CardContent>
372
- </Card>
373
- <Card>
374
- <CardHeader>
375
- <CardTitle level={2}>軽い強調と行アクション</CardTitle>
376
- </CardHeader>
377
- <CardContent>
378
- <Flex direction="col" gap="md">
379
- <Flex id="hover-notice" surface="warning" pad={3} tabIndex={0}>
380
- <Text>締切を確認してください。</Text>
381
- <Flex reveal="hover" surface="popover" gap="xs" pad={1}>
382
- <Button variant="ghost" size="sm">
383
- 編集
384
- </Button>
385
- <Button variant="ghost" size="sm">
386
- 解除
387
- </Button>
388
- </Flex>
389
- </Flex>
390
- <Flex as="ul" direction="col" gap="xs">
391
- <li>添付ファイルを確認</li>
392
- <li>担当者を選択</li>
393
- </Flex>
394
- <Flex surface="muted" pad={{ block: 2, inline: 3 }}>
395
- <Text as="code" chip decoration="line-through">
396
- old_status
397
- </Text>
398
- <Text>更新済み</Text>
399
- </Flex>
400
- </Flex>
401
- </CardContent>
402
- </Card>
403
-
404
- <Card>
405
- <CardHeader>
406
- <CardTitle level={2}>{t("showcase.flexMeasure.title")}</CardTitle>
407
- <CardDescription>{t("showcase.flexMeasure.lead")}</CardDescription>
408
- </CardHeader>
409
- <CardContent>
410
- <Flex direction="col" gap="sm">
411
- <Flex
412
- id="measure-narrow"
413
- measure="narrow"
414
- surface="muted"
415
- pad={{ block: 2, inline: 6 }}
416
- justify="center"
417
- >
418
- <Text tone="muted">measure=&quot;narrow&quot; · 42rem</Text>
419
- </Flex>
420
- <Flex
421
- id="measure-medium"
422
- measure="medium"
423
- surface="muted"
424
- pad={{ block: 2, inline: 6 }}
425
- justify="center"
426
- >
427
- <Text tone="muted">measure=&quot;medium&quot; · 48rem</Text>
428
- </Flex>
429
- <Flex
430
- id="measure-wide"
431
- measure="wide"
432
- surface="muted"
433
- pad={{ block: 2, inline: 6 }}
434
- justify="center"
435
- >
436
- <Text tone="muted">measure=&quot;wide&quot; · 72rem</Text>
437
- </Flex>
438
- </Flex>
439
- </CardContent>
440
- </Card>
441
- </Flex>
442
- </PageContainer>
443
- );
444
- }
@@ -1,110 +0,0 @@
1
- /**
2
- * Legal copy fixtures for the LegalDocumentShell pages.
3
- *
4
- * DATA ONLY (a `.ts` module, never a `.tsx` "kit") — the pages compose the real
5
- * `@godxjp/ui` primitives themselves, so a consumer can copy any page verbatim.
6
- * All legal text is CONSUMER-owned; the shell only receives it through `sections`.
7
- */
8
-
9
- export type LegalSectionFixture = {
10
- id: string;
11
- title: string;
12
- paragraphs: string[];
13
- };
14
-
15
- /** Canonical JA terms-of-service document (SCR-005 shape). */
16
- export const TERMS_JA: LegalSectionFixture[] = [
17
- {
18
- id: "acceptance",
19
- title: "第1条(本規約への同意)",
20
- paragraphs: [
21
- "本規約は、GodX 株式会社(以下「当社」といいます)が提供する各種サービス(以下「本サービス」といいます)の利用条件を定めるものです。利用者は、本サービスを利用することにより、本規約のすべての条項に同意したものとみなされます。",
22
- "当社は、必要と判断した場合には、利用者に事前に通知することなく本規約を変更することがあります。変更後の本規約は、当社所定のウェブサイトに掲示された時点から効力を生じるものとします。",
23
- ],
24
- },
25
- {
26
- id: "accounts",
27
- title: "第2条(アカウントの管理)",
28
- paragraphs: [
29
- "利用者は、自己の責任において、本サービスのアカウント情報を適切に管理するものとします。利用者は、いかなる場合にも、アカウントを第三者に譲渡または貸与することはできません。",
30
- "アカウント情報が第三者によって使用されたことによって生じた損害について、当社に故意または重大な過失がある場合を除き、当社は一切の責任を負いません。",
31
- ],
32
- },
33
- {
34
- id: "prohibited",
35
- title: "第3条(禁止事項)",
36
- paragraphs: [
37
- "利用者は、本サービスの利用にあたり、法令または公序良俗に違反する行為、当社もしくは第三者の知的財産権を侵害する行為、本サービスの運営を妨害するおそれのある行為を行ってはなりません。",
38
- "当社は、利用者が前項に違反したと判断した場合、事前の通知なく、当該利用者に対して本サービスの全部または一部の利用を停止することができます。",
39
- ],
40
- },
41
- {
42
- id: "data-retention",
43
- title: "第4条(データの保持期間)",
44
- paragraphs: [
45
- "当社は、会計関連法令および犯罪収益移転防止法に基づき、取引記録を取引終了日から7年間保持します。保持期間の経過後、当社は速やかに当該記録を削除または匿名化します。",
46
- "利用者は、いつでも自己の個人データの開示、訂正または削除を請求することができます。ただし、法令上の保持義務が優先する場合はこの限りではありません。",
47
- ],
48
- },
49
- {
50
- id: "third-party",
51
- title: "第5条(第三者サービスの利用)",
52
- paragraphs: [
53
- "本サービスは、決済、本人確認、通知配信などの目的で第三者のサービスを利用することがあります。当該第三者サービスの利用にあたっては、当該第三者が定める利用条件が別途適用されます。",
54
- ],
55
- },
56
- {
57
- id: "disclaimer",
58
- title: "第6条(免責事項)",
59
- paragraphs: [
60
- "当社は、本サービスに事実上または法律上の瑕疵がないことを明示的にも黙示的にも保証しておりません。当社は、本サービスに起因して利用者に生じたあらゆる損害について、当社の故意または重過失による場合を除き、一切の責任を負いません。",
61
- ],
62
- },
63
- {
64
- id: "governing-law",
65
- title: "第7条(準拠法および管轄裁判所)",
66
- paragraphs: [
67
- "本規約の解釈にあたっては、日本法を準拠法とします。本サービスに関して紛争が生じた場合には、東京地方裁判所を第一審の専属的合意管轄裁判所とします。",
68
- ],
69
- },
70
- {
71
- id: "contact",
72
- title: "第8条(お問い合わせ窓口)",
73
- paragraphs: [
74
- "本規約に関するお問い合わせは、当社所定のお問い合わせフォームまたは legal@example.com までご連絡ください。",
75
- ],
76
- },
77
- ];
78
-
79
- /**
80
- * Mixed-script wrapping fixture: the same document rendered with deliberately hostile
81
- * line-breaking material in JA (no spaces / kinsoku), EN (long compounds + a very long URL)
82
- * and VI (diacritic-heavy words that must never break mid-word).
83
- */
84
- export const WRAPPING_MIXED: LegalSectionFixture[] = [
85
- {
86
- id: "ja-kinsoku",
87
- title: "日本語の長文セクション(禁則処理・行分割の確認)",
88
- paragraphs: [
89
- "当社は、個人情報の保護に関する法律その他の関係法令等を遵守し、利用者の個人情報を適正に取り扱うとともに、個人情報の漏えい、滅失または毀損の防止その他の個人情報の安全管理のために必要かつ適切な措置を講じるものとします。",
90
- "「特定個人情報等」「要配慮個人情報」「仮名加工情報」「匿名加工情報」——これらの用語は、いずれも個人情報保護法に定義される意味を有し、句読点や括弧が行頭に来ないよう禁則処理が適用されます。",
91
- ],
92
- },
93
- {
94
- id: "en-long-compounds",
95
- title:
96
- "2. Cross-border data transfers, sub-processor notifications and telecommunications-infrastructure obligations",
97
- paragraphs: [
98
- "The Controller acknowledges that the Processor may engage sub-processors established outside the European Economic Area, provided that an adequacy decision, standard contractual clauses, or another transfer mechanism recognised under Chapter V of the General Data Protection Regulation is in place.",
99
- "The current sub-processor register is published at https://example.com/legal/sub-processors/register?revision=2026-04-01&format=machine-readable and is updated at least thirty calendar days before any addition takes effect.",
100
- ],
101
- },
102
- {
103
- id: "vi-dau-thanh",
104
- title: "3. Quyền riêng tư và nghĩa vụ bảo mật thông tin của người dùng",
105
- paragraphs: [
106
- "Chúng tôi chỉ thu thập những thông tin thực sự cần thiết để cung cấp dịch vụ, và tuyệt đối không chia sẻ dữ liệu cá nhân của bạn với bên thứ ba khi chưa nhận được sự đồng ý rõ ràng bằng văn bản.",
107
- "Người dùng có quyền yêu cầu truy cập, chỉnh sửa hoặc xoá dữ liệu cá nhân của mình bất cứ lúc nào, trừ trường hợp pháp luật hiện hành quy định nghĩa vụ lưu trữ bắt buộc đối với dữ liệu đó.",
108
- ],
109
- },
110
- ];
@@ -1,12 +0,0 @@
1
- ---
2
- title: Viewport 1440x900
3
- viewport: 1440x900
4
- ---
5
-
6
- Reference desktop geometry. The shell is wider than 56rem, so the contents render as a **sticky rail**
7
- on the start side — spanning the header, body and footer rows — beside a 46rem measure-capped
8
- document column.
9
-
10
- Scroll the frame: the active contents entry tracks the reading line (`aria-current="location"` + the
11
- leading marker + a heavier weight), and the rail stays pinned at
12
- `--legal-document-toc-inset-block-start`.
@@ -1,83 +0,0 @@
1
- import { useState } from "react";
2
- import { CenteredShell, Flex, LegalDocumentShell, Topbar } from "@godxjp/ui/layout";
3
- import { Button, Logo, Text } from "@godxjp/ui/general";
4
- import { AppSettingPicker } from "@godxjp/ui/navigation";
5
-
6
- import { TERMS_JA } from "../_data";
7
-
8
- /**
9
- * Viewport fixture — 1440×900 (desktop).
10
- *
11
- * Reference geometry: the shell is wider than 56rem, so the contents become a STICKY rail on the
12
- * start side, spanning the header / body / footer rows, beside a 46rem measure-capped column.
13
- * The rail stays in view for the whole scroll; the active entry tracks the reading line.
14
- */
15
- export default function Demo() {
16
- const [activeSection, setActiveSection] = useState("acceptance");
17
-
18
- return (
19
- <CenteredShell
20
- width="lg"
21
- topbar={
22
- <Topbar
23
- start={
24
- <Flex align="center" gap="sm">
25
- <Logo glyph="G" />
26
- <Text weight="medium">GodX ID</Text>
27
- </Flex>
28
- }
29
- end={<AppSettingPicker kind="locale" />}
30
- />
31
- }
32
- footer={
33
- <Text size="xs" tone="muted">
34
- 2026 GodX 株式会社
35
- </Text>
36
- }
37
- >
38
- <LegalDocumentShell
39
- title="利用規約"
40
- version="2.4"
41
- effectiveDate="2026-04-01"
42
- summary="本規約は、GodX ID および連携する各サービスの利用条件を定めるものです。ご利用の前に必ずお読みください。"
43
- contentsLabel="目次"
44
- activeSection={activeSection}
45
- onActiveSectionChange={setActiveSection}
46
- sections={TERMS_JA.map((section) => ({
47
- id: section.id,
48
- title: section.title,
49
- content: (
50
- <Flex direction="col" gap="sm">
51
- {section.paragraphs.map((paragraph) => (
52
- <Text as="p" key={paragraph}>
53
- {paragraph}
54
- </Text>
55
- ))}
56
- </Flex>
57
- ),
58
- }))}
59
- documentNavigation={
60
- <Flex direction="col" gap="xs" role="group" aria-label="法的文書">
61
- <Button variant="secondary" size="sm" fullWidth aria-current="page">
62
- 利用規約
63
- </Button>
64
- <Button variant="ghost" size="sm" fullWidth>
65
- プライバシーポリシー
66
- </Button>
67
- <Button variant="ghost" size="sm" fullWidth>
68
- Cookie ポリシー
69
- </Button>
70
- </Flex>
71
- }
72
- footerAction={
73
- <Flex gap="sm" wrap>
74
- <Button size="sm">同意する</Button>
75
- <Button size="sm" variant="outline">
76
- PDF をダウンロード
77
- </Button>
78
- </Flex>
79
- }
80
- />
81
- </CenteredShell>
82
- );
83
- }
@@ -1,22 +0,0 @@
1
- ---
2
- title: Viewport 390x844
3
- viewport: 390x844
4
- ---
5
-
6
- ## Documented mobile behaviour
7
-
8
- Below the **56rem** container threshold the shell collapses to one column and the DOM order is
9
- exactly the reading order:
10
-
11
- 1. document header (`h1` · version · `<time>` effective date · summary)
12
- 2. **contents** — a static compact block
13
- 3. the sections
14
- 4. `footerAction`
15
-
16
- The rail is **deliberately not sticky and not height-capped** at this size: pinning a 8-item contents
17
- list on a 390×844 screen costs more vertical space than it saves, and a height-capped inner scroller
18
- inside a page scroller is a known touch-scroll trap. The entries stay real anchors with the same
19
- `--legal-document-scroll-offset` and the same focus handoff, so tapping one jumps to — and focuses —
20
- the section.
21
-
22
- Nothing here is a media query: the same rules apply to a 56rem-narrow pane on a large screen.