@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.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/dist/oruga-full.css +3778 -0
  4. package/dist/oruga-full.min.css +1 -0
  5. package/dist/oruga.css +2209 -0
  6. package/dist/oruga.min.css +1 -0
  7. package/dist/scss/components/_autocomplete.scss +130 -0
  8. package/dist/scss/components/_button.scss +242 -0
  9. package/dist/scss/components/_carousel.scss +256 -0
  10. package/dist/scss/components/_checkbox.scss +183 -0
  11. package/dist/scss/components/_collapse.scss +12 -0
  12. package/dist/scss/components/_datepicker.scss +592 -0
  13. package/dist/scss/components/_datetimepicker.scss +10 -0
  14. package/dist/scss/components/_dropdown.scss +241 -0
  15. package/dist/scss/components/_field.scss +154 -0
  16. package/dist/scss/components/_icon.scss +53 -0
  17. package/dist/scss/components/_input.scss +153 -0
  18. package/dist/scss/components/_inputitems.scss +175 -0
  19. package/dist/scss/components/_loading.scss +45 -0
  20. package/dist/scss/components/_menu.scss +124 -0
  21. package/dist/scss/components/_modal.scss +103 -0
  22. package/dist/scss/components/_notification.scss +212 -0
  23. package/dist/scss/components/_pagination.scss +256 -0
  24. package/dist/scss/components/_radio.scss +121 -0
  25. package/dist/scss/components/_select.scss +168 -0
  26. package/dist/scss/components/_sidebar.scss +112 -0
  27. package/dist/scss/components/_skeleton.scss +93 -0
  28. package/dist/scss/components/_slider.scss +241 -0
  29. package/dist/scss/components/_steps.scss +599 -0
  30. package/dist/scss/components/_switch.scss +171 -0
  31. package/dist/scss/components/_table.scss +481 -0
  32. package/dist/scss/components/_tabs.scss +385 -0
  33. package/dist/scss/components/_timepicker.scss +116 -0
  34. package/dist/scss/components/_tooltip.scss +345 -0
  35. package/dist/scss/components/_upload.scss +74 -0
  36. package/dist/scss/oruga-common.scss +37 -0
  37. package/dist/scss/oruga-full.scss +9 -0
  38. package/dist/scss/oruga.scss +197 -0
  39. package/dist/scss/utils/_animations.scss +231 -0
  40. package/dist/scss/utils/_base.scss +31 -0
  41. package/dist/scss/utils/_helpers.scss +211 -0
  42. package/dist/scss/utils/_root.scss +28 -0
  43. package/dist/scss/utils/_variables.scss +105 -0
  44. package/dist/theme.js +8 -0
  45. package/package.json +72 -0
  46. package/src/App.vue +104 -0
  47. package/src/assets/scss/components/_autocomplete.scss +130 -0
  48. package/src/assets/scss/components/_button.scss +242 -0
  49. package/src/assets/scss/components/_carousel.scss +256 -0
  50. package/src/assets/scss/components/_checkbox.scss +183 -0
  51. package/src/assets/scss/components/_collapse.scss +12 -0
  52. package/src/assets/scss/components/_datepicker.scss +592 -0
  53. package/src/assets/scss/components/_datetimepicker.scss +10 -0
  54. package/src/assets/scss/components/_dropdown.scss +241 -0
  55. package/src/assets/scss/components/_field.scss +154 -0
  56. package/src/assets/scss/components/_icon.scss +53 -0
  57. package/src/assets/scss/components/_input.scss +153 -0
  58. package/src/assets/scss/components/_inputitems.scss +175 -0
  59. package/src/assets/scss/components/_loading.scss +45 -0
  60. package/src/assets/scss/components/_menu.scss +124 -0
  61. package/src/assets/scss/components/_modal.scss +103 -0
  62. package/src/assets/scss/components/_notification.scss +212 -0
  63. package/src/assets/scss/components/_pagination.scss +256 -0
  64. package/src/assets/scss/components/_radio.scss +121 -0
  65. package/src/assets/scss/components/_select.scss +168 -0
  66. package/src/assets/scss/components/_sidebar.scss +112 -0
  67. package/src/assets/scss/components/_skeleton.scss +93 -0
  68. package/src/assets/scss/components/_slider.scss +241 -0
  69. package/src/assets/scss/components/_steps.scss +599 -0
  70. package/src/assets/scss/components/_switch.scss +171 -0
  71. package/src/assets/scss/components/_table.scss +481 -0
  72. package/src/assets/scss/components/_tabs.scss +385 -0
  73. package/src/assets/scss/components/_timepicker.scss +116 -0
  74. package/src/assets/scss/components/_tooltip.scss +345 -0
  75. package/src/assets/scss/components/_upload.scss +74 -0
  76. package/src/assets/scss/oruga-common.scss +37 -0
  77. package/src/assets/scss/oruga-full.scss +9 -0
  78. package/src/assets/scss/oruga.scss +197 -0
  79. package/src/assets/scss/utils/_animations.scss +231 -0
  80. package/src/assets/scss/utils/_base.scss +31 -0
  81. package/src/assets/scss/utils/_helpers.scss +211 -0
  82. package/src/assets/scss/utils/_root.scss +28 -0
  83. package/src/assets/scss/utils/_variables.scss +105 -0
  84. package/src/components/Autocomplete.vue +606 -0
  85. package/src/components/Button.vue +80 -0
  86. package/src/components/Carousel.vue +296 -0
  87. package/src/components/Checkbox.vue +134 -0
  88. package/src/components/Collapse.vue +132 -0
  89. package/src/components/Datepicker.vue +285 -0
  90. package/src/components/Datetimepicker.vue +127 -0
  91. package/src/components/Dropdown.vue +284 -0
  92. package/src/components/Field.vue +243 -0
  93. package/src/components/Icon.vue +66 -0
  94. package/src/components/Input.vue +121 -0
  95. package/src/components/Loading.vue +71 -0
  96. package/src/components/Modal.vue +171 -0
  97. package/src/components/Notification.vue +136 -0
  98. package/src/components/Pagination.vue +97 -0
  99. package/src/components/Radio.vue +95 -0
  100. package/src/components/Select.vue +155 -0
  101. package/src/components/Sidebar.vue +56 -0
  102. package/src/components/Skeleton.vue +57 -0
  103. package/src/components/Slider.vue +226 -0
  104. package/src/components/Steps.vue +234 -0
  105. package/src/components/Switch.vue +134 -0
  106. package/src/components/Table.vue +285 -0
  107. package/src/components/Tabs.vue +208 -0
  108. package/src/components/Taginput.vue +507 -0
  109. package/src/components/Timepicker.vue +124 -0
  110. package/src/components/Tooltip.vue +149 -0
  111. package/src/components/Upload.vue +66 -0
  112. package/src/main.ts +29 -0
  113. package/src/plugins/theme.ts +1 -0
  114. package/src/router/index.ts +39 -0
  115. package/src/views/Home.vue +24 -0
  116. package/types/index.d.ts +1 -0
@@ -0,0 +1,606 @@
1
+ <script setup lang="ts">
2
+ import { computed, ref } from "vue";
3
+
4
+ const nameBase = ref("");
5
+ const selectedBase = ref();
6
+
7
+ const dataBase = ref([
8
+ "Angular 1",
9
+ "Angular 2",
10
+ "Angular 4",
11
+ "Angular 5",
12
+ "Angular 6",
13
+ "Angular 7",
14
+ "Aurelia",
15
+ "Backbone",
16
+ "Ember",
17
+ "jQuery",
18
+ "Meteor",
19
+ "Node.js",
20
+ "Polymer",
21
+ "React",
22
+ "RxJS",
23
+ "Vue.js",
24
+ ]);
25
+
26
+ const filteredDataBase = computed((): string[] => {
27
+ return dataBase.value.filter((option: any) => {
28
+ return (
29
+ option.toString().toLowerCase().indexOf(nameBase.value.toLowerCase()) >= 0
30
+ );
31
+ });
32
+ });
33
+
34
+ const nameObjects = ref("");
35
+ const selectedObjects = ref();
36
+ const dataObjects = [
37
+ {
38
+ id: 1,
39
+ user: { first_name: "Jesse", last_name: "Simmons" },
40
+ date: "2016/10/15 13:43:27",
41
+ gender: "Male",
42
+ },
43
+ {
44
+ id: 2,
45
+ user: { first_name: "John", last_name: "Jacobs" },
46
+ date: "2016/12/15 06:00:53",
47
+ gender: "Male",
48
+ },
49
+ {
50
+ id: 3,
51
+ user: { first_name: "Tina", last_name: "Gilbert" },
52
+ date: "2016/04/26 06:26:28",
53
+ gender: "Female",
54
+ },
55
+ {
56
+ id: 4,
57
+ user: { first_name: "Clarence", last_name: "Flores" },
58
+ date: "2016/04/10 10:28:46",
59
+ gender: "Male",
60
+ },
61
+ {
62
+ id: 5,
63
+ user: { first_name: "Anne", last_name: "Lee" },
64
+ date: "2016/12/06 14:38:38",
65
+ gender: "Female",
66
+ },
67
+ {
68
+ id: 6,
69
+ user: { first_name: "Sara", last_name: "Armstrong" },
70
+ date: "2016/09/23 18:50:04",
71
+ gender: "Female",
72
+ },
73
+ {
74
+ id: 7,
75
+ user: { first_name: "Anthony", last_name: "Webb" },
76
+ date: "2016/08/30 23:49:38",
77
+ gender: "Male",
78
+ },
79
+ {
80
+ id: 8,
81
+ user: { first_name: "Andrew", last_name: "Greene" },
82
+ date: "2016/11/20 14:57:47",
83
+ gender: "Male",
84
+ },
85
+ {
86
+ id: 9,
87
+ user: { first_name: "Russell", last_name: "White" },
88
+ date: "2016/07/13 09:29:49",
89
+ gender: "Male",
90
+ },
91
+ {
92
+ id: 10,
93
+ user: { first_name: "Lori", last_name: "Hunter" },
94
+ date: "2016/12/09 01:44:05",
95
+ gender: "Female",
96
+ },
97
+ {
98
+ id: 11,
99
+ user: { first_name: "Ronald", last_name: "Wood" },
100
+ date: "2016/12/04 02:23:48",
101
+ gender: "Male",
102
+ },
103
+ {
104
+ id: 12,
105
+ user: { first_name: "Michael", last_name: "Harper" },
106
+ date: "2016/07/27 13:28:15",
107
+ gender: "Male",
108
+ },
109
+ {
110
+ id: 13,
111
+ user: { first_name: "George", last_name: "Dunn" },
112
+ date: "2017/03/07 12:26:52",
113
+ gender: "Male",
114
+ },
115
+ {
116
+ id: 14,
117
+ user: { first_name: "Eric", last_name: "Rogers" },
118
+ date: "2016/06/07 05:41:52",
119
+ gender: "Male",
120
+ },
121
+ {
122
+ id: 15,
123
+ user: { first_name: "Juan", last_name: "Meyer" },
124
+ date: "2017/02/01 04:56:34",
125
+ gender: "Male",
126
+ },
127
+ {
128
+ id: 16,
129
+ user: { first_name: "Silvia", last_name: "Rosa" },
130
+ date: "2017/01/26 11:50:04",
131
+ gender: "Female",
132
+ },
133
+ {
134
+ id: 17,
135
+ user: { first_name: "Lori", last_name: "Cunningham" },
136
+ date: "2016/05/01 10:00:56",
137
+ gender: "Female",
138
+ },
139
+ {
140
+ id: 18,
141
+ user: { first_name: "Charles", last_name: "Graham" },
142
+ date: "2016/05/31 06:43:30",
143
+ gender: "Male",
144
+ },
145
+ {
146
+ id: 19,
147
+ user: { first_name: "Henry", last_name: "Morrison" },
148
+ date: "2016/09/27 16:15:44",
149
+ gender: "Male",
150
+ },
151
+ {
152
+ id: 20,
153
+ user: { first_name: "Albert", last_name: "Mendoza" },
154
+ date: "2016/08/08 05:29:24",
155
+ gender: "Male",
156
+ },
157
+ {
158
+ id: 21,
159
+ user: { first_name: "Ruby", last_name: "Snyder" },
160
+ date: "2017/04/01 12:04:39",
161
+ gender: "Female",
162
+ },
163
+ {
164
+ id: 22,
165
+ user: { first_name: "Jesse", last_name: "Warren" },
166
+ date: "2016/08/20 01:36:38",
167
+ gender: "Male",
168
+ },
169
+ {
170
+ id: 23,
171
+ user: { first_name: "Carlos", last_name: "Ferguson" },
172
+ date: "2016/05/31 10:40:29",
173
+ gender: "Male",
174
+ },
175
+ {
176
+ id: 24,
177
+ user: { first_name: "Melissa", last_name: "Peters" },
178
+ date: "2016/07/23 00:41:54",
179
+ gender: "Female",
180
+ },
181
+ {
182
+ id: 25,
183
+ user: { first_name: "Arthur", last_name: "Garza" },
184
+ date: "2017/03/11 14:11:37",
185
+ gender: "Male",
186
+ },
187
+ {
188
+ id: 26,
189
+ user: { first_name: "Joe", last_name: "Berry" },
190
+ date: "2016/07/09 15:16:56",
191
+ gender: "Male",
192
+ },
193
+ {
194
+ id: 27,
195
+ user: { first_name: "Joseph", last_name: "Bishop" },
196
+ date: "2016/10/04 19:44:54",
197
+ gender: "Male",
198
+ },
199
+ {
200
+ id: 28,
201
+ user: { first_name: "Sarah", last_name: "Harper" },
202
+ date: "2016/09/23 05:09:11",
203
+ gender: "Female",
204
+ },
205
+ {
206
+ id: 29,
207
+ user: { first_name: "Christopher", last_name: "Fuller" },
208
+ date: "2016/04/12 00:05:35",
209
+ gender: "Male",
210
+ },
211
+ {
212
+ id: 30,
213
+ user: { first_name: "Alan", last_name: "Mendoza" },
214
+ date: "2016/04/22 10:48:02",
215
+ gender: "Male",
216
+ },
217
+ {
218
+ id: 31,
219
+ user: { first_name: "James", last_name: "Davis" },
220
+ date: "2017/01/16 15:17:03",
221
+ gender: "Male",
222
+ },
223
+ {
224
+ id: 32,
225
+ user: { first_name: "Scott", last_name: "Welch" },
226
+ date: "2016/10/04 23:31:51",
227
+ gender: "Male",
228
+ },
229
+ {
230
+ id: 33,
231
+ user: { first_name: "Mildred", last_name: "Myers" },
232
+ date: "2016/11/23 13:46:18",
233
+ gender: "Female",
234
+ },
235
+ {
236
+ id: 34,
237
+ user: { first_name: "Victor", last_name: "Martinez" },
238
+ date: "2016/04/06 17:05:07",
239
+ gender: "Male",
240
+ },
241
+ {
242
+ id: 35,
243
+ user: { first_name: "Susan", last_name: "Medina" },
244
+ date: "2016/12/09 10:33:37",
245
+ gender: "Female",
246
+ },
247
+ {
248
+ id: 36,
249
+ user: { first_name: "Judy", last_name: "Long" },
250
+ date: "2016/07/26 16:19:04",
251
+ gender: "Female",
252
+ },
253
+ {
254
+ id: 37,
255
+ user: { first_name: "Joan", last_name: "Myers" },
256
+ date: "2016/09/22 04:55:54",
257
+ gender: "Female",
258
+ },
259
+ {
260
+ id: 38,
261
+ user: { first_name: "Rachel", last_name: "Gonzales" },
262
+ date: "2016/07/15 13:56:38",
263
+ gender: "Female",
264
+ },
265
+ {
266
+ id: 39,
267
+ user: { first_name: "Roger", last_name: "Hunt" },
268
+ date: "2016/08/14 10:43:11",
269
+ gender: "Male",
270
+ },
271
+ {
272
+ id: 40,
273
+ user: { first_name: "Dorothy", last_name: "Howard" },
274
+ date: "2016/06/19 05:34:49",
275
+ gender: "Female",
276
+ },
277
+ {
278
+ id: 41,
279
+ user: { first_name: "Eugene", last_name: "Lynch" },
280
+ date: "2016/12/24 08:19:24",
281
+ gender: "Male",
282
+ },
283
+ {
284
+ id: 42,
285
+ user: { first_name: "Kathy", last_name: "Webb" },
286
+ date: "2017/04/01 21:09:05",
287
+ gender: "Female",
288
+ },
289
+ {
290
+ id: 43,
291
+ user: { first_name: "Antonio", last_name: "White" },
292
+ date: "2017/02/10 06:51:20",
293
+ gender: "Male",
294
+ },
295
+ {
296
+ id: 44,
297
+ user: { first_name: "Louis", last_name: "Spencer" },
298
+ date: "2016/10/08 02:20:22",
299
+ gender: "Male",
300
+ },
301
+ {
302
+ id: 45,
303
+ user: { first_name: "Andrea", last_name: "Marshall" },
304
+ date: "2016/09/04 10:59:57",
305
+ gender: "Female",
306
+ },
307
+ {
308
+ id: 46,
309
+ user: { first_name: "Eugene", last_name: "Sims" },
310
+ date: "2017/03/15 06:39:48",
311
+ gender: "Male",
312
+ },
313
+ {
314
+ id: 47,
315
+ user: { first_name: "Mildred", last_name: "Gibson" },
316
+ date: "2016/04/18 06:43:54",
317
+ gender: "Female",
318
+ },
319
+ {
320
+ id: 48,
321
+ user: { first_name: "Joan", last_name: "Arnold" },
322
+ date: "2016/12/16 04:52:23",
323
+ gender: "Female",
324
+ },
325
+ {
326
+ id: 49,
327
+ user: { first_name: "Jesse", last_name: "Schmidt" },
328
+ date: "2016/06/11 02:44:33",
329
+ gender: "Male",
330
+ },
331
+ {
332
+ id: 50,
333
+ user: { first_name: "David", last_name: "Frazier" },
334
+ date: "2017/02/15 21:46:30",
335
+ gender: "Male",
336
+ },
337
+ {
338
+ id: 51,
339
+ user: { first_name: "Nicholas", last_name: "Howell" },
340
+ date: "2016/11/01 15:08:31",
341
+ gender: "Male",
342
+ },
343
+ {
344
+ id: 52,
345
+ user: { first_name: "Douglas", last_name: "Chapman" },
346
+ date: "2017/02/08 03:33:24",
347
+ gender: "Male",
348
+ },
349
+ {
350
+ id: 53,
351
+ user: { first_name: "Bruce", last_name: "Simmons" },
352
+ date: "2016/07/14 12:11:17",
353
+ gender: "Male",
354
+ },
355
+ {
356
+ id: 54,
357
+ user: { first_name: "Antonio", last_name: "George" },
358
+ date: "2016/11/07 19:12:55",
359
+ gender: "Male",
360
+ },
361
+ {
362
+ id: 55,
363
+ user: { first_name: "Chris", last_name: "Marshall" },
364
+ date: "2016/07/03 12:11:45",
365
+ gender: "Male",
366
+ },
367
+ {
368
+ id: 56,
369
+ user: { first_name: "Ashley", last_name: "Hudson" },
370
+ date: "2016/10/14 21:08:05",
371
+ gender: "Female",
372
+ },
373
+ {
374
+ id: 57,
375
+ user: { first_name: "Alan", last_name: "Edwards" },
376
+ date: "2017/03/22 21:10:25",
377
+ gender: "Male",
378
+ },
379
+ {
380
+ id: 58,
381
+ user: { first_name: "George", last_name: "Clark" },
382
+ date: "2016/04/28 03:15:05",
383
+ gender: "Male",
384
+ },
385
+ {
386
+ id: 59,
387
+ user: { first_name: "Frank", last_name: "Porter" },
388
+ date: "2016/09/08 00:48:14",
389
+ gender: "Male",
390
+ },
391
+ {
392
+ id: 60,
393
+ user: { first_name: "Christopher", last_name: "Palmer" },
394
+ date: "2016/05/24 08:58:12",
395
+ gender: "Male",
396
+ },
397
+ ];
398
+
399
+ const filteredDataObjects = computed(() =>
400
+ dataObjects.filter(
401
+ (option) =>
402
+ option.user.first_name
403
+ .toString()
404
+ .toLowerCase()
405
+ .indexOf(nameObjects.value.toLowerCase()) >= 0,
406
+ ),
407
+ );
408
+
409
+ const nameGroups = ref("");
410
+ const selectedGroups = ref();
411
+ const dataGroups = [
412
+ {
413
+ type: "Fruit",
414
+ items: ["Apple", "Banana", "Watermelon"],
415
+ },
416
+ {
417
+ type: "Vegetables",
418
+ items: ["Carrot", "Broccoli", "Cucumber", "Onion"],
419
+ },
420
+ ];
421
+
422
+ const filteredDataGroups = computed(() =>
423
+ dataGroups.reduce((acc, element): any => {
424
+ const items = element.items.filter(
425
+ (item) => item.toLowerCase().indexOf(nameGroups.value.toLowerCase()) >= 0,
426
+ );
427
+
428
+ return items.length ? [...acc, { type: element.type, items }] : acc;
429
+ }, []),
430
+ );
431
+
432
+ const keepFirst = ref(false);
433
+ const openOnFocus = ref(false);
434
+
435
+ const isFetching = ref(false);
436
+ const page = ref(1);
437
+ const totalPages = ref(1);
438
+
439
+ const dataInfinite = ref<any[]>([]);
440
+ const selectedInfinite = ref();
441
+ const nameInfinite = ref("");
442
+
443
+ async function getAsyncData(_name: string) {
444
+ if (nameInfinite.value !== _name) {
445
+ nameInfinite.value = _name;
446
+ dataInfinite.value = [];
447
+ page.value = 1;
448
+ totalPages.value = 1;
449
+ }
450
+
451
+ // String cleared
452
+ if (!_name.length) {
453
+ dataInfinite.value = [];
454
+ page.value = 1;
455
+ totalPages.value = 1;
456
+
457
+ return;
458
+ }
459
+
460
+ // Reached last page
461
+ if (page.value > totalPages.value) {
462
+ return;
463
+ }
464
+
465
+ isFetching.value = true;
466
+ try {
467
+ const _data = await fetch(
468
+ `https://api.themoviedb.org/3/search/movie?api_key=bb6f51bef07465653c3e553d6ab161a8&query=${_name}&page=${page.value}`,
469
+ ).then((response) => response.json());
470
+
471
+ dataInfinite.value = [...dataInfinite.value, ..._data.results];
472
+ page.value += 1;
473
+ totalPages.value = _data.total_pages;
474
+ } finally {
475
+ isFetching.value = false;
476
+ }
477
+ }
478
+
479
+ function getMoreAsyncData() {
480
+ getAsyncData(nameInfinite.value);
481
+ }
482
+ </script>
483
+
484
+ <template>
485
+ <section>
486
+ <h2>Autocomplete Demo</h2>
487
+ <hr />
488
+ </section>
489
+
490
+ <section>
491
+ <h3>Base</h3>
492
+
493
+ <o-field label="Find a JS framework">
494
+ <o-autocomplete
495
+ v-model="nameBase"
496
+ rounded
497
+ expanded
498
+ placeholder="e.g. jQuery"
499
+ icon="search"
500
+ clearable
501
+ :data="filteredDataBase"
502
+ @select="(option: string) => (selectedBase = option)">
503
+ <template #empty>No results found</template>
504
+ </o-autocomplete>
505
+ </o-field>
506
+ <p><b>Selected:</b> {{ selectedBase }}</p>
507
+ </section>
508
+
509
+ <section>
510
+ <h3>Objects array</h3>
511
+
512
+ <o-field grouped group-multiline>
513
+ <o-switch v-model="openOnFocus">Open dropdown on focus</o-switch>
514
+ <o-switch v-model="keepFirst">Keep-first</o-switch>
515
+ </o-field>
516
+
517
+ <o-field label="Find a name">
518
+ <o-autocomplete
519
+ v-model="nameObjects"
520
+ placeholder="e.g. Anne"
521
+ :keep-first="keepFirst"
522
+ :open-on-focus="openOnFocus"
523
+ :data="filteredDataObjects"
524
+ field="user.first_name"
525
+ @select="(option: any) => (selectedObjects = option)" />
526
+ </o-field>
527
+ <p><b>Selected:</b> {{ selectedObjects }}</p>
528
+ </section>
529
+
530
+ <section>
531
+ <h3>Groups</h3>
532
+
533
+ <o-field label="Find a food">
534
+ <o-autocomplete
535
+ v-model="nameGroups"
536
+ group-field="type"
537
+ group-options="items"
538
+ open-on-focus
539
+ :data="filteredDataGroups"
540
+ field="user.first_name"
541
+ @select="(option:any) => (selectedGroups = option)" />
542
+ </o-field>
543
+ <p><b>Selected:</b> {{ selectedGroups }}</p>
544
+ </section>
545
+
546
+ <section>
547
+ <h3>Infinite Scroll</h3>
548
+
549
+ <o-field label="Find a movie">
550
+ <o-autocomplete
551
+ :data="dataInfinite"
552
+ placeholder="e.g. Fight Club"
553
+ field="title"
554
+ :loading="isFetching"
555
+ check-infinite-scroll
556
+ :debounce-typing="500"
557
+ @typing="getAsyncData"
558
+ @select="(option: any) => (selectedInfinite = option)"
559
+ @infinite-scroll="getMoreAsyncData">
560
+ <template #default="props">
561
+ <div class="media">
562
+ <div class="media-left">
563
+ <img
564
+ width="32"
565
+ :src="`https://image.tmdb.org/t/p/w500/${props.option.poster_path}`" />
566
+ </div>
567
+ <div class="media-content">
568
+ {{ props.option.title }}
569
+ <br />
570
+ <small>
571
+ Released at {{ props.option.release_date }}, rated
572
+ <b>{{ props.option.vote_average }}</b>
573
+ </small>
574
+ </div>
575
+ </div>
576
+ </template>
577
+ <template v-if="page > totalPages" #footer>
578
+ <span class="ex-text-grey"> Thats it! No more movies found. </span>
579
+ </template>
580
+ </o-autocomplete>
581
+ </o-field>
582
+ <p><b>Selected:</b> {{ selectedInfinite }}</p>
583
+ </section>
584
+ </template>
585
+
586
+ <style scoped lang="scss">
587
+ .media {
588
+ align-items: flex-start;
589
+ display: flex;
590
+ text-align: left;
591
+ }
592
+ .media-left {
593
+ margin-right: 1rem;
594
+ flex-basis: auto;
595
+ flex-grow: 0;
596
+ flex-shrink: 0;
597
+ }
598
+ .media-content {
599
+ flex-basis: auto;
600
+ flex-grow: 1;
601
+ flex-shrink: 1;
602
+ text-align: left;
603
+ overflow-y: hidden;
604
+ overflow-x: auto;
605
+ }
606
+ </style>
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <section>
3
+ <h2>Button Demo</h2>
4
+ <hr />
5
+ </section>
6
+
7
+ <section>
8
+ <h3>Base</h3>
9
+
10
+ <div class="buttons">
11
+ <o-button variant="primary">Primary</o-button>
12
+ <o-button variant="secondary">Secondary</o-button>
13
+ <o-button variant="info">Info</o-button>
14
+ <o-button variant="success">Success</o-button>
15
+ <o-button variant="warning">Warning</o-button>
16
+ <o-button variant="danger">Danger</o-button>
17
+ </div>
18
+ </section>
19
+
20
+ <section>
21
+ <h3>States</h3>
22
+
23
+ <div class="buttons">
24
+ <o-button>Normal</o-button>
25
+ <o-button disabled>Disabled</o-button>
26
+ <o-button rounded variant="light">Rounded</o-button>
27
+ </div>
28
+ </section>
29
+
30
+ <section>
31
+ <h3>Outlined</h3>
32
+
33
+ <div class="buttons">
34
+ <o-button variant="primary" outlined>Outlined</o-button>
35
+ <o-button variant="secondary" outlined>Outlined</o-button>
36
+ <o-button variant="info" outlined>Outlined</o-button>
37
+ <o-button variant="success" outlined>Outlined</o-button>
38
+ <o-button variant="warning" outlined>Outlined</o-button>
39
+ <o-button variant="danger" outlined>Outlined</o-button>
40
+ </div>
41
+ </section>
42
+
43
+ <section>
44
+ <h3>Inverted</h3>
45
+
46
+ <div class="buttons">
47
+ <o-button variant="primary" inverted>Inverted</o-button>
48
+ <o-button variant="secondary" inverted>Inverted</o-button>
49
+ <o-button variant="info" inverted>Inverted</o-button>
50
+ <o-button variant="success" inverted>Inverted</o-button>
51
+ <o-button variant="warning" inverted>Inverted</o-button>
52
+ <o-button variant="danger" inverted>Inverted</o-button>
53
+ </div>
54
+ </section>
55
+
56
+ <section>
57
+ <h3>Icons</h3>
58
+
59
+ <div class="buttons">
60
+ <o-button variant="primary" size="small" icon-left="plus">Add</o-button>
61
+ <o-button variant="primary" icon-left="plus">Add</o-button>
62
+ <o-button variant="primary" size="medium" icon-left="plus">Add</o-button>
63
+ <o-button variant="primary" size="large" icon-left="plus">Add</o-button>
64
+ </div>
65
+
66
+ <div class="buttons">
67
+ <o-button variant="danger" icon-left="trash">Delete</o-button>
68
+ <o-button variant="danger" icon-right="trash">Delete</o-button>
69
+ <o-button variant="danger" icon-right="trash" />
70
+ </div>
71
+ </section>
72
+
73
+ <section>
74
+ <h3>Expanded</h3>
75
+
76
+ <div class="buttons">
77
+ <o-button variant="primary" expanded>Expanded</o-button>
78
+ </div>
79
+ </section>
80
+ </template>