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 @@ Naming a form control so the label and control are associated.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Label } from "themelia-ui/base/label"
|
|
18
|
-
import "themelia-ui/base/label.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -53,8 +52,8 @@ import { Input } from "themelia-ui/base/text-inputs"
|
|
|
53
52
|
|
|
54
53
|
export default function LabelExample() {
|
|
55
54
|
return (
|
|
56
|
-
<Stack
|
|
57
|
-
<Stack gap="
|
|
55
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
56
|
+
<Stack gap="sm">
|
|
58
57
|
<Label htmlFor="demo-email">Email</Label>
|
|
59
58
|
<Input id="demo-email" placeholder="name@example.com" />
|
|
60
59
|
</Stack>
|
|
@@ -15,16 +15,14 @@ An application-style menu bar sits persistently across the top of a workspace.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Menubar } from "themelia-ui/base/menubar"
|
|
18
|
-
import "themelia-ui/base/menubar.css"
|
|
19
18
|
import { DropdownMenu } from "themelia-ui/base/dropdown-menu"
|
|
20
|
-
import "themelia-ui/base/dropdown-menu.css"
|
|
21
19
|
```
|
|
22
20
|
|
|
23
21
|
## Composition
|
|
24
22
|
|
|
25
|
-
This module
|
|
23
|
+
This module composes `base/typography`.
|
|
26
24
|
|
|
27
|
-
It is used together with `base/dropdown-menu`: import that module
|
|
25
|
+
It is used together with `base/dropdown-menu`: import that module too.
|
|
28
26
|
|
|
29
27
|
Application policy—routing, fetching, persistence, permissions, and translation—stays
|
|
30
28
|
outside the package and arrives through the public props, callbacks, slots, or accessors below.
|
|
@@ -15,12 +15,11 @@ Site navigation needs grouped panels of links under top-level triggers.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { NavigationMenu } from "themelia-ui/base/navigation-menu"
|
|
18
|
-
import "themelia-ui/base/navigation-menu.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.
|
|
@@ -141,7 +140,7 @@ import { Stack } from "themelia-ui/base/structure"
|
|
|
141
140
|
|
|
142
141
|
export default function NavigationMenuExample() {
|
|
143
142
|
return (
|
|
144
|
-
<Stack direction="horizontal">
|
|
143
|
+
<Stack gap="sm" direction="horizontal">
|
|
145
144
|
<NavigationMenu aria-label="Documentation">
|
|
146
145
|
<NavigationMenuList>
|
|
147
146
|
<NavigationMenuItem>
|
|
@@ -15,7 +15,6 @@ Moving between sibling views or pages — tabs, breadcrumbs, pagination, page he
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Breadcrumbs } from "themelia-ui/base/navigation"
|
|
18
|
-
import "themelia-ui/base/navigation.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -521,7 +520,7 @@ export default function PageHeadingExample() {
|
|
|
521
520
|
description="Everything issued in this workspace, newest first."
|
|
522
521
|
actions={
|
|
523
522
|
<>
|
|
524
|
-
<Button tone="neutral"
|
|
523
|
+
<Button tone="neutral" appearance="outline">Export</Button>
|
|
525
524
|
<Button>New invoice</Button>
|
|
526
525
|
</>
|
|
527
526
|
}
|
|
@@ -733,7 +732,7 @@ export default function TabsScroll() {
|
|
|
733
732
|
return (
|
|
734
733
|
<>
|
|
735
734
|
<Switch checked={edgeFade} onChange={event => setEdgeFade(event.target.checked)} label="Fade overflowing edges" />
|
|
736
|
-
<Stack maxWidth="22rem">
|
|
735
|
+
<Stack gap="sm" maxWidth="22rem">
|
|
737
736
|
<Tabs defaultValue="overview">
|
|
738
737
|
<TabList label="Scrollable sections" variant="enclosed" edgeFade={edgeFade}>
|
|
739
738
|
{["Overview", "Activity", "Settings", "Billing", "Members", "Integrations", "Audit log"].map(label => <Tab key={label} value={label.toLowerCase()}>{label}</Tab>)}
|
|
@@ -15,12 +15,11 @@ A one-time code is entered as separate character cells.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { OtpInput } from "themelia-ui/base/otp-input"
|
|
18
|
-
import "themelia-ui/base/otp-input.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
22
21
|
|
|
23
|
-
This module composes `base/display`.
|
|
22
|
+
This module composes `base/display`, `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.
|
|
@@ -85,9 +84,9 @@ export default function OtpInputExample() {
|
|
|
85
84
|
const [code, setCode] = useState("")
|
|
86
85
|
|
|
87
86
|
return (
|
|
88
|
-
<Stack
|
|
87
|
+
<Stack align="start">
|
|
89
88
|
<OtpInput length={6} value={code} onValueChange={setCode} />
|
|
90
|
-
<Stack gap="
|
|
89
|
+
<Stack gap="sm" align="start">
|
|
91
90
|
<Text size="xs" type="secondary">groupSize={"{3}"} — written as "123 456"</Text>
|
|
92
91
|
<OtpInput length={6} groupSize={3} />
|
|
93
92
|
</Stack>
|
|
@@ -15,7 +15,6 @@ Building a new modal surface inside the kit that must share the dialog/sheet ana
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Overlay } from "themelia-ui/base/overlay"
|
|
18
|
-
import "themelia-ui/base/overlay.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -27,6 +26,16 @@ outside the package and arrives through the public props, callbacks, slots, or a
|
|
|
27
26
|
|
|
28
27
|
## Public declarations
|
|
29
28
|
|
|
29
|
+
### `CssLength`
|
|
30
|
+
|
|
31
|
+
Kind: type.
|
|
32
|
+
|
|
33
|
+
A CSS length: a number with a unit or a percentage, or a math or `var()` expression.
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
`${number}${"px" | "rem" | "em" | "ch" | "%" | "vw" | "vh" | "dvw" | "dvh" | "svw" | "svh" | "lvw" | "lvh"}` | `${"calc" | "min" | "max" | "clamp" | "var"}(${string})`
|
|
37
|
+
```
|
|
38
|
+
|
|
30
39
|
### `defaultOverlayStrings`
|
|
31
40
|
|
|
32
41
|
Kind: const.
|
|
@@ -94,7 +103,7 @@ Kind: interface.
|
|
|
94
103
|
| member | required | type | description / documented default |
|
|
95
104
|
| --- | :-: | --- | --- |
|
|
96
105
|
| `placement` | no | `OverlayPlacement` | Where the surface sits. Centre reads as a dialog, an edge as a sheet. DialogContent and<br>AlertDialogContent fix it to centre; SheetContent exposes it as `side`. |
|
|
97
|
-
| `size` | no | `OverlaySize` | Cross-axis extent for an edge placement — the width of a side panel; a top or bottom<br>one sizes to its content and takes this as the ceiling. Named steps resolve to tokens;<br>any other CSS length is used as given. Ignored when centred. @default "
|
|
106
|
+
| `size` | no | `OverlaySize` | Cross-axis extent for an edge placement — the width of a side panel; a top or bottom<br>one sizes to its content and takes this as the ceiling. Named steps resolve to tokens;<br>any other CSS length is used as given. Ignored when centred. @default "default" |
|
|
98
107
|
| `length` | no | `OverlayLength` | Along-axis extent, for an edge placement. Less than full detaches the panel and centres<br>it on that axis. It is measured against the space the inset leaves rather than the<br>viewport: 70% of an inset panel is 70% of what is between the offsets, and the rest is<br>split between the two ends. Full needs no inset to look right, which is why a<br>corner-anchored sheet sets only `inset`. @default "full" |
|
|
99
108
|
| `inset` | no | `OverlayInset` | The gap to the viewport edges. `false` is flush — a sheet welded to the side; `true`<br>uses the kit's gap; any CSS length sets your own. One offset, spent on every side the<br>panel does not run to, so an inset side panel sits the same distance from the top, the<br>side and the bottom. Any gap detaches it, rounds all four corners and gives it a full<br>border. @default false |
|
|
100
109
|
| `modality` | no | `OverlayModality` | How much of the page the surface takes hostage: scrim, inert background and scroll<br>lock (`modal`), focus alone (`trap-focus`), or neither (`non-modal`). @default "modal" |
|
|
@@ -162,7 +171,7 @@ The gap to the viewport edges: `false` is flush, `true` the kit's gap, or any CS
|
|
|
162
171
|
An inset panel rounds all four corners.
|
|
163
172
|
|
|
164
173
|
```text
|
|
165
|
-
boolean |
|
|
174
|
+
boolean | CssLength
|
|
166
175
|
```
|
|
167
176
|
|
|
168
177
|
### `OverlayLength`
|
|
@@ -172,7 +181,7 @@ Kind: type.
|
|
|
172
181
|
Along-axis extent (a side panel's height). `full` welds it to both ends; less centres it.
|
|
173
182
|
|
|
174
183
|
```text
|
|
175
|
-
"full" |
|
|
184
|
+
"full" | CssLength
|
|
176
185
|
```
|
|
177
186
|
|
|
178
187
|
### `OverlayModality`
|
|
@@ -215,7 +224,7 @@ Kind: type.
|
|
|
215
224
|
Cross-axis extent of an edge-placed surface (a side panel's width): a step or any CSS length.
|
|
216
225
|
|
|
217
226
|
```text
|
|
218
|
-
"
|
|
227
|
+
"default" | "sm" | "full" | CssLength
|
|
219
228
|
```
|
|
220
229
|
|
|
221
230
|
### `OverlayStrings`
|
|
@@ -277,8 +286,8 @@ export default function Modality() {
|
|
|
277
286
|
const [nonModal, setNonModal] = useState(false)
|
|
278
287
|
|
|
279
288
|
return (
|
|
280
|
-
<Stack direction="horizontal"
|
|
281
|
-
<Button tone="neutral"
|
|
289
|
+
<Stack direction="horizontal" wrap align="center">
|
|
290
|
+
<Button tone="neutral" appearance="outline" onClick={() => setNonModal(true)}>
|
|
282
291
|
Open non-modal
|
|
283
292
|
</Button>
|
|
284
293
|
<Text type="secondary" size="sm">
|
|
@@ -294,7 +303,7 @@ export default function Modality() {
|
|
|
294
303
|
<Text type="secondary">Scroll the page behind; this stays where it is.</Text>
|
|
295
304
|
</OverlayBody>
|
|
296
305
|
<OverlayFooter>
|
|
297
|
-
<OverlayClose render={<Button tone="neutral"
|
|
306
|
+
<OverlayClose render={<Button tone="neutral" appearance="outline" />}>
|
|
298
307
|
Close
|
|
299
308
|
</OverlayClose>
|
|
300
309
|
</OverlayFooter>
|
|
@@ -322,8 +331,8 @@ export default function OverlayControlled() {
|
|
|
322
331
|
const [open, setOpen] = useState(false)
|
|
323
332
|
|
|
324
333
|
return (
|
|
325
|
-
<Stack direction="horizontal" gap="
|
|
326
|
-
<Button tone="neutral"
|
|
334
|
+
<Stack direction="horizontal" gap="sm" align="center">
|
|
335
|
+
<Button tone="neutral" appearance="outline" onClick={() => setOpen(true)}>
|
|
327
336
|
Open from outside
|
|
328
337
|
</Button>
|
|
329
338
|
<Text size="xs" type="secondary">
|
|
@@ -336,7 +345,7 @@ export default function OverlayControlled() {
|
|
|
336
345
|
<OverlayDescription>The caller owns the open state.</OverlayDescription>
|
|
337
346
|
</OverlayHeader>
|
|
338
347
|
<OverlayFooter>
|
|
339
|
-
<OverlayClose render={<Button tone="neutral"
|
|
348
|
+
<OverlayClose render={<Button tone="neutral" appearance="outline" />}>
|
|
340
349
|
Close
|
|
341
350
|
</OverlayClose>
|
|
342
351
|
</OverlayFooter>
|
|
@@ -360,9 +369,9 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
360
369
|
|
|
361
370
|
export default function OverlayStructure() {
|
|
362
371
|
return (
|
|
363
|
-
<Stack direction="horizontal">
|
|
372
|
+
<Stack gap="sm" direction="horizontal">
|
|
364
373
|
<Overlay>
|
|
365
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
374
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
366
375
|
Open a long surface
|
|
367
376
|
</OverlayTrigger>
|
|
368
377
|
<OverlayContent>
|
|
@@ -377,7 +386,7 @@ export default function OverlayStructure() {
|
|
|
377
386
|
</OverlayBody>
|
|
378
387
|
<OverlayFooter>
|
|
379
388
|
<OverlayDismissArea>
|
|
380
|
-
<Button tone="neutral"
|
|
389
|
+
<Button tone="neutral" appearance="outline">Cancel</Button>
|
|
381
390
|
<Button>Save</Button>
|
|
382
391
|
</OverlayDismissArea>
|
|
383
392
|
</OverlayFooter>
|
|
@@ -400,9 +409,9 @@ import { Stack } from "themelia-ui/base/structure"
|
|
|
400
409
|
|
|
401
410
|
export default function DialogSurface() {
|
|
402
411
|
return (
|
|
403
|
-
<Stack direction="horizontal">
|
|
412
|
+
<Stack gap="sm" direction="horizontal">
|
|
404
413
|
<Overlay>
|
|
405
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
414
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
406
415
|
Confirm
|
|
407
416
|
</OverlayTrigger>
|
|
408
417
|
<OverlayContent surface="bare" showCloseButton={false}>
|
|
@@ -412,7 +421,7 @@ export default function DialogSurface() {
|
|
|
412
421
|
</OverlayHeader>
|
|
413
422
|
<OverlayFooter>
|
|
414
423
|
<OverlayDismissArea>
|
|
415
|
-
<Button tone="neutral"
|
|
424
|
+
<Button tone="neutral" appearance="outline">Cancel</Button>
|
|
416
425
|
<Button>Publish</Button>
|
|
417
426
|
</OverlayDismissArea>
|
|
418
427
|
</OverlayFooter>
|
|
@@ -441,9 +450,9 @@ export default function DialogFocus() {
|
|
|
441
450
|
const nameRef = useRef<HTMLInputElement>(null)
|
|
442
451
|
|
|
443
452
|
return (
|
|
444
|
-
<Stack direction="horizontal">
|
|
453
|
+
<Stack gap="sm" direction="horizontal">
|
|
445
454
|
<Overlay>
|
|
446
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
455
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
447
456
|
New workspace
|
|
448
457
|
</OverlayTrigger>
|
|
449
458
|
<OverlayContent initialFocusRef={nameRef}>
|
|
@@ -451,7 +460,7 @@ export default function DialogFocus() {
|
|
|
451
460
|
<OverlayTitle>New workspace</OverlayTitle>
|
|
452
461
|
</OverlayHeader>
|
|
453
462
|
<OverlayBody>
|
|
454
|
-
<Stack gap="
|
|
463
|
+
<Stack gap="sm">
|
|
455
464
|
<FormField label="Name">
|
|
456
465
|
<Input ref={nameRef} placeholder="Acme design" />
|
|
457
466
|
</FormField>
|
|
@@ -462,7 +471,7 @@ export default function DialogFocus() {
|
|
|
462
471
|
</OverlayBody>
|
|
463
472
|
<OverlayFooter>
|
|
464
473
|
<OverlayDismissArea>
|
|
465
|
-
<Button tone="neutral"
|
|
474
|
+
<Button tone="neutral" appearance="outline">Cancel</Button>
|
|
466
475
|
<Button>Create</Button>
|
|
467
476
|
</OverlayDismissArea>
|
|
468
477
|
</OverlayFooter>
|
|
@@ -502,9 +511,9 @@ const INVITE_ACTIONS: ActionDefinition[] = [
|
|
|
502
511
|
|
|
503
512
|
export default function DialogPopups() {
|
|
504
513
|
return (
|
|
505
|
-
<Stack direction="horizontal">
|
|
514
|
+
<Stack gap="sm" direction="horizontal">
|
|
506
515
|
<Overlay>
|
|
507
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
516
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
508
517
|
Invite member
|
|
509
518
|
</OverlayTrigger>
|
|
510
519
|
<OverlayContent>
|
|
@@ -513,7 +522,7 @@ export default function DialogPopups() {
|
|
|
513
522
|
<OverlayDescription>They receive an email with a link to join.</OverlayDescription>
|
|
514
523
|
</OverlayHeader>
|
|
515
524
|
<OverlayBody>
|
|
516
|
-
<Stack gap="
|
|
525
|
+
<Stack gap="sm">
|
|
517
526
|
<FormField label="Email">
|
|
518
527
|
<Input placeholder="name@example.com" />
|
|
519
528
|
</FormField>
|
|
@@ -523,13 +532,13 @@ export default function DialogPopups() {
|
|
|
523
532
|
</Stack>
|
|
524
533
|
</OverlayBody>
|
|
525
534
|
<OverlayFooter>
|
|
526
|
-
<Stack direction="horizontal" gap="
|
|
535
|
+
<Stack direction="horizontal" gap="sm" align="center" wrap>
|
|
527
536
|
<ActionMenu actions={INVITE_ACTIONS} label="More" />
|
|
528
|
-
<TooltipButton tooltip="Copy an invite link instead" tone="neutral"
|
|
537
|
+
<TooltipButton tooltip="Copy an invite link instead" tone="neutral" appearance="ghost">
|
|
529
538
|
Copy link
|
|
530
539
|
</TooltipButton>
|
|
531
540
|
<OverlayDismissArea>
|
|
532
|
-
<Button tone="neutral"
|
|
541
|
+
<Button tone="neutral" appearance="outline">Cancel</Button>
|
|
533
542
|
<Button>Send invite</Button>
|
|
534
543
|
</OverlayDismissArea>
|
|
535
544
|
</Stack>
|
|
@@ -556,9 +565,9 @@ import { Input } from "themelia-ui/base/text-inputs"
|
|
|
556
565
|
|
|
557
566
|
export default function Dialog() {
|
|
558
567
|
return (
|
|
559
|
-
<Stack direction="horizontal">
|
|
568
|
+
<Stack gap="sm" direction="horizontal">
|
|
560
569
|
<Overlay>
|
|
561
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
570
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
562
571
|
Open dialog
|
|
563
572
|
</OverlayTrigger>
|
|
564
573
|
<DialogContent>
|
|
@@ -572,7 +581,7 @@ export default function Dialog() {
|
|
|
572
581
|
</FormField>
|
|
573
582
|
</OverlayBody>
|
|
574
583
|
<OverlayFooter>
|
|
575
|
-
<OverlayClose render={<Button tone="neutral"
|
|
584
|
+
<OverlayClose render={<Button tone="neutral" appearance="outline" />}>
|
|
576
585
|
Cancel
|
|
577
586
|
</OverlayClose>
|
|
578
587
|
<OverlayClose render={<Button />}>
|
|
@@ -602,9 +611,9 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
602
611
|
|
|
603
612
|
export default function AlertDialog() {
|
|
604
613
|
return (
|
|
605
|
-
<Stack direction="horizontal">
|
|
614
|
+
<Stack gap="sm" direction="horizontal">
|
|
606
615
|
<Overlay>
|
|
607
|
-
<OverlayTrigger render={<Button tone="destructive"
|
|
616
|
+
<OverlayTrigger render={<Button tone="destructive" appearance="outline" />}>
|
|
608
617
|
Delete account
|
|
609
618
|
</OverlayTrigger>
|
|
610
619
|
<AlertDialogContent>
|
|
@@ -616,7 +625,7 @@ export default function AlertDialog() {
|
|
|
616
625
|
<Text type="secondary">Every project and invoice is removed permanently.</Text>
|
|
617
626
|
</OverlayBody>
|
|
618
627
|
<OverlayFooter>
|
|
619
|
-
<AlertDialogCancel render={<Button tone="neutral"
|
|
628
|
+
<AlertDialogCancel render={<Button tone="neutral" appearance="outline" />}>
|
|
620
629
|
Cancel
|
|
621
630
|
</AlertDialogCancel>
|
|
622
631
|
{/* The answer is an Action, not a second Cancel: they read the same only until a caller hooks the one that commits. */}
|
|
@@ -646,9 +655,9 @@ import { Input } from "themelia-ui/base/text-inputs"
|
|
|
646
655
|
|
|
647
656
|
export default function Sheet() {
|
|
648
657
|
return (
|
|
649
|
-
<Stack direction="horizontal">
|
|
658
|
+
<Stack gap="sm" direction="horizontal">
|
|
650
659
|
<Overlay>
|
|
651
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
660
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
652
661
|
Open sheet
|
|
653
662
|
</OverlayTrigger>
|
|
654
663
|
<SheetContent side="inline-end">
|
|
@@ -657,7 +666,7 @@ export default function Sheet() {
|
|
|
657
666
|
<OverlayDescription>Native top layer — the list behind stays in view and cannot clip it.</OverlayDescription>
|
|
658
667
|
</OverlayHeader>
|
|
659
668
|
<OverlayBody>
|
|
660
|
-
<Stack gap="
|
|
669
|
+
<Stack gap="sm">
|
|
661
670
|
<FormField label="Venue">
|
|
662
671
|
<Input defaultValue="Marlow Hall" />
|
|
663
672
|
</FormField>
|
|
@@ -667,7 +676,7 @@ export default function Sheet() {
|
|
|
667
676
|
</Stack>
|
|
668
677
|
</OverlayBody>
|
|
669
678
|
<OverlayFooter>
|
|
670
|
-
<OverlayClose render={<Button tone="neutral"
|
|
679
|
+
<OverlayClose render={<Button tone="neutral" appearance="outline" />}>
|
|
671
680
|
Cancel
|
|
672
681
|
</OverlayClose>
|
|
673
682
|
<OverlayClose render={<Button />}>
|
|
@@ -694,9 +703,9 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
694
703
|
|
|
695
704
|
export default function SheetShape() {
|
|
696
705
|
return (
|
|
697
|
-
<Stack direction="horizontal"
|
|
706
|
+
<Stack direction="horizontal" wrap align="center">
|
|
698
707
|
<Overlay>
|
|
699
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
708
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
700
709
|
Flush, size="sm"
|
|
701
710
|
</OverlayTrigger>
|
|
702
711
|
<SheetContent side="inline-end" size="sm">
|
|
@@ -711,7 +720,7 @@ export default function SheetShape() {
|
|
|
711
720
|
</Overlay>
|
|
712
721
|
|
|
713
722
|
<Overlay>
|
|
714
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
723
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
715
724
|
Inset
|
|
716
725
|
</OverlayTrigger>
|
|
717
726
|
<SheetContent side="inline-end" size="28rem" inset>
|
|
@@ -730,7 +739,7 @@ export default function SheetShape() {
|
|
|
730
739
|
</Overlay>
|
|
731
740
|
|
|
732
741
|
<Overlay>
|
|
733
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
742
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
734
743
|
Inset from block-end
|
|
735
744
|
</OverlayTrigger>
|
|
736
745
|
<SheetContent side="block-end" size="60%" length="70%" inset="1.5rem">
|
|
@@ -768,9 +777,9 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
768
777
|
|
|
769
778
|
export default function SheetProvider() {
|
|
770
779
|
return (
|
|
771
|
-
<Stack direction="horizontal"
|
|
780
|
+
<Stack direction="horizontal" wrap align="center">
|
|
772
781
|
<Overlay>
|
|
773
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
782
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
774
783
|
Kit default
|
|
775
784
|
</OverlayTrigger>
|
|
776
785
|
<SheetContent>
|
|
@@ -786,7 +795,7 @@ export default function SheetProvider() {
|
|
|
786
795
|
|
|
787
796
|
<UIProvider config={{ defaults: { sheet: { size: "26rem", inset: true } } }}>
|
|
788
797
|
<Overlay>
|
|
789
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
798
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
790
799
|
Under a provider
|
|
791
800
|
</OverlayTrigger>
|
|
792
801
|
<SheetContent>
|
|
@@ -818,9 +827,9 @@ import { UIProvider } from "themelia-ui/ui-provider"
|
|
|
818
827
|
|
|
819
828
|
export default function OverlayBackdrop() {
|
|
820
829
|
return (
|
|
821
|
-
<Stack direction="horizontal"
|
|
830
|
+
<Stack direction="horizontal" wrap align="center">
|
|
822
831
|
<Overlay>
|
|
823
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
832
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
824
833
|
Default scrim
|
|
825
834
|
</OverlayTrigger>
|
|
826
835
|
<DialogContent>
|
|
@@ -833,7 +842,7 @@ export default function OverlayBackdrop() {
|
|
|
833
842
|
|
|
834
843
|
<UIProvider config={{ overlay: { backdropBlur: 4 } }}>
|
|
835
844
|
<Overlay>
|
|
836
|
-
<OverlayTrigger render={<Button tone="neutral"
|
|
845
|
+
<OverlayTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
837
846
|
Blurred scrim
|
|
838
847
|
</OverlayTrigger>
|
|
839
848
|
<DialogContent>
|
|
@@ -15,7 +15,6 @@ A popover's content is a simple list of actions and does not need the full menu
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { PopoverMenu } from "themelia-ui/base/popover-menu"
|
|
18
|
-
import "themelia-ui/base/popover-menu.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -174,10 +173,10 @@ export default function PopoverMenuExample() {
|
|
|
174
173
|
const [owner, setOwner] = useState("jane")
|
|
175
174
|
|
|
176
175
|
return (
|
|
177
|
-
<Stack direction="horizontal"
|
|
176
|
+
<Stack direction="horizontal" align="center">
|
|
178
177
|
<PopoverMenu
|
|
179
178
|
trigger={
|
|
180
|
-
<Button
|
|
179
|
+
<Button appearance="outline" tone="neutral">
|
|
181
180
|
Owner
|
|
182
181
|
<ChevronDownIcon />
|
|
183
182
|
</Button>
|
|
@@ -192,7 +191,7 @@ export default function PopoverMenuExample() {
|
|
|
192
191
|
/>
|
|
193
192
|
<PopoverMenu
|
|
194
193
|
trigger={
|
|
195
|
-
<Button
|
|
194
|
+
<Button appearance="outline" tone="neutral">
|
|
196
195
|
No search
|
|
197
196
|
<ChevronDownIcon />
|
|
198
197
|
</Button>
|
|
@@ -203,7 +202,7 @@ export default function PopoverMenuExample() {
|
|
|
203
202
|
/>
|
|
204
203
|
<PopoverMenu
|
|
205
204
|
trigger={
|
|
206
|
-
<Button
|
|
205
|
+
<Button appearance="outline" tone="neutral">
|
|
207
206
|
Loading
|
|
208
207
|
<ChevronDownIcon />
|
|
209
208
|
</Button>
|
|
@@ -233,10 +232,10 @@ export default function PopoverMenuStates() {
|
|
|
233
232
|
const [failed, setFailed] = useState(true)
|
|
234
233
|
|
|
235
234
|
return (
|
|
236
|
-
<Stack direction="horizontal"
|
|
235
|
+
<Stack direction="horizontal" align="center">
|
|
237
236
|
<PopoverMenu
|
|
238
237
|
trigger={
|
|
239
|
-
<Button
|
|
238
|
+
<Button appearance="outline" tone="neutral">
|
|
240
239
|
Failed load
|
|
241
240
|
<ChevronDownIcon />
|
|
242
241
|
</Button>
|
|
@@ -248,7 +247,7 @@ export default function PopoverMenuStates() {
|
|
|
248
247
|
/>
|
|
249
248
|
<PopoverMenu
|
|
250
249
|
trigger={
|
|
251
|
-
<Button
|
|
250
|
+
<Button appearance="outline" tone="neutral">
|
|
252
251
|
Two characters
|
|
253
252
|
<ChevronDownIcon />
|
|
254
253
|
</Button>
|
|
@@ -15,7 +15,6 @@ A non-modal panel is anchored to a trigger and may hold interactive content.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { Popover } from "themelia-ui/base/popover"
|
|
18
|
-
import "themelia-ui/base/popover.css"
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Composition
|
|
@@ -145,9 +144,9 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
145
144
|
|
|
146
145
|
export default function PopoverExample() {
|
|
147
146
|
return (
|
|
148
|
-
<Stack direction="horizontal"
|
|
147
|
+
<Stack direction="horizontal" wrap>
|
|
149
148
|
<Popover>
|
|
150
|
-
<PopoverTrigger render={<Button tone="neutral"
|
|
149
|
+
<PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
151
150
|
<SlidersHorizontalIcon aria-hidden="true" />
|
|
152
151
|
Filters
|
|
153
152
|
</PopoverTrigger>
|
|
@@ -162,7 +161,7 @@ export default function PopoverExample() {
|
|
|
162
161
|
<Checkbox label="On hold" />
|
|
163
162
|
</Stack>
|
|
164
163
|
<PopoverFooter>
|
|
165
|
-
<Button tone="neutral"
|
|
164
|
+
<Button tone="neutral" appearance="ghost">
|
|
166
165
|
Reset
|
|
167
166
|
</Button>
|
|
168
167
|
<Button>Apply</Button>
|
|
@@ -171,7 +170,7 @@ export default function PopoverExample() {
|
|
|
171
170
|
</Popover>
|
|
172
171
|
|
|
173
172
|
<Popover>
|
|
174
|
-
<PopoverTrigger render={<Button tone="neutral"
|
|
173
|
+
<PopoverTrigger render={<Button tone="neutral" appearance="ghost" iconOnly aria-label="About this figure" />}>
|
|
175
174
|
<InfoIcon aria-hidden="true" />
|
|
176
175
|
</PopoverTrigger>
|
|
177
176
|
<PopoverContent width="18rem">
|
|
@@ -197,10 +196,10 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
197
196
|
|
|
198
197
|
export default function PopoverPlacement() {
|
|
199
198
|
return (
|
|
200
|
-
<Stack direction="horizontal"
|
|
199
|
+
<Stack direction="horizontal" wrap>
|
|
201
200
|
{(["top", "right", "bottom", "left"] as const).map((side) => (
|
|
202
201
|
<Popover key={side}>
|
|
203
|
-
<PopoverTrigger render={<Button tone="neutral"
|
|
202
|
+
<PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
204
203
|
{side}
|
|
205
204
|
</PopoverTrigger>
|
|
206
205
|
<PopoverContent side={side}>
|
|
@@ -209,7 +208,7 @@ export default function PopoverPlacement() {
|
|
|
209
208
|
</Popover>
|
|
210
209
|
))}
|
|
211
210
|
<Popover>
|
|
212
|
-
<PopoverTrigger render={<Button tone="neutral"
|
|
211
|
+
<PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
213
212
|
width="trigger"
|
|
214
213
|
</PopoverTrigger>
|
|
215
214
|
<PopoverContent width="trigger">
|
|
@@ -234,13 +233,13 @@ import { Text } from "themelia-ui/base/typography"
|
|
|
234
233
|
export default function PopoverAnchorExample() {
|
|
235
234
|
return (
|
|
236
235
|
<Popover>
|
|
237
|
-
<Stack direction="horizontal"
|
|
236
|
+
<Stack direction="horizontal" align="center">
|
|
238
237
|
<PopoverAnchor>
|
|
239
238
|
<Text size="xs" type="secondary">
|
|
240
239
|
<CalendarIcon aria-hidden="true" /> 14–28 August
|
|
241
240
|
</Text>
|
|
242
241
|
</PopoverAnchor>
|
|
243
|
-
<PopoverTrigger render={<Button tone="neutral"
|
|
242
|
+
<PopoverTrigger render={<Button tone="neutral" appearance="outline" />}>
|
|
244
243
|
Change the range
|
|
245
244
|
</PopoverTrigger>
|
|
246
245
|
</Stack>
|
|
@@ -15,12 +15,11 @@ A value must be scannable on screen or in print.
|
|
|
15
15
|
|
|
16
16
|
```tsx fragment — import-only example
|
|
17
17
|
import { QRCode } from "themelia-ui/base/qr-code"
|
|
18
|
-
import "themelia-ui/base/qr-code.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.
|
|
@@ -52,8 +51,8 @@ Extends: `Omit<ComponentProps<"div">, "children">`.
|
|
|
52
51
|
| member | required | type | description / documented default |
|
|
53
52
|
| --- | :-: | --- | --- |
|
|
54
53
|
| `value` | yes | `string` | What the code encodes — a URL, a payment string, a token. An empty value renders<br>`emptyState`, or nothing at all when there is none. |
|
|
55
|
-
| `foreground` | no | `string` | Overrides the dark modules. Defaults to the
|
|
56
|
-
| `background` | no | `string` | Overrides the light modules. Defaults to the
|
|
54
|
+
| `foreground` | no | `string` | Overrides the dark modules. Defaults to the theme's foreground as the light theme draws<br>it, dark in both themes. Any CSS colour; it is converted to hex for the encoder. |
|
|
55
|
+
| `background` | no | `string` | Overrides the light modules. Defaults to the theme's background as the light theme draws<br>it, light in both themes. Any CSS colour; it is converted to hex for the encoder. |
|
|
57
56
|
| `robustness` | no | `QRRobustness` | Error correction: how much of the symbol can be obscured and still decode — L ≈ 7%,<br>M ≈ 15%, Q ≈ 25%, H ≈ 30%. Higher needs a denser grid. |
|
|
58
57
|
| `placeholder` | no | `string` | Shown while encoding. Defaults to this component's own `generating` string; a value<br>that cannot be encoded shows `strings.failed` instead. |
|
|
59
58
|
| `strings` | no | `Partial<QRCodeStrings>` | Overrides this code's own copy — the two placeholder states and its name. |
|
|
@@ -103,8 +102,8 @@ export default function QrCode() {
|
|
|
103
102
|
const [qrValue, setQrValue] = useState("https://example.com/invoice/4417")
|
|
104
103
|
|
|
105
104
|
return (
|
|
106
|
-
<Stack direction="horizontal"
|
|
107
|
-
<Stack
|
|
105
|
+
<Stack direction="horizontal" align="start" wrap>
|
|
106
|
+
<Stack style={{ maxWidth: "26rem", width: "100%" }}>
|
|
108
107
|
<FormField label="Encoded value">
|
|
109
108
|
<Input value={qrValue} onChange={(event) => setQrValue(event.target.value)} />
|
|
110
109
|
</FormField>
|
|
@@ -113,13 +112,13 @@ export default function QrCode() {
|
|
|
113
112
|
</FormField>
|
|
114
113
|
</Stack>
|
|
115
114
|
{/* Captioned, so each grid is attributable to its setting. */}
|
|
116
|
-
<Stack direction="horizontal"
|
|
115
|
+
<Stack direction="horizontal" wrap align="start">
|
|
117
116
|
{[
|
|
118
117
|
{ node: <QRCode value={qrValue} label="Invoice link" />, caption: 'robustness="M" — default' },
|
|
119
118
|
{ node: <QRCode value={qrValue} robustness="H" label="Invoice link, high correction" />, caption: 'robustness="H" — denser grid' },
|
|
120
119
|
{ node: <QRCode value="" emptyState="No link yet" />, caption: "empty, with an emptyState" },
|
|
121
120
|
].map((item) => (
|
|
122
|
-
<Stack key={item.caption} gap="
|
|
121
|
+
<Stack key={item.caption} gap="sm" align="start">
|
|
123
122
|
{item.node}
|
|
124
123
|
<Text size="xs" type="secondary">{item.caption}</Text>
|
|
125
124
|
</Stack>
|