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 @@ Writing table markup directly, with rows you control and no sorting or selection
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Table } from "themelia-ui/base/table"
|
|
18
|
-
import "themelia-ui/base/table.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -202,7 +201,66 @@ Kind: interface.
|
|
|
202
201
|
|
|
203
202
|
## Preview recipes
|
|
204
203
|
|
|
205
|
-
Preview route:
|
|
204
|
+
Preview route: Timelines, onboarding & admin — `/blocks-admin`
|
|
205
|
+
|
|
206
|
+
### Compose your own permissions
|
|
207
|
+
|
|
208
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
209
|
+
import { CheckIcon } from "lucide-react"
|
|
210
|
+
|
|
211
|
+
import { Badge } from "themelia-ui/base/badge"
|
|
212
|
+
import { VisuallyHidden } from "themelia-ui/base/display"
|
|
213
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "themelia-ui/base/table"
|
|
214
|
+
import { Text } from "themelia-ui/base/typography"
|
|
215
|
+
|
|
216
|
+
const ROLES = ["Owner", "Editor", "Viewer"] as const
|
|
217
|
+
const PERMISSIONS: { name: string; granted: readonly boolean[] }[] = [
|
|
218
|
+
{ name: "Edit projects", granted: [true, true, false] },
|
|
219
|
+
{ name: "Manage billing", granted: [true, false, false] },
|
|
220
|
+
{ name: "Export data", granted: [true, true, true] },
|
|
221
|
+
]
|
|
222
|
+
|
|
223
|
+
export default function RolesBlueprint() {
|
|
224
|
+
return (
|
|
225
|
+
<Table>
|
|
226
|
+
<TableHeader>
|
|
227
|
+
<TableRow>
|
|
228
|
+
<TableHead>Permission</TableHead>
|
|
229
|
+
{ROLES.map((role) => (
|
|
230
|
+
<TableHead key={role} align="center">
|
|
231
|
+
{role}
|
|
232
|
+
</TableHead>
|
|
233
|
+
))}
|
|
234
|
+
</TableRow>
|
|
235
|
+
</TableHeader>
|
|
236
|
+
<TableBody>
|
|
237
|
+
{PERMISSIONS.map((permission) => (
|
|
238
|
+
<TableRow key={permission.name}>
|
|
239
|
+
<TableCell>{permission.name}</TableCell>
|
|
240
|
+
{permission.granted.map((granted, index) => (
|
|
241
|
+
<TableCell key={ROLES[index]} align="center">
|
|
242
|
+
{granted ? (
|
|
243
|
+
<Badge tone="success">
|
|
244
|
+
<CheckIcon aria-hidden />
|
|
245
|
+
<VisuallyHidden>Granted</VisuallyHidden>
|
|
246
|
+
</Badge>
|
|
247
|
+
) : (
|
|
248
|
+
<>
|
|
249
|
+
<Text tag="span" type="secondary" aria-hidden>
|
|
250
|
+
—
|
|
251
|
+
</Text>
|
|
252
|
+
<VisuallyHidden>Not granted</VisuallyHidden>
|
|
253
|
+
</>
|
|
254
|
+
)}
|
|
255
|
+
</TableCell>
|
|
256
|
+
))}
|
|
257
|
+
</TableRow>
|
|
258
|
+
))}
|
|
259
|
+
</TableBody>
|
|
260
|
+
</Table>
|
|
261
|
+
)
|
|
262
|
+
}
|
|
263
|
+
```
|
|
206
264
|
|
|
207
265
|
### Sortable columns
|
|
208
266
|
|
|
@@ -298,7 +356,7 @@ import styles from "./table-empty.module.css"
|
|
|
298
356
|
|
|
299
357
|
export default function TableEmptyExample() {
|
|
300
358
|
return (
|
|
301
|
-
<Stack
|
|
359
|
+
<Stack style={{ width: "100%" }}>
|
|
302
360
|
<Table>
|
|
303
361
|
<TableHeader>
|
|
304
362
|
<TableRow>
|
|
@@ -15,12 +15,11 @@ Free text is typed — plain, multiline, password, search or slug.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { FieldShell } from "themelia-ui/base/text-inputs"
|
|
18
|
-
import "themelia-ui/base/text-inputs.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module
|
|
22
|
+
This module composes `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.
|
|
@@ -339,29 +338,29 @@ Preview route: Form field — `/form-field`
|
|
|
339
338
|
import { Stack } from "themelia-ui/base/structure"
|
|
340
339
|
import { Input, NativeSelect } from "themelia-ui/base/text-inputs"
|
|
341
340
|
import { MonoValue } from "themelia-ui/primitives"
|
|
342
|
-
import {
|
|
341
|
+
import { UIScope } from "themelia-ui/ui-provider"
|
|
343
342
|
|
|
344
343
|
export default function FormsScale() {
|
|
345
344
|
return (
|
|
346
|
-
<Stack
|
|
347
|
-
{[
|
|
348
|
-
<
|
|
349
|
-
<Stack direction="horizontal" gap="
|
|
345
|
+
<Stack style={{ width: "100%" }}>
|
|
346
|
+
{(["compact", "default", "comfortable"] as const).map((density) => (
|
|
347
|
+
<UIScope key={density} config={{ density }}>
|
|
348
|
+
<Stack direction="horizontal" gap="sm" align="center" justify="start">
|
|
350
349
|
{/* Widths on the wrappers: Input's style lands on the inner control, not its frame. */}
|
|
351
|
-
<MonoValue size="xs" style={{ width: "
|
|
352
|
-
{
|
|
350
|
+
<MonoValue size="xs" style={{ width: "6rem", flexShrink: 0 }}>
|
|
351
|
+
{density}
|
|
353
352
|
</MonoValue>
|
|
354
353
|
{/* Named even in a geometry demo: a placeholder is not a label. */}
|
|
355
354
|
<div style={{ width: "12rem", flexShrink: 0 }}>
|
|
356
|
-
<Input placeholder="Field" aria-label={`Example field at
|
|
355
|
+
<Input placeholder="Field" aria-label={`Example field at ${density} density`} />
|
|
357
356
|
</div>
|
|
358
357
|
<div style={{ width: "9rem", flexShrink: 0 }}>
|
|
359
|
-
<NativeSelect defaultValue="a" aria-label={`Example select at
|
|
358
|
+
<NativeSelect defaultValue="a" aria-label={`Example select at ${density} density`}>
|
|
360
359
|
<option value="a">Option</option>
|
|
361
360
|
</NativeSelect>
|
|
362
361
|
</div>
|
|
363
362
|
</Stack>
|
|
364
|
-
</
|
|
363
|
+
</UIScope>
|
|
365
364
|
))}
|
|
366
365
|
</Stack>
|
|
367
366
|
)
|
|
@@ -378,7 +377,7 @@ import { Input, NativeSelect, Textarea } from "themelia-ui/base/text-inputs"
|
|
|
378
377
|
|
|
379
378
|
export default function SharedSurface() {
|
|
380
379
|
return (
|
|
381
|
-
<Stack
|
|
380
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
382
381
|
<FormField label="Input">
|
|
383
382
|
<Input placeholder="Northwind Traders" />
|
|
384
383
|
</FormField>
|
|
@@ -412,7 +411,7 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
412
411
|
export default function IphoneInputZoom() {
|
|
413
412
|
return (
|
|
414
413
|
<UIProvider config={{ forms: { preventIPhoneZoom: true } }}>
|
|
415
|
-
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
414
|
+
<Stack gap="sm" style={{ maxWidth: "26rem", width: "100%" }}>
|
|
416
415
|
<FormField label="Enabled on iPhones"><Input placeholder="16px minimum on iPhone" /></FormField>
|
|
417
416
|
<FormField label="iPhone textarea"><Textarea /></FormField>
|
|
418
417
|
<FormField label="iPhone native select"><NativeSelect><option>First option</option></NativeSelect></FormField>
|
|
@@ -436,7 +435,7 @@ import { Input, NativeSelect } from "themelia-ui/base/text-inputs"
|
|
|
436
435
|
|
|
437
436
|
export default function States() {
|
|
438
437
|
return (
|
|
439
|
-
<Stack
|
|
438
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
440
439
|
<FormField label="Default" helperText="The supporting line.">
|
|
441
440
|
<Input placeholder="name@example.com" />
|
|
442
441
|
</FormField>
|
|
@@ -471,7 +470,7 @@ export default function Affordances() {
|
|
|
471
470
|
const [search, setSearch] = useState("shipping")
|
|
472
471
|
|
|
473
472
|
return (
|
|
474
|
-
<Stack
|
|
473
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
475
474
|
<FormField label="Search" helperText="Clear appears once there is a value.">
|
|
476
475
|
<SearchInput
|
|
477
476
|
value={search}
|
|
@@ -513,7 +512,7 @@ function SlugFieldDemo() {
|
|
|
513
512
|
const [title, setTitle] = useState("Northwind Traders — Q4 Report & Notes")
|
|
514
513
|
|
|
515
514
|
return (
|
|
516
|
-
<Stack
|
|
515
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
517
516
|
<FormField label="Title">
|
|
518
517
|
<Input value={title} onChange={(event) => setTitle(event.target.value)} />
|
|
519
518
|
</FormField>
|
|
@@ -541,7 +540,7 @@ import { Textarea } from "themelia-ui/base/text-inputs"
|
|
|
541
540
|
|
|
542
541
|
export default function TextareaExample() {
|
|
543
542
|
return (
|
|
544
|
-
<Stack
|
|
543
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
545
544
|
<FormField label="Notes" helperText="Plain multi-line text.">
|
|
546
545
|
<Textarea rows={4} placeholder="Anything worth recording." />
|
|
547
546
|
</FormField>
|
|
@@ -8,14 +8,13 @@ Composing a generic vertical sequence of dated entries.
|
|
|
8
8
|
|
|
9
9
|
- **Use when:** Composing a generic vertical sequence of dated entries.
|
|
10
10
|
- **Avoid when:** The sequence is a changelog, milestones or a step tracker.
|
|
11
|
-
- **Consider instead:** `
|
|
11
|
+
- **Consider instead:** `blocks/timelines`, `features/activities`
|
|
12
12
|
- **Stability:** stable.
|
|
13
13
|
|
|
14
14
|
## Import
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Stepper } from "themelia-ui/base/timeline"
|
|
18
|
-
import "themelia-ui/base/timeline.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -159,7 +158,49 @@ takes the primary tone of `current`; `completed` is an outcome (a milestone that
|
|
|
159
158
|
|
|
160
159
|
## Preview recipes
|
|
161
160
|
|
|
162
|
-
Preview route:
|
|
161
|
+
Preview route: Timelines, onboarding & admin — `/blocks-admin`
|
|
162
|
+
|
|
163
|
+
### Compose your own timeline
|
|
164
|
+
|
|
165
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
166
|
+
import { RocketIcon, WrenchIcon } from "lucide-react"
|
|
167
|
+
|
|
168
|
+
import { Badge } from "themelia-ui/base/badge"
|
|
169
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
170
|
+
import { Timeline, type TimelineItem } from "themelia-ui/base/timeline"
|
|
171
|
+
import { MonoValue } from "themelia-ui/primitives"
|
|
172
|
+
|
|
173
|
+
const RELEASES: TimelineItem[] = [
|
|
174
|
+
{
|
|
175
|
+
id: "3.1.0",
|
|
176
|
+
title: "Saved views",
|
|
177
|
+
timestamp: <MonoValue size="xs" type="secondary">v3.1.0</MonoValue>,
|
|
178
|
+
icon: RocketIcon,
|
|
179
|
+
status: "success",
|
|
180
|
+
description: "Filters and columns can be saved and shared with the team.",
|
|
181
|
+
children: (
|
|
182
|
+
<Stack direction="horizontal" gap="sm">
|
|
183
|
+
<Badge tone="success">Added</Badge>
|
|
184
|
+
<Badge tone="neutral">Tables</Badge>
|
|
185
|
+
</Stack>
|
|
186
|
+
),
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: "3.0.2",
|
|
190
|
+
title: "Faster exports",
|
|
191
|
+
timestamp: <MonoValue size="xs" type="secondary">v3.0.2</MonoValue>,
|
|
192
|
+
icon: WrenchIcon,
|
|
193
|
+
status: "neutral",
|
|
194
|
+
description: "Large exports stream instead of waiting for the whole file.",
|
|
195
|
+
},
|
|
196
|
+
]
|
|
197
|
+
|
|
198
|
+
export default function ChangelogBlueprint() {
|
|
199
|
+
return (
|
|
200
|
+
<Timeline items={RELEASES} />
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
```
|
|
163
204
|
|
|
164
205
|
### An order's progress
|
|
165
206
|
|
|
@@ -288,7 +329,7 @@ import { WIZARD } from "./data"
|
|
|
288
329
|
|
|
289
330
|
export default function StepperDefault() {
|
|
290
331
|
return (
|
|
291
|
-
<Stack
|
|
332
|
+
<Stack>
|
|
292
333
|
<Stepper steps={WIZARD} />
|
|
293
334
|
<Stepper variant="trail" steps={WIZARD} />
|
|
294
335
|
</Stack>
|
|
@@ -15,12 +15,11 @@ A message is transient, non-blocking, and reports the outcome of an action.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Toaster } from "themelia-ui/base/toaster"
|
|
18
|
-
import "themelia-ui/base/toaster.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module
|
|
22
|
+
This module composes `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.
|
|
@@ -177,7 +176,39 @@ One queue of toasts, its timers, and the `toast()` bound to it.
|
|
|
177
176
|
|
|
178
177
|
## Preview recipes
|
|
179
178
|
|
|
180
|
-
Preview route:
|
|
179
|
+
Preview route: Cart, checkout & billing — `/blocks-commerce`
|
|
180
|
+
|
|
181
|
+
### Compose your own
|
|
182
|
+
|
|
183
|
+
```tsx fragment — excerpt from the live preview; surrounding values are supplied by the application
|
|
184
|
+
import { Button } from "themelia-ui/base/buttons"
|
|
185
|
+
import { Card } from "themelia-ui/base/cards"
|
|
186
|
+
import { MetadataList } from "themelia-ui/base/display"
|
|
187
|
+
import { Stack } from "themelia-ui/base/structure"
|
|
188
|
+
import { toast } from "themelia-ui/base/toaster"
|
|
189
|
+
import { Money } from "themelia-ui/primitives"
|
|
190
|
+
|
|
191
|
+
export default function CartSummaryBlueprint() {
|
|
192
|
+
return (
|
|
193
|
+
<Card title="Order summary" description="3 items" style={{ maxWidth: "24rem" }}>
|
|
194
|
+
<Stack>
|
|
195
|
+
<MetadataList
|
|
196
|
+
layout="rows"
|
|
197
|
+
items={[
|
|
198
|
+
{ label: "Subtotal", value: <Money amount={258} currency="EUR" /> },
|
|
199
|
+
{ label: "Shipping", value: <Money amount={4.8} currency="EUR" /> },
|
|
200
|
+
{ label: "Tax", value: <Money amount={51.6} currency="EUR" /> },
|
|
201
|
+
{ label: "Total", value: <Money amount={314.4} currency="EUR" weight="semibold" /> },
|
|
202
|
+
]}
|
|
203
|
+
/>
|
|
204
|
+
<Button onClick={() => toast("Checkout requested", { description: "Preview callback — connect this action to your application." })}>
|
|
205
|
+
Check out
|
|
206
|
+
</Button>
|
|
207
|
+
</Stack>
|
|
208
|
+
</Card>
|
|
209
|
+
)
|
|
210
|
+
}
|
|
211
|
+
```
|
|
181
212
|
|
|
182
213
|
### Statuses
|
|
183
214
|
|
|
@@ -189,24 +220,24 @@ import { toast } from "themelia-ui/base/toaster"
|
|
|
189
220
|
export default function ToastStatuses() {
|
|
190
221
|
return (
|
|
191
222
|
<Stack direction="horizontal" gap="sm" wrap>
|
|
192
|
-
<Button
|
|
223
|
+
<Button appearance="outline" tone="neutral" onClick={() => toast("Draft saved")}>
|
|
193
224
|
Neutral
|
|
194
225
|
</Button>
|
|
195
226
|
<Button
|
|
196
|
-
|
|
227
|
+
appearance="outline"
|
|
197
228
|
tone="neutral"
|
|
198
229
|
onClick={() => toast.success("Invoice sent", { description: "Northwind Traders · $1,299.50" })}
|
|
199
230
|
>
|
|
200
231
|
Success
|
|
201
232
|
</Button>
|
|
202
|
-
<Button
|
|
233
|
+
<Button appearance="outline" tone="neutral" onClick={() => toast.info("Two seats left on this plan")}>
|
|
203
234
|
Info
|
|
204
235
|
</Button>
|
|
205
|
-
<Button
|
|
236
|
+
<Button appearance="outline" tone="neutral" onClick={() => toast.warning("Your card expires next month")}>
|
|
206
237
|
Warning
|
|
207
238
|
</Button>
|
|
208
239
|
<Button
|
|
209
|
-
|
|
240
|
+
appearance="outline"
|
|
210
241
|
tone="neutral"
|
|
211
242
|
onClick={() => toast.error("Could not reach the server", { description: "Retrying in 30 seconds." })}
|
|
212
243
|
>
|
|
@@ -228,7 +259,7 @@ export default function ToastActions() {
|
|
|
228
259
|
return (
|
|
229
260
|
<Stack direction="horizontal" gap="sm" wrap>
|
|
230
261
|
<Button
|
|
231
|
-
|
|
262
|
+
appearance="outline"
|
|
232
263
|
tone="neutral"
|
|
233
264
|
onClick={() =>
|
|
234
265
|
toast("Invoice deleted", {
|
|
@@ -241,7 +272,7 @@ export default function ToastActions() {
|
|
|
241
272
|
With undo
|
|
242
273
|
</Button>
|
|
243
274
|
<Button
|
|
244
|
-
|
|
275
|
+
appearance="outline"
|
|
245
276
|
tone="neutral"
|
|
246
277
|
onClick={() =>
|
|
247
278
|
toast.warning("Discard unsaved changes?", {
|
|
@@ -271,7 +302,7 @@ export default function ToastPromise() {
|
|
|
271
302
|
return (
|
|
272
303
|
<Stack direction="horizontal" gap="sm" wrap>
|
|
273
304
|
<Button
|
|
274
|
-
|
|
305
|
+
appearance="outline"
|
|
275
306
|
tone="neutral"
|
|
276
307
|
onClick={() =>
|
|
277
308
|
void toast.promise(wait(1800), {
|
|
@@ -284,7 +315,7 @@ export default function ToastPromise() {
|
|
|
284
315
|
Resolves
|
|
285
316
|
</Button>
|
|
286
317
|
<Button
|
|
287
|
-
|
|
318
|
+
appearance="outline"
|
|
288
319
|
tone="neutral"
|
|
289
320
|
onClick={() =>
|
|
290
321
|
void toast
|
|
@@ -15,12 +15,11 @@ A control holds a pressed state, alone or as one of a mutually exclusive group.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Toggle } from "themelia-ui/base/toggle"
|
|
18
|
-
import "themelia-ui/base/toggle.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module
|
|
22
|
+
This module composes `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.
|
|
@@ -37,7 +36,7 @@ with the next one. Inside a `ToggleGroup`, `value` names the toggle, and the gro
|
|
|
37
36
|
into its own value; outside a group it is unused.
|
|
38
37
|
|
|
39
38
|
```text
|
|
40
|
-
({
|
|
39
|
+
({ appearance, className, ...props }: ToggleProps) => import("react").JSX.Element
|
|
41
40
|
```
|
|
42
41
|
|
|
43
42
|
### `ToggleGroup`
|
|
@@ -71,7 +70,7 @@ Extends: `TogglePrimitive.Props`, `Pick<TogglePrimitive.Props, "pressed" | "defa
|
|
|
71
70
|
|
|
72
71
|
| member | required | type | description / documented default |
|
|
73
72
|
| --- | :-: | --- | --- |
|
|
74
|
-
| `
|
|
73
|
+
| `appearance` | no | `"ghost" \| "outline"` | Sunk when engaged, or outlined. Match whatever sits beside it in the row — `outline`<br>for a lone control, `ghost` inside a group. |
|
|
75
74
|
|
|
76
75
|
## Preview recipes
|
|
77
76
|
|
|
@@ -91,11 +90,11 @@ export default function ToggleExample() {
|
|
|
91
90
|
const [bold, setBold] = useState(false)
|
|
92
91
|
|
|
93
92
|
return (
|
|
94
|
-
<Stack direction="horizontal"
|
|
93
|
+
<Stack direction="horizontal" align="center">
|
|
95
94
|
<Toggle pressed={bold} onPressedChange={setBold} aria-label="Bold">
|
|
96
95
|
<BoldIcon />
|
|
97
96
|
</Toggle>
|
|
98
|
-
<Toggle
|
|
97
|
+
<Toggle appearance="outline" aria-label="Italic">
|
|
99
98
|
<ItalicIcon />
|
|
100
99
|
</Toggle>
|
|
101
100
|
<Toggle disabled aria-label="Underline">
|
|
@@ -124,8 +123,8 @@ export default function ToggleGroupExample() {
|
|
|
124
123
|
const [align, setAlign] = useState("left")
|
|
125
124
|
|
|
126
125
|
return (
|
|
127
|
-
<Stack
|
|
128
|
-
<Stack gap="
|
|
126
|
+
<Stack>
|
|
127
|
+
<Stack gap="sm" align="start">
|
|
129
128
|
<Text size="xs" type="secondary">multiple — several at once</Text>
|
|
130
129
|
<ToggleGroup multiple value={marks} onValueChange={setMarks}>
|
|
131
130
|
<Toggle value="bold" aria-label="Bold"><BoldIcon /></Toggle>
|
|
@@ -134,7 +133,7 @@ export default function ToggleGroupExample() {
|
|
|
134
133
|
</ToggleGroup>
|
|
135
134
|
</Stack>
|
|
136
135
|
|
|
137
|
-
<Stack gap="
|
|
136
|
+
<Stack gap="sm" align="start">
|
|
138
137
|
<Text size="xs" type="secondary">one at a time</Text>
|
|
139
138
|
<ToggleGroup
|
|
140
139
|
value={[align]}
|
|
@@ -146,11 +145,11 @@ export default function ToggleGroupExample() {
|
|
|
146
145
|
</ToggleGroup>
|
|
147
146
|
</Stack>
|
|
148
147
|
|
|
149
|
-
<Stack gap="
|
|
148
|
+
<Stack gap="sm" align="start">
|
|
150
149
|
<Text size="xs" type="secondary">attached={"{false}"} — separate buttons</Text>
|
|
151
150
|
<ToggleGroup attached={false} multiple>
|
|
152
|
-
<Toggle value="a"
|
|
153
|
-
<Toggle value="b"
|
|
151
|
+
<Toggle value="a" appearance="outline">Day</Toggle>
|
|
152
|
+
<Toggle value="b" appearance="outline">Week</Toggle>
|
|
154
153
|
</ToggleGroup>
|
|
155
154
|
</Stack>
|
|
156
155
|
</Stack>
|
|
@@ -15,12 +15,11 @@ A persistent group of related actions or controls needs one tab stop and arrow-k
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Toolbar } from "themelia-ui/base/toolbar"
|
|
18
|
-
import "themelia-ui/base/toolbar.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module composes `base/buttons`.
|
|
22
|
+
This module composes `base/buttons`, `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.
|
|
@@ -45,17 +44,17 @@ names the set.
|
|
|
45
44
|
Kind: callable.
|
|
46
45
|
|
|
47
46
|
A toolbar item rendered through the kit Button: Base UI owns the navigation behaviour, the
|
|
48
|
-
Button its look. It takes `tone`, `
|
|
47
|
+
Button its look. It takes `tone`, `appearance`, `iconOnly`, `loading` and `render`.
|
|
49
48
|
|
|
50
49
|
```text
|
|
51
|
-
({ render, tone,
|
|
50
|
+
({ render, tone, appearance, iconOnly, loading, fullWidth, className, ...props }: ToolbarButtonProps) => React.JSX.Element
|
|
52
51
|
```
|
|
53
52
|
|
|
54
53
|
### `ToolbarButtonProps`
|
|
55
54
|
|
|
56
55
|
Kind: interface.
|
|
57
56
|
|
|
58
|
-
Extends: `Omit<ToolbarPrimitive.Button.Props, "render">`, `Pick<ButtonProps, "tone" | "
|
|
57
|
+
Extends: `Omit<ToolbarPrimitive.Button.Props, "render">`, `Pick<ButtonProps, "tone" | "appearance" | "iconOnly" | "loading" | "fullWidth">`.
|
|
59
58
|
|
|
60
59
|
| member | required | type | description / documented default |
|
|
61
60
|
| --- | :-: | --- | --- |
|
|
@@ -157,7 +156,7 @@ import {
|
|
|
157
156
|
|
|
158
157
|
export default function ToolbarExample() {
|
|
159
158
|
return (
|
|
160
|
-
<Stack direction="horizontal">
|
|
159
|
+
<Stack gap="sm" direction="horizontal">
|
|
161
160
|
<Toolbar aria-label="Formatting">
|
|
162
161
|
<ToolbarGroup>
|
|
163
162
|
<ToolbarButton iconOnly aria-label="Bold">
|
|
@@ -177,7 +176,7 @@ export default function ToolbarExample() {
|
|
|
177
176
|
</ToolbarButton>
|
|
178
177
|
</ToolbarGroup>
|
|
179
178
|
<ToolbarSeparator />
|
|
180
|
-
<ToolbarInput aria-label="Font size" defaultValue="14" inputMode="numeric" style={{ width: "
|
|
179
|
+
<ToolbarInput aria-label="Font size" defaultValue="14" inputMode="numeric" style={{ width: "4rem" }} />
|
|
181
180
|
<ToolbarLink
|
|
182
181
|
href="#/toolbar"
|
|
183
182
|
onClick={(event) => {
|
|
@@ -203,7 +202,7 @@ import { Toolbar, ToolbarButton } from "themelia-ui/base/toolbar"
|
|
|
203
202
|
|
|
204
203
|
export default function ToolbarOrientation() {
|
|
205
204
|
return (
|
|
206
|
-
<Stack direction="horizontal"
|
|
205
|
+
<Stack direction="horizontal" align="start">
|
|
207
206
|
<Toolbar aria-label="History" orientation="vertical">
|
|
208
207
|
<ToolbarButton iconOnly aria-label="Undo">
|
|
209
208
|
<Undo2Icon />
|
|
@@ -15,12 +15,11 @@ A short, non-essential hint labels a control on hover or focus.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Tooltip } from "themelia-ui/base/tooltip"
|
|
18
|
-
import "themelia-ui/base/tooltip.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module
|
|
22
|
+
This module composes `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.
|
|
@@ -82,22 +81,22 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "themelia-ui/base/toolti
|
|
|
82
81
|
|
|
83
82
|
export default function TooltipExample() {
|
|
84
83
|
return (
|
|
85
|
-
<Stack direction="horizontal"
|
|
84
|
+
<Stack direction="horizontal" align="center" wrap>
|
|
86
85
|
<Tooltip>
|
|
87
|
-
<TooltipTrigger render={<Button
|
|
86
|
+
<TooltipTrigger render={<Button appearance="outline" tone="neutral" />}>
|
|
88
87
|
Hover or focus
|
|
89
88
|
</TooltipTrigger>
|
|
90
89
|
<TooltipContent>Charged on the first of the month.</TooltipContent>
|
|
91
90
|
</Tooltip>
|
|
92
91
|
|
|
93
92
|
<Tooltip>
|
|
94
|
-
<TooltipTrigger render={<Button
|
|
93
|
+
<TooltipTrigger render={<Button appearance="ghost" tone="neutral" iconOnly aria-label="About billing" />}>
|
|
95
94
|
<InfoIcon />
|
|
96
95
|
</TooltipTrigger>
|
|
97
96
|
<TooltipContent>An icon-only control still needs a name of its own.</TooltipContent>
|
|
98
97
|
</Tooltip>
|
|
99
98
|
|
|
100
|
-
<TooltipButton tooltip="TooltipButton wires the two together"
|
|
99
|
+
<TooltipButton tooltip="TooltipButton wires the two together" appearance="outline" tone="neutral">
|
|
101
100
|
TooltipButton
|
|
102
101
|
</TooltipButton>
|
|
103
102
|
</Stack>
|