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
|
@@ -15,7 +15,6 @@ Displaying or formatting exactly one read-only value — currency/money, date, e
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Address } from "themelia-ui/primitives"
|
|
18
|
-
import "themelia-ui/primitives.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -1102,7 +1101,119 @@ Extract<TextProps["type"], "inherit" | "main" | "secondary">
|
|
|
1102
1101
|
|
|
1103
1102
|
## Preview recipes
|
|
1104
1103
|
|
|
1105
|
-
Preview route:
|
|
1104
|
+
Preview route: Analytics — `/analytics`
|
|
1105
|
+
|
|
1106
|
+
### Compose your own
|
|
1107
|
+
|
|
1108
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
1109
|
+
import { ArrowUpIcon, CreditCardIcon } from "lucide-react"
|
|
1110
|
+
|
|
1111
|
+
import { Badge } from "themelia-ui/base/badge"
|
|
1112
|
+
import { Card } from "themelia-ui/base/cards"
|
|
1113
|
+
import { Sparkline } from "themelia-ui/base/chart"
|
|
1114
|
+
import { IconBadge } from "themelia-ui/base/display"
|
|
1115
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
1116
|
+
import { DisplayLabel, Text } from "themelia-ui/base/typography"
|
|
1117
|
+
import { Money } from "themelia-ui/primitives"
|
|
1118
|
+
|
|
1119
|
+
export default function AnalyticsBlueprint() {
|
|
1120
|
+
return (
|
|
1121
|
+
<Card style={{ maxWidth: "20rem" }}>
|
|
1122
|
+
<Stack gap="sm">
|
|
1123
|
+
<Stack direction="horizontal" align="center" gap="sm">
|
|
1124
|
+
<IconBadge icon={CreditCardIcon} tone="primary" />
|
|
1125
|
+
<DisplayLabel>Revenue</DisplayLabel>
|
|
1126
|
+
</Stack>
|
|
1127
|
+
<Stack direction="horizontal" align="center" justify="between" gap="sm">
|
|
1128
|
+
<Money amount={48200} currency="EUR" size="xl" weight="semibold" />
|
|
1129
|
+
<Badge tone="success">
|
|
1130
|
+
<ArrowUpIcon />
|
|
1131
|
+
12.4%
|
|
1132
|
+
</Badge>
|
|
1133
|
+
</Stack>
|
|
1134
|
+
<Sparkline data={[18, 22, 19, 27, 24, 31, 29, 38]} tone="success" label="Revenue rising over eight weeks" />
|
|
1135
|
+
<Text size="xs" type="secondary">
|
|
1136
|
+
Net of refunds, this quarter
|
|
1137
|
+
</Text>
|
|
1138
|
+
</Stack>
|
|
1139
|
+
</Card>
|
|
1140
|
+
)
|
|
1141
|
+
}
|
|
1142
|
+
```
|
|
1143
|
+
|
|
1144
|
+
### Compose your own timeline
|
|
1145
|
+
|
|
1146
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
1147
|
+
import { RocketIcon, WrenchIcon } from "lucide-react"
|
|
1148
|
+
|
|
1149
|
+
import { Badge } from "themelia-ui/base/badge"
|
|
1150
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
1151
|
+
import { Timeline, type TimelineItem } from "themelia-ui/base/timeline"
|
|
1152
|
+
import { MonoValue } from "themelia-ui/primitives"
|
|
1153
|
+
|
|
1154
|
+
const RELEASES: TimelineItem[] = [
|
|
1155
|
+
{
|
|
1156
|
+
id: "3.1.0",
|
|
1157
|
+
title: "Saved views",
|
|
1158
|
+
timestamp: <MonoValue size="xs" type="secondary">v3.1.0</MonoValue>,
|
|
1159
|
+
icon: RocketIcon,
|
|
1160
|
+
status: "success",
|
|
1161
|
+
description: "Filters and columns can be saved and shared with the team.",
|
|
1162
|
+
children: (
|
|
1163
|
+
<Stack direction="horizontal" gap="sm">
|
|
1164
|
+
<Badge tone="success">Added</Badge>
|
|
1165
|
+
<Badge tone="neutral">Tables</Badge>
|
|
1166
|
+
</Stack>
|
|
1167
|
+
),
|
|
1168
|
+
},
|
|
1169
|
+
{
|
|
1170
|
+
id: "3.0.2",
|
|
1171
|
+
title: "Faster exports",
|
|
1172
|
+
timestamp: <MonoValue size="xs" type="secondary">v3.0.2</MonoValue>,
|
|
1173
|
+
icon: WrenchIcon,
|
|
1174
|
+
status: "neutral",
|
|
1175
|
+
description: "Large exports stream instead of waiting for the whole file.",
|
|
1176
|
+
},
|
|
1177
|
+
]
|
|
1178
|
+
|
|
1179
|
+
export default function ChangelogBlueprint() {
|
|
1180
|
+
return (
|
|
1181
|
+
<Timeline items={RELEASES} />
|
|
1182
|
+
)
|
|
1183
|
+
}
|
|
1184
|
+
```
|
|
1185
|
+
|
|
1186
|
+
### Compose your own
|
|
1187
|
+
|
|
1188
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
1189
|
+
import { Button } from "themelia-ui/base/buttons"
|
|
1190
|
+
import { Card } from "themelia-ui/base/cards"
|
|
1191
|
+
import { MetadataList } from "themelia-ui/base/display"
|
|
1192
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
1193
|
+
import { toast } from "themelia-ui/base/toaster"
|
|
1194
|
+
import { Money } from "themelia-ui/primitives"
|
|
1195
|
+
|
|
1196
|
+
export default function CartSummaryBlueprint() {
|
|
1197
|
+
return (
|
|
1198
|
+
<Card title="Order summary" description="3 items" style={{ maxWidth: "24rem" }}>
|
|
1199
|
+
<Stack>
|
|
1200
|
+
<MetadataList
|
|
1201
|
+
layout="rows"
|
|
1202
|
+
items={[
|
|
1203
|
+
{ label: "Subtotal", value: <Money amount={258} currency="EUR" /> },
|
|
1204
|
+
{ label: "Shipping", value: <Money amount={4.8} currency="EUR" /> },
|
|
1205
|
+
{ label: "Tax", value: <Money amount={51.6} currency="EUR" /> },
|
|
1206
|
+
{ label: "Total", value: <Money amount={314.4} currency="EUR" weight="semibold" /> },
|
|
1207
|
+
]}
|
|
1208
|
+
/>
|
|
1209
|
+
<Button onClick={() => toast("Checkout requested", { description: "Preview callback — connect this action to your application." })}>
|
|
1210
|
+
Check out
|
|
1211
|
+
</Button>
|
|
1212
|
+
</Stack>
|
|
1213
|
+
</Card>
|
|
1214
|
+
)
|
|
1215
|
+
}
|
|
1216
|
+
```
|
|
1106
1217
|
|
|
1107
1218
|
### Scale
|
|
1108
1219
|
|
|
@@ -1110,29 +1221,29 @@ Preview route: Form field — `/form-field`
|
|
|
1110
1221
|
import { Stack } from "themelia-ui/base/structure"
|
|
1111
1222
|
import { Input, NativeSelect } from "themelia-ui/base/text-inputs"
|
|
1112
1223
|
import { MonoValue } from "themelia-ui/primitives"
|
|
1113
|
-
import {
|
|
1224
|
+
import { UIScope } from "themelia-ui/ui-provider"
|
|
1114
1225
|
|
|
1115
1226
|
export default function FormsScale() {
|
|
1116
1227
|
return (
|
|
1117
|
-
<Stack
|
|
1118
|
-
{[
|
|
1119
|
-
<
|
|
1120
|
-
<Stack direction="horizontal" gap="
|
|
1228
|
+
<Stack style={{ width: "100%" }}>
|
|
1229
|
+
{(["compact", "default", "comfortable"] as const).map((density) => (
|
|
1230
|
+
<UIScope key={density} config={{ density }}>
|
|
1231
|
+
<Stack direction="horizontal" gap="sm" align="center" justify="start">
|
|
1121
1232
|
{/* Widths on the wrappers: Input's style lands on the inner control, not its frame. */}
|
|
1122
|
-
<MonoValue size="xs" style={{ width: "
|
|
1123
|
-
{
|
|
1233
|
+
<MonoValue size="xs" style={{ width: "6rem", flexShrink: 0 }}>
|
|
1234
|
+
{density}
|
|
1124
1235
|
</MonoValue>
|
|
1125
1236
|
{/* Named even in a geometry demo: a placeholder is not a label. */}
|
|
1126
1237
|
<div style={{ width: "12rem", flexShrink: 0 }}>
|
|
1127
|
-
<Input placeholder="Field" aria-label={`Example field at
|
|
1238
|
+
<Input placeholder="Field" aria-label={`Example field at ${density} density`} />
|
|
1128
1239
|
</div>
|
|
1129
1240
|
<div style={{ width: "9rem", flexShrink: 0 }}>
|
|
1130
|
-
<NativeSelect defaultValue="a" aria-label={`Example select at
|
|
1241
|
+
<NativeSelect defaultValue="a" aria-label={`Example select at ${density} density`}>
|
|
1131
1242
|
<option value="a">Option</option>
|
|
1132
1243
|
</NativeSelect>
|
|
1133
1244
|
</div>
|
|
1134
1245
|
</Stack>
|
|
1135
|
-
</
|
|
1246
|
+
</UIScope>
|
|
1136
1247
|
))}
|
|
1137
1248
|
</Stack>
|
|
1138
1249
|
)
|
|
@@ -1151,9 +1262,9 @@ import { DE, UK, US } from "./data"
|
|
|
1151
1262
|
export default function AddressExample() {
|
|
1152
1263
|
return (
|
|
1153
1264
|
// Captioned with the country code you pass; the name is the address's last line.
|
|
1154
|
-
<Grid columns={{ base: 1, md: 3 }}
|
|
1265
|
+
<Grid columns={{ base: 1, md: 3 }}>
|
|
1155
1266
|
{[["GB", UK], ["US", US], ["DE", DE]].map(([label, value]) => (
|
|
1156
|
-
<Stack key={label as string} gap="
|
|
1267
|
+
<Stack key={label as string} gap="sm">
|
|
1157
1268
|
<Text size="xs" type="secondary">country: "{label as string}"</Text>
|
|
1158
1269
|
<Address value={value as typeof UK} />
|
|
1159
1270
|
</Stack>
|
|
@@ -1173,7 +1284,7 @@ import { DE, UK, US } from "./data"
|
|
|
1173
1284
|
|
|
1174
1285
|
export default function AddressInline() {
|
|
1175
1286
|
return (
|
|
1176
|
-
<Stack gap="
|
|
1287
|
+
<Stack gap="sm">
|
|
1177
1288
|
<Address value={UK} format="inline" />
|
|
1178
1289
|
<Address value={US} format="inline" />
|
|
1179
1290
|
<Address value={DE} format="inline" />
|
|
@@ -1190,7 +1301,7 @@ import { Address } from "themelia-ui/primitives"
|
|
|
1190
1301
|
|
|
1191
1302
|
export default function AddressPartial() {
|
|
1192
1303
|
return (
|
|
1193
|
-
<Grid columns={{ base: 1, md: 3 }}
|
|
1304
|
+
<Grid columns={{ base: 1, md: 3 }}>
|
|
1194
1305
|
<Address value={{ line1: "221B Baker Street", city: "London" }} />
|
|
1195
1306
|
<Address value={{ city: "London", postalCode: "NW1 6XE" }} />
|
|
1196
1307
|
<Address value={null} />
|
|
@@ -1600,7 +1711,7 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
1600
1711
|
|
|
1601
1712
|
export default function MoneyProviderExample() {
|
|
1602
1713
|
return (
|
|
1603
|
-
<Stack
|
|
1714
|
+
<Stack>
|
|
1604
1715
|
<UIProvider
|
|
1605
1716
|
config={{
|
|
1606
1717
|
formatting: { locale: "de-DE" },
|
|
@@ -30,8 +30,8 @@ outside the package and arrives through the public props, callbacks, slots, or a
|
|
|
30
30
|
|
|
31
31
|
Kind: callable.
|
|
32
32
|
|
|
33
|
-
The
|
|
34
|
-
|
|
33
|
+
The two shadows from one intensity: the default theme's geometry, with every layer's ink
|
|
34
|
+
scaled so 0.8 reproduces it exactly.
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
37
|
({ intensity }: ThemeElevationRecipe) => ThemeOverrides
|
|
@@ -112,6 +112,14 @@ need not import a React feature; `features/theme-tweaker` re-exports them.
|
|
|
112
112
|
"light" | "dark"
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
+
### `ThemeName`
|
|
116
|
+
|
|
117
|
+
Kind: type.
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
keyof typeof themes
|
|
121
|
+
```
|
|
122
|
+
|
|
115
123
|
### `ThemeOverrides`
|
|
116
124
|
|
|
117
125
|
Kind: type.
|
|
@@ -131,6 +139,29 @@ Kind: interface.
|
|
|
131
139
|
| `primary` | yes | `string` | |
|
|
132
140
|
| `mode` | no | `ThemeMode` | |
|
|
133
141
|
|
|
142
|
+
### `ThemePreset`
|
|
143
|
+
|
|
144
|
+
Kind: interface.
|
|
145
|
+
|
|
146
|
+
A ready-made theme: the name a picker shows, one line on what it is for, and the provider
|
|
147
|
+
config it sets. The config reaches past colour: radii, shadows and border weight (`theme`),
|
|
148
|
+
spacing (`density`), type (`typography`), motion, and how components draw themselves
|
|
149
|
+
(`defaults`). Pass `config` to `UIProvider`, or spread it under settings of your own.
|
|
150
|
+
|
|
151
|
+
| member | required | type | description / documented default |
|
|
152
|
+
| --- | :-: | --- | --- |
|
|
153
|
+
| `label` | yes | `string` | |
|
|
154
|
+
| `description` | yes | `string` | |
|
|
155
|
+
| `config` | yes | `UIConfig` | |
|
|
156
|
+
|
|
157
|
+
### `themes`
|
|
158
|
+
|
|
159
|
+
Kind: const.
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
{ soft: ThemePreset; sharp: ThemePreset; dense: ThemePreset; editorial: ThemePreset; }
|
|
163
|
+
```
|
|
164
|
+
|
|
134
165
|
### `ThemeTypeScaleRecipe`
|
|
135
166
|
|
|
136
167
|
Kind: interface.
|
|
@@ -150,5 +181,117 @@ Kind: type.
|
|
|
150
181
|
|
|
151
182
|
## Preview recipes
|
|
152
183
|
|
|
153
|
-
|
|
154
|
-
|
|
184
|
+
Preview route: Themes — `/themes`
|
|
185
|
+
|
|
186
|
+
### Four styles
|
|
187
|
+
|
|
188
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
189
|
+
import { Badge } from "themelia-ui/base/badge"
|
|
190
|
+
import { Button } from "themelia-ui/base/buttons"
|
|
191
|
+
import { Card } from "themelia-ui/base/cards"
|
|
192
|
+
import { Switch } from "themelia-ui/base/choice-inputs"
|
|
193
|
+
import { MetadataList } from "themelia-ui/base/display"
|
|
194
|
+
import { FormField } from "themelia-ui/base/forms"
|
|
195
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
196
|
+
import { Input } from "themelia-ui/base/text-inputs"
|
|
197
|
+
import { themes, type ThemeName } from "themelia-ui/theming"
|
|
198
|
+
import { UIProvider } from "themelia-ui/ui-provider"
|
|
199
|
+
|
|
200
|
+
/* Each theme on a region of its own: the nested provider sets its colours, corners, spacing, type and card style there. */
|
|
201
|
+
export default function ThemeGallery() {
|
|
202
|
+
return (
|
|
203
|
+
<div style={{ display: "grid", gap: "1.5rem", gridTemplateColumns: "repeat(auto-fit, minmax(18rem, 1fr))", width: "100%" }}>
|
|
204
|
+
{(Object.keys(themes) as ThemeName[]).map((name) => {
|
|
205
|
+
const theme = themes[name]
|
|
206
|
+
return (
|
|
207
|
+
<UIProvider key={name} config={theme.config}>
|
|
208
|
+
<Card title={theme.label} description={theme.description}>
|
|
209
|
+
<Stack gap="sm">
|
|
210
|
+
<FormField label="Event">
|
|
211
|
+
<Input defaultValue="Autumn gala" />
|
|
212
|
+
</FormField>
|
|
213
|
+
<MetadataList
|
|
214
|
+
layout="rows"
|
|
215
|
+
items={[
|
|
216
|
+
{ label: "Guests", value: "120" },
|
|
217
|
+
{ label: "Deposit", value: "€2,400 paid" },
|
|
218
|
+
]}
|
|
219
|
+
/>
|
|
220
|
+
<Switch defaultChecked aria-label={`Send reminders, ${theme.label}`} />
|
|
221
|
+
<Stack direction="horizontal" gap="sm" align="center">
|
|
222
|
+
<Button>Publish</Button>
|
|
223
|
+
<Button tone="neutral" appearance="outline">Preview</Button>
|
|
224
|
+
<Badge tone="primary">Draft</Badge>
|
|
225
|
+
</Stack>
|
|
226
|
+
</Stack>
|
|
227
|
+
</Card>
|
|
228
|
+
</UIProvider>
|
|
229
|
+
)
|
|
230
|
+
})}
|
|
231
|
+
</div>
|
|
232
|
+
)
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Switching themes
|
|
237
|
+
|
|
238
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
239
|
+
import { useState } from "react"
|
|
240
|
+
|
|
241
|
+
import { Button } from "themelia-ui/base/buttons"
|
|
242
|
+
import { Card } from "themelia-ui/base/cards"
|
|
243
|
+
import { PillRadioGroup } from "themelia-ui/base/choice-inputs"
|
|
244
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
245
|
+
import { Input } from "themelia-ui/base/text-inputs"
|
|
246
|
+
import { themes, type ThemePreset } from "themelia-ui/theming"
|
|
247
|
+
import { UIProvider } from "themelia-ui/ui-provider"
|
|
248
|
+
|
|
249
|
+
/* A theme of your own: start from one and change what you need. Here, Sharp with a rose accent and more room. */
|
|
250
|
+
const brand: ThemePreset = {
|
|
251
|
+
label: "Brand",
|
|
252
|
+
description: "Sharp's square corners, a rose accent and room to breathe.",
|
|
253
|
+
config: {
|
|
254
|
+
...themes.sharp.config,
|
|
255
|
+
density: "comfortable",
|
|
256
|
+
theme: {
|
|
257
|
+
...themes.sharp.config.theme,
|
|
258
|
+
colors: {
|
|
259
|
+
...themes.sharp.config.theme?.colors,
|
|
260
|
+
primary: "light-dark(oklch(0.5 0.19 15), oklch(0.76 0.13 15))",
|
|
261
|
+
"primary-foreground": "light-dark(oklch(0.985 0 0), oklch(0.2 0.05 15))",
|
|
262
|
+
ring: "light-dark(oklch(0.56 0.17 15), oklch(0.7 0.12 15))",
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
const CHOICES: Record<string, ThemePreset | undefined> = { default: undefined, ...themes, brand }
|
|
269
|
+
|
|
270
|
+
/* Switching a theme is switching which config the provider is handed: the region repaints in place. */
|
|
271
|
+
export default function SwitchThemes() {
|
|
272
|
+
const [choice, setChoice] = useState("soft")
|
|
273
|
+
|
|
274
|
+
return (
|
|
275
|
+
<Stack style={{ width: "100%", maxWidth: "38rem" }}>
|
|
276
|
+
<PillRadioGroup
|
|
277
|
+
aria-label="Theme for this example"
|
|
278
|
+
name="switch-theme"
|
|
279
|
+
value={choice}
|
|
280
|
+
onValueChange={(value) => { if (value) setChoice(value) }}
|
|
281
|
+
options={Object.entries(CHOICES).map(([value, theme]) => ({ value, label: theme?.label ?? "Default" }))}
|
|
282
|
+
/>
|
|
283
|
+
<UIProvider config={CHOICES[choice]?.config ?? {}}>
|
|
284
|
+
<Card title="Invite your team" description="Teammates see the same projects and saved views.">
|
|
285
|
+
<Stack gap="sm">
|
|
286
|
+
<Input aria-label="Email address" placeholder="name@example.com" />
|
|
287
|
+
<Stack direction="horizontal" gap="sm">
|
|
288
|
+
<Button>Send invite</Button>
|
|
289
|
+
<Button tone="neutral" appearance="ghost">Copy link</Button>
|
|
290
|
+
</Stack>
|
|
291
|
+
</Stack>
|
|
292
|
+
</Card>
|
|
293
|
+
</UIProvider>
|
|
294
|
+
</Stack>
|
|
295
|
+
)
|
|
296
|
+
}
|
|
297
|
+
```
|