@godxjp/ui 19.1.0 → 19.2.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 +25 -128
- package/dist/app/theme-axes.d.ts +4 -15
- package/dist/app/timezones.d.ts +1 -4
- package/dist/components/charts/area-chart.d.ts +2 -3
- package/dist/components/charts/bar-chart.d.ts +2 -3
- package/dist/components/charts/chart-frame.d.ts +7 -16
- package/dist/components/charts/chart-summary.d.ts +2 -2
- package/dist/components/charts/compact-bar-trend.d.ts +9 -24
- package/dist/components/charts/index.d.ts +1 -6
- package/dist/components/data-display/badge.d.ts +2 -12
- package/dist/components/data-display/card.d.ts +21 -41
- package/dist/components/data-display/carousel.d.ts +1 -2
- package/dist/components/data-display/code-block.d.ts +4 -0
- package/dist/components/data-display/code-block.js +24 -0
- package/dist/components/data-display/data-table.d.ts +15 -37
- package/dist/components/data-display/data-table.js +1 -3
- package/dist/components/data-display/descriptions.d.ts +2 -6
- package/dist/components/data-display/descriptions.js +0 -2
- package/dist/components/data-display/index.d.ts +4 -0
- package/dist/components/data-display/index.js +4 -0
- package/dist/components/data-display/list-row.d.ts +3 -22
- package/dist/components/data-display/permission-matrix.d.ts +7 -20
- package/dist/components/data-display/progress.d.ts +1 -1
- package/dist/components/data-display/prose.d.ts +4 -0
- package/dist/components/data-display/prose.js +20 -0
- package/dist/components/data-display/service-launcher-card.d.ts +3 -10
- package/dist/components/data-display/table.d.ts +20 -80
- package/dist/components/data-display/table.js +0 -3
- package/dist/components/data-display/timeline.d.ts +3 -5
- package/dist/components/data-entry/branch-scope-picker.d.ts +2 -19
- package/dist/components/data-entry/branch-scope-picker.js +0 -1
- package/dist/components/data-entry/calendar.d.ts +3 -2
- package/dist/components/data-entry/calendar.js +58 -3
- package/dist/components/data-entry/command-palette.d.ts +8 -22
- package/dist/components/data-entry/date-picker.d.ts +4 -5
- package/dist/components/data-entry/date-picker.js +6 -1
- package/dist/components/data-entry/date-range-picker.d.ts +1 -1
- package/dist/components/data-entry/date-range-picker.js +8 -3
- package/dist/components/data-entry/form-errors.d.ts +7 -18
- package/dist/components/data-entry/form-field.js +1 -5
- package/dist/components/data-entry/form.d.ts +1 -9
- package/dist/components/data-entry/input.d.ts +16 -14
- package/dist/components/data-entry/input.js +3 -0
- package/dist/components/data-entry/month-picker.js +2 -2
- package/dist/components/data-entry/month-range-picker.d.ts +4 -6
- package/dist/components/data-entry/month-range-picker.js +2 -2
- package/dist/components/data-entry/number-input.d.ts +1 -5
- package/dist/components/data-entry/number-input.js +1 -0
- package/dist/components/data-entry/radio.js +0 -1
- package/dist/components/data-entry/search-select.d.ts +2 -4
- package/dist/components/data-entry/select.d.ts +11 -6
- package/dist/components/data-entry/select.js +4 -2
- package/dist/components/data-entry/switch.js +0 -1
- package/dist/components/data-entry/textarea.d.ts +10 -16
- package/dist/components/data-entry/time-picker.d.ts +3 -5
- package/dist/components/data-entry/upload-types.d.ts +1 -5
- package/dist/components/data-entry/use-upload-draft.d.ts +0 -4
- package/dist/components/feedback/dialog.d.ts +6 -15
- package/dist/components/feedback/overlay-header-tone.d.ts +1 -1
- package/dist/components/feedback/sheet.d.ts +3 -10
- package/dist/components/feedback/sheet.js +1 -1
- package/dist/components/feedback/sonner.js +2 -3
- package/dist/components/general/activity.d.ts +4 -30
- package/dist/components/general/button.js +1 -10
- package/dist/components/general/logo.d.ts +6 -28
- package/dist/components/general/reveal.d.ts +3 -9
- package/dist/components/general/typography.d.ts +1 -3
- package/dist/components/layout/account-chip.d.ts +8 -0
- package/dist/components/layout/account-chip.js +45 -0
- package/dist/components/layout/auth-divider.d.ts +2 -9
- package/dist/components/layout/auth-shell.d.ts +1 -14
- package/dist/components/layout/breadcrumb.d.ts +1 -5
- package/dist/components/layout/centered-shell.d.ts +4 -18
- package/dist/components/layout/error-surface.d.ts +11 -28
- package/dist/components/layout/error-surface.js +4 -1
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/layout/index.js +2 -0
- package/dist/components/layout/legal-document-shell.d.ts +5 -28
- package/dist/components/layout/master-detail.d.ts +2 -18
- package/dist/components/layout/page-container.js +0 -1
- package/dist/components/layout/responsive-grid.d.ts +6 -1
- package/dist/components/layout/responsive-grid.js +9 -2
- package/dist/components/layout/service-role-panel.d.ts +7 -19
- package/dist/components/layout/sidebar.d.ts +5 -27
- package/dist/components/layout/sidebar.js +0 -1
- package/dist/components/layout/split-pane.d.ts +0 -7
- package/dist/components/layout/topbar.d.ts +1 -14
- package/dist/components/navigation/app-setting-picker.js +1 -3
- package/dist/components/navigation/filter-bar.d.ts +1 -6
- package/dist/components/navigation/pagination-utils.d.ts +2 -12
- package/dist/components/navigation/tabs-scroll.d.ts +2 -36
- package/dist/components/navigation/tabs.js +4 -8
- package/dist/components/query/data-state.d.ts +2 -2
- package/dist/components/ui/credential-reveal.d.ts +1 -4
- package/dist/components/ui/hover-card.d.ts +1 -2
- package/dist/components/ui/separator.d.ts +2 -15
- package/dist/components/ui/toggle-group.d.ts +1 -5
- package/dist/components/ui/toggle.d.ts +6 -31
- package/dist/email/brand-mark.d.ts +6 -34
- package/dist/email/color.d.ts +7 -17
- package/dist/email/geometry.d.ts +4 -8
- package/dist/email/index.d.ts +4 -48
- package/dist/email/inline-style.d.ts +3 -9
- package/dist/email/urgency.d.ts +2 -7
- package/dist/form/form-context.d.ts +2 -5
- package/dist/form/form-root.d.ts +1 -2
- package/dist/i18n/messages/en.json +4 -0
- package/dist/i18n/messages/ja.json +4 -0
- package/dist/i18n/messages/vi.json +4 -0
- package/dist/inertia/index.d.ts +2 -10
- package/dist/lib/control-styles.d.ts +10 -21
- package/dist/lib/control-styles.js +4 -6
- package/dist/lib/datetime/format-date.d.ts +1 -4
- package/dist/lib/field-a11y.d.ts +11 -68
- package/dist/lib/field-a11y.js +0 -1
- package/dist/lib/format.d.ts +4 -8
- package/dist/lib/hooks.d.ts +6 -12
- package/dist/lib/permission-grid.d.ts +3 -18
- package/dist/lib/query-error.d.ts +3 -3
- package/dist/props/components/app.prop.d.ts +15 -38
- package/dist/props/components/charts.prop.d.ts +2 -3
- package/dist/props/components/data-display.prop.d.ts +48 -72
- package/dist/props/components/data-entry.prop.d.ts +35 -40
- package/dist/props/components/form.prop.d.ts +2 -6
- package/dist/props/components/general.prop.d.ts +11 -27
- package/dist/props/components/layout.prop.d.ts +89 -260
- package/dist/props/components/navigation.prop.d.ts +27 -42
- package/dist/props/registry.d.ts +31 -0
- package/dist/props/registry.js +33 -0
- package/dist/props/vocabulary/data.prop.d.ts +18 -49
- package/dist/props/vocabulary/index.d.ts +1 -1
- package/dist/props/vocabulary/interaction.prop.d.ts +10 -12
- package/dist/props/vocabulary/layout.prop.d.ts +8 -30
- package/dist/props/vocabulary/shared.prop.d.ts +3 -2
- package/dist/styles/alert-layout.css +1 -32
- package/dist/styles/badge-layout.css +4 -18
- package/dist/styles/base.css +14 -113
- package/dist/styles/card-layout.css +6 -128
- package/dist/styles/chart-layout.css +2 -17
- package/dist/styles/control.css +380 -458
- package/dist/styles/core.css +21 -0
- package/dist/styles/data-display-layout.css +175 -94
- package/dist/styles/data-entry-layout.css +0 -45
- package/dist/styles/density.css +1 -30
- package/dist/styles/dialog-layout.css +5 -69
- package/dist/styles/focus-ring.css +13 -87
- package/dist/styles/fonts.css +1 -31
- package/dist/styles/form-layout.css +7 -91
- package/dist/styles/index.css +2 -20
- package/dist/styles/layout.css +38 -456
- package/dist/styles/logo-layout.css +1 -35
- package/dist/styles/motion.css +3 -42
- package/dist/styles/navigation-layout.css +3 -50
- package/dist/styles/shell-layout.css +37 -403
- package/dist/styles/table-layout.css +16 -274
- package/dist/styles/text-layout.css +7 -21
- package/dist/styles/toggle.css +1 -23
- package/dist/theme/dxs.canonical.css +1 -55
- package/dist/theme/example.service.css +1 -26
- package/dist/theme/famgia.service.css +5 -15
- package/dist/tokens/axes.css +3 -40
- package/dist/tokens/base.css +1 -4
- package/dist/tokens/components/activity.css +6 -42
- package/dist/tokens/components/badge.css +4 -13
- package/dist/tokens/components/banner.css +4 -9
- package/dist/tokens/components/card.css +32 -88
- package/dist/tokens/components/chart.css +9 -26
- package/dist/tokens/components/control.css +37 -222
- package/dist/tokens/components/data-display.css +28 -79
- package/dist/tokens/components/data-entry.css +5 -19
- package/dist/tokens/components/descriptions.css +7 -27
- package/dist/tokens/components/email.css +38 -84
- package/dist/tokens/components/error-surface.css +2 -18
- package/dist/tokens/components/feedback.css +27 -124
- package/dist/tokens/components/form.css +13 -45
- package/dist/tokens/components/legal-document.css +16 -41
- package/dist/tokens/components/list-row.css +11 -36
- package/dist/tokens/components/logo.css +2 -57
- package/dist/tokens/components/navigation.css +16 -94
- package/dist/tokens/components/scroll-area.css +2 -18
- package/dist/tokens/components/separator.css +8 -30
- package/dist/tokens/components/sheet.css +3 -14
- package/dist/tokens/components/shell.css +53 -307
- package/dist/tokens/components/sidebar.css +5 -22
- package/dist/tokens/components/table.css +19 -140
- package/dist/tokens/components/toggle.css +3 -65
- package/dist/tokens/components/upload.css +7 -43
- package/dist/tokens/foundation.css +108 -383
- package/dist/tokens/semantic/layout.css +33 -207
- package/docs/CANONICAL-CONTRACTS.md +206 -0
- package/docs/COMPONENTS.md +157 -0
- package/docs/COMPOSITION-VS-COMPONENT.md +105 -0
- package/docs/CONSUMER-RULES.md +14 -0
- package/docs/CUSTOMER-THEMING.md +162 -0
- package/docs/DATETIME.md +69 -0
- package/docs/DEVELOPMENT.md +173 -0
- package/docs/FORMS.md +143 -0
- package/docs/FRAME-A11Y-CI.md +267 -0
- package/docs/FRAME-COVERAGE-LEDGER.md +123 -0
- package/docs/FRAME-COVERAGE-REPORT.md +140 -0
- package/docs/FRAME-COVERAGE-STANDARD.md +65 -0
- package/docs/FRAME-COVERAGE.md +29 -0
- package/docs/PROPS-REGISTRY.md +61 -0
- package/docs/PROPS-VOCABULARY.md +100 -0
- package/docs/README.md +60 -0
- package/docs/REGISTRY.md +70 -0
- package/docs/SPACING.md +56 -0
- package/docs/STANDARDS-vocabulary-tokens.md +48 -0
- package/docs/TESTING.md +98 -0
- package/docs/TOKENS.md +347 -0
- package/docs/asset-modules.d.ts +46 -0
- package/docs/assets/cover-terrain.svg +6 -0
- package/docs/assets/portrait-amber.svg +5 -0
- package/docs/assets/portrait-clay.svg +5 -0
- package/docs/assets/portrait-indigo.svg +5 -0
- package/docs/assets/portrait-iris.svg +5 -0
- package/docs/assets/portrait-moss.svg +5 -0
- package/docs/assets/portrait-plum.svg +5 -0
- package/docs/assets/portrait-slate.svg +5 -0
- package/docs/charts/compact-bar-trend.tsx +328 -0
- package/docs/charts/size-tiers.tsx +192 -0
- package/docs/data-display/accordion.tsx +99 -0
- package/docs/data-display/avatar.tsx +355 -0
- package/docs/data-display/badge.tsx +247 -0
- package/docs/data-display/card/examples/detail-panel.tsx +106 -0
- package/docs/data-display/card/index.md +3 -0
- package/docs/data-display/card/index.tsx +285 -0
- package/docs/data-display/carousel.tsx +156 -0
- package/docs/data-display/charts.tsx +198 -0
- package/docs/data-display/code-block.tsx +90 -0
- package/docs/data-display/collapsible.tsx +162 -0
- package/docs/data-display/credential-reveal.tsx +145 -0
- package/docs/data-display/data-table/examples/approval-queue.tsx +212 -0
- package/docs/data-display/data-table/examples/grid-features.tsx +158 -0
- package/docs/data-display/data-table/examples/list-page.tsx +175 -0
- package/docs/data-display/data-table/index.md +5 -0
- package/docs/data-display/data-table/index.tsx +295 -0
- package/docs/data-display/descriptions.tsx +143 -0
- package/docs/data-display/empty-state.tsx +164 -0
- package/docs/data-display/hover-card.tsx +181 -0
- package/docs/data-display/list-row.tsx +420 -0
- package/docs/data-display/permission-matrix.tsx +184 -0
- package/docs/data-display/popover-touch.tsx +27 -0
- package/docs/data-display/popover.tsx +245 -0
- package/docs/data-display/progress.tsx +84 -0
- package/docs/data-display/prose.tsx +105 -0
- package/docs/data-display/qr-code.tsx +68 -0
- package/docs/data-display/scroll-area.tsx +271 -0
- package/docs/data-display/service-launcher-card.tsx +145 -0
- package/docs/data-display/stat-card.tsx +99 -0
- package/docs/data-display/table.tsx +251 -0
- package/docs/data-display/timeline.tsx +112 -0
- package/docs/data-display/touch-actions.tsx +36 -0
- package/docs/data-display/tree-list.tsx +107 -0
- package/docs/data-entry/branch-scope-picker.tsx +123 -0
- package/docs/data-entry/calendar.tsx +180 -0
- package/docs/data-entry/cascader.tsx +378 -0
- package/docs/data-entry/checkbox.tsx +256 -0
- package/docs/data-entry/color-picker.tsx +117 -0
- package/docs/data-entry/command-palette.tsx +179 -0
- package/docs/data-entry/command.tsx +262 -0
- package/docs/data-entry/country-picker-recipe.tsx +170 -0
- package/docs/data-entry/date-picker.tsx +191 -0
- package/docs/data-entry/date-range-picker.tsx +149 -0
- package/docs/data-entry/form/examples/employee-settings.tsx +267 -0
- package/docs/data-entry/form/examples/invoice-form.tsx +387 -0
- package/docs/data-entry/form-field/examples/a11y-contract.tsx +240 -0
- package/docs/data-entry/form-field/examples/create-form.tsx +105 -0
- package/docs/data-entry/form-field/index.md +8 -0
- package/docs/data-entry/form-field/index.tsx +326 -0
- package/docs/data-entry/form-inertia.tsx +80 -0
- package/docs/data-entry/form-root.tsx +102 -0
- package/docs/data-entry/form.tsx +724 -0
- package/docs/data-entry/input-otp.tsx +231 -0
- package/docs/data-entry/input.tsx +114 -0
- package/docs/data-entry/label.tsx +100 -0
- package/docs/data-entry/month-picker.tsx +101 -0
- package/docs/data-entry/month-range-picker.tsx +115 -0
- package/docs/data-entry/number-input.tsx +240 -0
- package/docs/data-entry/password-input.tsx +106 -0
- package/docs/data-entry/password-strength.tsx +97 -0
- package/docs/data-entry/radio-group.tsx +95 -0
- package/docs/data-entry/rating.tsx +87 -0
- package/docs/data-entry/search-input.tsx +120 -0
- package/docs/data-entry/select-async-contracts.tsx +108 -0
- package/docs/data-entry/select-matrix.tsx +204 -0
- package/docs/data-entry/select.tsx +369 -0
- package/docs/data-entry/slider.tsx +130 -0
- package/docs/data-entry/switch.tsx +67 -0
- package/docs/data-entry/tag-input.tsx +108 -0
- package/docs/data-entry/textarea.tsx +209 -0
- package/docs/data-entry/time-picker.tsx +99 -0
- package/docs/data-entry/toggle-count.tsx +293 -0
- package/docs/data-entry/toggle-group.tsx +225 -0
- package/docs/data-entry/toggle.tsx +127 -0
- package/docs/data-entry/transfer.tsx +97 -0
- package/docs/data-entry/tree-select.tsx +204 -0
- package/docs/data-entry/upload.tsx +184 -0
- package/docs/feedback/alert-dialog.tsx +270 -0
- package/docs/feedback/alert.tsx +248 -0
- package/docs/feedback/banner.tsx +183 -0
- package/docs/feedback/danger-confirm.tsx +88 -0
- package/docs/feedback/dialog-touch.tsx +24 -0
- package/docs/feedback/dialog.tsx +193 -0
- package/docs/feedback/sheet.tsx +410 -0
- package/docs/feedback/skeleton.tsx +111 -0
- package/docs/feedback/toast.tsx +135 -0
- package/docs/feedback/tooltip.tsx +171 -0
- package/docs/feedback/two-factor-setup.tsx +68 -0
- package/docs/foundation/_email-specimen.ts +274 -0
- package/docs/foundation/colors.tsx +202 -0
- package/docs/foundation/density.tsx +232 -0
- package/docs/foundation/email-tokens.tsx +306 -0
- package/docs/foundation/radius-shadow.tsx +152 -0
- package/docs/foundation/spacing.tsx +211 -0
- package/docs/foundation/typography.tsx +147 -0
- package/docs/general/activity.tsx +224 -0
- package/docs/general/button/examples/destructive-confirm.tsx +90 -0
- package/docs/general/button/examples/form-actions.tsx +85 -0
- package/docs/general/button/examples/toolbar.tsx +160 -0
- package/docs/general/button/index.md +12 -0
- package/docs/general/button/index.tsx +211 -0
- package/docs/general/logo.tsx +131 -0
- package/docs/general/reveal.tsx +41 -0
- package/docs/general/typography.tsx +152 -0
- package/docs/layout/account-chip.tsx +72 -0
- package/docs/layout/admin-collection.tsx +122 -0
- package/docs/layout/app-shell.tsx +374 -0
- package/docs/layout/aspect-ratio.tsx +119 -0
- package/docs/layout/auth-account-summary.tsx +103 -0
- package/docs/layout/auth-divider.tsx +28 -0
- package/docs/layout/auth-footer.tsx +37 -0
- package/docs/layout/auth-identity.tsx +36 -0
- package/docs/layout/auth-recovery/examples/mfa-challenge.md +41 -0
- package/docs/layout/auth-recovery/examples/mfa-challenge.tsx +254 -0
- package/docs/layout/auth-recovery/examples/mobile-390.md +25 -0
- package/docs/layout/auth-recovery/examples/mobile-390.tsx +82 -0
- package/docs/layout/auth-recovery/examples/password-recovery.md +24 -0
- package/docs/layout/auth-recovery/examples/password-recovery.tsx +197 -0
- package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.md +27 -0
- package/docs/layout/auth-recovery/examples/wrapping-ja-en-vi.tsx +156 -0
- package/docs/layout/auth-recovery/index.md +140 -0
- package/docs/layout/auth-recovery/index.tsx +96 -0
- package/docs/layout/auth-shell-context.tsx +103 -0
- package/docs/layout/auth-shell-device.tsx +112 -0
- package/docs/layout/auth-shell-registration.tsx +335 -0
- package/docs/layout/auth-shell-variants.tsx +139 -0
- package/docs/layout/auth-shell.tsx +59 -0
- package/docs/layout/auth-stack.tsx +40 -0
- package/docs/layout/centered-shell.tsx +102 -0
- package/docs/layout/error-surface/examples/application-403.tsx +84 -0
- package/docs/layout/error-surface/examples/application-404.tsx +77 -0
- package/docs/layout/error-surface/examples/system-500.tsx +47 -0
- package/docs/layout/error-surface/examples/system-503.tsx +48 -0
- package/docs/layout/error-surface/index.md +153 -0
- package/docs/layout/error-surface/index.tsx +239 -0
- package/docs/layout/flex.tsx +262 -0
- package/docs/layout/legal-document-shell/_data.ts +110 -0
- package/docs/layout/legal-document-shell/examples/desktop-1440.md +12 -0
- package/docs/layout/legal-document-shell/examples/desktop-1440.tsx +83 -0
- package/docs/layout/legal-document-shell/examples/mobile-390.md +22 -0
- package/docs/layout/legal-document-shell/examples/mobile-390.tsx +70 -0
- package/docs/layout/legal-document-shell/examples/tablet-1024.md +3 -0
- package/docs/layout/legal-document-shell/examples/tablet-1024.tsx +84 -0
- package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.md +18 -0
- package/docs/layout/legal-document-shell/examples/wrapping-ja-en-vi.tsx +61 -0
- package/docs/layout/legal-document-shell/index.md +51 -0
- package/docs/layout/legal-document-shell/index.tsx +101 -0
- package/docs/layout/master-detail.tsx +387 -0
- package/docs/layout/org-switcher.tsx +131 -0
- package/docs/layout/page-container.tsx +946 -0
- package/docs/layout/resizable-panel.tsx +419 -0
- package/docs/layout/responsive-grid.tsx +235 -0
- package/docs/layout/separator.tsx +327 -0
- package/docs/layout/service-role-panel.tsx +144 -0
- package/docs/layout/sidebar.tsx +586 -0
- package/docs/layout/split-pane.tsx +451 -0
- package/docs/layout/topbar.tsx +347 -0
- package/docs/navigation/app-setting-picker.tsx +141 -0
- package/docs/navigation/breadcrumb.tsx +128 -0
- package/docs/navigation/context-menu.tsx +117 -0
- package/docs/navigation/dropdown-menu.tsx +213 -0
- package/docs/navigation/filter-bar.tsx +227 -0
- package/docs/navigation/menubar.tsx +141 -0
- package/docs/navigation/navigation-menu.tsx +165 -0
- package/docs/navigation/pagination.tsx +241 -0
- package/docs/navigation/steps.tsx +263 -0
- package/docs/navigation/tabs-rtl.tsx +28 -0
- package/docs/navigation/tabs.tsx +308 -0
- package/docs/navigation/toolbar.tsx +339 -0
- package/docs/providers/app-provider.tsx +191 -0
- package/docs/providers/format-date.tsx +230 -0
- package/docs/query/button-refetch.tsx +160 -0
- package/docs/query/data-state.tsx +192 -0
- package/docs/query/infinite-query-state.tsx +93 -0
- package/docs/query/mutation-feedback.tsx +70 -0
- package/docs/query/prefetch-link.tsx +262 -0
- package/docs/query/touch-actions.tsx +68 -0
- package/docs/showcase/acme-portal.tsx +441 -0
- package/docs/showcase/acme-website.tsx +455 -0
- package/docs/showcase/case1-warehouse-dashboard.tsx +343 -0
- package/docs/showcase/case2-employee-me.tsx +441 -0
- package/docs/showcase/case3-approval-workflow.tsx +527 -0
- package/docs/showcase/case4-login.tsx +307 -0
- package/docs/showcase/case5-shift-calendar.tsx +795 -0
- package/docs/showcase/case6-agency-handy.tsx +1072 -0
- package/docs/showcase/futurelastic-web.tsx +390 -0
- package/docs/showcase/org-switcher.tsx +313 -0
- package/docs/showcase/permission-matrix.tsx +343 -0
- package/docs/showcase/public-landing.tsx +210 -0
- package/docs/showcase/settings-account-sections.tsx +559 -0
- package/docs/showcase/settings-security-mfa.tsx +145 -0
- package/docs/showcase/table-approval-queue.tsx +199 -0
- package/docs/showcase/table-bulk-actions.tsx +460 -0
- package/docs/showcase/table-compact-kintone.tsx +438 -0
- package/docs/showcase/table-conditional-format.tsx +367 -0
- package/docs/showcase/table-crud-list.tsx +544 -0
- package/docs/showcase/table-density.tsx +340 -0
- package/docs/showcase/table-expandable-rows.tsx +471 -0
- package/docs/showcase/table-filter-chips.tsx +461 -0
- package/docs/showcase/table-footer-totals.tsx +311 -0
- package/docs/showcase/table-grouped-subtotals.tsx +388 -0
- package/docs/showcase/table-master-detail.tsx +479 -0
- package/docs/showcase/table-pagination.tsx +320 -0
- package/docs/showcase/table-states.tsx +363 -0
- package/docs/showcase/table-sticky-columns.tsx +373 -0
- package/docs/showcase/table-tree-rows.tsx +444 -0
- package/docs/showcase/table-view-tabs.tsx +488 -0
- package/package.json +9 -11
- package/scripts/_agent-setup.mjs +16 -2
- package/scripts/audit-hook.mjs +3 -13
- package/scripts/init-agent-kit.mjs +1 -14
- package/scripts/postinstall.mjs +12 -12
- package/scripts/ui-audit.mjs +93 -31
- package/scripts/visual-audit-rules.mjs +51 -7
- package/scripts/visual-audit.mjs +118 -47
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* LOGO — the product brand-mark box (a glyph on the primary fill). Replaces the hand-rolled
|
|
3
|
-
* `<span aria-hidden className="grid size-7 place-items-center rounded-md bg-primary …">g</span>`
|
|
4
|
-
* repeated across app shells and topbars (issue #116): size/radius/font-size are tokens (rule #45),
|
|
5
|
-
* colours read the primary role directly, and the type comes from a semantic class (not utilities
|
|
6
|
-
* on a bare span, rule #46).
|
|
7
|
-
*/
|
|
1
|
+
|
|
8
2
|
@layer components {
|
|
9
3
|
.ui-logo {
|
|
10
4
|
display: inline-grid;
|
|
@@ -39,31 +33,11 @@
|
|
|
39
33
|
font-size: var(--logo-font-size-lg);
|
|
40
34
|
}
|
|
41
35
|
|
|
42
|
-
/* Identity fills — the IDENTITY role --brand (canonical GoDX emerald), NOT the --success STATUS
|
|
43
|
-
* green: `tone="success"` names the semantic slot, not the status role, and a badge/progress
|
|
44
|
-
* green must never drag the product mark with it (gh#250). Role defaults live HERE (call site),
|
|
45
|
-
* not on :root, so a scoped `.dark` / `[data-tenant]` override of --brand re-resolves
|
|
46
|
-
* (docs/TOKENS.md · role-mirror knobs).
|
|
47
|
-
*
|
|
48
|
-
* The INK is --logo-identity-foreground, NOT --brand-foreground: this branch sets caller-supplied
|
|
49
|
-
* TEXT on the fill, so WCAG 2.2 SC 1.4.3 applies at 4.5:1 (14px bold is not "large text"), while
|
|
50
|
-
* --brand-foreground is the artwork KNOCKOUT colour that tracks --background and only owes 3:1 as
|
|
51
|
-
* non-text (SC 1.4.11). Knockout white on the emerald measured 3.67:1 — an AA failure on every
|
|
52
|
-
* boxed `tone="success"` glyph. See src/tokens/components/logo.css. */
|
|
53
36
|
.ui-logo[data-tone="success"] {
|
|
54
37
|
background: hsl(var(--logo-success-background, var(--brand)));
|
|
55
38
|
color: hsl(var(--logo-success-foreground, var(--logo-identity-foreground)));
|
|
56
39
|
}
|
|
57
40
|
|
|
58
|
-
/* The identity mark honours `size` like every other Logo branch. The godx box has its OWN tier
|
|
59
|
-
* scale (--logo-godx-size-*) because the artwork is a horizontal capsule in a square viewBox and
|
|
60
|
-
* needs ~+0.25rem over the filled glyph box to read at the same weight — but a public `size` prop
|
|
61
|
-
* that renders identically at xs and lg is a silent no-op, and the lockup already scaled its
|
|
62
|
-
* wordmark per tier, so a frozen mark broke the mark↔wordmark proportion at `size="lg"`.
|
|
63
|
-
* These are `[data-mark][data-size]` (0,3,0) so they beat BOTH `.ui-logo[data-size]` and the
|
|
64
|
-
* `[data-mark="godx"]` base regardless of source order — the ordering bug that hid `size` here.
|
|
65
|
-
* --logo-godx-size stays the documented PIN: unset by default, and set once by a service theme it
|
|
66
|
-
* wins at every tier (call-site default, docs/TOKENS.md). */
|
|
67
41
|
.ui-logo[data-mark="godx"] {
|
|
68
42
|
width: var(--logo-godx-size, var(--logo-godx-size-md));
|
|
69
43
|
height: var(--logo-godx-size, var(--logo-godx-size-md));
|
|
@@ -93,13 +67,6 @@
|
|
|
93
67
|
height: 100%;
|
|
94
68
|
}
|
|
95
69
|
|
|
96
|
-
/*
|
|
97
|
-
* LOCKUP — `<Logo wordmark="…" />`: the mark plus the readable product name as ONE element, so a
|
|
98
|
-
* shell header / auth brand bar never hand-rolls `inline-flex items-center gap-2` around a Logo
|
|
99
|
-
* and a `<Text>` (rule #46). Every knob is a token (rule #45); the wordmark colour defaults to
|
|
100
|
-
* the IDENTITY role and never reads --primary, so re-theming the action colour cannot recolour
|
|
101
|
-
* the brand — no consumer page CSS is required for the logo colour (gh#214).
|
|
102
|
-
*/
|
|
103
70
|
.ui-logo-lockup {
|
|
104
71
|
display: inline-flex;
|
|
105
72
|
align-items: center;
|
|
@@ -128,7 +95,6 @@
|
|
|
128
95
|
font-size: var(--logo-wordmark-font-size-lg);
|
|
129
96
|
}
|
|
130
97
|
|
|
131
|
-
/* Canonical GoDX wordmark — the --brand IDENTITY role, independent of --primary AND of --success. */
|
|
132
98
|
.ui-logo-lockup[data-mark="godx"] .ui-logo-wordmark,
|
|
133
99
|
.ui-logo-lockup[data-tone="success"] .ui-logo-wordmark {
|
|
134
100
|
color: hsl(var(--logo-wordmark-color, var(--logo-godx-color, var(--brand))));
|
package/dist/styles/motion.css
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* MOTION — entrance/reveal animation for the `Reveal` primitive.
|
|
3
|
-
* Reads the DS motion tokens (--duration-slow / --ease-emphasized / --reveal-distance) instead of
|
|
4
|
-
* a hand-rolled @keyframes, and staggers via the --reveal-stagger-step ladder. Under
|
|
5
|
-
* prefers-reduced-motion the animation is dropped: content renders in its final, fully-visible
|
|
6
|
-
* position with no transform and no layout shift.
|
|
7
|
-
*/
|
|
1
|
+
|
|
8
2
|
|
|
9
3
|
@layer components {
|
|
10
4
|
.ui-reveal {
|
|
@@ -42,7 +36,6 @@
|
|
|
42
36
|
}
|
|
43
37
|
}
|
|
44
38
|
|
|
45
|
-
/* Accessibility: no motion → no animation, content stays visible (WCAG 2.3.3 / 2.2.2). */
|
|
46
39
|
@media (prefers-reduced-motion: reduce) {
|
|
47
40
|
.ui-reveal,
|
|
48
41
|
.ui-reveal[data-reveal-delay] {
|
|
@@ -51,22 +44,6 @@
|
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
46
|
|
|
54
|
-
/*
|
|
55
|
-
* AMBIENT MOTION — the `Activity` primitive (gh#313): a continuous, unbounded "something is
|
|
56
|
-
* happening right now, elsewhere" mark. The LOOP counterpart to `.ui-reveal`'s one-shot entrance,
|
|
57
|
-
* living in the same file so the library keeps exactly one place where motion is written.
|
|
58
|
-
*
|
|
59
|
-
* NOT `.ui-skeleton-block` (content is loading — `aria-busy`), NOT the Button spinner (this action
|
|
60
|
-
* is in flight). Every interval, offset, size and colour reads a token, so a service retunes the
|
|
61
|
-
* whole ambient feel from its theme instead of forking a `@keyframes` (cardinal rule #45).
|
|
62
|
-
*
|
|
63
|
-
* REDUCED MOTION IS A DESIGNED FRAME, NOT AN ABSENCE. Under `prefers-reduced-motion: reduce` the
|
|
64
|
-
* loops are dropped and every mark falls back to its BASE rule, which is authored to be a legible
|
|
65
|
-
* resting state: three solid dots (a static ellipsis — the same "…" convention the animation
|
|
66
|
-
* spells out), a solid pulse mark, and a bar segment parked at the reading-start of its track so
|
|
67
|
-
* the bar can never read as "complete". Nothing is hidden, nothing collapses, no box changes size
|
|
68
|
-
* — so there is no layout shift either way (WCAG 2.2 SC 2.3.3 / 2.2.2).
|
|
69
|
-
*/
|
|
70
47
|
@layer components {
|
|
71
48
|
.ui-activity {
|
|
72
49
|
display: inline-flex;
|
|
@@ -84,8 +61,6 @@
|
|
|
84
61
|
font-size: var(--activity-font-size-lg);
|
|
85
62
|
}
|
|
86
63
|
|
|
87
|
-
/* The mark row. `block-size` reserves the loop's full travel so a dot at the top of its arc is
|
|
88
|
-
* never clipped and the row never grows mid-cycle. */
|
|
89
64
|
.ui-activity-mark {
|
|
90
65
|
display: inline-flex;
|
|
91
66
|
align-items: flex-end;
|
|
@@ -94,8 +69,6 @@
|
|
|
94
69
|
color: hsl(var(--activity-color, var(--muted-foreground)));
|
|
95
70
|
}
|
|
96
71
|
|
|
97
|
-
/* Tone → mark ink. Two-attribute selectors (0,2,0) outrank the muted base (0,1,0). `muted` has
|
|
98
|
-
* no rule of its own: it IS the base, and therefore the one tone `--activity-color` retints. */
|
|
99
72
|
.ui-activity[data-tone="default"] .ui-activity-mark {
|
|
100
73
|
color: hsl(var(--foreground));
|
|
101
74
|
}
|
|
@@ -115,7 +88,6 @@
|
|
|
115
88
|
color: hsl(var(--info));
|
|
116
89
|
}
|
|
117
90
|
|
|
118
|
-
/* dots — the ellipsis convention. Resting state (= the reduced-motion frame): three solid dots. */
|
|
119
91
|
.ui-activity-dot {
|
|
120
92
|
inline-size: var(--activity-mark-size);
|
|
121
93
|
block-size: var(--activity-mark-size);
|
|
@@ -124,8 +96,7 @@
|
|
|
124
96
|
opacity: 1;
|
|
125
97
|
animation: ui-activity-bounce var(--activity-interval) var(--ease-standard) infinite;
|
|
126
98
|
}
|
|
127
|
-
|
|
128
|
-
* follows the reading direction with no `[dir]` rule. */
|
|
99
|
+
|
|
129
100
|
.ui-activity-dot:nth-child(2) {
|
|
130
101
|
animation-delay: calc(var(--activity-stagger-step) * 1);
|
|
131
102
|
}
|
|
@@ -133,8 +104,6 @@
|
|
|
133
104
|
animation-delay: calc(var(--activity-stagger-step) * 2);
|
|
134
105
|
}
|
|
135
106
|
|
|
136
|
-
/* pulse — a single breathing mark (live / recording). Opacity only: the reference design keeps
|
|
137
|
-
* motion LOW, and an opacity loop degrades to a solid mark instead of a resized box. */
|
|
138
107
|
.ui-activity-pulse {
|
|
139
108
|
inline-size: var(--activity-pulse-mark-size);
|
|
140
109
|
block-size: var(--activity-pulse-mark-size);
|
|
@@ -144,7 +113,6 @@
|
|
|
144
113
|
animation: ui-activity-breathe var(--activity-interval) var(--ease-standard) infinite;
|
|
145
114
|
}
|
|
146
115
|
|
|
147
|
-
/* bar — an indeterminate sweep (syncing). */
|
|
148
116
|
.ui-activity-bar {
|
|
149
117
|
position: relative;
|
|
150
118
|
overflow: hidden;
|
|
@@ -158,8 +126,7 @@
|
|
|
158
126
|
.ui-activity-bar-segment {
|
|
159
127
|
position: absolute;
|
|
160
128
|
inset-block: 0;
|
|
161
|
-
|
|
162
|
-
* (a full track would read as "complete", which is the opposite of indeterminate). */
|
|
129
|
+
|
|
163
130
|
inset-inline-start: 0;
|
|
164
131
|
inline-size: var(--activity-bar-segment-width);
|
|
165
132
|
border-radius: inherit;
|
|
@@ -167,7 +134,6 @@
|
|
|
167
134
|
animation: ui-activity-sweep var(--activity-interval) var(--ease-standard) infinite;
|
|
168
135
|
}
|
|
169
136
|
|
|
170
|
-
/* The label is a real `Text`; it only needs to stop the mark's travel box stretching the row. */
|
|
171
137
|
.ui-activity-label {
|
|
172
138
|
min-inline-size: 0;
|
|
173
139
|
}
|
|
@@ -204,10 +170,6 @@
|
|
|
204
170
|
}
|
|
205
171
|
}
|
|
206
172
|
|
|
207
|
-
/* Accessibility: no motion → no loop. Every mark falls back to the legible resting state
|
|
208
|
-
* authored above; the label is visible text either way, so the affordance still says what it
|
|
209
|
-
* means (WCAG 2.2 SC 2.3.3 Animation from Interactions, SC 2.2.2 Pause/Stop/Hide — an
|
|
210
|
-
* indefinite loop runs longer than five seconds and the user cannot pause it). */
|
|
211
173
|
@media (prefers-reduced-motion: reduce) {
|
|
212
174
|
.ui-activity-dot,
|
|
213
175
|
.ui-activity-pulse,
|
|
@@ -216,7 +178,6 @@
|
|
|
216
178
|
}
|
|
217
179
|
}
|
|
218
180
|
|
|
219
|
-
/* Forced colours: the OS palette replaces the token ink, so the mark must not depend on it. */
|
|
220
181
|
@media (forced-colors: active) {
|
|
221
182
|
.ui-activity-dot,
|
|
222
183
|
.ui-activity-pulse,
|
|
@@ -30,24 +30,12 @@
|
|
|
30
30
|
text-decoration: underline;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
/*
|
|
34
|
-
* AppSettingPicker `compact` (gh#217) — a small, content-hugging LABELLED trigger for auth /
|
|
35
|
-
* legal footers: it keeps the icon, the readable value and the real control chrome (so it is
|
|
36
|
-
* obviously a switcher), but re-tiers the box to --control-height-sm and drops the picker's owned
|
|
37
|
-
* per-kind width. Every value is a token; the height comes from the official control tier, never
|
|
38
|
-
* a literal or an ad-hoc calc.
|
|
39
|
-
*/
|
|
40
33
|
.ui-app-setting-picker-compact {
|
|
41
34
|
--control-height: var(--app-setting-picker-compact-control-height);
|
|
42
35
|
--control-padding-x: var(--app-setting-picker-compact-padding-x);
|
|
43
36
|
--control-font-size: var(--app-setting-picker-compact-font-size);
|
|
44
37
|
}
|
|
45
|
-
|
|
46
|
-
* a token so a service can retune the tab rhythm to its own grid; `min-inline-size: 0` is NOT a
|
|
47
|
-
* knob but the flexbox shrink idiom that used to ride along as `min-w-0`: without it the strip's
|
|
48
|
-
* intrinsic width forces every ancestor wider instead of letting the strip scroll its own
|
|
49
|
-
* overflow (gh#175). `display:flex` / the vertical column stay on the component — they are
|
|
50
|
-
* structure, not a service-tunable constant. */
|
|
38
|
+
|
|
51
39
|
[data-slot="tabs"] {
|
|
52
40
|
min-inline-size: 0;
|
|
53
41
|
gap: var(--tabs-root-gap);
|
|
@@ -60,11 +48,6 @@
|
|
|
60
48
|
scrollbar-width: thin;
|
|
61
49
|
}
|
|
62
50
|
|
|
63
|
-
/* Tabs `line` — the ACTIVE decoration is a token-owned bar and nothing else (gh#248). It is
|
|
64
|
-
* deliberately painted here (not as an `after:*` utility) so it stays independent of the
|
|
65
|
-
* `:focus-visible` ring utilities: "selected" and "keyboard-focused" are two different states and
|
|
66
|
-
* must remain visually distinct (WCAG 2.4.7). Logical insets keep the vertical rail on the
|
|
67
|
-
* inline-END edge under dir="rtl" too. */
|
|
68
51
|
[data-slot="tabs-list"][data-variant="line"] [data-slot="tabs-trigger"]::after {
|
|
69
52
|
content: "";
|
|
70
53
|
position: absolute;
|
|
@@ -99,11 +82,6 @@
|
|
|
99
82
|
}
|
|
100
83
|
}
|
|
101
84
|
|
|
102
|
-
/* Pagination chevrons (#319). The `simple` form draws Prev/Next as size="sm" Buttons whose only
|
|
103
|
-
* content is the glyph, so it must NOT inherit the small-button icon tier — the chevron is the
|
|
104
|
-
* whole control. Pagination lives in styles/layout.css, but this override has to out-specify
|
|
105
|
-
* `.ui-button--sm svg` (0,1,1) from styles/control.css, so it is authored here at (0,2,1); a
|
|
106
|
-
* plain `.ui-pagination svg` rule would lose the cascade and silently shrink both chevrons. */
|
|
107
85
|
.ui-pagination .ui-button svg {
|
|
108
86
|
inline-size: var(--pagination-icon-size);
|
|
109
87
|
block-size: var(--pagination-icon-size);
|
|
@@ -138,9 +116,7 @@
|
|
|
138
116
|
.ui-dropdown-menu-sub-trigger,
|
|
139
117
|
.ui-dropdown-menu-checkbox-item,
|
|
140
118
|
.ui-dropdown-menu-radio-item,
|
|
141
|
-
.ui-dropdown-menu-shortcut
|
|
142
|
-
.ui-select-item,
|
|
143
|
-
.ui-select-label {
|
|
119
|
+
.ui-dropdown-menu-shortcut {
|
|
144
120
|
border-radius: var(--menu-item-radius);
|
|
145
121
|
padding-inline: var(--menu-item-space-inline);
|
|
146
122
|
height: var(--menu-item-height);
|
|
@@ -150,7 +126,6 @@
|
|
|
150
126
|
font-size: var(--menu-item-font-size);
|
|
151
127
|
}
|
|
152
128
|
|
|
153
|
-
/* A row marked inset reserves the indicator column so its label lines up with checked siblings. */
|
|
154
129
|
.ui-dropdown-menu-item[data-inset="true"],
|
|
155
130
|
.ui-dropdown-menu-label[data-inset="true"],
|
|
156
131
|
.ui-dropdown-menu-sub-trigger[data-inset="true"] {
|
|
@@ -292,10 +267,6 @@
|
|
|
292
267
|
box-shadow: var(--shadow-md), var(--shadow-glow);
|
|
293
268
|
}
|
|
294
269
|
|
|
295
|
-
/* Reads --menu-icon-size, the same knob DropdownMenu's sub-trigger chevron already reads
|
|
296
|
-
* (`.ui-dropdown-menu-sub-trigger-icon`, below). The three menu surfaces share one row rhythm,
|
|
297
|
-
* so the literal `1rem` here meant setting --menu-icon-size resized the dropdown chevron and
|
|
298
|
-
* silently left these two behind. Same resolved value, one owner (gh#326). */
|
|
299
270
|
.ui-context-menu-sub-trigger-icon,
|
|
300
271
|
.ui-menubar-sub-trigger-icon {
|
|
301
272
|
width: var(--menu-icon-size);
|
|
@@ -448,10 +419,6 @@
|
|
|
448
419
|
outline: none;
|
|
449
420
|
}
|
|
450
421
|
|
|
451
|
-
/* The step NUMBER carries the emphasis. Both knobs exist because the canonical hosted-identity
|
|
452
|
-
* row marks the step with an accent TINT at normal weight, while the original marked it with
|
|
453
|
-
* bold at the inherited colour — a service picks its own emphasis instead of forking this rule
|
|
454
|
-
* (rule #45). Defaults are the original bold + inherited colour, so nothing moves. */
|
|
455
422
|
.ui-steps-inline-index {
|
|
456
423
|
flex: none;
|
|
457
424
|
font-variant-numeric: tabular-nums;
|
|
@@ -488,9 +455,6 @@
|
|
|
488
455
|
color: var(--steps-inline-separator-color, hsl(var(--muted-foreground)));
|
|
489
456
|
}
|
|
490
457
|
|
|
491
|
-
/* DROPDOWN MENU — the third Radix menu surface. It was the only one still carrying its whole
|
|
492
|
-
* box as Tailwind literals on the component (#319); it now joins ContextMenu and Menubar on the
|
|
493
|
-
* shared row rhythm above, and scopes the one value that legitimately differs. */
|
|
494
458
|
.ui-dropdown-menu-content,
|
|
495
459
|
.ui-dropdown-menu-sub-content {
|
|
496
460
|
--menu-content-min-width: var(--dropdown-content-min-width);
|
|
@@ -515,7 +479,6 @@
|
|
|
515
479
|
overflow: hidden;
|
|
516
480
|
}
|
|
517
481
|
|
|
518
|
-
/* The checkbox indicator is absolutely placed in the reserved inset column. */
|
|
519
482
|
.ui-dropdown-menu-indicator-slot {
|
|
520
483
|
pointer-events: none;
|
|
521
484
|
position: absolute;
|
|
@@ -537,7 +500,6 @@
|
|
|
537
500
|
margin-inline-start: auto;
|
|
538
501
|
}
|
|
539
502
|
|
|
540
|
-
/* Checkbox and radio rows are inset by construction — they always reserve the marker column. */
|
|
541
503
|
.ui-dropdown-menu-checkbox-item {
|
|
542
504
|
position: relative;
|
|
543
505
|
padding-inline-start: var(--menu-item-inset-space-inline-start);
|
|
@@ -575,7 +537,7 @@
|
|
|
575
537
|
}
|
|
576
538
|
|
|
577
539
|
@layer components {
|
|
578
|
-
|
|
540
|
+
|
|
579
541
|
.ui-steps-dot {
|
|
580
542
|
display: block;
|
|
581
543
|
inline-size: var(--steps-dot-size);
|
|
@@ -741,8 +703,6 @@
|
|
|
741
703
|
text-align: center;
|
|
742
704
|
}
|
|
743
705
|
|
|
744
|
-
/* The connector spans between two markers, inset by the marker radius at each end so it never
|
|
745
|
-
* runs underneath one. Both ends move together when --steps-connector-inset is retuned. */
|
|
746
706
|
.ui-steps-item[data-direction="horizontal"][data-connector]::after {
|
|
747
707
|
content: "";
|
|
748
708
|
position: absolute;
|
|
@@ -753,11 +713,6 @@
|
|
|
753
713
|
background: hsl(var(--border));
|
|
754
714
|
}
|
|
755
715
|
|
|
756
|
-
/* APP SETTING PICKER — icon-only box + per-kind labelled widths (#319). */
|
|
757
|
-
|
|
758
|
-
/* Structurally icon-only: square to the density-aware --control-height tap target and drop the
|
|
759
|
-
* form-input chrome so it sits among the topbar's ghost icon buttons. The open-state and
|
|
760
|
-
* focus-visible rings from controlTriggerClass are untouched. */
|
|
761
716
|
.ui-app-setting-picker-icon {
|
|
762
717
|
inline-size: var(--control-height);
|
|
763
718
|
justify-content: center;
|
|
@@ -774,8 +729,6 @@
|
|
|
774
729
|
opacity: var(--app-setting-picker-icon-rest-alpha);
|
|
775
730
|
}
|
|
776
731
|
|
|
777
|
-
/* Each kind is sized to the longest value it can show — a timezone name is far wider than a
|
|
778
|
-
* theme name. Below the breakpoint every kind hugs its content instead. */
|
|
779
732
|
@media (min-width: 40rem) {
|
|
780
733
|
.ui-app-setting-picker-trigger[data-kind="locale"] {
|
|
781
734
|
inline-size: var(--app-setting-picker-locale-width);
|