@godxjp/ui 31.31.8 → 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.
- package/README.md +102 -121
- package/agent/START-HERE.md +10 -10
- package/agent/components/Accordion.json +2 -2
- package/agent/components/AccountChip.json +1 -1
- package/agent/components/Actions.json +1 -1
- package/agent/components/Activity.json +2 -2
- package/agent/components/Affix.json +1 -1
- package/agent/components/Alert.json +22 -6
- package/agent/components/AlertDialog.json +8 -1
- package/agent/components/Anchor.json +4 -3
- package/agent/components/AppLauncher.json +2 -2
- package/agent/components/AppProvider.json +19 -11
- package/agent/components/AppSettingPicker.json +18 -2
- package/agent/components/AppShell.json +4 -5
- package/agent/components/AreaChart.json +0 -1
- package/agent/components/AspectRatio.json +2 -2
- package/agent/components/Attachments.json +3 -3
- package/agent/components/AuthAccountSummary.json +1 -1
- package/agent/components/AuthDivider.json +1 -1
- package/agent/components/AuthExpiryProvider.json +0 -1
- package/agent/components/AuthFooter.json +2 -2
- package/agent/components/AuthIdentity.json +3 -3
- package/agent/components/AuthStack.json +1 -1
- package/agent/components/Avatar.json +2 -12
- package/agent/components/Badge.json +1 -1
- package/agent/components/BarChart.json +0 -1
- package/agent/components/BranchScopePicker.json +1 -1
- package/agent/components/Breadcrumb.json +1 -1
- package/agent/components/Button.json +3 -3
- package/agent/components/Calendar.json +1 -1
- package/agent/components/Card.json +2 -2
- package/agent/components/CardBar.json +0 -1
- package/agent/components/CardContent.json +0 -1
- package/agent/components/Carousel.json +4 -3
- package/agent/components/Cascader.json +1 -1
- package/agent/components/CenteredShell.json +78 -17
- package/agent/components/ChatBubble.json +3 -3
- package/agent/components/ChatBubbleList.json +3 -3
- package/agent/components/ChatComposer.json +3 -3
- package/agent/components/ChatSuggestion.json +3 -3
- package/agent/components/Checkbox.json +1 -1
- package/agent/components/CheckboxGroup.json +0 -1
- package/agent/components/CodeBlock.json +1 -1
- package/agent/components/Collapsible.json +4 -4
- package/agent/components/ColorPicker.json +1 -1
- package/agent/components/Command.json +5 -5
- package/agent/components/CommandPalette.json +1 -1
- package/agent/components/CompactBarTrend.json +1 -1
- package/agent/components/Conversations.json +3 -3
- package/agent/components/CredentialReveal.json +1 -1
- package/agent/components/DataState.json +2 -2
- package/agent/components/DataTable.json +1 -1
- package/agent/components/DatePicker.json +1 -1
- package/agent/components/Descriptions.json +1 -1
- package/agent/components/Dialog.json +2 -2
- package/agent/components/DraggablePanel.json +5 -4
- package/agent/components/DropdownMenu.json +1 -1
- package/agent/components/EmojiPicker.json +3 -2
- package/agent/components/EmptyState.json +1 -1
- package/agent/components/ErrorSurface.json +3 -3
- package/agent/components/FeatureList.json +1 -1
- package/agent/components/Field.json +0 -1
- package/agent/components/Flex.json +34 -4
- package/agent/components/FloatButton.json +6 -5
- package/agent/components/Form.json +1 -1
- package/agent/components/FormErrors.json +0 -1
- package/agent/components/FormField.json +6 -6
- package/agent/components/FormFieldArray.json +0 -1
- package/agent/components/FormFieldControl.json +0 -1
- package/agent/components/FormRoot.json +1 -1
- package/agent/components/Heading.json +3 -0
- package/agent/components/Icon.json +1 -1
- package/agent/components/Image.json +7 -4
- package/agent/components/InfiniteQueryState.json +1 -1
- package/agent/components/Input.json +1 -1
- package/agent/components/InputOTP.json +2 -2
- package/agent/components/Label.json +3 -3
- package/agent/components/LegalDocumentShell.json +5 -4
- package/agent/components/Legend.json +1 -1
- package/agent/components/LineChart.json +0 -1
- package/agent/components/Link.json +0 -1
- package/agent/components/ListRow.json +1 -1
- package/agent/components/Logo.json +5 -4
- package/agent/components/Marquee.json +4 -3
- package/agent/components/Masonry.json +4 -3
- package/agent/components/MasterDetail.json +1 -1
- package/agent/components/MegaMenu.json +4 -3
- package/agent/components/MobileShell.json +4 -4
- package/agent/components/NavList.json +1 -1
- package/agent/components/NumberInput.json +1 -1
- package/agent/components/OrgChart.json +4 -3
- package/agent/components/OrgSwitcher.json +1 -1
- package/agent/components/OverlayPortalProvider.json +0 -1
- package/agent/components/PageContainer.json +3 -3
- package/agent/components/PageCover.json +3 -2
- package/agent/components/Pagination.json +1 -1
- package/agent/components/PasswordInput.json +1 -1
- package/agent/components/PasswordStrength.json +1 -1
- package/agent/components/PermissionMatrix.json +1 -1
- package/agent/components/PieChart.json +0 -1
- package/agent/components/Popover.json +31 -6
- package/agent/components/PrefetchLink.json +1 -1
- package/agent/components/Progress.json +1 -1
- package/agent/components/Prose.json +1 -1
- package/agent/components/QrCode.json +1 -1
- package/agent/components/Radio.json +0 -1
- package/agent/components/RadioGroup.json +2 -2
- package/agent/components/RangeTimeline.json +2 -1
- package/agent/components/Rating.json +1 -1
- package/agent/components/RecordPicker.json +1 -1
- package/agent/components/ResizablePanel.json +1 -1
- package/agent/components/ResponsiveGrid.json +2 -2
- package/agent/components/Reveal.json +3 -3
- package/agent/components/ScrollArea.json +2 -2
- package/agent/components/SearchInput.json +1 -1
- package/agent/components/Segmented.json +1 -1
- package/agent/components/Select.json +7 -5
- package/agent/components/Separator.json +1 -1
- package/agent/components/ServiceCatalogCta.json +0 -1
- package/agent/components/ServiceLauncherCard.json +1 -1
- package/agent/components/ServiceRolePanel.json +1 -1
- package/agent/components/Sheet.json +5 -5
- package/agent/components/Sidebar.json +1 -1
- package/agent/components/Skeleton.json +26 -12
- package/agent/components/Slider.json +2 -2
- package/agent/components/SortableList.json +3 -2
- package/agent/components/SplitPane.json +1 -1
- package/agent/components/StatCard.json +1 -1
- package/agent/components/Steps.json +1 -1
- package/agent/components/Swatch.json +1 -1
- package/agent/components/Switch.json +1 -1
- package/agent/components/Table.json +1 -1
- package/agent/components/Tabs.json +3 -3
- package/agent/components/Text.json +5 -1
- package/agent/components/TextDiff.json +5 -4
- package/agent/components/Textarea.json +1 -1
- package/agent/components/ThemeScope.json +1 -1
- package/agent/components/ThoughtChain.json +3 -3
- package/agent/components/TimePicker.json +1 -1
- package/agent/components/Timeline.json +1 -1
- package/agent/components/TimelineGrid.json +5 -4
- package/agent/components/Toaster.json +0 -1
- package/agent/components/Toggle.json +3 -3
- package/agent/components/ToggleGroup.json +1 -1
- package/agent/components/Toolbar.json +10 -3
- package/agent/components/Tooltip.json +9 -9
- package/agent/components/Topbar.json +1 -1
- package/agent/components/TopbarItem.json +1 -1
- package/agent/components/Transfer.json +2 -2
- package/agent/components/Tree.json +1 -1
- package/agent/components/TreeSelect.json +1 -1
- package/agent/components/TwoFactorSetup.json +1 -1
- package/agent/components/Upload.json +1 -1
- package/agent/components/UploadCropDialog.json +1 -1
- package/agent/components/Welcome.json +3 -3
- package/agent/components/formatDate.json +2 -2
- package/agent/components/inertiaUpload.json +0 -1
- package/agent/components/useZodForm.json +0 -1
- package/agent/components-index.json +80 -154
- package/agent/components.json +541 -1737
- package/agent/index.json +10 -10
- package/agent/llms.txt +9 -9
- package/agent/patterns/account-recovery-settings.json +1 -1
- package/agent/patterns/auth-recovery-panels.json +2 -2
- package/agent/patterns/error-pages.json +1 -1
- package/agent/patterns/pricing-plans.json +17 -0
- package/agent/patterns-index.json +17 -1
- package/agent/patterns.json +21 -4
- package/agent/rules.json +30 -65
- package/agent/tokens.json +27 -57
- package/agent/vocabulary.json +3 -3
- package/dist/app/app-provider.d.ts +5 -3
- package/dist/app/app-provider.js +47 -12
- package/dist/app/date-format-labels.d.ts +3 -1
- package/dist/app/date-format-labels.js +2 -4
- package/dist/app/date-formats.d.ts +21 -2
- package/dist/app/date-formats.js +51 -2
- package/dist/app/index.d.ts +3 -1
- package/dist/app/index.js +5 -0
- package/dist/app/locales.d.ts +58 -3
- package/dist/app/locales.js +134 -8
- package/dist/app/preset.d.ts +25 -0
- package/dist/app/preset.js +10 -0
- package/dist/app/request-headers.d.ts +3 -3
- package/dist/app/request-headers.js +19 -10
- package/dist/app/settings-scope.d.ts +54 -0
- package/dist/app/settings-scope.js +46 -0
- package/dist/app/tenant-theme.js +8 -3
- package/dist/app/time-format-labels.d.ts +4 -1
- package/dist/app/time-format-labels.js +7 -1
- package/dist/app/types.d.ts +10 -2
- package/dist/app/use-formatting.d.ts +1 -1
- package/dist/components/admin/index.d.ts +1 -1
- package/dist/components/admin/index.js +1 -1
- package/dist/components/data-display/accordion.d.ts +51 -1
- package/dist/components/data-display/accordion.js +247 -1
- package/dist/components/data-display/avatar.d.ts +16 -1
- package/dist/components/data-display/avatar.js +109 -1
- package/dist/components/data-display/credential-reveal.d.ts +9 -2
- package/dist/components/data-display/credential-reveal.js +156 -1
- package/dist/components/data-display/image.js +5 -3
- package/dist/components/data-display/index.d.ts +0 -21
- package/dist/components/data-display/index.js +1 -43
- package/dist/components/data-display/popover.d.ts +15 -3
- package/dist/components/data-display/popover.js +168 -2
- package/dist/components/data-entry/branch-scope-picker.d.ts +1 -1
- package/dist/components/data-entry/index.d.ts +5 -12
- package/dist/components/data-entry/index.js +11 -12
- package/dist/components/data-entry/input-otp.d.ts +48 -2
- package/dist/components/data-entry/input-otp.js +94 -1
- package/dist/components/data-entry/number-input.d.ts +1 -1
- package/dist/components/data-entry/password-input.d.ts +38 -2
- package/dist/components/data-entry/password-input.js +56 -1
- package/dist/components/data-entry/rating.d.ts +38 -2
- package/dist/components/data-entry/rating.js +127 -1
- package/dist/components/data-entry/segmented.d.ts +94 -2
- package/dist/components/data-entry/segmented.js +104 -1
- package/dist/components/{ui/tag-input.d.ts → data-entry/select-tags-inline.d.ts} +7 -4
- package/dist/components/{ui/tag-input.js → data-entry/select-tags-inline.js} +4 -4
- package/dist/components/data-entry/select.js +4 -0
- package/dist/components/data-entry/toggle-group.d.ts +108 -2
- package/dist/components/data-entry/toggle-group.js +189 -1
- package/dist/components/data-entry/toggle.d.ts +86 -2
- package/dist/components/data-entry/toggle.js +153 -2
- package/dist/components/feedback/alert.d.ts +5 -3
- package/dist/components/feedback/alert.js +14 -2
- package/dist/components/feedback/index.d.ts +2 -6
- package/dist/components/feedback/index.js +1 -13
- package/dist/components/feedback/skeleton.d.ts +4 -17
- package/dist/components/feedback/skeleton.js +3 -40
- package/dist/components/general/index.d.ts +2 -4
- package/dist/components/general/index.js +1 -6
- package/dist/components/general/typography.d.ts +4 -58
- package/dist/components/general/typography.js +7 -141
- package/dist/components/layout/aspect-ratio.d.ts +24 -1
- package/dist/components/layout/aspect-ratio.js +18 -1
- package/dist/components/layout/auth-divider.js +1 -1
- package/dist/components/layout/auth-identity.js +6 -2
- package/dist/components/layout/centered-shell.d.ts +13 -8
- package/dist/components/layout/centered-shell.js +43 -1
- package/dist/components/layout/flex.d.ts +1 -1
- package/dist/components/layout/flex.js +73 -1
- package/dist/components/layout/index.d.ts +1 -13
- package/dist/components/layout/index.js +0 -12
- package/dist/components/layout/separator.d.ts +25 -2
- package/dist/components/layout/separator.js +71 -1
- package/dist/components/navigation/{app-setting-toggle.d.ts → app-setting-cycle.d.ts} +3 -4
- package/dist/components/navigation/{app-setting-toggle.js → app-setting-cycle.js} +3 -3
- package/dist/components/navigation/app-setting-picker.d.ts +6 -2
- package/dist/components/navigation/app-setting-picker.js +20 -2
- package/dist/components/navigation/index.d.ts +3 -11
- package/dist/components/navigation/index.js +1 -9
- package/dist/components/navigation/tabs.js +1 -1
- package/dist/components/ui/carousel.d.ts +1 -1
- package/dist/components/ui/carousel.js +1 -1
- package/dist/components/ui/index.d.ts +11 -5
- package/dist/components/ui/index.js +5 -5
- package/dist/contracts/measurement.json +2 -2
- package/dist/email/brand-mark.d.ts +3 -2
- package/dist/email/brand-mark.js +1 -1
- package/dist/email/tokens.generated.d.ts +6 -6
- package/dist/email/tokens.generated.js +6 -6
- package/dist/i18n/locale-tags.d.ts +25 -0
- package/dist/i18n/locale-tags.js +59 -0
- package/dist/i18n/translate.d.ts +20 -3
- package/dist/i18n/translate.js +25 -14
- package/dist/i18n/use-translation.d.ts +3 -3
- package/dist/i18n/use-translation.js +4 -2
- package/dist/{components/navigation → lab}/anchor.d.ts +2 -2
- package/dist/{components/navigation → lab}/anchor.js +5 -5
- package/dist/{components/data-display → lab}/carousel.js +2 -2
- package/dist/{components/layout → lab}/draggable-panel.d.ts +8 -8
- package/dist/{components/layout → lab}/draggable-panel.js +2 -2
- package/dist/{components/data-entry → lab}/emoji-picker.d.ts +2 -2
- package/dist/{components/data-entry → lab}/emoji-picker.js +6 -6
- package/dist/{components/general → lab}/float-button.d.ts +8 -8
- package/dist/{components/general → lab}/float-button.js +7 -7
- package/dist/lab/index.d.ts +39 -0
- package/dist/lab/index.js +48 -0
- package/dist/{components/layout → lab}/legal-document-shell.d.ts +2 -2
- package/dist/{components/layout → lab}/legal-document-shell.js +4 -4
- package/dist/{components/data-display → lab}/marquee.d.ts +5 -5
- package/dist/{components/data-display → lab}/marquee.js +5 -5
- package/dist/{components/layout → lab}/masonry.d.ts +2 -2
- package/dist/{components/layout → lab}/masonry.js +3 -3
- package/dist/{components/navigation → lab}/mega-menu.d.ts +4 -4
- package/dist/{components/navigation → lab}/mega-menu.js +2 -2
- package/dist/{components/data-display → lab}/org-chart.d.ts +2 -2
- package/dist/{components/data-display → lab}/org-chart.js +4 -4
- package/dist/{components/layout → lab}/page-cover.d.ts +2 -2
- package/dist/{components/layout → lab}/page-cover.js +2 -2
- package/dist/{components/data-display → lab}/range-timeline.d.ts +1 -1
- package/dist/{components/data-display → lab}/range-timeline.js +6 -6
- package/dist/{components/data-entry → lab}/sortable-list.d.ts +2 -2
- package/dist/{components/data-entry → lab}/sortable-list.js +3 -3
- package/dist/{components/data-display → lab}/text-diff.d.ts +3 -3
- package/dist/{components/data-display → lab}/text-diff.js +4 -4
- package/dist/{components/data-display → lab}/timeline-grid.d.ts +2 -2
- package/dist/{components/data-display → lab}/timeline-grid.js +1 -1
- package/dist/lib/control-styles.js +1 -1
- package/dist/lib/datetime/format.js +20 -6
- package/dist/lib/datetime/sync.d.ts +6 -2
- package/dist/lib/datetime/sync.js +14 -18
- package/dist/lib/platform.d.ts +1 -1
- package/dist/props/components/app.prop.d.ts +28 -13
- package/dist/props/components/data-display.prop.d.ts +19 -29
- package/dist/props/components/feedback.prop.d.ts +15 -44
- package/dist/props/components/general.prop.d.ts +2 -64
- package/dist/props/components/index.d.ts +9 -1
- package/dist/props/components/layout.prop.d.ts +41 -57
- package/dist/props/registry.d.ts +48 -101
- package/dist/props/registry.js +45 -129
- package/dist/props/vocabulary/index.d.ts +1 -1
- package/dist/props/vocabulary/interaction.prop.d.ts +3 -12
- package/dist/styles/alert-layout.css +0 -29
- package/dist/styles/data-display-layout.css +14 -22
- package/dist/styles/fonts/OFL.txt +93 -0
- package/dist/styles/form-layout.css +4 -0
- package/dist/styles/index.css +0 -2
- package/dist/styles/layers.json +44 -179
- package/dist/styles/text-layout.css +0 -15
- package/dist/styles.css +2 -0
- package/dist/themes/godx.css +43 -0
- package/dist/themes/godx.d.ts +13 -0
- package/dist/themes/godx.js +12 -0
- package/dist/tokens/components/feedback.css +0 -6
- package/dist/tokens/derived.css +23 -22
- package/dist/tokens/foundation.css +4 -6
- package/docs/COMPOSITION-VS-COMPONENT.md +58 -33
- package/docs/CONSUMER-RULES.md +1 -1
- package/docs/CUSTOMER-THEMING.md +17 -53
- package/docs/migrations/v32.md +98 -0
- package/package.json +58 -19
- package/scripts/_agent-setup.mjs +54 -3
- package/scripts/brand-accent.generated.mjs +15 -2
- package/scripts/cli.mjs +36 -11
- package/scripts/codemod.mjs +522 -0
- package/scripts/consumer-rule.md +21 -43
- package/scripts/postinstall.mjs +10 -47
- package/scripts/prune-css.mjs +1 -1
- package/scripts/ui-audit.mjs +5 -2
- package/dist/components/data-display/chat-bubble.d.ts +0 -30
- package/dist/components/data-display/chat-bubble.js +0 -229
- package/dist/components/data-display/hover-card.d.ts +0 -1
- package/dist/components/data-display/hover-card.js +0 -7
- package/dist/components/data-display/thought-chain.d.ts +0 -42
- package/dist/components/data-display/thought-chain.js +0 -177
- package/dist/components/data-display/thumbnail.d.ts +0 -37
- package/dist/components/data-display/thumbnail.js +0 -20
- package/dist/components/data-display/welcome.d.ts +0 -26
- package/dist/components/data-display/welcome.js +0 -37
- package/dist/components/data-entry/attachments.d.ts +0 -19
- package/dist/components/data-entry/attachments.js +0 -366
- package/dist/components/data-entry/chat-composer.d.ts +0 -51
- package/dist/components/data-entry/chat-composer.js +0 -200
- package/dist/components/data-entry/chat-suggestion.d.ts +0 -28
- package/dist/components/data-entry/chat-suggestion.js +0 -309
- package/dist/components/data-entry/tag-input.d.ts +0 -2
- package/dist/components/data-entry/tag-input.js +0 -5
- package/dist/components/feedback/banner.d.ts +0 -21
- package/dist/components/feedback/banner.js +0 -19
- package/dist/components/feedback/callout.d.ts +0 -23
- package/dist/components/feedback/callout.js +0 -42
- package/dist/components/layout/auth-shell.d.ts +0 -10
- package/dist/components/layout/auth-shell.js +0 -42
- package/dist/components/layout/space-compact.d.ts +0 -65
- package/dist/components/layout/space-compact.js +0 -52
- package/dist/components/navigation/conversations.d.ts +0 -39
- package/dist/components/navigation/conversations.js +0 -371
- package/dist/components/ui/accordion.d.ts +0 -51
- package/dist/components/ui/accordion.js +0 -254
- package/dist/components/ui/aspect-ratio.d.ts +0 -24
- package/dist/components/ui/aspect-ratio.js +0 -21
- package/dist/components/ui/avatar.d.ts +0 -16
- package/dist/components/ui/avatar.js +0 -115
- package/dist/components/ui/credential-reveal.d.ts +0 -9
- package/dist/components/ui/credential-reveal.js +0 -160
- package/dist/components/ui/hover-card.d.ts +0 -47
- package/dist/components/ui/hover-card.js +0 -205
- package/dist/components/ui/input-otp.d.ts +0 -48
- package/dist/components/ui/input-otp.js +0 -101
- package/dist/components/ui/password-input.d.ts +0 -38
- package/dist/components/ui/password-input.js +0 -60
- package/dist/components/ui/rating.d.ts +0 -38
- package/dist/components/ui/rating.js +0 -131
- package/dist/components/ui/segmented.d.ts +0 -94
- package/dist/components/ui/segmented.js +0 -108
- package/dist/components/ui/separator.d.ts +0 -25
- package/dist/components/ui/separator.js +0 -74
- package/dist/components/ui/toggle-group.d.ts +0 -108
- package/dist/components/ui/toggle-group.js +0 -194
- package/dist/components/ui/toggle.d.ts +0 -86
- package/dist/components/ui/toggle.js +0 -156
- package/docs/CANONICAL-CONTRACTS.md +0 -206
- package/docs/COMPONENTS.md +0 -163
- package/docs/DATETIME.md +0 -78
- package/docs/DEVELOPMENT.md +0 -269
- package/docs/FRAME-A11Y-CI.md +0 -287
- package/docs/FRAME-COVERAGE-LEDGER.md +0 -123
- package/docs/FRAME-COVERAGE-REPORT.md +0 -228
- package/docs/FRAME-COVERAGE-STANDARD.md +0 -65
- package/docs/FRAME-COVERAGE.md +0 -29
- package/docs/MEASUREMENT-CONTRACT.md +0 -109
- package/docs/PROPS-REGISTRY.md +0 -61
- package/docs/PROPS-VOCABULARY.md +0 -100
- package/docs/REGISTRY.md +0 -70
- package/docs/TESTING.md +0 -107
- package/docs/THEME-API-COVERAGE.md +0 -538
- package/docs/WHAT-BELONGS-HERE.md +0 -179
- package/docs/asset-modules.d.ts +0 -53
- package/docs/assets/cover-terrain.svg +0 -6
- package/docs/assets/portrait-amber.svg +0 -5
- package/docs/assets/portrait-clay.svg +0 -5
- package/docs/assets/portrait-indigo.svg +0 -5
- package/docs/assets/portrait-iris.svg +0 -5
- package/docs/assets/portrait-moss.svg +0 -5
- package/docs/assets/portrait-plum.svg +0 -5
- package/docs/assets/portrait-slate.svg +0 -5
- package/docs/assets/service-mark-rose.svg +0 -6
- package/docs/assets/service-mark-teal.svg +0 -5
- package/docs/assets/shot-landscape.svg +0 -12
- package/docs/assets/shot-portrait.svg +0 -10
- package/docs/assets/tcgm/card-1.svg +0 -1
- package/docs/assets/tcgm/card-2.svg +0 -1
- package/docs/assets/tcgm/card-3.svg +0 -1
- package/docs/assets/tcgm/card-4.svg +0 -1
- package/docs/assets/tcgm/card-5.svg +0 -1
- package/docs/assets/tcgm/card-6.svg +0 -1
- package/docs/assets/tcgm/hero-prism.svg +0 -1
- package/docs/assets/tcgm/scene-1.svg +0 -1
- package/docs/assets/tcgm/scene-2.svg +0 -1
- package/docs/assets/tcgm/scene-3.svg +0 -1
- package/docs/assets/tcgm/scene-4.svg +0 -1
- package/docs/assets/tcgm/scene-5.svg +0 -1
- package/docs/assets/tcgm/tcgm-lockup-color.svg +0 -1
- package/docs/assets/tcgm/tcgm-symbol-color.svg +0 -1
- package/docs/charts/cjk-category-axis.tsx +0 -81
- package/docs/charts/compact-bar-trend.tsx +0 -327
- package/docs/charts/size-tiers.tsx +0 -192
- package/docs/data-display/accordion.tsx +0 -99
- package/docs/data-display/avatar.tsx +0 -502
- package/docs/data-display/badge.tsx +0 -335
- package/docs/data-display/card/examples/detail-panel.tsx +0 -106
- package/docs/data-display/card/examples/tab-list.tsx +0 -97
- package/docs/data-display/card/index.md +0 -3
- package/docs/data-display/card/index.tsx +0 -390
- package/docs/data-display/carousel.tsx +0 -160
- package/docs/data-display/charts.tsx +0 -278
- package/docs/data-display/chat-bubble.tsx +0 -397
- package/docs/data-display/code-block.tsx +0 -188
- package/docs/data-display/collapsible.tsx +0 -162
- package/docs/data-display/credential-reveal.tsx +0 -148
- package/docs/data-display/data-table/examples/antd-parity.tsx +0 -257
- package/docs/data-display/data-table/examples/approval-queue.tsx +0 -212
- package/docs/data-display/data-table/examples/grid-features.tsx +0 -158
- package/docs/data-display/data-table/examples/list-page.tsx +0 -175
- package/docs/data-display/data-table/examples/selectable-inbox.tsx +0 -113
- package/docs/data-display/data-table/examples/server-paged.tsx +0 -179
- package/docs/data-display/data-table/examples/striped-list.tsx +0 -173
- package/docs/data-display/data-table/index.md +0 -9
- package/docs/data-display/data-table/index.tsx +0 -407
- package/docs/data-display/descriptions.tsx +0 -263
- package/docs/data-display/empty-state.tsx +0 -164
- package/docs/data-display/feature-list.tsx +0 -159
- package/docs/data-display/hover-card.tsx +0 -181
- package/docs/data-display/image.tsx +0 -170
- package/docs/data-display/legend.tsx +0 -158
- package/docs/data-display/list-row.tsx +0 -441
- package/docs/data-display/markdown.tsx +0 -86
- package/docs/data-display/marquee.tsx +0 -254
- package/docs/data-display/org-chart.tsx +0 -165
- package/docs/data-display/permission-matrix.tsx +0 -188
- package/docs/data-display/popover-touch.tsx +0 -27
- package/docs/data-display/popover.tsx +0 -331
- package/docs/data-display/progress.tsx +0 -162
- package/docs/data-display/prose.tsx +0 -169
- package/docs/data-display/qr-code.tsx +0 -68
- package/docs/data-display/scroll-area.tsx +0 -420
- package/docs/data-display/service-launcher-card.tsx +0 -445
- package/docs/data-display/stat-card.tsx +0 -354
- package/docs/data-display/swatch.tsx +0 -107
- package/docs/data-display/table.tsx +0 -362
- package/docs/data-display/text-diff.tsx +0 -89
- package/docs/data-display/thought-chain.tsx +0 -176
- package/docs/data-display/thumbnail.tsx +0 -128
- package/docs/data-display/timeline-grid.tsx +0 -119
- package/docs/data-display/timeline.tsx +0 -671
- package/docs/data-display/touch-actions.tsx +0 -36
- package/docs/data-display/tree.tsx +0 -724
- package/docs/data-display/welcome.tsx +0 -115
- package/docs/data-entry/attachments.tsx +0 -160
- package/docs/data-entry/block-editor.tsx +0 -105
- package/docs/data-entry/branch-scope-picker.tsx +0 -128
- package/docs/data-entry/calendar.tsx +0 -226
- package/docs/data-entry/cascader.tsx +0 -380
- package/docs/data-entry/chat-composer.tsx +0 -619
- package/docs/data-entry/chat-suggestion.tsx +0 -301
- package/docs/data-entry/checkbox.tsx +0 -256
- package/docs/data-entry/color-picker.tsx +0 -189
- package/docs/data-entry/command-palette.tsx +0 -179
- package/docs/data-entry/command.tsx +0 -341
- package/docs/data-entry/country-picker-recipe.tsx +0 -175
- package/docs/data-entry/date-picker.tsx +0 -452
- package/docs/data-entry/emoji-picker.tsx +0 -35
- package/docs/data-entry/form/examples/employee-settings.tsx +0 -267
- package/docs/data-entry/form/examples/invoice-form.tsx +0 -387
- package/docs/data-entry/form-dynamic-fields.tsx +0 -199
- package/docs/data-entry/form-field/examples/a11y-contract.tsx +0 -242
- package/docs/data-entry/form-field/examples/create-form.tsx +0 -107
- package/docs/data-entry/form-field/index.md +0 -8
- package/docs/data-entry/form-field/index.tsx +0 -337
- package/docs/data-entry/form-inertia.tsx +0 -80
- package/docs/data-entry/form-root.tsx +0 -112
- package/docs/data-entry/form.tsx +0 -1498
- package/docs/data-entry/input-otp.tsx +0 -258
- package/docs/data-entry/input.tsx +0 -796
- package/docs/data-entry/label.tsx +0 -102
- package/docs/data-entry/markdown-editor.tsx +0 -69
- package/docs/data-entry/number-input.tsx +0 -279
- package/docs/data-entry/password-input.tsx +0 -102
- package/docs/data-entry/password-strength.tsx +0 -99
- package/docs/data-entry/radio-group.tsx +0 -316
- package/docs/data-entry/rating.tsx +0 -91
- package/docs/data-entry/record-picker.tsx +0 -209
- package/docs/data-entry/search-input.tsx +0 -121
- package/docs/data-entry/segmented-in-filter-row.tsx +0 -60
- package/docs/data-entry/segmented.tsx +0 -300
- package/docs/data-entry/select-async-contracts.tsx +0 -108
- package/docs/data-entry/select-matrix.tsx +0 -209
- package/docs/data-entry/select.tsx +0 -547
- package/docs/data-entry/slider.tsx +0 -212
- package/docs/data-entry/sortable-list.tsx +0 -76
- package/docs/data-entry/switch.tsx +0 -314
- package/docs/data-entry/tag-input.tsx +0 -145
- package/docs/data-entry/textarea.tsx +0 -249
- package/docs/data-entry/time-picker.tsx +0 -187
- package/docs/data-entry/time-range-picker.tsx +0 -55
- package/docs/data-entry/toggle-count.tsx +0 -348
- package/docs/data-entry/toggle-group.tsx +0 -438
- package/docs/data-entry/toggle.tsx +0 -217
- package/docs/data-entry/transfer.tsx +0 -115
- package/docs/data-entry/tree-select.tsx +0 -204
- package/docs/data-entry/upload-crop-dialog.tsx +0 -109
- package/docs/data-entry/upload.tsx +0 -310
- package/docs/feedback/alert-dialog.tsx +0 -270
- package/docs/feedback/alert.tsx +0 -248
- package/docs/feedback/auth-expiry.tsx +0 -104
- package/docs/feedback/banner.tsx +0 -183
- package/docs/feedback/callout.tsx +0 -220
- package/docs/feedback/danger-confirm.tsx +0 -91
- package/docs/feedback/dialog-touch.tsx +0 -24
- package/docs/feedback/dialog.tsx +0 -373
- package/docs/feedback/sheet.tsx +0 -510
- package/docs/feedback/skeleton.tsx +0 -168
- package/docs/feedback/toast.tsx +0 -135
- package/docs/feedback/tooltip.tsx +0 -171
- package/docs/feedback/two-factor-setup.tsx +0 -68
- package/docs/foundation/_email-specimen.ts +0 -274
- package/docs/foundation/_theme-editor-scope.ts +0 -222
- package/docs/foundation/colors.tsx +0 -207
- package/docs/foundation/density.tsx +0 -242
- package/docs/foundation/email-tokens.tsx +0 -323
- package/docs/foundation/radius-shadow.tsx +0 -154
- package/docs/foundation/spacing.tsx +0 -216
- package/docs/foundation/theme-editor.tsx +0 -654
- package/docs/foundation/typography.tsx +0 -147
- package/docs/general/actions.tsx +0 -175
- package/docs/general/activity.tsx +0 -289
- package/docs/general/button/examples/destructive-confirm.tsx +0 -90
- package/docs/general/button/examples/form-actions.tsx +0 -87
- package/docs/general/button/examples/toolbar.tsx +0 -160
- package/docs/general/button/index.md +0 -16
- package/docs/general/button/index.tsx +0 -236
- package/docs/general/float-button.tsx +0 -133
- package/docs/general/icon.tsx +0 -217
- package/docs/general/logo.tsx +0 -194
- package/docs/general/reveal.tsx +0 -309
- package/docs/general/typography.tsx +0 -542
- package/docs/i18n/messages/en.json +0 -1715
- package/docs/i18n/messages/ja.json +0 -1708
- package/docs/i18n/messages/vi.json +0 -1708
- package/docs/layout/account-chip.tsx +0 -72
- package/docs/layout/admin-collection.tsx +0 -122
- package/docs/layout/affix.tsx +0 -209
- package/docs/layout/app-launcher.tsx +0 -211
- package/docs/layout/app-shell-arrangements.tsx +0 -225
- package/docs/layout/app-shell-narrow-bar.tsx +0 -205
- package/docs/layout/app-shell-states.tsx +0 -171
- package/docs/layout/app-shell.tsx +0 -395
- package/docs/layout/aspect-ratio.tsx +0 -135
- package/docs/layout/auth-account-summary.tsx +0 -103
- package/docs/layout/auth-divider.tsx +0 -28
- package/docs/layout/auth-footer.tsx +0 -37
- package/docs/layout/auth-identity.tsx +0 -70
- package/docs/layout/auth-recovery/examples/mfa-challenge.md +0 -41
- package/docs/layout/auth-recovery/examples/mfa-challenge.tsx +0 -254
- package/docs/layout/auth-recovery/examples/mobile-390.md +0 -25
- package/docs/layout/auth-recovery/examples/mobile-390.tsx +0 -82
- package/docs/layout/auth-recovery/examples/password-recovery.md +0 -24
- package/docs/layout/auth-recovery/examples/password-recovery.tsx +0 -197
- package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.md +0 -27
- package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.tsx +0 -156
- package/docs/layout/auth-recovery/index.md +0 -140
- package/docs/layout/auth-recovery/index.tsx +0 -96
- package/docs/layout/auth-shell-context.tsx +0 -103
- package/docs/layout/auth-shell-device.tsx +0 -112
- package/docs/layout/auth-shell-registration.tsx +0 -338
- package/docs/layout/auth-shell-variants.tsx +0 -143
- package/docs/layout/auth-shell.tsx +0 -59
- package/docs/layout/auth-stack.tsx +0 -40
- package/docs/layout/centered-shell.tsx +0 -102
- package/docs/layout/draggable-panel.tsx +0 -127
- package/docs/layout/error-surface/examples/application-403.tsx +0 -84
- package/docs/layout/error-surface/examples/application-404.tsx +0 -77
- package/docs/layout/error-surface/examples/system-500.tsx +0 -47
- package/docs/layout/error-surface/examples/system-503.tsx +0 -48
- package/docs/layout/error-surface/index.md +0 -153
- package/docs/layout/error-surface/index.tsx +0 -239
- package/docs/layout/flex.tsx +0 -444
- package/docs/layout/legal-document-shell/_data.ts +0 -110
- package/docs/layout/legal-document-shell/examples/desktop-1440.md +0 -12
- package/docs/layout/legal-document-shell/examples/desktop-1440.tsx +0 -83
- package/docs/layout/legal-document-shell/examples/mobile-390.md +0 -22
- package/docs/layout/legal-document-shell/examples/mobile-390.tsx +0 -70
- package/docs/layout/legal-document-shell/examples/tablet-1024.md +0 -3
- package/docs/layout/legal-document-shell/examples/tablet-1024.tsx +0 -84
- package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.md +0 -18
- package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.tsx +0 -61
- package/docs/layout/legal-document-shell/index.md +0 -51
- package/docs/layout/legal-document-shell/index.tsx +0 -101
- package/docs/layout/masonry.tsx +0 -291
- package/docs/layout/master-detail.tsx +0 -390
- package/docs/layout/mobile-shell.tsx +0 -106
- package/docs/layout/nav-list.tsx +0 -584
- package/docs/layout/org-switcher.tsx +0 -131
- package/docs/layout/page-container.tsx +0 -1020
- package/docs/layout/page-cover.tsx +0 -56
- package/docs/layout/resizable-panel.tsx +0 -419
- package/docs/layout/responsive-grid.tsx +0 -403
- package/docs/layout/separator.tsx +0 -327
- package/docs/layout/service-role-panel.tsx +0 -144
- package/docs/layout/sidebar.tsx +0 -689
- package/docs/layout/space-compact.tsx +0 -202
- package/docs/layout/split-pane.tsx +0 -532
- package/docs/layout/topbar-item.tsx +0 -233
- package/docs/layout/topbar.tsx +0 -360
- package/docs/navigation/anchor.tsx +0 -295
- package/docs/navigation/app-setting-picker.tsx +0 -178
- package/docs/navigation/app-setting-toggle.tsx +0 -111
- package/docs/navigation/breadcrumb.tsx +0 -207
- package/docs/navigation/card-tabs.tsx +0 -344
- package/docs/navigation/conversations.tsx +0 -176
- package/docs/navigation/dropdown-menu.tsx +0 -345
- package/docs/navigation/filter-bar.tsx +0 -247
- package/docs/navigation/mega-menu-panel.tsx +0 -86
- package/docs/navigation/mega-menu.tsx +0 -254
- package/docs/navigation/pagination.tsx +0 -293
- package/docs/navigation/steps.tsx +0 -315
- package/docs/navigation/tabs-rtl.tsx +0 -28
- package/docs/navigation/tabs.tsx +0 -755
- package/docs/navigation/toolbar.tsx +0 -347
- package/docs/providers/app-provider.tsx +0 -191
- package/docs/providers/format-date.tsx +0 -230
- package/docs/providers/theme-scope.tsx +0 -186
- package/docs/query/button-refetch.tsx +0 -161
- package/docs/query/data-state.tsx +0 -262
- package/docs/query/infinite-query-state.tsx +0 -97
- package/docs/query/mutation-feedback.tsx +0 -128
- package/docs/query/touch-actions.tsx +0 -68
- package/docs/react-router/prefetch-link.tsx +0 -262
- package/docs/roadmap/ai-chat-components.md +0 -206
- package/docs/roadmap/antd-parity.md +0 -155
- package/docs/roadmap/badge-tag-chip-count.md +0 -172
- package/docs/roadmap/list-masonry.md +0 -159
- package/docs/roadmap/parity-audit-data-display-feedback.md +0 -567
- package/docs/roadmap/parity-audit-data-entry.md +0 -368
- package/docs/roadmap/parity-audit-layout-navigation-general.md +0 -459
- package/docs/roadmap/parity-backlog.md +0 -77
- package/docs/roadmap/tree-components.md +0 -151
- package/docs/roadmap/website-components.md +0 -813
- package/docs/showcase/acme-portal.tsx +0 -461
- package/docs/showcase/acme-website.tsx +0 -499
- package/docs/showcase/caimono-price-comparison.tsx +0 -919
- package/docs/showcase/case1-warehouse-dashboard.tsx +0 -358
- package/docs/showcase/case2-employee-me.tsx +0 -438
- package/docs/showcase/case3-approval-workflow.tsx +0 -531
- package/docs/showcase/case4-login.tsx +0 -312
- package/docs/showcase/case5-shift-calendar.tsx +0 -702
- package/docs/showcase/case6-agency-handy.tsx +0 -1120
- package/docs/showcase/futurelastic-web.tsx +0 -441
- package/docs/showcase/marketing-page.tsx +0 -895
- package/docs/showcase/org-switcher.tsx +0 -320
- package/docs/showcase/permission-matrix.tsx +0 -354
- package/docs/showcase/public-landing.tsx +0 -210
- package/docs/showcase/settings-account-sections.tsx +0 -559
- package/docs/showcase/settings-security-mfa.tsx +0 -145
- package/docs/showcase/table-approval-queue.tsx +0 -199
- package/docs/showcase/table-bulk-actions.tsx +0 -468
- package/docs/showcase/table-compact-kintone.tsx +0 -438
- package/docs/showcase/table-conditional-format.tsx +0 -367
- package/docs/showcase/table-crud-list.tsx +0 -544
- package/docs/showcase/table-density.tsx +0 -349
- package/docs/showcase/table-expandable-rows.tsx +0 -496
- package/docs/showcase/table-filter-chips.tsx +0 -468
- package/docs/showcase/table-footer-totals.tsx +0 -328
- package/docs/showcase/table-grouped-subtotals.tsx +0 -398
- package/docs/showcase/table-master-detail.tsx +0 -482
- package/docs/showcase/table-pagination.tsx +0 -409
- package/docs/showcase/table-states.tsx +0 -371
- package/docs/showcase/table-sticky-columns.tsx +0 -377
- package/docs/showcase/table-tree-rows.tsx +0 -451
- package/docs/showcase/table-view-tabs.tsx +0 -488
- package/docs/showcase/tcgm-website.tsx +0 -1047
- package/docs/showcase/tenant-brand-color.tsx +0 -338
- package/docs/showcase/theme-customization.tsx +0 -1292
- package/docs/showcase/theme-lab.tsx +0 -2125
- package/docs/themes/flat.css +0 -466
- package/docs/themes/glassmorphism.css +0 -960
- package/docs/themes/index.ts +0 -219
- package/docs/themes/neubrutalism.css +0 -481
- /package/dist/components/navigation/{filter-bar.d.ts → toolbar.d.ts} +0 -0
- /package/dist/components/navigation/{filter-bar.js → toolbar.js} +0 -0
- /package/dist/{components/data-display → lab}/carousel.d.ts +0 -0
- /package/dist/{components/data-entry → lab}/emoji-data.d.ts +0 -0
- /package/dist/{components/data-entry → lab}/emoji-data.js +0 -0
- /package/dist/{components/data-display → lab}/marquee-reveal.d.ts +0 -0
- /package/dist/{components/data-display → lab}/marquee-reveal.js +0 -0
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
2
|
-
|
|
3
|
-
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display";
|
|
4
|
-
import { Form, FormField, Input, PasswordInput, RadioGroup } from "@godxjp/ui/data-entry";
|
|
5
|
-
import { Button, Logo, Text } from "@godxjp/ui/general";
|
|
6
|
-
import {
|
|
7
|
-
AuthDivider,
|
|
8
|
-
AuthFooter,
|
|
9
|
-
AuthIdentity,
|
|
10
|
-
AuthShell,
|
|
11
|
-
AuthStack,
|
|
12
|
-
Flex,
|
|
13
|
-
} from "@godxjp/ui/layout";
|
|
14
|
-
import type { AuthShellProps } from "@godxjp/ui/layout";
|
|
15
|
-
import { AppSettingPicker } from "@godxjp/ui/navigation";
|
|
16
|
-
|
|
17
|
-
type AuthShellVariant = NonNullable<AuthShellProps["variant"]>;
|
|
18
|
-
type AuthShellDensity = NonNullable<AuthShellProps["density"]>;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* AuthShell の 2 つの直交軸: `variant`(シェルの寸法)と `density`(操作要素の段)。
|
|
22
|
-
*
|
|
23
|
-
* `variant="default"` は素の中央寄せシェル、`variant="canonical"` は GoDX ID の正準寸法。
|
|
24
|
-
* `density` は独立した別軸で、既定は variant から導出されます(canonical なら compact、
|
|
25
|
-
* default なら comfortable = 44px の WCAG タッチ下限)。明示的に渡せばその導出を上書きでき、
|
|
26
|
-
* 4 通りの組み合わせがすべて成立します。
|
|
27
|
-
*
|
|
28
|
-
* このページは AuthShell を 1 つだけ描画します。AuthShell は banner / main / contentinfo の
|
|
29
|
-
* ランドマークをページ全体に張るため、比較のために 2 つ並べるとランドマークが重複し、
|
|
30
|
-
* それ自体がアクセシビリティ違反になります。そこで軸はページ内のラジオで切り替えます。
|
|
31
|
-
* 初期表示は `variant="default"` × `density="comfortable"`(=素の AuthShell そのもの)。
|
|
32
|
-
*
|
|
33
|
-
* SCR-001 の正準ログイン(preset="login")は Auth Shell ページ、preset の各フローは
|
|
34
|
-
* Auth Shell Device / Auth Shell Context / Auth Recovery ページが受け持ちます。
|
|
35
|
-
* ここに幅・余白・色の指定は 1 つもありません。すべてトークンが所有しています。
|
|
36
|
-
*/
|
|
37
|
-
export default function Demo() {
|
|
38
|
-
const [variant, setVariant] = useState<AuthShellVariant>("default");
|
|
39
|
-
const [density, setDensity] = useState<AuthShellDensity>("comfortable");
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<AuthShell
|
|
43
|
-
variant={variant}
|
|
44
|
-
density={density}
|
|
45
|
-
brand={
|
|
46
|
-
<Flex align="center" gap="sm">
|
|
47
|
-
<Logo mark="godx" tone="success" />
|
|
48
|
-
<Text weight="medium">GoDX ID</Text>
|
|
49
|
-
</Flex>
|
|
50
|
-
}
|
|
51
|
-
footer={
|
|
52
|
-
<AuthFooter
|
|
53
|
-
product="GoDX ID"
|
|
54
|
-
terms="利用規約"
|
|
55
|
-
privacy="プライバシー"
|
|
56
|
-
locale={<AppSettingPicker kind="locale" appearance="labeled" compact />}
|
|
57
|
-
/>
|
|
58
|
-
}
|
|
59
|
-
>
|
|
60
|
-
<AuthIdentity title="GoDX ID" requester="経費精算がサインインを要求しています" />
|
|
61
|
-
|
|
62
|
-
{/* preset を持たないシェルの列は子要素の間隔を持たないため、2 枚のカードの間隔は
|
|
63
|
-
ページ側の Flex gap が所有します。幅は依然としてシェルのトークンが所有します。 */}
|
|
64
|
-
<Flex direction="col" gap="md">
|
|
65
|
-
<Card>
|
|
66
|
-
<CardHeader>
|
|
67
|
-
<CardTitle level={1}>サインイン</CardTitle>
|
|
68
|
-
<CardDescription>組織アカウントの資格情報を入力してください。</CardDescription>
|
|
69
|
-
</CardHeader>
|
|
70
|
-
<CardContent>
|
|
71
|
-
<Form>
|
|
72
|
-
<AuthStack>
|
|
73
|
-
<FormField id="auth-axis-email" label="メールアドレス" layout="vertical" required>
|
|
74
|
-
<Input id="auth-axis-email" type="email" placeholder="you@example.co.jp" />
|
|
75
|
-
</FormField>
|
|
76
|
-
<FormField id="auth-axis-password" label="パスワード" layout="vertical" required>
|
|
77
|
-
<PasswordInput id="auth-axis-password" />
|
|
78
|
-
</FormField>
|
|
79
|
-
<Button fullWidth>サインイン</Button>
|
|
80
|
-
<AuthDivider label="または" />
|
|
81
|
-
<Button variant="outline" fullWidth>
|
|
82
|
-
パスキーでサインイン
|
|
83
|
-
</Button>
|
|
84
|
-
</AuthStack>
|
|
85
|
-
</Form>
|
|
86
|
-
</CardContent>
|
|
87
|
-
</Card>
|
|
88
|
-
|
|
89
|
-
{/* 軸の切り替え。上のカードの操作要素の高さとカード内の余白がその場で変わるので、
|
|
90
|
-
density がシェル全体に閉じた段であることが読み取れます。 */}
|
|
91
|
-
<Card>
|
|
92
|
-
<CardHeader>
|
|
93
|
-
<CardTitle level={2}>このページの表示軸</CardTitle>
|
|
94
|
-
<CardDescription>
|
|
95
|
-
2 つの prop は独立しています。片方を変えてももう片方は変わりません。
|
|
96
|
-
</CardDescription>
|
|
97
|
-
</CardHeader>
|
|
98
|
-
<CardContent>
|
|
99
|
-
<Form>
|
|
100
|
-
<Flex direction="col" gap="md">
|
|
101
|
-
<FormField
|
|
102
|
-
id="auth-axis-variant"
|
|
103
|
-
label="variant · シェルの寸法"
|
|
104
|
-
layout="vertical"
|
|
105
|
-
helper="canonical は GoDX ID の正準寸法、default は素の中央寄せシェル。"
|
|
106
|
-
>
|
|
107
|
-
<RadioGroup
|
|
108
|
-
orientation="horizontal"
|
|
109
|
-
value={variant}
|
|
110
|
-
onValueChange={(next) => setVariant(next as AuthShellVariant)}
|
|
111
|
-
options={[
|
|
112
|
-
{ value: "default", label: "default(既定)" },
|
|
113
|
-
{ value: "canonical", label: "canonical(正準)" },
|
|
114
|
-
]}
|
|
115
|
-
/>
|
|
116
|
-
</FormField>
|
|
117
|
-
<FormField
|
|
118
|
-
id="auth-axis-density"
|
|
119
|
-
label="density · 操作要素の段"
|
|
120
|
-
layout="vertical"
|
|
121
|
-
helper="comfortable は 44px のタッチ下限、compact は情報密度を優先した段。"
|
|
122
|
-
>
|
|
123
|
-
<RadioGroup
|
|
124
|
-
orientation="horizontal"
|
|
125
|
-
value={density}
|
|
126
|
-
onValueChange={(next) => setDensity(next as AuthShellDensity)}
|
|
127
|
-
options={[
|
|
128
|
-
{ value: "comfortable", label: "comfortable(44px)" },
|
|
129
|
-
{ value: "compact", label: "compact" },
|
|
130
|
-
]}
|
|
131
|
-
/>
|
|
132
|
-
</FormField>
|
|
133
|
-
<Text size="sm" tone="muted">
|
|
134
|
-
現在の組み合わせ: variant="{variant}" · density="{density}"
|
|
135
|
-
</Text>
|
|
136
|
-
</Flex>
|
|
137
|
-
</Form>
|
|
138
|
-
</CardContent>
|
|
139
|
-
</Card>
|
|
140
|
-
</Flex>
|
|
141
|
-
</AuthShell>
|
|
142
|
-
);
|
|
143
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Card, CardContent } from "@godxjp/ui/data-display";
|
|
2
|
-
import { FormField, Input } from "@godxjp/ui/data-entry";
|
|
3
|
-
import { Button, Text } from "@godxjp/ui/general";
|
|
4
|
-
import {
|
|
5
|
-
AuthDivider,
|
|
6
|
-
AuthFooter,
|
|
7
|
-
AuthIdentity,
|
|
8
|
-
AuthShell,
|
|
9
|
-
AuthStack,
|
|
10
|
-
Flex,
|
|
11
|
-
} from "@godxjp/ui/layout";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* SCR-001 Login visual contract. `?state=standalone|one-line|wrapped` drives the package visual
|
|
15
|
-
* test; all three keep the same card anchor without consumer CSS or fake requester data.
|
|
16
|
-
*
|
|
17
|
-
* The composition mirrors the documented consumer page exactly: NO top brand bar (the
|
|
18
|
-
* canonical SCR-001 artboard has none — the in-flow AuthIdentity mark IS the brand), a header-less
|
|
19
|
-
* `<CardContent solo>` body, `AuthFooter` as the third direct child (the login preset's third grid
|
|
20
|
-
* row), and a plain 12px text-link row like the artboard's.
|
|
21
|
-
*/
|
|
22
|
-
export default function Demo() {
|
|
23
|
-
const state = new URLSearchParams(window.location.search).get("state") ?? "one-line";
|
|
24
|
-
const requester =
|
|
25
|
-
state === "standalone"
|
|
26
|
-
? undefined
|
|
27
|
-
: state === "wrapped"
|
|
28
|
-
? "Platform console browser BFF is requesting sign in to this organization"
|
|
29
|
-
: "Attendance is requesting sign in";
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<AuthShell variant="canonical" preset="login">
|
|
33
|
-
<AuthIdentity title="GoDX ID" requester={requester} />
|
|
34
|
-
<Card>
|
|
35
|
-
<CardContent solo>
|
|
36
|
-
<AuthStack>
|
|
37
|
-
<Button fullWidth>パスキーでサインイン</Button>
|
|
38
|
-
<AuthDivider label="または" />
|
|
39
|
-
<FormField id="auth-email" label="メールアドレス" layout="vertical">
|
|
40
|
-
<Input id="auth-email" type="email" placeholder="you@example.co.jp" />
|
|
41
|
-
</FormField>
|
|
42
|
-
<Button variant="outline" fullWidth>
|
|
43
|
-
次へ
|
|
44
|
-
</Button>
|
|
45
|
-
<Flex justify="between" wrap>
|
|
46
|
-
<Text size="xs">
|
|
47
|
-
<a href="#register">アカウント登録</a>
|
|
48
|
-
</Text>
|
|
49
|
-
<Text size="xs">
|
|
50
|
-
<a href="#forgot">パスワードを忘れた</a>
|
|
51
|
-
</Text>
|
|
52
|
-
</Flex>
|
|
53
|
-
</AuthStack>
|
|
54
|
-
</CardContent>
|
|
55
|
-
</Card>
|
|
56
|
-
<AuthFooter product="GoDX ID" terms="利用規約" privacy="プライバシー" />
|
|
57
|
-
</AuthShell>
|
|
58
|
-
);
|
|
59
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display";
|
|
2
|
-
import { Field, Input } from "@godxjp/ui/data-entry";
|
|
3
|
-
import { Button } from "@godxjp/ui/general";
|
|
4
|
-
import { AuthDivider, AuthStack, PageContainer } from "@godxjp/ui/layout";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* AuthStack — canonical vertical rhythm for direct auth-card sections. The stack remains a neutral
|
|
8
|
-
* container, so labels, controls and actions retain their own semantic ownership.
|
|
9
|
-
*/
|
|
10
|
-
export default function Demo() {
|
|
11
|
-
return (
|
|
12
|
-
<PageContainer title="AuthStack" subtitle="認証カード内の12px垂直リズム">
|
|
13
|
-
<Card>
|
|
14
|
-
<CardHeader>
|
|
15
|
-
<CardTitle level={2}>メールまたはpasskey</CardTitle>
|
|
16
|
-
<CardDescription>
|
|
17
|
-
各sectionはpublic componentのままstackへ直接配置します。
|
|
18
|
-
</CardDescription>
|
|
19
|
-
</CardHeader>
|
|
20
|
-
<CardContent>
|
|
21
|
-
<AuthStack>
|
|
22
|
-
<Button fullWidth>Passkeyで続ける</Button>
|
|
23
|
-
<AuthDivider label="または" />
|
|
24
|
-
<Field id="auth-stack-email" label="メールアドレス">
|
|
25
|
-
<Input
|
|
26
|
-
id="auth-stack-email"
|
|
27
|
-
type="email"
|
|
28
|
-
autoComplete="username"
|
|
29
|
-
placeholder="you@example.com"
|
|
30
|
-
/>
|
|
31
|
-
</Field>
|
|
32
|
-
<Button variant="outline" fullWidth>
|
|
33
|
-
メールで続ける
|
|
34
|
-
</Button>
|
|
35
|
-
</AuthStack>
|
|
36
|
-
</CardContent>
|
|
37
|
-
</Card>
|
|
38
|
-
</PageContainer>
|
|
39
|
-
);
|
|
40
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Avatar,
|
|
3
|
-
AvatarFallback,
|
|
4
|
-
Card,
|
|
5
|
-
CardContent,
|
|
6
|
-
CardDescription,
|
|
7
|
-
CardHeader,
|
|
8
|
-
CardTitle,
|
|
9
|
-
} from "@godxjp/ui/data-display";
|
|
10
|
-
import { Button, Logo, Text } from "@godxjp/ui/general";
|
|
11
|
-
import { CenteredShell, Flex, ResponsiveGrid, Topbar } from "@godxjp/ui/layout";
|
|
12
|
-
import { AppSettingPicker } from "@godxjp/ui/navigation";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* CenteredShell — authenticated, no-sidebar, centred-column page shell (hosted-ID "My Page",
|
|
16
|
-
* account / self-service, standalone settings). A padded topbar with real actions reusing AppShell's
|
|
17
|
-
* chrome WITHOUT a sidebar, a width-tiered centred column that is top-aligned + scrolls, and an
|
|
18
|
-
* optional footer. Composed only from real @godxjp/ui components — zero custom CSS, no hand-rolled
|
|
19
|
-
* bar. Fills the gap between AppShell (needs a sidebar) and AuthShell (unauthenticated narrow card).
|
|
20
|
-
*/
|
|
21
|
-
export default function Demo() {
|
|
22
|
-
const services = [
|
|
23
|
-
{ id: "attendance", name: "勤怠", desc: "打刻・勤務表" },
|
|
24
|
-
{ id: "messaging", name: "チャット", desc: "社内メッセージ" },
|
|
25
|
-
{ id: "ledger", name: "会計", desc: "請求・支払" },
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<CenteredShell
|
|
30
|
-
width="md"
|
|
31
|
-
topbar={
|
|
32
|
-
<Topbar
|
|
33
|
-
start={
|
|
34
|
-
<Flex align="center" gap="sm">
|
|
35
|
-
<Logo glyph="G" />
|
|
36
|
-
<Text weight="medium">GodX ID</Text>
|
|
37
|
-
</Flex>
|
|
38
|
-
}
|
|
39
|
-
end={
|
|
40
|
-
<Flex align="center" gap="sm">
|
|
41
|
-
<AppSettingPicker kind="locale" />
|
|
42
|
-
<Button variant="ghost" size="sm">
|
|
43
|
-
<Avatar className="size-6">
|
|
44
|
-
<AvatarFallback>田</AvatarFallback>
|
|
45
|
-
</Avatar>
|
|
46
|
-
田中 太郎
|
|
47
|
-
</Button>
|
|
48
|
-
</Flex>
|
|
49
|
-
}
|
|
50
|
-
/>
|
|
51
|
-
}
|
|
52
|
-
footer={
|
|
53
|
-
<Text size="xs" tone="muted">
|
|
54
|
-
2026 GodX · プライバシー · 利用規約
|
|
55
|
-
</Text>
|
|
56
|
-
}
|
|
57
|
-
>
|
|
58
|
-
<Flex direction="col" gap="lg">
|
|
59
|
-
<Card>
|
|
60
|
-
<CardHeader>
|
|
61
|
-
<CardTitle level={1}>マイページ</CardTitle>
|
|
62
|
-
<CardDescription>アカウントとサービスの概要。</CardDescription>
|
|
63
|
-
</CardHeader>
|
|
64
|
-
<CardContent>
|
|
65
|
-
<Flex direction="col" gap="xs">
|
|
66
|
-
<Text weight="medium">田中 太郎</Text>
|
|
67
|
-
<Text size="sm" tone="muted">
|
|
68
|
-
tanaka@example.com · 組織: GodX 株式会社
|
|
69
|
-
</Text>
|
|
70
|
-
</Flex>
|
|
71
|
-
</CardContent>
|
|
72
|
-
</Card>
|
|
73
|
-
|
|
74
|
-
<Card>
|
|
75
|
-
<CardHeader>
|
|
76
|
-
<CardTitle level={2}>サービス</CardTitle>
|
|
77
|
-
<CardDescription>利用中のアプリを開きます。</CardDescription>
|
|
78
|
-
</CardHeader>
|
|
79
|
-
<CardContent>
|
|
80
|
-
<ResponsiveGrid columns={{ sm: 1, md: 3 }}>
|
|
81
|
-
{services.map((s) => (
|
|
82
|
-
<Card key={s.id}>
|
|
83
|
-
<CardContent>
|
|
84
|
-
<Flex direction="col" gap="xs">
|
|
85
|
-
<Text weight="medium">{s.name}</Text>
|
|
86
|
-
<Text size="sm" tone="muted">
|
|
87
|
-
{s.desc}
|
|
88
|
-
</Text>
|
|
89
|
-
<Button variant="outline" size="sm">
|
|
90
|
-
開く
|
|
91
|
-
</Button>
|
|
92
|
-
</Flex>
|
|
93
|
-
</CardContent>
|
|
94
|
-
</Card>
|
|
95
|
-
))}
|
|
96
|
-
</ResponsiveGrid>
|
|
97
|
-
</CardContent>
|
|
98
|
-
</Card>
|
|
99
|
-
</Flex>
|
|
100
|
-
</CenteredShell>
|
|
101
|
-
);
|
|
102
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
2
|
-
import { DraggablePanel, Flex, PageContainer } from "@godxjp/ui/layout";
|
|
3
|
-
import type { DraggablePanelPositionProp } from "@godxjp/ui/layout";
|
|
4
|
-
import {
|
|
5
|
-
Card,
|
|
6
|
-
CardContent,
|
|
7
|
-
CardDescription,
|
|
8
|
-
CardHeader,
|
|
9
|
-
CardTitle,
|
|
10
|
-
Badge,
|
|
11
|
-
Descriptions,
|
|
12
|
-
} from "@godxjp/ui/data-display";
|
|
13
|
-
import { Button, Text } from "@godxjp/ui/general";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* DraggablePanel · a floating surface the person using it can MOVE.
|
|
17
|
-
*
|
|
18
|
-
* The case it exists for: an assistant docked to a corner covers the thing the
|
|
19
|
-
* person is asking about. Drag it by the title-bar handle, or focus the handle
|
|
20
|
-
* and use the arrow keys. The position is REPORTED to the page below, never
|
|
21
|
-
* stored by the library.
|
|
22
|
-
*/
|
|
23
|
-
export default function Demo() {
|
|
24
|
-
const [position, setPosition] = useState<DraggablePanelPositionProp>({ x: 0, y: 0 });
|
|
25
|
-
const [open, setOpen] = useState(true);
|
|
26
|
-
const [pinned, setPinned] = useState(false);
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<PageContainer
|
|
30
|
-
title="DraggablePanel"
|
|
31
|
-
subtitle="floating movable surface · handle drag, arrow-key nudge, viewport-bounded"
|
|
32
|
-
>
|
|
33
|
-
<Flex direction="col" gap="lg">
|
|
34
|
-
<Card>
|
|
35
|
-
<CardHeader>
|
|
36
|
-
<CardTitle level={2}>Reported position</CardTitle>
|
|
37
|
-
<CardDescription>
|
|
38
|
-
Drag the panel by its handle, or focus the handle and press an arrow key. Hold Shift
|
|
39
|
-
for the larger step. Every frame and every nudge reports the clamped offset through
|
|
40
|
-
onPositionChange; the page below decides whether to remember it.
|
|
41
|
-
</CardDescription>
|
|
42
|
-
</CardHeader>
|
|
43
|
-
<CardContent>
|
|
44
|
-
<Flex direction="col" gap="md">
|
|
45
|
-
<Descriptions
|
|
46
|
-
items={[
|
|
47
|
-
{ label: "x", value: String(Math.round(position.x)) },
|
|
48
|
-
{ label: "y", value: String(Math.round(position.y)) },
|
|
49
|
-
]}
|
|
50
|
-
/>
|
|
51
|
-
<Flex gap="sm" wrap>
|
|
52
|
-
<Button
|
|
53
|
-
variant="outline"
|
|
54
|
-
size="sm"
|
|
55
|
-
onClick={() => {
|
|
56
|
-
setPosition({ x: 0, y: 0 });
|
|
57
|
-
}}
|
|
58
|
-
>
|
|
59
|
-
角に戻す
|
|
60
|
-
</Button>
|
|
61
|
-
<Button
|
|
62
|
-
variant="outline"
|
|
63
|
-
size="sm"
|
|
64
|
-
onClick={() => {
|
|
65
|
-
setPinned((value) => !value);
|
|
66
|
-
}}
|
|
67
|
-
>
|
|
68
|
-
{pinned ? "移動を許可" : "その場に固定"}
|
|
69
|
-
</Button>
|
|
70
|
-
<Button
|
|
71
|
-
variant="outline"
|
|
72
|
-
size="sm"
|
|
73
|
-
onClick={() => {
|
|
74
|
-
setOpen(true);
|
|
75
|
-
}}
|
|
76
|
-
>
|
|
77
|
-
パネルを開く
|
|
78
|
-
</Button>
|
|
79
|
-
</Flex>
|
|
80
|
-
</Flex>
|
|
81
|
-
</CardContent>
|
|
82
|
-
</Card>
|
|
83
|
-
|
|
84
|
-
<Card>
|
|
85
|
-
<CardHeader>
|
|
86
|
-
<CardTitle level={2}>What it is not</CardTitle>
|
|
87
|
-
<CardDescription>
|
|
88
|
-
ResizablePanel resizes panes WITHIN a layout, Sheet is pinned to an edge, and Popover
|
|
89
|
-
is anchored to its trigger. None of them can be repositioned by the viewer, which is
|
|
90
|
-
what a floating assistant needs.
|
|
91
|
-
</CardDescription>
|
|
92
|
-
</CardHeader>
|
|
93
|
-
<CardContent>
|
|
94
|
-
<Text size="sm" tone="muted">
|
|
95
|
-
The panel is a labelled region, not a dialog: it interrupts nothing, traps no focus
|
|
96
|
-
and dims no page, so the work behind it stays usable while it is open.
|
|
97
|
-
</Text>
|
|
98
|
-
</CardContent>
|
|
99
|
-
</Card>
|
|
100
|
-
</Flex>
|
|
101
|
-
|
|
102
|
-
{open ? (
|
|
103
|
-
<DraggablePanel
|
|
104
|
-
title="アシスタント"
|
|
105
|
-
placement="bottom-end"
|
|
106
|
-
width="sm"
|
|
107
|
-
disabled={pinned}
|
|
108
|
-
position={position}
|
|
109
|
-
onPositionChange={setPosition}
|
|
110
|
-
onClose={() => {
|
|
111
|
-
setOpen(false);
|
|
112
|
-
}}
|
|
113
|
-
extra={<Badge tone="info">β</Badge>}
|
|
114
|
-
>
|
|
115
|
-
<Flex direction="col" gap="sm">
|
|
116
|
-
<Text size="sm">
|
|
117
|
-
この請求書の消費税区分について質問できます。テキストは選択できます。掴むのはタイトルバーのハンドルだけです。
|
|
118
|
-
</Text>
|
|
119
|
-
<Text size="xs" tone="muted">
|
|
120
|
-
キーボード: ハンドルにフォーカスして矢印キー · Shift で大きく移動
|
|
121
|
-
</Text>
|
|
122
|
-
</Flex>
|
|
123
|
-
</DraggablePanel>
|
|
124
|
-
) : null}
|
|
125
|
-
</PageContainer>
|
|
126
|
-
);
|
|
127
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Button, Logo } from "@godxjp/ui/general";
|
|
2
|
-
import {
|
|
3
|
-
AppShell,
|
|
4
|
-
ErrorSurface,
|
|
5
|
-
Flex,
|
|
6
|
-
PageContainer,
|
|
7
|
-
Sidebar,
|
|
8
|
-
type SidebarSectionProp,
|
|
9
|
-
Topbar,
|
|
10
|
-
} from "@godxjp/ui/layout";
|
|
11
|
-
import { AppSettingPicker } from "@godxjp/ui/navigation";
|
|
12
|
-
import { BarChart3, FileText, LayoutDashboard, Users } from "lucide-react";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 403 — `mode="application"`. The failure happened INSIDE the authenticated app, so the app shell is
|
|
16
|
-
* PRESERVED: the sidebar nav, the topbar and the breadcrumb all survive, and only the page body is
|
|
17
|
-
* replaced. The user is never stranded on a chrome-less page with a single "go home" button.
|
|
18
|
-
*
|
|
19
|
-
* READ THE MODE CONTRACT: `mode="application"` does NOT make the component build a shell. It cannot
|
|
20
|
-
* — the nav sections, the product identity and the user menu are consumer-owned data. The mode says
|
|
21
|
-
* "this is what you put in AppShell's children": the surface returns just its own block, and the
|
|
22
|
-
* `AppShell` the route already renders stays mounted around it.
|
|
23
|
-
*
|
|
24
|
-
* 403 is the one status where WHY matters as much as WHAT, so both permission slots are used here:
|
|
25
|
-
* `permission` names the missing role and `organization` names the workspace the request was scoped
|
|
26
|
-
* to — that pair is what distinguishes "you need a role" from "you are in the wrong tenant". Both
|
|
27
|
-
* are semantic `<dt>/<dd>` rows whose LABELS are library-owned and localized; you pass bare values.
|
|
28
|
-
*
|
|
29
|
-
* Copy is shown inline here; in an app every string comes from the app's own `t()`.
|
|
30
|
-
*/
|
|
31
|
-
const sections: SidebarSectionProp[] = [
|
|
32
|
-
{
|
|
33
|
-
label: "業務",
|
|
34
|
-
items: [
|
|
35
|
-
{ id: "dashboard", label: "ダッシュボード", icon: LayoutDashboard },
|
|
36
|
-
{ id: "reports", label: "レポート", icon: BarChart3 },
|
|
37
|
-
{ id: "documents", label: "ドキュメント", icon: FileText },
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
{ label: "管理", items: [{ id: "users", label: "ユーザー", icon: Users }] },
|
|
41
|
-
];
|
|
42
|
-
|
|
43
|
-
export default function Demo() {
|
|
44
|
-
return (
|
|
45
|
-
<AppShell
|
|
46
|
-
sidebar={
|
|
47
|
-
<Sidebar
|
|
48
|
-
activeId="reports"
|
|
49
|
-
sections={sections}
|
|
50
|
-
onSelect={() => {}}
|
|
51
|
-
product={{ name: "GodX Console", role: "管理コンソール" }}
|
|
52
|
-
/>
|
|
53
|
-
}
|
|
54
|
-
topbar={
|
|
55
|
-
<Topbar
|
|
56
|
-
start={<Logo glyph="G" />}
|
|
57
|
-
end={
|
|
58
|
-
<Flex align="center" gap="sm">
|
|
59
|
-
<AppSettingPicker kind="locale" />
|
|
60
|
-
<Button variant="ghost" size="sm">
|
|
61
|
-
田中 太郎
|
|
62
|
-
</Button>
|
|
63
|
-
</Flex>
|
|
64
|
-
}
|
|
65
|
-
/>
|
|
66
|
-
}
|
|
67
|
-
>
|
|
68
|
-
<PageContainer
|
|
69
|
-
title="レポート"
|
|
70
|
-
breadcrumb={[{ label: "ホーム", to: "#" }, { label: "レポート" }]}
|
|
71
|
-
>
|
|
72
|
-
<ErrorSurface
|
|
73
|
-
mode="application"
|
|
74
|
-
status={403}
|
|
75
|
-
title="このページへのアクセス権限がありません"
|
|
76
|
-
description="レポートの閲覧には管理者によるロール付与が必要です。付与後に再度お試しください。"
|
|
77
|
-
permission="reports.view"
|
|
78
|
-
organization="株式会社ゴッドエックス"
|
|
79
|
-
action={<Button>ダッシュボードへ戻る</Button>}
|
|
80
|
-
/>
|
|
81
|
-
</PageContainer>
|
|
82
|
-
</AppShell>
|
|
83
|
-
);
|
|
84
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Button, Logo } from "@godxjp/ui/general";
|
|
2
|
-
import {
|
|
3
|
-
AppShell,
|
|
4
|
-
ErrorSurface,
|
|
5
|
-
Flex,
|
|
6
|
-
PageContainer,
|
|
7
|
-
Sidebar,
|
|
8
|
-
type SidebarSectionProp,
|
|
9
|
-
Topbar,
|
|
10
|
-
} from "@godxjp/ui/layout";
|
|
11
|
-
import { AppSettingPicker } from "@godxjp/ui/navigation";
|
|
12
|
-
import { BarChart3, FileText, LayoutDashboard, Users } from "lucide-react";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 404 — `mode="application"` with the optional request ID. Same preserved shell, same surface; only
|
|
16
|
-
* `status` changes, and with it the default icon (SearchX) and tone (muted — a miss is neutral, not
|
|
17
|
-
* a warning). You do not re-pick the icon or the colour per status: the status IS the input.
|
|
18
|
-
*
|
|
19
|
-
* `requestId` is a semantic metadata slot, not a paragraph you write. The surface renders it as a
|
|
20
|
-
* `<dt>/<dd>` pair with a localized "Request ID" label and a mono/tabular value, so the correlation
|
|
21
|
-
* id can be read out or copied accurately for support, and so a screen reader announces the
|
|
22
|
-
* label↔value relationship instead of a run-on sentence. Omit the prop when there is no id —
|
|
23
|
-
* metadata rows are optional and the list disappears entirely when every slot is empty.
|
|
24
|
-
*/
|
|
25
|
-
const sections: SidebarSectionProp[] = [
|
|
26
|
-
{
|
|
27
|
-
label: "業務",
|
|
28
|
-
items: [
|
|
29
|
-
{ id: "dashboard", label: "ダッシュボード", icon: LayoutDashboard },
|
|
30
|
-
{ id: "reports", label: "レポート", icon: BarChart3 },
|
|
31
|
-
{ id: "documents", label: "ドキュメント", icon: FileText },
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
{ label: "管理", items: [{ id: "users", label: "ユーザー", icon: Users }] },
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
export default function Demo() {
|
|
38
|
-
return (
|
|
39
|
-
<AppShell
|
|
40
|
-
sidebar={
|
|
41
|
-
<Sidebar
|
|
42
|
-
activeId="documents"
|
|
43
|
-
sections={sections}
|
|
44
|
-
onSelect={() => {}}
|
|
45
|
-
product={{ name: "GodX Console", role: "管理コンソール" }}
|
|
46
|
-
/>
|
|
47
|
-
}
|
|
48
|
-
topbar={
|
|
49
|
-
<Topbar
|
|
50
|
-
start={<Logo glyph="G" />}
|
|
51
|
-
end={
|
|
52
|
-
<Flex align="center" gap="sm">
|
|
53
|
-
<AppSettingPicker kind="locale" />
|
|
54
|
-
<Button variant="ghost" size="sm">
|
|
55
|
-
田中 太郎
|
|
56
|
-
</Button>
|
|
57
|
-
</Flex>
|
|
58
|
-
}
|
|
59
|
-
/>
|
|
60
|
-
}
|
|
61
|
-
>
|
|
62
|
-
<PageContainer
|
|
63
|
-
title="ドキュメント"
|
|
64
|
-
breadcrumb={[{ label: "ホーム", to: "#" }, { label: "ドキュメント" }]}
|
|
65
|
-
>
|
|
66
|
-
<ErrorSurface
|
|
67
|
-
mode="application"
|
|
68
|
-
status={404}
|
|
69
|
-
title="ページが見つかりません"
|
|
70
|
-
description="お探しのドキュメントは移動または削除された可能性があります。一覧から選び直してください。"
|
|
71
|
-
requestId="01J9Z0M7Q2K5S7WQ3T5N8V2H4B"
|
|
72
|
-
action={<Button>ドキュメント一覧へ</Button>}
|
|
73
|
-
/>
|
|
74
|
-
</PageContainer>
|
|
75
|
-
</AppShell>
|
|
76
|
-
);
|
|
77
|
-
}
|