@primevue/mcp 4.5.5 → 5.0.0-rc.2
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/LICENSE.md +45 -21
- package/README.md +48 -250
- package/data/components.json +47269 -0
- package/data/llms/components/accordion.md +629 -0
- package/data/llms/components/animateonscroll.md +165 -0
- package/data/llms/components/autocomplete.md +995 -0
- package/data/llms/components/avatar.md +264 -0
- package/data/llms/components/badge.md +200 -0
- package/data/llms/components/blockui.md +99 -0
- package/data/llms/components/breadcrumb.md +269 -0
- package/data/llms/components/button.md +902 -0
- package/data/llms/components/card.md +209 -0
- package/data/llms/components/carousel.md +506 -0
- package/data/llms/components/cascadeselect.md +1207 -0
- package/data/llms/components/chart.md +1022 -0
- package/data/llms/components/checkbox.md +401 -0
- package/data/llms/components/chip.md +206 -0
- package/data/llms/components/colorpicker.md +213 -0
- package/data/llms/components/commandmenu.md +660 -0
- package/data/llms/components/compare.md +407 -0
- package/data/llms/components/confirmdialog.md +343 -0
- package/data/llms/components/confirmpopup.md +252 -0
- package/data/llms/components/contextmenu.md +522 -0
- package/data/llms/components/datatable.md +5266 -0
- package/data/llms/components/dataview.md +569 -0
- package/data/llms/components/datepicker.md +964 -0
- package/data/llms/components/deferredcontent.md +96 -0
- package/data/llms/components/dialog.md +702 -0
- package/data/llms/components/divider.md +152 -0
- package/data/llms/components/dock.md +488 -0
- package/data/llms/components/drawer.md +469 -0
- package/data/llms/components/dynamicdialog.md +214 -0
- package/data/llms/components/editor.md +205 -0
- package/data/llms/components/fieldset.md +253 -0
- package/data/llms/components/fileupload.md +459 -0
- package/data/llms/components/floatlabel.md +144 -0
- package/data/llms/components/fluid.md +104 -0
- package/data/llms/components/focustrap.md +59 -0
- package/data/llms/components/forms.md +344 -0
- package/data/llms/components/galleria.md +1119 -0
- package/data/llms/components/gallery.md +1003 -0
- package/data/llms/components/iconfield.md +283 -0
- package/data/llms/components/iftalabel.md +96 -0
- package/data/llms/components/image.md +179 -0
- package/data/llms/components/imagecompare.md +108 -0
- package/data/llms/components/inplace.md +183 -0
- package/data/llms/components/inputcolor.md +869 -0
- package/data/llms/components/inputgroup.md +419 -0
- package/data/llms/components/inputmask.md +345 -0
- package/data/llms/components/inputnumber.md +551 -0
- package/data/llms/components/inputotp.md +345 -0
- package/data/llms/components/inputpassword.md +738 -0
- package/data/llms/components/inputtags.md +432 -0
- package/data/llms/components/inputtext.md +569 -0
- package/data/llms/components/installation.md +1 -0
- package/data/llms/components/keyfilter.md +116 -0
- package/data/llms/components/knob.md +318 -0
- package/data/llms/components/label.md +151 -0
- package/data/llms/components/laravel.md +53 -0
- package/data/llms/components/listbox.md +636 -0
- package/data/llms/components/mask.md +203 -0
- package/data/llms/components/mcp.md +39 -0
- package/data/llms/components/megamenu.md +563 -0
- package/data/llms/components/menu.md +651 -0
- package/data/llms/components/menubar.md +446 -0
- package/data/llms/components/message.md +497 -0
- package/data/llms/components/metergroup.md +281 -0
- package/data/llms/components/multiselect.md +752 -0
- package/data/llms/components/orderlist.md +224 -0
- package/data/llms/components/organizationchart.md +418 -0
- package/data/llms/components/paginator.md +221 -0
- package/data/llms/components/panel.md +321 -0
- package/data/llms/components/panelmenu.md +703 -0
- package/data/llms/components/password.md +657 -0
- package/data/llms/components/picklist.md +286 -0
- package/data/llms/components/popover.md +145 -0
- package/data/llms/components/progressbar.md +242 -0
- package/data/llms/components/progressspinner.md +104 -0
- package/data/llms/components/radiobutton.md +427 -0
- package/data/llms/components/rating.md +312 -0
- package/data/llms/components/ripple.md +91 -0
- package/data/llms/components/scrollarea.md +700 -0
- package/data/llms/components/scrollpanel.md +131 -0
- package/data/llms/components/scrolltop.md +87 -0
- package/data/llms/components/select.md +1251 -0
- package/data/llms/components/selectbutton.md +268 -0
- package/data/llms/components/sidebar.md +2232 -0
- package/data/llms/components/skeleton.md +302 -0
- package/data/llms/components/slider.md +416 -0
- package/data/llms/components/speeddial.md +402 -0
- package/data/llms/components/splitbutton.md +840 -0
- package/data/llms/components/splitter.md +447 -0
- package/data/llms/components/stepper.md +551 -0
- package/data/llms/components/styleclass.md +226 -0
- package/data/llms/components/tabs.md +609 -0
- package/data/llms/components/tag.md +178 -0
- package/data/llms/components/terminal.md +123 -0
- package/data/llms/components/textarea.md +519 -0
- package/data/llms/components/tieredmenu.md +578 -0
- package/data/llms/components/timeline.md +494 -0
- package/data/llms/components/toast.md +472 -0
- package/data/llms/components/togglebutton.md +276 -0
- package/data/llms/components/toggleswitch.md +271 -0
- package/data/llms/components/toolbar.md +140 -0
- package/data/llms/components/tooltip.md +160 -0
- package/data/llms/components/tree.md +1076 -0
- package/data/llms/components/treeselect.md +660 -0
- package/data/llms/components/treetable.md +2493 -0
- package/data/llms/components/virtualscroller.md +265 -0
- package/data/llms/guides/autoimport.md +28 -0
- package/data/llms/guides/cdn.md +72 -0
- package/data/llms/guides/configuration.md +158 -0
- package/data/llms/guides/customicons.md +67 -0
- package/data/llms/guides/guides/accessibility.md +27 -0
- package/data/llms/guides/guides/animations.md +119 -0
- package/data/llms/guides/guides/rtl.md +7 -0
- package/data/llms/guides/icons.md +136 -0
- package/data/llms/guides/installation.md +3 -0
- package/data/llms/guides/laravel.md +66 -0
- package/data/llms/guides/llms.md +15 -0
- package/data/llms/guides/mcp.md +104 -0
- package/data/llms/guides/migration/v4.md +15 -0
- package/data/llms/guides/migration/v5.md +15 -0
- package/data/llms/guides/nuxt.md +141 -0
- package/data/llms/guides/passthrough.md +137 -0
- package/data/llms/guides/primeclt.md +43 -0
- package/data/llms/guides/tailwind.md +151 -0
- package/data/llms/guides/theming/styled.md +497 -0
- package/data/llms/guides/theming/unstyled.md +57 -0
- package/data/llms/guides/uikit.md +3 -0
- package/data/llms/guides/vite.md +90 -0
- package/data/llms/llms-full.txt +54465 -0
- package/data/llms/llms.txt +132 -0
- package/data/llms/pages/accessibility.md +27 -0
- package/data/llms/pages/animations.md +119 -0
- package/data/llms/pages/autoimport.md +28 -0
- package/data/llms/pages/cdn.md +72 -0
- package/data/llms/pages/configuration.md +158 -0
- package/data/llms/pages/contribution.md +31 -0
- package/data/llms/pages/customicons.md +67 -0
- package/data/llms/pages/designer.md +79 -0
- package/data/llms/pages/dynamicimports.md +7 -0
- package/data/llms/pages/forms.md +63 -0
- package/data/llms/pages/guides/accessibility.md +27 -0
- package/data/llms/pages/guides/animations.md +119 -0
- package/data/llms/pages/guides/rtl.md +7 -0
- package/data/llms/pages/icons.md +136 -0
- package/data/llms/pages/installation.md +3 -0
- package/data/llms/pages/introduction.md +23 -0
- package/data/llms/pages/laravel.md +66 -0
- package/data/llms/pages/llms.md +15 -0
- package/data/llms/pages/mcp.md +104 -0
- package/data/llms/pages/migration/v4.md +15 -0
- package/data/llms/pages/migration/v5.md +15 -0
- package/data/llms/pages/nuxt.md +141 -0
- package/data/llms/pages/passthrough.md +137 -0
- package/data/llms/pages/primeclt.md +43 -0
- package/data/llms/pages/rtl.md +7 -0
- package/data/llms/pages/setup.md +3 -0
- package/data/llms/pages/styled.md +497 -0
- package/data/llms/pages/tailwind.md +151 -0
- package/data/llms/pages/theming/styled.md +497 -0
- package/data/llms/pages/theming/unstyled.md +57 -0
- package/data/llms/pages/uikit.md +3 -0
- package/data/llms/pages/unstyled.md +57 -0
- package/data/llms/pages/v4.md +15 -0
- package/data/llms/pages/v5.md +15 -0
- package/data/llms/pages/vite.md +90 -0
- package/data/manifest.json +11117 -0
- package/data/mcp-data.json +55940 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.js +66066 -72541
- package/package.json +10 -12
|
@@ -0,0 +1,700 @@
|
|
|
1
|
+
# ScrollArea
|
|
2
|
+
|
|
3
|
+
ScrollArea is a cross browser, lightweight and themable alternative to native browser scrollbar.
|
|
4
|
+
|
|
5
|
+
## Basic
|
|
6
|
+
|
|
7
|
+
A custom scrollable container with styled scrollbars.
|
|
8
|
+
|
|
9
|
+
```vue
|
|
10
|
+
<template>
|
|
11
|
+
<div class="max-w-56 w-full mx-auto">
|
|
12
|
+
<div class="text-surface-500 dark:text-surface-400 font-medium text-sm uppercase font-mono tracking-tight mb-2">Automobiles</div>
|
|
13
|
+
<ScrollArea class="h-72">
|
|
14
|
+
<ScrollAreaViewport>
|
|
15
|
+
<ScrollAreaContent class="space-y-2">
|
|
16
|
+
<span v-for="car in automobiles" :key="car.label" class="flex items-end gap-0.5">
|
|
17
|
+
<span class="text-sm hover:underline!">{{ car.label }}</span>
|
|
18
|
+
<span class="text-surface-500 text-[11px] font-mono mb-px tracking-tighter">({{ car.value }})</span>
|
|
19
|
+
</span>
|
|
20
|
+
</ScrollAreaContent>
|
|
21
|
+
</ScrollAreaViewport>
|
|
22
|
+
<ScrollAreaScrollbar orientation="vertical">
|
|
23
|
+
<ScrollAreaHandle />
|
|
24
|
+
</ScrollAreaScrollbar>
|
|
25
|
+
</ScrollArea>
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script setup>
|
|
30
|
+
import { ref } from 'vue';
|
|
31
|
+
|
|
32
|
+
const automobiles = ref([
|
|
33
|
+
{ label: 'Audi', value: '200' },
|
|
34
|
+
{ label: 'BMW', value: '350' },
|
|
35
|
+
{ label: 'Mercedes-Benz', value: '420' },
|
|
36
|
+
{ label: 'Volkswagen', value: '510' },
|
|
37
|
+
{ label: 'Toyota', value: '610' },
|
|
38
|
+
{ label: 'Honda', value: '280' },
|
|
39
|
+
{ label: 'Hyundai', value: '390' },
|
|
40
|
+
{ label: 'Kia', value: '260' },
|
|
41
|
+
{ label: 'Ford', value: '470' },
|
|
42
|
+
{ label: 'Renault', value: '530' },
|
|
43
|
+
{ label: 'Peugeot', value: '410' },
|
|
44
|
+
{ label: 'Citroen', value: '190' },
|
|
45
|
+
{ label: 'Skoda', value: '360' },
|
|
46
|
+
{ label: 'Seat', value: '210' },
|
|
47
|
+
{ label: 'Opel', value: '440' },
|
|
48
|
+
{ label: 'Fiat', value: '620' },
|
|
49
|
+
{ label: 'Dacia', value: '380' },
|
|
50
|
+
{ label: 'Volvo', value: '140' },
|
|
51
|
+
{ label: 'Mazda', value: '120' },
|
|
52
|
+
{ label: 'Mitsubishi', value: '110' },
|
|
53
|
+
{ label: 'Nissan', value: '330' },
|
|
54
|
+
{ label: 'Subaru', value: '60' },
|
|
55
|
+
{ label: 'Suzuki', value: '170' },
|
|
56
|
+
{ label: 'Jeep', value: '95' },
|
|
57
|
+
{ label: 'Land Rover', value: '80' },
|
|
58
|
+
{ label: 'Porsche', value: '75' },
|
|
59
|
+
{ label: 'Ferrari', value: '12' },
|
|
60
|
+
{ label: 'Lamborghini', value: '9' },
|
|
61
|
+
{ label: 'Bentley', value: '15' },
|
|
62
|
+
{ label: 'Rolls-Royce', value: '6' },
|
|
63
|
+
{ label: 'Mini', value: '130' },
|
|
64
|
+
{ label: 'Tesla', value: '220' },
|
|
65
|
+
{ label: 'BYD', value: '55' },
|
|
66
|
+
{ label: 'Chery', value: '160' },
|
|
67
|
+
{ label: 'MG', value: '145' },
|
|
68
|
+
{ label: 'DS Automobiles', value: '40' },
|
|
69
|
+
{ label: 'Alfa Romeo', value: '50' },
|
|
70
|
+
{ label: 'Lancia', value: '8' },
|
|
71
|
+
{ label: 'Cadillac', value: '22' },
|
|
72
|
+
{ label: 'Chevrolet', value: '105' },
|
|
73
|
+
{ label: 'Dodge', value: '18' },
|
|
74
|
+
{ label: 'GMC', value: '14' },
|
|
75
|
+
{ label: 'Infiniti', value: '11' },
|
|
76
|
+
{ label: 'Acura', value: '7' },
|
|
77
|
+
{ label: 'Genesis', value: '35' },
|
|
78
|
+
{ label: 'Geely', value: '27' },
|
|
79
|
+
{ label: 'Proton', value: '19' },
|
|
80
|
+
{ label: 'Togg', value: '65' },
|
|
81
|
+
{ label: 'Rivian', value: '4' },
|
|
82
|
+
{ label: 'Lucid', value: '3' }
|
|
83
|
+
]);
|
|
84
|
+
<\/script>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Horizontal
|
|
88
|
+
|
|
89
|
+
ScrollArea supports horizontal scrolling for content that extends beyond the horizontal viewport.
|
|
90
|
+
|
|
91
|
+
```vue
|
|
92
|
+
<template>
|
|
93
|
+
<div>
|
|
94
|
+
<div class="flex justify-center">
|
|
95
|
+
<ScrollArea class="max-w-md mx-auto">
|
|
96
|
+
<ScrollAreaViewport class="p-3.5!">
|
|
97
|
+
<ScrollAreaContent>
|
|
98
|
+
<div class="flex gap-4 min-w-max">
|
|
99
|
+
<figure v-for="(image, index) in images" :key="index" class="shrink-0">
|
|
100
|
+
<img :src="image.itemImageSrc" :alt="image.title" class="w-72 h-40 object-cover rounded-sm" />
|
|
101
|
+
<figcaption class="mt-2 text-xs">
|
|
102
|
+
<span class="opacity-60">Photo by</span> <span class="font-medium">{{ image.title }}</span>
|
|
103
|
+
</figcaption>
|
|
104
|
+
</figure>
|
|
105
|
+
</div>
|
|
106
|
+
</ScrollAreaContent>
|
|
107
|
+
</ScrollAreaViewport>
|
|
108
|
+
<ScrollAreaScrollbar orientation="horizontal">
|
|
109
|
+
<ScrollAreaHandle />
|
|
110
|
+
</ScrollAreaScrollbar>
|
|
111
|
+
</ScrollArea>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</template>
|
|
115
|
+
|
|
116
|
+
<script setup>
|
|
117
|
+
import { onMounted, ref } from 'vue';
|
|
118
|
+
import { PhotoService } from '@/service/PhotoService';
|
|
119
|
+
|
|
120
|
+
const images = ref([]);
|
|
121
|
+
|
|
122
|
+
onMounted(() => {
|
|
123
|
+
PhotoService.getImages().then((data) => (images.value = data));
|
|
124
|
+
});
|
|
125
|
+
<\/script>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Both Scrollbars
|
|
129
|
+
|
|
130
|
+
Both vertical and horizontal scrollbars are displayed when the content overflows in both directions.
|
|
131
|
+
|
|
132
|
+
```vue
|
|
133
|
+
<template>
|
|
134
|
+
<div>
|
|
135
|
+
<ScrollArea class="h-80 max-w-sm mx-auto w-full rounded-md overflow-hidden">
|
|
136
|
+
<ScrollAreaViewport class="p-0!">
|
|
137
|
+
<ScrollAreaContent>
|
|
138
|
+
<table class="min-w-xl w-full text-sm border-collapse border-0">
|
|
139
|
+
<thead class="sticky top-0 z-10">
|
|
140
|
+
<tr class="bg-surface-100 dark:bg-surface-800 border-b border-surface">
|
|
141
|
+
<th v-for="col in columns" :key="col.key" class="border-b border-surface px-4 py-2 text-left text-sm whitespace-nowrap uppercase font-mono font-light">
|
|
142
|
+
{{ col.label }}
|
|
143
|
+
</th>
|
|
144
|
+
</tr>
|
|
145
|
+
</thead>
|
|
146
|
+
<tbody>
|
|
147
|
+
<tr v-for="(city, i) in usCities" :key="i" class="last:border-0 border-b border-surface odd:bg-surface-50 dark:odd:bg-surface-900/40 hover:bg-primary/5">
|
|
148
|
+
<td class="px-4 py-2 font-medium whitespace-nowrap">{{ city.city }}</td>
|
|
149
|
+
<td class="px-4 py-2 text-surface-500">{{ city.state }}</td>
|
|
150
|
+
<td class="px-4 py-2 tabular-nums">{{ city.population.toLocaleString() }}</td>
|
|
151
|
+
<td class="px-4 py-2 tabular-nums">{{ city.area_km2.toLocaleString() }}</td>
|
|
152
|
+
</tr>
|
|
153
|
+
</tbody>
|
|
154
|
+
</table>
|
|
155
|
+
</ScrollAreaContent>
|
|
156
|
+
</ScrollAreaViewport>
|
|
157
|
+
<ScrollAreaScrollbar orientation="vertical" class="m-0! bg-transparent!">
|
|
158
|
+
<ScrollAreaHandle />
|
|
159
|
+
</ScrollAreaScrollbar>
|
|
160
|
+
<ScrollAreaScrollbar orientation="horizontal" class="m-0! bg-transparent!">
|
|
161
|
+
<ScrollAreaHandle />
|
|
162
|
+
</ScrollAreaScrollbar>
|
|
163
|
+
<ScrollAreaCorner />
|
|
164
|
+
</ScrollArea>
|
|
165
|
+
</div>
|
|
166
|
+
</template>
|
|
167
|
+
|
|
168
|
+
<script setup>
|
|
169
|
+
import { ref } from 'vue';
|
|
170
|
+
|
|
171
|
+
const columns = ref([
|
|
172
|
+
{ key: 'city', label: 'City' },
|
|
173
|
+
{ key: 'state', label: 'State' },
|
|
174
|
+
{ key: 'population', label: 'Population' },
|
|
175
|
+
{ key: 'area_km2', label: 'Area (km²)' }
|
|
176
|
+
]);
|
|
177
|
+
|
|
178
|
+
const usCities = ref([
|
|
179
|
+
{ city: 'New York', state: 'NY', population: 8419600, area_km2: 783.8 },
|
|
180
|
+
{ city: 'Los Angeles', state: 'CA', population: 3980400, area_km2: 1214.9 },
|
|
181
|
+
{ city: 'Chicago', state: 'IL', population: 2716000, area_km2: 589.6 },
|
|
182
|
+
{ city: 'Houston', state: 'TX', population: 2328000, area_km2: 1651.1 },
|
|
183
|
+
{ city: 'Phoenix', state: 'AZ', population: 1690000, area_km2: 1340.6 },
|
|
184
|
+
{ city: 'Philadelphia', state: 'PA', population: 1584200, area_km2: 369.6 },
|
|
185
|
+
{ city: 'San Antonio', state: 'TX', population: 1547200, area_km2: 1194.0 },
|
|
186
|
+
{ city: 'San Diego', state: 'CA', population: 1423800, area_km2: 964.5 },
|
|
187
|
+
{ city: 'Dallas', state: 'TX', population: 1341100, area_km2: 882.9 },
|
|
188
|
+
{ city: 'San Jose', state: 'CA', population: 1035300, area_km2: 469.7 },
|
|
189
|
+
{ city: 'Austin', state: 'TX', population: 1010000, area_km2: 704.0 },
|
|
190
|
+
{ city: 'Jacksonville', state: 'FL', population: 949600, area_km2: 2265.3 },
|
|
191
|
+
{ city: 'Fort Worth', state: 'TX', population: 918900, area_km2: 920.9 },
|
|
192
|
+
{ city: 'Columbus', state: 'OH', population: 905700, area_km2: 577.9 },
|
|
193
|
+
{ city: 'Charlotte', state: 'NC', population: 885700, area_km2: 771.0 },
|
|
194
|
+
{ city: 'San Francisco', state: 'CA', population: 873900, area_km2: 121.4 },
|
|
195
|
+
{ city: 'Indianapolis', state: 'IN', population: 876400, area_km2: 953.0 },
|
|
196
|
+
{ city: 'Seattle', state: 'WA', population: 737000, area_km2: 217.0 },
|
|
197
|
+
{ city: 'Denver', state: 'CO', population: 715500, area_km2: 401.3 },
|
|
198
|
+
{ city: 'Washington', state: 'DC', population: 689500, area_km2: 177.0 },
|
|
199
|
+
{ city: 'Boston', state: 'MA', population: 675600, area_km2: 232.1 },
|
|
200
|
+
{ city: 'El Paso', state: 'TX', population: 678800, area_km2: 663.7 },
|
|
201
|
+
{ city: 'Nashville', state: 'TN', population: 689400, area_km2: 1362.2 },
|
|
202
|
+
{ city: 'Detroit', state: 'MI', population: 639100, area_km2: 370.0 },
|
|
203
|
+
{ city: 'Oklahoma City', state: 'OK', population: 681100, area_km2: 1608.8 }
|
|
204
|
+
]);
|
|
205
|
+
<\/script>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Scroll Fade
|
|
209
|
+
|
|
210
|
+
The mask property adds a gradient fade effect at the scroll edges.
|
|
211
|
+
|
|
212
|
+
```vue
|
|
213
|
+
<template>
|
|
214
|
+
<div class="max-w-56 w-full mx-auto">
|
|
215
|
+
<div class="text-surface-500 dark:text-surface-400 font-medium text-sm uppercase font-mono tracking-tight mb-2">Automobiles</div>
|
|
216
|
+
<ScrollArea class="h-72" mask>
|
|
217
|
+
<ScrollAreaViewport>
|
|
218
|
+
<ScrollAreaContent class="space-y-2">
|
|
219
|
+
<span v-for="car in automobiles" :key="car.label" class="flex items-end gap-0.5">
|
|
220
|
+
<span class="text-sm hover:underline!">{{ car.label }}</span>
|
|
221
|
+
<span class="text-surface-500 text-[11px] font-mono mb-px tracking-tighter">({{ car.value }})</span>
|
|
222
|
+
</span>
|
|
223
|
+
</ScrollAreaContent>
|
|
224
|
+
</ScrollAreaViewport>
|
|
225
|
+
<ScrollAreaScrollbar orientation="vertical">
|
|
226
|
+
<ScrollAreaHandle />
|
|
227
|
+
</ScrollAreaScrollbar>
|
|
228
|
+
</ScrollArea>
|
|
229
|
+
</div>
|
|
230
|
+
</template>
|
|
231
|
+
|
|
232
|
+
<script setup>
|
|
233
|
+
import { ref } from 'vue';
|
|
234
|
+
|
|
235
|
+
const automobiles = ref([
|
|
236
|
+
{ label: 'Audi', value: '200' },
|
|
237
|
+
{ label: 'BMW', value: '350' },
|
|
238
|
+
{ label: 'Mercedes-Benz', value: '420' },
|
|
239
|
+
{ label: 'Volkswagen', value: '510' },
|
|
240
|
+
{ label: 'Toyota', value: '610' },
|
|
241
|
+
{ label: 'Honda', value: '280' },
|
|
242
|
+
{ label: 'Hyundai', value: '390' },
|
|
243
|
+
{ label: 'Kia', value: '260' },
|
|
244
|
+
{ label: 'Ford', value: '470' },
|
|
245
|
+
{ label: 'Renault', value: '530' },
|
|
246
|
+
{ label: 'Peugeot', value: '410' },
|
|
247
|
+
{ label: 'Citroen', value: '190' },
|
|
248
|
+
{ label: 'Skoda', value: '360' },
|
|
249
|
+
{ label: 'Seat', value: '210' },
|
|
250
|
+
{ label: 'Opel', value: '440' },
|
|
251
|
+
{ label: 'Fiat', value: '620' },
|
|
252
|
+
{ label: 'Dacia', value: '380' },
|
|
253
|
+
{ label: 'Volvo', value: '140' },
|
|
254
|
+
{ label: 'Mazda', value: '120' },
|
|
255
|
+
{ label: 'Mitsubishi', value: '110' },
|
|
256
|
+
{ label: 'Nissan', value: '330' },
|
|
257
|
+
{ label: 'Subaru', value: '60' },
|
|
258
|
+
{ label: 'Suzuki', value: '170' },
|
|
259
|
+
{ label: 'Jeep', value: '95' },
|
|
260
|
+
{ label: 'Land Rover', value: '80' },
|
|
261
|
+
{ label: 'Porsche', value: '75' },
|
|
262
|
+
{ label: 'Ferrari', value: '12' },
|
|
263
|
+
{ label: 'Lamborghini', value: '9' },
|
|
264
|
+
{ label: 'Bentley', value: '15' },
|
|
265
|
+
{ label: 'Rolls-Royce', value: '6' },
|
|
266
|
+
{ label: 'Mini', value: '130' },
|
|
267
|
+
{ label: 'Tesla', value: '220' },
|
|
268
|
+
{ label: 'BYD', value: '55' },
|
|
269
|
+
{ label: 'Chery', value: '160' },
|
|
270
|
+
{ label: 'MG', value: '145' },
|
|
271
|
+
{ label: 'DS Automobiles', value: '40' },
|
|
272
|
+
{ label: 'Alfa Romeo', value: '50' },
|
|
273
|
+
{ label: 'Lancia', value: '8' },
|
|
274
|
+
{ label: 'Cadillac', value: '22' },
|
|
275
|
+
{ label: 'Chevrolet', value: '105' },
|
|
276
|
+
{ label: 'Dodge', value: '18' },
|
|
277
|
+
{ label: 'GMC', value: '14' },
|
|
278
|
+
{ label: 'Infiniti', value: '11' },
|
|
279
|
+
{ label: 'Acura', value: '7' },
|
|
280
|
+
{ label: 'Genesis', value: '35' },
|
|
281
|
+
{ label: 'Geely', value: '27' },
|
|
282
|
+
{ label: 'Proton', value: '19' },
|
|
283
|
+
{ label: 'Togg', value: '65' },
|
|
284
|
+
{ label: 'Rivian', value: '4' },
|
|
285
|
+
{ label: 'Lucid', value: '3' }
|
|
286
|
+
]);
|
|
287
|
+
<\/script>
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Variant
|
|
291
|
+
|
|
292
|
+
Change the visibility behavior of scrollbars with the variant property.
|
|
293
|
+
|
|
294
|
+
```vue
|
|
295
|
+
<template>
|
|
296
|
+
<div>
|
|
297
|
+
<div class="flex flex-col items-center">
|
|
298
|
+
<div class="flex flex-wrap items-center justify-center gap-0.5">
|
|
299
|
+
<Button v-for="mode in modes" :key="mode" size="small" :severity="variant === mode ? undefined : 'secondary'" :variant="mode === variant ? undefined : 'text'" class="capitalize cursor-pointer" @click="variant = mode">{{ mode }}</Button>
|
|
300
|
+
</div>
|
|
301
|
+
<div class="mt-8 max-w-56 w-full mx-auto">
|
|
302
|
+
<div class="text-surface-500 dark:text-surface-400 font-medium text-sm uppercase font-mono tracking-tight mb-2">Automobiles</div>
|
|
303
|
+
<ScrollArea class="h-72" :variant="variant">
|
|
304
|
+
<ScrollAreaViewport>
|
|
305
|
+
<ScrollAreaContent class="space-y-2">
|
|
306
|
+
<span v-for="car in automobiles" :key="car.label" class="flex items-end gap-0.5">
|
|
307
|
+
<span class="text-sm hover:underline!">{{ car.label }}</span>
|
|
308
|
+
<span class="text-surface-500 text-[11px] font-mono mb-px tracking-tighter">({{ car.value }})</span>
|
|
309
|
+
</span>
|
|
310
|
+
</ScrollAreaContent>
|
|
311
|
+
</ScrollAreaViewport>
|
|
312
|
+
<ScrollAreaScrollbar orientation="vertical">
|
|
313
|
+
<ScrollAreaHandle />
|
|
314
|
+
</ScrollAreaScrollbar>
|
|
315
|
+
</ScrollArea>
|
|
316
|
+
</div>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
</template>
|
|
320
|
+
|
|
321
|
+
<script setup>
|
|
322
|
+
import { ref } from 'vue';
|
|
323
|
+
|
|
324
|
+
const variant = ref('auto');
|
|
325
|
+
const modes = ref(['auto', 'hover', 'scroll', 'always', 'hidden']);
|
|
326
|
+
|
|
327
|
+
const automobiles = ref([
|
|
328
|
+
{ label: 'Audi', value: '200' },
|
|
329
|
+
{ label: 'BMW', value: '350' },
|
|
330
|
+
{ label: 'Mercedes-Benz', value: '420' },
|
|
331
|
+
{ label: 'Volkswagen', value: '510' },
|
|
332
|
+
{ label: 'Toyota', value: '610' },
|
|
333
|
+
{ label: 'Honda', value: '280' },
|
|
334
|
+
{ label: 'Hyundai', value: '390' },
|
|
335
|
+
{ label: 'Kia', value: '260' },
|
|
336
|
+
{ label: 'Ford', value: '470' },
|
|
337
|
+
{ label: 'Renault', value: '530' },
|
|
338
|
+
{ label: 'Peugeot', value: '410' },
|
|
339
|
+
{ label: 'Citroen', value: '190' },
|
|
340
|
+
{ label: 'Skoda', value: '360' },
|
|
341
|
+
{ label: 'Seat', value: '210' },
|
|
342
|
+
{ label: 'Opel', value: '440' },
|
|
343
|
+
{ label: 'Fiat', value: '620' },
|
|
344
|
+
{ label: 'Dacia', value: '380' },
|
|
345
|
+
{ label: 'Volvo', value: '140' },
|
|
346
|
+
{ label: 'Mazda', value: '120' },
|
|
347
|
+
{ label: 'Mitsubishi', value: '110' },
|
|
348
|
+
{ label: 'Nissan', value: '330' },
|
|
349
|
+
{ label: 'Subaru', value: '60' },
|
|
350
|
+
{ label: 'Suzuki', value: '170' },
|
|
351
|
+
{ label: 'Jeep', value: '95' },
|
|
352
|
+
{ label: 'Land Rover', value: '80' },
|
|
353
|
+
{ label: 'Porsche', value: '75' },
|
|
354
|
+
{ label: 'Ferrari', value: '12' },
|
|
355
|
+
{ label: 'Lamborghini', value: '9' },
|
|
356
|
+
{ label: 'Bentley', value: '15' },
|
|
357
|
+
{ label: 'Rolls-Royce', value: '6' },
|
|
358
|
+
{ label: 'Mini', value: '130' },
|
|
359
|
+
{ label: 'Tesla', value: '220' },
|
|
360
|
+
{ label: 'BYD', value: '55' },
|
|
361
|
+
{ label: 'Chery', value: '160' },
|
|
362
|
+
{ label: 'MG', value: '145' },
|
|
363
|
+
{ label: 'DS Automobiles', value: '40' },
|
|
364
|
+
{ label: 'Alfa Romeo', value: '50' },
|
|
365
|
+
{ label: 'Lancia', value: '8' },
|
|
366
|
+
{ label: 'Cadillac', value: '22' },
|
|
367
|
+
{ label: 'Chevrolet', value: '105' },
|
|
368
|
+
{ label: 'Dodge', value: '18' },
|
|
369
|
+
{ label: 'GMC', value: '14' },
|
|
370
|
+
{ label: 'Infiniti', value: '11' },
|
|
371
|
+
{ label: 'Acura', value: '7' },
|
|
372
|
+
{ label: 'Genesis', value: '35' },
|
|
373
|
+
{ label: 'Geely', value: '27' },
|
|
374
|
+
{ label: 'Proton', value: '19' },
|
|
375
|
+
{ label: 'Togg', value: '65' },
|
|
376
|
+
{ label: 'Rivian', value: '4' },
|
|
377
|
+
{ label: 'Lucid', value: '3' }
|
|
378
|
+
]);
|
|
379
|
+
<\/script>
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
## Custom
|
|
383
|
+
|
|
384
|
+
Scrollbar and thumb elements can be customized using classes on the sub-components.
|
|
385
|
+
|
|
386
|
+
```vue
|
|
387
|
+
<template>
|
|
388
|
+
<div class="max-w-56 w-full mx-auto">
|
|
389
|
+
<div class="text-surface-500 dark:text-surface-400 font-medium text-sm uppercase font-mono tracking-tight mb-2">Automobiles</div>
|
|
390
|
+
<ScrollArea class="h-72">
|
|
391
|
+
<ScrollAreaViewport>
|
|
392
|
+
<ScrollAreaContent class="space-y-2">
|
|
393
|
+
<span v-for="car in automobiles" :key="car.label" class="flex items-end gap-0.5">
|
|
394
|
+
<span class="text-sm hover:underline!">{{ car.label }}</span>
|
|
395
|
+
<span class="text-surface-500 text-[11px] font-mono mb-px tracking-tighter">({{ car.value }})</span>
|
|
396
|
+
</span>
|
|
397
|
+
</ScrollAreaContent>
|
|
398
|
+
</ScrollAreaViewport>
|
|
399
|
+
<ScrollAreaScrollbar class="rounded-full! bg-indigo-500/10!">
|
|
400
|
+
<ScrollAreaHandle class="relative bg-transparent! after:content-[''] after:rounded-full after:bg-indigo-500 after:absolute after:inset-0 active:after:scale-y-90 active:after:scale-x-75 after:transition-transform" />
|
|
401
|
+
</ScrollAreaScrollbar>
|
|
402
|
+
</ScrollArea>
|
|
403
|
+
</div>
|
|
404
|
+
</template>
|
|
405
|
+
|
|
406
|
+
<script setup>
|
|
407
|
+
import { ref } from 'vue';
|
|
408
|
+
|
|
409
|
+
const automobiles = ref([
|
|
410
|
+
{ label: 'Audi', value: '200' },
|
|
411
|
+
{ label: 'BMW', value: '350' },
|
|
412
|
+
{ label: 'Mercedes-Benz', value: '420' },
|
|
413
|
+
{ label: 'Volkswagen', value: '510' },
|
|
414
|
+
{ label: 'Toyota', value: '610' },
|
|
415
|
+
{ label: 'Honda', value: '280' },
|
|
416
|
+
{ label: 'Hyundai', value: '390' },
|
|
417
|
+
{ label: 'Kia', value: '260' },
|
|
418
|
+
{ label: 'Ford', value: '470' },
|
|
419
|
+
{ label: 'Renault', value: '530' },
|
|
420
|
+
{ label: 'Peugeot', value: '410' },
|
|
421
|
+
{ label: 'Citroen', value: '190' },
|
|
422
|
+
{ label: 'Skoda', value: '360' },
|
|
423
|
+
{ label: 'Seat', value: '210' },
|
|
424
|
+
{ label: 'Opel', value: '440' },
|
|
425
|
+
{ label: 'Fiat', value: '620' },
|
|
426
|
+
{ label: 'Dacia', value: '380' },
|
|
427
|
+
{ label: 'Volvo', value: '140' },
|
|
428
|
+
{ label: 'Mazda', value: '120' },
|
|
429
|
+
{ label: 'Mitsubishi', value: '110' },
|
|
430
|
+
{ label: 'Nissan', value: '330' },
|
|
431
|
+
{ label: 'Subaru', value: '60' },
|
|
432
|
+
{ label: 'Suzuki', value: '170' },
|
|
433
|
+
{ label: 'Jeep', value: '95' },
|
|
434
|
+
{ label: 'Land Rover', value: '80' },
|
|
435
|
+
{ label: 'Porsche', value: '75' },
|
|
436
|
+
{ label: 'Ferrari', value: '12' },
|
|
437
|
+
{ label: 'Lamborghini', value: '9' },
|
|
438
|
+
{ label: 'Bentley', value: '15' },
|
|
439
|
+
{ label: 'Rolls-Royce', value: '6' },
|
|
440
|
+
{ label: 'Mini', value: '130' },
|
|
441
|
+
{ label: 'Tesla', value: '220' },
|
|
442
|
+
{ label: 'BYD', value: '55' },
|
|
443
|
+
{ label: 'Chery', value: '160' },
|
|
444
|
+
{ label: 'MG', value: '145' },
|
|
445
|
+
{ label: 'DS Automobiles', value: '40' },
|
|
446
|
+
{ label: 'Alfa Romeo', value: '50' },
|
|
447
|
+
{ label: 'Lancia', value: '8' },
|
|
448
|
+
{ label: 'Cadillac', value: '22' },
|
|
449
|
+
{ label: 'Chevrolet', value: '105' },
|
|
450
|
+
{ label: 'Dodge', value: '18' },
|
|
451
|
+
{ label: 'GMC', value: '14' },
|
|
452
|
+
{ label: 'Infiniti', value: '11' },
|
|
453
|
+
{ label: 'Acura', value: '7' },
|
|
454
|
+
{ label: 'Genesis', value: '35' },
|
|
455
|
+
{ label: 'Geely', value: '27' },
|
|
456
|
+
{ label: 'Proton', value: '19' },
|
|
457
|
+
{ label: 'Togg', value: '65' },
|
|
458
|
+
{ label: 'Rivian', value: '4' },
|
|
459
|
+
{ label: 'Lucid', value: '3' }
|
|
460
|
+
]);
|
|
461
|
+
<\/script>
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
## Accessibility
|
|
465
|
+
|
|
466
|
+
Screen Reader ScrollArea hides the native scrollbar visually while leaving the underlying viewport scrollable. The viewport remains keyboard scrollable so assistive technologies can still navigate the content using standard scroll semantics. Keyboard Support Key Function tab Moves focus to interactive content inside the scroll area. arrow keys Scroll the focused viewport in the corresponding direction (native browser behaviour). page up / page down Scroll by one viewport height. home / end Scroll to the start or the end of the viewport.
|
|
467
|
+
|
|
468
|
+
## Scroll Area API
|
|
469
|
+
|
|
470
|
+
### Props
|
|
471
|
+
|
|
472
|
+
| Name |Type |Default |Description |
|
|
473
|
+
| --- | --- | --- | --- |
|
|
474
|
+
| variant | ScrollAreaVariant | 'auto' | Visibility behaviour of the scrollbars. |
|
|
475
|
+
| mask | boolean | false | When enabled, applies a fade mask to the scrollable content edges. |
|
|
476
|
+
| as | string \| Component | 'DIV' | The element or component used to render the root. |
|
|
477
|
+
| asChild | boolean | false | When enabled, root element renders without its own DOM; consumer renders via slot using `a11yAttrs` . |
|
|
478
|
+
| tabIndex | number | 0 | Tab index applied to the viewport when content overflows. The viewport is omitted from the tab order when content fits. |
|
|
479
|
+
| dt | any | - | It generates scoped CSS variables using design tokens for the component. |
|
|
480
|
+
| pt | PassThrough<ScrollAreaPassThroughOptions> | - | Used to pass attributes to DOM elements inside the component. |
|
|
481
|
+
| ptOptions | any | - | Used to configure passthrough(pt) options of the component. |
|
|
482
|
+
| unstyled | boolean | false | When enabled, it removes component related styles in the core. |
|
|
483
|
+
|
|
484
|
+
### Slots
|
|
485
|
+
|
|
486
|
+
| Name |Parameters |Description |
|
|
487
|
+
| --- | --- | --- |
|
|
488
|
+
| default | Function | |
|
|
489
|
+
|
|
490
|
+
### Pass Through Options
|
|
491
|
+
|
|
492
|
+
| Name |Type |Description |
|
|
493
|
+
| --- | --- | --- |
|
|
494
|
+
| root | ScrollAreaPassThroughOptionType | Used to pass attributes to the root's DOM element. |
|
|
495
|
+
| hooks | any | Used to manage all lifecycle hooks. |
|
|
496
|
+
|
|
497
|
+
### Theming
|
|
498
|
+
|
|
499
|
+
### CSS Classes
|
|
500
|
+
|
|
501
|
+
| Class |Description |
|
|
502
|
+
| --- | --- |
|
|
503
|
+
| p-scrollarea | Class name of the root element |
|
|
504
|
+
| p-scrollarea-viewport | Class name of the viewport element |
|
|
505
|
+
| p-scrollarea-content | Class name of the content element |
|
|
506
|
+
| p-scrollarea-scrollbar | Class name of the scrollbar element |
|
|
507
|
+
| p-scrollarea-handle-y | Class name of the vertical handle element |
|
|
508
|
+
| p-scrollarea-handle-x | Class name of the horizontal handle element |
|
|
509
|
+
| p-scrollarea-corner | Class name of the corner element |
|
|
510
|
+
|
|
511
|
+
### Design Tokens
|
|
512
|
+
|
|
513
|
+
| Token |CSS Variable |Description |
|
|
514
|
+
| --- | --- | --- |
|
|
515
|
+
| scrollarea.background | --p-scrollarea-background | Background of root |
|
|
516
|
+
| scrollarea.border.color | --p-scrollarea-border-color | Border color of root |
|
|
517
|
+
| scrollarea.border.radius | --p-scrollarea-border-radius | Border radius of root |
|
|
518
|
+
| scrollarea.focus.ring.width | --p-scrollarea-focus-ring-width | Focus ring width of root |
|
|
519
|
+
| scrollarea.focus.ring.style | --p-scrollarea-focus-ring-style | Focus ring style of root |
|
|
520
|
+
| scrollarea.focus.ring.color | --p-scrollarea-focus-ring-color | Focus ring color of root |
|
|
521
|
+
| scrollarea.focus.ring.offset | --p-scrollarea-focus-ring-offset | Focus ring offset of root |
|
|
522
|
+
| scrollarea.focus.ring.shadow | --p-scrollarea-focus-ring-shadow | Focus ring shadow of root |
|
|
523
|
+
| scrollarea.viewport.padding | --p-scrollarea-viewport-padding | Padding of viewport |
|
|
524
|
+
| scrollarea.scrollbar.background | --p-scrollarea-scrollbar-background | Background of scrollbar |
|
|
525
|
+
| scrollarea.scrollbar.margin | --p-scrollarea-scrollbar-margin | Margin of scrollbar |
|
|
526
|
+
| scrollarea.scrollbar.size | --p-scrollarea-scrollbar-size | Size of scrollbar (track thickness) |
|
|
527
|
+
| scrollarea.scrollbar.transition.duration | --p-scrollarea-scrollbar-transition-duration | Transition duration of scrollbar |
|
|
528
|
+
| scrollarea.handle.background | --p-scrollarea-handle-background | Background of handle |
|
|
529
|
+
| scrollarea.mask.fade.size | --p-scrollarea-mask-fade-size | Fade size of mask gradient |
|
|
530
|
+
|
|
531
|
+
## Scroll Area Viewport API
|
|
532
|
+
|
|
533
|
+
### Props
|
|
534
|
+
|
|
535
|
+
| Name |Type |Default |Description |
|
|
536
|
+
| --- | --- | --- | --- |
|
|
537
|
+
| as | string \| Component | 'DIV' | The element or component used to render the root. |
|
|
538
|
+
| asChild | boolean | false | When enabled, root element renders without its own DOM; consumer renders via slot using `a11yAttrs` . |
|
|
539
|
+
| dt | any | - | It generates scoped CSS variables using design tokens for the component. |
|
|
540
|
+
| pt | PassThrough<ScrollAreaViewportPassThroughOptions> | - | Used to pass attributes to DOM elements inside the component. |
|
|
541
|
+
| ptOptions | any | - | Used to configure passthrough(pt) options of the component. |
|
|
542
|
+
| unstyled | boolean | false | When enabled, it removes component related styles in the core. |
|
|
543
|
+
|
|
544
|
+
### Slots
|
|
545
|
+
|
|
546
|
+
| Name |Parameters |Description |
|
|
547
|
+
| --- | --- | --- |
|
|
548
|
+
| default | Function | |
|
|
549
|
+
|
|
550
|
+
### Pass Through Options
|
|
551
|
+
|
|
552
|
+
| Name |Type |Description |
|
|
553
|
+
| --- | --- | --- |
|
|
554
|
+
| root | ScrollAreaViewportPassThroughOptionType | Used to pass attributes to the root's DOM element. |
|
|
555
|
+
| hooks | any | Used to manage all lifecycle hooks. |
|
|
556
|
+
|
|
557
|
+
### Theming
|
|
558
|
+
|
|
559
|
+
### CSS Classes
|
|
560
|
+
|
|
561
|
+
| Class |Description |
|
|
562
|
+
| --- | --- |
|
|
563
|
+
| p-scrollarea-viewport | Class name of the root element |
|
|
564
|
+
|
|
565
|
+
## Scroll Area Content API
|
|
566
|
+
|
|
567
|
+
### Props
|
|
568
|
+
|
|
569
|
+
| Name |Type |Default |Description |
|
|
570
|
+
| --- | --- | --- | --- |
|
|
571
|
+
| as | string \| Component | 'DIV' | The element or component used to render the root. |
|
|
572
|
+
| asChild | boolean | false | When enabled, root element renders without its own DOM; consumer renders via slot using `a11yAttrs` . |
|
|
573
|
+
| dt | any | - | It generates scoped CSS variables using design tokens for the component. |
|
|
574
|
+
| pt | PassThrough<ScrollAreaContentPassThroughOptions> | - | Used to pass attributes to DOM elements inside the component. |
|
|
575
|
+
| ptOptions | any | - | Used to configure passthrough(pt) options of the component. |
|
|
576
|
+
| unstyled | boolean | false | When enabled, it removes component related styles in the core. |
|
|
577
|
+
|
|
578
|
+
### Slots
|
|
579
|
+
|
|
580
|
+
| Name |Parameters |Description |
|
|
581
|
+
| --- | --- | --- |
|
|
582
|
+
| default | Function | |
|
|
583
|
+
|
|
584
|
+
### Pass Through Options
|
|
585
|
+
|
|
586
|
+
| Name |Type |Description |
|
|
587
|
+
| --- | --- | --- |
|
|
588
|
+
| root | ScrollAreaContentPassThroughOptionType | Used to pass attributes to the root's DOM element. |
|
|
589
|
+
| hooks | any | Used to manage all lifecycle hooks. |
|
|
590
|
+
|
|
591
|
+
### Theming
|
|
592
|
+
|
|
593
|
+
### CSS Classes
|
|
594
|
+
|
|
595
|
+
| Class |Description |
|
|
596
|
+
| --- | --- |
|
|
597
|
+
| p-scrollarea-content | Class name of the root element |
|
|
598
|
+
|
|
599
|
+
## Scroll Area Scrollbar API
|
|
600
|
+
|
|
601
|
+
### Props
|
|
602
|
+
|
|
603
|
+
| Name |Type |Default |Description |
|
|
604
|
+
| --- | --- | --- | --- |
|
|
605
|
+
| orientation | ScrollAreaScrollbarOrientation | 'vertical' | Axis along which the scrollbar tracks its viewport. |
|
|
606
|
+
| as | string \| Component | 'DIV' | The element or component used to render the root. |
|
|
607
|
+
| asChild | boolean | false | When enabled, root element renders without its own DOM; consumer renders via slot using `a11yAttrs` . |
|
|
608
|
+
| dt | any | - | It generates scoped CSS variables using design tokens for the component. |
|
|
609
|
+
| pt | PassThrough<ScrollAreaScrollbarPassThroughOptions> | - | Used to pass attributes to DOM elements inside the component. |
|
|
610
|
+
| ptOptions | any | - | Used to configure passthrough(pt) options of the component. |
|
|
611
|
+
| unstyled | boolean | false | When enabled, it removes component related styles in the core. |
|
|
612
|
+
|
|
613
|
+
### Slots
|
|
614
|
+
|
|
615
|
+
| Name |Parameters |Description |
|
|
616
|
+
| --- | --- | --- |
|
|
617
|
+
| default | Function | |
|
|
618
|
+
|
|
619
|
+
### Pass Through Options
|
|
620
|
+
|
|
621
|
+
| Name |Type |Description |
|
|
622
|
+
| --- | --- | --- |
|
|
623
|
+
| root | ScrollAreaScrollbarPassThroughOptionType | Used to pass attributes to the root's DOM element. |
|
|
624
|
+
| hooks | any | Used to manage all lifecycle hooks. |
|
|
625
|
+
|
|
626
|
+
### Theming
|
|
627
|
+
|
|
628
|
+
### CSS Classes
|
|
629
|
+
|
|
630
|
+
| Class |Description |
|
|
631
|
+
| --- | --- |
|
|
632
|
+
| p-scrollarea-scrollbar | Class name of the root element |
|
|
633
|
+
|
|
634
|
+
## Scroll Area Handle API
|
|
635
|
+
|
|
636
|
+
### Props
|
|
637
|
+
|
|
638
|
+
| Name |Type |Default |Description |
|
|
639
|
+
| --- | --- | --- | --- |
|
|
640
|
+
| as | string \| Component | 'DIV' | The element or component used to render the root. |
|
|
641
|
+
| asChild | boolean | false | When enabled, root element renders without its own DOM; consumer renders via slot using `a11yAttrs` . |
|
|
642
|
+
| dt | any | - | It generates scoped CSS variables using design tokens for the component. |
|
|
643
|
+
| pt | PassThrough<ScrollAreaHandlePassThroughOptions> | - | Used to pass attributes to DOM elements inside the component. |
|
|
644
|
+
| ptOptions | any | - | Used to configure passthrough(pt) options of the component. |
|
|
645
|
+
| unstyled | boolean | false | When enabled, it removes component related styles in the core. |
|
|
646
|
+
|
|
647
|
+
### Slots
|
|
648
|
+
|
|
649
|
+
| Name |Parameters |Description |
|
|
650
|
+
| --- | --- | --- |
|
|
651
|
+
| default | Function | |
|
|
652
|
+
|
|
653
|
+
### Pass Through Options
|
|
654
|
+
|
|
655
|
+
| Name |Type |Description |
|
|
656
|
+
| --- | --- | --- |
|
|
657
|
+
| root | ScrollAreaHandlePassThroughOptionType | Used to pass attributes to the root's DOM element. |
|
|
658
|
+
| hooks | any | Used to manage all lifecycle hooks. |
|
|
659
|
+
|
|
660
|
+
### Theming
|
|
661
|
+
|
|
662
|
+
### CSS Classes
|
|
663
|
+
|
|
664
|
+
| Class |Description |
|
|
665
|
+
| --- | --- |
|
|
666
|
+
| p-scrollarea-handle | Class name of the root element |
|
|
667
|
+
|
|
668
|
+
## Scroll Area Corner API
|
|
669
|
+
|
|
670
|
+
### Props
|
|
671
|
+
|
|
672
|
+
| Name |Type |Default |Description |
|
|
673
|
+
| --- | --- | --- | --- |
|
|
674
|
+
| as | string \| Component | 'DIV' | The element or component used to render the root. |
|
|
675
|
+
| asChild | boolean | false | When enabled, root element renders without its own DOM; consumer renders via slot using `a11yAttrs` . |
|
|
676
|
+
| dt | any | - | It generates scoped CSS variables using design tokens for the component. |
|
|
677
|
+
| pt | PassThrough<ScrollAreaCornerPassThroughOptions> | - | Used to pass attributes to DOM elements inside the component. |
|
|
678
|
+
| ptOptions | any | - | Used to configure passthrough(pt) options of the component. |
|
|
679
|
+
| unstyled | boolean | false | When enabled, it removes component related styles in the core. |
|
|
680
|
+
|
|
681
|
+
### Slots
|
|
682
|
+
|
|
683
|
+
| Name |Parameters |Description |
|
|
684
|
+
| --- | --- | --- |
|
|
685
|
+
| default | Function | |
|
|
686
|
+
|
|
687
|
+
### Pass Through Options
|
|
688
|
+
|
|
689
|
+
| Name |Type |Description |
|
|
690
|
+
| --- | --- | --- |
|
|
691
|
+
| root | ScrollAreaCornerPassThroughOptionType | Used to pass attributes to the root's DOM element. |
|
|
692
|
+
| hooks | any | Used to manage all lifecycle hooks. |
|
|
693
|
+
|
|
694
|
+
### Theming
|
|
695
|
+
|
|
696
|
+
### CSS Classes
|
|
697
|
+
|
|
698
|
+
| Class |Description |
|
|
699
|
+
| --- | --- |
|
|
700
|
+
| p-scrollarea-corner | Class name of the root element |
|