@oruga-ui/theme-oruga 0.0.1
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 +21 -0
- package/README.md +115 -0
- package/dist/oruga-full.css +3778 -0
- package/dist/oruga-full.min.css +1 -0
- package/dist/oruga.css +2209 -0
- package/dist/oruga.min.css +1 -0
- package/dist/scss/components/_autocomplete.scss +130 -0
- package/dist/scss/components/_button.scss +242 -0
- package/dist/scss/components/_carousel.scss +256 -0
- package/dist/scss/components/_checkbox.scss +183 -0
- package/dist/scss/components/_collapse.scss +12 -0
- package/dist/scss/components/_datepicker.scss +592 -0
- package/dist/scss/components/_datetimepicker.scss +10 -0
- package/dist/scss/components/_dropdown.scss +241 -0
- package/dist/scss/components/_field.scss +154 -0
- package/dist/scss/components/_icon.scss +53 -0
- package/dist/scss/components/_input.scss +153 -0
- package/dist/scss/components/_inputitems.scss +175 -0
- package/dist/scss/components/_loading.scss +45 -0
- package/dist/scss/components/_menu.scss +124 -0
- package/dist/scss/components/_modal.scss +103 -0
- package/dist/scss/components/_notification.scss +212 -0
- package/dist/scss/components/_pagination.scss +256 -0
- package/dist/scss/components/_radio.scss +121 -0
- package/dist/scss/components/_select.scss +168 -0
- package/dist/scss/components/_sidebar.scss +112 -0
- package/dist/scss/components/_skeleton.scss +93 -0
- package/dist/scss/components/_slider.scss +241 -0
- package/dist/scss/components/_steps.scss +599 -0
- package/dist/scss/components/_switch.scss +171 -0
- package/dist/scss/components/_table.scss +481 -0
- package/dist/scss/components/_tabs.scss +385 -0
- package/dist/scss/components/_timepicker.scss +116 -0
- package/dist/scss/components/_tooltip.scss +345 -0
- package/dist/scss/components/_upload.scss +74 -0
- package/dist/scss/oruga-common.scss +37 -0
- package/dist/scss/oruga-full.scss +9 -0
- package/dist/scss/oruga.scss +197 -0
- package/dist/scss/utils/_animations.scss +231 -0
- package/dist/scss/utils/_base.scss +31 -0
- package/dist/scss/utils/_helpers.scss +211 -0
- package/dist/scss/utils/_root.scss +28 -0
- package/dist/scss/utils/_variables.scss +105 -0
- package/dist/theme.js +8 -0
- package/package.json +72 -0
- package/src/App.vue +104 -0
- package/src/assets/scss/components/_autocomplete.scss +130 -0
- package/src/assets/scss/components/_button.scss +242 -0
- package/src/assets/scss/components/_carousel.scss +256 -0
- package/src/assets/scss/components/_checkbox.scss +183 -0
- package/src/assets/scss/components/_collapse.scss +12 -0
- package/src/assets/scss/components/_datepicker.scss +592 -0
- package/src/assets/scss/components/_datetimepicker.scss +10 -0
- package/src/assets/scss/components/_dropdown.scss +241 -0
- package/src/assets/scss/components/_field.scss +154 -0
- package/src/assets/scss/components/_icon.scss +53 -0
- package/src/assets/scss/components/_input.scss +153 -0
- package/src/assets/scss/components/_inputitems.scss +175 -0
- package/src/assets/scss/components/_loading.scss +45 -0
- package/src/assets/scss/components/_menu.scss +124 -0
- package/src/assets/scss/components/_modal.scss +103 -0
- package/src/assets/scss/components/_notification.scss +212 -0
- package/src/assets/scss/components/_pagination.scss +256 -0
- package/src/assets/scss/components/_radio.scss +121 -0
- package/src/assets/scss/components/_select.scss +168 -0
- package/src/assets/scss/components/_sidebar.scss +112 -0
- package/src/assets/scss/components/_skeleton.scss +93 -0
- package/src/assets/scss/components/_slider.scss +241 -0
- package/src/assets/scss/components/_steps.scss +599 -0
- package/src/assets/scss/components/_switch.scss +171 -0
- package/src/assets/scss/components/_table.scss +481 -0
- package/src/assets/scss/components/_tabs.scss +385 -0
- package/src/assets/scss/components/_timepicker.scss +116 -0
- package/src/assets/scss/components/_tooltip.scss +345 -0
- package/src/assets/scss/components/_upload.scss +74 -0
- package/src/assets/scss/oruga-common.scss +37 -0
- package/src/assets/scss/oruga-full.scss +9 -0
- package/src/assets/scss/oruga.scss +197 -0
- package/src/assets/scss/utils/_animations.scss +231 -0
- package/src/assets/scss/utils/_base.scss +31 -0
- package/src/assets/scss/utils/_helpers.scss +211 -0
- package/src/assets/scss/utils/_root.scss +28 -0
- package/src/assets/scss/utils/_variables.scss +105 -0
- package/src/components/Autocomplete.vue +606 -0
- package/src/components/Button.vue +80 -0
- package/src/components/Carousel.vue +296 -0
- package/src/components/Checkbox.vue +134 -0
- package/src/components/Collapse.vue +132 -0
- package/src/components/Datepicker.vue +285 -0
- package/src/components/Datetimepicker.vue +127 -0
- package/src/components/Dropdown.vue +284 -0
- package/src/components/Field.vue +243 -0
- package/src/components/Icon.vue +66 -0
- package/src/components/Input.vue +121 -0
- package/src/components/Loading.vue +71 -0
- package/src/components/Modal.vue +171 -0
- package/src/components/Notification.vue +136 -0
- package/src/components/Pagination.vue +97 -0
- package/src/components/Radio.vue +95 -0
- package/src/components/Select.vue +155 -0
- package/src/components/Sidebar.vue +56 -0
- package/src/components/Skeleton.vue +57 -0
- package/src/components/Slider.vue +226 -0
- package/src/components/Steps.vue +234 -0
- package/src/components/Switch.vue +134 -0
- package/src/components/Table.vue +285 -0
- package/src/components/Tabs.vue +208 -0
- package/src/components/Taginput.vue +507 -0
- package/src/components/Timepicker.vue +124 -0
- package/src/components/Tooltip.vue +149 -0
- package/src/components/Upload.vue +66 -0
- package/src/main.ts +29 -0
- package/src/plugins/theme.ts +1 -0
- package/src/router/index.ts +39 -0
- package/src/views/Home.vue +24 -0
- package/types/index.d.ts +1 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { reactive, ref } from "vue";
|
|
3
|
+
|
|
4
|
+
const carousels = [
|
|
5
|
+
{ text: "Slide 1", color: "#445e00" },
|
|
6
|
+
{ text: "Slide 2", color: "#006724" },
|
|
7
|
+
{ text: "Slide 3", color: "#b60000" },
|
|
8
|
+
{ text: "Slide 4", color: "#f4c300" },
|
|
9
|
+
{ text: "Slide 5", color: "#005c98" },
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
const items = [
|
|
13
|
+
{
|
|
14
|
+
title: "Slide 1",
|
|
15
|
+
image: "https://picsum.photos/id/1/1230/500",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: "Slide 2",
|
|
19
|
+
image: "https://picsum.photos/id/2/1230/500",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
title: "Slide 3",
|
|
23
|
+
image: "https://picsum.photos/id/3/1230/500",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "Slide 4",
|
|
27
|
+
image: "https://picsum.photos/id/4/1230/500",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: "Slide 5",
|
|
31
|
+
image: "https://picsum.photos/id/5/1230/500",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: "Slide 6",
|
|
35
|
+
image: "https://picsum.photos/id/6/1230/500",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: "Slide 7",
|
|
39
|
+
image: "https://picsum.photos/id/7/1230/500",
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const carousel = ref(1);
|
|
44
|
+
const listSettings = reactive({
|
|
45
|
+
arrow: true,
|
|
46
|
+
arrowHover: true,
|
|
47
|
+
hasDrag: true,
|
|
48
|
+
itemsToShow: 4,
|
|
49
|
+
itemsToList: 1,
|
|
50
|
+
repeat: false,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const gallery = ref(false);
|
|
54
|
+
const indicatorsSettings = reactive({
|
|
55
|
+
itemsToShow: 2,
|
|
56
|
+
breakpoints: {
|
|
57
|
+
768: {
|
|
58
|
+
itemsToShow: 4,
|
|
59
|
+
},
|
|
60
|
+
960: {
|
|
61
|
+
itemsToShow: 6,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
function switchGallery(value: boolean): any {
|
|
67
|
+
gallery.value = value;
|
|
68
|
+
|
|
69
|
+
if (value) {
|
|
70
|
+
document.documentElement.classList.add("o-clipped");
|
|
71
|
+
} else {
|
|
72
|
+
document.documentElement.classList.remove("o-clipped");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const customSettings = reactive({
|
|
77
|
+
hasDrag: false,
|
|
78
|
+
autoplay: false,
|
|
79
|
+
pauseHover: false,
|
|
80
|
+
interval: 3000,
|
|
81
|
+
repeat: false,
|
|
82
|
+
position: "bottom",
|
|
83
|
+
style: "dots",
|
|
84
|
+
});
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<template>
|
|
88
|
+
<section>
|
|
89
|
+
<h2>Carousel Demo</h2>
|
|
90
|
+
<hr />
|
|
91
|
+
</section>
|
|
92
|
+
<section class="py-4 container">
|
|
93
|
+
<h3>Base</h3>
|
|
94
|
+
|
|
95
|
+
<o-carousel>
|
|
96
|
+
<o-carousel-item v-for="(carousel, i) in carousels" :key="i">
|
|
97
|
+
<section
|
|
98
|
+
class="ex-slide"
|
|
99
|
+
:style="{ 'background-color': carousel.color }">
|
|
100
|
+
<h1>{{ carousel.text }}</h1>
|
|
101
|
+
</section>
|
|
102
|
+
</o-carousel-item>
|
|
103
|
+
</o-carousel>
|
|
104
|
+
</section>
|
|
105
|
+
|
|
106
|
+
<section class="py-4 container">
|
|
107
|
+
<h3>Carousel List</h3>
|
|
108
|
+
|
|
109
|
+
<div class="example-component">
|
|
110
|
+
<o-field grouped group-multiline>
|
|
111
|
+
<o-field>
|
|
112
|
+
<o-switch v-model="listSettings.arrow">Arrow</o-switch>
|
|
113
|
+
</o-field>
|
|
114
|
+
<o-field>
|
|
115
|
+
<o-switch
|
|
116
|
+
v-model="listSettings.arrowHover"
|
|
117
|
+
:disabled="!listSettings.arrow">
|
|
118
|
+
Arrow on hover
|
|
119
|
+
</o-switch>
|
|
120
|
+
</o-field>
|
|
121
|
+
<o-field>
|
|
122
|
+
<o-switch v-model="listSettings.hasDrag">Drag event</o-switch>
|
|
123
|
+
</o-field>
|
|
124
|
+
<o-field>
|
|
125
|
+
<o-switch v-model="listSettings.repeat">Repeat</o-switch>
|
|
126
|
+
</o-field>
|
|
127
|
+
</o-field>
|
|
128
|
+
<o-field grouped group-multiline>
|
|
129
|
+
<o-field label="Items to Show">
|
|
130
|
+
<o-input
|
|
131
|
+
v-model.number="listSettings.itemsToShow"
|
|
132
|
+
type="number"
|
|
133
|
+
min="1"
|
|
134
|
+
:max="items.length" />
|
|
135
|
+
</o-field>
|
|
136
|
+
<o-field label="Items to List">
|
|
137
|
+
<o-input
|
|
138
|
+
v-model.number="listSettings.itemsToList"
|
|
139
|
+
type="number"
|
|
140
|
+
min="1"
|
|
141
|
+
:max="items.length - 1" />
|
|
142
|
+
</o-field>
|
|
143
|
+
</o-field>
|
|
144
|
+
</div>
|
|
145
|
+
<o-carousel v-model="carousel" v-bind="listSettings">
|
|
146
|
+
<o-carousel-item v-for="(item, i) in items" :key="i">
|
|
147
|
+
<img :src="item.image" />
|
|
148
|
+
</o-carousel-item>
|
|
149
|
+
</o-carousel>
|
|
150
|
+
<p><b>Current Item:</b> {{ carousel }}</p>
|
|
151
|
+
</section>
|
|
152
|
+
|
|
153
|
+
<section class="py-4 container">
|
|
154
|
+
<h3>Custom As indicators</h3>
|
|
155
|
+
|
|
156
|
+
<o-carousel
|
|
157
|
+
:autoplay="false"
|
|
158
|
+
:overlay="gallery"
|
|
159
|
+
@click="switchGallery(true)">
|
|
160
|
+
<o-carousel-item v-for="(item, i) in items" :key="i">
|
|
161
|
+
<a class="image">
|
|
162
|
+
<img :src="item.image" />
|
|
163
|
+
</a>
|
|
164
|
+
</o-carousel-item>
|
|
165
|
+
<template #indicators="{ active, switchTo }">
|
|
166
|
+
<o-carousel
|
|
167
|
+
:model-value="active"
|
|
168
|
+
v-bind="indicatorsSettings"
|
|
169
|
+
as-indicator
|
|
170
|
+
@update:model-value="switchTo($event)">
|
|
171
|
+
<o-carousel-item
|
|
172
|
+
v-for="(item, i) in items"
|
|
173
|
+
:key="i"
|
|
174
|
+
item-class="img-indicator"
|
|
175
|
+
item-active-class="img-indicator-active">
|
|
176
|
+
<img :src="item.image" />
|
|
177
|
+
</o-carousel-item>
|
|
178
|
+
</o-carousel>
|
|
179
|
+
</template>
|
|
180
|
+
<template #overlay>
|
|
181
|
+
<button
|
|
182
|
+
type="button"
|
|
183
|
+
class="btn-close ex-close-icon"
|
|
184
|
+
aria-label="Close"
|
|
185
|
+
@click="switchGallery(false)" />
|
|
186
|
+
|
|
187
|
+
<div style="color: #ffffff; text-align: center">
|
|
188
|
+
Hello, I'm an overlay!
|
|
189
|
+
</div>
|
|
190
|
+
</template>
|
|
191
|
+
</o-carousel>
|
|
192
|
+
</section>
|
|
193
|
+
|
|
194
|
+
<section class="py-4 container">
|
|
195
|
+
<h3>Custom</h3>
|
|
196
|
+
|
|
197
|
+
<div class="example-component">
|
|
198
|
+
<o-field grouped group-multiline>
|
|
199
|
+
<o-field>
|
|
200
|
+
<o-switch v-model="customSettings.autoplay">Autoplay</o-switch>
|
|
201
|
+
</o-field>
|
|
202
|
+
<o-field>
|
|
203
|
+
<o-switch
|
|
204
|
+
v-model="customSettings.pauseHover"
|
|
205
|
+
:disabled="!customSettings.autoplay">
|
|
206
|
+
Pause on hover
|
|
207
|
+
</o-switch>
|
|
208
|
+
</o-field>
|
|
209
|
+
<o-field>
|
|
210
|
+
<o-switch v-model="customSettings.hasDrag">Drag event</o-switch>
|
|
211
|
+
</o-field>
|
|
212
|
+
<o-field>
|
|
213
|
+
<o-switch
|
|
214
|
+
v-model="customSettings.repeat"
|
|
215
|
+
:disabled="!customSettings.autoplay">
|
|
216
|
+
Repeat
|
|
217
|
+
</o-switch>
|
|
218
|
+
</o-field>
|
|
219
|
+
</o-field>
|
|
220
|
+
<o-field grouped group-multiline>
|
|
221
|
+
<o-field label="Value">
|
|
222
|
+
<o-input
|
|
223
|
+
v-model.number="carousel"
|
|
224
|
+
type="number"
|
|
225
|
+
min="0"
|
|
226
|
+
:max="carousels.length - 1" />
|
|
227
|
+
</o-field>
|
|
228
|
+
<o-field label="Interval">
|
|
229
|
+
<o-input
|
|
230
|
+
v-model.number="customSettings.interval"
|
|
231
|
+
type="number"
|
|
232
|
+
min="0"
|
|
233
|
+
step="1000"
|
|
234
|
+
:disabled="!customSettings.autoplay" />
|
|
235
|
+
</o-field>
|
|
236
|
+
<o-field label="Indicator Position">
|
|
237
|
+
<o-select v-model="customSettings.position">
|
|
238
|
+
<option value="top">top</option>
|
|
239
|
+
<option value="bottom">bottom</option>
|
|
240
|
+
</o-select>
|
|
241
|
+
</o-field>
|
|
242
|
+
<o-field label="Indicator Style">
|
|
243
|
+
<o-select v-model="customSettings.style">
|
|
244
|
+
<option value="boxes ">boxes</option>
|
|
245
|
+
<option value="dots">dots</option>
|
|
246
|
+
<option value="lines ">lines</option>
|
|
247
|
+
</o-select>
|
|
248
|
+
</o-field>
|
|
249
|
+
</o-field>
|
|
250
|
+
</div>
|
|
251
|
+
|
|
252
|
+
<o-carousel
|
|
253
|
+
v-model="carousel"
|
|
254
|
+
v-bind="customSettings"
|
|
255
|
+
:indicator-position="customSettings.position"
|
|
256
|
+
indicator-inside
|
|
257
|
+
:indicator-style="customSettings.style">
|
|
258
|
+
<o-carousel-item v-for="(slide, i) in carousels" :key="i">
|
|
259
|
+
<section class="ex-slide" :style="{ 'background-color': slide.color }">
|
|
260
|
+
<h1>{{ slide.text }}</h1>
|
|
261
|
+
<o-input :placeholder="slide.text" />
|
|
262
|
+
<p>A link that <a href="#arrow">goes to arrow</a></p>
|
|
263
|
+
</section>
|
|
264
|
+
</o-carousel-item>
|
|
265
|
+
</o-carousel>
|
|
266
|
+
</section>
|
|
267
|
+
</template>
|
|
268
|
+
|
|
269
|
+
<style lang="scss" scoped>
|
|
270
|
+
.container {
|
|
271
|
+
max-width: 80vw;
|
|
272
|
+
}
|
|
273
|
+
.ex-slide {
|
|
274
|
+
padding: 9rem 4.5rem;
|
|
275
|
+
color: #ffffff;
|
|
276
|
+
text-align: center;
|
|
277
|
+
}
|
|
278
|
+
img {
|
|
279
|
+
display: block;
|
|
280
|
+
height: auto;
|
|
281
|
+
width: 100%;
|
|
282
|
+
max-width: 100%;
|
|
283
|
+
}
|
|
284
|
+
.img-indicator {
|
|
285
|
+
filter: grayscale(100%);
|
|
286
|
+
}
|
|
287
|
+
.img-indicator-active {
|
|
288
|
+
filter: grayscale(0%);
|
|
289
|
+
}
|
|
290
|
+
.ex-close-icon {
|
|
291
|
+
position: absolute;
|
|
292
|
+
top: 10px;
|
|
293
|
+
right: 10px;
|
|
294
|
+
filter: var(--bs-btn-close-white-filter);
|
|
295
|
+
}
|
|
296
|
+
</style>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from "vue";
|
|
3
|
+
|
|
4
|
+
const checkbox = ref(false);
|
|
5
|
+
const checkboxCustom = ref("Yes");
|
|
6
|
+
const checkboxGroup = ref(["Flint"]);
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<section>
|
|
11
|
+
<h2>Checkbox Demo</h2>
|
|
12
|
+
<hr />
|
|
13
|
+
</section>
|
|
14
|
+
|
|
15
|
+
<section>
|
|
16
|
+
<h3>Base</h3>
|
|
17
|
+
|
|
18
|
+
<o-field>
|
|
19
|
+
<o-checkbox v-model="checkbox">
|
|
20
|
+
{{ checkbox }}
|
|
21
|
+
</o-checkbox>
|
|
22
|
+
</o-field>
|
|
23
|
+
<o-field>
|
|
24
|
+
<o-checkbox v-model="checkboxCustom" true-value="Yes" false-value="No">
|
|
25
|
+
{{ checkboxCustom }}
|
|
26
|
+
</o-checkbox>
|
|
27
|
+
</o-field>
|
|
28
|
+
<o-field>
|
|
29
|
+
<o-checkbox :indeterminate="true"> Indeterminate </o-checkbox>
|
|
30
|
+
</o-field>
|
|
31
|
+
<o-field>
|
|
32
|
+
<o-checkbox disabled>Disabled</o-checkbox>
|
|
33
|
+
</o-field>
|
|
34
|
+
</section>
|
|
35
|
+
|
|
36
|
+
<section>
|
|
37
|
+
<h3>Variant</h3>
|
|
38
|
+
|
|
39
|
+
<o-field>
|
|
40
|
+
<o-checkbox :value="true"> Default </o-checkbox>
|
|
41
|
+
</o-field>
|
|
42
|
+
<o-field>
|
|
43
|
+
<o-checkbox :value="true" variant="primary"> Primary </o-checkbox>
|
|
44
|
+
</o-field>
|
|
45
|
+
<o-field>
|
|
46
|
+
<o-checkbox :value="true" variant="secondary"> Secondary </o-checkbox>
|
|
47
|
+
</o-field>
|
|
48
|
+
<o-field>
|
|
49
|
+
<o-checkbox :value="true" variant="info"> Info </o-checkbox>
|
|
50
|
+
</o-field>
|
|
51
|
+
<o-field>
|
|
52
|
+
<o-checkbox :value="true" variant="success"> Success </o-checkbox>
|
|
53
|
+
</o-field>
|
|
54
|
+
<o-field>
|
|
55
|
+
<o-checkbox :value="true" variant="warning"> Warning </o-checkbox>
|
|
56
|
+
</o-field>
|
|
57
|
+
<o-field>
|
|
58
|
+
<o-checkbox :value="true" variant="danger"> Danger </o-checkbox>
|
|
59
|
+
</o-field>
|
|
60
|
+
</section>
|
|
61
|
+
|
|
62
|
+
<section>
|
|
63
|
+
<h3>Indeterminate</h3>
|
|
64
|
+
|
|
65
|
+
<o-field>
|
|
66
|
+
<o-checkbox indeterminate> Default Indeterminate </o-checkbox>
|
|
67
|
+
</o-field>
|
|
68
|
+
<o-field>
|
|
69
|
+
<o-checkbox variant="primary" indeterminate>
|
|
70
|
+
Primary Indeterminate
|
|
71
|
+
</o-checkbox>
|
|
72
|
+
</o-field>
|
|
73
|
+
<o-field>
|
|
74
|
+
<o-checkbox variant="secondary" indeterminate>
|
|
75
|
+
Secondary Indeterminate
|
|
76
|
+
</o-checkbox>
|
|
77
|
+
</o-field>
|
|
78
|
+
<o-field>
|
|
79
|
+
<o-checkbox variant="info" indeterminate> Info Indeterminate </o-checkbox>
|
|
80
|
+
</o-field>
|
|
81
|
+
<o-field>
|
|
82
|
+
<o-checkbox variant="success" indeterminate>
|
|
83
|
+
Success Indeterminate
|
|
84
|
+
</o-checkbox>
|
|
85
|
+
</o-field>
|
|
86
|
+
<o-field>
|
|
87
|
+
<o-checkbox variant="warning" indeterminate>
|
|
88
|
+
Warning Indeterminate
|
|
89
|
+
</o-checkbox>
|
|
90
|
+
</o-field>
|
|
91
|
+
<o-field>
|
|
92
|
+
<o-checkbox variant="danger" indeterminate>
|
|
93
|
+
Danger Indeterminate
|
|
94
|
+
</o-checkbox>
|
|
95
|
+
</o-field>
|
|
96
|
+
</section>
|
|
97
|
+
|
|
98
|
+
<section>
|
|
99
|
+
<h3>Size</h3>
|
|
100
|
+
|
|
101
|
+
<o-field>
|
|
102
|
+
<o-checkbox size="small"> Small </o-checkbox>
|
|
103
|
+
</o-field>
|
|
104
|
+
<o-field>
|
|
105
|
+
<o-checkbox> Default </o-checkbox>
|
|
106
|
+
</o-field>
|
|
107
|
+
<o-field>
|
|
108
|
+
<o-checkbox size="medium"> Medium </o-checkbox>
|
|
109
|
+
</o-field>
|
|
110
|
+
<o-field>
|
|
111
|
+
<o-checkbox size="large"> Large </o-checkbox>
|
|
112
|
+
</o-field>
|
|
113
|
+
</section>
|
|
114
|
+
|
|
115
|
+
<section>
|
|
116
|
+
<h3>Array</h3>
|
|
117
|
+
|
|
118
|
+
<o-field>
|
|
119
|
+
<o-checkbox v-model="checkboxGroup" native-value="Silver">
|
|
120
|
+
Silver
|
|
121
|
+
</o-checkbox>
|
|
122
|
+
<o-checkbox v-model="checkboxGroup" native-value="Flint">
|
|
123
|
+
Flint
|
|
124
|
+
</o-checkbox>
|
|
125
|
+
<o-checkbox v-model="checkboxGroup" native-value="Vane">
|
|
126
|
+
Vane
|
|
127
|
+
</o-checkbox>
|
|
128
|
+
<o-checkbox v-model="checkboxGroup" native-value="Billy" disabled>
|
|
129
|
+
Billy
|
|
130
|
+
</o-checkbox>
|
|
131
|
+
</o-field>
|
|
132
|
+
<p><b>Selection:</b> {{ checkboxGroup }}</p>
|
|
133
|
+
</section>
|
|
134
|
+
</template>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from "vue";
|
|
3
|
+
|
|
4
|
+
const isOpen = ref(1);
|
|
5
|
+
const collapses = ref([
|
|
6
|
+
{
|
|
7
|
+
title: "Open to read something intersting written for you!",
|
|
8
|
+
text: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br />
|
|
9
|
+
Nulla accumsan, metus ultrices eleifend gravida, <br />
|
|
10
|
+
nulla nunc varius lectus, nec rutrum justo nibh eu lectus. <br />
|
|
11
|
+
Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.`,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: "What the different between Oruga and Buefy?",
|
|
15
|
+
text: "Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. <br />",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: "Nothing special, ignore it!",
|
|
19
|
+
text: "Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.",
|
|
20
|
+
},
|
|
21
|
+
]);
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<section>
|
|
26
|
+
<h2>Collapse Demo</h2>
|
|
27
|
+
</section>
|
|
28
|
+
|
|
29
|
+
<section>
|
|
30
|
+
<h2>Base</h2>
|
|
31
|
+
|
|
32
|
+
<o-collapse :open="false" aria-id="contentIdForA11y1">
|
|
33
|
+
<template #trigger>
|
|
34
|
+
<o-button variant="primary" aria-controls="contentIdForA11y1">
|
|
35
|
+
Click me!
|
|
36
|
+
</o-button>
|
|
37
|
+
</template>
|
|
38
|
+
<div class="card-body">
|
|
39
|
+
<h3>Subtitle</h3>
|
|
40
|
+
<p>
|
|
41
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br />
|
|
42
|
+
Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius
|
|
43
|
+
lectus, nec rutrum justo nibh eu lectus. <br />
|
|
44
|
+
Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel,
|
|
45
|
+
interdum mattis neque.
|
|
46
|
+
</p>
|
|
47
|
+
</div>
|
|
48
|
+
</o-collapse>
|
|
49
|
+
</section>
|
|
50
|
+
|
|
51
|
+
<section>
|
|
52
|
+
<h2>Accordion I</h2>
|
|
53
|
+
|
|
54
|
+
<o-collapse
|
|
55
|
+
v-for="(collapse, index) of collapses"
|
|
56
|
+
:key="index"
|
|
57
|
+
class="card"
|
|
58
|
+
animation="slide"
|
|
59
|
+
:open="isOpen == index"
|
|
60
|
+
@update:open="isOpen = index">
|
|
61
|
+
<template #trigger="props">
|
|
62
|
+
<div class="card-header" role="button">
|
|
63
|
+
<p class="card-header-title">
|
|
64
|
+
{{ collapse.title }}
|
|
65
|
+
</p>
|
|
66
|
+
<a class="card-header-icon">
|
|
67
|
+
<o-icon :icon="props.open ? 'caret-up' : 'caret-down'" />
|
|
68
|
+
</a>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
<div class="card-content p-2">
|
|
72
|
+
<div class="content" v-html="collapse.text" />
|
|
73
|
+
</div>
|
|
74
|
+
</o-collapse>
|
|
75
|
+
</section>
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<style scoped lang="scss">
|
|
79
|
+
article {
|
|
80
|
+
margin: 1rem 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.card {
|
|
84
|
+
margin: 1rem 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.card-header-icon {
|
|
88
|
+
position: absolute;
|
|
89
|
+
top: 0.5rem;
|
|
90
|
+
right: 1rem;
|
|
91
|
+
}
|
|
92
|
+
</style>
|
|
93
|
+
|
|
94
|
+
<style scoped lang="scss">
|
|
95
|
+
.card {
|
|
96
|
+
background-color: #fff;
|
|
97
|
+
box-shadow: 0 2px 3px hsla(0, 0%, 4%, 0.1), 0 0 0 1px hsla(0, 0%, 4%, 0.1);
|
|
98
|
+
color: #4a4a4a;
|
|
99
|
+
max-width: 100%;
|
|
100
|
+
position: relative;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.card-header {
|
|
104
|
+
background-color: transparent;
|
|
105
|
+
align-items: stretch;
|
|
106
|
+
box-shadow: 0 1px 2px hsla(0, 0%, 4%, 0.1);
|
|
107
|
+
display: flex;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.card-header-title {
|
|
111
|
+
align-items: center;
|
|
112
|
+
color: #363636;
|
|
113
|
+
display: flex;
|
|
114
|
+
flex-grow: 1;
|
|
115
|
+
font-weight: 700;
|
|
116
|
+
padding: 0.75rem;
|
|
117
|
+
margin: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.card-header-icon {
|
|
121
|
+
align-items: center;
|
|
122
|
+
cursor: pointer;
|
|
123
|
+
display: flex;
|
|
124
|
+
padding: 0.75rem;
|
|
125
|
+
justify-content: center;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.card-content {
|
|
129
|
+
padding: 1.5rem;
|
|
130
|
+
background-color: transparent;
|
|
131
|
+
}
|
|
132
|
+
</style>
|