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
|
@@ -8,14 +8,13 @@ Rendering a Recharts chart that must inherit the kit's tokens, legend and toolti
|
|
|
8
8
|
|
|
9
9
|
- **Use when:** Rendering a Recharts chart that must inherit the kit's tokens, legend and tooltip chrome.
|
|
10
10
|
- **Avoid when:** The number is a single figure with a trend, or the chart needs a titled card frame.
|
|
11
|
-
- **Consider instead:** `
|
|
11
|
+
- **Consider instead:** `blocks/analytics`
|
|
12
12
|
- **Stability:** stable.
|
|
13
13
|
|
|
14
14
|
## Import
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { ChartContainer } from "themelia-ui/base/chart"
|
|
18
|
-
import "themelia-ui/base/chart.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Optional peers
|
|
@@ -28,7 +27,7 @@ npm install recharts
|
|
|
28
27
|
|
|
29
28
|
## Composition
|
|
30
29
|
|
|
31
|
-
This module
|
|
30
|
+
This module composes `base/typography`.
|
|
32
31
|
|
|
33
32
|
Application policy—routing, fetching, persistence, permissions, and translation—stays
|
|
34
33
|
outside the package and arrives through the public props, callbacks, slots, or accessors below.
|
|
@@ -191,12 +190,49 @@ Extends: `Omit<React.ComponentProps<"div">, "children">`.
|
|
|
191
190
|
|
|
192
191
|
## Preview recipes
|
|
193
192
|
|
|
194
|
-
Preview route:
|
|
193
|
+
Preview route: Analytics — `/analytics`
|
|
194
|
+
|
|
195
|
+
### Compose your own
|
|
196
|
+
|
|
197
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
198
|
+
import { ArrowUpIcon, CreditCardIcon } from "lucide-react"
|
|
199
|
+
|
|
200
|
+
import { Badge } from "themelia-ui/base/badge"
|
|
201
|
+
import { Card } from "themelia-ui/base/cards"
|
|
202
|
+
import { Sparkline } from "themelia-ui/base/chart"
|
|
203
|
+
import { IconBadge } from "themelia-ui/base/display"
|
|
204
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
205
|
+
import { DisplayLabel, Text } from "themelia-ui/base/typography"
|
|
206
|
+
import { Money } from "themelia-ui/primitives"
|
|
207
|
+
|
|
208
|
+
export default function AnalyticsBlueprint() {
|
|
209
|
+
return (
|
|
210
|
+
<Card style={{ maxWidth: "20rem" }}>
|
|
211
|
+
<Stack gap="sm">
|
|
212
|
+
<Stack direction="horizontal" align="center" gap="sm">
|
|
213
|
+
<IconBadge icon={CreditCardIcon} tone="primary" />
|
|
214
|
+
<DisplayLabel>Revenue</DisplayLabel>
|
|
215
|
+
</Stack>
|
|
216
|
+
<Stack direction="horizontal" align="center" justify="between" gap="sm">
|
|
217
|
+
<Money amount={48200} currency="EUR" size="xl" weight="semibold" />
|
|
218
|
+
<Badge tone="success">
|
|
219
|
+
<ArrowUpIcon />
|
|
220
|
+
12.4%
|
|
221
|
+
</Badge>
|
|
222
|
+
</Stack>
|
|
223
|
+
<Sparkline data={[18, 22, 19, 27, 24, 31, 29, 38]} tone="success" label="Revenue rising over eight weeks" />
|
|
224
|
+
<Text size="xs" type="secondary">
|
|
225
|
+
Net of refunds, this quarter
|
|
226
|
+
</Text>
|
|
227
|
+
</Stack>
|
|
228
|
+
</Card>
|
|
229
|
+
)
|
|
230
|
+
}
|
|
231
|
+
```
|
|
195
232
|
|
|
196
233
|
### Chart
|
|
197
234
|
|
|
198
235
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
199
|
-
import type { CSSProperties } from "react"
|
|
200
236
|
import { Area, AreaChart, Bar, BarChart, CartesianGrid, Line, LineChart, XAxis, YAxis } from "recharts"
|
|
201
237
|
|
|
202
238
|
import { Card } from "themelia-ui/base/cards"
|
|
@@ -226,7 +262,7 @@ const CONFIG = {
|
|
|
226
262
|
export default function Chart() {
|
|
227
263
|
return (
|
|
228
264
|
/* Two columns, with the third chart spanning both. */
|
|
229
|
-
<Grid columns={{ base: 1, md: 2 }}
|
|
265
|
+
<Grid columns={{ base: 1, md: 2 }} style={{ width: "100%" }}>
|
|
230
266
|
<Card surface="bordered" title="Revenue vs expenses" description="Bars, with a legend.">
|
|
231
267
|
<ChartContainer config={CONFIG} label="Monthly revenue and expenses, January to June">
|
|
232
268
|
<BarChart data={REVENUE}>
|
|
@@ -257,7 +293,7 @@ export default function Chart() {
|
|
|
257
293
|
<GridCell span="full">
|
|
258
294
|
<Card surface="bordered" title="Cumulative" description="An area, with the line indicator.">
|
|
259
295
|
{/* A wide aspect: 16:9 across the page would be half a screen tall. */}
|
|
260
|
-
<ChartContainer config={CONFIG} label="Cumulative revenue and expenses, January to June" style={{
|
|
296
|
+
<ChartContainer config={CONFIG} label="Cumulative revenue and expenses, January to June" style={{ aspectRatio: "48 / 9" }}>
|
|
261
297
|
<AreaChart data={REVENUE}>
|
|
262
298
|
<CartesianGrid vertical={false} />
|
|
263
299
|
{/* A point scale again — see the note on the line chart's axis. */}
|
|
@@ -292,7 +328,7 @@ const SPARK_FLAT = [11, 12, 11, 13, 12, 12, 13, 12]
|
|
|
292
328
|
|
|
293
329
|
export default function ChartSparkline() {
|
|
294
330
|
return (
|
|
295
|
-
<Grid columns={3}
|
|
331
|
+
<Grid columns={3}>
|
|
296
332
|
<GridCell>
|
|
297
333
|
<Sparkline data={SPARK_UP} tone="success" label="Revenue, trending up" />
|
|
298
334
|
</GridCell>
|
|
@@ -15,7 +15,6 @@ The user picks from a known, closed set — checkbox, radio, switch or select.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { CardCheckboxGroup } from "themelia-ui/base/choice-inputs"
|
|
18
|
-
import "themelia-ui/base/choice-inputs.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -110,8 +109,8 @@ Extends: `Omit<React.ComponentProps<"input">, "type" | "size">`, `Pick<React.Com
|
|
|
110
109
|
|
|
111
110
|
Kind: type.
|
|
112
111
|
|
|
113
|
-
Column cap for card groups. There is no `size` prop:
|
|
114
|
-
|
|
112
|
+
Column cap for card groups. There is no `size` prop: spacing follows the density a scope
|
|
113
|
+
sets.
|
|
115
114
|
|
|
116
115
|
```text
|
|
117
116
|
1 | 2 | 3 | 4
|
|
@@ -632,7 +631,7 @@ export default function PillRadio() {
|
|
|
632
631
|
const [view, setView] = useState<string | null>("grid")
|
|
633
632
|
|
|
634
633
|
return (
|
|
635
|
-
<Stack
|
|
634
|
+
<Stack align="start">
|
|
636
635
|
<PillRadioGroup name="view" options={VIEWS} value={view} onValueChange={setView} allowClear />
|
|
637
636
|
<PillRadioGroup
|
|
638
637
|
name="range"
|
|
@@ -649,7 +648,7 @@ export default function PillRadio() {
|
|
|
649
648
|
}
|
|
650
649
|
```
|
|
651
650
|
|
|
652
|
-
### Type
|
|
651
|
+
### Type has its own factor
|
|
653
652
|
|
|
654
653
|
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
655
654
|
import { Button } from "themelia-ui/base/buttons"
|
|
@@ -660,11 +659,11 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
660
659
|
|
|
661
660
|
export default function TypeFactor() {
|
|
662
661
|
return (
|
|
663
|
-
<Stack
|
|
662
|
+
<Stack>
|
|
664
663
|
<Stack gap="sm">
|
|
665
664
|
<Text type="secondary" size="xs">typography.scale 0.875 — type shrinks, control geometry holds</Text>
|
|
666
665
|
<UIProvider config={{ typography: { scale: 0.875 } }}>
|
|
667
|
-
<Stack direction="horizontal" gap="
|
|
666
|
+
<Stack direction="horizontal" gap="sm" align="center" wrap>
|
|
668
667
|
<Text>Body copy at this factor.</Text>
|
|
669
668
|
<Button>Save</Button>
|
|
670
669
|
<Checkbox label="Check" defaultChecked />
|
|
@@ -674,7 +673,7 @@ export default function TypeFactor() {
|
|
|
674
673
|
<Stack gap="sm">
|
|
675
674
|
<Text type="secondary" size="xs">scale 0.875 + typography.scale 1 — geometry shrinks, type holds</Text>
|
|
676
675
|
<UIProvider config={{ scale: 0.875, typography: { scale: 1 } }}>
|
|
677
|
-
<Stack direction="horizontal" gap="
|
|
676
|
+
<Stack direction="horizontal" gap="sm" align="center" wrap>
|
|
678
677
|
<Text>Body copy at this factor.</Text>
|
|
679
678
|
<Button>Save</Button>
|
|
680
679
|
<Checkbox label="Check" defaultChecked />
|
|
@@ -710,7 +709,7 @@ export default function SelectExample() {
|
|
|
710
709
|
const [country, setCountry] = useState<string | undefined>("nl")
|
|
711
710
|
|
|
712
711
|
return (
|
|
713
|
-
<Stack
|
|
712
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
714
713
|
<FormField label="Billing country">
|
|
715
714
|
<Select options={COUNTRIES} value={country} onValueChange={setCountry} allowClear />
|
|
716
715
|
</FormField>
|
|
@@ -761,7 +760,7 @@ import { Stack } from "themelia-ui/base/structure"
|
|
|
761
760
|
|
|
762
761
|
export default function ToggleRows() {
|
|
763
762
|
return (
|
|
764
|
-
<Stack
|
|
763
|
+
<Stack style={{ maxWidth: "34rem", width: "100%" }}>
|
|
765
764
|
<SwitchCard
|
|
766
765
|
label="Two-factor authentication"
|
|
767
766
|
icon={ShieldIcon}
|
|
@@ -775,7 +774,7 @@ export default function ToggleRows() {
|
|
|
775
774
|
icon={RocketIcon}
|
|
776
775
|
description="Turn on features that are still changing."
|
|
777
776
|
/>
|
|
778
|
-
<Stack gap="
|
|
777
|
+
<Stack gap="sm">
|
|
779
778
|
<ToggleField label="Email notifications" description="A daily digest, sent at 09:00." defaultValue />
|
|
780
779
|
<ToggleField label="Product updates" description="Occasional release notes." />
|
|
781
780
|
<ToggleField
|
|
@@ -15,7 +15,6 @@ Composing a filtered single- or multi-select from its parts, with options alread
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { ComboboxArrow } from "themelia-ui/base/combobox"
|
|
18
|
-
import "themelia-ui/base/combobox.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -367,7 +366,7 @@ function SingleCombobox({ id }: { id?: string }) {
|
|
|
367
366
|
|
|
368
367
|
export default function ComboboxField() {
|
|
369
368
|
return (
|
|
370
|
-
<Stack
|
|
369
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
371
370
|
<FormField label="Plain input, for comparison">
|
|
372
371
|
<Input placeholder="A regular text field" />
|
|
373
372
|
</FormField>
|
|
@@ -463,7 +462,7 @@ function GroupedCombobox({ id }: { id?: string }) {
|
|
|
463
462
|
|
|
464
463
|
export default function ComboboxSelect() {
|
|
465
464
|
return (
|
|
466
|
-
<Stack
|
|
465
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
467
466
|
<FormField label="Country from the list">
|
|
468
467
|
<SelectLikeCombobox />
|
|
469
468
|
</FormField>
|
|
@@ -538,7 +537,7 @@ function MultiCombobox({ id }: { id?: string }) {
|
|
|
538
537
|
|
|
539
538
|
export default function ComboboxMultiple() {
|
|
540
539
|
return (
|
|
541
|
-
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
540
|
+
<Stack gap="sm" style={{ maxWidth: "26rem", width: "100%" }}>
|
|
542
541
|
<FormField label="Ships to" helperText="Type to filter, Backspace to remove the last chip.">
|
|
543
542
|
<MultiCombobox />
|
|
544
543
|
</FormField>
|
|
@@ -15,12 +15,11 @@ A keyboard-first palette lists commands across groups, usually behind a shortcut
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Command } from "themelia-ui/base/command"
|
|
18
|
-
import "themelia-ui/base/command.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module composes `base/dialog`, `base/input-group`, `base/overlay`.
|
|
22
|
+
This module composes `base/dialog`, `base/input-group`, `base/overlay`, `base/typography`.
|
|
24
23
|
|
|
25
24
|
Application policy—routing, fetching, persistence, permissions, and translation—stays
|
|
26
25
|
outside the package and arrives through the public props, callbacks, slots, or accessors below.
|
|
@@ -31,7 +30,8 @@ outside the package and arrives through the public props, callbacks, slots, or a
|
|
|
31
30
|
|
|
32
31
|
Kind: callable.
|
|
33
32
|
|
|
34
|
-
The command palette's root: filtering, keyboard navigation and the rows' shared state.
|
|
33
|
+
The command palette's root: filtering, keyboard navigation and the rows' shared state. It
|
|
34
|
+
sets the rows' type; a group heading and a shortcut take the small step.
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
37
|
({ className, ...props }: CommandProps) => React.JSX.Element
|
|
@@ -73,7 +73,7 @@ Kind: callable.
|
|
|
73
73
|
A captioned block of rows.
|
|
74
74
|
|
|
75
75
|
```text
|
|
76
|
-
({ className, ref, ...props }: React.ComponentProps<typeof CommandPrimitive.Group> & Pick<React.ComponentProps<typeof CommandPrimitive.Group>, "heading">) => React.JSX.Element
|
|
76
|
+
({ className, ref, heading, ...props }: React.ComponentProps<typeof CommandPrimitive.Group> & Pick<React.ComponentProps<typeof CommandPrimitive.Group>, "heading">) => React.JSX.Element
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
### `CommandInput`
|
|
@@ -218,8 +218,8 @@ export default function CommandDialogExample() {
|
|
|
218
218
|
}, [])
|
|
219
219
|
|
|
220
220
|
return (
|
|
221
|
-
<Stack direction="horizontal"
|
|
222
|
-
<Button
|
|
221
|
+
<Stack direction="horizontal" align="center">
|
|
222
|
+
<Button appearance="outline" tone="neutral" onClick={() => setOpen(true)}>
|
|
223
223
|
Open palette
|
|
224
224
|
</Button>
|
|
225
225
|
<Text size="sm" type="secondary">or press ⌘K</Text>
|
|
@@ -15,12 +15,11 @@ The trigger is a right-click on a region that has its own actions.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { ContextMenu } from "themelia-ui/base/context-menu"
|
|
18
|
-
import "themelia-ui/base/context-menu.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module composes `base/dropdown-menu`.
|
|
22
|
+
This module composes `base/dropdown-menu`, `base/typography`.
|
|
24
23
|
|
|
25
24
|
Application policy—routing, fetching, persistence, permissions, and translation—stays
|
|
26
25
|
outside the package and arrives through the public props, callbacks, slots, or accessors below.
|
|
@@ -15,7 +15,6 @@ A value exists to be copied — an id, key, or reference — and needs copy feed
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Copyable } from "themelia-ui/base/copyable"
|
|
18
|
-
import "themelia-ui/base/copyable.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -125,14 +124,14 @@ import { Email, MonoValue } from "themelia-ui/primitives"
|
|
|
125
124
|
export default function CopyableExample() {
|
|
126
125
|
return (
|
|
127
126
|
<Card surface="bordered" style={{ maxWidth: "26rem", width: "100%" }}>
|
|
128
|
-
<Stack gap="
|
|
129
|
-
<Stack gap="
|
|
127
|
+
<Stack gap="sm">
|
|
128
|
+
<Stack gap="sm">
|
|
130
129
|
<Text size="xs" type="secondary">
|
|
131
130
|
API key
|
|
132
131
|
</Text>
|
|
133
132
|
<Copyable value="key_live_9f2c4b1e77a0d3f8b6c5a41d0e73b28c9f4610d7" mono truncate />
|
|
134
133
|
</Stack>
|
|
135
|
-
<Stack gap="
|
|
134
|
+
<Stack gap="sm">
|
|
136
135
|
<Text size="xs" type="secondary">
|
|
137
136
|
Billing contact
|
|
138
137
|
</Text>
|
|
@@ -141,7 +140,7 @@ export default function CopyableExample() {
|
|
|
141
140
|
displayValue={<Email value="jane@northwind.example" />}
|
|
142
141
|
/>
|
|
143
142
|
</Stack>
|
|
144
|
-
<Stack gap="
|
|
143
|
+
<Stack gap="sm">
|
|
145
144
|
<Text size="xs" type="secondary">
|
|
146
145
|
Workspace id
|
|
147
146
|
</Text>
|
|
@@ -170,7 +169,7 @@ function ShareLink() {
|
|
|
170
169
|
|
|
171
170
|
return (
|
|
172
171
|
<Button
|
|
173
|
-
|
|
172
|
+
appearance="outline"
|
|
174
173
|
tone="neutral"
|
|
175
174
|
onClick={() => void copy(url)}
|
|
176
175
|
>
|
|
@@ -181,7 +180,7 @@ function ShareLink() {
|
|
|
181
180
|
|
|
182
181
|
export default function UseCopyToClipboard() {
|
|
183
182
|
return (
|
|
184
|
-
<Stack direction="horizontal">
|
|
183
|
+
<Stack gap="sm" direction="horizontal">
|
|
185
184
|
<ShareLink />
|
|
186
185
|
</Stack>
|
|
187
186
|
)
|
|
@@ -15,7 +15,6 @@ The user picks a date, range, month or time from a calendar surface.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Calendar } from "themelia-ui/base/date-pickers"
|
|
18
|
-
import "themelia-ui/base/date-pickers.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -449,12 +448,12 @@ const MARCH = new Date("2026-03-01T00:00:00")
|
|
|
449
448
|
|
|
450
449
|
export default function CalendarLocale() {
|
|
451
450
|
return (
|
|
452
|
-
<Stack direction="horizontal"
|
|
453
|
-
<Stack gap="
|
|
451
|
+
<Stack direction="horizontal" wrap align="start">
|
|
452
|
+
<Stack gap="sm" align="start">
|
|
454
453
|
<Text size="xs" type="secondary">built-in, Monday first</Text>
|
|
455
454
|
<Calendar mode="single" month={MARCH} />
|
|
456
455
|
</Stack>
|
|
457
|
-
<Stack gap="
|
|
456
|
+
<Stack gap="sm" align="start">
|
|
458
457
|
<Text size="xs" type="secondary">dates: {"{ locale: de, weekStartsOn: 0 }"}</Text>
|
|
459
458
|
<UIProvider config={{ dates: { locale: de, weekStartsOn: 0 } }}>
|
|
460
459
|
<Calendar mode="single" month={MARCH} />
|
|
@@ -486,7 +485,7 @@ export default function DatePickerExample() {
|
|
|
486
485
|
const presets = useMemo(() => createRangePresets({ weekStartsOn }), [weekStartsOn])
|
|
487
486
|
|
|
488
487
|
return (
|
|
489
|
-
<Stack
|
|
488
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
490
489
|
<FormField label="Due date">
|
|
491
490
|
<DatePicker value={day} onValueChange={(next) => setDay(next as Date)} clearable />
|
|
492
491
|
</FormField>
|
|
@@ -538,7 +537,7 @@ export default function DatePickerModes() {
|
|
|
538
537
|
const [month, setMonth] = useState<MonthYearValue | undefined>(undefined)
|
|
539
538
|
|
|
540
539
|
return (
|
|
541
|
-
<Stack direction="horizontal"
|
|
540
|
+
<Stack direction="horizontal" wrap align="start">
|
|
542
541
|
<SingleDatePicker value={day} onValueChange={setDay} />
|
|
543
542
|
<RangeDatePicker value={range} onValueChange={setRange} />
|
|
544
543
|
<MultipleDatePicker value={days} onValueChange={setDays} />
|
|
@@ -565,7 +564,7 @@ export default function Time() {
|
|
|
565
564
|
const [instant, setInstant] = useState<string | undefined>("2026-03-12T09:30:00.000Z")
|
|
566
565
|
|
|
567
566
|
return (
|
|
568
|
-
<Stack
|
|
567
|
+
<Stack style={{ maxWidth: "34rem", width: "100%" }}>
|
|
569
568
|
<FormField label="Start time">
|
|
570
569
|
<TimePicker value={time} onValueChange={setTime} minuteStep={15} />
|
|
571
570
|
</FormField>
|
|
@@ -15,7 +15,6 @@ Documenting or extending the dialog anatomy itself inside base.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { DialogContent } from "themelia-ui/base/dialog"
|
|
18
|
-
import "themelia-ui/base/dialog.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -69,9 +68,9 @@ import { Input } from "themelia-ui/base/text-inputs"
|
|
|
69
68
|
|
|
70
69
|
export default function Dialog() {
|
|
71
70
|
return (
|
|
72
|
-
<Stack direction="horizontal">
|
|
71
|
+
<Stack gap="sm" direction="horizontal">
|
|
73
72
|
<Overlay>
|
|
74
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
73
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
75
74
|
Open dialog
|
|
76
75
|
</OverlayTrigger>
|
|
77
76
|
<DialogContent>
|
|
@@ -85,7 +84,7 @@ export default function Dialog() {
|
|
|
85
84
|
</FormField>
|
|
86
85
|
</OverlayBody>
|
|
87
86
|
<OverlayFooter>
|
|
88
|
-
<OverlayClose render={<Button tone="neutral"
|
|
87
|
+
<OverlayClose render={<Button tone="neutral" appearance="outline" />}>
|
|
89
88
|
Cancel
|
|
90
89
|
</OverlayClose>
|
|
91
90
|
<OverlayClose render={<Button />}>
|
|
@@ -112,9 +111,9 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
112
111
|
|
|
113
112
|
export default function OverlayBackdrop() {
|
|
114
113
|
return (
|
|
115
|
-
<Stack direction="horizontal"
|
|
114
|
+
<Stack direction="horizontal" wrap align="center">
|
|
116
115
|
<Overlay>
|
|
117
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
116
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
118
117
|
Default scrim
|
|
119
118
|
</OverlayTrigger>
|
|
120
119
|
<DialogContent>
|
|
@@ -127,7 +126,7 @@ export default function OverlayBackdrop() {
|
|
|
127
126
|
|
|
128
127
|
<UIProvider config={{ overlay: { backdropBlur: 4 } }}>
|
|
129
128
|
<Overlay>
|
|
130
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
129
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
131
130
|
Blurred scrim
|
|
132
131
|
</OverlayTrigger>
|
|
133
132
|
<DialogContent>
|
|
@@ -62,7 +62,7 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
62
62
|
|
|
63
63
|
export default function DirectionSlot() {
|
|
64
64
|
return (
|
|
65
|
-
<Stack
|
|
65
|
+
<Stack>
|
|
66
66
|
<DirectionProvider direction="rtl">
|
|
67
67
|
<div dir="rtl">
|
|
68
68
|
<ContentBlock surface="card" title="اتجاه من اليمين إلى اليسار">
|