wave-ui 3.27.2 → 3.28.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.
Files changed (32) hide show
  1. package/dist/types/types/$waveui.d.ts +6 -0
  2. package/dist/types/types/components/WAccordion.d.ts +7 -0
  3. package/dist/types/types/components/WBreadcrumbs.d.ts +7 -0
  4. package/dist/types/types/components/WButton.d.ts +7 -0
  5. package/dist/types/types/components/WList.d.ts +7 -0
  6. package/dist/types/types/components/WScrollable.d.ts +143 -0
  7. package/dist/types/types/components/WScrollable.js +2 -0
  8. package/dist/types/types/components/WTabs.d.ts +7 -0
  9. package/dist/types/types/components/WTag.d.ts +7 -0
  10. package/dist/types/types/components/index.d.ts +1 -0
  11. package/dist/wave-ui.cjs.js +3 -3
  12. package/dist/wave-ui.css +1 -1
  13. package/dist/wave-ui.esm.js +1392 -925
  14. package/dist/wave-ui.umd.js +3 -3
  15. package/package.json +6 -6
  16. package/src/wave-ui/components/w-accordion/index.vue +5 -1
  17. package/src/wave-ui/components/w-accordion/item.vue +42 -12
  18. package/src/wave-ui/components/w-breadcrumbs.vue +13 -2
  19. package/src/wave-ui/components/w-button/button.vue +15 -1
  20. package/src/wave-ui/components/w-button/index.vue +2 -1
  21. package/src/wave-ui/components/w-list.vue +12 -0
  22. package/src/wave-ui/components/w-scrollable.vue +667 -94
  23. package/src/wave-ui/components/w-tabs/index.vue +10 -0
  24. package/src/wave-ui/components/w-tag.vue +14 -0
  25. package/src/wave-ui/core.js +2 -0
  26. package/src/wave-ui/mixins/ripple.js +39 -0
  27. package/src/wave-ui/scss/_ripple.scss +37 -0
  28. package/src/wave-ui/scss/index.scss +1 -0
  29. package/src/wave-ui/scss/variables/_variables.scss +0 -2
  30. package/src/wave-ui/utils/config.js +2 -0
  31. package/src/wave-ui/utils/ripple.js +71 -0
  32. package/src/wave-ui/utils/wave-ripple-directive.js +40 -0
@@ -202,6 +202,12 @@ export interface $waveui {
202
202
  */
203
203
  transition: false | 'default' | 'bounce' | 'scale' | 'twist' | 'fade' | 'slide-fade-left' | 'slide-fade-right' | 'slide-fade-up' | 'slide-fade-down';
204
204
  };
205
+ /**
206
+ * Default pointer ripple for supported components and for `v-wave-ripple` when the binding is not `false`.
207
+ * @property {boolean} ripple - Default: true
208
+ * @see https://antoniandre.github.io/wave-ui/options-presets-and-waveui
209
+ */
210
+ ripple: boolean;
205
211
  /**
206
212
  * Component presets
207
213
  * @property presets
@@ -146,6 +146,13 @@ export interface WaveAccordionProps {
146
146
  * @see https://antoniandre.github.io/wave-ui/w-accordion
147
147
  */
148
148
  keepInDom?: boolean;
149
+ /**
150
+ * When `true`, disables the accordion title pointer ripple for all items.
151
+ * Global default still follows `$waveui.config.ripple`. Per-item override: set `no-ripple` on `w-accordion-item`.
152
+ * @property {boolean} noRipple
153
+ * @see https://antoniandre.github.io/wave-ui/w-accordion
154
+ */
155
+ noRipple?: boolean;
149
156
  }
150
157
  export interface WaveAccordionEmits {
151
158
  /**
@@ -80,6 +80,13 @@ export interface WaveBreadcrumbsProps {
80
80
  * @see https://antoniandre.github.io/wave-ui/w-breadcrumbs
81
81
  */
82
82
  xl?: boolean;
83
+ /**
84
+ * When `true`, disables the pointer ripple on link items for this breadcrumbs only.
85
+ * Global default still follows `$waveui.config.ripple`.
86
+ * @property {boolean} noRipple
87
+ * @see https://antoniandre.github.io/wave-ui/w-breadcrumbs
88
+ */
89
+ noRipple?: boolean;
83
90
  }
84
91
  export type WaveBreadcrumbsEmits = {};
85
92
  export interface WaveBreadcrumbsComputeds extends ComputedOptions {
@@ -196,6 +196,13 @@ export interface WaveButtonProps {
196
196
  * @see https://antoniandre.github.io/wave-ui/w-button
197
197
  */
198
198
  xl?: boolean;
199
+ /**
200
+ * When `true`, disables the pointer ripple on this button only.
201
+ * Global default still follows `$waveui.config.ripple`.
202
+ * @property {boolean} noRipple
203
+ * @see https://antoniandre.github.io/wave-ui/w-button
204
+ */
205
+ noRipple?: boolean;
199
206
  }
200
207
  export type WaveButtonEmits = {};
201
208
  export interface WaveButtonComputeds extends ComputedOptions {
@@ -145,6 +145,13 @@ export interface WaveListProps {
145
145
  * @see https://antoniandre.github.io/wave-ui/w-list
146
146
  */
147
147
  arrowsNavigation?: boolean;
148
+ /**
149
+ * When `true`, disables the pointer ripple on interactive rows for this list only.
150
+ * Global default still follows `$waveui.config.ripple`.
151
+ * @property {boolean} noRipple
152
+ * @see https://antoniandre.github.io/wave-ui/w-list
153
+ */
154
+ noRipple?: boolean;
148
155
  }
149
156
  export interface WaveListEmits {
150
157
  /**
@@ -0,0 +1,143 @@
1
+ import type { ComputedGetter, ComputedOptions, DefineComponent, EmitsOptions, ExtractDefaultPropTypes, MethodOptions, SlotsType } from 'vue';
2
+ import type { PublicProps, ResolveProps } from '../extra-vue-types';
3
+ export type WaveScrollableScrollSource = 'native' | 'wheel' | 'keyboard' | 'api' | 'drag';
4
+ export interface WaveScrollableScrollPayload {
5
+ top: number;
6
+ left: number;
7
+ maxTop: number;
8
+ maxLeft: number;
9
+ topPercent: number;
10
+ leftPercent: number;
11
+ source: WaveScrollableScrollSource;
12
+ }
13
+ /** Per-axis pixel offsets for the `scroll-position` prop. */
14
+ export interface WaveScrollableScrollPosition {
15
+ top?: number;
16
+ left?: number;
17
+ }
18
+ /** `scroll-position` prop: a number is the primary axis (`top` when vertical, `left` when horizontal), or set one or both axes with an object. */
19
+ export type WaveScrollableScrollPositionInput = number | WaveScrollableScrollPosition;
20
+ /** Accepted `scrollbar` prop values. */
21
+ export type WaveScrollableScrollbar = 0 | 1 | '0' | '1' | 'hover' | 'interaction';
22
+ export interface WaveScrollableProps {
23
+ /**
24
+ * Applies a color to the scrollbar thumb.
25
+ * @property {string} color - Default: 'primary'
26
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
27
+ */
28
+ color?: string;
29
+ /**
30
+ * Applies a color to the scrollbar track.
31
+ * @property {string} bgColor
32
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
33
+ */
34
+ bgColor?: string;
35
+ /**
36
+ * Limits the component width.
37
+ * @property {number|string} width
38
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
39
+ */
40
+ width?: number | string;
41
+ /**
42
+ * Limits the component height.
43
+ * @property {number|string} height
44
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
45
+ */
46
+ height?: number | string;
47
+ /**
48
+ * Classes applied to the inner scroll container (padding, typography, etc.).
49
+ * @property {string|object|array} contentClass
50
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
51
+ */
52
+ contentClass?: string | Record<string, boolean> | (string | Record<string, boolean>)[];
53
+ /**
54
+ * Fully inert: no keyboard, wheel, or custom drag; root gets aria-disabled and tabindex -1.
55
+ * @property {boolean} disabled - Default: false
56
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
57
+ */
58
+ disabled?: boolean;
59
+ /**
60
+ * Sets the root tabindex.
61
+ * @property {number|string} tabindex - Default: 0
62
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
63
+ */
64
+ tabindex?: number | string;
65
+ /**
66
+ * Defines the wheel and arrow-key step in pixels.
67
+ * @property {number} wheelStep - Default: 40
68
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
69
+ */
70
+ wheelStep?: number;
71
+ /**
72
+ * When true, scrolling is along X (`scrollLeft`); default false is vertical (`scrollTop`).
73
+ * @property {boolean} horizontal - Default: false
74
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
75
+ */
76
+ horizontal?: boolean;
77
+ /**
78
+ * Custom scrollbar: `1` (default, shown when there is overflow), `0` (hide track), `'hover'`, `'interaction'`.
79
+ * @property {WaveScrollableScrollbar} scrollbar - Default: 1
80
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
81
+ */
82
+ scrollbar?: WaveScrollableScrollbar;
83
+ /**
84
+ * Programmatic scroll: applied on change (deep watch for objects) and after first layout.
85
+ * A number sets the primary axis; an object sets `top` and/or `left` when those keys are present.
86
+ * @property {WaveScrollableScrollPositionInput|null} scrollPosition - Default: null
87
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
88
+ */
89
+ scrollPosition?: WaveScrollableScrollPositionInput | null;
90
+ }
91
+ export interface WaveScrollableEmits {
92
+ /**
93
+ * Emitted on each scroll update.
94
+ * @param payload - Current scroll position and source.
95
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
96
+ */
97
+ 'onScroll'?: (payload: WaveScrollableScrollPayload) => void;
98
+ /**
99
+ * Emitted when a scroll sequence starts.
100
+ * @param payload - Current scroll position and source.
101
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
102
+ */
103
+ 'onScrollStart'?: (payload: WaveScrollableScrollPayload) => void;
104
+ /**
105
+ * Emitted when scrolling has settled after the last event.
106
+ * @param payload - Current scroll position; `source` is often `'native'`.
107
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
108
+ */
109
+ 'onScrollEnd'?: (payload: WaveScrollableScrollPayload) => void;
110
+ }
111
+ export interface WaveScrollableComputeds extends ComputedOptions {
112
+ hasOverflow: ComputedGetter<boolean>;
113
+ isHorizontal: ComputedGetter<boolean>;
114
+ }
115
+ export interface WaveScrollableMethods extends MethodOptions {
116
+ scroll(value?: number | {
117
+ top?: number;
118
+ left?: number;
119
+ behavior?: 'auto' | 'smooth';
120
+ }): void;
121
+ scrollTo(options?: {
122
+ top?: number;
123
+ left?: number;
124
+ behavior?: 'auto' | 'smooth';
125
+ }): void;
126
+ scrollBy(options?: {
127
+ top?: number;
128
+ left?: number;
129
+ behavior?: 'auto' | 'smooth';
130
+ }): void;
131
+ scrollToStart(): void;
132
+ scrollToEnd(): void;
133
+ focus(): void;
134
+ refresh(): void;
135
+ }
136
+ export type WaveScrollableSlots = SlotsType<{
137
+ /**
138
+ * Scrollable content.
139
+ * @see https://antoniandre.github.io/wave-ui/w-scrollable
140
+ */
141
+ 'default': () => any;
142
+ }>;
143
+ export type WScrollable = DefineComponent<WaveScrollableProps, {}, {}, WaveScrollableComputeds, WaveScrollableMethods, {}, {}, WaveScrollableEmits & EmitsOptions, string, PublicProps, ResolveProps<WaveScrollableProps & WaveScrollableEmits, EmitsOptions>, ExtractDefaultPropTypes<WaveScrollableProps>, WaveScrollableSlots>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -169,6 +169,13 @@ export interface WaveTabsProps {
169
169
  * @see https://antoniandre.github.io/wave-ui/w-tabs
170
170
  */
171
171
  keepInDom?: boolean;
172
+ /**
173
+ * When `true`, disables the tab bar pointer ripple on this tabs instance only.
174
+ * Global default still follows `$waveui.config.ripple`.
175
+ * @property {boolean} noRipple
176
+ * @see https://antoniandre.github.io/wave-ui/w-tabs
177
+ */
178
+ noRipple?: boolean;
172
179
  }
173
180
  export interface WaveTabsEmits {
174
181
  /**
@@ -116,6 +116,13 @@ export interface WaveTagProps {
116
116
  * @see https://antoniandre.github.io/wave-ui/w-tag
117
117
  */
118
118
  light?: boolean;
119
+ /**
120
+ * When `true`, disables the pointer ripple for clickable tags on this instance.
121
+ * Global default still follows `$waveui.config.ripple`.
122
+ * @property {boolean} noRipple
123
+ * @see https://antoniandre.github.io/wave-ui/w-tag
124
+ */
125
+ noRipple?: boolean;
119
126
  }
120
127
  export interface WaveTagEmits {
121
128
  /**
@@ -27,6 +27,7 @@ export { WProgress } from './WProgress';
27
27
  export { WRadio } from './WRadio';
28
28
  export { WRadios } from './WRadios';
29
29
  export { WRating } from './WRating';
30
+ export { WScrollable, type WaveScrollableScrollbar, type WaveScrollableScrollPayload, type WaveScrollableScrollPosition, type WaveScrollableScrollPositionInput, type WaveScrollableScrollSource } from './WScrollable';
30
31
  export { WSelect, WSelectDropdownItem } from './WSelect';
31
32
  export { WSlider } from './WSlider';
32
33
  export { WSpinner } from './WSpinner';