themelia-ui 3.0.0 → 3.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/.agents/skills/themelia-ui/SKILL.md +60 -33
- package/.agents/skills/themelia-ui/manifest.json +23 -0
- package/.agents/skills/themelia-ui/references/api-compatibility.md +5 -4
- package/.agents/skills/themelia-ui/references/blocks.md +123 -0
- package/.agents/skills/themelia-ui/references/composition-ladder.md +8 -8
- package/.agents/skills/themelia-ui/references/composition.md +100 -19
- package/.agents/skills/themelia-ui/references/forms.md +23 -3
- package/.agents/skills/themelia-ui/references/framework-wiring.md +41 -13
- package/.agents/skills/themelia-ui/references/i18n.md +4 -2
- package/.agents/skills/themelia-ui/references/imports.md +104 -104
- package/.agents/skills/themelia-ui/references/installation.md +60 -31
- package/.agents/skills/themelia-ui/references/migration.md +156 -5
- package/.agents/skills/themelia-ui/references/provider-and-scoping.md +37 -25
- package/.agents/skills/themelia-ui/references/reference-workflows.md +43 -0
- package/.agents/skills/themelia-ui/references/structure-and-spacing.md +147 -0
- package/.agents/skills/themelia-ui/references/theming.md +174 -131
- package/.agents/skills/themelia-ui/references/troubleshooting.md +88 -30
- package/.agents/skills/themelia-ui/references/verification.md +60 -5
- package/CHANGELOG.md +212 -0
- package/README.md +48 -60
- package/dist/accordion-CHuzMmWL.js +143 -0
- package/dist/{action-menu-BNLURfMK.js → action-menu-BwiL_F6I.js} +35 -33
- package/dist/{alert-dialog-BMVo6Z-8.js → alert-dialog-Cg2HhuBe.js} +1 -1
- package/dist/avatar-Dc_BNYfB.js +93 -0
- package/dist/badge-VlJVZjdm.js +45 -0
- package/dist/base/accordion.js +1 -1
- package/dist/base/action-menu.js +1 -1
- package/dist/base/alert-dialog.js +1 -1
- package/dist/base/aspect-ratio.js +3 -1
- package/dist/base/avatar.js +1 -1
- package/dist/base/badge.js +2 -2
- package/dist/base/batch-action-bar.js +1 -1
- package/dist/base/buttons.js +1 -1
- package/dist/base/cards.js +1 -1
- package/dist/base/carousel.js +6 -4
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +1 -1
- package/dist/base/combobox.js +1 -1
- package/dist/base/command.js +1 -1
- package/dist/base/context-menu.js +22 -21
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +1 -1
- package/dist/base/dialog.js +1 -1
- package/dist/base/display.js +1 -1
- package/dist/base/dropdown-menu.js +1 -1
- package/dist/base/feedback.js +1 -1
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +1 -1
- package/dist/base/hover-card.js +26 -23
- package/dist/base/input-group.js +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/label.js +1 -1
- package/dist/base/menubar.js +20 -14
- package/dist/base/navigation-menu.js +47 -38
- package/dist/base/navigation.js +1 -1
- package/dist/base/otp-input.js +36 -30
- package/dist/base/overlay.js +1 -1
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +51 -47
- package/dist/base/repeaters.js +1 -1
- package/dist/base/resizable.js +2 -0
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +1 -1
- package/dist/base/timeline.js +1 -1
- package/dist/base/toaster.js +1 -1
- package/dist/base/toggle.js +21 -15
- package/dist/base/toolbar.js +1 -1
- package/dist/base/tooltip.js +1 -1
- package/dist/base/typography.js +2 -2
- package/dist/base/upload.js +1 -1
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-BZYNKXdV.js → batch-action-bar-DZVMVW83.js} +11 -8
- package/dist/{admin/patterns → blocks/admin}/access.js +79 -76
- package/dist/blocks/admin/commerce.js +2493 -0
- package/dist/{patterns → blocks}/analytics.js +312 -303
- package/dist/{patterns → blocks}/onboarding.js +27 -23
- package/dist/{patterns → blocks}/timelines.js +1 -1
- package/dist/buttons-BX2JfL5X.js +173 -0
- package/dist/cards-Ddhz43Bz.js +279 -0
- package/dist/chart-BkK3Xm10.js +201 -0
- package/dist/choice-inputs-NwRxvmZN.js +694 -0
- package/dist/combobox-519ubijc.js +292 -0
- package/dist/command-JjApYFds.js +156 -0
- package/dist/comments-CCQ2QRaU.js +1443 -0
- package/dist/components/base/action-menu/action-menu.d.ts +1 -1
- package/dist/components/base/action-menu/action-menu.types.d.ts +2 -2
- package/dist/components/base/avatar/avatar.d.ts +5 -2
- package/dist/components/base/badge/badge.d.ts +10 -10
- package/dist/components/base/badge/badge.variants.d.ts +1 -2
- package/dist/components/base/badge/index.d.ts +1 -2
- package/dist/components/base/buttons/button.d.ts +9 -8
- package/dist/components/base/buttons/button.types.d.ts +2 -2
- package/dist/components/base/buttons/index.d.ts +1 -1
- package/dist/components/base/buttons/text-button.d.ts +1 -1
- package/dist/components/base/cards/card-actions.d.ts +1 -1
- package/dist/components/base/cards/card.d.ts +3 -1
- package/dist/components/base/cards/partials/card-header.d.ts +2 -1
- package/dist/components/base/choice-inputs/choice.types.d.ts +2 -2
- package/dist/components/base/choice-inputs/partials/choice-parts.d.ts +3 -3
- package/dist/components/base/command/command.d.ts +5 -2
- package/dist/components/base/display/icon-badge.d.ts +5 -3
- package/dist/components/base/display/index.d.ts +1 -1
- package/dist/components/base/display/metadata-list.d.ts +6 -6
- package/dist/components/base/display/metadata-value.d.ts +1 -1
- package/dist/components/base/display/separator.d.ts +2 -2
- package/dist/components/base/feedback/alert.d.ts +3 -2
- package/dist/components/base/feedback/empty.d.ts +5 -4
- package/dist/components/base/feedback/progress-circle.d.ts +2 -2
- package/dist/components/base/feedback/progress.d.ts +3 -1
- package/dist/components/base/forms/form-field.d.ts +2 -2
- package/dist/components/base/input-group/input-group.d.ts +8 -10
- package/dist/components/base/item/item.d.ts +2 -2
- package/dist/components/base/overlay/index.d.ts +1 -1
- package/dist/components/base/overlay/overlay.types.d.ts +7 -5
- package/dist/components/base/qr-code/qr-code.d.ts +4 -4
- package/dist/components/base/sheet/sheet.d.ts +1 -1
- package/dist/components/base/sidebar/sidebar.d.ts +9 -13
- package/dist/components/base/spinner/spinner.d.ts +2 -2
- package/dist/components/base/structure/adaptive-grid.d.ts +3 -3
- package/dist/components/base/structure/bleed.d.ts +4 -2
- package/dist/components/base/structure/grid.d.ts +10 -4
- package/dist/components/base/structure/index.d.ts +1 -1
- package/dist/components/base/structure/split.d.ts +4 -3
- package/dist/components/base/structure/stack.d.ts +5 -5
- package/dist/components/base/structure/structure.maps.d.ts +2 -1
- package/dist/components/base/structure/structure.types.d.ts +10 -4
- package/dist/components/base/toggle/toggle.d.ts +2 -2
- package/dist/components/base/toolbar/toolbar.d.ts +3 -3
- package/dist/components/base/typography/index.d.ts +2 -0
- package/dist/components/base/typography/rich-text/rich-text.variants.d.ts +9 -0
- package/dist/components/base/typography/text/index.d.ts +1 -0
- package/dist/components/base/typography/text/text.d.ts +15 -8
- package/dist/components/base/typography/text/text.variants.d.ts +41 -0
- package/dist/components/base/value-inputs/color-input.d.ts +1 -7
- package/dist/components/base/value-inputs/slider.d.ts +2 -7
- package/dist/components/{admin/patterns → blocks/admin}/commerce/vendor-profile.d.ts +2 -1
- package/dist/components/{patterns → blocks}/analytics/analytics.strings.d.ts +2 -5
- package/dist/components/features/actions/action-adapters.d.ts +3 -3
- package/dist/components/features/actions/actions.types.d.ts +3 -5
- package/dist/components/features/actions/index.d.ts +1 -1
- package/dist/components/features/activities/activities-feed.d.ts +1 -1
- package/dist/components/features/activities/activities.types.d.ts +4 -4
- package/dist/components/features/activities/activity-parts.d.ts +3 -3
- package/dist/components/features/activities/activity-row.d.ts +4 -4
- package/dist/components/features/activities/index.d.ts +1 -1
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +10 -3
- package/dist/components/features/ai-chat/ai-message-surfaces.d.ts +1 -1
- package/dist/components/features/ai-chat/ai-work-surfaces.d.ts +1 -1
- package/dist/components/features/combobox/combobox.strings.d.ts +2 -2
- package/dist/components/features/combobox/fetching-combobox.d.ts +2 -1
- package/dist/components/features/combobox/resource-combobox.d.ts +3 -0
- package/dist/components/features/combobox/use-suggestions.d.ts +7 -0
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +3 -0
- package/dist/components/features/media-library/index.d.ts +1 -1
- package/dist/components/features/media-library/media-library-parts.d.ts +4 -3
- package/dist/components/features/media-library/media-library-views.d.ts +4 -3
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +12 -13
- package/dist/components/features/media-library/media-library.types.d.ts +11 -9
- package/dist/components/features/media-library/media-resource-gallery.d.ts +1 -1
- package/dist/components/features/media-library/use-media-library.d.ts +1 -4
- package/dist/components/features/overlays/action-overlay-frame.d.ts +1 -1
- package/dist/components/features/overlays/index.d.ts +1 -1
- package/dist/components/features/overlays/overlay-parts.d.ts +3 -3
- package/dist/components/features/overlays/overlays.types.d.ts +8 -7
- package/dist/components/features/rich-text-editor/index.d.ts +0 -1
- package/dist/components/features/table/data-table-body.d.ts +1 -1
- package/dist/components/features/table/data-table-expanded-row.d.ts +27 -0
- package/dist/components/features/table/data-table-header.d.ts +1 -1
- package/dist/components/features/table/data-table-size.d.ts +1 -1
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/index.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +9 -3
- package/dist/components/features/table/table.strings.d.ts +11 -0
- package/dist/components/features/table/table.types.d.ts +60 -2
- package/dist/components/features/theme-tweaker/index.d.ts +1 -1
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +1 -1
- package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +6 -10
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +22 -6
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
- package/dist/components/layout/auth/auth.d.ts +1 -1
- package/dist/components/layout/auth/auth.types.d.ts +1 -1
- package/dist/components/primitives/value.d.ts +3 -1
- package/dist/containers-B8d8U9GS.js +2 -0
- package/dist/{copyable-H1TUEY-H.js → copyable-D9Okb1w6.js} +12 -11
- package/dist/core.css +2 -2
- package/dist/css/access.css +2 -1
- package/dist/css/accordion.css +2 -1
- package/dist/css/action-menu.css +2 -1
- package/dist/css/activities.css +2 -1
- package/dist/css/ai-chat.css +2 -1
- package/dist/css/analytics.css +2 -1
- package/dist/css/app-shell.css +2 -1
- package/dist/css/aspect-ratio.css +2 -1
- package/dist/css/async-preview.css +2 -1
- package/dist/css/auth.css +2 -1
- package/dist/css/avatar.css +2 -1
- package/dist/css/badge.css +2 -1
- package/dist/css/batch-action-bar.css +2 -1
- package/dist/css/buttons.css +2 -1
- package/dist/css/cards.css +2 -1
- package/dist/css/carousel.css +2 -1
- package/dist/css/chart.css +2 -1
- package/dist/css/choice-inputs.css +2 -1
- package/dist/css/combobox.css +2 -1
- package/dist/css/combobox2.css +2 -1
- package/dist/css/command.css +2 -1
- package/dist/css/comments.css +2 -1
- package/dist/css/commerce.css +2 -1
- package/dist/css/containers.css +2 -1
- package/dist/css/copyable.css +2 -1
- package/dist/css/data-view.css +2 -1
- package/dist/css/date-pickers.css +2 -1
- package/dist/css/display.css +2 -1
- package/dist/css/dropdown-menu.css +2 -1
- package/dist/css/event-calendar.css +2 -1
- package/dist/css/feedback.css +2 -1
- package/dist/css/filters.css +2 -1
- package/dist/css/forms-numeric.css +2 -1
- package/dist/css/forms.css +2 -1
- package/dist/css/global-search.css +2 -1
- package/dist/css/header.css +2 -1
- package/dist/css/hover-card.css +2 -1
- package/dist/css/input-group.css +2 -1
- package/dist/css/item.css +2 -1
- package/dist/css/kanban.css +2 -1
- package/dist/css/label.css +2 -1
- package/dist/css/map.css +2 -1
- package/dist/css/media-library.css +2 -1
- package/dist/css/mentions.css +2 -1
- package/dist/css/menubar.css +2 -1
- package/dist/css/navigation-menu.css +2 -1
- package/dist/css/navigation.css +2 -1
- package/dist/css/navigation2.css +2 -1
- package/dist/css/onboarding.css +2 -1
- package/dist/css/otp-input.css +2 -1
- package/dist/css/overlay.css +2 -1
- package/dist/css/overlays.css +2 -1
- package/dist/css/page.css +2 -1
- package/dist/css/popover-menu.css +2 -1
- package/dist/css/popover.css +2 -1
- package/dist/css/primitives.css +2 -1
- package/dist/css/products.css +2 -1
- package/dist/css/qr-code.css +2 -1
- package/dist/css/repeaters.css +2 -1
- package/dist/css/resizable.css +2 -1
- package/dist/css/resource-assignment.css +2 -1
- package/dist/css/resource.css +2 -1
- package/dist/css/rich-text-editor.css +2 -1
- package/dist/css/schema-form.css +2 -1
- package/dist/css/sidebar.css +2 -1
- package/dist/css/sidebar2.css +2 -1
- package/dist/css/skeleton.css +2 -1
- package/dist/css/spinner.css +2 -1
- package/dist/css/structure.css +2 -1
- package/dist/css/sync.css +2 -1
- package/dist/css/table.css +2 -1
- package/dist/css/table2.css +2 -1
- package/dist/css/text-inputs.css +2 -1
- package/dist/css/theme-tweaker.css +2 -1
- package/dist/css/timeline.css +2 -1
- package/dist/css/timelines.css +2 -1
- package/dist/css/toaster.css +2 -1
- package/dist/css/toggle.css +2 -1
- package/dist/css/toolbar.css +2 -1
- package/dist/css/tooltip.css +2 -1
- package/dist/css/typography.css +2 -1
- package/dist/css/upload.css +2 -1
- package/dist/css/value-inputs.css +2 -1
- package/dist/css/workspace.css +2 -1
- package/dist/css-graph.json +1027 -0
- package/dist/date-pickers-BwCwKIVM.js +685 -0
- package/dist/{dialog-CtFCuTUF.js → dialog-CAnwRNrm.js} +1 -1
- package/dist/display-a7AoX_u7.js +664 -0
- package/dist/dropdown-menu-Br8kvjrF.js +235 -0
- package/dist/empty.js +0 -0
- package/dist/features/actions.js +6 -6
- package/dist/features/activities.js +219 -216
- package/dist/features/ai-chat.js +593 -565
- package/dist/features/async-preview.js +105 -286
- package/dist/features/combobox.js +328 -314
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +56 -55
- package/dist/features/event-calendar.js +189 -185
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +259 -260
- package/dist/features/kanban.js +39 -37
- package/dist/features/map.js +357 -354
- package/dist/features/media-library.js +931 -931
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +950 -942
- package/dist/features/resource-assignment.js +39 -37
- package/dist/features/resource.js +70 -71
- package/dist/features/rich-text-editor.js +2 -2
- package/dist/features/schema-form.js +342 -338
- package/dist/features/sync.js +14 -12
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +1002 -962
- package/dist/feedback-D4qVsKlD.js +430 -0
- package/dist/{filters-DOLKRSmb.js → filters-BhsTkWpZ.js} +386 -383
- package/dist/forms-C0WeNPFF.js +250 -0
- package/dist/forms-numeric-IwQ1ltNf.js +582 -0
- package/dist/hooks/use-native-dialog.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/input-group-HS_Z0Ei_.js +119 -0
- package/dist/item-M2pmpWXh.js +150 -0
- package/dist/{label-DumoMDm6.js → label-HOBXAscw.js} +7 -5
- package/dist/layout/app-shell.js +4 -2
- package/dist/layout/auth.js +102 -100
- package/dist/layout/header.js +190 -180
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +18 -16
- package/dist/layout/settings.js +2 -2
- package/dist/layout/sidebar.js +50 -46
- package/dist/layout/workspace.js +71 -69
- package/dist/lib/action-presentation.d.ts +3 -3
- package/dist/lib/component-vocabulary.d.ts +2 -2
- package/dist/lib/css-length.d.ts +2 -0
- package/dist/lib/responsive.d.ts +1 -1
- package/dist/lib/theming/index.d.ts +1 -0
- package/dist/lib/theming/recipes.d.ts +2 -2
- package/dist/lib/theming/themes/dense.d.ts +3 -0
- package/dist/lib/theming/themes/editorial.d.ts +3 -0
- package/dist/lib/theming/themes/index.d.ts +8 -0
- package/dist/lib/theming/themes/pair.d.ts +7 -0
- package/dist/lib/theming/themes/sharp.d.ts +3 -0
- package/dist/lib/theming/themes/soft.d.ts +3 -0
- package/dist/lib/theming/themes/types.d.ts +12 -0
- package/dist/lib/ui-provider/index.d.ts +1 -1
- package/dist/lib/ui-provider/scope.d.ts +5 -8
- package/dist/lib/ui-provider/tokens.d.ts +11 -3
- package/dist/lib/ui-provider/tokens.generated.d.ts +6 -4
- package/dist/lib/ui-provider/types.d.ts +17 -19
- package/dist/lib/ui-provider/ui-scope.d.ts +1 -1
- package/dist/{mentions-BbsEHlcH.js → mentions-BOxbigwp.js} +113 -111
- package/dist/navigation-Bgu7Vc0M.js +622 -0
- package/dist/navigation-DiYACqpE.js +216 -0
- package/dist/overlay-BuQOl8aP.js +356 -0
- package/dist/{overlays-DvVoS3td.js → overlays-1sULyytH.js} +77 -75
- package/dist/popover-CA7SP_iz.js +127 -0
- package/dist/popover-menu-QXgQeWeG.js +192 -0
- package/dist/{primitives-D0bdDozz.js → primitives-BskKlf35.js} +181 -178
- package/dist/primitives.js +1 -1
- package/dist/profiles/admin.json +6 -36
- package/dist/profiles/general.json +6 -96
- package/dist/repeaters-CeH20dvr.js +445 -0
- package/dist/rich-text-editor-D_Ppm8yh.js +491 -0
- package/dist/{sheet-CKcmRbJ9.js → sheet-CJ1-OAla.js} +3 -3
- package/dist/sidebar-D8uGqxio.js +421 -0
- package/dist/skeleton-BTKNKTdj.js +173 -0
- package/dist/spinner-Tc1QCnxM.js +30 -0
- package/dist/{structure-D0WGQAP3.js → structure-CynEZ-OY.js} +15 -23
- package/dist/style.css +1 -1
- package/dist/styles/TOKENS.md +116 -275
- package/dist/styles/animation.css +114 -0
- package/dist/styles/base.css +7 -6
- package/dist/styles/fields.css +45 -63
- package/dist/styles/focus.css +12 -0
- package/dist/styles/forced-colors.css +11 -10
- package/dist/styles/index.css +23 -30
- package/dist/styles/map.css +45 -34
- package/dist/styles/mentions.css +14 -52
- package/dist/styles/overlays.css +7 -7
- package/dist/styles/tailwind.css +76 -127
- package/dist/styles/targets.css +3 -3
- package/dist/styles/theme/colour.css +86 -0
- package/dist/styles/theme/density.css +31 -0
- package/dist/styles/theme/elevation.css +9 -0
- package/dist/styles/theme/layout.css +18 -0
- package/dist/styles/theme/motion.css +18 -0
- package/dist/styles/theme/shape.css +12 -0
- package/dist/styles/theme/size.css +10 -0
- package/dist/styles/theme/spacing.css +11 -0
- package/dist/styles/theme/typography.css +20 -0
- package/dist/styles/tone.css +61 -0
- package/dist/table-B7dtIFUx.js +1262 -0
- package/dist/table-Ds_eO9av.js +191 -0
- package/dist/tailwind.css +76 -127
- package/dist/text-inputs-BboE77nZ.js +395 -0
- package/dist/theming-C5ygF5uf.js +292 -0
- package/dist/theming.js +2 -2
- package/dist/{timeline-BdaGRyj-.js → timeline-BR_jNgvz.js} +57 -49
- package/dist/{timelines-BB7550mz.js → timelines-DXG1BfIN.js} +69 -67
- package/dist/{toaster-bBMgXm8z.js → toaster-CXL8L7Mm.js} +106 -99
- package/dist/tokens.json +1027 -636
- package/dist/toolbar-DBK-c4yy.js +74 -0
- package/dist/tooltip-BPYP-jUm.js +76 -0
- package/dist/{typography-BkxEiwQ1.js → typography-DmeR05Er.js} +87 -53
- package/dist/{ui-provider-Cmoq6i_D.js → ui-provider-DpzLUD12.js} +117 -69
- package/dist/ui-provider.js +1 -1
- package/dist/upload-CYuoJykZ.js +968 -0
- package/dist/use-async-preview-BFwf9ElY.js +188 -0
- package/dist/value-inputs-ng8aVJJZ.js +728 -0
- package/docs/README.md +13 -3
- package/docs/build/browser-composition-fixture.ts +28 -0
- package/docs/build/recipes.md +11484 -10723
- package/docs/generated/component-index.json +9809 -9169
- package/docs/generated/components/INDEX.md +5 -5
- package/docs/generated/components/base--accordion.md +51 -2
- package/docs/generated/components/base--action-menu.md +14 -15
- package/docs/generated/components/base--alert-dialog.md +3 -4
- package/docs/generated/components/base--aspect-ratio.md +3 -4
- package/docs/generated/components/base--avatar.md +7 -7
- package/docs/generated/components/base--badge.md +159 -27
- package/docs/generated/components/base--batch-action-bar.md +6 -7
- package/docs/generated/components/base--buttons.md +151 -47
- package/docs/generated/components/base--cards.md +107 -14
- package/docs/generated/components/base--carousel.md +1 -2
- package/docs/generated/components/base--chart.md +44 -8
- package/docs/generated/components/base--choice-inputs.md +10 -11
- package/docs/generated/components/base--combobox.md +3 -4
- package/docs/generated/components/base--command.md +6 -6
- package/docs/generated/components/base--context-menu.md +1 -2
- package/docs/generated/components/base--copyable.md +6 -7
- package/docs/generated/components/base--date-pickers.md +6 -7
- package/docs/generated/components/base--dialog.md +6 -7
- package/docs/generated/components/base--direction.md +1 -1
- package/docs/generated/components/base--display.md +234 -54
- package/docs/generated/components/base--dropdown-menu.md +6 -7
- package/docs/generated/components/base--feedback.md +71 -18
- package/docs/generated/components/base--forms-numeric.md +6 -7
- package/docs/generated/components/base--forms.md +84 -14
- package/docs/generated/components/base--hover-card.md +3 -4
- package/docs/generated/components/base--input-group.md +27 -30
- package/docs/generated/components/base--item.md +8 -9
- package/docs/generated/components/base--label.md +2 -3
- package/docs/generated/components/base--menubar.md +2 -4
- package/docs/generated/components/base--navigation-menu.md +2 -3
- package/docs/generated/components/base--navigation.md +2 -3
- package/docs/generated/components/base--otp-input.md +3 -4
- package/docs/generated/components/base--overlay.md +56 -47
- package/docs/generated/components/base--popover-menu.md +7 -8
- package/docs/generated/components/base--popover.md +9 -10
- package/docs/generated/components/base--qr-code.md +7 -8
- package/docs/generated/components/base--repeaters.md +6 -7
- package/docs/generated/components/base--resizable.md +2 -3
- package/docs/generated/components/base--sheet.md +12 -13
- package/docs/generated/components/base--sidebar.md +9 -11
- package/docs/generated/components/base--skeleton.md +6 -7
- package/docs/generated/components/base--slot.md +1 -1
- package/docs/generated/components/base--spinner.md +5 -7
- package/docs/generated/components/base--structure.md +320 -70
- package/docs/generated/components/base--table.md +61 -3
- package/docs/generated/components/base--text-inputs.md +17 -18
- package/docs/generated/components/base--timeline.md +45 -4
- package/docs/generated/components/base--toaster.md +43 -12
- package/docs/generated/components/base--toggle.md +11 -12
- package/docs/generated/components/base--toolbar.md +7 -8
- package/docs/generated/components/base--tooltip.md +5 -6
- package/docs/generated/components/base--typography.md +317 -32
- package/docs/generated/components/base--upload.md +8 -9
- package/docs/generated/components/base--value-inputs.md +9 -38
- package/docs/generated/components/{admin--patterns--access.md → blocks--admin--access.md} +15 -6
- package/docs/generated/components/{admin--patterns--commerce.md → blocks--admin--commerce.md} +40 -41
- package/docs/generated/components/{patterns--analytics.md → blocks--analytics.md} +57 -14
- package/docs/generated/components/{patterns--onboarding.md → blocks--onboarding.md} +6 -7
- package/docs/generated/components/{patterns--timelines.md → blocks--timelines.md} +6 -7
- package/docs/generated/components/features--actions.md +8 -18
- package/docs/generated/components/features--activities.md +31 -32
- package/docs/generated/components/features--ai-chat.md +15 -15
- package/docs/generated/components/features--async-preview.md +5 -6
- package/docs/generated/components/features--combobox.md +71 -5
- package/docs/generated/components/features--comments.md +0 -1
- package/docs/generated/components/features--data-view.md +63 -8
- package/docs/generated/components/features--event-calendar.md +1 -2
- package/docs/generated/components/features--filters.md +11 -2
- package/docs/generated/components/features--global-search.md +1 -2
- package/docs/generated/components/features--kanban.md +1 -2
- package/docs/generated/components/features--map.md +1 -2
- package/docs/generated/components/features--media-library.md +105 -38
- package/docs/generated/components/features--mentions.md +7 -7
- package/docs/generated/components/features--overlays.md +75 -22
- package/docs/generated/components/features--products.md +10 -11
- package/docs/generated/components/features--resource-assignment.md +2 -3
- package/docs/generated/components/features--resource.md +3 -4
- package/docs/generated/components/features--rich-text-editor.md +42 -13
- package/docs/generated/components/features--schema-form.md +1 -2
- package/docs/generated/components/features--sync.md +2 -3
- package/docs/generated/components/features--table.md +162 -12
- package/docs/generated/components/features--theme-tweaker.md +30 -15
- package/docs/generated/components/forms.md +2 -2
- package/docs/generated/components/layout--app-shell.md +41 -11
- package/docs/generated/components/layout--auth.md +8 -9
- package/docs/generated/components/layout--containers.md +40 -1
- package/docs/generated/components/layout--header.md +2 -3
- package/docs/generated/components/layout--navigation.md +0 -1
- package/docs/generated/components/layout--page.md +33 -5
- package/docs/generated/components/layout--settings.md +0 -1
- package/docs/generated/components/layout--sidebar.md +47 -7
- package/docs/generated/components/layout--workspace.md +3 -4
- package/docs/generated/components/primitives.md +128 -17
- package/docs/generated/components/theming.md +147 -4
- package/docs/generated/components/ui-provider.md +96 -78
- package/docs/generated/composition-ladder.md +8 -8
- package/docs/generated/consumer-contract.json +5736 -0
- package/docs/generated/imports.md +104 -104
- package/docs/generated/migration-broad-imports.json +267 -90
- package/docs/generated/migration-broad-imports.md +266 -101
- package/docs/generated/migration-codemod.json +365 -70
- package/docs/generated/migration.md +665 -95
- package/docs/generated/profiles.md +27 -27
- package/docs/generated/public-api.md +104 -102
- package/docs/generated/recipes.json +755 -810
- package/docs/generated/workflows/communications-overview/analytics/communications-reference.tsx +19 -0
- package/docs/generated/workflows/index.json +691 -0
- package/docs/generated/workflows/media-picking/media-library/media-picking-reference.tsx +63 -0
- package/docs/generated/workflows/media-picking/media-library/reference-data.ts +3 -0
- package/docs/generated/workflows/multi-section-form/form-workflow/multi-section-reference.tsx +46 -0
- package/docs/generated/workflows/nested-action-flow/action-overlays/nested-action-reference.tsx +39 -0
- package/docs/generated/workflows/record-detail/page-layout/record-detail-reference.tsx +24 -0
- package/docs/generated/workflows/resource-index/data-view/resource-index-reference.tsx +51 -0
- package/docs/generated/workflows/scoped-resource-selection/combobox/scoped-resource-reference.tsx +50 -0
- package/docs/generated/workflows/website-content-editor/media-library/reference-data.ts +3 -0
- package/docs/generated/workflows/website-content-editor/rich-text-editor/website-content-reference.tsx +33 -0
- package/docs/generated/workflows/workspace-navigation/app-shell/workspace-navigation-reference.tsx +26 -0
- package/docs/learn/api-compatibility.md +5 -4
- package/docs/learn/blocks.md +123 -0
- package/docs/learn/composition.md +100 -19
- package/docs/learn/forms.md +23 -3
- package/docs/learn/framework-wiring.md +41 -13
- package/docs/learn/i18n.md +4 -2
- package/docs/learn/installation.md +60 -31
- package/docs/learn/migration.md +156 -5
- package/docs/learn/provider-and-scoping.md +37 -25
- package/docs/learn/reference-workflows.md +43 -0
- package/docs/learn/structure-and-spacing.md +147 -0
- package/docs/learn/theming.md +174 -131
- package/docs/learn/troubleshooting.md +88 -30
- package/docs/learn/verification.md +60 -5
- package/package.json +42 -473
- package/scripts/consumer/codemod.mjs +50 -32
- package/scripts/consumer/contract-reader.mjs +42 -0
- package/scripts/consumer/css-scan.mjs +51 -0
- package/scripts/consumer/diagnose.mjs +136 -0
- package/scripts/consumer/find-component.mjs +30 -17
- package/scripts/consumer/install-skill.mjs +93 -11
- package/src/styles/TOKENS.md +116 -275
- package/dist/accordion-6YPJ9XRO.js +0 -135
- package/dist/admin/patterns/access.css +0 -15
- package/dist/admin/patterns/commerce.css +0 -29
- package/dist/admin/patterns/commerce.js +0 -2493
- package/dist/avatar-CS7zow2q.js +0 -85
- package/dist/badge-CxOuTfVr.js +0 -63
- package/dist/base/accordion.css +0 -3
- package/dist/base/action-menu.css +0 -6
- package/dist/base/alert-dialog.css +0 -4
- package/dist/base/aspect-ratio.css +0 -2
- package/dist/base/avatar.css +0 -4
- package/dist/base/badge.css +0 -2
- package/dist/base/batch-action-bar.css +0 -5
- package/dist/base/buttons.css +0 -4
- package/dist/base/cards.css +0 -13
- package/dist/base/carousel.css +0 -5
- package/dist/base/chart.css +0 -2
- package/dist/base/choice-inputs.css +0 -10
- package/dist/base/combobox.css +0 -3
- package/dist/base/command.css +0 -9
- package/dist/base/context-menu.css +0 -2
- package/dist/base/copyable.css +0 -6
- package/dist/base/date-pickers.css +0 -11
- package/dist/base/dialog.css +0 -4
- package/dist/base/display.css +0 -8
- package/dist/base/dropdown-menu.css +0 -2
- package/dist/base/feedback.css +0 -5
- package/dist/base/forms-numeric.css +0 -12
- package/dist/base/forms.css +0 -14
- package/dist/base/hover-card.css +0 -2
- package/dist/base/input-group.css +0 -6
- package/dist/base/item.css +0 -9
- package/dist/base/label.css +0 -3
- package/dist/base/menubar.css +0 -2
- package/dist/base/navigation-menu.css +0 -2
- package/dist/base/navigation.css +0 -12
- package/dist/base/otp-input.css +0 -9
- package/dist/base/overlay.css +0 -4
- package/dist/base/popover-menu.css +0 -11
- package/dist/base/popover.css +0 -3
- package/dist/base/qr-code.css +0 -2
- package/dist/base/repeaters.css +0 -18
- package/dist/base/resizable.css +0 -2
- package/dist/base/sheet.css +0 -4
- package/dist/base/sidebar.css +0 -12
- package/dist/base/skeleton.css +0 -9
- package/dist/base/spinner.css +0 -2
- package/dist/base/structure.css +0 -2
- package/dist/base/table.css +0 -3
- package/dist/base/text-inputs.css +0 -2
- package/dist/base/timeline.css +0 -9
- package/dist/base/toaster.css +0 -2
- package/dist/base/toggle.css +0 -2
- package/dist/base/toolbar.css +0 -5
- package/dist/base/tooltip.css +0 -2
- package/dist/base/typography.css +0 -2
- package/dist/base/upload.css +0 -10
- package/dist/base/value-inputs.css +0 -14
- package/dist/buttons-CqXKWty3.js +0 -179
- package/dist/cards-C6Ulbkw7.js +0 -271
- package/dist/chart-nomhJ87z.js +0 -193
- package/dist/choice-inputs-OUDn0kQw.js +0 -680
- package/dist/combobox-C8oP92bT.js +0 -266
- package/dist/command-Bp3B6pUu.js +0 -143
- package/dist/comments-CAnDlyXO.js +0 -1438
- package/dist/components/admin/patterns/index.d.ts +0 -2
- package/dist/components/features/rich-text-editor/exec-command-engine.d.ts +0 -2
- package/dist/components/patterns/index.d.ts +0 -3
- package/dist/css/styles.css +0 -1
- package/dist/date-pickers-DOwIT-Nk.js +0 -661
- package/dist/display-B3Q17h5z.js +0 -645
- package/dist/dropdown-menu-TyNLCLML.js +0 -223
- package/dist/features/actions.css +0 -11
- package/dist/features/activities.css +0 -25
- package/dist/features/ai-chat.css +0 -14
- package/dist/features/async-preview.css +0 -10
- package/dist/features/combobox.css +0 -12
- package/dist/features/comments.css +0 -24
- package/dist/features/data-view.css +0 -31
- package/dist/features/event-calendar.css +0 -17
- package/dist/features/filters.css +0 -24
- package/dist/features/global-search.css +0 -19
- package/dist/features/kanban.css +0 -7
- package/dist/features/map.css +0 -15
- package/dist/features/media-library.css +0 -27
- package/dist/features/mentions.css +0 -17
- package/dist/features/overlays.css +0 -11
- package/dist/features/products.css +0 -29
- package/dist/features/resource-assignment.css +0 -14
- package/dist/features/resource.css +0 -15
- package/dist/features/rich-text-editor.css +0 -8
- package/dist/features/schema-form.css +0 -22
- package/dist/features/sync.css +0 -11
- package/dist/features/table.css +0 -20
- package/dist/features/theme-tweaker.css +0 -27
- package/dist/feedback-DRerHGuV.js +0 -469
- package/dist/forms-CPrGGif_.js +0 -242
- package/dist/forms-numeric-CPVsL7Vf.js +0 -569
- package/dist/index.css +0 -3
- package/dist/input-group-BYe0rhoB.js +0 -126
- package/dist/item-B3yQ26as.js +0 -146
- package/dist/layout/app-shell.css +0 -13
- package/dist/layout/auth.css +0 -14
- package/dist/layout/containers.css +0 -2
- package/dist/layout/header.css +0 -20
- package/dist/layout/navigation.css +0 -11
- package/dist/layout/page.css +0 -15
- package/dist/layout/settings.css +0 -16
- package/dist/layout/sidebar.css +0 -16
- package/dist/layout/workspace.css +0 -15
- package/dist/navigation-CsqTA16F.js +0 -614
- package/dist/navigation-DzxzPuwg.js +0 -202
- package/dist/overlay-WQOsLd69.js +0 -345
- package/dist/patterns/analytics.css +0 -15
- package/dist/patterns/onboarding.css +0 -11
- package/dist/patterns/timelines.css +0 -11
- package/dist/popover-DriLnIFc.js +0 -123
- package/dist/popover-menu-C2UCMAe7.js +0 -189
- package/dist/primitives.css +0 -3
- package/dist/repeaters-DuP1N0nw.js +0 -438
- package/dist/rich-text-editor-BQXFe9oN.js +0 -595
- package/dist/sidebar-D0N6ckJL.js +0 -412
- package/dist/skeleton-DGR9df28.js +0 -172
- package/dist/spinner-CUAVFecI.js +0 -52
- package/dist/styles/FACTORS.md +0 -36
- package/dist/styles/SCOPES.md +0 -86
- package/dist/styles/themes/default.css +0 -164
- package/dist/styles/theming/animation.css +0 -143
- package/dist/styles/theming/colors.css +0 -97
- package/dist/styles/theming/feedback.css +0 -17
- package/dist/styles/theming/field.css +0 -21
- package/dist/styles/theming/focus.css +0 -88
- package/dist/styles/theming/layers.css +0 -13
- package/dist/styles/theming/layout.css +0 -21
- package/dist/styles/theming/motion.css +0 -42
- package/dist/styles/theming/overlay.css +0 -52
- package/dist/styles/theming/sizing.css +0 -118
- package/dist/styles/theming/text.css +0 -30
- package/dist/styles/theming/typography.css +0 -26
- package/dist/styles/tokens/components.css +0 -22
- package/dist/styles/tokens/foundation.css +0 -80
- package/dist/styles/tokens/layout.css +0 -19
- package/dist/styles/tokens/palette.css +0 -88
- package/dist/styles/tokens/primitives.css +0 -18
- package/dist/styles/tokens/states.css +0 -77
- package/dist/table-BC4qqsUb.js +0 -180
- package/dist/table-BHDpjajL.js +0 -982
- package/dist/text-inputs-DF_lD7pA.js +0 -385
- package/dist/theming-D6KRU7hO.js +0 -104
- package/dist/toolbar-DWRywF0R.js +0 -68
- package/dist/tooltip-t1VQQ2tZ.js +0 -73
- package/dist/upload-B38YZeFJ.js +0 -938
- package/dist/value-inputs-Q4ymjXlV.js +0 -716
- package/src/styles/FACTORS.md +0 -36
- package/src/styles/SCOPES.md +0 -86
- /package/dist/components/{admin/patterns → blocks/admin}/access/admin.strings.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/access/credential-list.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/access/index.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/access/role-permissions.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/access/sensitive-action.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/account.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/address-lines.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/booking.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/cart.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.strings.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.types.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/format-amount.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/index.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/inventory-section.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/invoice.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/loyalty.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-customer.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-detail.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-line-item.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-transactions.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/order.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-listing.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-score.d.ts +0 -0
- /package/dist/components/{admin/patterns → blocks/admin}/commerce/summary-panel.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/activity-heatmap.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/analytics.types.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/chart-card.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/format-metric-value.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/index.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-bar.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-comparison.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-gradient.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-grid.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-micro-grid.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-skeleton.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric-trend-chip.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/metric.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/analytics/time-ruler.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/onboarding/checklist.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/onboarding/index.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/onboarding/onboarding.strings.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/timelines/changelog-timeline.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/timelines/index.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/timelines/milestones-timeline.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/timelines/steps.d.ts +0 -0
- /package/dist/components/{patterns → blocks}/timelines/timelines.strings.d.ts +0 -0
- /package/dist/styles/{theming/breakpoints.css → breakpoints.css} +0 -0
|
@@ -43,7 +43,7 @@ Per-component prop defaults. Empty here; each family augments it from its own di
|
|
|
43
43
|
```ts fragment — declaration JSDoc excerpt
|
|
44
44
|
declare module "@/lib/ui-provider" {
|
|
45
45
|
interface ComponentDefaults {
|
|
46
|
-
button: { tone: ButtonTone;
|
|
46
|
+
button: { tone: ButtonTone; appearance: ButtonAppearance }
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
```
|
|
@@ -63,7 +63,9 @@ Kind: type.
|
|
|
63
63
|
Kind: callable.
|
|
64
64
|
|
|
65
65
|
Attributes the stylesheet keys off. Density is an attribute, not a variable, so the
|
|
66
|
-
preset values stay in styles/
|
|
66
|
+
preset values stay in styles/theme/density.css and a bare `data-density` works too.
|
|
67
|
+
`default` writes nothing, so the theme's own lengths, a consumer's `:root` overrides
|
|
68
|
+
included, apply; a scope resetting a denser region writes it itself (UIScope).
|
|
67
69
|
|
|
68
70
|
```text
|
|
69
71
|
(config: UIConfig) => Record<string, string | undefined>
|
|
@@ -79,8 +81,14 @@ style object for the scope's own element so nesting merges through the cascade.
|
|
|
79
81
|
The rule: a value that can be a token is CSS; a decision a component makes in JavaScript
|
|
80
82
|
stays in context. Nothing appears in both.
|
|
81
83
|
|
|
84
|
+
`scale` is computed here rather than in CSS: it writes the spacing, control and icon
|
|
85
|
+
lengths themselves, from the density in effect (`resolved`, when a scope inherits one), and
|
|
86
|
+
the type factor. CSS never multiplies a factor except Text's own `--text-scale`. A scope
|
|
87
|
+
that changes density under a scaled ancestor writes its lengths at the inherited scale,
|
|
88
|
+
since the ancestor's lengths reach it inline and would outrank the preset.
|
|
89
|
+
|
|
82
90
|
```text
|
|
83
|
-
(config: UIConfig) => Record<string, string>
|
|
91
|
+
(config: UIConfig, resolved?: ResolvedUIConfig) => Record<string, string>
|
|
84
92
|
```
|
|
85
93
|
|
|
86
94
|
### `CSPProvider`
|
|
@@ -135,7 +143,7 @@ ResolvedUIConfig
|
|
|
135
143
|
|
|
136
144
|
Kind: type.
|
|
137
145
|
|
|
138
|
-
Spacing and control-
|
|
146
|
+
Spacing and control-height preset, set through `data-density` (styles/theme/density.css).
|
|
139
147
|
|
|
140
148
|
```text
|
|
141
149
|
"compact" | "default" | "comfortable"
|
|
@@ -232,7 +240,7 @@ Kind: interface.
|
|
|
232
240
|
|
|
233
241
|
| member | required | type | description / documented default |
|
|
234
242
|
| --- | :-: | --- | --- |
|
|
235
|
-
| `durations` | no | `Partial<Record<"
|
|
243
|
+
| `durations` | no | `Partial<Record<"fast" \| "normal", string>>` | The two durations: `fast` writes `--duration-fast`, `normal` writes `--duration`. |
|
|
236
244
|
| `reduced` | no | `boolean` | `true` forces motion off; unset respects `prefers-reduced-motion`. |
|
|
237
245
|
|
|
238
246
|
### `OverlayConfig`
|
|
@@ -244,16 +252,6 @@ Kind: interface.
|
|
|
244
252
|
| `backdropBlur` | no | `number \| string` | Blur behind a modal's scrim, in px (a number) or any CSS length. Off by default: a<br>backdrop filter repaints everything behind the surface each frame. |
|
|
245
253
|
| `darkMenus` | no | `boolean` | Dropdown and context menus render in the dark scheme whatever the page is. Default<br>`true`; `false` lets them follow the scheme they are portalled into, like other popups.<br>A config value, not a CSS switch: Firefox lacks CSS `if()`. @default true |
|
|
246
254
|
|
|
247
|
-
### `PaletteToken`
|
|
248
|
-
|
|
249
|
-
Kind: type.
|
|
250
|
-
|
|
251
|
-
Primitive ramp steps. Overriding one moves every semantic that resolves through it.
|
|
252
|
-
|
|
253
|
-
```text
|
|
254
|
-
"brand-300" | "brand-350" | "brand-600" | "brand-950" | "danger-400" | "danger-600" | "danger-950" | "info-400" | "info-600" | "info-950" | "link-400" | "link-600" | "neutral-0" | "neutral-100" | "neutral-150" | "neutral-200" | "neutral-25" | "neutral-400" | "neutral-50" | "neutral-500" | "neutral-550" | "neutral-700" | "neutral-75" | "neutral-750" | "neutral-800" | "neutral-850" | "neutral-875" | "neutral-900" | "neutral-950" | "pure-black" | "series-1" | "series-1-dark" | "series-2" | "series-2-dark" | "series-3" | "series-3-dark" | "series-4" | "series-4-dark" | "series-5" | "series-5-dark" | "success-400" | "success-600" | "success-950" | "violet-500" | "warning-300" | "warning-500" | "warning-700" | "warning-900" | "warning-950" | "white-a10" | "white-a15"
|
|
255
|
-
```
|
|
256
|
-
|
|
257
255
|
### `ResolvedUIConfig`
|
|
258
256
|
|
|
259
257
|
Kind: interface.
|
|
@@ -277,15 +275,12 @@ Extends: `UIConfig`.
|
|
|
277
275
|
|
|
278
276
|
Kind: callable.
|
|
279
277
|
|
|
280
|
-
`<Scope>` — a
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
`
|
|
284
|
-
`data-ui-scope`, which puts the element on that list. Use it when the change is purely
|
|
285
|
-
tokens, and `<UIProvider>` when JavaScript config changes too. `render` picks the element,
|
|
286
|
-
e.g. `render={<section />}`.
|
|
278
|
+
`<Scope>` — a region with its own theme variables, without the config machinery. Every
|
|
279
|
+
component inside reads the variables it sets, and the element leaves layout alone. Use it
|
|
280
|
+
when the change is purely variables, and `<UIProvider>` when JavaScript config changes
|
|
281
|
+
too. `render` picks the element, e.g. `render={<section />}`.
|
|
287
282
|
|
|
288
|
-
<Scope vars={{ "--
|
|
283
|
+
<Scope vars={{ "--control-height": "2.5rem" }}>
|
|
289
284
|
<Toolbar />
|
|
290
285
|
</Scope>
|
|
291
286
|
|
|
@@ -308,10 +303,10 @@ Extends: `useRender.ComponentProps<"div">`.
|
|
|
308
303
|
|
|
309
304
|
Kind: type.
|
|
310
305
|
|
|
311
|
-
|
|
306
|
+
Colour variables a consumer may retheme, named without the leading `--`.
|
|
312
307
|
|
|
313
308
|
```text
|
|
314
|
-
"accent" | "accent-foreground" | "background" | "border" | "card" | "card-foreground" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "destructive" | "destructive-
|
|
309
|
+
"accent" | "accent-foreground" | "background" | "border" | "card" | "card-foreground" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "destructive" | "destructive-foreground" | "foreground" | "info" | "info-foreground" | "input" | "link" | "muted" | "muted-foreground" | "overlay-backdrop" | "popover" | "popover-foreground" | "primary" | "primary-foreground" | "ring" | "secondary" | "secondary-foreground" | "sidebar" | "sidebar-accent" | "sidebar-accent-foreground" | "sidebar-border" | "sidebar-foreground" | "sidebar-ring" | "success" | "success-foreground" | "warning" | "warning-foreground"
|
|
315
310
|
```
|
|
316
311
|
|
|
317
312
|
### `TextSize`
|
|
@@ -319,10 +314,9 @@ Semantic tokens a consumer may retheme. Values carry meaning, not raw colour.
|
|
|
319
314
|
Kind: type.
|
|
320
315
|
|
|
321
316
|
Step on the type scale. `inherit` lets the surrounding size flow through.
|
|
322
|
-
`xxs` is deprecated: it renders as `xs`, so write `xs`.
|
|
323
317
|
|
|
324
318
|
```text
|
|
325
|
-
"inherit" | "
|
|
319
|
+
"inherit" | "xs" | "pxs" | "sm" | "base" | "lg" | "xl"
|
|
326
320
|
```
|
|
327
321
|
|
|
328
322
|
### `ThemeConfig`
|
|
@@ -335,8 +329,7 @@ Theme overrides. Token names are generated from the stylesheet, so a typo is a t
|
|
|
335
329
|
| --- | :-: | --- | --- |
|
|
336
330
|
| `radius` | no | `string` | The container radius — cards, dialogs, popovers, menus. Writes `--radius`. |
|
|
337
331
|
| `radiusSm` | no | `string` | The inner radius — controls, rows, chips, badges, tooltips. Writes `--radius-sm`.<br>Not derived from `radius`: set both. |
|
|
338
|
-
| `colors` | no | `Partial<Record<SemanticToken, string>>` |
|
|
339
|
-
| `palette` | no | `Partial<Record<PaletteToken, string>>` | Primitive ramp overrides: moves every semantic resolving through the step. |
|
|
332
|
+
| `colors` | no | `Partial<Record<SemanticToken, string>>` | Colour overrides, one value for both modes or a `light-dark(light, dark)` pair. Keys<br>omit `--`. |
|
|
340
333
|
| `vars` | no | `Record<string, string>` | Escape hatch for custom properties the kit does not define. Keys omit `--`. |
|
|
341
334
|
|
|
342
335
|
### `TypographyConfig`
|
|
@@ -362,9 +355,9 @@ changes; everything else inherits from the scope around it.
|
|
|
362
355
|
| member | required | type | description / documented default |
|
|
363
356
|
| --- | :-: | --- | --- |
|
|
364
357
|
| `colorScheme` | no | `ColorScheme` | Colour scheme. `system` follows `prefers-color-scheme`. @default "system" |
|
|
365
|
-
| `theme` | no | `ThemeConfig` | Radius, colour
|
|
366
|
-
| `density` | no | `Density` | Named spacing and control-
|
|
367
|
-
| `scale` | no | `number` | Master factor
|
|
358
|
+
| `theme` | no | `ThemeConfig` | Radius, colour and custom-property overrides. |
|
|
359
|
+
| `density` | no | `Density` | Named spacing and control-height preset. `compact` sets 12px insets and gaps and 32px<br>controls, `default` 16px and 34px, `comfortable` 20px and 36px. Type keeps its size. @default "default" |
|
|
360
|
+
| `scale` | no | `number` | Master factor. The provider writes the spacing, control and icon lengths at this scale,<br>rounded to whole pixels, and type follows it unless `typography.scale` is set. @default 1 |
|
|
368
361
|
| `typography` | no | `TypographyConfig` | The type factor, the default text size, font stacks and per-step sizes. |
|
|
369
362
|
| `motion` | no | `MotionConfig` | Duration overrides, and motion forced off. |
|
|
370
363
|
| `overlay` | no | `OverlayConfig` | The modal scrim's blur, and whether menus render dark. |
|
|
@@ -508,7 +501,7 @@ Kind: callable.
|
|
|
508
501
|
`<UIScope>` — a region with its own tokens. Nests freely; writes the custom properties
|
|
509
502
|
its merged config names and never touches the document: a region governs its subtree,
|
|
510
503
|
and reaching past it is the root's job, and only when asked. `render` picks the element
|
|
511
|
-
|
|
504
|
+
through Base UI's element-substitution contract, e.g. `<UIScope render={<aside />}>`,
|
|
512
505
|
for places a `div` is invalid.
|
|
513
506
|
|
|
514
507
|
```text
|
|
@@ -648,29 +641,29 @@ Preview route: Form field — `/form-field`
|
|
|
648
641
|
import { Stack } from "themelia-ui/base/structure"
|
|
649
642
|
import { Input, NativeSelect } from "themelia-ui/base/text-inputs"
|
|
650
643
|
import { MonoValue } from "themelia-ui/primitives"
|
|
651
|
-
import {
|
|
644
|
+
import { UIScope } from "themelia-ui/ui-provider"
|
|
652
645
|
|
|
653
646
|
export default function FormsScale() {
|
|
654
647
|
return (
|
|
655
|
-
<Stack
|
|
656
|
-
{[
|
|
657
|
-
<
|
|
658
|
-
<Stack direction="horizontal" gap="
|
|
648
|
+
<Stack style={{ width: "100%" }}>
|
|
649
|
+
{(["compact", "default", "comfortable"] as const).map((density) => (
|
|
650
|
+
<UIScope key={density} config={{ density }}>
|
|
651
|
+
<Stack direction="horizontal" gap="sm" align="center" justify="start">
|
|
659
652
|
{/* Widths on the wrappers: Input's style lands on the inner control, not its frame. */}
|
|
660
|
-
<MonoValue size="xs" style={{ width: "
|
|
661
|
-
{
|
|
653
|
+
<MonoValue size="xs" style={{ width: "6rem", flexShrink: 0 }}>
|
|
654
|
+
{density}
|
|
662
655
|
</MonoValue>
|
|
663
656
|
{/* Named even in a geometry demo: a placeholder is not a label. */}
|
|
664
657
|
<div style={{ width: "12rem", flexShrink: 0 }}>
|
|
665
|
-
<Input placeholder="Field" aria-label={`Example field at
|
|
658
|
+
<Input placeholder="Field" aria-label={`Example field at ${density} density`} />
|
|
666
659
|
</div>
|
|
667
660
|
<div style={{ width: "9rem", flexShrink: 0 }}>
|
|
668
|
-
<NativeSelect defaultValue="a" aria-label={`Example select at
|
|
661
|
+
<NativeSelect defaultValue="a" aria-label={`Example select at ${density} density`}>
|
|
669
662
|
<option value="a">Option</option>
|
|
670
663
|
</NativeSelect>
|
|
671
664
|
</div>
|
|
672
665
|
</Stack>
|
|
673
|
-
</
|
|
666
|
+
</UIScope>
|
|
674
667
|
))}
|
|
675
668
|
</Stack>
|
|
676
669
|
)
|
|
@@ -681,6 +674,7 @@ export default function FormsScale() {
|
|
|
681
674
|
|
|
682
675
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
683
676
|
import { Stack } from "themelia-ui/base/structure"
|
|
677
|
+
import { Text } from "themelia-ui/base/typography"
|
|
684
678
|
import { UIProvider } from "themelia-ui/ui-provider"
|
|
685
679
|
|
|
686
680
|
import { ControlRow } from "./_shared"
|
|
@@ -692,8 +686,8 @@ export default function TheFactor() {
|
|
|
692
686
|
<>
|
|
693
687
|
{FACTORS.map((scale) => (
|
|
694
688
|
<UIProvider key={scale} config={{ scale }}>
|
|
695
|
-
<Stack direction="horizontal"
|
|
696
|
-
<
|
|
689
|
+
<Stack direction="horizontal" align="center">
|
|
690
|
+
<Text tag="span" size="xs" mono style={{ width: "4rem", flex: "none" }}>{scale}</Text>
|
|
697
691
|
<ControlRow />
|
|
698
692
|
</Stack>
|
|
699
693
|
</UIProvider>
|
|
@@ -703,7 +697,7 @@ export default function TheFactor() {
|
|
|
703
697
|
}
|
|
704
698
|
```
|
|
705
699
|
|
|
706
|
-
### Type
|
|
700
|
+
### Type has its own factor
|
|
707
701
|
|
|
708
702
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
709
703
|
import { Button } from "themelia-ui/base/buttons"
|
|
@@ -714,11 +708,11 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
714
708
|
|
|
715
709
|
export default function TypeFactor() {
|
|
716
710
|
return (
|
|
717
|
-
<Stack
|
|
711
|
+
<Stack>
|
|
718
712
|
<Stack gap="sm">
|
|
719
713
|
<Text type="secondary" size="xs">typography.scale 0.875 — type shrinks, control geometry holds</Text>
|
|
720
714
|
<UIProvider config={{ typography: { scale: 0.875 } }}>
|
|
721
|
-
<Stack direction="horizontal" gap="
|
|
715
|
+
<Stack direction="horizontal" gap="sm" align="center" wrap>
|
|
722
716
|
<Text>Body copy at this factor.</Text>
|
|
723
717
|
<Button>Save</Button>
|
|
724
718
|
<Checkbox label="Check" defaultChecked />
|
|
@@ -728,7 +722,7 @@ export default function TypeFactor() {
|
|
|
728
722
|
<Stack gap="sm">
|
|
729
723
|
<Text type="secondary" size="xs">scale 0.875 + typography.scale 1 — geometry shrinks, type holds</Text>
|
|
730
724
|
<UIProvider config={{ scale: 0.875, typography: { scale: 1 } }}>
|
|
731
|
-
<Stack direction="horizontal" gap="
|
|
725
|
+
<Stack direction="horizontal" gap="sm" align="center" wrap>
|
|
732
726
|
<Text>Body copy at this factor.</Text>
|
|
733
727
|
<Button>Save</Button>
|
|
734
728
|
<Checkbox label="Check" defaultChecked />
|
|
@@ -740,37 +734,37 @@ export default function TypeFactor() {
|
|
|
740
734
|
}
|
|
741
735
|
```
|
|
742
736
|
|
|
743
|
-
###
|
|
737
|
+
### A factor, or one variable
|
|
744
738
|
|
|
745
739
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
746
740
|
import { Stack } from "themelia-ui/base/structure"
|
|
747
741
|
import { Text } from "themelia-ui/base/typography"
|
|
748
|
-
import { Scope } from "themelia-ui/ui-provider"
|
|
742
|
+
import { Scope, UIProvider } from "themelia-ui/ui-provider"
|
|
749
743
|
|
|
750
744
|
import { ControlRow } from "./_shared"
|
|
751
745
|
|
|
752
746
|
export default function FactorChain() {
|
|
753
747
|
return (
|
|
754
|
-
<Stack
|
|
748
|
+
<Stack>
|
|
755
749
|
<Stack gap="sm">
|
|
756
750
|
<Text type="secondary" size="xs">default</Text>
|
|
757
751
|
<ControlRow />
|
|
758
752
|
</Stack>
|
|
759
753
|
<Stack gap="sm">
|
|
760
|
-
<Text type="secondary" size="xs"
|
|
761
|
-
<
|
|
754
|
+
<Text type="secondary" size="xs">scale: 0.875 — every length and type step</Text>
|
|
755
|
+
<UIProvider config={{ scale: 0.875 }}>
|
|
762
756
|
<ControlRow />
|
|
763
|
-
</
|
|
757
|
+
</UIProvider>
|
|
764
758
|
</Stack>
|
|
765
759
|
<Stack gap="sm">
|
|
766
|
-
<Text type="secondary" size="xs">--
|
|
767
|
-
<Scope vars={{ "--
|
|
760
|
+
<Text type="secondary" size="xs">--control-height: 2.5rem — every control, nothing else</Text>
|
|
761
|
+
<Scope vars={{ "--control-height": "2.5rem" }}>
|
|
768
762
|
<ControlRow />
|
|
769
763
|
</Scope>
|
|
770
764
|
</Stack>
|
|
771
765
|
<Stack gap="sm">
|
|
772
|
-
<Text type="secondary" size="xs">--
|
|
773
|
-
<Scope vars={{ "--
|
|
766
|
+
<Text type="secondary" size="xs">--radius-sm: 0 — every item corner</Text>
|
|
767
|
+
<Scope vars={{ "--radius-sm": "0" }}>
|
|
774
768
|
<ControlRow />
|
|
775
769
|
</Scope>
|
|
776
770
|
</Stack>
|
|
@@ -791,13 +785,13 @@ import { ControlRow } from "./_shared"
|
|
|
791
785
|
export default function Nesting() {
|
|
792
786
|
return (
|
|
793
787
|
<UIProvider config={{ scale: 1.125 }}>
|
|
794
|
-
<Stack
|
|
788
|
+
<Stack>
|
|
795
789
|
<Text type="secondary" size="sm">
|
|
796
790
|
Outer scope — 1.125
|
|
797
791
|
</Text>
|
|
798
792
|
<ControlRow />
|
|
799
793
|
<UIProvider config={{ scale: 0.8 }}>
|
|
800
|
-
<Stack gap="
|
|
794
|
+
<Stack gap="sm">
|
|
801
795
|
<Text type="secondary" size="sm">
|
|
802
796
|
Nested scope — 0.8
|
|
803
797
|
</Text>
|
|
@@ -814,6 +808,7 @@ export default function Nesting() {
|
|
|
814
808
|
|
|
815
809
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
816
810
|
import { Stack } from "themelia-ui/base/structure"
|
|
811
|
+
import { Text } from "themelia-ui/base/typography"
|
|
817
812
|
import { UIProvider } from "themelia-ui/ui-provider"
|
|
818
813
|
|
|
819
814
|
import { ControlRow } from "./_shared"
|
|
@@ -823,8 +818,8 @@ export default function Density() {
|
|
|
823
818
|
<>
|
|
824
819
|
{(["compact", "default", "comfortable"] as const).map((density) => (
|
|
825
820
|
<UIProvider key={density} config={{ density }}>
|
|
826
|
-
<Stack direction="horizontal"
|
|
827
|
-
<
|
|
821
|
+
<Stack direction="horizontal" align="center">
|
|
822
|
+
<Text tag="span" size="xs" mono style={{ width: "7rem", flex: "none" }}>{density}</Text>
|
|
828
823
|
<ControlRow />
|
|
829
824
|
</Stack>
|
|
830
825
|
</UIProvider>
|
|
@@ -839,7 +834,7 @@ export default function Density() {
|
|
|
839
834
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
840
835
|
import { Stack } from "themelia-ui/base/structure"
|
|
841
836
|
import { Text } from "themelia-ui/base/typography"
|
|
842
|
-
import {
|
|
837
|
+
import { UIScope } from "themelia-ui/ui-provider"
|
|
843
838
|
|
|
844
839
|
import { InvoiceTable } from "./_shared"
|
|
845
840
|
|
|
@@ -849,22 +844,45 @@ export default function TableScale() {
|
|
|
849
844
|
* Both, captioned. On its own the scoped table just looked like a table —
|
|
850
845
|
* the section asserted a difference the page gave the reader no way to see.
|
|
851
846
|
*/
|
|
852
|
-
<Stack
|
|
853
|
-
<Stack gap="
|
|
854
|
-
<Text size="xs" type="secondary"
|
|
847
|
+
<Stack style={{ width: "100%" }}>
|
|
848
|
+
<Stack gap="sm" style={{ width: "100%" }}>
|
|
849
|
+
<Text size="xs" type="secondary">density: default</Text>
|
|
855
850
|
<InvoiceTable />
|
|
856
851
|
</Stack>
|
|
857
|
-
<Stack gap="
|
|
858
|
-
<Text size="xs" type="secondary"
|
|
859
|
-
<
|
|
852
|
+
<Stack gap="sm" style={{ width: "100%" }}>
|
|
853
|
+
<Text size="xs" type="secondary">density: compact</Text>
|
|
854
|
+
<UIScope config={{ density: "compact" }} style={{ width: "100%" }}>
|
|
860
855
|
<InvoiceTable />
|
|
861
|
-
</
|
|
856
|
+
</UIScope>
|
|
862
857
|
</Stack>
|
|
863
858
|
</Stack>
|
|
864
859
|
)
|
|
865
860
|
}
|
|
866
861
|
```
|
|
867
862
|
|
|
863
|
+
### Colour islands
|
|
864
|
+
|
|
865
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
866
|
+
import { Button } from "themelia-ui/base/buttons"
|
|
867
|
+
import { Card } from "themelia-ui/base/cards"
|
|
868
|
+
import { Grid } from "themelia-ui/base/structure"
|
|
869
|
+
import { UIProvider } from "themelia-ui/ui-provider"
|
|
870
|
+
|
|
871
|
+
export default function ColourIsland() {
|
|
872
|
+
return (
|
|
873
|
+
<Grid columns={{ base: 1, sm: 2 }}>
|
|
874
|
+
{(["light", "dark"] as const).map((colorScheme) => (
|
|
875
|
+
<UIProvider key={colorScheme} config={{ colorScheme }}>
|
|
876
|
+
<Card title={`A ${colorScheme} region`} description="Every colour inside resolves to this half.">
|
|
877
|
+
<Button>Continue</Button>
|
|
878
|
+
</Card>
|
|
879
|
+
</UIProvider>
|
|
880
|
+
))}
|
|
881
|
+
</Grid>
|
|
882
|
+
)
|
|
883
|
+
}
|
|
884
|
+
```
|
|
885
|
+
|
|
868
886
|
### Scoped theming
|
|
869
887
|
|
|
870
888
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
@@ -902,7 +920,7 @@ import { Sample } from "./_shared"
|
|
|
902
920
|
|
|
903
921
|
export default function UiScopeDensity() {
|
|
904
922
|
return (
|
|
905
|
-
<Grid columns={3}
|
|
923
|
+
<Grid columns={3}>
|
|
906
924
|
{(["compact", "default", "comfortable"] as const).map((density) => (
|
|
907
925
|
<GridCell key={density}>
|
|
908
926
|
<UIScope config={{ density }}>
|
|
@@ -926,8 +944,8 @@ import { Sample } from "./_shared"
|
|
|
926
944
|
|
|
927
945
|
export default function UiScopeNesting() {
|
|
928
946
|
return (
|
|
929
|
-
<UIScope config={{ colorScheme: "dark" }} transparent={false} style={{ padding: "var(--
|
|
930
|
-
<Stack
|
|
947
|
+
<UIScope config={{ colorScheme: "dark" }} transparent={false} style={{ padding: "var(--padding)", borderRadius: "var(--radius)", background: "var(--background)" }}>
|
|
948
|
+
<Stack>
|
|
931
949
|
<Text size="xs" type="secondary">
|
|
932
950
|
outer: colorScheme="dark"
|
|
933
951
|
</Text>
|
|
@@ -952,7 +970,7 @@ export default function UiScopeRender() {
|
|
|
952
970
|
render={<aside />}
|
|
953
971
|
transparent={false}
|
|
954
972
|
config={{ density: "compact" }}
|
|
955
|
-
style={{ padding: "var(--
|
|
973
|
+
style={{ padding: "var(--padding)", border: "var(--border-width) solid var(--border)", borderRadius: "var(--radius)" }}
|
|
956
974
|
>
|
|
957
975
|
<Text size="xs" type="secondary">
|
|
958
976
|
This scope is a real <aside>, at compact density.
|
|
@@ -977,7 +995,7 @@ import { UIPortalHost, UIScope } from "themelia-ui/ui-provider"
|
|
|
977
995
|
function ActionsMenu() {
|
|
978
996
|
return (
|
|
979
997
|
<DropdownMenu>
|
|
980
|
-
<DropdownMenuTrigger render={<Button
|
|
998
|
+
<DropdownMenuTrigger render={<Button appearance="outline">Actions</Button>} />
|
|
981
999
|
<DropdownMenuContent>
|
|
982
1000
|
<DropdownMenuItem>Duplicate</DropdownMenuItem>
|
|
983
1001
|
<DropdownMenuItem>Move to…</DropdownMenuItem>
|
|
@@ -989,8 +1007,8 @@ function ActionsMenu() {
|
|
|
989
1007
|
|
|
990
1008
|
export default function UiPortalHostExample() {
|
|
991
1009
|
return (
|
|
992
|
-
<Stack direction="horizontal">
|
|
993
|
-
<Grid columns={2}
|
|
1010
|
+
<Stack gap="sm" direction="horizontal">
|
|
1011
|
+
<Grid columns={2}>
|
|
994
1012
|
<GridCell>
|
|
995
1013
|
<Stack gap="sm">
|
|
996
1014
|
<Text size="xs" type="secondary">
|
|
@@ -10,9 +10,9 @@ The rungs are ordinary props; controlled state and callbacks when state exists;
|
|
|
10
10
|
named slots; render props; exported parts; headless hooks; and complete recipes. Passive
|
|
11
11
|
modules may stop at the first rung. Interaction features normally expose several.
|
|
12
12
|
|
|
13
|
-
This table
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
This table summarizes detected declarations and recipes. It is a discovery aid, not a
|
|
14
|
+
prop contract: open the selected module API for exact signatures and supported seams.
|
|
15
|
+
It focuses on feature modules; the columns start at accessors.
|
|
16
16
|
|
|
17
17
|
| module | accessors | slots | render props | headless hook | partials | recipe |
|
|
18
18
|
| --- | :-: | :-: | :-: | :-: | :-: | :-: |
|
|
@@ -41,7 +41,7 @@ higher rungs are meaningful; the columns start at accessors.
|
|
|
41
41
|
| `features/table` | ● | ● | · | ● | ● | ● |
|
|
42
42
|
| `features/theme-tweaker` | · | ● | · | ● | ● | ● |
|
|
43
43
|
|
|
44
|
-
##
|
|
44
|
+
## Four feature examples
|
|
45
45
|
|
|
46
46
|
Global Search, Filters, Comments and Data View are the demonstration cases, because a
|
|
47
47
|
ladder that only works on a Badge proves nothing. Each is usable at three heights:
|
|
@@ -50,7 +50,7 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
|
|
|
50
50
|
|
|
51
51
|
**Ready-made** — `GlobalSearch`, dropped in with props and callbacks.
|
|
52
52
|
|
|
53
|
-
**Region-customized** —
|
|
53
|
+
**Region-customized** — 7 other public exports to inspect for region customization: `GlobalSearchDialog`, `GlobalSearchEmptyState`, `GlobalSearchFooter`, `GlobalSearchIdleState`, `GlobalSearchInput`, and 2 more.
|
|
54
54
|
|
|
55
55
|
**Headless** — `useGlobalSearch`, for presentation the parts cannot express.
|
|
56
56
|
|
|
@@ -58,7 +58,7 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
|
|
|
58
58
|
|
|
59
59
|
**Ready-made** — `FilterLayout`, dropped in with props and callbacks.
|
|
60
60
|
|
|
61
|
-
**Region-customized** —
|
|
61
|
+
**Region-customized** — 17 other public exports to inspect for region customization: `AsyncFilterEditor`, `DateFilterEditor`, `FilterEditor`, `FilterErrorBoundary`, `FilterOperator`, and 12 more.
|
|
62
62
|
|
|
63
63
|
**Headless** — `useAsyncOptions`, `useFilterCache`, `useFilterGroups`, `useFilters`, for presentation the parts cannot express.
|
|
64
64
|
|
|
@@ -66,7 +66,7 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
|
|
|
66
66
|
|
|
67
67
|
**Ready-made** — `Comments`, dropped in with props and callbacks.
|
|
68
68
|
|
|
69
|
-
**Region-customized** —
|
|
69
|
+
**Region-customized** — 5 other public exports to inspect for region customization: `CommentAttachmentChip`, `CommentComposer`, `CommentContent`, `CommentItem`, `CommentTimeline`.
|
|
70
70
|
|
|
71
71
|
**Headless** — `useAttachmentUpload`, `useComments`, for presentation the parts cannot express.
|
|
72
72
|
|
|
@@ -74,6 +74,6 @@ ladder that only works on a Badge proves nothing. Each is usable at three height
|
|
|
74
74
|
|
|
75
75
|
**Ready-made** — `DataView`, dropped in with props and callbacks.
|
|
76
76
|
|
|
77
|
-
**Region-customized** —
|
|
77
|
+
**Region-customized** — 5 other public exports to inspect for region customization: `DataViewPagination`, `DataViewShell`, `DataViewTableFrame`, `DataViewToolbar`, `SavedViewTabs`.
|
|
78
78
|
|
|
79
79
|
**Headless** — `useDataView`, for presentation the parts cannot express.
|