@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,247 +0,0 @@
1
- import { useState } from "react";
2
- import { Plus } from "lucide-react";
3
-
4
- import { Button, Text } from "@godxjp/ui/general";
5
- import {
6
- SearchInput,
7
- Select,
8
- SelectContent,
9
- SelectItem,
10
- SelectTrigger,
11
- SelectValue,
12
- } from "@godxjp/ui/data-entry";
13
- import { Flex, PageContainer } from "@godxjp/ui/layout";
14
- import { FilterBar, FilterBarGroup } from "@godxjp/ui/navigation";
15
-
16
- const STATUSES = [
17
- { value: "all", label: "All statuses" },
18
- { value: "active", label: "Active" },
19
- { value: "paused", label: "Paused" },
20
- ];
21
-
22
- const MODEL_STATUSES = [
23
- { value: "active", label: "有効" },
24
- { value: "invited", label: "招待中" },
25
- { value: "suspended", label: "停止" },
26
- ];
27
-
28
- const MODEL_ROLES = [
29
- { value: "member", label: "Thành viên" },
30
- { value: "manager", label: "Quản lý" },
31
- ];
32
-
33
- /** FilterBar — domain-neutral list filtering with consumer-owned state and clear behavior. */
34
- export default function Demo() {
35
- const [query, setQuery] = useState("");
36
- const [status, setStatus] = useState("all");
37
- const [department, setDepartment] = useState("all");
38
- const [approval, setApproval] = useState("all");
39
- const [period, setPeriod] = useState("all");
40
- const hasActiveFilters = query !== "" || status !== "all";
41
-
42
- // Typed model — ALL state is consumer data; the bar only renders it.
43
- const [modelQuery, setModelQuery] = useState("田中");
44
- const [modelStatus, setModelStatus] = useState("active");
45
- const [modelRole, setModelRole] = useState("");
46
- const modelChips = [
47
- ...(modelQuery !== "" ? [{ value: "q", label: `検索: ${modelQuery}` }] : []),
48
- ...(modelStatus !== ""
49
- ? [
50
- {
51
- value: "status",
52
- label: `状態: ${MODEL_STATUSES.find((s) => s.value === modelStatus)?.label ?? modelStatus}`,
53
- },
54
- ]
55
- : []),
56
- ...(modelRole !== ""
57
- ? [
58
- {
59
- value: "role",
60
- label: `Vai trò: ${MODEL_ROLES.find((r) => r.value === modelRole)?.label ?? modelRole}`,
61
- },
62
- ]
63
- : []),
64
- ];
65
- const removeModelChip = (value: string) => {
66
- if (value === "q") setModelQuery("");
67
- if (value === "status") setModelStatus("");
68
- if (value === "role") setModelRole("");
69
- };
70
- const clearModelFilters = () => {
71
- setModelQuery("");
72
- setModelStatus("");
73
- setModelRole("");
74
- };
75
- const modelResultCount = modelChips.length === 0 ? 128 : 42 - modelChips.length * 11;
76
-
77
- return (
78
- <PageContainer
79
- title="FilterBar"
80
- subtitle="Search, labelled filters, active state, consumer-owned reset, and both responsive overflow strategies"
81
- >
82
- <Flex direction="col" gap="lg">
83
- {/* Typed model — search/filters/chips/reset/result-count/actions as DATA.
84
- The bar owns layout, token widths, chip lifecycle and keyboard order; the page owns
85
- every piece of state. Remove a chip, reset, or pick a filter and watch the chips row
86
- and the localized result count follow. */}
87
- <Flex direction="col" gap="xs">
88
- <Text size="xs" tone="muted">
89
- typed model · search + filters + chips + reset + result count + actions, all
90
- consumer-controlled data
91
- </Text>
92
- <FilterBar
93
- search={{
94
- value: modelQuery,
95
- onValueChange: setModelQuery,
96
- placeholder: "氏名・メールで検索",
97
- ariaLabel: "メンバーを検索",
98
- }}
99
- filters={[
100
- {
101
- value: "status",
102
- label: "ステータス",
103
- options: MODEL_STATUSES,
104
- selected: modelStatus,
105
- onSelectedChange: setModelStatus,
106
- placeholder: "すべて",
107
- },
108
- {
109
- value: "role",
110
- label: "Vai trò",
111
- options: MODEL_ROLES,
112
- selected: modelRole,
113
- onSelectedChange: setModelRole,
114
- placeholder: "Tất cả",
115
- },
116
- ]}
117
- chips={modelChips}
118
- onChipRemove={removeModelChip}
119
- onClear={clearModelFilters}
120
- hasActiveFilters={modelChips.length > 0}
121
- resultCount={modelResultCount}
122
- actions={
123
- <Button size="sm">
124
- <Plus aria-hidden="true" />
125
- メンバーを追加
126
- </Button>
127
- }
128
- />
129
- </Flex>
130
-
131
- {/* error — the ONE sentence that says why a filter set was refused, and the reason this
132
- page has an example at all: `.ui-filter-bar-error` was painted with the destructive
133
- FILL tier (2.95:1 on dark, gh#612) and NO route rendered it, so no sweep could ever
134
- have caught that. Static, not behind a submit: a surface that needs an interaction is
135
- a surface `check:contrast` does not measure. */}
136
- <Flex direction="col" gap="xs">
137
- <Text size="xs" tone="muted">
138
- error · role=&quot;alert&quot; line under the bar, painted from the TEXT tier
139
- </Text>
140
- <FilterBar
141
- search={{
142
- value: modelQuery,
143
- onValueChange: setModelQuery,
144
- placeholder: "氏名・メールで検索",
145
- ariaLabel: "メンバーを検索",
146
- }}
147
- error="期間の開始日が終了日より後です。条件を修正してください。"
148
- />
149
- </Flex>
150
-
151
- {/* overflow="wrap" (default) — stacked below 640px, wrapping rows above. */}
152
- <Flex direction="col" gap="xs">
153
- <Text size="xs" tone="muted">
154
- overflow=&quot;wrap&quot; (default) · a small filter set wraps onto extra rows
155
- </Text>
156
- <FilterBar
157
- hasActiveFilters={hasActiveFilters}
158
- onClear={() => {
159
- setQuery("");
160
- setStatus("all");
161
- }}
162
- >
163
- <SearchInput
164
- aria-label="Search records"
165
- placeholder="Search records"
166
- value={query}
167
- onSearch={setQuery}
168
- />
169
- {/* controlId makes the visible caption the Select's real <label>. */}
170
- <FilterBarGroup label="Status" controlId="fb-status">
171
- <Select value={status} onValueChange={setStatus}>
172
- <SelectTrigger id="fb-status">
173
- <SelectValue />
174
- </SelectTrigger>
175
- <SelectContent>
176
- {STATUSES.map((s) => (
177
- <SelectItem key={s.value} value={s.value}>
178
- {s.label}
179
- </SelectItem>
180
- ))}
181
- </SelectContent>
182
- </Select>
183
- </FilterBarGroup>
184
- </FilterBar>
185
- </Flex>
186
-
187
- {/* overflow="scroll" — one bounded inline-scrolling row at >= 640px. The long JA/EN/VI
188
- captions are the point: with `wrap` this same set becomes a three-row strip. */}
189
- <Flex direction="col" gap="xs">
190
- <Text size="xs" tone="muted">
191
- overflow=&quot;scroll&quot; · many filters with long JA/EN/VI labels stay on ONE bounded
192
- row (still stacked below 640px)
193
- </Text>
194
- <FilterBar
195
- overflow="scroll"
196
- hasActiveFilters={department !== "all" || approval !== "all" || period !== "all"}
197
- onClear={() => {
198
- setDepartment("all");
199
- setApproval("all");
200
- setPeriod("all");
201
- }}
202
- >
203
- <FilterBarGroup label="部署(すべての拠点を含む)" controlId="fb-department">
204
- <Select value={department} onValueChange={setDepartment}>
205
- <SelectTrigger id="fb-department">
206
- <SelectValue />
207
- </SelectTrigger>
208
- <SelectContent>
209
- <SelectItem value="all">すべての部署</SelectItem>
210
- <SelectItem value="warehouse">倉庫</SelectItem>
211
- </SelectContent>
212
- </Select>
213
- </FilterBarGroup>
214
- <FilterBarGroup
215
- label="Trạng thái phê duyệt của toàn bộ phòng ban"
216
- controlId="fb-approval"
217
- >
218
- <Select value={approval} onValueChange={setApproval}>
219
- <SelectTrigger id="fb-approval">
220
- <SelectValue />
221
- </SelectTrigger>
222
- <SelectContent>
223
- <SelectItem value="all">Tất cả trạng thái</SelectItem>
224
- <SelectItem value="pending">Chờ phê duyệt</SelectItem>
225
- </SelectContent>
226
- </Select>
227
- </FilterBarGroup>
228
- <FilterBarGroup
229
- label="Reporting period including carried-over adjustments"
230
- controlId="fb-period"
231
- >
232
- <Select value={period} onValueChange={setPeriod}>
233
- <SelectTrigger id="fb-period">
234
- <SelectValue />
235
- </SelectTrigger>
236
- <SelectContent>
237
- <SelectItem value="all">All periods</SelectItem>
238
- <SelectItem value="month">This month</SelectItem>
239
- </SelectContent>
240
- </Select>
241
- </FilterBarGroup>
242
- </FilterBar>
243
- </Flex>
244
- </Flex>
245
- </PageContainer>
246
- );
247
- }
@@ -1,86 +0,0 @@
1
- import { Text } from "@godxjp/ui/general";
2
- import { Flex, PageContainer } from "@godxjp/ui/layout";
3
- import { MegaMenu, type MegaMenuItemProp } from "@godxjp/ui/navigation";
4
- import { ShieldCheck, Users } from "lucide-react";
5
-
6
- /**
7
- * MegaMenu — ONE panel, open, and nothing else on the page.
8
- *
9
- * A separate frame from `mega-menu.tsx` on purpose. An open panel is an OVERLAY: it is
10
- * `position: fixed` so that `Topbar`'s `overflow: clip` slots and `Card`'s `overflow: hidden` do
11
- * not clip it away, which means an always-open panel paints over whatever is beneath it. On a
12
- * page of demo cards that is a measurement hazard — the open panel covers the next card and every
13
- * sweep of that card reads the panel instead. So the open state lives here, alone, where it is
14
- * the subject rather than the obstruction.
15
- *
16
- * This is the edge case page: a column with an icon and a description beside a bare one, a
17
- * disabled row, a 71-character unbreakable identifier, and CJK beside Latin in the same column.
18
- */
19
- const ITEMS: MegaMenuItemProp[] = [
20
- {
21
- key: "products",
22
- label: "製品",
23
- panel: {
24
- groups: [
25
- {
26
- key: "core",
27
- label: "コア業務",
28
- icon: <Users />,
29
- description: "毎日使う基幹アプリ。人事と給与はひとつの従業員台帳を共有します。",
30
- links: [
31
- {
32
- key: "hr",
33
- label: "人事管理 / HR",
34
- href: "/hr",
35
- icon: <Users />,
36
- description: "従業員台帳、異動履歴、組織図",
37
- },
38
- { key: "payroll", label: "給与計算 / Payroll", href: "/payroll" },
39
- ],
40
- },
41
- {
42
- key: "addons",
43
- label: "アドオン",
44
- links: [
45
- { key: "attendance", label: "勤怠管理", href: "/attendance" },
46
- { key: "workflow", label: "ワークフロー", href: "/workflow" },
47
- { key: "eol", label: "提供終了予定のモジュール", href: "/eol", disabled: true },
48
- ],
49
- },
50
- {
51
- key: "platform",
52
- label: "Platform",
53
- icon: <ShieldCheck />,
54
- links: [
55
- { key: "sso", label: "SSO / SAML", href: "/sso" },
56
- {
57
- key: "webhook",
58
- label: "webhookEndpointConfigurationForOutboundPayrollNotificationsV2",
59
- href: "/webhooks",
60
- description: "エンドポイント設定",
61
- },
62
- ],
63
- },
64
- ],
65
- footer: (
66
- <Text tone="muted" size="sm">
67
- すべての製品と価格は製品一覧ページでご覧いただけます。
68
- </Text>
69
- ),
70
- },
71
- },
72
- { key: "pricing", label: "料金", href: "/pricing" },
73
- ];
74
-
75
- export default function MegaMenuPanelDoc() {
76
- return (
77
- <PageContainer
78
- title="MegaMenu · 開いたパネル"
79
- subtitle="1 つの nav、パネルは開いたまま · アイコンと説明のある列 / 素の列 / 無効な行 / 71 文字の識別子"
80
- >
81
- <Flex direction="col" gap="lg">
82
- <MegaMenu label="開いたパネルの例" items={ITEMS} defaultOpen="products" value="payroll" />
83
- </Flex>
84
- </PageContainer>
85
- );
86
- }
@@ -1,254 +0,0 @@
1
- import { useState } from "react";
2
- import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display";
3
- import { Text } from "@godxjp/ui/general";
4
- import { Flex, PageContainer } from "@godxjp/ui/layout";
5
- import { MegaMenu, type MegaMenuItemProp } from "@godxjp/ui/navigation";
6
- import {
7
- BookOpen,
8
- Building2,
9
- Calculator,
10
- CreditCard,
11
- FileText,
12
- LifeBuoy,
13
- ShieldCheck,
14
- Users,
15
- } from "lucide-react";
16
-
17
- /**
18
- * MegaMenu — the primary site navigation whose top-level items disclose a full-width panel.
19
- *
20
- * WAI-ARIA APG **Disclosure Navigation with Top-Level Links**, not Menubar: a bar of links to
21
- * PLACES is not a menu of COMMANDS, and `role="menu"` would promise assistive technology an
22
- * application menu. That is also why this is not `DropdownMenu` plus a token — `DropdownMenu` is
23
- * `role="menu"` by construction.
24
- *
25
- * The cards below are deliberately NOT tidy. Each one is an edge a real site hits on day one and a
26
- * demo page usually hides: a panel with forty links beside a panel with one, a 71-character
27
- * unbreakable label, CJK beside Latin, a group carrying an icon and a description beside a bare
28
- * column, and the narrow layout where the panel has nowhere to go.
29
- */
30
-
31
- /** Forty links, which is the size at which a panel stops being a list and starts being a screen. */
32
- const FORTY = Array.from({ length: 40 }, (_, index) => ({
33
- key: `report-${index + 1}`,
34
- label: `レポート ${String(index + 1).padStart(2, "0")}`,
35
- href: `/reports/${index + 1}`,
36
- }));
37
-
38
- /** The bar every other card varies. CJK labels beside Latin ones, on purpose. */
39
- const ITEMS: MegaMenuItemProp[] = [
40
- {
41
- key: "products",
42
- label: "製品",
43
- icon: <Building2 />,
44
- panel: {
45
- groups: [
46
- {
47
- key: "core",
48
- label: "コア業務",
49
- icon: <Users />,
50
- description: "毎日使う基幹アプリ。人事と給与はひとつの従業員台帳を共有します。",
51
- links: [
52
- {
53
- key: "hr",
54
- label: "人事管理 / HR",
55
- href: "/hr",
56
- icon: <Users />,
57
- description: "従業員台帳、異動履歴、組織図",
58
- },
59
- {
60
- key: "payroll",
61
- label: "給与計算 / Payroll",
62
- href: "/payroll",
63
- icon: <Calculator />,
64
- description: "月次締め、賞与、年末調整",
65
- },
66
- {
67
- key: "expense",
68
- label: "経費精算 / Expenses",
69
- href: "/expense",
70
- icon: <CreditCard />,
71
- description: "申請から振込まで",
72
- },
73
- ],
74
- },
75
- {
76
- // A BARE column beside the decorated one above: no icon, no description, no heading
77
- // beyond the label. Both shapes have to look deliberate side by side.
78
- key: "addons",
79
- label: "アドオン",
80
- links: [
81
- { key: "attendance", label: "勤怠管理", href: "/attendance" },
82
- { key: "workflow", label: "ワークフロー", href: "/workflow" },
83
- { key: "mynumber", label: "マイナンバー管理", href: "/mynumber" },
84
- { key: "eol", label: "提供終了予定のモジュール", href: "/eol", disabled: true },
85
- ],
86
- },
87
- {
88
- key: "platform",
89
- label: "Platform",
90
- icon: <ShieldCheck />,
91
- links: [
92
- { key: "sso", label: "SSO / SAML", href: "/sso" },
93
- { key: "audit", label: "Audit log", href: "/audit" },
94
- {
95
- // 71 characters, no space, no hyphen — a real webhook identifier pasted into a nav.
96
- // It must WRAP inside its column, never widen the panel past the viewport.
97
- key: "webhook",
98
- label: "webhookEndpointConfigurationForOutboundPayrollNotificationsV2",
99
- href: "/webhooks",
100
- description: "エンドポイント設定",
101
- },
102
- ],
103
- },
104
- ],
105
- footer: (
106
- <Text tone="muted" size="sm">
107
- すべての製品と価格は製品一覧ページでご覧いただけます。
108
- </Text>
109
- ),
110
- },
111
- },
112
- {
113
- key: "reports",
114
- label: "レポート",
115
- icon: <FileText />,
116
- panel: {
117
- groups: [
118
- { key: "all", label: "標準レポート (40)", links: FORTY.slice(0, 20) },
119
- { key: "more", label: "続き", links: FORTY.slice(20) },
120
- ],
121
- },
122
- },
123
- {
124
- key: "support",
125
- label: "Support",
126
- icon: <LifeBuoy />,
127
- panel: {
128
- // ONE link. The narrowest panel a consumer will ever build, and it must not look broken
129
- // beside the forty-link one above.
130
- groups: [
131
- {
132
- key: "contact",
133
- label: "お問い合わせ",
134
- links: [{ key: "contact-us", label: "サポートに連絡する", href: "/support" }],
135
- },
136
- ],
137
- },
138
- },
139
- { key: "docs", label: "ドキュメント", href: "/docs", icon: <BookOpen /> },
140
- { key: "pricing", label: "料金", href: "/pricing" },
141
- ];
142
-
143
- export default function MegaMenuDoc() {
144
- const [route, setRoute] = useState("payroll");
145
-
146
- return (
147
- <PageContainer
148
- title="MegaMenu"
149
- subtitle="APG Disclosure Navigation · 全幅パネル · roving tabindex · hover intent · 狭い画面ではアコーディオン"
150
- >
151
- <Flex direction="col" gap="lg">
152
- {/* 1 · IN A REAL BAR — the component where it actually lives. */}
153
- <Card>
154
- <CardHeader>
155
- <CardTitle level={2}>サイトのヘッダー · ロゴの隣に置く</CardTitle>
156
- <CardDescription>
157
- バーのふるまい(roving tabindex・aria-expanded・Escape で戻る)はすべて `MegaMenu`
158
- が持ちます。現在のルートは `value` で渡し、`aria-current=&quot;page&quot;`
159
- としてバーとパネルの両方に出ます。
160
- <br />
161
- `Topbar` のスロットには入れないでください。実測した理由が 2
162
- つあります。`topbar-center` は約 1280px 未満で `display: none` になるのでノート PC
163
- の幅でナビゲーションごと消え、`topbar-start` は `overflow: clip` かつ `flex-wrap:
164
- nowrap` の 1 行なので、狭い画面で縦に開く アコーディオンが行からはみ出します(375px で
165
- 58 要素がビューポート外)。電話幅のサイトナビは バーの中ではなく `Sheet`
166
- の中に置く、というのが実サイトの答えです。
167
- </CardDescription>
168
- </CardHeader>
169
- <CardContent>
170
- <Flex align="center" gap="md">
171
- <Text weight="semibold">GodX</Text>
172
- <MegaMenu
173
- label="メインナビゲーション"
174
- items={ITEMS}
175
- value={route}
176
- onValueChange={setRoute}
177
- />
178
- </Flex>
179
- </CardContent>
180
- </Card>
181
-
182
- {/* 2 · THE EDGES — one link beside forty, an unbreakable token, CJK beside Latin. */}
183
- <Card>
184
- <CardHeader>
185
- <CardTitle level={2}>端 · 1 件のパネルと 40 件のパネル</CardTitle>
186
- <CardDescription>
187
- 「レポート」は 40 件、「Support」は 1 件。40
188
- 件のパネルは列に折り返して高さを抑え、それでも入り切らなければブロック方向にスクロールします。「Platform」列の
189
- 71 文字の webhook
190
- 識別子は列の中で折り返し、バーやパネルをビューポートの外へ広げません。
191
- </CardDescription>
192
- </CardHeader>
193
- <CardContent>
194
- <MegaMenu label="端の例" items={ITEMS} />
195
- </CardContent>
196
- </Card>
197
-
198
- {/* 3 · HOVER INTENT — the mode antd defaults to, and the diagonal it has to survive. */}
199
- <Card>
200
- <CardHeader>
201
- <CardTitle level={2}>triggerAction=&quot;hover&quot; · 斜めに動くマウス</CardTitle>
202
- <CardDescription>
203
- Ant Design の `triggerSubMenuAction`。トリガーから離れただけでは閉じません —
204
- 閉じるのは nav 全体からポインタが出たときだけで、それも `closeDelay`(既定 100ms、antd
205
- の `subMenuCloseDelay`
206
- と同じ)の猶予があります。だから「製品」から斜め下のリンクへ一直線に動けます。クリックでも開くので、タッチ端末で行き止まりになりません。
207
- </CardDescription>
208
- </CardHeader>
209
- <CardContent>
210
- <MegaMenu label="ホバーの例" items={ITEMS} triggerAction="hover" size="sm" />
211
- </CardContent>
212
- </Card>
213
-
214
- {/* 4 · NARROW — the same disclosure, in flow. */}
215
- <Card>
216
- <CardHeader>
217
- <CardTitle level={2}>
218
- 狭い画面 · 同じ disclosure がそのままアコーディオンになる
219
- </CardTitle>
220
- <CardDescription>
221
- 全幅パネルは 375px では行き場がありません。768px
222
- 未満ではバーが縦に積み、パネルは自分のトリガーの真下にインフローで開きます。DOM もARIA
223
- も同じ(`aria-expanded` / `aria-controls`)で、Escape もそのまま効きます。Menubar
224
- ではなく Disclosure を選んだ配当がこれです。ブラウザを 768px
225
- より狭くして確かめてください。
226
- </CardDescription>
227
- </CardHeader>
228
- <CardContent>
229
- <MegaMenu label="狭い画面の例" items={ITEMS} size="lg" />
230
- </CardContent>
231
- </Card>
232
-
233
- {/* 5 · WHAT IT IS NOT. */}
234
- <Card>
235
- <CardHeader>
236
- <CardTitle level={2}>これは DropdownMenu ではない</CardTitle>
237
- <CardDescription>
238
- `DropdownMenu` は `role=&quot;menu&quot;` /
239
- `role=&quot;menuitem&quot;`(コマンドのメニュー)です。リンクの集まりにこれを使うと、スクリーンリーダーはアプリケーションメニューとして読み上げ、Tab
240
- はウィジェット全体から出てしまいます。これがメガメニューの典型的な a11y
241
- 欠陥で、このコンポーネントが存在する理由です。操作(削除・名前の変更)には
242
- `DropdownMenu`、場所への移動には `MegaMenu` を使ってください。
243
- </CardDescription>
244
- </CardHeader>
245
- <CardContent>
246
- <Text tone="muted" size="sm">
247
- 現在のルート: {route}
248
- </Text>
249
- </CardContent>
250
- </Card>
251
- </Flex>
252
- </PageContainer>
253
- );
254
- }