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
package/dist/styles/fields.css
CHANGED
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* The shared field surface: height,
|
|
3
|
-
* every text control. A control opts in with `data-field-control` and styles only what is
|
|
2
|
+
* The shared field surface: height, frame, radius, type, focus, invalid and disabled states
|
|
3
|
+
* for every text control. A control opts in with `data-field-control` and styles only what is
|
|
4
4
|
* its own (a textarea's resize, a select's chevron). Layered as `components` so consumer
|
|
5
5
|
* unlayered CSS wins, as with a module.
|
|
6
|
+
*
|
|
7
|
+
* Focus is the shared outline (styles/focus.css), drawn over the frame rather than outside
|
|
8
|
+
* it, so a field in a row keeps its footprint.
|
|
6
9
|
*/
|
|
7
10
|
@layer components {
|
|
8
11
|
[data-field-control] {
|
|
9
12
|
width: 100%;
|
|
10
13
|
min-width: 0;
|
|
11
|
-
height: var(--control-
|
|
12
|
-
padding-inline: var(--
|
|
13
|
-
padding-block: var(--
|
|
14
|
-
border: var(--border-width) solid var(--
|
|
14
|
+
height: var(--control-height);
|
|
15
|
+
padding-inline: var(--padding-sm);
|
|
16
|
+
padding-block: calc(var(--padding-sm) / 2);
|
|
17
|
+
border: var(--border-width) solid var(--input);
|
|
15
18
|
border-radius: var(--radius-sm);
|
|
16
|
-
background-color:
|
|
19
|
+
background-color: transparent;
|
|
17
20
|
color: var(--foreground);
|
|
21
|
+
/* The field's type: Text's `sm` step, set here once for every control. */
|
|
18
22
|
font: inherit;
|
|
19
|
-
font-size: var(--text-sm);
|
|
20
|
-
line-height:
|
|
23
|
+
font-size: calc(var(--text-sm) * var(--text-scale));
|
|
24
|
+
line-height: calc(1.25 / 0.875);
|
|
21
25
|
box-shadow: none;
|
|
22
|
-
outline: none;
|
|
23
26
|
transition:
|
|
24
|
-
color var(--duration-fast) var(--ease
|
|
25
|
-
border-color var(--duration-fast) var(--ease
|
|
26
|
-
box-shadow var(--duration-fast) var(--ease-in-out);
|
|
27
|
+
color var(--duration-fast) var(--ease),
|
|
28
|
+
border-color var(--duration-fast) var(--ease);
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
/*
|
|
@@ -31,14 +33,14 @@
|
|
|
31
33
|
* each scope so a nested opt-out wins. A fixed 16px: it must not scale with density.
|
|
32
34
|
*/
|
|
33
35
|
[data-iphone-input-zoom="true"] {
|
|
34
|
-
--
|
|
36
|
+
--_field-min-font-size: 16px;
|
|
35
37
|
}
|
|
36
38
|
[data-iphone-input-zoom="false"] {
|
|
37
|
-
--
|
|
39
|
+
--_field-min-font-size: 0px;
|
|
38
40
|
}
|
|
39
41
|
:is(input, textarea, select)[data-field-control] {
|
|
40
|
-
font-size: max(var(--text-sm), var(--
|
|
41
|
-
line-height: max(
|
|
42
|
+
font-size: max(calc(var(--text-sm) * var(--text-scale)), var(--_field-min-font-size, 0px));
|
|
43
|
+
line-height: max(calc(1.25 / 0.875), calc(var(--_field-min-font-size, 0px) * 1.25));
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
[data-field-control]::placeholder {
|
|
@@ -48,34 +50,29 @@
|
|
|
48
50
|
[data-field-control]:hover:not(:disabled):not([data-disabled]):not(:focus-visible):not(
|
|
49
51
|
[aria-invalid="true"]
|
|
50
52
|
):not(:is(input, textarea):read-only) {
|
|
51
|
-
border-color: var(--
|
|
53
|
+
border-color: color-mix(in oklab, var(--input), var(--foreground) 35%);
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
/*
|
|
55
|
-
* Read-only: full ink and focus
|
|
56
|
-
*
|
|
57
|
+
* Read-only: full ink and focus (the value can still be read and copied), a quiet plate,
|
|
58
|
+
* no hover. Scoped to text controls because a <button> trigger matches `:read-only`.
|
|
57
59
|
*/
|
|
58
60
|
:is(input, textarea)[data-field-control]:read-only:not(:disabled) {
|
|
59
|
-
background-color: var(--foreground
|
|
61
|
+
background-color: color-mix(in oklab, var(--foreground) var(--tint), transparent);
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
[data-field-control]:focus-visible {
|
|
63
|
-
border-color: var(--
|
|
64
|
-
|
|
65
|
+
border-color: var(--ring);
|
|
66
|
+
outline-offset: calc(var(--border-width) * -1);
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
/* Keyed on `aria-invalid` so the styling and the announcement cannot disagree. */
|
|
68
70
|
[data-field-control][aria-invalid="true"] {
|
|
69
|
-
border-color: var(--
|
|
70
|
-
box-shadow: var(--invalid-ring);
|
|
71
|
+
border-color: var(--destructive);
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
/*
|
|
74
|
-
* Focus wins the ring; invalid keeps the border. Needed because the invalid rule above
|
|
75
|
-
* would otherwise take the box-shadow and hide focus (tests/interaction.spec.ts).
|
|
76
|
-
*/
|
|
77
74
|
[data-field-control][aria-invalid="true"]:focus-visible {
|
|
78
|
-
|
|
75
|
+
outline-color: var(--destructive);
|
|
79
76
|
}
|
|
80
77
|
|
|
81
78
|
[data-field-control]:disabled {
|
|
@@ -85,18 +82,14 @@
|
|
|
85
82
|
|
|
86
83
|
/*
|
|
87
84
|
* Chrome repaints autofilled backgrounds; an opaque --card inset (forms sit on cards)
|
|
88
|
-
* covers it.
|
|
89
|
-
*
|
|
85
|
+
* covers it. `:is()` forgives whichever spelling a browser lacks; a plain list would drop
|
|
86
|
+
* the rule.
|
|
90
87
|
*/
|
|
91
88
|
[data-field-control]:is(:autofill, :-webkit-autofill) {
|
|
92
89
|
-webkit-text-fill-color: var(--foreground);
|
|
93
90
|
box-shadow: inset 0 0 0 100px var(--card);
|
|
94
91
|
}
|
|
95
92
|
|
|
96
|
-
[data-field-control]:is(:autofill, :-webkit-autofill):focus-visible {
|
|
97
|
-
box-shadow: inset 0 0 0 100px var(--card), var(--field-focus-ring);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
93
|
/*
|
|
101
94
|
* ── The shell ───────────────────────────────────────────────────────────────
|
|
102
95
|
* Wears the field surface for the control inside it, so icons and actions read as part
|
|
@@ -107,23 +100,21 @@
|
|
|
107
100
|
[data-field-shell] {
|
|
108
101
|
display: flex;
|
|
109
102
|
align-items: center;
|
|
110
|
-
/* Inline affordances
|
|
111
|
-
gap: var(--
|
|
112
|
-
min-height: var(--control-
|
|
113
|
-
padding-inline: var(--
|
|
114
|
-
border: var(--border-width) solid var(--
|
|
103
|
+
/* Inline affordances: a leading icon, a trailing action, a unit suffix. */
|
|
104
|
+
gap: var(--gap-sm);
|
|
105
|
+
min-height: var(--control-height);
|
|
106
|
+
padding-inline: var(--padding-sm);
|
|
107
|
+
border: var(--border-width) solid var(--input);
|
|
115
108
|
border-radius: var(--radius-sm);
|
|
116
|
-
background-color:
|
|
117
|
-
|
|
118
|
-
transition:
|
|
119
|
-
border-color var(--duration-fast) var(--ease-in-out),
|
|
120
|
-
box-shadow var(--duration-fast) var(--ease-in-out);
|
|
109
|
+
background-color: transparent;
|
|
110
|
+
transition: border-color var(--duration-fast) var(--ease);
|
|
121
111
|
}
|
|
122
112
|
|
|
123
113
|
/* `:has()` on the control, not `:focus-within`: a focused trailing button must not light the field. */
|
|
124
114
|
[data-field-shell]:has([data-field-control]:focus-visible) {
|
|
125
|
-
border-color: var(--
|
|
126
|
-
|
|
115
|
+
border-color: var(--ring);
|
|
116
|
+
outline: calc(var(--border-width) * 2) solid var(--ring);
|
|
117
|
+
outline-offset: calc(var(--border-width) * -1);
|
|
127
118
|
}
|
|
128
119
|
|
|
129
120
|
[data-field-shell]:hover:not(:has([data-field-control]:disabled)):not(
|
|
@@ -131,25 +122,17 @@
|
|
|
131
122
|
):not(:has([data-field-control]:focus-visible)):not(
|
|
132
123
|
:has([data-field-control][aria-invalid="true"])
|
|
133
124
|
):not([aria-invalid="true"]):not(:has(:is(input, textarea)[data-field-control]:read-only)) {
|
|
134
|
-
border-color: var(--
|
|
125
|
+
border-color: color-mix(in oklab, var(--input), var(--foreground) 35%);
|
|
135
126
|
}
|
|
136
127
|
|
|
137
128
|
[data-field-shell]:has(:is(input, textarea)[data-field-control]:read-only:not(:disabled)) {
|
|
138
|
-
background-color: var(--foreground
|
|
129
|
+
background-color: color-mix(in oklab, var(--foreground) var(--tint), transparent);
|
|
139
130
|
}
|
|
140
131
|
|
|
141
132
|
[data-field-shell]:has([data-field-control][aria-invalid="true"]),
|
|
142
133
|
[data-field-shell][aria-invalid="true"] {
|
|
143
|
-
border-color: var(--
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/* The same rule for a shell, which wears the ring on its control's behalf. */
|
|
148
|
-
[data-field-shell]:has([data-field-control][aria-invalid="true"]):has(
|
|
149
|
-
[data-field-control]:focus-visible
|
|
150
|
-
),
|
|
151
|
-
[data-field-shell][aria-invalid="true"]:has([data-field-control]:focus-visible) {
|
|
152
|
-
box-shadow: var(--field-focus-ring);
|
|
134
|
+
border-color: var(--destructive);
|
|
135
|
+
outline-color: var(--destructive);
|
|
153
136
|
}
|
|
154
137
|
|
|
155
138
|
[data-field-shell]:has([data-field-control]:disabled) {
|
|
@@ -167,9 +150,8 @@
|
|
|
167
150
|
padding-inline: 0;
|
|
168
151
|
}
|
|
169
152
|
|
|
170
|
-
[data-field-shell] [data-field-control]:focus-visible
|
|
171
|
-
|
|
172
|
-
box-shadow: none;
|
|
153
|
+
[data-field-shell] [data-field-control]:focus-visible {
|
|
154
|
+
outline: none;
|
|
173
155
|
}
|
|
174
156
|
|
|
175
157
|
/* The shell takes the autofill surface and the bare inner input matches it. */
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The focus rule: one outline for every focusable element, drawn by the browser, so it follows
|
|
3
|
+
* the element's corners, survives forced-colours mode, and never shifts layout. Zero
|
|
4
|
+
* specificity in `base`, so a component that must draw it inside its box (under a clipping
|
|
5
|
+
* ancestor) sets a negative `outline-offset` on its own rule.
|
|
6
|
+
*/
|
|
7
|
+
@layer base {
|
|
8
|
+
:where(:focus-visible) {
|
|
9
|
+
outline: calc(var(--border-width) * 2) solid var(--ring);
|
|
10
|
+
outline-offset: calc(var(--border-width) * 2);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Forced colors — restores the focus
|
|
3
|
-
*
|
|
4
|
-
* In `utilities` because it must outrank those
|
|
5
|
-
* System colours only: the user's palette is the only
|
|
2
|
+
* Forced colors — restores the focus outline. A component that shows focus another way (a
|
|
3
|
+
* menu's highlight fill, a field's frame) removes the outline, and forced-colors mode drops
|
|
4
|
+
* fills and shadows, leaving no focus at all. In `utilities` because it must outrank those
|
|
5
|
+
* `outline: none` rules in `components`. System colours only: the user's palette is the only
|
|
6
|
+
* palette in this mode.
|
|
6
7
|
*/
|
|
7
8
|
@layer utilities {
|
|
8
9
|
@media (forced-colors: active) {
|
|
9
|
-
/* `:focus-visible`, not `:focus`, so a pointer click draws no
|
|
10
|
+
/* `:focus-visible`, not `:focus`, so a pointer click draws no outline. */
|
|
10
11
|
*:focus-visible {
|
|
11
|
-
outline: var(--
|
|
12
|
-
outline-offset:
|
|
12
|
+
outline: calc(var(--border-width) * 2) solid Highlight;
|
|
13
|
+
outline-offset: calc(var(--border-width) * 2);
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
/* A shelled field shows focus on the shell, as the normal
|
|
16
|
+
/* A shelled field shows focus on the shell, as the normal outline does. */
|
|
16
17
|
[data-field-shell]:has([data-field-control]:focus-visible) {
|
|
17
|
-
outline: var(--
|
|
18
|
-
outline-offset:
|
|
18
|
+
outline: calc(var(--border-width) * 2) solid Highlight;
|
|
19
|
+
outline-offset: calc(var(--border-width) * 2);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
}
|
package/dist/styles/index.css
CHANGED
|
@@ -1,52 +1,45 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Themelia UI —
|
|
2
|
+
* Themelia UI — source of the shared stylesheet and complete catalogue.
|
|
3
3
|
*
|
|
4
4
|
* Layer order is the override story; later layers win regardless of specificity:
|
|
5
5
|
*
|
|
6
|
-
* tokens
|
|
7
|
-
*
|
|
8
|
-
* base element reset
|
|
6
|
+
* tokens the theme: raw values, declared once at :root
|
|
7
|
+
* base element reset, and the tone and focus rules components read and outrank
|
|
9
8
|
* components CSS-Module rules (see vite.config.ts)
|
|
10
9
|
* utilities the escape-hatch helpers the kit ships
|
|
11
10
|
*
|
|
12
11
|
* Consumer unlayered CSS outranks every layer. `@import` cannot sit inside `@layer {}`,
|
|
13
12
|
* hence the `layer(...)` form on each import.
|
|
14
13
|
*/
|
|
15
|
-
@layer tokens,
|
|
14
|
+
@layer tokens, base, components, utilities;
|
|
16
15
|
|
|
17
16
|
/* The default typefaces. Unlayered: a layer cannot hold @font-face. */
|
|
18
17
|
@import "./fonts.css";
|
|
19
18
|
|
|
20
|
-
/* ── tokens: the
|
|
21
|
-
|
|
22
|
-
@import "./
|
|
23
|
-
@import "./
|
|
24
|
-
@import "./
|
|
25
|
-
@import "./
|
|
26
|
-
@import "./
|
|
27
|
-
@import "./
|
|
28
|
-
@import "./
|
|
19
|
+
/* ── tokens: the theme, one file per responsibility ───────────────────────────── */
|
|
20
|
+
@import "./theme/colour.css" layer(tokens);
|
|
21
|
+
@import "./theme/shape.css" layer(tokens);
|
|
22
|
+
@import "./theme/spacing.css" layer(tokens);
|
|
23
|
+
@import "./theme/size.css" layer(tokens);
|
|
24
|
+
@import "./theme/typography.css" layer(tokens);
|
|
25
|
+
@import "./theme/elevation.css" layer(tokens);
|
|
26
|
+
@import "./theme/motion.css" layer(tokens);
|
|
27
|
+
@import "./theme/layout.css" layer(tokens);
|
|
28
|
+
@import "./theme/density.css" layer(tokens);
|
|
29
29
|
|
|
30
|
-
/*
|
|
31
|
-
@import "./
|
|
32
|
-
@import "./theming/colors.css" layer(theming);
|
|
33
|
-
@import "./theming/sizing.css" layer(theming);
|
|
34
|
-
@import "./theming/typography.css" layer(theming);
|
|
35
|
-
@import "./theming/focus.css" layer(theming);
|
|
36
|
-
@import "./theming/motion.css" layer(theming);
|
|
37
|
-
@import "./theming/layers.css" layer(theming);
|
|
38
|
-
@import "./theming/animation.css" layer(theming);
|
|
39
|
-
|
|
40
|
-
/* Per-family contracts. A module whose contract is missing here renders unstyled. */
|
|
41
|
-
@import "./theming/overlay.css" layer(theming);
|
|
42
|
-
@import "./theming/layout.css" layer(theming);
|
|
43
|
-
@import "./theming/field.css" layer(theming);
|
|
44
|
-
@import "./theming/feedback.css" layer(theming);
|
|
45
|
-
@import "./theming/text.css" layer(theming);
|
|
30
|
+
/* Media conditions, resolved at build time (vite.shared.ts). */
|
|
31
|
+
@import "./breakpoints.css";
|
|
46
32
|
|
|
47
33
|
/* ── base: element reset (declares its own @layer base) ───────────────────────── */
|
|
48
34
|
@import "./base.css";
|
|
49
35
|
|
|
36
|
+
/* Keyframes, named through --keyframes-* so CSS Modules do not rename them. */
|
|
37
|
+
@import "./animation.css";
|
|
38
|
+
|
|
39
|
+
/* The tone rule and the focus rule, which components read and outrank. */
|
|
40
|
+
@import "./tone.css";
|
|
41
|
+
@import "./focus.css";
|
|
42
|
+
|
|
50
43
|
/* The shared field surface. */
|
|
51
44
|
@import "./fields.css";
|
|
52
45
|
|
package/dist/styles/map.css
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Leaflet's chrome, retuned. Unlayered because leaflet.css is: its unlayered rules would
|
|
3
3
|
* beat anything in `@layer components`. Every rule is qualified by a kit class for
|
|
4
|
-
* specificity, so none needs `!important`. Only what Leaflet paints lives here
|
|
4
|
+
* specificity, so none needs `!important`. Only what Leaflet paints lives here, which is also
|
|
5
|
+
* why the type below is set directly rather than through Text: Text's classes are layered.
|
|
5
6
|
*/
|
|
6
7
|
|
|
8
|
+
/* The page's face, not Leaflet's Helvetica; Leaflet's own size stays for its chrome. */
|
|
7
9
|
.map--component.leaflet-container {
|
|
8
10
|
background-color: var(--muted);
|
|
9
|
-
font-family:
|
|
11
|
+
font-family: inherit;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
/*
|
|
13
|
-
* The map takes keyboard focus (the arrow keys pan it), so it draws the
|
|
14
|
-
* the tiles
|
|
15
|
+
* The map takes keyboard focus (the arrow keys pan it), so it draws the shared outline
|
|
16
|
+
* (styles/focus.css), inset over the tiles: Leaflet's own offset puts it outside, where the
|
|
17
|
+
* frame around a map clips it.
|
|
15
18
|
*/
|
|
16
19
|
.map--component.leaflet-container:focus-visible {
|
|
17
|
-
outline: var(--
|
|
18
|
-
outline-offset: calc(-1 * var(--focus-ring-width));
|
|
20
|
+
outline-offset: calc(var(--border-width) * -2);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
/*
|
|
@@ -28,18 +30,24 @@
|
|
|
28
30
|
|
|
29
31
|
/* ── The panes Leaflet paints itself ──────────────────────────────────────────── */
|
|
30
32
|
|
|
33
|
+
/* An anchored popup, as the kit draws one: the popover ground, a hairline and the floating shadow. */
|
|
31
34
|
.map--component .leaflet-popup-content-wrapper {
|
|
32
35
|
border-radius: var(--radius);
|
|
33
36
|
background-color: var(--popover);
|
|
34
37
|
color: var(--popover-foreground);
|
|
35
|
-
box-shadow: var(--
|
|
38
|
+
box-shadow: 0 0 0 var(--border-width) var(--border), var(--shadow-lg);
|
|
36
39
|
}
|
|
37
40
|
|
|
41
|
+
/* Text's `sm` step on an open line box, for whatever the popup holds that Text does not. */
|
|
38
42
|
.map--component .leaflet-popup-content {
|
|
39
|
-
margin: var(--
|
|
40
|
-
font-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
margin: var(--padding);
|
|
44
|
+
font-size: calc(var(--text-sm) * var(--text-scale));
|
|
45
|
+
line-height: 1.5;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Leaflet spaces popup paragraphs apart; the kit's own reset (and Text) leaves that to the content. */
|
|
49
|
+
.map--component .leaflet-popup-content p {
|
|
50
|
+
margin: 0;
|
|
43
51
|
}
|
|
44
52
|
|
|
45
53
|
/* The tip is a rotated square; it matches the wrapper it points from. */
|
|
@@ -56,12 +64,17 @@
|
|
|
56
64
|
color: var(--foreground);
|
|
57
65
|
}
|
|
58
66
|
|
|
59
|
-
/*
|
|
67
|
+
/*
|
|
68
|
+
* Leaflet's tooltip, redrawn as the kit's inverse annotation; MapTooltip adds its arrow on the
|
|
69
|
+
* side it chooses (Leaflet's single tip cannot) and takes its type from Text's classes.
|
|
70
|
+
*/
|
|
60
71
|
.map--component .leaflet-tooltip {
|
|
61
|
-
padding:
|
|
72
|
+
padding: calc(var(--padding-sm) / 2) var(--padding-sm);
|
|
62
73
|
border: 0;
|
|
63
|
-
|
|
64
|
-
|
|
74
|
+
border-radius: var(--radius-sm);
|
|
75
|
+
background-color: var(--foreground);
|
|
76
|
+
color: var(--background);
|
|
77
|
+
box-shadow: var(--shadow);
|
|
65
78
|
}
|
|
66
79
|
|
|
67
80
|
.map--component .leaflet-tooltip::before {
|
|
@@ -72,15 +85,14 @@
|
|
|
72
85
|
|
|
73
86
|
.map--component.leaflet-container .leaflet-control-attribution {
|
|
74
87
|
border-radius: var(--radius-sm) 0 0 0;
|
|
75
|
-
background-color: var(--background
|
|
88
|
+
background-color: color-mix(in oklab, var(--background) 80%, transparent);
|
|
76
89
|
color: var(--muted-foreground);
|
|
77
|
-
font-
|
|
78
|
-
|
|
79
|
-
line-height: var(--text-xs--line-height);
|
|
90
|
+
font-size: calc(var(--text-xs) * var(--text-scale));
|
|
91
|
+
line-height: calc(1 / 0.75);
|
|
80
92
|
}
|
|
81
93
|
|
|
82
94
|
.map--component .leaflet-control-attribution a {
|
|
83
|
-
color: var(--link
|
|
95
|
+
color: var(--link);
|
|
84
96
|
}
|
|
85
97
|
|
|
86
98
|
/* ── leaflet-draw's toolbar ───────────────────────────────────────────────────── */
|
|
@@ -91,17 +103,17 @@
|
|
|
91
103
|
display: none;
|
|
92
104
|
}
|
|
93
105
|
|
|
94
|
-
/* The on-map instruction tooltip stays, drawn as the kit's inverse
|
|
106
|
+
/* The on-map instruction tooltip stays, drawn as the kit's inverse annotation. */
|
|
95
107
|
.map--component .leaflet-draw-tooltip {
|
|
96
108
|
border: var(--border-width) solid var(--foreground);
|
|
97
109
|
border-radius: var(--radius-sm);
|
|
98
|
-
padding-block: var(--
|
|
99
|
-
padding-inline: var(--
|
|
110
|
+
padding-block: calc(var(--padding-sm) / 2);
|
|
111
|
+
padding-inline: var(--padding-sm);
|
|
100
112
|
background-color: var(--foreground);
|
|
101
113
|
color: var(--background);
|
|
102
|
-
font-family:
|
|
103
|
-
font-size: var(--text-xs);
|
|
104
|
-
line-height:
|
|
114
|
+
font-family: inherit;
|
|
115
|
+
font-size: calc(var(--text-xs) * var(--text-scale));
|
|
116
|
+
line-height: calc(1 / 0.75);
|
|
105
117
|
}
|
|
106
118
|
|
|
107
119
|
/* Physical on purpose: Leaflet positions this arrow in physical terms. */
|
|
@@ -111,7 +123,7 @@
|
|
|
111
123
|
|
|
112
124
|
/* leaflet-draw's second line: the tooltip's ink, receded. */
|
|
113
125
|
.map--component .leaflet-draw-tooltip-subtext {
|
|
114
|
-
color: var(--background
|
|
126
|
+
color: color-mix(in oklab, var(--background) 70%, transparent);
|
|
115
127
|
}
|
|
116
128
|
|
|
117
129
|
/* ── Marker clusters ──────────────────────────────────────────────────────────── */
|
|
@@ -122,12 +134,11 @@
|
|
|
122
134
|
align-items: center;
|
|
123
135
|
justify-content: center;
|
|
124
136
|
border-radius: var(--radius-pill);
|
|
125
|
-
background-color: var(--primary
|
|
126
|
-
color: var(--primary
|
|
127
|
-
font-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
font-weight: var(--weight-semibold);
|
|
137
|
+
background-color: color-mix(in oklab, var(--primary) var(--tint), transparent);
|
|
138
|
+
color: var(--primary);
|
|
139
|
+
font-size: calc(var(--text-xs) * var(--text-scale));
|
|
140
|
+
line-height: calc(1 / 0.75);
|
|
141
|
+
font-weight: 600;
|
|
131
142
|
}
|
|
132
143
|
|
|
133
144
|
.map--component .marker-cluster div {
|
|
@@ -138,5 +149,5 @@
|
|
|
138
149
|
height: 100%;
|
|
139
150
|
margin: 0;
|
|
140
151
|
border-radius: var(--radius-pill);
|
|
141
|
-
background-color: var(--primary
|
|
152
|
+
background-color: color-mix(in oklab, var(--primary) var(--tint), transparent);
|
|
142
153
|
}
|
package/dist/styles/mentions.css
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Mention chips
|
|
2
|
+
* Mention chips: the one global component look. The same chip is rendered by a React
|
|
3
3
|
* component and by serialised HTML in a contenteditable, and the two must match. Keyed on
|
|
4
|
-
* `data-ref-id` because `sanitizeHtml` strips `class
|
|
5
|
-
* unlayered CSS wins.
|
|
4
|
+
* `data-ref-id` because `sanitizeHtml` strips `class`; toned through `data-ref-tone`, which
|
|
5
|
+
* the shared tone rule reads. Layered `components` so consumer unlayered CSS wins.
|
|
6
6
|
*/
|
|
7
7
|
@layer components {
|
|
8
8
|
:is(span, a)[data-ref-id] {
|
|
@@ -14,24 +14,24 @@
|
|
|
14
14
|
border-radius: var(--radius-sm);
|
|
15
15
|
/* The line's own size: a name in a sentence is a word of it. */
|
|
16
16
|
font-size: 1em;
|
|
17
|
-
font-weight:
|
|
17
|
+
font-weight: 500;
|
|
18
18
|
line-height: 1.35;
|
|
19
19
|
white-space: nowrap;
|
|
20
20
|
vertical-align: baseline;
|
|
21
21
|
text-decoration: none;
|
|
22
22
|
/* Untoned: a chip that is a reference and nothing more. */
|
|
23
|
-
background-color: var(--foreground
|
|
23
|
+
background-color: color-mix(in oklab, var(--foreground) var(--tint), transparent);
|
|
24
24
|
color: var(--foreground);
|
|
25
|
-
box-shadow: inset 0 0 0 var(--border-width) var(--foreground
|
|
26
|
-
transition: background-color var(--duration-fast) var(--ease
|
|
25
|
+
box-shadow: inset 0 0 0 var(--border-width) color-mix(in oklab, var(--foreground) var(--tint), transparent);
|
|
26
|
+
transition: background-color var(--duration-fast) var(--ease);
|
|
27
27
|
/* A click selects the whole chip; with `contenteditable="false"` this makes it atomic in an editor. */
|
|
28
28
|
user-select: all;
|
|
29
29
|
-webkit-user-select: all;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
/* Only a chip with a destination answers the pointer
|
|
32
|
+
/* Only a chip with a destination answers the pointer. */
|
|
33
33
|
a[data-ref-id]:hover {
|
|
34
|
-
background-color: color-mix(in oklab, var(--foreground)
|
|
34
|
+
background-color: color-mix(in oklab, var(--foreground) var(--tint-strong), transparent);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/* A chip with no destination is a label, so it does not pretend to be clickable. */
|
|
@@ -43,58 +43,20 @@
|
|
|
43
43
|
cursor: pointer;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
/*
|
|
47
|
-
* Each hued tone re-points one hue and one ink; the recipe below is Badge soft's
|
|
48
|
-
* arithmetic on it: a 10% wash, a 30% edge, a 20% hover. An unknown tone matches none of
|
|
49
|
-
* these and keeps the untoned chip.
|
|
50
|
-
*/
|
|
51
|
-
:is(span, a)[data-ref-id][data-ref-tone="primary"] {
|
|
52
|
-
--ref-hue: var(--primary);
|
|
53
|
-
--ref-ink: var(--primary-accent);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
:is(span, a)[data-ref-id][data-ref-tone="info"] {
|
|
57
|
-
--ref-hue: var(--info);
|
|
58
|
-
--ref-ink: var(--info);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
:is(span, a)[data-ref-id][data-ref-tone="success"] {
|
|
62
|
-
--ref-hue: var(--success);
|
|
63
|
-
--ref-ink: var(--success);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/* Warning ink is the accent step, and its edge the warning line step (40%), as on Badge. */
|
|
67
|
-
:is(span, a)[data-ref-id][data-ref-tone="warning"] {
|
|
68
|
-
--ref-hue: var(--warning);
|
|
69
|
-
--ref-ink: var(--warning-accent);
|
|
70
|
-
--ref-line: 40%;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
:is(span, a)[data-ref-id][data-ref-tone="destructive"] {
|
|
74
|
-
--ref-hue: var(--destructive);
|
|
75
|
-
--ref-ink: var(--destructive-accent);
|
|
76
|
-
}
|
|
77
|
-
|
|
46
|
+
/* A hued tone is Badge soft on the chip: a tint, a strong-tint edge, the tone's ink. */
|
|
78
47
|
:is(span, a)[data-ref-id]:is([data-ref-tone="primary"], [data-ref-tone="info"], [data-ref-tone="success"], [data-ref-tone="warning"], [data-ref-tone="destructive"]) {
|
|
79
|
-
background-color: color-mix(in oklab, var(--
|
|
80
|
-
color: var(--
|
|
81
|
-
box-shadow: inset 0 0 0 var(--border-width) color-mix(in oklab, var(--
|
|
48
|
+
background-color: color-mix(in oklab, var(--tone) var(--tint), transparent);
|
|
49
|
+
color: var(--tone-ink);
|
|
50
|
+
box-shadow: inset 0 0 0 var(--border-width) color-mix(in oklab, var(--tone) var(--tint-strong), transparent);
|
|
82
51
|
}
|
|
83
52
|
|
|
84
53
|
a[data-ref-id]:is([data-ref-tone="primary"], [data-ref-tone="info"], [data-ref-tone="success"], [data-ref-tone="warning"], [data-ref-tone="destructive"]):hover {
|
|
85
|
-
background-color: color-mix(in oklab, var(--
|
|
54
|
+
background-color: color-mix(in oklab, var(--tone) var(--tint-strong), transparent);
|
|
86
55
|
}
|
|
87
56
|
|
|
88
57
|
/* Secondary is neutral: the untoned fill with supporting ink. */
|
|
89
58
|
:is(span, a)[data-ref-id][data-ref-tone="secondary"] {
|
|
90
|
-
background-color: var(--foreground-8);
|
|
91
59
|
color: var(--muted-foreground);
|
|
92
|
-
box-shadow: inset 0 0 0 var(--border-width) var(--foreground-10);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/* Badge secondary's hover: its supporting ink at 20%. */
|
|
96
|
-
a[data-ref-id][data-ref-tone="secondary"]:hover {
|
|
97
|
-
background-color: color-mix(in oklab, var(--muted-foreground) 20%, transparent);
|
|
98
60
|
}
|
|
99
61
|
|
|
100
62
|
/*
|
package/dist/styles/overlays.css
CHANGED
|
@@ -17,11 +17,11 @@ dialog::backdrop {
|
|
|
17
17
|
/* Top layer: transitioning `overlay`/`display` with allow-discrete keeps it there to animate out. */
|
|
18
18
|
opacity: 0;
|
|
19
19
|
|
|
20
|
-
/* The surface's exit timing (overlay.module.css). */
|
|
20
|
+
/* The surface's exit timing (overlay.module.css): quicker than its entrance. */
|
|
21
21
|
transition:
|
|
22
|
-
opacity var(--
|
|
23
|
-
overlay var(--
|
|
24
|
-
display var(--
|
|
22
|
+
opacity var(--duration-fast) var(--ease),
|
|
23
|
+
overlay var(--duration-fast) allow-discrete,
|
|
24
|
+
display var(--duration-fast) allow-discrete;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
dialog[open]::backdrop {
|
|
@@ -29,9 +29,9 @@ dialog[open]::backdrop {
|
|
|
29
29
|
|
|
30
30
|
/* Enters on the surface's own timing so the two read as one gesture. */
|
|
31
31
|
transition:
|
|
32
|
-
opacity var(--duration
|
|
33
|
-
overlay var(--duration
|
|
34
|
-
display var(--duration
|
|
32
|
+
opacity var(--duration) var(--ease),
|
|
33
|
+
overlay var(--duration) allow-discrete,
|
|
34
|
+
display var(--duration) allow-discrete;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
@starting-style {
|