@godxjp/ui 31.31.8 → 32.0.1
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/color.d.ts +7 -0
- package/dist/email/color.js +14 -1
- package/dist/email/index.d.ts +10 -2
- package/dist/email/index.js +23 -2
- package/dist/email/tokens.generated.d.ts +120 -2
- package/dist/email/tokens.generated.js +119 -1
- 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-tokens.css +41 -0
- package/dist/themes/godx.css +3 -0
- package/dist/themes/godx.d.ts +16 -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 +105 -0
- package/package.json +59 -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 +542 -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,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { LegalDocumentShellProp } from "
|
|
3
|
-
export type { LegalDocumentSectionProp, LegalDocumentShellProp, LegalDocumentShellProp as LegalDocumentShellProps, } from "
|
|
2
|
+
import type { LegalDocumentShellProp } from "../props/components/layout.prop.js";
|
|
3
|
+
export type { LegalDocumentSectionProp, LegalDocumentShellProp, LegalDocumentShellProp as LegalDocumentShellProps, } from "../props/components/layout.prop.js";
|
|
4
4
|
/**
|
|
5
5
|
* LegalDocumentShell — the long-form **legal / policy document** surface: terms of service,
|
|
6
6
|
* privacy policy, DPA, cookie policy, SLA, EULA, security policy. Semantics: `<article>` labelled
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { useTranslation } from "
|
|
5
|
-
import { useControlledLatch } from "
|
|
6
|
-
import { cn } from "
|
|
7
|
-
import { Heading } from "../general/typography.js";
|
|
4
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
5
|
+
import { useControlledLatch } from "../lib/hooks.js";
|
|
6
|
+
import { cn } from "../lib/utils.js";
|
|
7
|
+
import { Heading } from "../components/general/typography.js";
|
|
8
8
|
const SPY_ROOT_MARGIN = "-10% 0px -75% 0px";
|
|
9
9
|
const SECTION_ID_SEPARATOR = "\0";
|
|
10
10
|
const ISO_CALENDAR_DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { GapProp } from "
|
|
3
|
-
export type { MarqueeDirectionProp, MarqueeSpeedProp, MarqueeProp, MarqueeProp as MarqueeProps, } from "
|
|
2
|
+
import type { GapProp } from "../props/vocabulary/index.js";
|
|
3
|
+
export type { MarqueeDirectionProp, MarqueeSpeedProp, MarqueeProp, MarqueeProp as MarqueeProps, } from "../props/components/data-display.prop.js";
|
|
4
4
|
export declare const Marquee: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "onPause" | "onPlay"> & {
|
|
5
|
-
children?: import("
|
|
5
|
+
children?: import("../props/index.js").ChildrenProp;
|
|
6
6
|
play?: boolean;
|
|
7
7
|
defaultPlay?: boolean;
|
|
8
8
|
onPlayChange?: (play: boolean) => void;
|
|
@@ -11,6 +11,6 @@ export declare const Marquee: React.ForwardRefExoticComponent<Omit<React.HTMLAtt
|
|
|
11
11
|
gap?: GapProp;
|
|
12
12
|
pauseOnHover?: boolean;
|
|
13
13
|
fade?: boolean;
|
|
14
|
-
label?: import("
|
|
15
|
-
className?: import("
|
|
14
|
+
label?: import("../props/index.js").LabelProp;
|
|
15
|
+
className?: import("../props/index.js").ClassNameProp;
|
|
16
16
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Pause, Play } from "lucide-react";
|
|
5
|
-
import { useTranslation } from "
|
|
6
|
-
import { useMediaQuery } from "
|
|
7
|
-
import { cn } from "
|
|
8
|
-
import { Button } from "../general/button.js";
|
|
5
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
6
|
+
import { useMediaQuery } from "../lib/hooks.js";
|
|
7
|
+
import { cn } from "../lib/utils.js";
|
|
8
|
+
import { Button } from "../components/general/button.js";
|
|
9
9
|
import { revealInMarquee } from "./marquee-reveal.js";
|
|
10
|
-
import { ScrollArea } from "
|
|
10
|
+
import { ScrollArea } from "../components/data-display/scroll-area.js";
|
|
11
11
|
function gapToken(step) {
|
|
12
12
|
if (step === "none" || step === 0) return "0px";
|
|
13
13
|
if (typeof step === "number") return `var(--space-${step})`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { MasonryProp } from "
|
|
3
|
-
export type { MasonryColumnsProp, MasonryGapProp, MasonryItemProp, MasonryLayoutEntryProp, MasonryProp, MasonryProp as MasonryProps, } from "
|
|
2
|
+
import type { MasonryProp } from "../props/components/layout.prop.js";
|
|
3
|
+
export type { MasonryColumnsProp, MasonryGapProp, MasonryItemProp, MasonryLayoutEntryProp, MasonryProp, MasonryProp as MasonryProps, } from "../props/components/layout.prop.js";
|
|
4
4
|
/**
|
|
5
5
|
* Masonry — Ant Design `Masonry` (6.0.0): tiles of unequal height packed into columns, each tile
|
|
6
6
|
* dropped into whichever column is shortest when its turn comes.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { isDevelopment } from "
|
|
5
|
-
import { useMediaQuery } from "
|
|
6
|
-
import { cn } from "
|
|
4
|
+
import { isDevelopment } from "../lib/dev.js";
|
|
5
|
+
import { useMediaQuery } from "../lib/hooks.js";
|
|
6
|
+
import { cn } from "../lib/utils.js";
|
|
7
7
|
const BREAKPOINT_QUERY = {
|
|
8
8
|
sm: "(min-width: 40rem)",
|
|
9
9
|
md: "(min-width: 48rem)",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { MegaMenuItemProp, MegaMenuLinkComponentProp } from "
|
|
3
|
-
export type { MegaMenuGroupProp, MegaMenuGroupProp as MegaMenuGroupProps, MegaMenuItemProp, MegaMenuItemProp as MegaMenuItemProps, MegaMenuLinkComponentProp, MegaMenuLinkComponentProp as MegaMenuLinkComponentProps, MegaMenuLinkProp, MegaMenuLinkProp as MegaMenuLinkProps, MegaMenuPanelProp, MegaMenuPanelProp as MegaMenuPanelProps, MegaMenuProp, MegaMenuProp as MegaMenuProps, MegaMenuTriggerActionProp, MegaMenuTriggerActionProp as MegaMenuTriggerActionProps, } from "
|
|
2
|
+
import type { MegaMenuItemProp, MegaMenuLinkComponentProp } from "../props/components/navigation.prop.js";
|
|
3
|
+
export type { MegaMenuGroupProp, MegaMenuGroupProp as MegaMenuGroupProps, MegaMenuItemProp, MegaMenuItemProp as MegaMenuItemProps, MegaMenuLinkComponentProp, MegaMenuLinkComponentProp as MegaMenuLinkComponentProps, MegaMenuLinkProp, MegaMenuLinkProp as MegaMenuLinkProps, MegaMenuPanelProp, MegaMenuPanelProp as MegaMenuPanelProps, MegaMenuProp, MegaMenuProp as MegaMenuProps, MegaMenuTriggerActionProp, MegaMenuTriggerActionProp as MegaMenuTriggerActionProps, } from "../props/components/navigation.prop.js";
|
|
4
4
|
export declare const MegaMenu: React.ForwardRefExoticComponent<{
|
|
5
5
|
items: readonly MegaMenuItemProp[];
|
|
6
6
|
open?: string | null;
|
|
@@ -16,6 +16,6 @@ export declare const MegaMenu: React.ForwardRefExoticComponent<{
|
|
|
16
16
|
label?: string;
|
|
17
17
|
expandIcon?: React.ReactNode | false;
|
|
18
18
|
linkComponent?: MegaMenuLinkComponentProp;
|
|
19
|
-
id?: import("
|
|
20
|
-
className?: import("
|
|
19
|
+
id?: import("../props/index.js").IdProp;
|
|
20
|
+
className?: import("../props/index.js").ClassNameProp;
|
|
21
21
|
} & Omit<React.HTMLAttributes<HTMLElement>, "children" | "defaultValue" | "onChange"> & React.RefAttributes<HTMLElement>>;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { ChevronDown } from "lucide-react";
|
|
5
|
-
import { cn } from "
|
|
6
|
-
import { useTranslation } from "
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
6
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
7
7
|
const OPEN_DELAY_MS = 0;
|
|
8
8
|
const CLOSE_DELAY_MS = 100;
|
|
9
9
|
function nextEnabled(items, from, step) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { OrgChartProp } from "
|
|
3
|
-
export type { OrgChartNodeProp, OrgChartNodeVariantProp, OrgChartProp, OrgChartProp as OrgChartProps, } from "
|
|
2
|
+
import type { OrgChartProp } from "../props/components/data-display.prop.js";
|
|
3
|
+
export type { OrgChartNodeProp, OrgChartNodeVariantProp, OrgChartProp, OrgChartProp as OrgChartProps, } from "../props/components/data-display.prop.js";
|
|
4
4
|
/** `ref` reaches the root `<div>` — the container the breakpoint is measured against. */
|
|
5
5
|
export declare const OrgChart: React.ForwardRefExoticComponent<OrgChartProp & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { useTranslation } from "
|
|
5
|
-
import { useScrollsHorizontally } from "
|
|
6
|
-
import { cn } from "
|
|
7
|
-
import { Tree } from "
|
|
4
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
5
|
+
import { useScrollsHorizontally } from "../lib/hooks.js";
|
|
6
|
+
import { cn } from "../lib/utils.js";
|
|
7
|
+
import { Tree } from "../components/data-display/tree.js";
|
|
8
8
|
function flatten(nodes) {
|
|
9
9
|
const out = [];
|
|
10
10
|
const walk = (list, depth, parent) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { PageCoverProp } from "
|
|
3
|
-
export type { PageCoverProp, PageCoverProp as PageCoverProps, } from "
|
|
2
|
+
import type { PageCoverProp } from "../props/components/layout.prop.js";
|
|
3
|
+
export type { PageCoverProp, PageCoverProp as PageCoverProps, } from "../props/components/layout.prop.js";
|
|
4
4
|
/**
|
|
5
5
|
* PageCover (gh#1160) — a page's cover image: Notion's banner across the top, or note.com's
|
|
6
6
|
* eyecatch in the reading column (`variant="eyecatch"`, ~1.91:1, rounded). Put it in
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { useTranslation } from "
|
|
5
|
-
import { cn } from "
|
|
4
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
6
6
|
const clamp = (value) => Math.min(100, Math.max(0, Math.round(value)));
|
|
7
7
|
const PageCover = React.forwardRef(function PageCover2({
|
|
8
8
|
src,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { useTranslation } from "
|
|
4
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
5
5
|
import { ChevronDown, ChevronLeft, ChevronRight, GripVertical } from "lucide-react";
|
|
6
|
-
import { Button } from "../general/button.js";
|
|
7
|
-
import { Tooltip, TooltipContent, TooltipTrigger } from "../feedback/tooltip.js";
|
|
8
|
-
import { CONTRAST_PIVOT, relativeLuminance } from "
|
|
9
|
-
import { Text } from "../general/typography.js";
|
|
10
|
-
import { cn } from "
|
|
6
|
+
import { Button } from "../components/general/button.js";
|
|
7
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "../components/feedback/tooltip.js";
|
|
8
|
+
import { CONTRAST_PIVOT, relativeLuminance } from "../app/tenant-theme.js";
|
|
9
|
+
import { Text } from "../components/general/typography.js";
|
|
10
|
+
import { cn } from "../lib/utils.js";
|
|
11
11
|
function inkOn(color) {
|
|
12
12
|
if (!color) return void 0;
|
|
13
13
|
const luminance = relativeLuminance(color);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { SortableListProp } from "
|
|
3
|
-
export type { SortableListItemProp, SortableListProp, SortableListProp as SortableListProps, } from "
|
|
2
|
+
import type { SortableListProp } from "../props/components/data-entry.prop.js";
|
|
3
|
+
export type { SortableListItemProp, SortableListProp, SortableListProp as SortableListProps, } from "../props/components/data-entry.prop.js";
|
|
4
4
|
/**
|
|
5
5
|
* SortableList (gh#1173) — reorder a flat list or a grid of tiles by pointer drag or by keyboard
|
|
6
6
|
* on each item's grip: Space/Enter lifts, the arrows (and Home/End) move, Space/Enter drops, Esc
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { GripVertical } from "lucide-react";
|
|
5
|
-
import { useTranslation } from "
|
|
6
|
-
import { cn } from "
|
|
7
|
-
import { Button } from "../general/button.js";
|
|
5
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
6
|
+
import { cn } from "../lib/utils.js";
|
|
7
|
+
import { Button } from "../components/general/button.js";
|
|
8
8
|
const DRAG_THRESHOLD = 4;
|
|
9
9
|
function move(list, from, to) {
|
|
10
10
|
const next = list.slice();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { TextDiffProp, TextDiffSegment } from "
|
|
3
|
-
export type { TextDiffProp, TextDiffProp as TextDiffProps, TextDiffSegment, } from "
|
|
2
|
+
import type { TextDiffProp, TextDiffSegment } from "../props/components/data-display.prop.js";
|
|
3
|
+
export type { TextDiffProp, TextDiffProp as TextDiffProps, TextDiffSegment, } from "../props/components/data-display.prop.js";
|
|
4
4
|
/** The unit a change is measured in — see `TextDiffProp["granularity"]`. */
|
|
5
5
|
export type TextDiffGranularity = NonNullable<TextDiffProp["granularity"]>;
|
|
6
6
|
/**
|
|
@@ -41,5 +41,5 @@ export declare const TextDiff: React.ForwardRefExoticComponent<Omit<React.HTMLAt
|
|
|
41
41
|
beforeLabel?: React.ReactNode;
|
|
42
42
|
afterLabel?: React.ReactNode;
|
|
43
43
|
lang?: string;
|
|
44
|
-
className?: import("
|
|
44
|
+
className?: import("../props/index.js").ClassNameProp;
|
|
45
45
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { useTranslation } from "
|
|
5
|
-
import { cn } from "
|
|
6
|
-
import { Button } from "../general/button.js";
|
|
7
|
-
import { VisuallyHidden } from "../general/visually-hidden.js";
|
|
4
|
+
import { useTranslation } from "../i18n/use-translation.js";
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
6
|
+
import { Button } from "../components/general/button.js";
|
|
7
|
+
import { VisuallyHidden } from "../components/general/visually-hidden.js";
|
|
8
8
|
const CJK = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u;
|
|
9
9
|
const DEFAULT_MAX_CELLS = 4e6;
|
|
10
10
|
const MIN_HIDDEN_LINES = 2;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type { TimelineGridProp } from "
|
|
3
|
-
export type { TimelineGridColumnProp, TimelineGridEventProp, TimelineGridProp, TimelineGridProp as TimelineGridProps, } from "
|
|
2
|
+
import type { TimelineGridProp } from "../props/components/data-display.prop.js";
|
|
3
|
+
export type { TimelineGridColumnProp, TimelineGridEventProp, TimelineGridProp, TimelineGridProp as TimelineGridProps, } from "../props/components/data-display.prop.js";
|
|
4
4
|
/**
|
|
5
5
|
* TimelineGrid — the time-axis half of the Timeline family: a vertical hour axis, one column per
|
|
6
6
|
* day (or room, or machine) and event blocks placed by start time and duration.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { cn } from "
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
5
|
const MINUTES_PER_DAY = 24 * 60;
|
|
6
6
|
const CLOCK = /^(\d{1,2}):(\d{2})$/;
|
|
7
7
|
function toMinutes(value) {
|
|
@@ -5,7 +5,7 @@ const controlOpenRingClass = "ui-control-trigger";
|
|
|
5
5
|
const controlTriggerBaseClass = (
|
|
6
6
|
// PER-EDGE RADIUS THROUGH A KNOB, same repair as Input's `--input-radius-start`/`-end`
|
|
7
7
|
// (gh#841): a plain `rounded-[var(--control-radius)]` is a utility, and `@layer utilities`
|
|
8
|
-
// outranks `@layer components`, so a joined-control seam (
|
|
8
|
+
// outranks `@layer components`, so a joined-control seam (`Flex attached`) can never zero one
|
|
9
9
|
// side of it from a components-layer rule. Unset, both knobs fall back to `--control-radius`
|
|
10
10
|
// exactly as before — no existing trigger changes.
|
|
11
11
|
"ui-control ui-control-trigger flex items-center justify-between gap-2 whitespace-nowrap rounded-s-[var(--control-trigger-radius-start,var(--control-radius))] rounded-e-[var(--control-trigger-radius-end,var(--control-radius))] transition-[color,box-shadow] [&>[data-slot=select-value]]:line-clamp-1 [&>[data-slot=select-value]]:whitespace-normal [&>[data-slot=select-value]]:text-ellipsis"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TZDate } from "@date-fns/tz";
|
|
2
2
|
import { format, formatDistanceToNow } from "date-fns";
|
|
3
3
|
import { getDateFnsLocale } from "../../app/locales.js";
|
|
4
|
-
import {
|
|
4
|
+
import { getDateTimePattern, getLocaleAwareDatePattern } from "../../app/date-formats.js";
|
|
5
5
|
import { getTimePattern } from "../../app/time-formats.js";
|
|
6
6
|
import { calendarDateToTZDate, hhmmToTZDate, parseDateInput } from "./parse.js";
|
|
7
7
|
import { isDateOnlyString } from "./detect.js";
|
|
@@ -13,8 +13,10 @@ function resolveLocale(locale) {
|
|
|
13
13
|
}
|
|
14
14
|
function resolveOptions(options) {
|
|
15
15
|
const ctx = getDatetimeContext();
|
|
16
|
+
const locale = resolveLocale(options?.locale);
|
|
16
17
|
return {
|
|
17
|
-
locale
|
|
18
|
+
locale,
|
|
19
|
+
tag: typeof options?.locale === "string" ? options.locale : options?.locale?.code ?? ctx.locale,
|
|
18
20
|
timezone: options?.timezone ?? ctx.timezone,
|
|
19
21
|
timeFormat: options?.timeFormat ?? ctx.timeFormat,
|
|
20
22
|
dateFormat: options?.dateFormat ?? ctx.dateFormat
|
|
@@ -31,19 +33,31 @@ function formatCalendarDate(value, options) {
|
|
|
31
33
|
if (!value) return EMPTY;
|
|
32
34
|
const resolved = resolveOptions(options);
|
|
33
35
|
const zoned = calendarDateToTZDate(value, resolved.timezone);
|
|
34
|
-
return formatTZDate(
|
|
36
|
+
return formatTZDate(
|
|
37
|
+
zoned,
|
|
38
|
+
getLocaleAwareDatePattern(resolved.dateFormat, resolved.tag),
|
|
39
|
+
resolved
|
|
40
|
+
);
|
|
35
41
|
}
|
|
36
42
|
function formatAppDate(value, options) {
|
|
37
43
|
const resolved = resolveOptions(options);
|
|
38
44
|
if (typeof value === "string" && isDateOnlyString(value)) {
|
|
39
45
|
const [year, month, day] = value.split("-").map(Number);
|
|
40
46
|
const zoned2 = new TZDate(year, month - 1, day, resolved.timezone);
|
|
41
|
-
return formatTZDate(
|
|
47
|
+
return formatTZDate(
|
|
48
|
+
zoned2,
|
|
49
|
+
getLocaleAwareDatePattern(resolved.dateFormat, resolved.tag),
|
|
50
|
+
resolved
|
|
51
|
+
);
|
|
42
52
|
}
|
|
43
53
|
const parsed = parseDateInput(value);
|
|
44
54
|
if (!parsed) return EMPTY;
|
|
45
55
|
const zoned = instantToTZDate(parsed, resolved.timezone);
|
|
46
|
-
return formatTZDate(
|
|
56
|
+
return formatTZDate(
|
|
57
|
+
zoned,
|
|
58
|
+
getLocaleAwareDatePattern(resolved.dateFormat, resolved.tag),
|
|
59
|
+
resolved
|
|
60
|
+
);
|
|
47
61
|
}
|
|
48
62
|
function formatAppDateTime(value, options) {
|
|
49
63
|
const parsed = parseDateInput(value);
|
|
@@ -52,7 +66,7 @@ function formatAppDateTime(value, options) {
|
|
|
52
66
|
const zoned = instantToTZDate(parsed, resolved.timezone);
|
|
53
67
|
return formatTZDate(
|
|
54
68
|
zoned,
|
|
55
|
-
getDateTimePattern(resolved.timeFormat, resolved.dateFormat),
|
|
69
|
+
getDateTimePattern(resolved.timeFormat, resolved.dateFormat, resolved.tag),
|
|
56
70
|
resolved
|
|
57
71
|
);
|
|
58
72
|
}
|
|
@@ -7,13 +7,17 @@ export type DatetimeContext = {
|
|
|
7
7
|
timeFormat: AppTimeFormat;
|
|
8
8
|
dateFormat: AppDateFormat;
|
|
9
9
|
};
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Sync the CURRENT scope's datetime prefs (mirrors `syncI18nLocale`). AppProvider calls it while
|
|
12
|
+
* rendering; inside `runWithAppSettings` it writes that request's state only.
|
|
13
|
+
*/
|
|
11
14
|
export declare function syncDatetimeContext(prefs: Pick<DatetimeContext, "locale" | "timezone" | "timeFormat" | "dateFormat"> & {
|
|
12
15
|
dateFnsLocale?: Locale;
|
|
13
16
|
}): void;
|
|
17
|
+
/** The current scope's datetime prefs, with the neutral defaults for anything unset. */
|
|
14
18
|
export declare function getDatetimeContext(): Readonly<DatetimeContext>;
|
|
15
19
|
export declare function enableLiveRelativeFormatting(): void;
|
|
16
20
|
export declare function disableLiveRelativeFormatting(): void;
|
|
17
21
|
export declare function canUseLiveRelativeFormatting(): boolean;
|
|
18
|
-
/** Vitest only — reset to defaults between cases. */
|
|
22
|
+
/** Vitest only — reset the current scope to defaults between cases. */
|
|
19
23
|
export declare function resetDatetimeContextForTests(): void;
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import { getDateFnsLocale,
|
|
1
|
+
import { getDateFnsLocale, normalizeAppLocale } from "../../app/locales.js";
|
|
2
2
|
import { resolveDefaultDateFormat } from "../../app/date-format-labels.js";
|
|
3
|
+
import { resolveDefaultTimeFormat } from "../../app/time-format-labels.js";
|
|
4
|
+
import { getAppSettingsState } from "../../app/settings-scope.js";
|
|
3
5
|
import { resolveHydrationSafeTimezone } from "../../app/timezones.js";
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
const lang = (document.documentElement.lang || "").toLowerCase().split("-")[0];
|
|
8
|
-
return isAppLocale(lang) ? lang : DEFAULT_LOCALE;
|
|
9
|
-
}
|
|
10
|
-
const defaultContext = () => {
|
|
11
|
-
const locale = pageLocale();
|
|
6
|
+
import { resolveDefaultLocale } from "../../i18n/locale-tags.js";
|
|
7
|
+
function resolveContext(partial) {
|
|
8
|
+
const locale = partial?.locale ?? resolveDefaultLocale();
|
|
12
9
|
return {
|
|
13
10
|
locale,
|
|
14
|
-
dateFnsLocale: getDateFnsLocale(locale),
|
|
15
|
-
timezone: resolveHydrationSafeTimezone("browser"),
|
|
16
|
-
timeFormat:
|
|
17
|
-
dateFormat: resolveDefaultDateFormat(locale)
|
|
11
|
+
dateFnsLocale: partial?.dateFnsLocale ?? getDateFnsLocale(normalizeAppLocale(locale)),
|
|
12
|
+
timezone: partial?.timezone ?? resolveHydrationSafeTimezone("browser"),
|
|
13
|
+
timeFormat: partial?.timeFormat ?? resolveDefaultTimeFormat(locale),
|
|
14
|
+
dateFormat: partial?.dateFormat ?? resolveDefaultDateFormat(locale)
|
|
18
15
|
};
|
|
19
|
-
}
|
|
20
|
-
let syncedContext = null;
|
|
16
|
+
}
|
|
21
17
|
let liveRelativeFormattingEnabled = true;
|
|
22
18
|
function syncDatetimeContext(prefs) {
|
|
23
|
-
|
|
19
|
+
getAppSettingsState().datetime = {
|
|
24
20
|
locale: prefs.locale,
|
|
25
21
|
timezone: prefs.timezone,
|
|
26
22
|
timeFormat: prefs.timeFormat,
|
|
@@ -29,7 +25,7 @@ function syncDatetimeContext(prefs) {
|
|
|
29
25
|
};
|
|
30
26
|
}
|
|
31
27
|
function getDatetimeContext() {
|
|
32
|
-
return
|
|
28
|
+
return resolveContext(getAppSettingsState().datetime);
|
|
33
29
|
}
|
|
34
30
|
function enableLiveRelativeFormatting() {
|
|
35
31
|
liveRelativeFormattingEnabled = true;
|
|
@@ -41,7 +37,7 @@ function canUseLiveRelativeFormatting() {
|
|
|
41
37
|
return liveRelativeFormattingEnabled;
|
|
42
38
|
}
|
|
43
39
|
function resetDatetimeContextForTests() {
|
|
44
|
-
|
|
40
|
+
getAppSettingsState().datetime = void 0;
|
|
45
41
|
liveRelativeFormattingEnabled = true;
|
|
46
42
|
}
|
|
47
43
|
export {
|
package/dist/lib/platform.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare function isApplePlatform(): boolean;
|
|
|
18
18
|
* crash.
|
|
19
19
|
*
|
|
20
20
|
* It lives here rather than beside its first caller because it had already been written twice
|
|
21
|
-
* (`src/form/form-root.tsx`, `src/
|
|
21
|
+
* (`src/form/form-root.tsx`, `src/lab/legal-document-shell.tsx`) before a third
|
|
22
22
|
* caller needed it.
|
|
23
23
|
*/
|
|
24
24
|
export declare function prefersReducedMotion(): boolean;
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import type { Locale } from "date-fns";
|
|
3
3
|
import type { DayPickerProps } from "react-day-picker";
|
|
4
4
|
import type { AppLocale, AppRequestHeaders, AppTimeFormat, AppTimezone, AppTimezoneDefault, AppDateFormat } from "../../app/types.js";
|
|
5
|
+
import type { AppPreset } from "../../app/preset.js";
|
|
5
6
|
import type { AppBrand, AppDensity, AppFontSize, AppTheme } from "../../app/theme-axes.js";
|
|
6
7
|
import type { AppPreferenceAxis } from "../../app/storage.js";
|
|
7
|
-
import type { AppSettingPickerAppearanceProp,
|
|
8
|
+
import type { AppSettingPickerAppearanceProp, AppSettingCycleAppearanceProp, ChildrenProp, ClassNameProp, DisabledProp, IdProp, NameProp, OnValueChangeProp, ValueProp } from "../vocabulary/index.js";
|
|
8
9
|
/**
|
|
9
10
|
* @see ThemeScope
|
|
10
11
|
*
|
|
@@ -20,8 +21,16 @@ export type ThemeScopeProp = {
|
|
|
20
21
|
/** @see AppProvider */
|
|
21
22
|
export type AppProviderProp = {
|
|
22
23
|
children: ChildrenProp;
|
|
23
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Initial locale when nothing is in storage. Default: `<html lang>` when it names a registered
|
|
26
|
+
* locale, then the preset's `defaultLocale`, then `en` (v32; was `vi`).
|
|
27
|
+
*/
|
|
24
28
|
defaultLocale?: AppLocale;
|
|
29
|
+
/**
|
|
30
|
+
* Product defaults the host opts into (`godxPreset` from `@godxjp/ui/themes/godx`). Fills only
|
|
31
|
+
* what the props leave unset; its `name` is written to `<html data-preset>`. Omit for neutral.
|
|
32
|
+
*/
|
|
33
|
+
preset?: AppPreset;
|
|
25
34
|
/** Fallback when a translation key is missing. Default: `en`. */
|
|
26
35
|
fallbackLocale?: AppLocale;
|
|
27
36
|
/** Initial timezone: IANA id, `browser`, or `system`. Default: `browser`. */
|
|
@@ -94,7 +103,9 @@ export type AppSettingKind = "locale" | "timezone" | "dateFormat" | "timeFormat"
|
|
|
94
103
|
* Replaces the former Locale/Timezone/Date-format/Time-format pickers; pick the target
|
|
95
104
|
* via `kind`. Bound to `<AppProvider>` by default; pass value + onValueChange to control.
|
|
96
105
|
*/
|
|
97
|
-
export type
|
|
106
|
+
export type AppSettingPickerMenuProp = {
|
|
107
|
+
/** `true` (default): open-then-choose from a menu. `false`: see {@link AppSettingPickerCycleProp}. */
|
|
108
|
+
menu?: true;
|
|
98
109
|
kind: AppSettingKind;
|
|
99
110
|
/**
|
|
100
111
|
* Trigger presentation. `"labeled"` shows the leading icon + the selected value in a control
|
|
@@ -117,22 +128,24 @@ export type AppSettingPickerProp = {
|
|
|
117
128
|
onValueChange?: OnValueChangeProp<string>;
|
|
118
129
|
};
|
|
119
130
|
/**
|
|
120
|
-
* The {
|
|
131
|
+
* The `menu={false}` subset of {@link AppSettingKind} — the settings whose value set is
|
|
121
132
|
* CLOSED and short enough to cycle by tapping. `locale`, `timezone`, `dateFormat` and `brand` are
|
|
122
133
|
* deliberately absent: a 400-entry IANA list (or a palette a service extends) is a menu, not a
|
|
123
134
|
* cycle, and tapping through it is not a control anyone can use.
|
|
124
135
|
*/
|
|
125
|
-
export type
|
|
136
|
+
export type AppSettingCycleKind = Extract<AppSettingKind, "theme" | "density" | "fontSize" | "timeFormat">;
|
|
126
137
|
/**
|
|
127
|
-
* @see
|
|
128
|
-
* shows that value as its glyph
|
|
129
|
-
* binding contract (context-bound by default, controlled via value + onValueChange),
|
|
130
|
-
* order, one tap instead of open-then-choose.
|
|
138
|
+
* @see AppSettingPicker `menu={false}` — one BUTTON that steps a single AppProvider setting to its
|
|
139
|
+
* next value and shows that value as its glyph (the former `AppSettingToggle`, v32 #1223). Same
|
|
140
|
+
* binding contract as the menu (context-bound by default, controlled via value + onValueChange),
|
|
141
|
+
* same option order, one tap instead of open-then-choose.
|
|
131
142
|
*/
|
|
132
|
-
export type
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
143
|
+
export type AppSettingPickerCycleProp = {
|
|
144
|
+
/** `false`: no menu — each tap steps to the next value. */
|
|
145
|
+
menu: false;
|
|
146
|
+
kind: AppSettingCycleKind;
|
|
147
|
+
/** Box the button takes. Default: `"bar"` — a cycler exists for a top bar. */
|
|
148
|
+
appearance?: AppSettingCycleAppearanceProp;
|
|
136
149
|
className?: ClassNameProp;
|
|
137
150
|
disabled?: DisabledProp;
|
|
138
151
|
id?: IdProp;
|
|
@@ -140,6 +153,8 @@ export type AppSettingToggleProp = {
|
|
|
140
153
|
value?: ValueProp<string>;
|
|
141
154
|
onValueChange?: OnValueChangeProp<string>;
|
|
142
155
|
};
|
|
156
|
+
/** @see AppSettingPicker — the menu (default) or, with `menu={false}`, the one-tap cycler. */
|
|
157
|
+
export type AppSettingPickerProp = AppSettingPickerMenuProp | AppSettingPickerCycleProp;
|
|
143
158
|
/** Value exposed by `useAppContext`. */
|
|
144
159
|
export type AppContextValue = {
|
|
145
160
|
locale: AppLocale;
|
|
@@ -156,30 +156,6 @@ export type FeatureListProp = Omit<React.HTMLAttributes<HTMLUListElement>, "chil
|
|
|
156
156
|
items: FeatureItemProp[];
|
|
157
157
|
className?: ClassNameProp;
|
|
158
158
|
};
|
|
159
|
-
/**
|
|
160
|
-
* Fixed BLOCK size of a `Thumbnail`; the inline size stays intrinsic.
|
|
161
|
-
*
|
|
162
|
-
* A subset of the shared `SizeProp` ladder — `xs` is off the bottom because a 48px frame with a
|
|
163
|
-
* 1px hairline is a favicon, not a thumbnail, and nothing in the reported cases wanted one.
|
|
164
|
-
*/
|
|
165
|
-
export type ThumbnailSizeProp = Extract<SizeProp, "sm" | "md" | "lg">;
|
|
166
|
-
/**
|
|
167
|
-
* @see Thumbnail — a framed image at a FIXED HEIGHT and its own intrinsic width, for a wrapping
|
|
168
|
-
* row of pictures whose aspect ratios differ.
|
|
169
|
-
*/
|
|
170
|
-
export type ThumbnailProp = Omit<React.ImgHTMLAttributes<HTMLImageElement>, "alt"> & {
|
|
171
|
-
/** Image URL. */
|
|
172
|
-
src: string;
|
|
173
|
-
/**
|
|
174
|
-
* Required, with no way to omit it. Pass `""` for a picture that carries no information the
|
|
175
|
-
* page does not already say — the empty string is a DECISION the author has to make, where a
|
|
176
|
-
* missing attribute is an omission nobody notices (WCAG 1.1.1).
|
|
177
|
-
*/
|
|
178
|
-
alt: string;
|
|
179
|
-
/** Frame height. Default `md`. The width follows the picture's own ratio. */
|
|
180
|
-
size?: ThumbnailSizeProp;
|
|
181
|
-
className?: ClassNameProp;
|
|
182
|
-
};
|
|
183
159
|
/** @see EmptyState */
|
|
184
160
|
/**
|
|
185
161
|
* Semantic intent of the EmptyState icon medallion — a subset of the shared `ToneProp` vocabulary
|
|
@@ -1166,7 +1142,7 @@ export type MarqueeSpeedProp = "slow" | "base" | "fast";
|
|
|
1166
1142
|
*
|
|
1167
1143
|
* The clone count is MEASURED (content width against viewport width, re-measured on resize) —
|
|
1168
1144
|
* the behaviour no CSS-only marquee can have — and the pause control is why this is a component
|
|
1169
|
-
* rather than a snippet. See `src/
|
|
1145
|
+
* rather than a snippet. See `src/lab/marquee.tsx` for the full argument and
|
|
1170
1146
|
* for what is deliberately not ported from `react-fast-marquee`.
|
|
1171
1147
|
*/
|
|
1172
1148
|
export type MarqueeProp = Omit<React.HTMLAttributes<HTMLDivElement>, "onPlay" | "onPause" | "children"> & {
|
|
@@ -1330,7 +1306,7 @@ export type ImageProp = Omit<React.ImgHTMLAttributes<HTMLImageElement>, "alt" |
|
|
|
1330
1306
|
/** Image URL. */
|
|
1331
1307
|
src: string;
|
|
1332
1308
|
/**
|
|
1333
|
-
* Required
|
|
1309
|
+
* Required: `""` is a decision, a missing `alt` an omission (WCAG 1.1.1). It
|
|
1334
1310
|
* also names the preview trigger ("Preview: {alt}").
|
|
1335
1311
|
*/
|
|
1336
1312
|
alt: string;
|
|
@@ -1356,7 +1332,17 @@ export type ImageProp = Omit<React.ImgHTMLAttributes<HTMLImageElement>, "alt" |
|
|
|
1356
1332
|
* `width`/`height`, which override the preset's side they name.
|
|
1357
1333
|
*/
|
|
1358
1334
|
size?: ImageSizeProp;
|
|
1359
|
-
/**
|
|
1335
|
+
/**
|
|
1336
|
+
* How the picture fills a fixed frame. `cover` crops, `contain` letterboxes (both inside the
|
|
1337
|
+
* 4:3 `size` frame or the `width`×`height` one). Default `cover` once the height is fixed.
|
|
1338
|
+
*
|
|
1339
|
+
* `intrinsic` keeps the picture's OWN ratio: the frame takes the `size` height and the picture's
|
|
1340
|
+
* own width — nothing cropped, nothing letterboxed — drawn with the hairline thumbnail frame on a
|
|
1341
|
+
* muted backdrop and clamped to its container. `width`/`height` then stay pure `<img>`
|
|
1342
|
+
* attributes (the file's real pixels), so the browser reserves the final width before the
|
|
1343
|
+
* bytes land. This is what the retired `Thumbnail` was (v32 #1223): a wrapping row of portrait
|
|
1344
|
+
* and landscape shots at one height.
|
|
1345
|
+
*/
|
|
1360
1346
|
fit?: ImageFitProp;
|
|
1361
1347
|
/**
|
|
1362
1348
|
* Text under the picture, held to the picture's width, so a long file name truncates instead of
|
|
@@ -1367,8 +1353,12 @@ export type ImageProp = Omit<React.ImgHTMLAttributes<HTMLImageElement>, "alt" |
|
|
|
1367
1353
|
};
|
|
1368
1354
|
/** `Image` thumbnail frame preset — the `Thumbnail` height scale. */
|
|
1369
1355
|
export type ImageSizeProp = Extract<SizeProp, "sm" | "md" | "lg">;
|
|
1370
|
-
/**
|
|
1371
|
-
|
|
1356
|
+
/**
|
|
1357
|
+
* `Image` `fit` — `cover`/`contain` are the picture's `object-fit` inside a fixed frame;
|
|
1358
|
+
* `intrinsic` sizes the frame to the picture's own ratio at the `size` height (the former
|
|
1359
|
+
* `Thumbnail`).
|
|
1360
|
+
*/
|
|
1361
|
+
export type ImageFitProp = "cover" | "contain" | "intrinsic";
|
|
1372
1362
|
/**
|
|
1373
1363
|
* @see ImagePreviewGroup — pages the preview across a set of pictures (antd `Image.PreviewGroup`).
|
|
1374
1364
|
*
|