@adia-ai/a2ui-corpus 0.4.3 → 0.4.5
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/CHANGELOG.md +59 -0
- package/README.md +51 -51
- package/catalog-a2ui_0_9.json +313 -15
- package/catalog-a2ui_0_9_rules.txt +18 -0
- package/chunks/_index.json +791 -36
- package/chunks/agent-activity-feed.json +1 -1
- package/chunks/agent-canvas-shell.json +1 -1
- package/chunks/agent-reasoning-collapsed.json +1 -1
- package/chunks/auth-account-deleted-actions.json +1 -1
- package/chunks/auth-account-deleted.json +1 -1
- package/chunks/auth-card-content.json +1 -1
- package/chunks/auth-card-header.json +1 -1
- package/chunks/auth-email-entry.json +1 -1
- package/chunks/auth-email-verify-confirm.json +1 -1
- package/chunks/auth-email-verify.json +1 -1
- package/chunks/auth-forbidden-actions.json +1 -1
- package/chunks/auth-forbidden.json +1 -1
- package/chunks/auth-invite-actions.json +1 -1
- package/chunks/auth-invite-team-card.json +1 -1
- package/chunks/auth-link-expired-form.json +1 -1
- package/chunks/auth-link-expired.json +1 -1
- package/chunks/auth-locked-account.json +1 -1
- package/chunks/auth-locked-recovery-options.json +1 -1
- package/chunks/auth-mfa-enrollment-submit.json +1 -1
- package/chunks/auth-mfa-enrollment.json +224 -2
- package/chunks/auth-mfa-fallback-actions.json +1 -1
- package/chunks/auth-mfa-recovery.json +1 -1
- package/chunks/auth-new-password-form.json +1 -1
- package/chunks/auth-new-password.json +156 -2
- package/chunks/auth-oauth-fallback-actions.json +1 -1
- package/chunks/auth-oauth-interstitial.json +1 -1
- package/chunks/auth-password-challenge.json +1 -1
- package/chunks/auth-password-reset-form.json +1 -1
- package/chunks/auth-password-reset.json +151 -1
- package/chunks/auth-profile-form.json +1 -1
- package/chunks/auth-profile-setup.json +1 -1
- package/chunks/auth-reset-sent.json +1 -1
- package/chunks/auth-session-expired-actions.json +1 -1
- package/chunks/auth-session-expired.json +1 -1
- package/chunks/auth-signin-card-email.json +190 -2
- package/chunks/auth-signin-card-magic-link.json +119 -2
- package/chunks/auth-signin-card-mfa.json +162 -1
- package/chunks/auth-signin-card-otp.json +116 -2
- package/chunks/auth-signin-card-password.json +202 -2
- package/chunks/auth-signin-card-recovery.json +1 -1
- package/chunks/auth-signout-actions.json +1 -1
- package/chunks/auth-signout.json +1 -1
- package/chunks/auth-signup-email-entry.json +1 -1
- package/chunks/auth-signup-entry.json +191 -1
- package/chunks/auth-signup-social-auths.json +1 -1
- package/chunks/auth-signup-verify.json +1 -1
- package/chunks/auth-social-auths.json +1 -1
- package/chunks/auth-sso-providers.json +1 -1
- package/chunks/auth-sso-required.json +1 -1
- package/chunks/auth-team-invite.json +1 -1
- package/chunks/card-header-with-description.json +12 -0
- package/chunks/chat-page-shell.json +1 -1
- package/chunks/chat-streaming-surface.json +1 -1
- package/chunks/command-palette.json +1 -1
- package/chunks/commerce-pricing-tiers.json +1 -1
- package/chunks/conversion-funnel-6step.json +1 -1
- package/chunks/dashboard-acquisition-panel.json +162 -1
- package/chunks/dashboard-admin-page.json +2879 -4
- package/chunks/dashboard-audience-kpis.json +1 -1
- package/chunks/dashboard-audience-panel.json +488 -1
- package/chunks/dashboard-behavior-panel.json +91 -1
- package/chunks/dashboard-chart-recent.json +474 -3
- package/chunks/dashboard-cohort-retention.json +1 -1
- package/chunks/dashboard-conversion-panel.json +196 -1
- package/chunks/dashboard-country-list.json +1 -1
- package/chunks/dashboard-filter-bar.json +1 -1
- package/chunks/dashboard-funnel.json +1 -1
- package/chunks/dashboard-kpi-grid.json +1 -1
- package/chunks/dashboard-notifications-feed.json +1 -1
- package/chunks/dashboard-notifications-panel.json +383 -1
- package/chunks/dashboard-overview-panel.json +1363 -1
- package/chunks/dashboard-page-header.json +140 -1
- package/chunks/dashboard-pages-table.json +1 -1
- package/chunks/dashboard-quick-actions.json +1 -1
- package/chunks/dashboard-reports-panel.json +97 -1
- package/chunks/dashboard-reports-table.json +1 -1
- package/chunks/dashboard-spark-cards.json +1 -1
- package/chunks/dashboard-storage-card.json +1 -1
- package/chunks/dashboard-tabs.json +1 -1
- package/chunks/dashboard-team-actions-storage.json +502 -1
- package/chunks/dashboard-team-list.json +1 -1
- package/chunks/dashboard-traffic-channels.json +1 -1
- package/chunks/dashboard-transactions-table.json +1 -1
- package/chunks/destructive-confirm-modal.json +1 -1
- package/chunks/doc-editor-shell.json +1 -1
- package/chunks/drawer-2fa-key.json +1 -1
- package/chunks/drawer-2fa-sms.json +1 -1
- package/chunks/drawer-2fa-totp.json +1 -1
- package/chunks/drawer-cancel-sub.json +1 -1
- package/chunks/drawer-change-plan.json +1 -1
- package/chunks/drawer-custom-roles.json +5 -3
- package/chunks/drawer-data-start.json +1 -1
- package/chunks/drawer-delete-account.json +1 -1
- package/chunks/drawer-delete-workspace.json +1 -1
- package/chunks/drawer-discord.json +1 -1
- package/chunks/drawer-figma.json +1 -1
- package/chunks/drawer-first-dashboard.json +1 -1
- package/chunks/drawer-gcal.json +1 -1
- package/chunks/drawer-github.json +5 -3
- package/chunks/drawer-invite.json +1 -1
- package/chunks/drawer-payment-method.json +1 -1
- package/chunks/drawer-report.json +1 -1
- package/chunks/drawer-revoke-session.json +1 -1
- package/chunks/drawer-role.json +1 -1
- package/chunks/drawer-slack.json +1 -1
- package/chunks/drawer-smtp.json +5 -3
- package/chunks/drawer-source.json +1 -1
- package/chunks/drawer-transaction.json +1 -1
- package/chunks/editor-code-pane.json +1 -1
- package/chunks/editor-page-shell.json +1 -1
- package/chunks/editor-preview-pane.json +1 -1
- package/chunks/error-404-actions.json +1 -1
- package/chunks/error-404.json +161 -3
- package/chunks/error-500-actions.json +1 -1
- package/chunks/error-500.json +166 -3
- package/chunks/error-maintenance-actions.json +1 -1
- package/chunks/error-maintenance.json +158 -3
- package/chunks/error-page-shell.json +1 -1
- package/chunks/footer-primary-only.json +12 -0
- package/chunks/form-page-shell.json +1 -1
- package/chunks/gallery-page-shell.json +1 -1
- package/chunks/icon-text-row.json +16 -0
- package/chunks/image-tile.json +12 -0
- package/chunks/kanban-board-3col.json +5 -3
- package/chunks/kanban-page-shell.json +1 -1
- package/chunks/labeled-textarea.json +14 -0
- package/chunks/linked-record-row.json +57 -0
- package/chunks/marketing-hero-cta.json +1 -1
- package/chunks/marketing-page-shell.json +1 -1
- package/chunks/member-edit-drawer.json +1 -1
- package/chunks/metadata-description-list.json +14 -0
- package/chunks/onb-completion.json +1 -1
- package/chunks/onb-extension-install.json +1 -1
- package/chunks/onb-hero-welcome.json +1 -1
- package/chunks/onb-import-picker.json +1 -1
- package/chunks/onb-mobile-handoff.json +1 -1
- package/chunks/onb-notification-prefs.json +1 -1
- package/chunks/onb-persona-picker.json +1 -1
- package/chunks/onb-provider-tiles.json +1 -1
- package/chunks/onb-settings-review.json +1 -1
- package/chunks/onb-step-footer.json +1 -1
- package/chunks/onb-step-header.json +1 -1
- package/chunks/onb-step-progress.json +1 -1
- package/chunks/onb-step-shell.json +249 -1
- package/chunks/onb-story-pane.json +1 -1
- package/chunks/onb-tutorial-steps.json +1 -1
- package/chunks/playground-a2ui.json +1 -1
- package/chunks/playground-app-shell.json +1 -1
- package/chunks/playground-chat.json +1 -1
- package/chunks/playground-construct-canvas.json +1 -1
- package/chunks/playground-gen-ui.json +1 -1
- package/chunks/playground-render-preview.json +1 -1
- package/chunks/playground-streams-bridge.json +1 -1
- package/chunks/playground-table-toolbar.json +1 -1
- package/chunks/reg-address-form.json +1 -1
- package/chunks/reg-billing-card.json +1 -1
- package/chunks/reg-brand-scrape.json +1 -1
- package/chunks/reg-departments-toggle.json +1 -1
- package/chunks/reg-extended-profile.json +1 -1
- package/chunks/reg-final-done.json +1 -1
- package/chunks/reg-helpdesk-grid.json +1 -1
- package/chunks/reg-import-picker.json +1 -1
- package/chunks/reg-integrations-grid.json +1 -1
- package/chunks/reg-invite-form.json +1 -1
- package/chunks/reg-legal-entity.json +1 -1
- package/chunks/reg-org-chart-review.json +1 -1
- package/chunks/reg-profile-identity.json +1 -1
- package/chunks/reg-step-footer.json +1 -1
- package/chunks/reg-step-header.json +1 -1
- package/chunks/reg-step-progress.json +1 -1
- package/chunks/reg-step-shell.json +565 -1
- package/chunks/reg-story-pane.json +1 -1
- package/chunks/reg-success-summary.json +1 -1
- package/chunks/reg-team-size.json +1 -1
- package/chunks/reg-usecase-picker.json +1 -1
- package/chunks/reg-workspace-name.json +1 -1
- package/chunks/section-with-stack.json +12 -0
- package/chunks/settings-appearance.json +1 -1
- package/chunks/settings-billing-plan.json +1 -1
- package/chunks/settings-general-form.json +1 -1
- package/chunks/settings-integrations.json +154 -3
- package/chunks/settings-members-invite.json +5 -3
- package/chunks/settings-notifications.json +1 -1
- package/chunks/settings-page-shell.json +1 -1
- package/chunks/settings-profile-security.json +1 -1
- package/chunks/text-card.json +14 -0
- package/chunks/user-identity-row.json +16 -0
- package/chunks/user-profile-card.json +1 -1
- package/chunks/users-table-badge.json +1 -1
- package/compositions/agent/ai-streaming-response.json +55 -9
- package/compositions/agent/alert-banner.json +46 -10
- package/compositions/agent/chat-interface.json +15 -7
- package/compositions/agent/command-palette.json +2 -2
- package/compositions/agent/empty-state.json +70 -11
- package/compositions/agent/error-state-retry.json +100 -17
- package/compositions/agent/loading-skeleton.json +76 -12
- package/compositions/agent/notification-preferences.json +386 -23
- package/compositions/agent/toast-stack.json +42 -7
- package/compositions/data/activity-feed.json +231 -17
- package/compositions/data/audit-log-viewer.json +453 -44
- package/compositions/data/bookmark-list.json +188 -16
- package/compositions/data/bulk-action-toolbar.json +137 -19
- package/compositions/data/changelog-feed.json +296 -30
- package/compositions/data/chart-dashboard.json +96 -11
- package/compositions/data/cohort-retention.json +392 -40
- package/compositions/data/column-manager.json +316 -52
- package/compositions/data/data-table-paginated.json +96 -18
- package/compositions/data/email-inbox-list.json +224 -13
- package/compositions/data/funnel-analytics.json +424 -26
- package/compositions/data/heatmap-calendar.json +140 -27
- package/compositions/data/invoice-table.json +107 -18
- package/compositions/data/kpi-overview.json +187 -17
- package/compositions/data/notification-center.json +224 -16
- package/compositions/data/object-inspector.json +463 -43
- package/compositions/data/product-specs-card.json +66 -12
- package/compositions/data/progress-tracker.json +140 -13
- package/compositions/data/review-card.json +94 -14
- package/compositions/data/saved-views-filter-bar.json +232 -37
- package/compositions/data/shopping-cart-summary.json +173 -21
- package/compositions/data/stat-card-dashboard.json +219 -18
- package/compositions/data/status-page.json +337 -30
- package/compositions/data/virtualized-table.json +269 -38
- package/compositions/data/weather-widget.json +77 -13
- package/compositions/forms/change-password-form.json +123 -16
- package/compositions/forms/color-picker-panel.json +85 -11
- package/compositions/forms/contact-form.json +127 -17
- package/compositions/forms/credit-card-payment-form.json +137 -16
- package/compositions/forms/data-import-mapper.json +244 -33
- package/compositions/forms/data-import-wizard.json +268 -29
- package/compositions/forms/date-time-picker-form.json +114 -13
- package/compositions/forms/destructive-confirm.json +206 -21
- package/compositions/forms/feedback-form.json +96 -14
- package/compositions/forms/file-upload-form.json +82 -11
- package/compositions/forms/login-form.json +122 -14
- package/compositions/forms/multi-step-wizard.json +133 -15
- package/compositions/forms/newsletter-subscription-form.json +83 -12
- package/compositions/forms/otp-verification-form.json +88 -13
- package/compositions/forms/password-reset-form.json +83 -12
- package/compositions/forms/permission-matrix.json +177 -28
- package/compositions/forms/profile-edit-form.json +125 -16
- package/compositions/forms/radio-group-form.json +110 -15
- package/compositions/forms/search-filters.json +112 -13
- package/compositions/forms/settings-toggles-page.json +188 -16
- package/compositions/forms/signup-form.json +129 -17
- package/compositions/forms/slider-range-form.json +65 -10
- package/compositions/forms/tag-input-form.json +89 -14
- package/compositions/forms/team-members-rbac.json +669 -107
- package/compositions/layout/accordion-settings.json +450 -42
- package/compositions/layout/badge-variants-display.json +121 -18
- package/compositions/layout/bento-overview.json +399 -33
- package/compositions/layout/calendar-month-view.json +96 -30
- package/compositions/layout/code-block.json +65 -11
- package/compositions/layout/comparison-table.json +113 -21
- package/compositions/layout/divider-with-label.json +40 -8
- package/compositions/layout/drawer-panel.json +105 -12
- package/compositions/layout/embed-iframe.json +62 -12
- package/compositions/layout/faq-accordion.json +35 -28
- package/compositions/layout/feature-grid.json +197 -22
- package/compositions/layout/footer-nav.json +188 -23
- package/compositions/layout/hero-cta.json +69 -13
- package/compositions/layout/image-gallery.json +112 -13
- package/compositions/layout/image-with-caption.json +48 -9
- package/compositions/layout/kanban-board.json +199 -31
- package/compositions/layout/keyboard-shortcuts.json +145 -12
- package/compositions/layout/markdown-editor-preview.json +6 -6
- package/compositions/layout/media-player.json +85 -13
- package/compositions/layout/modal-form.json +97 -12
- package/compositions/layout/onboarding-checklist.json +92 -14
- package/compositions/layout/popover-tooltip.json +74 -12
- package/compositions/layout/pricing-tiers.json +229 -31
- package/compositions/layout/product-card.json +97 -17
- package/compositions/layout/sidebar-layout.json +157 -16
- package/compositions/layout/tabs-panel.json +115 -13
- package/compositions/layout/testimonial-grid.json +240 -23
- package/compositions/layout/three-pane-shell.json +278 -63
- package/compositions/layout/toolbar-actions.json +81 -13
- package/compositions/navigation/nav-menu-with-icons.json +119 -14
- package/compositions/navigation/pagination-controls.json +2 -2
- package/compositions/navigation/workspace-switcher.json +296 -22
- package/compositions/settings/api-keys.json +592 -47
- package/compositions/settings/feature-flags.json +423 -22
- package/compositions/settings/integrations-gallery.json +839 -44
- package/compositions/settings/session-device-mgmt.json +619 -42
- package/compositions/settings/usage-quota-meter.json +214 -23
- package/compositions/settings/webhooks.json +429 -45
- package/package.json +2 -4
- package/patterns/agent/command-palette.json +1 -1
- package/patterns/agent/loading-skeleton.json +0 -6
- package/patterns/agent/toast-notification.json +6 -9
- package/patterns/data/admin-dashboard-with-charts.json +0 -4
- package/patterns/data/api-key-table.json +1 -1
- package/patterns/data/bookmark-list-categories.json +537 -128
- package/patterns/data/dashboard.json +3 -3
- package/patterns/data/data-table-view.json +34 -10
- package/patterns/data/email-inbox.json +22 -22
- package/patterns/data/event-calendar-details.json +20 -22
- package/patterns/data/inventory-table.json +1 -1
- package/patterns/data/leaderboard.json +1 -1
- package/patterns/data/notification-center.json +57 -25
- package/patterns/data/onboarding-checklist.json +10 -35
- package/patterns/data/order-tracking.json +8 -8
- package/patterns/data/pagination-nav.json +2 -2
- package/patterns/data/progress-dashboard.json +4 -16
- package/patterns/data/progress-tracker.json +3 -6
- package/patterns/data/restaurant-menu.json +241 -59
- package/patterns/forms/auth-signup.json +5 -13
- package/patterns/forms/bleed-design-settings.json +3 -11
- package/patterns/forms/credit-card-payment.json +8 -8
- package/patterns/forms/data-import.json +1 -2
- package/patterns/forms/login-form.json +4 -12
- package/patterns/forms/notification-filters.json +19 -68
- package/patterns/forms/notification-preferences.json +125 -39
- package/patterns/forms/otp-verification.json +1 -2
- package/patterns/forms/password-reset.json +1 -1
- package/patterns/forms/radio-group-selection.json +13 -45
- package/patterns/forms/radio-group.json +11 -35
- package/patterns/forms/survey-rating-scales.json +41 -121
- package/patterns/forms/two-factor-auth.json +211 -61
- package/patterns/forms/wizard-steps.json +32 -9
- package/patterns/layout/accordion-settings.json +63 -119
- package/patterns/layout/avatar-group.json +19 -40
- package/patterns/layout/badge-showcase.json +51 -89
- package/patterns/layout/code-block.json +9 -15
- package/patterns/layout/cta-banner.json +9 -17
- package/patterns/layout/divider-label.json +6 -10
- package/patterns/layout/drawer-panel.json +29 -48
- package/patterns/layout/embed-content.json +7 -9
- package/patterns/layout/feature-carousel.json +20 -20
- package/patterns/layout/feature-grid.json +30 -56
- package/patterns/layout/hero-section.json +18 -26
- package/patterns/layout/image-carousel.json +12 -12
- package/patterns/layout/kbd-shortcuts.json +6 -6
- package/patterns/layout/popover-menu.json +23 -27
- package/patterns/layout/pricing-tiers.json +50 -96
- package/patterns/layout/product-carousel.json +24 -24
- package/patterns/layout/tabs-panels.json +29 -55
- package/patterns/layout/team-carousel.json +16 -16
- package/patterns/layout/testimonials-carousel.json +12 -12
- package/patterns/layout/testimonials-grid.json +54 -92
- package/patterns/layout/toolbar-buttons.json +42 -70
- package/patterns/layout/tooltip-buttons.json +26 -44
- package/exemplars/AUDIT-REPORT.md +0 -116
- package/exemplars/README.md +0 -49
- package/exemplars/_shell.css +0 -88
- package/exemplars/blocks-reference.md +0 -409
- package/exemplars/index.html +0 -21
- package/exemplars/prose/auth-login/auth-login.yaml +0 -38
- package/exemplars/prose/auth-login/index.html +0 -542
- package/exemplars/prose/cta/README.md +0 -3
- package/exemplars/prose/cta/cta.yaml +0 -38
- package/exemplars/prose/cta/data.json +0 -6
- package/exemplars/prose/cta/index.html +0 -125
- package/exemplars/prose/feature-grid/README.md +0 -3
- package/exemplars/prose/feature-grid/data.json +0 -13
- package/exemplars/prose/feature-grid/feature-grid.yaml +0 -35
- package/exemplars/prose/feature-grid/index.html +0 -93
- package/exemplars/prose/footer/README.md +0 -3
- package/exemplars/prose/footer/data.json +0 -10
- package/exemplars/prose/footer/footer.yaml +0 -32
- package/exemplars/prose/footer/index.html +0 -109
- package/exemplars/prose/hero/README.md +0 -3
- package/exemplars/prose/hero/data.json +0 -6
- package/exemplars/prose/hero/hero.yaml +0 -38
- package/exemplars/prose/hero/index.html +0 -217
- package/exemplars/prose/pricing/README.md +0 -3
- package/exemplars/prose/pricing/data.json +0 -9
- package/exemplars/prose/pricing/index.html +0 -298
- package/exemplars/prose/pricing/pricing.yaml +0 -38
- package/exemplars/prose/steps/README.md +0 -3
- package/exemplars/prose/steps/data.json +0 -31
- package/exemplars/prose/steps/index.html +0 -176
- package/exemplars/prose/steps/setup.js +0 -12
- package/exemplars/prose/steps/steps.yaml +0 -38
- package/exemplars/prose/testimonials/README.md +0 -3
- package/exemplars/prose/testimonials/data.json +0 -14
- package/exemplars/prose/testimonials/index.html +0 -297
- package/exemplars/prose/testimonials/testimonials.yaml +0 -33
- package/exemplars/ui/auth-login/auth-login.yaml +0 -38
- package/exemplars/ui/auth-login/index.html +0 -372
- package/fragments/_schema.json +0 -72
- package/fragments/action/dual-cta-row.json +0 -29
- package/fragments/action/dual-cta-row.yaml +0 -34
- package/fragments/action/footer-cancel-save.json +0 -31
- package/fragments/action/footer-cancel-save.yaml +0 -34
- package/fragments/action/footer-primary-only.json +0 -23
- package/fragments/action/footer-primary-only.yaml +0 -26
- package/fragments/content/calendar-day-cell.json +0 -29
- package/fragments/content/column-config-atom.json +0 -121
- package/fragments/content/credential-entry-atom.json +0 -126
- package/fragments/content/directory-entry-atom.json +0 -148
- package/fragments/content/email-row.json +0 -35
- package/fragments/content/email-row.yaml +0 -43
- package/fragments/content/faq-item.json +0 -54
- package/fragments/content/health-entry-atom.json +0 -85
- package/fragments/content/icon-text-row.json +0 -29
- package/fragments/content/icon-text-row.yaml +0 -36
- package/fragments/content/icon-title-description.json +0 -30
- package/fragments/content/icon-title-description.yaml +0 -37
- package/fragments/content/image-tile.json +0 -28
- package/fragments/content/image-tile.yaml +0 -32
- package/fragments/content/incident-row.json +0 -107
- package/fragments/content/kbd-shortcut-row.json +0 -29
- package/fragments/content/kbd-shortcut-row.yaml +0 -33
- package/fragments/content/key-value-row.json +0 -29
- package/fragments/content/key-value-row.yaml +0 -36
- package/fragments/content/labeled-progress.json +0 -29
- package/fragments/content/labeled-progress.yaml +0 -33
- package/fragments/content/link-list-column.json +0 -33
- package/fragments/content/link-list-column.yaml +0 -41
- package/fragments/content/linked-record-row.json +0 -95
- package/fragments/content/marketplace-tile-atom.json +0 -147
- package/fragments/content/metadata-description-list.json +0 -28
- package/fragments/content/metadata-description-list.yaml +0 -36
- package/fragments/content/pending-invite-row.json +0 -113
- package/fragments/content/release-entry.json +0 -155
- package/fragments/content/rollout-entry-atom.json +0 -168
- package/fragments/content/signed-in-entry-atom.json +0 -157
- package/fragments/content/stage-entry-atom.json +0 -115
- package/fragments/content/stat-card.json +0 -31
- package/fragments/content/stat-card.yaml +0 -39
- package/fragments/content/user-identity-row.json +0 -33
- package/fragments/content/user-identity-row.yaml +0 -43
- package/fragments/content/user-notification-row.json +0 -35
- package/fragments/content/user-notification-row.yaml +0 -50
- package/fragments/content/wizard-step-row.json +0 -96
- package/fragments/form/labeled-checkbox.json +0 -26
- package/fragments/form/labeled-checkbox.yaml +0 -36
- package/fragments/form/labeled-input.json +0 -28
- package/fragments/form/labeled-input.yaml +0 -38
- package/fragments/form/labeled-slider.json +0 -34
- package/fragments/form/labeled-slider.yaml +0 -50
- package/fragments/form/labeled-textarea.json +0 -28
- package/fragments/form/labeled-textarea.yaml +0 -39
- package/fragments/form/labeled-toggle.json +0 -29
- package/fragments/form/labeled-toggle.yaml +0 -43
- package/fragments/layout/card-header-heading.json +0 -35
- package/fragments/layout/card-header-heading.yaml +0 -27
- package/fragments/layout/card-header-with-badge.json +0 -30
- package/fragments/layout/card-header-with-badge.yaml +0 -40
- package/fragments/layout/card-header-with-description.json +0 -29
- package/fragments/layout/card-header-with-description.yaml +0 -32
- package/fragments/layout/pricing-tier-card.json +0 -37
- package/fragments/layout/pricing-tier-card.yaml +0 -50
- package/fragments/layout/section-with-stack.json +0 -46
- package/fragments/layout/section-with-stack.yaml +0 -39
- package/fragments/layout/text-card.json +0 -28
- package/fragments/layout/text-card.yaml +0 -30
package/catalog-a2ui_0_9.json
CHANGED
|
@@ -1587,21 +1587,36 @@
|
|
|
1587
1587
|
}
|
|
1588
1588
|
],
|
|
1589
1589
|
"properties": {
|
|
1590
|
+
"title": {
|
|
1591
|
+
"description": "Bold headline rendered as the first line of the alert content. Pair with [description] for the canonical \"banner\" pattern (headline + body). When [title] or [description] is set, the [text] prop is ignored.",
|
|
1592
|
+
"type": "string",
|
|
1593
|
+
"default": ""
|
|
1594
|
+
},
|
|
1595
|
+
"description": {
|
|
1596
|
+
"description": "Body text rendered as the second line of the alert content, below [title]. May be used alone (without [title]) for a single muted-body message.",
|
|
1597
|
+
"type": "string",
|
|
1598
|
+
"default": ""
|
|
1599
|
+
},
|
|
1590
1600
|
"closable": {
|
|
1591
|
-
"description": "Whether a close button is displayed",
|
|
1601
|
+
"description": "Whether a close button is displayed. Alias [dismissible] is also accepted (same semantics, different spelling — the corpus and many libraries use both; both map to the same state).",
|
|
1592
1602
|
"type": "boolean",
|
|
1593
1603
|
"default": false
|
|
1594
1604
|
},
|
|
1595
1605
|
"component": {
|
|
1596
1606
|
"const": "Alert"
|
|
1597
1607
|
},
|
|
1608
|
+
"dismissible": {
|
|
1609
|
+
"description": "Public alias for [closable] — same semantics. Both attributes render the close button. Use whichever spelling matches your authoring style.",
|
|
1610
|
+
"type": "boolean",
|
|
1611
|
+
"default": false
|
|
1612
|
+
},
|
|
1598
1613
|
"icon": {
|
|
1599
1614
|
"description": "Icon identifier displayed before the message content",
|
|
1600
1615
|
"type": "string",
|
|
1601
1616
|
"default": ""
|
|
1602
1617
|
},
|
|
1603
1618
|
"text": {
|
|
1604
|
-
"description": "
|
|
1619
|
+
"description": "Single-line alert message. For two-line \"headline + body\" alerts, use [title] + [description] instead. For rich content (links, formatting), use the [slot=\"content\"] slot.",
|
|
1605
1620
|
"type": "string",
|
|
1606
1621
|
"default": ""
|
|
1607
1622
|
},
|
|
@@ -2240,6 +2255,10 @@
|
|
|
2240
2255
|
"type": "string",
|
|
2241
2256
|
"default": ""
|
|
2242
2257
|
},
|
|
2258
|
+
"textContent": {
|
|
2259
|
+
"description": "Badge display text. Renderer routes this to the `text` attribute via CSS attr(text) on ::after.",
|
|
2260
|
+
"$ref": "#/$defs/DynamicString"
|
|
2261
|
+
},
|
|
2243
2262
|
"variant": {
|
|
2244
2263
|
"description": "Semantic color variant.",
|
|
2245
2264
|
"type": "string",
|
|
@@ -2605,6 +2624,11 @@
|
|
|
2605
2624
|
"type": "string",
|
|
2606
2625
|
"default": "button"
|
|
2607
2626
|
},
|
|
2627
|
+
"aria-label": {
|
|
2628
|
+
"description": "Accessible label for screen readers. Auto-set from `text` when text is non-empty; meaningful override for icon-only buttons.",
|
|
2629
|
+
"type": "string",
|
|
2630
|
+
"default": ""
|
|
2631
|
+
},
|
|
2608
2632
|
"color": {
|
|
2609
2633
|
"description": "Semantic intent — composes with [variant]. `<button-ui variant=\"solid\" color=\"danger\">` = filled destructive action; `<button-ui variant=\"outline\" color=\"success\">` = outlined success affordance.",
|
|
2610
2634
|
"type": "string",
|
|
@@ -2653,8 +2677,12 @@
|
|
|
2653
2677
|
"type": "string",
|
|
2654
2678
|
"default": ""
|
|
2655
2679
|
},
|
|
2680
|
+
"textContent": {
|
|
2681
|
+
"description": "Button label. Renderer routes this to the `text` attribute, which is rendered via CSS attr(text) on ::after and mirrored to aria-label.",
|
|
2682
|
+
"$ref": "#/$defs/DynamicString"
|
|
2683
|
+
},
|
|
2656
2684
|
"variant": {
|
|
2657
|
-
"description": "Visual style — `solid` (default fill), `outline`, `ghost
|
|
2685
|
+
"description": "Visual style — `solid` (default fill), `outline`, `ghost`. `default` / `primary` are aliases of `solid`. Style is independent of semantic intent — to express destructive / success / info / warning intent, set [color=\"…\"] alongside.\nFor **inline navigation** (Terms of Service, Privacy Policy, footer links, \"Sign in\" / \"Sign up\" cross-page affordances) use `<link-ui>` instead — it carries proper `<a href>` semantics, keyboard handling (Enter only, no Space), middle-click open-new-tab, and screen-reader announces \"link\" instead of \"button\". Mixing navigation and action affordances under the same primitive is a category error fixed at this junction.",
|
|
2658
2686
|
"type": "string",
|
|
2659
2687
|
"enum": [
|
|
2660
2688
|
"default",
|
|
@@ -2664,8 +2692,7 @@
|
|
|
2664
2692
|
"primary",
|
|
2665
2693
|
"secondary",
|
|
2666
2694
|
"soft",
|
|
2667
|
-
"current"
|
|
2668
|
-
"link"
|
|
2695
|
+
"current"
|
|
2669
2696
|
],
|
|
2670
2697
|
"default": "solid"
|
|
2671
2698
|
}
|
|
@@ -2685,7 +2712,9 @@
|
|
|
2685
2712
|
"examples": [],
|
|
2686
2713
|
"keywords": [],
|
|
2687
2714
|
"name": "UIButton",
|
|
2688
|
-
"related": [
|
|
2715
|
+
"related": [
|
|
2716
|
+
"Link"
|
|
2717
|
+
],
|
|
2689
2718
|
"slots": {
|
|
2690
2719
|
"leading": {
|
|
2691
2720
|
"description": "Icon container (start), sized to --content-height"
|
|
@@ -4418,7 +4447,14 @@
|
|
|
4418
4447
|
],
|
|
4419
4448
|
"unevaluatedProperties": false,
|
|
4420
4449
|
"x-adiaui": {
|
|
4421
|
-
"anti_patterns": [
|
|
4450
|
+
"anti_patterns": [
|
|
4451
|
+
{
|
|
4452
|
+
"description": "Wrapping a check-ui in field-ui. The widget already self-labels.",
|
|
4453
|
+
"right": "<check-ui label=\"I agree to the Terms of Service\"></check-ui>\n",
|
|
4454
|
+
"rule": "Use [label] on check-ui directly; do not wrap in field-ui.",
|
|
4455
|
+
"wrong": "<field-ui inline label=\"Agree\">\n <check-ui></check-ui>\n</field-ui>\n"
|
|
4456
|
+
}
|
|
4457
|
+
],
|
|
4422
4458
|
"category": "layout",
|
|
4423
4459
|
"events": {
|
|
4424
4460
|
"change": {
|
|
@@ -4558,6 +4594,10 @@
|
|
|
4558
4594
|
"description": "Code text content",
|
|
4559
4595
|
"type": "string",
|
|
4560
4596
|
"default": ""
|
|
4597
|
+
},
|
|
4598
|
+
"textContent": {
|
|
4599
|
+
"description": "Code body text. Renderer routes this to the `text` attribute, reactively re-rendered into the <pre><code> block.",
|
|
4600
|
+
"$ref": "#/$defs/DynamicString"
|
|
4561
4601
|
}
|
|
4562
4602
|
},
|
|
4563
4603
|
"required": [
|
|
@@ -4817,6 +4857,11 @@
|
|
|
4817
4857
|
"type": "string",
|
|
4818
4858
|
"default": "md"
|
|
4819
4859
|
},
|
|
4860
|
+
"grow": {
|
|
4861
|
+
"description": "Fills remaining space in a flex parent (e.g. inside a Row). CSS-only attribute via :scope[grow] in col.css.",
|
|
4862
|
+
"type": "boolean",
|
|
4863
|
+
"default": false
|
|
4864
|
+
},
|
|
4820
4865
|
"justify": {
|
|
4821
4866
|
"description": "Justify content",
|
|
4822
4867
|
"type": "string",
|
|
@@ -6473,7 +6518,20 @@
|
|
|
6473
6518
|
],
|
|
6474
6519
|
"unevaluatedProperties": false,
|
|
6475
6520
|
"x-adiaui": {
|
|
6476
|
-
"anti_patterns": [
|
|
6521
|
+
"anti_patterns": [
|
|
6522
|
+
{
|
|
6523
|
+
"description": "Wrapping a check-ui (or switch-ui / radio-ui / toggle-ui) in field-ui. The widget already carries its own visible [label] via the CSS attr() pattern; field-ui adds a redundant label row and the inline-mode `justify-self: end` rule for compact controls pushes the widget to the right edge of the row, breaking the expected \"checkbox-left, label-right\" consent-row layout.",
|
|
6524
|
+
"right": "<check-ui label=\"I agree to the Terms of Service\"></check-ui>\n",
|
|
6525
|
+
"rule": "Small self-labeling widgets MUST NOT be wrapped in field-ui.",
|
|
6526
|
+
"wrong": "<field-ui inline>\n <check-ui label=\"I agree to the Terms of Service\"></check-ui>\n</field-ui>\n"
|
|
6527
|
+
},
|
|
6528
|
+
{
|
|
6529
|
+
"description": "Using field-ui[inline] around a switch-ui to build a settings row. The settings-row layout (label-left, control-right) IS the switch-ui's own [label] rendering — field-ui adds no value and breaks the layout via the `justify-self: end` rule for compact widgets.",
|
|
6530
|
+
"right": "<switch-ui label=\"Email notifications\"></switch-ui>\n",
|
|
6531
|
+
"rule": "Use the widget's own [label] attribute for settings + consent rows. field-ui is for wide-control rows only.",
|
|
6532
|
+
"wrong": "<field-ui inline label=\"Email notifications\">\n <switch-ui></switch-ui>\n</field-ui>\n"
|
|
6533
|
+
}
|
|
6534
|
+
],
|
|
6477
6535
|
"category": "form",
|
|
6478
6536
|
"events": {},
|
|
6479
6537
|
"examples": [
|
|
@@ -6500,14 +6558,12 @@
|
|
|
6500
6558
|
"input",
|
|
6501
6559
|
"select",
|
|
6502
6560
|
"textarea",
|
|
6503
|
-
"
|
|
6504
|
-
"
|
|
6505
|
-
"switch",
|
|
6506
|
-
"slider"
|
|
6561
|
+
"slider",
|
|
6562
|
+
"range"
|
|
6507
6563
|
],
|
|
6508
6564
|
"slots": {
|
|
6509
6565
|
"default": {
|
|
6510
|
-
"description": "The form control — input-ui, select-ui, textarea-ui,
|
|
6566
|
+
"description": "The form control — a WIDE control like input-ui, select-ui, textarea-ui, slider-ui, range-ui, calendar-picker-ui, color-picker-ui, upload-ui, otp-input-ui. Auto-id'd for the label's [for] binding.\nDO NOT wrap small self-labeling widgets here. check-ui, switch-ui, radio-ui, toggle-ui all carry their own [label] attribute that renders inline next to the control — wrapping them in field-ui produces broken layouts (settings-row `justify-self: end` rule pushes the control to the trailing edge, away from the label that field-ui stamps; the widget's own label then renders again on the right, creating a doubled / right-justified affordance). See anti_patterns below for the canonical alternatives."
|
|
6511
6567
|
},
|
|
6512
6568
|
"action": {
|
|
6513
6569
|
"description": "Button adjacent to the control for inline actions (clear, reset, help popover)."
|
|
@@ -7586,6 +7642,11 @@
|
|
|
7586
7642
|
"type": "boolean",
|
|
7587
7643
|
"default": false
|
|
7588
7644
|
},
|
|
7645
|
+
"autocomplete": {
|
|
7646
|
+
"description": "Browser autofill behavior per HTML autocomplete spec. Routed via setAttribute to the host element. Common values: off, on, cc-number, cc-exp, cc-csc, cc-name, email, username, current-password, new-password, one-time-code, given-name, family-name, street-address, postal-code.",
|
|
7647
|
+
"type": "string",
|
|
7648
|
+
"default": ""
|
|
7649
|
+
},
|
|
7589
7650
|
"component": {
|
|
7590
7651
|
"const": "Input"
|
|
7591
7652
|
},
|
|
@@ -7599,6 +7660,21 @@
|
|
|
7599
7660
|
"type": "string",
|
|
7600
7661
|
"default": ""
|
|
7601
7662
|
},
|
|
7663
|
+
"inputmode": {
|
|
7664
|
+
"description": "Mobile keyboard hint per HTML inputmode spec. Routed via setAttribute to the host element. Values: text, decimal, numeric, tel, search, email, url.",
|
|
7665
|
+
"type": "string",
|
|
7666
|
+
"enum": [
|
|
7667
|
+
"text",
|
|
7668
|
+
"decimal",
|
|
7669
|
+
"numeric",
|
|
7670
|
+
"tel",
|
|
7671
|
+
"search",
|
|
7672
|
+
"email",
|
|
7673
|
+
"url",
|
|
7674
|
+
"none"
|
|
7675
|
+
],
|
|
7676
|
+
"default": null
|
|
7677
|
+
},
|
|
7602
7678
|
"label": {
|
|
7603
7679
|
"description": "Inline label rendered as a leading caption inside the input chrome, between any prefix and the value. Wires aria-labelledby on the editable surface. For stacked label / hint / error compositions, wrap with field-ui.",
|
|
7604
7680
|
"type": "string",
|
|
@@ -8023,6 +8099,170 @@
|
|
|
8023
8099
|
"version": 1
|
|
8024
8100
|
}
|
|
8025
8101
|
},
|
|
8102
|
+
"Link": {
|
|
8103
|
+
"title": "Link",
|
|
8104
|
+
"description": "Inline navigation primitive — semantic `<a href>` wrapper. Use for\ncross-page navigation, footer / Terms-of-Service / Privacy-Policy\ninline references, \"Sign in\" / \"Sign up\" cross-page links, and any\naffordance whose purpose is to take the user somewhere (not to\nperform an action).\n\nSibling of `<button-ui>` — they have separate semantics and must\nnot be substituted for each other:\n\n| Affordance | Use |\n|---------------------------|----------------|\n| Submit form | `<button-ui>` |\n| Trigger action / modal | `<button-ui>` |\n| Copy to clipboard | `<button-ui>` |\n| Open modal / drawer | `<button-ui>` |\n| Navigate to another page | `<link-ui>` |\n| Open external URL | `<link-ui>` |\n| Anchor jump (#section) | `<link-ui>` |\n| Inline reference in prose | `<link-ui>` |\n\nRenders `<a href=\"…\">` internally so middle-click open-in-new-tab,\nright-click context menu, hover URL preview, search-engine\ncrawlability, and bookmark-ability all work without any custom\nwiring. ARIA role is \"link\" (set automatically by `<a>` element).\n",
|
|
8105
|
+
"type": "object",
|
|
8106
|
+
"allOf": [
|
|
8107
|
+
{
|
|
8108
|
+
"$ref": "#/$defs/ComponentCommon"
|
|
8109
|
+
},
|
|
8110
|
+
{
|
|
8111
|
+
"$ref": "#/$defs/CatalogComponentCommon"
|
|
8112
|
+
}
|
|
8113
|
+
],
|
|
8114
|
+
"properties": {
|
|
8115
|
+
"block": {
|
|
8116
|
+
"description": "Stretches the link to fill its container; useful for standalone link rows.",
|
|
8117
|
+
"type": "boolean",
|
|
8118
|
+
"default": false
|
|
8119
|
+
},
|
|
8120
|
+
"component": {
|
|
8121
|
+
"const": "Link"
|
|
8122
|
+
},
|
|
8123
|
+
"disabled": {
|
|
8124
|
+
"description": "Suppresses navigation + applies muted styling. Sets aria-disabled.",
|
|
8125
|
+
"type": "boolean",
|
|
8126
|
+
"default": false
|
|
8127
|
+
},
|
|
8128
|
+
"href": {
|
|
8129
|
+
"description": "Destination URL or anchor. Required for SEO / middle-click / hover preview semantics. If omitted, the link still dispatches the `press` event (so it can be wired through the A2UI action handler system via `handler: \"navigate\"`), but loses native link behaviors.",
|
|
8130
|
+
"type": "string",
|
|
8131
|
+
"default": ""
|
|
8132
|
+
},
|
|
8133
|
+
"icon": {
|
|
8134
|
+
"description": "Optional leading icon (Phosphor name). Use sparingly — most inline links don't need an icon. For \"open in new tab\" affordance, the `target=\"_blank\"` attribute auto-renders a trailing arrow-up-right glyph; the `icon` prop is for leading semantic icons.",
|
|
8135
|
+
"type": "string",
|
|
8136
|
+
"default": ""
|
|
8137
|
+
},
|
|
8138
|
+
"rel": {
|
|
8139
|
+
"description": "Explicit `rel` attribute. Defaults to `noopener noreferrer` when `target=\"_blank\"` is set without an explicit rel.",
|
|
8140
|
+
"type": "string",
|
|
8141
|
+
"default": ""
|
|
8142
|
+
},
|
|
8143
|
+
"target": {
|
|
8144
|
+
"description": "Anchor target — same semantics as HTML `<a target>`. Use `_blank` to open in new tab; the implementation automatically adds `rel=\"noopener noreferrer\"` for `_blank` to prevent tab-napping / privacy leaks.",
|
|
8145
|
+
"type": "string",
|
|
8146
|
+
"enum": [
|
|
8147
|
+
"",
|
|
8148
|
+
"_self",
|
|
8149
|
+
"_blank",
|
|
8150
|
+
"_parent",
|
|
8151
|
+
"_top"
|
|
8152
|
+
],
|
|
8153
|
+
"default": ""
|
|
8154
|
+
},
|
|
8155
|
+
"text": {
|
|
8156
|
+
"description": "Visible link text. Falls back to default-slot content if unset.",
|
|
8157
|
+
"type": "string",
|
|
8158
|
+
"default": ""
|
|
8159
|
+
},
|
|
8160
|
+
"variant": {
|
|
8161
|
+
"description": "Visual treatment. `default` underlines on rest + hover (standard link affordance). `subtle` underlines only on hover (for tighter designs where always-underlined would be noisy). `quiet` drops the link color and matches surrounding text color (used for footer-link rows where the link affordance is implied by context, not by color).",
|
|
8162
|
+
"type": "string",
|
|
8163
|
+
"enum": [
|
|
8164
|
+
"default",
|
|
8165
|
+
"subtle",
|
|
8166
|
+
"quiet"
|
|
8167
|
+
],
|
|
8168
|
+
"default": "default"
|
|
8169
|
+
}
|
|
8170
|
+
},
|
|
8171
|
+
"required": [
|
|
8172
|
+
"component"
|
|
8173
|
+
],
|
|
8174
|
+
"unevaluatedProperties": false,
|
|
8175
|
+
"x-adiaui": {
|
|
8176
|
+
"anti_patterns": [
|
|
8177
|
+
"❌ `<button-ui variant=\"link\">` — was removed. Migrate to `<link-ui>` if the affordance is navigation, or to `<button-ui variant=\"ghost\">` if the affordance is an action that wants understated styling.",
|
|
8178
|
+
"❌ `<link-ui>` with no `href` AND no `press` handler — a link to nowhere is a bug. Either set `href` or wire a navigate action handler.",
|
|
8179
|
+
"❌ `<link-ui>` for form submission — submission is a button concern. Use `<button-ui type=\"submit\">`."
|
|
8180
|
+
],
|
|
8181
|
+
"category": "content",
|
|
8182
|
+
"events": {
|
|
8183
|
+
"press": {
|
|
8184
|
+
"description": "Bubbles when the link is activated by click or Enter. Detail: `{ href, target }`. Fires BEFORE the browser's native navigation so handlers can `preventDefault()` and route through the A2UI action handler system. If no handler intercepts, native navigation proceeds."
|
|
8185
|
+
}
|
|
8186
|
+
},
|
|
8187
|
+
"examples": [
|
|
8188
|
+
{
|
|
8189
|
+
"title": "Inline link in a sentence",
|
|
8190
|
+
"code": "<text-ui>\n I agree to the\n <link-ui text=\"Terms of Service\" href=\"/terms\"></link-ui>\n and\n <link-ui text=\"Privacy Policy\" href=\"/privacy\"></link-ui>.\n</text-ui>\n"
|
|
8191
|
+
},
|
|
8192
|
+
{
|
|
8193
|
+
"title": "External link with new-tab target",
|
|
8194
|
+
"code": "<link-ui text=\"Read the spec\" href=\"https://example.com/spec\" target=\"_blank\"></link-ui>\n"
|
|
8195
|
+
},
|
|
8196
|
+
{
|
|
8197
|
+
"title": "Footer link row",
|
|
8198
|
+
"code": "<row-ui justify=\"center\" gap=\"2\">\n <link-ui text=\"Already have an account?\" variant=\"quiet\" href=\"/signin\"></link-ui>\n <link-ui text=\"Sign in\" href=\"/signin\"></link-ui>\n</row-ui>\n"
|
|
8199
|
+
}
|
|
8200
|
+
],
|
|
8201
|
+
"keywords": [
|
|
8202
|
+
"link",
|
|
8203
|
+
"anchor",
|
|
8204
|
+
"navigation",
|
|
8205
|
+
"hyperlink",
|
|
8206
|
+
"href",
|
|
8207
|
+
"navigate",
|
|
8208
|
+
"route",
|
|
8209
|
+
"url"
|
|
8210
|
+
],
|
|
8211
|
+
"name": "UILink",
|
|
8212
|
+
"related": [
|
|
8213
|
+
"Button",
|
|
8214
|
+
"NavItem",
|
|
8215
|
+
"Breadcrumb"
|
|
8216
|
+
],
|
|
8217
|
+
"slots": {
|
|
8218
|
+
"default": {
|
|
8219
|
+
"description": "Link text content when the `text` prop is unused."
|
|
8220
|
+
}
|
|
8221
|
+
},
|
|
8222
|
+
"states": [
|
|
8223
|
+
{
|
|
8224
|
+
"description": "Default rest state — underlined (or per variant).",
|
|
8225
|
+
"name": "idle"
|
|
8226
|
+
},
|
|
8227
|
+
{
|
|
8228
|
+
"description": "Color shifts to `--a-link-hover`.",
|
|
8229
|
+
"name": "hover"
|
|
8230
|
+
},
|
|
8231
|
+
{
|
|
8232
|
+
"description": "Auto-styled via `:visited` pseudo when navigating to a previously-visited URL.",
|
|
8233
|
+
"name": "visited"
|
|
8234
|
+
},
|
|
8235
|
+
{
|
|
8236
|
+
"description": "Suppressed activation; muted text color; aria-disabled.",
|
|
8237
|
+
"name": "disabled"
|
|
8238
|
+
}
|
|
8239
|
+
],
|
|
8240
|
+
"synonyms": {
|
|
8241
|
+
"Link": [
|
|
8242
|
+
"Anchor",
|
|
8243
|
+
"Hyperlink",
|
|
8244
|
+
"NavLink"
|
|
8245
|
+
]
|
|
8246
|
+
},
|
|
8247
|
+
"tag": "link-ui",
|
|
8248
|
+
"tokens": {
|
|
8249
|
+
"--link-color": {
|
|
8250
|
+
"description": "Resting link color. Default `var(--a-link)`."
|
|
8251
|
+
},
|
|
8252
|
+
"--link-color-hover": {
|
|
8253
|
+
"description": "Hover-state color. Default `var(--a-link-hover)`."
|
|
8254
|
+
},
|
|
8255
|
+
"--link-color-visited": {
|
|
8256
|
+
"description": "Visited-state color. Default `var(--a-link-visited)`."
|
|
8257
|
+
},
|
|
8258
|
+
"--link-underline-offset": {
|
|
8259
|
+
"description": "Distance between baseline and underline. Default `2px`."
|
|
8260
|
+
}
|
|
8261
|
+
},
|
|
8262
|
+
"traits": [],
|
|
8263
|
+
"version": 1
|
|
8264
|
+
}
|
|
8265
|
+
},
|
|
8026
8266
|
"List": {
|
|
8027
8267
|
"title": "List",
|
|
8028
8268
|
"description": "Styled list with optional icons and dividers.",
|
|
@@ -10073,7 +10313,14 @@
|
|
|
10073
10313
|
],
|
|
10074
10314
|
"unevaluatedProperties": false,
|
|
10075
10315
|
"x-adiaui": {
|
|
10076
|
-
"anti_patterns": [
|
|
10316
|
+
"anti_patterns": [
|
|
10317
|
+
{
|
|
10318
|
+
"description": "Wrapping a radio-ui in field-ui. The widget already self-labels.",
|
|
10319
|
+
"right": "<radio-ui label=\"Basic plan\" name=\"plan\" value=\"basic\"></radio-ui>\n",
|
|
10320
|
+
"rule": "Use [label] on radio-ui directly; do not wrap in field-ui.",
|
|
10321
|
+
"wrong": "<field-ui inline label=\"Basic plan\">\n <radio-ui name=\"plan\" value=\"basic\"></radio-ui>\n</field-ui>\n"
|
|
10322
|
+
}
|
|
10323
|
+
],
|
|
10077
10324
|
"category": "input",
|
|
10078
10325
|
"events": {
|
|
10079
10326
|
"change": {
|
|
@@ -10609,6 +10856,11 @@
|
|
|
10609
10856
|
"type": "string",
|
|
10610
10857
|
"default": "md"
|
|
10611
10858
|
},
|
|
10859
|
+
"grow": {
|
|
10860
|
+
"description": "Fills remaining space in a flex parent. CSS-only attribute via :scope[grow] in row.css.",
|
|
10861
|
+
"type": "boolean",
|
|
10862
|
+
"default": false
|
|
10863
|
+
},
|
|
10612
10864
|
"justify": {
|
|
10613
10865
|
"description": "Justify content",
|
|
10614
10866
|
"type": "string",
|
|
@@ -11216,6 +11468,11 @@
|
|
|
11216
11468
|
"type": "boolean",
|
|
11217
11469
|
"default": false
|
|
11218
11470
|
},
|
|
11471
|
+
"options": {
|
|
11472
|
+
"description": "Option list. Array of {value, label, disabled?} or grouped {label, options: [...]}. Alternative to declarative <option> / <optgroup> children.",
|
|
11473
|
+
"type": "array",
|
|
11474
|
+
"default": []
|
|
11475
|
+
},
|
|
11219
11476
|
"pattern": {
|
|
11220
11477
|
"description": "Regex pattern for validation",
|
|
11221
11478
|
"type": "string",
|
|
@@ -11236,6 +11493,16 @@
|
|
|
11236
11493
|
"type": "boolean",
|
|
11237
11494
|
"default": false
|
|
11238
11495
|
},
|
|
11496
|
+
"size": {
|
|
11497
|
+
"description": "Sizing scale via universal `[size]` attribute system (packages/web-components/styles/tokens.css). Matches Input's sizing tokens so a Select rendered alongside an Input feels coherent in a form row.",
|
|
11498
|
+
"type": "string",
|
|
11499
|
+
"enum": [
|
|
11500
|
+
"sm",
|
|
11501
|
+
"md",
|
|
11502
|
+
"lg"
|
|
11503
|
+
],
|
|
11504
|
+
"default": "md"
|
|
11505
|
+
},
|
|
11239
11506
|
"value": {
|
|
11240
11507
|
"description": "Currently selected option value",
|
|
11241
11508
|
"type": "string",
|
|
@@ -12735,7 +13002,14 @@
|
|
|
12735
13002
|
],
|
|
12736
13003
|
"unevaluatedProperties": false,
|
|
12737
13004
|
"x-adiaui": {
|
|
12738
|
-
"anti_patterns": [
|
|
13005
|
+
"anti_patterns": [
|
|
13006
|
+
{
|
|
13007
|
+
"description": "Wrapping a switch-ui in field-ui. The widget already self-labels.",
|
|
13008
|
+
"right": "<switch-ui label=\"Email notifications\"></switch-ui>\n",
|
|
13009
|
+
"rule": "Use [label] on switch-ui directly; do not wrap in field-ui.",
|
|
13010
|
+
"wrong": "<field-ui inline label=\"Email notifications\">\n <switch-ui></switch-ui>\n</field-ui>\n"
|
|
13011
|
+
}
|
|
13012
|
+
],
|
|
12739
13013
|
"category": "layout",
|
|
12740
13014
|
"events": {
|
|
12741
13015
|
"change": {
|
|
@@ -12818,9 +13092,19 @@
|
|
|
12818
13092
|
}
|
|
12819
13093
|
],
|
|
12820
13094
|
"properties": {
|
|
13095
|
+
"columns": {
|
|
13096
|
+
"description": "Column definitions. Array of {key, label, type?, width?, minWidth?, maxWidth?, flex?, sortable?, resizable?, filterable?, pinned?, hidden?, accessor?, format?, render?, sortFn?, filterType?, meta?}. Alternative to declarative <col-def> children.",
|
|
13097
|
+
"type": "array",
|
|
13098
|
+
"default": []
|
|
13099
|
+
},
|
|
12821
13100
|
"component": {
|
|
12822
13101
|
"const": "Table"
|
|
12823
13102
|
},
|
|
13103
|
+
"data": {
|
|
13104
|
+
"description": "Row records. Array of plain objects keyed to columns[].key.",
|
|
13105
|
+
"type": "array",
|
|
13106
|
+
"default": []
|
|
13107
|
+
},
|
|
12824
13108
|
"density": {
|
|
12825
13109
|
"description": "Controls cell padding and row height. 'compact' for dense data, 'standard' for default spacing, 'comfortable' for spacious rows.",
|
|
12826
13110
|
"type": "string",
|
|
@@ -13656,6 +13940,10 @@
|
|
|
13656
13940
|
"type": "string",
|
|
13657
13941
|
"default": ""
|
|
13658
13942
|
},
|
|
13943
|
+
"textContent": {
|
|
13944
|
+
"description": "Tag label. Renderer routes this to the `text` attribute, rendered via CSS attr(text) on ::after.",
|
|
13945
|
+
"$ref": "#/$defs/DynamicString"
|
|
13946
|
+
},
|
|
13659
13947
|
"variant": {
|
|
13660
13948
|
"description": "Semantic variant — `default | info | success | warning | danger`.",
|
|
13661
13949
|
"type": "string",
|
|
@@ -13778,6 +14066,11 @@
|
|
|
13778
14066
|
"type": "number",
|
|
13779
14067
|
"default": 0
|
|
13780
14068
|
},
|
|
14069
|
+
"strong": {
|
|
14070
|
+
"description": "When true, applies stronger emphasis (heavier weight + accent color). Styled via :scope[strong] in text.css. Use instead of variant=heading when you want a single emphasized word inline in body copy.",
|
|
14071
|
+
"type": "boolean",
|
|
14072
|
+
"default": false
|
|
14073
|
+
},
|
|
13781
14074
|
"textContent": {
|
|
13782
14075
|
"description": "Display text content. The main payload field for Text components extracted from HTML.",
|
|
13783
14076
|
"$ref": "#/$defs/DynamicString"
|
|
@@ -13885,6 +14178,11 @@
|
|
|
13885
14178
|
"type": "string",
|
|
13886
14179
|
"default": ""
|
|
13887
14180
|
},
|
|
14181
|
+
"name": {
|
|
14182
|
+
"description": "Form control name for form data submission. Inherited from UIFormElement.",
|
|
14183
|
+
"type": "string",
|
|
14184
|
+
"default": ""
|
|
14185
|
+
},
|
|
13888
14186
|
"placeholder": {
|
|
13889
14187
|
"description": "Placeholder text shown when textarea is empty.",
|
|
13890
14188
|
"type": "string",
|
|
@@ -11,11 +11,29 @@
|
|
|
11
11
|
- Multiple <section> siblings are allowed and stack vertically. [bleed] on a section removes its margin for edge-to-edge content (tables, charts); [padding] adds a canvas-scrim background for hero regions.
|
|
12
12
|
- Footer with a [slot="description"] + [slot="action"] pair triggers justify-content: space-between — useful for a "Last saved …" note on the left and a Save/Cancel button group on the right.
|
|
13
13
|
|
|
14
|
+
## Check
|
|
15
|
+
- Self-labeling widget — use the [label] attribute directly; do NOT wrap in <field-ui>. The widget renders its own label inline via CSS attr() pattern. Wrapping breaks the consent-row layout (see field-ui anti_patterns).
|
|
16
|
+
|
|
17
|
+
## Field
|
|
18
|
+
- field-ui is for WIDE controls (input-ui, select-ui, textarea-ui, slider-ui, etc.) that need a separate label row. Small self-labeling widgets (check-ui, switch-ui, radio-ui, toggle-ui) carry their own [label] attribute and MUST NOT be wrapped in field-ui.
|
|
19
|
+
- field-ui[inline] is for inline WIDE-control rows (e.g. search field with trailing kbd hint), NOT for compact-widget rows. For settings rows or consent rows, use the widget's own [label] attribute directly without a field-ui wrapper.
|
|
20
|
+
|
|
14
21
|
## Grid
|
|
15
22
|
- For asymmetric column ratios, use [columns="N"] plus [span="M"] on the child that should be wider. Never set grid-template-columns via style — it bypasses the component API and reads as a local hack.
|
|
16
23
|
- Canonical ratios: 1:1 → columns="2"; 2:1 → columns="3" + span="2"; 3:1 → columns="4" + span="3"; 3:2 → columns="5" + span="3"+"2"; 4:1 → columns="5" + span="4". Round unusual ratios (e.g. 7:5) to 3:2.
|
|
17
24
|
- The default (no columns attribute) gives equal auto-columns flowing in a single row. Prefer the explicit numeric attribute for dashboard rows so the layout is predictable when items wrap.
|
|
18
25
|
|
|
26
|
+
## Link
|
|
27
|
+
- Use `<link-ui>` for navigation; use `<button-ui>` for actions. They are NOT interchangeable.
|
|
28
|
+
- When wrapping action affordances that visually mimic links (e.g. 'Forgot password?' that triggers a reset flow), prefer `<button-ui variant="ghost">` over a fake `<link-ui>` — the affordance is semantically a button, just visually understated.
|
|
29
|
+
- For inline-sentence affordances ('I agree to the [Terms] and [Privacy]'), nest `<link-ui>` directly inside `<text-ui>` so it inherits the paragraph's font / size / line-height.
|
|
30
|
+
|
|
31
|
+
## Radio
|
|
32
|
+
- Self-labeling widget — use the [label] attribute directly; do NOT wrap in <field-ui>. The widget renders its own label inline via CSS attr() pattern. For radio groups, the canonical pattern is a column of bare <radio-ui label='…'> elements sharing a [name=] — no field-ui wrapper around each radio.
|
|
33
|
+
|
|
34
|
+
## Switch
|
|
35
|
+
- Self-labeling widget — use the [label] attribute directly; do NOT wrap in <field-ui>. The widget renders its own label inline via CSS attr() pattern. For settings rows (label-left, switch-right), put the descriptive text in switch-ui's own [label] attribute; do not introduce a field-ui wrapper. For descriptive helper text below the switch, use <text-ui variant='caption'> as a sibling — not field-ui's hint slot.
|
|
36
|
+
|
|
19
37
|
## ChatComposer
|
|
20
38
|
- chat-composer is the bespoke replacement for legacy <chat-input-ui data-chat-input> inside <chat-shell>. Place an inner <chat-input-ui submit-on-enter> as the primary input.
|
|
21
39
|
- The host listens for 'composer-submit' on the composer (not on the inner input). The event detail mirrors the inner submit event so existing handlers Just Work.
|