@maz-ui/mcp 5.0.1-beta.0 → 5.1.0-beta.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/README.md +61 -228
- package/bin/maz-ui-mcp.mjs +2 -5
- package/dist/cli.d.mts +7 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.mjs +14 -0
- package/dist/index.d.mts +340 -0
- package/dist/index.d.ts +340 -0
- package/dist/index.mjs +14 -0
- package/dist/shared/mcp.DzqVbCaL.mjs +2346 -0
- package/docs/README.md +207 -0
- package/docs/agents/agents-md.md +52 -0
- package/docs/agents/claude-rule.md +52 -0
- package/docs/components/maz-accordion.md +76 -0
- package/docs/{src/components → components}/maz-alert.md +31 -164
- package/docs/components/maz-animated-counter.md +87 -0
- package/docs/components/maz-animated-element.md +46 -0
- package/docs/components/maz-animated-text.md +53 -0
- package/docs/components/maz-avatar.md +193 -0
- package/docs/components/maz-backdrop.md +178 -0
- package/docs/{src/components → components}/maz-badge.md +26 -67
- package/docs/components/maz-bottom-sheet.md +257 -0
- package/docs/{src/components → components}/maz-btn-group.md +26 -189
- package/docs/{src/components → components}/maz-btn.md +60 -245
- package/docs/components/maz-card-spotlight.md +84 -0
- package/docs/{src/components → components}/maz-card.md +67 -192
- package/docs/components/maz-carousel.md +153 -0
- package/docs/{src/components → components}/maz-chart.md +17 -161
- package/docs/components/maz-checkbox.md +138 -0
- package/docs/components/maz-checklist.md +251 -0
- package/docs/components/maz-circular-progress-bar.md +109 -0
- package/docs/{src/components → components}/maz-code-highlight.md +15 -93
- package/docs/components/maz-container.md +241 -0
- package/docs/{src/components → components}/maz-date-picker.md +85 -454
- package/docs/components/maz-dialog-confirm.md +215 -0
- package/docs/components/maz-dialog.md +143 -0
- package/docs/components/maz-drawer.md +106 -0
- package/docs/components/maz-dropdown.md +419 -0
- package/docs/{src/components → components}/maz-dropzone.md +80 -221
- package/docs/components/maz-expand-animation.md +82 -0
- package/docs/components/maz-fullscreen-loader.md +58 -0
- package/docs/components/maz-gallery.md +79 -0
- package/docs/{src/components → components}/maz-icon.md +32 -83
- package/docs/components/maz-input-code.md +73 -0
- package/docs/components/maz-input-number.md +79 -0
- package/docs/components/maz-input-phone-number.md +536 -0
- package/docs/components/maz-input-price.md +68 -0
- package/docs/components/maz-input-tags.md +112 -0
- package/docs/{src/components → components}/maz-input.md +74 -221
- package/docs/components/maz-lazy-img.md +113 -0
- package/docs/components/maz-link.md +146 -0
- package/docs/components/maz-loading-bar.md +38 -0
- package/docs/{src/components → components}/maz-markdown-editor.md +72 -125
- package/docs/components/maz-pagination.md +82 -0
- package/docs/components/maz-popover.md +794 -0
- package/docs/{src/components → components}/maz-pull-to-refresh.md +59 -45
- package/docs/components/maz-radio-buttons.md +313 -0
- package/docs/components/maz-radio.md +119 -0
- package/docs/{src/components → components}/maz-read-more.md +31 -122
- package/docs/components/maz-reading-progress-bar.md +96 -0
- package/docs/{src/components → components}/maz-select-country.md +80 -340
- package/docs/{src/components → components}/maz-select.md +76 -206
- package/docs/components/maz-sidebar-content.md +25 -0
- package/docs/components/maz-sidebar-footer.md +25 -0
- package/docs/components/maz-sidebar-group.md +27 -0
- package/docs/components/maz-sidebar-header.md +25 -0
- package/docs/components/maz-sidebar-menu-button.md +41 -0
- package/docs/components/maz-sidebar-menu-item.md +25 -0
- package/docs/components/maz-sidebar-menu-sub.md +32 -0
- package/docs/components/maz-sidebar-menu.md +25 -0
- package/docs/components/maz-sidebar-separator.md +21 -0
- package/docs/components/maz-sidebar-trigger.md +25 -0
- package/docs/{src/components → components}/maz-sidebar.md +117 -329
- package/docs/{src/components → components}/maz-skeleton.md +27 -156
- package/docs/{src/components → components}/maz-slider.md +33 -66
- package/docs/components/maz-spinner.md +84 -0
- package/docs/{src/components → components}/maz-stepper.md +43 -185
- package/docs/components/maz-switch.md +86 -0
- package/docs/components/maz-table-cell.md +27 -0
- package/docs/components/maz-table-row.md +28 -0
- package/docs/components/maz-table-title.md +27 -0
- package/docs/components/maz-table-virtualizer.md +31 -0
- package/docs/components/maz-table.md +426 -0
- package/docs/components/maz-tabs-bar.md +43 -0
- package/docs/components/maz-tabs-content-item.md +27 -0
- package/docs/components/maz-tabs-content.md +27 -0
- package/docs/{src/components → components}/maz-tabs.md +89 -126
- package/docs/components/maz-textarea.md +255 -0
- package/docs/components/maz-ticker.md +427 -0
- package/docs/components/maz-timeline.md +304 -0
- package/docs/components/maz-ui-provider.md +26 -0
- package/docs/{src/components → components}/maz-window-mockup.md +38 -105
- package/docs/composables/use-aos.md +41 -0
- package/docs/composables/use-breakpoints.md +42 -0
- package/docs/composables/use-dialog.md +58 -0
- package/docs/{src/composables → composables}/use-display-names.md +12 -59
- package/docs/{src/composables → composables}/use-drag.md +14 -68
- package/docs/{src/composables → composables}/use-form-validator.md +22 -696
- package/docs/{src/composables → composables}/use-idle-timeout.md +13 -97
- package/docs/{src/composables → composables}/use-pull-to-refresh.md +14 -7
- package/docs/{src/composables → composables}/use-reading-time.md +20 -56
- package/docs/composables/use-string-matching.md +41 -0
- package/docs/{src/composables → composables}/use-swipe.md +14 -81
- package/docs/{src/composables → composables}/use-timer.md +12 -38
- package/docs/composables/use-toast.md +50 -0
- package/docs/{src/composables → composables}/use-user-visibility.md +14 -56
- package/docs/composables/use-wait.md +50 -0
- package/docs/composables/use-window-size.md +25 -0
- package/docs/{src/directives → directives}/click-outside.md +13 -99
- package/docs/{src/directives → directives}/fullscreen-img.md +10 -28
- package/docs/{src/directives → directives}/lazy-img.md +14 -49
- package/docs/{src/directives → directives}/tooltip.md +12 -217
- package/docs/{src/directives → directives}/zoom-img.md +11 -38
- package/docs/{src/ecosystem → ecosystem}/eslint-config.md +37 -29
- package/docs/ecosystem/icons/icon-set.md +25 -0
- package/docs/{src/ecosystem → ecosystem}/icons/index.md +22 -16
- package/docs/ecosystem/mcp.md +165 -0
- package/docs/{src/ecosystem → ecosystem}/node/exec-promise.md +12 -6
- package/docs/ecosystem/node/index.md +53 -0
- package/docs/{src/ecosystem → ecosystem}/node/logger.md +12 -6
- package/docs/{src/ecosystem → ecosystem}/node/print-banner.md +12 -4
- package/docs/ecosystem/node/setup-agents.md +102 -0
- package/docs/{src/ecosystem → ecosystem}/nuxt.md +46 -19
- package/docs/{src/ecosystem → ecosystem}/stylelint-config.md +33 -25
- package/docs/{src/ecosystem → ecosystem}/themes.md +72 -235
- package/docs/{src/ecosystem → ecosystem}/translations.md +25 -23
- package/docs/ecosystem/utils/camel-case.md +37 -0
- package/docs/ecosystem/utils/capitalize.md +37 -0
- package/docs/{src/ecosystem → ecosystem}/utils/check-availability.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/cookie.md +18 -12
- package/docs/ecosystem/utils/country-code-to-unicode-flag.md +128 -0
- package/docs/{src/ecosystem → ecosystem}/utils/currency.md +12 -26
- package/docs/{src/ecosystem → ecosystem}/utils/date.md +10 -24
- package/docs/ecosystem/utils/debounce-callback.md +44 -0
- package/docs/{src/ecosystem → ecosystem}/utils/debounce-id.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/debounce.md +14 -8
- package/docs/ecosystem/utils/fetch-locale-ip.md +39 -0
- package/docs/{src/ecosystem → ecosystem}/utils/format-json.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/format-phone-number.md +12 -6
- package/docs/ecosystem/utils/get-browser-locale.md +35 -0
- package/docs/ecosystem/utils/get-country-flag-url.md +67 -0
- package/docs/{src/ecosystem → ecosystem}/utils/get-error-message.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/idle-timeout.md +15 -9
- package/docs/{src/ecosystem → ecosystem}/utils/index.md +10 -13
- package/docs/{src/ecosystem → ecosystem}/utils/is-client.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/is-equal.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/is-ios.md +12 -6
- package/docs/ecosystem/utils/is-server.md +37 -0
- package/docs/ecosystem/utils/is-standalone-mode.md +49 -0
- package/docs/{src/ecosystem → ecosystem}/utils/kebab-case.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/normalize-string.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/number.md +10 -24
- package/docs/{src/ecosystem → ecosystem}/utils/pascal-case.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/prevent-ios-input-zoom.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/script-loader.md +16 -8
- package/docs/{src/ecosystem → ecosystem}/utils/sleep.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/snake-case.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/swipe-handler.md +14 -8
- package/docs/{src/ecosystem → ecosystem}/utils/textarea-autogrow.md +12 -6
- package/docs/{src/ecosystem → ecosystem}/utils/throttle-id.md +13 -7
- package/docs/{src/ecosystem → ecosystem}/utils/throttle.md +14 -8
- package/docs/ecosystem/utils/truthy-filter.md +37 -0
- package/docs/{src/ecosystem → ecosystem}/utils/types/deep-key-of.md +11 -5
- package/docs/{src/ecosystem → ecosystem}/utils/types/deep-partial.md +10 -4
- package/docs/ecosystem/utils/types/deep-required.md +45 -0
- package/docs/ecosystem/utils/types/flatten-object-keys.md +50 -0
- package/docs/{src/ecosystem → ecosystem}/utils/types/generic-instance-type.md +10 -4
- package/docs/{src/ecosystem → ecosystem}/utils/types/infer-maybe-ref.md +10 -4
- package/docs/ecosystem/utils/upper-first.md +38 -0
- package/docs/{src/ecosystem → ecosystem}/utils/user-visibility.md +12 -6
- package/docs/guide/ai-agents.md +237 -0
- package/docs/{src/guide → guide}/browser-support.md +22 -15
- package/docs/{src/guide → guide}/getting-started.md +34 -139
- package/docs/{src/guide → guide}/global-defaults.md +12 -11
- package/docs/{src/guide → guide}/maz-ui-provider.md +17 -16
- package/docs/{src/guide → guide}/migration-v5.md +95 -88
- package/docs/{src/guide → guide}/resolvers.md +33 -100
- package/docs/guide/tailwind.md +483 -0
- package/docs/{src/guide → guide}/vue.md +33 -39
- package/docs/manifest.json +1 -0
- package/docs/{src/plugins → plugins}/aos.md +20 -55
- package/docs/{src/plugins → plugins}/dialog.md +14 -161
- package/docs/plugins/toast.md +221 -0
- package/docs/plugins/wait.md +78 -0
- package/docs/reference/icons.md +46 -0
- package/docs/reference/tailwind-tokens.md +191 -0
- package/docs/rules.md +57 -0
- package/package.json +84 -22
- package/dist/mcp.d.mts +0 -153
- package/dist/mcp.d.ts +0 -153
- package/dist/mcp.mjs +0 -1511
- package/docs/generated-docs/maz-accordion.doc.md +0 -21
- package/docs/generated-docs/maz-alert.doc.md +0 -20
- package/docs/generated-docs/maz-animated-counter.doc.md +0 -17
- package/docs/generated-docs/maz-animated-element.doc.md +0 -14
- package/docs/generated-docs/maz-animated-text.doc.md +0 -17
- package/docs/generated-docs/maz-avatar.doc.md +0 -45
- package/docs/generated-docs/maz-backdrop.doc.md +0 -55
- package/docs/generated-docs/maz-badge.doc.md +0 -16
- package/docs/generated-docs/maz-bottom-sheet.doc.md +0 -24
- package/docs/generated-docs/maz-btn-group.doc.md +0 -20
- package/docs/generated-docs/maz-btn.doc.md +0 -33
- package/docs/generated-docs/maz-card-spotlight.doc.md +0 -16
- package/docs/generated-docs/maz-card.doc.md +0 -39
- package/docs/generated-docs/maz-carousel.doc.md +0 -17
- package/docs/generated-docs/maz-chart.doc.md +0 -10
- package/docs/generated-docs/maz-checkbox.doc.md +0 -33
- package/docs/generated-docs/maz-checklist.doc.md +0 -30
- package/docs/generated-docs/maz-circular-progress-bar.doc.md +0 -27
- package/docs/generated-docs/maz-code-highlight.doc.md +0 -11
- package/docs/generated-docs/maz-container.doc.md +0 -26
- package/docs/generated-docs/maz-date-picker.doc.md +0 -56
- package/docs/generated-docs/maz-dialog-confirm.doc.md +0 -24
- package/docs/generated-docs/maz-dialog.doc.md +0 -22
- package/docs/generated-docs/maz-drawer.doc.md +0 -25
- package/docs/generated-docs/maz-dropdown.doc.md +0 -45
- package/docs/generated-docs/maz-dropzone.doc.md +0 -82
- package/docs/generated-docs/maz-expand-animation.doc.md +0 -12
- package/docs/generated-docs/maz-fullscreen-loader.doc.md +0 -13
- package/docs/generated-docs/maz-gallery.doc.md +0 -17
- package/docs/generated-docs/maz-icon.doc.md +0 -16
- package/docs/generated-docs/maz-input-code.doc.md +0 -25
- package/docs/generated-docs/maz-input-number.doc.md +0 -33
- package/docs/generated-docs/maz-input-phone-number.doc.md +0 -62
- package/docs/generated-docs/maz-input-price.doc.md +0 -26
- package/docs/generated-docs/maz-input-tags.doc.md +0 -24
- package/docs/generated-docs/maz-input.doc.md +0 -54
- package/docs/generated-docs/maz-lazy-img.doc.md +0 -49
- package/docs/generated-docs/maz-link.doc.md +0 -31
- package/docs/generated-docs/maz-loading-bar.doc.md +0 -6
- package/docs/generated-docs/maz-markdown-editor.doc.md +0 -65
- package/docs/generated-docs/maz-pagination.doc.md +0 -21
- package/docs/generated-docs/maz-popover.doc.md +0 -79
- package/docs/generated-docs/maz-pull-to-refresh.doc.md +0 -50
- package/docs/generated-docs/maz-radio-buttons.doc.md +0 -34
- package/docs/generated-docs/maz-radio.doc.md +0 -33
- package/docs/generated-docs/maz-read-more.doc.md +0 -18
- package/docs/generated-docs/maz-reading-progress-bar.doc.md +0 -18
- package/docs/generated-docs/maz-select-country.doc.md +0 -45
- package/docs/generated-docs/maz-select.doc.md +0 -32
- package/docs/generated-docs/maz-sidebar-content.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-footer.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-group.doc.md +0 -11
- package/docs/generated-docs/maz-sidebar-header.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-menu-button.doc.md +0 -27
- package/docs/generated-docs/maz-sidebar-menu-item.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-menu-sub.doc.md +0 -16
- package/docs/generated-docs/maz-sidebar-menu.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar-separator.doc.md +0 -0
- package/docs/generated-docs/maz-sidebar-trigger.doc.md +0 -5
- package/docs/generated-docs/maz-sidebar.doc.md +0 -36
- package/docs/generated-docs/maz-skeleton.doc.md +0 -12
- package/docs/generated-docs/maz-slider.doc.md +0 -20
- package/docs/generated-docs/maz-spinner.doc.md +0 -6
- package/docs/generated-docs/maz-stepper.doc.md +0 -30
- package/docs/generated-docs/maz-switch.doc.md +0 -31
- package/docs/generated-docs/maz-table-cell.doc.md +0 -5
- package/docs/generated-docs/maz-table-row.doc.md +0 -12
- package/docs/generated-docs/maz-table-title.doc.md +0 -5
- package/docs/generated-docs/maz-table-virtualizer.doc.md +0 -20
- package/docs/generated-docs/maz-table.doc.md +0 -72
- package/docs/generated-docs/maz-tabs-bar.doc.md +0 -29
- package/docs/generated-docs/maz-tabs-content-item.doc.md +0 -11
- package/docs/generated-docs/maz-tabs-content.doc.md +0 -5
- package/docs/generated-docs/maz-tabs.doc.md +0 -20
- package/docs/generated-docs/maz-textarea.doc.md +0 -46
- package/docs/generated-docs/maz-ticker.doc.md +0 -25
- package/docs/generated-docs/maz-timeline.doc.md +0 -32
- package/docs/generated-docs/maz-ui-provider.doc.md +0 -12
- package/docs/generated-docs/maz-window-mockup.doc.md +0 -23
- package/docs/src/blog/v4.md +0 -276
- package/docs/src/blog/v5.md +0 -184
- package/docs/src/changelog.md +0 -7
- package/docs/src/components/index.md +0 -8
- package/docs/src/components/maz-accordion.md +0 -80
- package/docs/src/components/maz-animated-counter.md +0 -124
- package/docs/src/components/maz-animated-element.md +0 -36
- package/docs/src/components/maz-animated-text.md +0 -36
- package/docs/src/components/maz-avatar.md +0 -227
- package/docs/src/components/maz-backdrop.md +0 -250
- package/docs/src/components/maz-bottom-sheet.md +0 -533
- package/docs/src/components/maz-card-spotlight.md +0 -163
- package/docs/src/components/maz-carousel.md +0 -231
- package/docs/src/components/maz-checkbox.md +0 -168
- package/docs/src/components/maz-checklist.md +0 -414
- package/docs/src/components/maz-circular-progress-bar.md +0 -145
- package/docs/src/components/maz-container.md +0 -363
- package/docs/src/components/maz-dialog-confirm.md +0 -240
- package/docs/src/components/maz-dialog.md +0 -164
- package/docs/src/components/maz-drawer.md +0 -181
- package/docs/src/components/maz-dropdown.md +0 -691
- package/docs/src/components/maz-expand-animation.md +0 -99
- package/docs/src/components/maz-fullscreen-loader.md +0 -58
- package/docs/src/components/maz-gallery.md +0 -85
- package/docs/src/components/maz-input-code.md +0 -61
- package/docs/src/components/maz-input-number.md +0 -81
- package/docs/src/components/maz-input-phone-number.md +0 -942
- package/docs/src/components/maz-input-price.md +0 -67
- package/docs/src/components/maz-input-tags.md +0 -114
- package/docs/src/components/maz-lazy-img.md +0 -88
- package/docs/src/components/maz-link.md +0 -178
- package/docs/src/components/maz-loading-bar.md +0 -26
- package/docs/src/components/maz-pagination.md +0 -79
- package/docs/src/components/maz-popover.md +0 -1416
- package/docs/src/components/maz-radio-buttons.md +0 -462
- package/docs/src/components/maz-radio.md +0 -142
- package/docs/src/components/maz-reading-progress-bar.md +0 -74
- package/docs/src/components/maz-spinner.md +0 -93
- package/docs/src/components/maz-switch.md +0 -92
- package/docs/src/components/maz-table.md +0 -732
- package/docs/src/components/maz-textarea.md +0 -400
- package/docs/src/components/maz-ticker.md +0 -692
- package/docs/src/components/maz-timeline.md +0 -478
- package/docs/src/composables/use-aos.md +0 -34
- package/docs/src/composables/use-breakpoints.md +0 -35
- package/docs/src/composables/use-dialog.md +0 -88
- package/docs/src/composables/use-string-matching.md +0 -63
- package/docs/src/composables/use-toast.md +0 -71
- package/docs/src/composables/use-wait.md +0 -62
- package/docs/src/composables/use-window-size.md +0 -18
- package/docs/src/ecosystem/icons/icon-set.md +0 -123
- package/docs/src/ecosystem/mcp.md +0 -210
- package/docs/src/ecosystem/node/index.md +0 -53
- package/docs/src/ecosystem/utils/camel-case.md +0 -31
- package/docs/src/ecosystem/utils/capitalize.md +0 -50
- package/docs/src/ecosystem/utils/country-code-to-unicode-flag.md +0 -213
- package/docs/src/ecosystem/utils/debounce-callback.md +0 -38
- package/docs/src/ecosystem/utils/fetch-locale-ip.md +0 -33
- package/docs/src/ecosystem/utils/get-browser-locale.md +0 -29
- package/docs/src/ecosystem/utils/get-country-flag-url.md +0 -156
- package/docs/src/ecosystem/utils/is-server.md +0 -31
- package/docs/src/ecosystem/utils/is-standalone-mode.md +0 -43
- package/docs/src/ecosystem/utils/truthy-filter.md +0 -31
- package/docs/src/ecosystem/utils/types/deep-required.md +0 -39
- package/docs/src/ecosystem/utils/types/flatten-object-keys.md +0 -44
- package/docs/src/ecosystem/utils/upper-first.md +0 -32
- package/docs/src/guide/cli.md +0 -144
- package/docs/src/guide/migration-v4.md +0 -925
- package/docs/src/guide/tailwind.md +0 -158
- package/docs/src/index.md +0 -603
- package/docs/src/made-with-maz-ui.md +0 -58
- package/docs/src/plugins/toast.md +0 -349
- package/docs/src/plugins/wait.md +0 -109
- package/docs/src/theme-editor.md +0 -21
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: MazPullToRefresh
|
|
3
|
-
description: MazPullToRefresh adds a native-feeling pull to refresh gesture to your app or to any scroll container, with a progress ring, haptic feedback and translated, accessible feedback.
|
|
2
|
+
title: "MazPullToRefresh"
|
|
3
|
+
description: "MazPullToRefresh adds a native-feeling pull to refresh gesture to your app or to any scroll container, with a progress ring, haptic feedback and translated, accessible feedback."
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/components/maz-pull-to-refresh"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# MazPullToRefresh
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
> MazPullToRefresh adds a native-feeling pull to refresh gesture to your app or to any scroll container, with a progress ring, haptic feedback and translated, accessible feedback.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import MazPullToRefresh from 'maz-ui/components/MazPullToRefresh'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
15
|
+
- Web: https://maz-ui.com/components/maz-pull-to-refresh
|
|
16
|
+
|
|
17
|
+
> Before use it, you should install the MazUi plugin in your project, follow instructions in [Getting Started](../guide/getting-started.md)
|
|
11
18
|
|
|
12
19
|
## Key Features
|
|
13
20
|
|
|
@@ -16,45 +23,13 @@ description: MazPullToRefresh adds a native-feeling pull to refresh gesture to y
|
|
|
16
23
|
- Rubber band resistance beyond the trigger distance, and a progress ring that fills while pulling
|
|
17
24
|
- Ignores horizontal swipes and multi-touch gestures, and prevents the native bounce (and the browser's own pull to refresh) while pulling
|
|
18
25
|
- Haptic feedback when the trigger distance is reached (devices supporting `navigator.vibrate`)
|
|
19
|
-
- Texts from [@maz-ui/translations](
|
|
26
|
+
- Texts from [@maz-ui/translations](../ecosystem/translations.md), overridable with the `translations` prop or the slots
|
|
20
27
|
- Accessible: the refresh is announced to screen readers, `aria-busy` is set while refreshing, and `refresh()` is exposed for a button usable with a keyboard or a mouse
|
|
21
28
|
- Optional `standalone-mode` to enable it only in an installed PWA (browsers already have their own pull to refresh)
|
|
22
|
-
- Built on the headless [usePullToRefresh](
|
|
29
|
+
- Built on the headless [usePullToRefresh](../composables/use-pull-to-refresh.md) composable
|
|
23
30
|
|
|
24
31
|
## Demo
|
|
25
32
|
|
|
26
|
-
<div class="maz:flex maz:flex-col maz:items-center maz:gap-3 vp-raw">
|
|
27
|
-
<p class="maz:text-sm maz:text-muted">
|
|
28
|
-
Pull down inside the box on a touch device (or with the touch emulation of your browser's device toolbar).
|
|
29
|
-
</p>
|
|
30
|
-
<div class="maz:h-80 maz:w-full maz:max-w-sm maz:overflow-y-auto maz:rounded-lg maz:border maz:border-divider maz:bg-container">
|
|
31
|
-
<MazPullToRefresh ref="demo" :on-refresh="refreshDemo">
|
|
32
|
-
<ul class="maz:m-0 maz:list-none maz:p-0">
|
|
33
|
-
<li v-for="item in items" :key="item" class="maz:border-b maz:border-divider maz:px-4 maz:py-3">
|
|
34
|
-
{{ item }}
|
|
35
|
-
</li>
|
|
36
|
-
</ul>
|
|
37
|
-
</MazPullToRefresh>
|
|
38
|
-
</div>
|
|
39
|
-
<MazBtn size="sm" :loading="demo?.isRefreshing" @click="demo?.refresh()">
|
|
40
|
-
Refresh ({{ refreshCount }})
|
|
41
|
-
</MazBtn>
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
<script lang="ts" setup>
|
|
45
|
-
import { ref, useTemplateRef } from 'vue'
|
|
46
|
-
|
|
47
|
-
const demo = useTemplateRef('demo')
|
|
48
|
-
const refreshCount = ref(0)
|
|
49
|
-
const items = ref(Array.from({ length: 20 }, (_, index) => `Item ${index + 1}`))
|
|
50
|
-
|
|
51
|
-
async function refreshDemo() {
|
|
52
|
-
await new Promise(resolve => setTimeout(resolve, 1000))
|
|
53
|
-
refreshCount.value++
|
|
54
|
-
items.value = [`New item ${refreshCount.value}`, ...items.value]
|
|
55
|
-
}
|
|
56
|
-
</script>
|
|
57
|
-
|
|
58
33
|
## Basic usage
|
|
59
34
|
|
|
60
35
|
Wrap your app (or a page) inside the component and give it the function that reloads your data. The spinner stays visible until the returned promise settles.
|
|
@@ -91,9 +66,9 @@ The pull can only start when its scroll container is at the top. By default, the
|
|
|
91
66
|
|
|
92
67
|
```vue
|
|
93
68
|
<template>
|
|
94
|
-
<div class="app-shell
|
|
69
|
+
<div class="app-shell fixed inset-0 flex flex-col">
|
|
95
70
|
<header>…</header>
|
|
96
|
-
<main class="
|
|
71
|
+
<main class="flex-1 overflow-y-auto">
|
|
97
72
|
<MazPullToRefresh :on-refresh="refresh">
|
|
98
73
|
<slot />
|
|
99
74
|
</MazPullToRefresh>
|
|
@@ -140,7 +115,7 @@ The three states have their own slot. Each one receives the pull `progress` (0 t
|
|
|
140
115
|
|
|
141
116
|
```vue
|
|
142
117
|
<template>
|
|
143
|
-
<MazPullToRefresh :on-refresh="refresh" header-class="
|
|
118
|
+
<MazPullToRefresh :on-refresh="refresh" header-class="bg-surface-600">
|
|
144
119
|
<template #pull-before="{ progress }">
|
|
145
120
|
<span>{{ Math.round(progress * 100) }}%</span>
|
|
146
121
|
</template>
|
|
@@ -160,7 +135,7 @@ The three states have their own slot. Each one receives the pull `progress` (0 t
|
|
|
160
135
|
|
|
161
136
|
## Translations
|
|
162
137
|
|
|
163
|
-
Texts come from [@maz-ui/translations](
|
|
138
|
+
Texts come from [@maz-ui/translations](../ecosystem/translations.md) (`pullToRefresh.pull`, `pullToRefresh.release`, `pullToRefresh.refreshing`). Override them per instance with the `translations` prop:
|
|
164
139
|
|
|
165
140
|
```vue
|
|
166
141
|
<template>
|
|
@@ -203,6 +178,45 @@ The events follow the life of a refresh: `start`, then `loaded` and `response` (
|
|
|
203
178
|
|
|
204
179
|
## Headless usage
|
|
205
180
|
|
|
206
|
-
Need a different indicator, or a gesture on an element without wrapping it? Use the [usePullToRefresh](
|
|
181
|
+
Need a different indicator, or a gesture on an element without wrapping it? Use the [usePullToRefresh](../composables/use-pull-to-refresh.md) composable.
|
|
182
|
+
|
|
183
|
+
## MazPullToRefresh API
|
|
184
|
+
|
|
185
|
+
`import MazPullToRefresh from 'maz-ui/components/MazPullToRefresh'`
|
|
186
|
+
|
|
187
|
+
### Props
|
|
188
|
+
|
|
189
|
+
- `on-refresh` (`(() => unknown)`): Function called when the user releases after pulling far enough. The spinner stays visible until the returned promise settles. Without it, the component does nothing.
|
|
190
|
+
- `distance` (`number`, default: `80`): Pull distance (in px, after resistance) required to trigger a refresh.
|
|
191
|
+
- `max-distance` (`number`, default: `distance * 1.6`): Maximum pull distance (in px), reached with a rubber band effect beyond `distance`.
|
|
192
|
+
- `resistance` (`number`, default: `0.5`): Ratio between the finger movement and the pull distance, between 0 and 1. Lower is stiffer.
|
|
193
|
+
- `min-duration` (`number`, default: `400`): Minimum duration (in ms) of the refreshing state, so the feedback stays visible on fast refreshes.
|
|
194
|
+
- `container-selector` (`string`): CSS selector of the scroll container. By default, the closest scrollable ancestor of the component, or the window. The pull only starts when this container is scrolled to the top.
|
|
195
|
+
- `header-class` (`ClassValue`): Class of the header that holds the indicator.
|
|
196
|
+
- `spinner-color` (`"primary" | "secondary" | "accent" | "info" | "success" | "warning" | "destructive" | "contrast" | "transparent"`, default: `"primary"`): Color of the progress ring and the spinner.
|
|
197
|
+
- `disabled` (`boolean`, default: `false`): Disable the pull to refresh.
|
|
198
|
+
- `standalone-mode` (`boolean`, default: `false`): Only enable the pull to refresh when the app runs as an installed PWA (standalone display mode), browsers already provide their own pull to refresh.
|
|
199
|
+
- `haptic` (`boolean`, default: `true`): Vibrate briefly when the pull reaches `distance` (devices supporting `navigator.vibrate`).
|
|
200
|
+
- `translations` (`{ pull?: string | undefined; release?: string | undefined; refreshing?: string | undefined; }`, default: `Translations from`): Translations of the pull to refresh.
|
|
201
|
+
- `offset` (`number`)
|
|
202
|
+
|
|
203
|
+
### Events
|
|
204
|
+
|
|
205
|
+
- `@loaded`: Emitted when `onRefresh` resolved
|
|
206
|
+
- `@error` (payload: `error: unknown`): Emitted when `onRefresh` threw or rejected
|
|
207
|
+
- `@start`: Emitted when the refresh starts
|
|
208
|
+
- `@response` (payload: `response: unknown`): Emitted with the value resolved by `onRefresh`
|
|
209
|
+
- `@finish`: Emitted when the refresh ends, after `loaded` or `error`
|
|
210
|
+
|
|
211
|
+
### Slots
|
|
212
|
+
|
|
213
|
+
- `#pull-before`: Content shown while pulling, before the threshold Bindings: `progress: number`, `distance: number`.
|
|
214
|
+
- `#pull-ready`: Content shown once releasing triggers a refresh Bindings: `progress: number`, `distance: number`.
|
|
215
|
+
- `#pull-loading`: Content shown while refreshing Bindings: `progress: number`, `distance: number`.
|
|
216
|
+
- `#default`: Content of the page
|
|
217
|
+
|
|
218
|
+
### Exposed (template ref)
|
|
207
219
|
|
|
208
|
-
|
|
220
|
+
- `refresh`: Run the refresh programmatically (a "refresh" button for keyboard and mouse users)
|
|
221
|
+
- `isRefreshing`: `onRefresh` is running
|
|
222
|
+
- `progress`: Pull progress towards `distance`, from 0 to 1
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MazRadioButtons"
|
|
3
|
+
description: "MazRadioButtons is a standalone component to select a value in a list. Made with native HTMLInputElement type radio"
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/components/maz-radio-buttons"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# MazRadioButtons
|
|
9
|
+
|
|
10
|
+
> MazRadioButtons is a standalone component to select a value in a list. Made with native HTMLInputElement type radio
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import MazRadioButtons from 'maz-ui/components/MazRadioButtons'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
15
|
+
- Web: https://maz-ui.com/components/maz-radio-buttons
|
|
16
|
+
|
|
17
|
+
> Before use it, you should install the MazUi plugin in your project, follow instructions in [Getting Started](../guide/getting-started.md)
|
|
18
|
+
|
|
19
|
+
## Basic usage
|
|
20
|
+
|
|
21
|
+
```vue
|
|
22
|
+
<template>
|
|
23
|
+
<MazRadioButtons
|
|
24
|
+
v-model="selectedCompetition"
|
|
25
|
+
:options="competitions"
|
|
26
|
+
/>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script lang="ts" setup>
|
|
30
|
+
import { ref } from 'vue'
|
|
31
|
+
|
|
32
|
+
import MazRadioButtons from 'maz-ui/components/MazRadioButtons'
|
|
33
|
+
|
|
34
|
+
const selectedCompetition = ref<string>()
|
|
35
|
+
|
|
36
|
+
const competitions = [
|
|
37
|
+
{
|
|
38
|
+
value: "1",
|
|
39
|
+
label: "Ligue 1",
|
|
40
|
+
areaName: "France",
|
|
41
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
value: "2",
|
|
45
|
+
label: "Premier League",
|
|
46
|
+
areaName: "England",
|
|
47
|
+
areaEnsignUrl: "https://crests.football-data.org/770.svg",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
value: "3",
|
|
51
|
+
label: "Bundesliga",
|
|
52
|
+
areaName: "Germany",
|
|
53
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/commons/b/ba/Flag_of_Germany.svg",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
value: "4",
|
|
57
|
+
label: "Eredivisie",
|
|
58
|
+
areaName: "Netherlands",
|
|
59
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/commons/2/20/Flag_of_the_Netherlands.svg",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
value: "5",
|
|
63
|
+
label: "Serie A",
|
|
64
|
+
areaName: "Italy",
|
|
65
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/en/0/03/Flag_of_Italy.svg",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
value: "6",
|
|
69
|
+
label: "Primera Division",
|
|
70
|
+
areaName: "Spain",
|
|
71
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/en/9/9a/Flag_of_Spain.svg",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
value: "7",
|
|
75
|
+
label: "Primeira Liga",
|
|
76
|
+
areaName: "Portugal",
|
|
77
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/commons/5/5c/Flag_of_Portugal.svg",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
value: "8",
|
|
81
|
+
label: "UEFA Champions League",
|
|
82
|
+
areaName: "Europe",
|
|
83
|
+
areaEnsignUrl: "https://crests.football-data.org/EUR.svg",
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
</script>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Custom slot template
|
|
90
|
+
|
|
91
|
+
```html
|
|
92
|
+
<MazRadioButtons
|
|
93
|
+
v-model="selectedCompetition"
|
|
94
|
+
:options="competitions"
|
|
95
|
+
color="secondary"
|
|
96
|
+
>
|
|
97
|
+
<template #default="{ option, selected }">
|
|
98
|
+
<div style="display: flex;">
|
|
99
|
+
<MazAvatar
|
|
100
|
+
v-if="option.areaEnsignUrl"
|
|
101
|
+
:src="option.areaEnsignUrl"
|
|
102
|
+
style="margin-right: 16px;"
|
|
103
|
+
size="0.8rem"
|
|
104
|
+
/>
|
|
105
|
+
<div style="display: flex; flex-direction: column;">
|
|
106
|
+
<span>
|
|
107
|
+
{{ option.label }}
|
|
108
|
+
</span>
|
|
109
|
+
<span :class="{ 'text-muted': !selected }">
|
|
110
|
+
{{ option.areaName }}
|
|
111
|
+
</span>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</template>
|
|
115
|
+
</MazRadioButtons>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Orientation - Column
|
|
119
|
+
|
|
120
|
+
```vue
|
|
121
|
+
<template>
|
|
122
|
+
<MazRadioButtons
|
|
123
|
+
v-model="selectedCompetition"
|
|
124
|
+
:options="competitions"
|
|
125
|
+
orientation="col | row"
|
|
126
|
+
v-slot="{ option, selected }"
|
|
127
|
+
>
|
|
128
|
+
<div style="display: flex;">
|
|
129
|
+
<MazAvatar
|
|
130
|
+
v-if="option.areaEnsignUrl"
|
|
131
|
+
:src="option.areaEnsignUrl"
|
|
132
|
+
style="margin-right: 16px;"
|
|
133
|
+
size="0.8rem"
|
|
134
|
+
/>
|
|
135
|
+
<div style="display: flex; flex-direction: column;">
|
|
136
|
+
<span>
|
|
137
|
+
{{ option.label }}
|
|
138
|
+
</span>
|
|
139
|
+
<span :class="{ 'text-muted': !selected }">
|
|
140
|
+
{{ option.areaName }}
|
|
141
|
+
</span>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</MazRadioButtons>
|
|
145
|
+
</template>
|
|
146
|
+
|
|
147
|
+
<script lang="ts" setup>
|
|
148
|
+
import { ref } from 'vue'
|
|
149
|
+
|
|
150
|
+
import { MazRadioButtons, MazAvatar } from 'maz-ui/components'
|
|
151
|
+
|
|
152
|
+
const selectedCompetition = ref<string>()
|
|
153
|
+
|
|
154
|
+
const competitions = [
|
|
155
|
+
{
|
|
156
|
+
value: "1",
|
|
157
|
+
label: "Ligue 1",
|
|
158
|
+
areaName: "France",
|
|
159
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
value: "2",
|
|
163
|
+
label: "Premier League",
|
|
164
|
+
areaName: "England",
|
|
165
|
+
areaEnsignUrl: "https://crests.football-data.org/770.svg",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
value: "3",
|
|
169
|
+
label: "Bundesliga",
|
|
170
|
+
areaName: "Germany",
|
|
171
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/commons/b/ba/Flag_of_Germany.svg",
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
value: "4",
|
|
175
|
+
label: "Eredivisie",
|
|
176
|
+
areaName: "Netherlands",
|
|
177
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/commons/2/20/Flag_of_the_Netherlands.svg",
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
value: "5",
|
|
181
|
+
label: "Serie A",
|
|
182
|
+
areaName: "Italy",
|
|
183
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/en/0/03/Flag_of_Italy.svg",
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
value: "6",
|
|
187
|
+
label: "Primera Division",
|
|
188
|
+
areaName: "Spain",
|
|
189
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/en/9/9a/Flag_of_Spain.svg",
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
value: "7",
|
|
193
|
+
label: "Primeira Liga",
|
|
194
|
+
areaName: "Portugal",
|
|
195
|
+
areaEnsignUrl: "https://upload.wikimedia.org/wikipedia/commons/5/5c/Flag_of_Portugal.svg",
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
value: "8",
|
|
199
|
+
label: "UEFA Champions League",
|
|
200
|
+
areaName: "Europe",
|
|
201
|
+
areaEnsignUrl: "https://crests.football-data.org/EUR.svg",
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
</script>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Selector icon with options equal-size
|
|
208
|
+
|
|
209
|
+
This option will display a select icon on the left of the label
|
|
210
|
+
|
|
211
|
+
```vue
|
|
212
|
+
<template>
|
|
213
|
+
<MazRadioButtons
|
|
214
|
+
v-slot="{ option, selected }"
|
|
215
|
+
v-model="selectedMode"
|
|
216
|
+
:options="modeOptions"
|
|
217
|
+
selector
|
|
218
|
+
equal-size
|
|
219
|
+
block
|
|
220
|
+
>
|
|
221
|
+
<div class="flex flex-col items-start p-2">
|
|
222
|
+
<h3 class="mb-2 text-xl font-semibold">
|
|
223
|
+
{{ option.label }}
|
|
224
|
+
</h3>
|
|
225
|
+
<span :class="{ 'text-muted': !selected }">
|
|
226
|
+
{{ option.description }}
|
|
227
|
+
</span>
|
|
228
|
+
</div>
|
|
229
|
+
</MazRadioButtons>
|
|
230
|
+
</template>
|
|
231
|
+
|
|
232
|
+
<script lang="ts" setup>
|
|
233
|
+
import { ref } from 'vue'
|
|
234
|
+
import { type MazRadioButtonsOption } from 'maz-ui/components/MazRadioButtons'
|
|
235
|
+
|
|
236
|
+
const selectedMode = ref('scores')
|
|
237
|
+
|
|
238
|
+
const modeOptions: MazRadioButtonsOption[] = [
|
|
239
|
+
{
|
|
240
|
+
label: 'Scores',
|
|
241
|
+
value: 'scores',
|
|
242
|
+
description:
|
|
243
|
+
'Predict the score of matches. If you find the outcome of the match you win 5 points, if you get the perfect score you double your score!',
|
|
244
|
+
style: 'min-width: 250px;'
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
label: 'Cotes',
|
|
248
|
+
value: 'odds',
|
|
249
|
+
description:
|
|
250
|
+
'Predict with match odds. If you find the correct winner of the match you earn the points associated with the rating, if you have the perfect score you double your score.',
|
|
251
|
+
style: 'min-width: 250px;'
|
|
252
|
+
},
|
|
253
|
+
]
|
|
254
|
+
</script>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Types
|
|
258
|
+
|
|
259
|
+
### options
|
|
260
|
+
|
|
261
|
+
The options prop is an array of `ButtonsRadioOption` type
|
|
262
|
+
|
|
263
|
+
```ts
|
|
264
|
+
export type ButtonsRadioOption = {
|
|
265
|
+
/** The label of the option */
|
|
266
|
+
label: string
|
|
267
|
+
/** The value of the option */
|
|
268
|
+
value: string | number | boolean
|
|
269
|
+
/** The classes to apply to the option */
|
|
270
|
+
classes?: any
|
|
271
|
+
/** The style to apply to the option */
|
|
272
|
+
style?: StyleValue
|
|
273
|
+
} & Record<string, unknown>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Accessibility
|
|
277
|
+
|
|
278
|
+
The root element is a `radiogroup` of native radio inputs: pass an `aria-label` (or `aria-labelledby`) to name it. The `hint` describes the group (`aria-describedby`) and `error` sets `aria-invalid`. The arrows move between the options natively.
|
|
279
|
+
|
|
280
|
+
When no `name` is provided, each instance gets a unique one, so two groups of the same page never share their radios.
|
|
281
|
+
|
|
282
|
+
## MazRadioButtons API
|
|
283
|
+
|
|
284
|
+
`import MazRadioButtons from 'maz-ui/components/MazRadioButtons'`
|
|
285
|
+
|
|
286
|
+
### Props
|
|
287
|
+
|
|
288
|
+
- `model-value` (`T`, `v-model`): The value of the selected option.
|
|
289
|
+
- `options` (`Option[]`, required): The options to display.
|
|
290
|
+
- `name` (`string`, default: `a unique name per instance`): The name of the radio group.
|
|
291
|
+
- `color` (`"primary" | "secondary" | "accent" | "info" | "success" | "warning" | "destructive" | "contrast" | "transparent" | "surface"`, default: `"primary"`): The color of the selected radio buttons.
|
|
292
|
+
- `elevation` (`boolean`, default: `false`): Add elevation to the radio buttons.
|
|
293
|
+
- `orientation` (`"row" | "col"`, default: `"row"`): The orientation of the radio buttons.
|
|
294
|
+
- `wrap` (`boolean`, default: `true`): Disable the wrap of the radio buttons.
|
|
295
|
+
- `equal-size` (`boolean`, default: `false`): Make all radio buttons the same size.
|
|
296
|
+
- `selector` (`boolean`, default: `false`): Display a selector icon.
|
|
297
|
+
- `block` (`boolean`, default: `false`): The component will be displayed in full width.
|
|
298
|
+
- `error` (`boolean`): Whether there is an error with the input.
|
|
299
|
+
- `success` (`boolean`): Whether the input is successful.
|
|
300
|
+
- `warning` (`boolean`): Whether there is a warning with the input.
|
|
301
|
+
- `hint` (`string`): The hint text to display below the input.
|
|
302
|
+
- `size` (`"xs" | "sm" | "md" | "lg" | "xl" | "mini"`, default: `'md'`): The size of the radio buttons.
|
|
303
|
+
|
|
304
|
+
### Events
|
|
305
|
+
|
|
306
|
+
- `@update:model-value` (payload: `value: Option["value"]`): Emitted when the selected option change
|
|
307
|
+
- `@blur` (payload: `value: FocusEvent`): Emitted when the a radio button lost focus
|
|
308
|
+
- `@change` (payload: `value: Option["value"]`): Emitted when the selected option change
|
|
309
|
+
- `@focus` (payload: `value: FocusEvent`): Emitted when the a radio button is focused
|
|
310
|
+
|
|
311
|
+
### Slots
|
|
312
|
+
|
|
313
|
+
- `#default`: Label of the radio Bindings: `option: Option` (The value of the option), `selected: boolean` (If the option is selected).
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MazRadio"
|
|
3
|
+
description: "MazRadio is a standalone component"
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/components/maz-radio"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# MazRadio
|
|
9
|
+
|
|
10
|
+
> MazRadio is a standalone component
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import MazRadio from 'maz-ui/components/MazRadio'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
15
|
+
- Web: https://maz-ui.com/components/maz-radio
|
|
16
|
+
|
|
17
|
+
> Before use it, you should install the MazUi plugin in your project, follow instructions in [Getting Started](../guide/getting-started.md)
|
|
18
|
+
|
|
19
|
+
## Basic usage
|
|
20
|
+
|
|
21
|
+
`v-model=""`
|
|
22
|
+
|
|
23
|
+
**Details: View code**
|
|
24
|
+
|
|
25
|
+
```vue
|
|
26
|
+
<script lang="ts" setup>
|
|
27
|
+
import MazRadio from 'maz-ui/components/MazRadio'
|
|
28
|
+
import { ref } from 'vue'
|
|
29
|
+
|
|
30
|
+
const chosenColor = ref('primary')
|
|
31
|
+
const chosenSize = ref('mini')
|
|
32
|
+
|
|
33
|
+
const colors: Color[] = [
|
|
34
|
+
'primary',
|
|
35
|
+
'secondary',
|
|
36
|
+
'info',
|
|
37
|
+
'success',
|
|
38
|
+
'warning',
|
|
39
|
+
'destructive',
|
|
40
|
+
'accent',
|
|
41
|
+
'contrast',
|
|
42
|
+
]
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<template>
|
|
46
|
+
<MazRadio
|
|
47
|
+
v-for="color in colors"
|
|
48
|
+
:key="color"
|
|
49
|
+
v-model="chosenColor"
|
|
50
|
+
name="chosenColor"
|
|
51
|
+
:color="color"
|
|
52
|
+
:value="color"
|
|
53
|
+
>
|
|
54
|
+
{{ color }}
|
|
55
|
+
</MazRadio>
|
|
56
|
+
</template>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Sizing
|
|
60
|
+
|
|
61
|
+
`v-model=""`
|
|
62
|
+
|
|
63
|
+
**Details: View code**
|
|
64
|
+
|
|
65
|
+
```vue
|
|
66
|
+
<script lang="ts" setup>
|
|
67
|
+
import MazRadio from 'maz-ui/components/MazRadio'
|
|
68
|
+
import type { Size } from 'maz-ui/components'
|
|
69
|
+
import { ref } from 'vue'
|
|
70
|
+
|
|
71
|
+
const chosenSize = ref('mini')
|
|
72
|
+
|
|
73
|
+
const sizes: Size[] = ['mini', 'xs', 'sm', 'md', 'lg', 'xl']
|
|
74
|
+
</script>
|
|
75
|
+
|
|
76
|
+
<template>
|
|
77
|
+
<MazRadio
|
|
78
|
+
v-for="size in sizes"
|
|
79
|
+
:key="size"
|
|
80
|
+
v-model="chosenSize"
|
|
81
|
+
name="chosenSize"
|
|
82
|
+
:size="size"
|
|
83
|
+
:value="size"
|
|
84
|
+
:label="size"
|
|
85
|
+
/>
|
|
86
|
+
</template>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Disabled
|
|
90
|
+
|
|
91
|
+
## MazRadio API
|
|
92
|
+
|
|
93
|
+
`import MazRadio from 'maz-ui/components/MazRadio'`
|
|
94
|
+
|
|
95
|
+
### Props
|
|
96
|
+
|
|
97
|
+
- `id` (`string`): The id of the radio.
|
|
98
|
+
- `model-value` (`T`, `v-model`): The value of the radio.
|
|
99
|
+
- `value` (`T`, required): The value of the radio.
|
|
100
|
+
- `name` (`string`, required): The name of the radio.
|
|
101
|
+
- `label` (`string`): The label of the radio.
|
|
102
|
+
- `color` (`"primary" | "secondary" | "accent" | "info" | "success" | "warning" | "destructive" | "contrast" | "transparent"`, default: `"primary"`): The color of the radio.
|
|
103
|
+
- `size` (`"xs" | "sm" | "md" | "lg" | "xl" | "mini"`): The size of the radio.
|
|
104
|
+
- `disabled` (`boolean`, default: `false`): The disabled state of the radio.
|
|
105
|
+
- `error` (`boolean`): Whether there is an error with the input.
|
|
106
|
+
- `success` (`boolean`): Whether the input is successful.
|
|
107
|
+
- `warning` (`boolean`): Whether there is a warning with the input.
|
|
108
|
+
- `hint` (`string`): The hint text to display below the input.
|
|
109
|
+
|
|
110
|
+
### Events
|
|
111
|
+
|
|
112
|
+
- `@update:model-value` (payload: `value: T`): Event emitted when value change
|
|
113
|
+
- `@blur` (payload: `value: FocusEvent`): Emitted when the radio lost focus
|
|
114
|
+
- `@change` (payload: `value: T`): Event emitted when value change
|
|
115
|
+
- `@focus` (payload: `value: FocusEvent`): Emitted when the radio is focused
|
|
116
|
+
|
|
117
|
+
### Slots
|
|
118
|
+
|
|
119
|
+
- `#default` Bindings: `isSelected: boolean`, `value: T`.
|