@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
package/docs/feedback/sheet.tsx
DELETED
|
@@ -1,510 +0,0 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
2
|
-
import {
|
|
3
|
-
Sheet,
|
|
4
|
-
SheetBody,
|
|
5
|
-
SheetContent,
|
|
6
|
-
SheetDescription,
|
|
7
|
-
SheetFooter,
|
|
8
|
-
SheetHeader,
|
|
9
|
-
SheetTitle,
|
|
10
|
-
SheetTrigger,
|
|
11
|
-
useSheetResponsiveMode,
|
|
12
|
-
} from "@godxjp/ui/feedback";
|
|
13
|
-
import {
|
|
14
|
-
Badge,
|
|
15
|
-
Card,
|
|
16
|
-
CardContent,
|
|
17
|
-
CardDescription,
|
|
18
|
-
CardHeader,
|
|
19
|
-
CardTitle,
|
|
20
|
-
} from "@godxjp/ui/data-display";
|
|
21
|
-
import { Button, Text } from "@godxjp/ui/general";
|
|
22
|
-
import {
|
|
23
|
-
Form,
|
|
24
|
-
FormField,
|
|
25
|
-
Input,
|
|
26
|
-
Select,
|
|
27
|
-
SelectContent,
|
|
28
|
-
SelectItem,
|
|
29
|
-
SelectTrigger,
|
|
30
|
-
SelectValue,
|
|
31
|
-
} from "@godxjp/ui/data-entry";
|
|
32
|
-
import { Flex, PageContainer } from "@godxjp/ui/layout";
|
|
33
|
-
import { SlidersHorizontal } from "lucide-react";
|
|
34
|
-
|
|
35
|
-
/** Every branch of SheetHeader's `tone`, in the order the vocabulary declares them. */
|
|
36
|
-
const headerTones = [
|
|
37
|
-
"default",
|
|
38
|
-
"success",
|
|
39
|
-
"warning",
|
|
40
|
-
"destructive",
|
|
41
|
-
"info",
|
|
42
|
-
"muted",
|
|
43
|
-
"neutral",
|
|
44
|
-
] as const;
|
|
45
|
-
|
|
46
|
-
/** Order lines behind the non-modal sheet — they stay editable while it is open. */
|
|
47
|
-
const initialLines = [
|
|
48
|
-
{ id: "coffee", name: "ブレンドコーヒー", unitPrice: 480, quantity: 2 },
|
|
49
|
-
{ id: "sandwich", name: "ミックスサンド", unitPrice: 650, quantity: 1 },
|
|
50
|
-
{ id: "cake", name: "チーズケーキ", unitPrice: 520, quantity: 1 },
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const yen = new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" });
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Sheet · side-panel drawer (Radix Dialog). Slides in from an edge. Compose
|
|
57
|
-
* Sheet > SheetTrigger (asChild) > SheetContent(side) > SheetHeader >
|
|
58
|
-
* SheetTitle (a11y required) > scrollable body > SheetFooter.
|
|
59
|
-
*
|
|
60
|
-
* SheetFooter is a PINNED action bar: it sticks to the bottom
|
|
61
|
-
* via mt-auto, draws a full-bleed top border, and right-aligns its actions with
|
|
62
|
-
* the PRIMARY button rightmost. A destructive / clear / reset action goes
|
|
63
|
-
* far-LEFT · give THAT button className="me-auto". Never stack footer buttons
|
|
64
|
-
* full-width or center them. See cardinal rule #41 "Drawer & dialog footer layout".
|
|
65
|
-
*
|
|
66
|
-
* Fields are real FormField + Input + Select primitives · never faked with
|
|
67
|
-
* styled <span>/<div>. Composed only from real @godxjp/ui components.
|
|
68
|
-
*/
|
|
69
|
-
export default function Demo() {
|
|
70
|
-
// Card 1 · pre-opened so the pinned footer + clear-left/apply-right layout is visible at rest.
|
|
71
|
-
const [filterOpen, setFilterOpen] = useState(true);
|
|
72
|
-
const [account, setAccount] = useState("all");
|
|
73
|
-
const [status, setStatus] = useState("all");
|
|
74
|
-
const [source, setSource] = useState("all");
|
|
75
|
-
const [minAmount, setMinAmount] = useState("");
|
|
76
|
-
const [maxAmount, setMaxAmount] = useState("");
|
|
77
|
-
|
|
78
|
-
// Card 2 · quick-edit form: Cancel + Save, both right-aligned (primary rightmost).
|
|
79
|
-
const [editOpen, setEditOpen] = useState(false);
|
|
80
|
-
const [companyName, setCompanyName] = useState("株式会社サンプル");
|
|
81
|
-
const [registration, setRegistration] = useState("T1234567890123");
|
|
82
|
-
|
|
83
|
-
// Card 3 · edit with a destructive action: 削除 far-left (mr-auto), Cancel + Save right.
|
|
84
|
-
const [recordOpen, setRecordOpen] = useState(false);
|
|
85
|
-
const [memo, setMemo] = useState("4月度 経費精算");
|
|
86
|
-
|
|
87
|
-
// Card 4 · responsive detail panel. The SAME hook SheetContent uses, so the label below always
|
|
88
|
-
// reports the presentation the panel will actually render — resize the frame to 390 to see it flip.
|
|
89
|
-
const [detailOpen, setDetailOpen] = useState(false);
|
|
90
|
-
const presentation = useSheetResponsiveMode("auto");
|
|
91
|
-
|
|
92
|
-
// Card 5 · SheetHeader tone band. One panel, re-opened per branch, so only one overlay is ever
|
|
93
|
-
// mounted and the focus trap stays honest.
|
|
94
|
-
const [toneOpen, setToneOpen] = useState(false);
|
|
95
|
-
const [headerTone, setHeaderTone] = useState<(typeof headerTones)[number]>("default");
|
|
96
|
-
|
|
97
|
-
// Card 6 · non-modal sheet: the order lines behind it stay editable while it is open.
|
|
98
|
-
const [summaryOpen, setSummaryOpen] = useState(false);
|
|
99
|
-
const [lines, setLines] = useState(initialLines);
|
|
100
|
-
const total = lines.reduce((sum, line) => sum + line.unitPrice * line.quantity, 0);
|
|
101
|
-
const changeQuantity = (id: string, delta: number) => {
|
|
102
|
-
setLines((current) =>
|
|
103
|
-
current.map((line) =>
|
|
104
|
-
line.id === id ? { ...line, quantity: Math.max(0, line.quantity + delta) } : line,
|
|
105
|
-
),
|
|
106
|
-
);
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
return (
|
|
110
|
-
<PageContainer
|
|
111
|
-
title="Sheet"
|
|
112
|
-
subtitle="side-panel drawer · filters, quick-edit, detail peek (NOT a Dialog replacement)"
|
|
113
|
-
>
|
|
114
|
-
<Flex direction="col" gap="lg">
|
|
115
|
-
<Card>
|
|
116
|
-
<CardHeader>
|
|
117
|
-
<CardTitle level={2}>Advanced filter (pre-opened, side=right)</CardTitle>
|
|
118
|
-
<CardDescription>
|
|
119
|
-
The defining footer pattern: actions are end-aligned, the primary 適用 is last, and
|
|
120
|
-
the clear/reset action クリア moves to the leading edge via
|
|
121
|
-
className="me-auto". The footer is pinned to the bottom with a full-bleed
|
|
122
|
-
top border; the body scrolls between a fixed header and footer (header inset == footer
|
|
123
|
-
inset). Fields are real FormField + Select + Input.
|
|
124
|
-
</CardDescription>
|
|
125
|
-
</CardHeader>
|
|
126
|
-
<CardContent>
|
|
127
|
-
<Sheet open={filterOpen} onOpenChange={setFilterOpen}>
|
|
128
|
-
<SheetTrigger asChild>
|
|
129
|
-
{/* data-axe-open: check:frame-axe presses this before its overlay scan. */}
|
|
130
|
-
<Button data-axe-open variant="outline" size="sm">
|
|
131
|
-
<SlidersHorizontal />
|
|
132
|
-
詳細検索
|
|
133
|
-
</Button>
|
|
134
|
-
</SheetTrigger>
|
|
135
|
-
<SheetContent side="right" width={420}>
|
|
136
|
-
<SheetHeader
|
|
137
|
-
tone="info"
|
|
138
|
-
title="詳細検索"
|
|
139
|
-
subtitle="条件を組み合わせて仕訳を絞り込みます。"
|
|
140
|
-
extra={<Badge tone="info">3 条件</Badge>}
|
|
141
|
-
/>
|
|
142
|
-
<SheetBody>
|
|
143
|
-
<Form>
|
|
144
|
-
<Flex direction="col" gap="md">
|
|
145
|
-
<FormField id="filter-account" label="勘定科目">
|
|
146
|
-
<Select aria-label="勘定科目" value={account} onValueChange={setAccount}>
|
|
147
|
-
<SelectTrigger id="filter-account">
|
|
148
|
-
<SelectValue placeholder="すべての勘定科目" />
|
|
149
|
-
</SelectTrigger>
|
|
150
|
-
<SelectContent>
|
|
151
|
-
<SelectItem value="all">すべての勘定科目</SelectItem>
|
|
152
|
-
<SelectItem value="cash">現金</SelectItem>
|
|
153
|
-
<SelectItem value="sales">売上高</SelectItem>
|
|
154
|
-
<SelectItem value="expense">旅費交通費</SelectItem>
|
|
155
|
-
</SelectContent>
|
|
156
|
-
</Select>
|
|
157
|
-
</FormField>
|
|
158
|
-
<FormField id="filter-status" label="ステータス">
|
|
159
|
-
<Select aria-label="ステータス" value={status} onValueChange={setStatus}>
|
|
160
|
-
<SelectTrigger id="filter-status">
|
|
161
|
-
<SelectValue placeholder="すべてのステータス" />
|
|
162
|
-
</SelectTrigger>
|
|
163
|
-
<SelectContent>
|
|
164
|
-
<SelectItem value="all">すべてのステータス</SelectItem>
|
|
165
|
-
<SelectItem value="draft">下書き</SelectItem>
|
|
166
|
-
<SelectItem value="approved">承認済み</SelectItem>
|
|
167
|
-
</SelectContent>
|
|
168
|
-
</Select>
|
|
169
|
-
</FormField>
|
|
170
|
-
<FormField id="filter-source" label="ソース">
|
|
171
|
-
<Select aria-label="ソース" value={source} onValueChange={setSource}>
|
|
172
|
-
<SelectTrigger id="filter-source">
|
|
173
|
-
<SelectValue placeholder="すべてのソース" />
|
|
174
|
-
</SelectTrigger>
|
|
175
|
-
<SelectContent>
|
|
176
|
-
<SelectItem value="all">すべてのソース</SelectItem>
|
|
177
|
-
<SelectItem value="manual">手入力</SelectItem>
|
|
178
|
-
<SelectItem value="import">インポート</SelectItem>
|
|
179
|
-
</SelectContent>
|
|
180
|
-
</Select>
|
|
181
|
-
</FormField>
|
|
182
|
-
<FormField id="filter-amount-min" label="金額">
|
|
183
|
-
<Flex direction="row" gap="sm" align="center">
|
|
184
|
-
<Input
|
|
185
|
-
id="filter-amount-min"
|
|
186
|
-
className="min-w-0 flex-1"
|
|
187
|
-
inputMode="numeric"
|
|
188
|
-
placeholder="最小"
|
|
189
|
-
value={minAmount}
|
|
190
|
-
onChange={(e) => setMinAmount(e.target.value)}
|
|
191
|
-
/>
|
|
192
|
-
<Text tone="muted" aria-hidden="true">
|
|
193
|
-
–
|
|
194
|
-
</Text>
|
|
195
|
-
<Input
|
|
196
|
-
id="filter-amount-max"
|
|
197
|
-
aria-label="最大金額"
|
|
198
|
-
className="min-w-0 flex-1"
|
|
199
|
-
inputMode="numeric"
|
|
200
|
-
placeholder="最大"
|
|
201
|
-
value={maxAmount}
|
|
202
|
-
onChange={(e) => setMaxAmount(e.target.value)}
|
|
203
|
-
/>
|
|
204
|
-
</Flex>
|
|
205
|
-
</FormField>
|
|
206
|
-
</Flex>
|
|
207
|
-
</Form>
|
|
208
|
-
</SheetBody>
|
|
209
|
-
<SheetFooter>
|
|
210
|
-
<Button
|
|
211
|
-
variant="outline"
|
|
212
|
-
className="me-auto"
|
|
213
|
-
onClick={() => {
|
|
214
|
-
setAccount("all");
|
|
215
|
-
setStatus("all");
|
|
216
|
-
setSource("all");
|
|
217
|
-
setMinAmount("");
|
|
218
|
-
setMaxAmount("");
|
|
219
|
-
}}
|
|
220
|
-
>
|
|
221
|
-
クリア
|
|
222
|
-
</Button>
|
|
223
|
-
<Button onClick={() => setFilterOpen(false)}>適用</Button>
|
|
224
|
-
</SheetFooter>
|
|
225
|
-
</SheetContent>
|
|
226
|
-
</Sheet>
|
|
227
|
-
</CardContent>
|
|
228
|
-
</Card>
|
|
229
|
-
|
|
230
|
-
<Card>
|
|
231
|
-
<CardHeader>
|
|
232
|
-
<CardTitle level={2}>Quick-edit form (Cancel + Save, right-aligned)</CardTitle>
|
|
233
|
-
<CardDescription>
|
|
234
|
-
No destructive action, so both buttons sit on the right: キャンセル (secondary) to the
|
|
235
|
-
left of 保存 (primary). Close programmatically on submit success.
|
|
236
|
-
</CardDescription>
|
|
237
|
-
</CardHeader>
|
|
238
|
-
<CardContent>
|
|
239
|
-
<Sheet open={editOpen} onOpenChange={setEditOpen}>
|
|
240
|
-
<SheetTrigger asChild>
|
|
241
|
-
<Button variant="ghost" size="sm">
|
|
242
|
-
取引先を編集
|
|
243
|
-
</Button>
|
|
244
|
-
</SheetTrigger>
|
|
245
|
-
<SheetContent side="right">
|
|
246
|
-
<SheetHeader>
|
|
247
|
-
<SheetTitle>取引先編集 · 株式会社サンプル</SheetTitle>
|
|
248
|
-
<SheetDescription>取引先の基本情報を編集します。</SheetDescription>
|
|
249
|
-
</SheetHeader>
|
|
250
|
-
<SheetBody>
|
|
251
|
-
<Form>
|
|
252
|
-
<Flex direction="col" gap="md">
|
|
253
|
-
<FormField id="edit-company" label="会社名" required>
|
|
254
|
-
<Input
|
|
255
|
-
id="edit-company"
|
|
256
|
-
value={companyName}
|
|
257
|
-
onChange={(e) => setCompanyName(e.target.value)}
|
|
258
|
-
/>
|
|
259
|
-
</FormField>
|
|
260
|
-
<FormField id="edit-registration" label="登録番号" helper="T + 13桁">
|
|
261
|
-
<Input
|
|
262
|
-
id="edit-registration"
|
|
263
|
-
value={registration}
|
|
264
|
-
onChange={(e) => setRegistration(e.target.value)}
|
|
265
|
-
/>
|
|
266
|
-
</FormField>
|
|
267
|
-
</Flex>
|
|
268
|
-
</Form>
|
|
269
|
-
</SheetBody>
|
|
270
|
-
<SheetFooter>
|
|
271
|
-
<Button variant="outline" onClick={() => setEditOpen(false)}>
|
|
272
|
-
キャンセル
|
|
273
|
-
</Button>
|
|
274
|
-
<Button onClick={() => setEditOpen(false)}>保存</Button>
|
|
275
|
-
</SheetFooter>
|
|
276
|
-
</SheetContent>
|
|
277
|
-
</Sheet>
|
|
278
|
-
</CardContent>
|
|
279
|
-
</Card>
|
|
280
|
-
|
|
281
|
-
<Card>
|
|
282
|
-
<CardHeader>
|
|
283
|
-
<CardTitle level={2}>Edit with destructive action (削除 far-left)</CardTitle>
|
|
284
|
-
<CardDescription>
|
|
285
|
-
A destructive / clear / reset action goes to the leading edge via
|
|
286
|
-
className="me-auto" with variant="destructive", while キャンセル +
|
|
287
|
-
保存 stay grouped at the end. This is the same me-auto slot the filter's クリア
|
|
288
|
-
uses.
|
|
289
|
-
</CardDescription>
|
|
290
|
-
</CardHeader>
|
|
291
|
-
<CardContent>
|
|
292
|
-
<Sheet open={recordOpen} onOpenChange={setRecordOpen}>
|
|
293
|
-
<SheetTrigger asChild>
|
|
294
|
-
<Button variant="ghost" size="sm">
|
|
295
|
-
仕訳を編集
|
|
296
|
-
</Button>
|
|
297
|
-
</SheetTrigger>
|
|
298
|
-
<SheetContent side="right">
|
|
299
|
-
<SheetHeader>
|
|
300
|
-
<SheetTitle>仕訳編集 · #2024-0412</SheetTitle>
|
|
301
|
-
<SheetDescription>摘要を編集します。削除は元に戻せません。</SheetDescription>
|
|
302
|
-
</SheetHeader>
|
|
303
|
-
<SheetBody>
|
|
304
|
-
<Flex direction="col" gap="md">
|
|
305
|
-
<FormField id="record-memo" label="摘要">
|
|
306
|
-
<Input
|
|
307
|
-
id="record-memo"
|
|
308
|
-
value={memo}
|
|
309
|
-
onChange={(e) => setMemo(e.target.value)}
|
|
310
|
-
/>
|
|
311
|
-
</FormField>
|
|
312
|
-
</Flex>
|
|
313
|
-
</SheetBody>
|
|
314
|
-
<SheetFooter>
|
|
315
|
-
<Button
|
|
316
|
-
variant="destructive"
|
|
317
|
-
className="me-auto"
|
|
318
|
-
onClick={() => setRecordOpen(false)}
|
|
319
|
-
>
|
|
320
|
-
削除
|
|
321
|
-
</Button>
|
|
322
|
-
<Button variant="outline" onClick={() => setRecordOpen(false)}>
|
|
323
|
-
キャンセル
|
|
324
|
-
</Button>
|
|
325
|
-
<Button onClick={() => setRecordOpen(false)}>保存</Button>
|
|
326
|
-
</SheetFooter>
|
|
327
|
-
</SheetContent>
|
|
328
|
-
</Sheet>
|
|
329
|
-
</CardContent>
|
|
330
|
-
</Card>
|
|
331
|
-
|
|
332
|
-
<Card>
|
|
333
|
-
<CardHeader>
|
|
334
|
-
<CardTitle level={2}>
|
|
335
|
-
Responsive detail panel (responsive="auto" · desktop side / mobile bottom)
|
|
336
|
-
</CardTitle>
|
|
337
|
-
<CardDescription>
|
|
338
|
-
ONE Sheet covers both viewports: above{" "}
|
|
339
|
-
<code>--sheet-responsive-breakpoint-width</code> (48rem / 768px) it is the desktop
|
|
340
|
-
side panel, at or below it the mobile bottom sheet capped by{" "}
|
|
341
|
-
<code>--sheet-bottom-max-height</code>. The breakpoint comes from a theme token. Never
|
|
342
|
-
re-derive it with a page-local <code>useMediaQuery</code>. Focus trap, Escape and
|
|
343
|
-
focus restoration are identical in both presentations because it is the same Radix
|
|
344
|
-
Dialog.
|
|
345
|
-
</CardDescription>
|
|
346
|
-
</CardHeader>
|
|
347
|
-
<CardContent>
|
|
348
|
-
<Flex direction="col" gap="md">
|
|
349
|
-
<Text size="sm" tone="muted" aria-live="polite">
|
|
350
|
-
現在の表示: {presentation === "bottom" ? "bottom sheet (mobile)" : "side panel"}
|
|
351
|
-
</Text>
|
|
352
|
-
<Sheet open={detailOpen} onOpenChange={setDetailOpen}>
|
|
353
|
-
<SheetTrigger asChild>
|
|
354
|
-
<Button variant="outline" size="sm">
|
|
355
|
-
請求書の詳細
|
|
356
|
-
</Button>
|
|
357
|
-
</SheetTrigger>
|
|
358
|
-
<SheetContent responsive="auto" width={420}>
|
|
359
|
-
<SheetHeader
|
|
360
|
-
title="請求書 INV-1024"
|
|
361
|
-
subtitle="2026-07-30 発行 · 株式会社サンプル"
|
|
362
|
-
extra={<Badge tone="success">支払済み</Badge>}
|
|
363
|
-
/>
|
|
364
|
-
<SheetBody>
|
|
365
|
-
<Flex direction="col" gap="md">
|
|
366
|
-
<Text size="sm">
|
|
367
|
-
レコードのdetail surfaceはdesktopでは右side panel、mobileではbottom
|
|
368
|
-
sheetとして表示されます。
|
|
369
|
-
</Text>
|
|
370
|
-
<Text size="sm" tone="muted">
|
|
371
|
-
幅は side panel のときだけ適用され、bottom sheet
|
|
372
|
-
では全幅になります(widthはbottomでは無視されます)。
|
|
373
|
-
</Text>
|
|
374
|
-
</Flex>
|
|
375
|
-
</SheetBody>
|
|
376
|
-
<SheetFooter>
|
|
377
|
-
<Button variant="outline" onClick={() => setDetailOpen(false)}>
|
|
378
|
-
閉じる
|
|
379
|
-
</Button>
|
|
380
|
-
</SheetFooter>
|
|
381
|
-
</SheetContent>
|
|
382
|
-
</Sheet>
|
|
383
|
-
</Flex>
|
|
384
|
-
</CardContent>
|
|
385
|
-
</Card>
|
|
386
|
-
|
|
387
|
-
<Card>
|
|
388
|
-
<CardHeader>
|
|
389
|
-
<CardTitle level={2}>SheetHeader tone band (every branch)</CardTitle>
|
|
390
|
-
<CardDescription>
|
|
391
|
-
SheetHeader carries the same header contract as DialogHeader: title, subtitle, an
|
|
392
|
-
extra slot and tone. tone tints only the band and leaves the text at the foreground
|
|
393
|
-
colour. default paints no band; muted and neutral share the same quiet band on
|
|
394
|
-
purpose, so a caller can name intent without adding colour. Close the pre-opened
|
|
395
|
-
filter panel above with Escape, then pick a branch.
|
|
396
|
-
</CardDescription>
|
|
397
|
-
</CardHeader>
|
|
398
|
-
<CardContent>
|
|
399
|
-
<Flex direction="col" gap="md">
|
|
400
|
-
<Flex direction="row" gap="sm" wrap>
|
|
401
|
-
{headerTones.map((tone) => (
|
|
402
|
-
<Button
|
|
403
|
-
key={tone}
|
|
404
|
-
variant="outline"
|
|
405
|
-
size="sm"
|
|
406
|
-
onClick={() => {
|
|
407
|
-
setHeaderTone(tone);
|
|
408
|
-
setToneOpen(true);
|
|
409
|
-
}}
|
|
410
|
-
>
|
|
411
|
-
{tone}
|
|
412
|
-
</Button>
|
|
413
|
-
))}
|
|
414
|
-
</Flex>
|
|
415
|
-
<Sheet open={toneOpen} onOpenChange={setToneOpen}>
|
|
416
|
-
<SheetContent side="right" width={420}>
|
|
417
|
-
<SheetHeader
|
|
418
|
-
tone={headerTone}
|
|
419
|
-
title="承認ステータス"
|
|
420
|
-
subtitle={`見出し帯は tone="${headerTone}" で描画しています。`}
|
|
421
|
-
extra={<Badge tone={headerTone}>{headerTone}</Badge>}
|
|
422
|
-
/>
|
|
423
|
-
<SheetBody>
|
|
424
|
-
<Flex direction="col" gap="md">
|
|
425
|
-
<Text size="sm">
|
|
426
|
-
帯の色だけが tone
|
|
427
|
-
に追従し、見出しと本文の文字色は変わりません。帯は本文と同じ左右インセットで全幅に広がります。
|
|
428
|
-
</Text>
|
|
429
|
-
<Text size="sm" tone="muted">
|
|
430
|
-
extra スロットは帯の右端に固定され、閉じるボタンとは重なりません。
|
|
431
|
-
</Text>
|
|
432
|
-
</Flex>
|
|
433
|
-
</SheetBody>
|
|
434
|
-
<SheetFooter>
|
|
435
|
-
<Button variant="outline" onClick={() => setToneOpen(false)}>
|
|
436
|
-
閉じる
|
|
437
|
-
</Button>
|
|
438
|
-
</SheetFooter>
|
|
439
|
-
</SheetContent>
|
|
440
|
-
</Sheet>
|
|
441
|
-
</Flex>
|
|
442
|
-
</CardContent>
|
|
443
|
-
</Card>
|
|
444
|
-
|
|
445
|
-
<Card>
|
|
446
|
-
<CardHeader>
|
|
447
|
-
<CardTitle level={2}>Non-modal sheet: the list behind stays editable</CardTitle>
|
|
448
|
-
<CardDescription>
|
|
449
|
-
modal={false} on Sheet renders a non-modal panel, a pattern WAI-ARIA APG
|
|
450
|
-
allows. The page behind keeps working: no scrim, no scroll lock, nothing hidden from
|
|
451
|
-
assistive tech, and a press outside does not close the panel. Open the order summary
|
|
452
|
-
(side="left", so the quantity controls stay uncovered), then change a
|
|
453
|
-
quantity below. The total inside the panel follows. Focus moves into the panel on
|
|
454
|
-
open, Tab can leave it, Escape closes it while focus is inside, and focus returns to
|
|
455
|
-
the trigger.
|
|
456
|
-
</CardDescription>
|
|
457
|
-
</CardHeader>
|
|
458
|
-
<CardContent>
|
|
459
|
-
<Flex direction="col" gap="md">
|
|
460
|
-
{lines.map((line) => (
|
|
461
|
-
<Flex key={line.id} direction="row" align="center" justify="between" gap="sm">
|
|
462
|
-
<Text>{line.name}</Text>
|
|
463
|
-
<Flex direction="row" align="center" gap="sm">
|
|
464
|
-
<Button
|
|
465
|
-
variant="outline"
|
|
466
|
-
size="sm"
|
|
467
|
-
aria-label={`${line.name}を減らす`}
|
|
468
|
-
disabled={line.quantity === 0}
|
|
469
|
-
onClick={() => changeQuantity(line.id, -1)}
|
|
470
|
-
>
|
|
471
|
-
−
|
|
472
|
-
</Button>
|
|
473
|
-
<Text aria-live="polite">{line.quantity}</Text>
|
|
474
|
-
<Button
|
|
475
|
-
variant="outline"
|
|
476
|
-
size="sm"
|
|
477
|
-
aria-label={`${line.name}を増やす`}
|
|
478
|
-
onClick={() => changeQuantity(line.id, 1)}
|
|
479
|
-
>
|
|
480
|
-
+
|
|
481
|
-
</Button>
|
|
482
|
-
</Flex>
|
|
483
|
-
</Flex>
|
|
484
|
-
))}
|
|
485
|
-
<Sheet modal={false} open={summaryOpen} onOpenChange={setSummaryOpen}>
|
|
486
|
-
<SheetTrigger asChild>
|
|
487
|
-
<Button variant="outline" size="sm">
|
|
488
|
-
注文サマリー
|
|
489
|
-
</Button>
|
|
490
|
-
</SheetTrigger>
|
|
491
|
-
<SheetContent side="left" width={360}>
|
|
492
|
-
<SheetHeader title="注文サマリー" subtitle="明細は背面で編集を続けられます。" />
|
|
493
|
-
<SheetBody>
|
|
494
|
-
<Flex direction="row" justify="between">
|
|
495
|
-
<Text tone="muted">合計</Text>
|
|
496
|
-
<Text>{yen.format(total)}</Text>
|
|
497
|
-
</Flex>
|
|
498
|
-
</SheetBody>
|
|
499
|
-
<SheetFooter>
|
|
500
|
-
<Button onClick={() => setSummaryOpen(false)}>完了</Button>
|
|
501
|
-
</SheetFooter>
|
|
502
|
-
</SheetContent>
|
|
503
|
-
</Sheet>
|
|
504
|
-
</Flex>
|
|
505
|
-
</CardContent>
|
|
506
|
-
</Card>
|
|
507
|
-
</Flex>
|
|
508
|
-
</PageContainer>
|
|
509
|
-
);
|
|
510
|
-
}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Skeleton,
|
|
3
|
-
SkeletonArticle,
|
|
4
|
-
SkeletonAvatar,
|
|
5
|
-
SkeletonButton,
|
|
6
|
-
SkeletonDetail,
|
|
7
|
-
SkeletonImage,
|
|
8
|
-
SkeletonInput,
|
|
9
|
-
SkeletonNode,
|
|
10
|
-
SkeletonRows,
|
|
11
|
-
SkeletonStat,
|
|
12
|
-
SkeletonTable,
|
|
13
|
-
} from "@godxjp/ui/feedback";
|
|
14
|
-
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@godxjp/ui/data-display";
|
|
15
|
-
import { Flex, PageContainer, ResponsiveGrid } from "@godxjp/ui/layout";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Skeleton · loading placeholders. Three levels:
|
|
19
|
-
* Skeleton · custom pulsing block (h + w via className).
|
|
20
|
-
* SkeletonTable · pre-mount DataTable placeholder (rows, columns props).
|
|
21
|
-
* SkeletonStat · StatCard/KPI tile placeholder (no props; use in ResponsiveGrid).
|
|
22
|
-
* SkeletonDetail · single-record detail placeholder (title + metadata rows, no props).
|
|
23
|
-
* SkeletonArticle · avatar + heading + paragraph (Ant Design's own Skeleton shape).
|
|
24
|
-
* SkeletonAvatar/Button/Input/Node/Image · the shaped presets, also on the Skeleton namespace.
|
|
25
|
-
* Never use a spinner overlay on skeletonable content.
|
|
26
|
-
*/
|
|
27
|
-
export default function Demo() {
|
|
28
|
-
return (
|
|
29
|
-
<PageContainer
|
|
30
|
-
title="Skeleton"
|
|
31
|
-
subtitle="loading placeholders · Skeleton (custom block) · SkeletonTable (DataTable pre-mount) · SkeletonStat (KPI tile) · SkeletonDetail (record page)"
|
|
32
|
-
>
|
|
33
|
-
<Flex direction="col" gap="lg">
|
|
34
|
-
<Card>
|
|
35
|
-
<CardHeader>
|
|
36
|
-
<CardTitle level={2}>Skeleton · custom pulsing blocks</CardTitle>
|
|
37
|
-
<CardDescription>
|
|
38
|
-
Base primitive. Pass className for h + w. Use when SkeletonTable / SkeletonStat do not
|
|
39
|
-
match the target layout (e.g. a single loading line, a media placeholder, inline
|
|
40
|
-
metadata).
|
|
41
|
-
</CardDescription>
|
|
42
|
-
</CardHeader>
|
|
43
|
-
<CardContent>
|
|
44
|
-
<Flex direction="col" gap="sm">
|
|
45
|
-
<Skeleton className="h-5 w-48" />
|
|
46
|
-
<Skeleton className="h-4 w-72" />
|
|
47
|
-
<Skeleton className="h-4 w-60" />
|
|
48
|
-
<Flex direction="row" gap="sm" align="center">
|
|
49
|
-
<Skeleton className="size-10 rounded-full" />
|
|
50
|
-
<Flex direction="col" gap="xs">
|
|
51
|
-
<Skeleton className="h-4 w-32" />
|
|
52
|
-
<Skeleton className="h-3 w-24" />
|
|
53
|
-
</Flex>
|
|
54
|
-
</Flex>
|
|
55
|
-
</Flex>
|
|
56
|
-
</CardContent>
|
|
57
|
-
</Card>
|
|
58
|
-
|
|
59
|
-
<Card>
|
|
60
|
-
<CardHeader>
|
|
61
|
-
<CardTitle level={2}>SkeletonArticle · avatar + heading + paragraph</CardTitle>
|
|
62
|
-
<CardDescription>
|
|
63
|
-
Ant Design's own Skeleton shape. Defaults follow it exactly: no avatar, a 38% heading
|
|
64
|
-
and three body lines; with an avatar the heading drops to 50% and the body to two
|
|
65
|
-
lines. `active` swaps the resting pulse for the travelling sheen · `round` pills every
|
|
66
|
-
line · `loading={false}` renders children instead.
|
|
67
|
-
</CardDescription>
|
|
68
|
-
</CardHeader>
|
|
69
|
-
<CardContent>
|
|
70
|
-
<Flex direction="col" gap="lg">
|
|
71
|
-
<SkeletonArticle />
|
|
72
|
-
<SkeletonArticle avatar />
|
|
73
|
-
<SkeletonArticle avatar active round paragraph={{ rows: 4, width: ["90%", "80%"] }} />
|
|
74
|
-
<SkeletonArticle avatar paragraph={false} title={{ width: "14rem" }} />
|
|
75
|
-
</Flex>
|
|
76
|
-
</CardContent>
|
|
77
|
-
</Card>
|
|
78
|
-
|
|
79
|
-
<Card>
|
|
80
|
-
<CardHeader>
|
|
81
|
-
<CardTitle level={2}>Shaped presets · the boxes the controls occupy</CardTitle>
|
|
82
|
-
<CardDescription>
|
|
83
|
-
Each preset carries the box of the control it stands in for, from the --control-height
|
|
84
|
-
tier · SkeletonButton is two heights wide, SkeletonInput five. Reachable as named
|
|
85
|
-
exports or through the Skeleton namespace (Skeleton.Button…).
|
|
86
|
-
</CardDescription>
|
|
87
|
-
</CardHeader>
|
|
88
|
-
<CardContent>
|
|
89
|
-
<Flex direction="col" gap="md">
|
|
90
|
-
<Flex direction="row" gap="sm" align="center" wrap>
|
|
91
|
-
<SkeletonAvatar size="sm" />
|
|
92
|
-
<SkeletonAvatar />
|
|
93
|
-
<SkeletonAvatar size="lg" shape="square" />
|
|
94
|
-
<SkeletonButton size="sm" />
|
|
95
|
-
<SkeletonButton />
|
|
96
|
-
<SkeletonButton size="lg" shape="pill" active />
|
|
97
|
-
<SkeletonInput size="sm" />
|
|
98
|
-
</Flex>
|
|
99
|
-
<SkeletonInput block />
|
|
100
|
-
<Flex direction="row" gap="sm" align="center" wrap>
|
|
101
|
-
<SkeletonNode />
|
|
102
|
-
<SkeletonImage active />
|
|
103
|
-
</Flex>
|
|
104
|
-
</Flex>
|
|
105
|
-
</CardContent>
|
|
106
|
-
</Card>
|
|
107
|
-
|
|
108
|
-
<Card>
|
|
109
|
-
<CardHeader>
|
|
110
|
-
<CardTitle>SkeletonRows · generic repeated rows</CardTitle>
|
|
111
|
-
<CardDescription>
|
|
112
|
-
Use for non-table list layouts with deterministic row count.
|
|
113
|
-
</CardDescription>
|
|
114
|
-
</CardHeader>
|
|
115
|
-
<CardContent>
|
|
116
|
-
<SkeletonRows rows={3} columns={2} />
|
|
117
|
-
</CardContent>
|
|
118
|
-
</Card>
|
|
119
|
-
|
|
120
|
-
<Card>
|
|
121
|
-
<CardHeader>
|
|
122
|
-
<CardTitle level={2}>SkeletonTable · DataTable pre-mount placeholder</CardTitle>
|
|
123
|
-
<CardDescription>
|
|
124
|
-
Drop-in while deferred prop / query resolves. Match rows to page size and columns to
|
|
125
|
-
column count so the layout does not jump on hydration. Do NOT wrap in Card · it owns
|
|
126
|
-
its own structure.
|
|
127
|
-
</CardDescription>
|
|
128
|
-
</CardHeader>
|
|
129
|
-
<CardContent flush>
|
|
130
|
-
<SkeletonTable rows={6} columns={6} />
|
|
131
|
-
</CardContent>
|
|
132
|
-
</Card>
|
|
133
|
-
|
|
134
|
-
<Card>
|
|
135
|
-
<CardHeader>
|
|
136
|
-
<CardTitle level={2}>SkeletonStat · KPI / StatCard tile placeholder</CardTitle>
|
|
137
|
-
<CardDescription>
|
|
138
|
-
Use inside a ResponsiveGrid · one SkeletonStat per expected StatCard. No props. Do NOT
|
|
139
|
-
wrap in an extra Card (SkeletonStat owns its own bordered box).
|
|
140
|
-
</CardDescription>
|
|
141
|
-
</CardHeader>
|
|
142
|
-
<CardContent>
|
|
143
|
-
<ResponsiveGrid columns={4}>
|
|
144
|
-
<SkeletonStat />
|
|
145
|
-
<SkeletonStat />
|
|
146
|
-
<SkeletonStat />
|
|
147
|
-
<SkeletonStat />
|
|
148
|
-
</ResponsiveGrid>
|
|
149
|
-
</CardContent>
|
|
150
|
-
</Card>
|
|
151
|
-
|
|
152
|
-
<Card>
|
|
153
|
-
<CardHeader>
|
|
154
|
-
<CardTitle level={2}>SkeletonDetail · single-record detail loading state</CardTitle>
|
|
155
|
-
<CardDescription>
|
|
156
|
-
The ready-made detail placeholder (title + metadata rows). Reach for this on a record
|
|
157
|
-
/ show page while the record loads · do NOT hand-compose it from base Skeleton blocks.
|
|
158
|
-
No props.
|
|
159
|
-
</CardDescription>
|
|
160
|
-
</CardHeader>
|
|
161
|
-
<CardContent>
|
|
162
|
-
<SkeletonDetail />
|
|
163
|
-
</CardContent>
|
|
164
|
-
</Card>
|
|
165
|
-
</Flex>
|
|
166
|
-
</PageContainer>
|
|
167
|
-
);
|
|
168
|
-
}
|