@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,285 @@
1
+ <script setup lang="ts">
2
+ import { ref } from "vue";
3
+
4
+ const columns = ref([
5
+ {
6
+ field: "id",
7
+ label: "ID",
8
+ width: "40",
9
+ numeric: true,
10
+ sticky: "true",
11
+ },
12
+ {
13
+ field: "first_name",
14
+ label: "First Name",
15
+ sortable: true,
16
+ },
17
+ {
18
+ field: "last_name",
19
+ label: "Last Name",
20
+ sortable: true,
21
+ },
22
+ {
23
+ field: "date",
24
+ label: "Date",
25
+ position: "centered",
26
+ sortable: false,
27
+ display: (v: string) => new Date(v).toLocaleDateString(),
28
+ },
29
+ {
30
+ field: "gender",
31
+ label: "Gender",
32
+ position: "right",
33
+ sortable: true,
34
+ component: (v: string) => ({
35
+ is: "o-icon",
36
+ pack: "fas",
37
+ icon: v === "Male" ? "mars" : "venus",
38
+ }),
39
+ },
40
+ ]);
41
+
42
+ const dataTable = ref([
43
+ {
44
+ id: 1,
45
+ first_name: "Jesse",
46
+ last_name: "Simmons",
47
+ date: "2016/10/15 13:43:27",
48
+ gender: "Male",
49
+ },
50
+ {
51
+ id: 2,
52
+ first_name: "John",
53
+ last_name: "Jacobs",
54
+ date: "2016/12/15 06:00:53",
55
+ gender: "Male",
56
+ },
57
+ {
58
+ id: 3,
59
+ first_name: "Tina",
60
+ last_name: "Gilbert",
61
+ date: "2016/04/26 06:26:28",
62
+ gender: "Female",
63
+ },
64
+ {
65
+ id: 4,
66
+ first_name: "Clarence",
67
+ last_name: "Flores",
68
+ date: "2016/04/10 10:28:46",
69
+ gender: "Male",
70
+ },
71
+ {
72
+ id: 5,
73
+ first_name: "Anne",
74
+ last_name: "Lee",
75
+ date: "2016/12/06 14:38:38",
76
+ gender: "Female",
77
+ },
78
+ {
79
+ id: 6,
80
+ first_name: "Sara",
81
+ last_name: "Armstrong",
82
+ date: "2016/09/23 18:50:04",
83
+ gender: "Female",
84
+ },
85
+ {
86
+ id: 7,
87
+ first_name: "Anthony",
88
+ last_name: "Webb",
89
+ date: "2016/08/30 23:49:38",
90
+ gender: "Male",
91
+ },
92
+ {
93
+ id: 8,
94
+ first_name: "Andrew",
95
+ last_name: "Greene",
96
+ date: "2016/11/20 14:57:47",
97
+ gender: "Male",
98
+ },
99
+ {
100
+ id: 9,
101
+ first_name: "Russell",
102
+ last_name: "White",
103
+ date: "2016/07/13 09:29:49",
104
+ gender: "Male",
105
+ },
106
+ {
107
+ id: 10,
108
+ first_name: "Lori",
109
+ last_name: "Hunter",
110
+ date: "2016/12/09 01:44:05",
111
+ gender: "Female",
112
+ },
113
+ ]);
114
+
115
+ const isEmpty = ref(false);
116
+ const isBordered = ref(false);
117
+ const isStriped = ref(false);
118
+ const isNarrowed = ref(false);
119
+ const isHoverable = ref(false);
120
+ const isFocusable = ref(false);
121
+ const isLoading = ref(false);
122
+ const hasMobileCards = ref(true);
123
+
124
+ const currentPage = ref(1);
125
+ const isPaginated = ref(true);
126
+ const isPaginationSimple = ref(false);
127
+ const paginationPosition = ref("bottom");
128
+ const perPage = ref(3);
129
+
130
+ const checkedRows = ref([]);
131
+ const selected = ref(null);
132
+ </script>
133
+
134
+ <template>
135
+ <section>
136
+ <h2>Table Demo</h2>
137
+ <hr />
138
+ </section>
139
+
140
+ <section>
141
+ <h3>Sandbox</h3>
142
+
143
+ <o-field grouped group-multiline>
144
+ <o-switch v-model="isBordered" :rounded="true">Bordered</o-switch>
145
+ <o-switch v-model="isStriped" :rounded="true">Striped</o-switch>
146
+ <o-switch v-model="isNarrowed" :rounded="true">Narrowed</o-switch>
147
+ <o-switch v-model="isHoverable" :rounded="true">Hoverable</o-switch>
148
+ <o-switch v-model="isFocusable" :rounded="true">Focusable</o-switch>
149
+ <o-switch v-model="isLoading" :rounded="true">Loading state</o-switch>
150
+ <o-switch v-model="isEmpty" :rounded="true">Empty</o-switch>
151
+ <o-switch v-model="hasMobileCards" :rounded="true">
152
+ Mobile cards <small>(collapsed rows)</small>
153
+ </o-switch>
154
+ </o-field>
155
+
156
+ <o-table
157
+ v-model:checked-rows="checkedRows"
158
+ :paginated="false"
159
+ :data="isEmpty ? [] : dataTable"
160
+ :bordered="isBordered"
161
+ :striped="isStriped"
162
+ :narrowed="isNarrowed"
163
+ :hoverable="isHoverable"
164
+ :loading="isLoading"
165
+ :focusable="isFocusable"
166
+ :mobile-cards="hasMobileCards"
167
+ checkable
168
+ detailed>
169
+ <o-table-column
170
+ v-for="(column, idx) in columns"
171
+ :key="idx"
172
+ v-slot="{ row }"
173
+ v-bind="column">
174
+ <span>
175
+ <component
176
+ :is="column.component(row[column.field]).is"
177
+ v-if="column.component"
178
+ v-bind="column.component(row[column.field])" />
179
+ {{
180
+ column.display
181
+ ? column.display(row[column.field])
182
+ : row[column.field]
183
+ }}
184
+ </span>
185
+ </o-table-column>
186
+
187
+ <template #detail="props">
188
+ <tr>
189
+ <td>{{ props.row.id }}</td>
190
+ <td>{{ props.row.first_name }}</td>
191
+ <td>{{ props.row.last_name }}</td>
192
+ <td>{{ props.row.gender }}</td>
193
+ </tr>
194
+ </template>
195
+
196
+ <template #bottom-left>
197
+ <b>Total checked</b>: {{ checkedRows.length }}
198
+ </template>
199
+ </o-table>
200
+ </section>
201
+
202
+ <section>
203
+ <h3>Paginated</h3>
204
+
205
+ <o-field grouped group-multiline>
206
+ <o-switch v-model="isPaginated" :rounded="true"> Paginated </o-switch>
207
+ <o-switch v-model="isPaginationSimple" :rounded="true">
208
+ Simple Paginated
209
+ </o-switch>
210
+ <o-select v-model="perPage" :disabled="!isPaginated">
211
+ <option value="3">3 per page</option>
212
+ <option value="5">5 per page</option>
213
+ <option value="10">10 per page</option>
214
+ <option value="15">15 per page</option>
215
+ <option value="20">20 per page</option>
216
+ </o-select>
217
+ <o-select v-model="paginationPosition" :disabled="!isPaginated">
218
+ <option value="bottom">bottom pagination</option>
219
+ <option value="top">top pagination</option>
220
+ <option value="both">both</option>
221
+ </o-select>
222
+ </o-field>
223
+ <p><b>Page:</b> {{ currentPage }}</p>
224
+
225
+ <o-table
226
+ v-model:current-page="currentPage"
227
+ :data="dataTable"
228
+ :paginated="isPaginated"
229
+ :per-page="perPage"
230
+ :pagination-simple="isPaginationSimple"
231
+ :pagination-position="paginationPosition">
232
+ <o-table-column
233
+ v-for="(column, idx) in columns"
234
+ :key="idx"
235
+ v-slot="{ row }"
236
+ v-bind="column">
237
+ <span>
238
+ <component
239
+ :is="column.component(row[column.field]).is"
240
+ v-if="column.component"
241
+ v-bind="column.component(row[column.field])" />
242
+ {{
243
+ column.display
244
+ ? column.display(row[column.field])
245
+ : row[column.field]
246
+ }}
247
+ </span>
248
+ </o-table-column>
249
+ </o-table>
250
+ </section>
251
+
252
+ <section>
253
+ <h3>Selection</h3>
254
+
255
+ <o-button
256
+ variant="danger"
257
+ :disabled="!selected"
258
+ icon-left="times"
259
+ @click="selected = null">
260
+ <span>Clear selected</span>
261
+ </o-button>
262
+
263
+ <p><b>Selected:</b> {{ selected }}</p>
264
+
265
+ <o-table v-model:selected="selected" :data="dataTable" focusable>
266
+ <o-table-column
267
+ v-for="(column, idx) in columns"
268
+ :key="idx"
269
+ v-slot="{ row }"
270
+ v-bind="column">
271
+ <span>
272
+ <component
273
+ :is="column.component(row[column.field]).is"
274
+ v-if="column.component"
275
+ v-bind="column.component(row[column.field])" />
276
+ {{
277
+ column.display
278
+ ? column.display(row[column.field])
279
+ : row[column.field]
280
+ }}
281
+ </span>
282
+ </o-table-column>
283
+ </o-table>
284
+ </section>
285
+ </template>
@@ -0,0 +1,208 @@
1
+ <script setup lang="ts">
2
+ import { ref } from "vue";
3
+
4
+ const tabs = [
5
+ {
6
+ label: "Pictures",
7
+ icon: "image",
8
+ content:
9
+ "What light is light, if Silvia be not seen? <br />What joy is joy.",
10
+ },
11
+ {
12
+ label: "Music",
13
+ icon: "music",
14
+ content: "Lorem <br />ipsum <br />dolor <br />sit <br />amet.",
15
+ },
16
+ {
17
+ label: "Articles",
18
+ icon: "pen",
19
+ content:
20
+ "What light is light, if Silvia be not seen? <br />What joy is joy, if Silvia be not by— <br />Unless it be to think that she is by <br />And feed upon the shadow of perfection? <br />Except I be by Silvia in the night, <br />There is no music in the nightingale.",
21
+ },
22
+ {
23
+ label: "Books",
24
+ icon: "book",
25
+ content:
26
+ "What light is light, if Silvia be not seen? <br />What joy is joy.",
27
+ },
28
+ {
29
+ label: "Videos",
30
+ icon: "video",
31
+ content:
32
+ "Nunc nec velit nec libero vestibulum eleifend. Curabitur pulvinar congueluctus. Nullam hendrerit iaculis augue vitae ornare. Maecenas vehiculapulvinar tellus, id sodales felis lobortis eget.",
33
+ disabled: true,
34
+ },
35
+ ];
36
+
37
+ const atRight = ref(false);
38
+ const expanded = ref(false);
39
+ const size = ref();
40
+ const type = ref("default");
41
+ </script>
42
+
43
+ <template>
44
+ <section>
45
+ <h2>Tabs Demo</h2>
46
+ <hr />
47
+ </section>
48
+
49
+ <section>
50
+ <h3>Base</h3>
51
+
52
+ <o-tabs>
53
+ <o-tab-item
54
+ v-for="(tab, i) in tabs"
55
+ :key="i"
56
+ :value="i"
57
+ :label="tab.label"
58
+ :icon="tab.icon"
59
+ :disabled="tab.disabled"
60
+ v-html="tab.content" />
61
+ </o-tabs>
62
+ </section>
63
+
64
+ <section>
65
+ <h3>Styles</h3>
66
+
67
+ Toggle / Underline
68
+ <o-tabs type="toggle">
69
+ <o-tab-item
70
+ v-for="(tab, i) in tabs"
71
+ :key="i"
72
+ :value="i"
73
+ :label="tab.label"
74
+ :icon="tab.icon"
75
+ :disabled="tab.disabled" />
76
+ </o-tabs>
77
+
78
+ Boxed / Tabs
79
+ <o-tabs type="boxed">
80
+ <o-tab-item
81
+ v-for="(tab, i) in tabs"
82
+ :key="i"
83
+ :value="i"
84
+ :label="tab.label"
85
+ :icon="tab.icon"
86
+ :disabled="tab.disabled" />
87
+ </o-tabs>
88
+ </section>
89
+
90
+ <section>
91
+ <h3>Position</h3>
92
+
93
+ <o-tabs position="left" type="boxed">
94
+ <o-tab-item
95
+ v-for="(tab, i) in tabs"
96
+ :key="i"
97
+ :value="i"
98
+ :label="tab.label"
99
+ :icon="tab.icon"
100
+ :disabled="tab.disabled" />
101
+ </o-tabs>
102
+ <o-tabs position="centered" type="boxed">
103
+ <o-tab-item
104
+ v-for="(tab, i) in tabs"
105
+ :key="i"
106
+ :value="i"
107
+ :label="tab.label"
108
+ :icon="tab.icon"
109
+ :disabled="tab.disabled" />
110
+ </o-tabs>
111
+ <o-tabs position="right" type="boxed">
112
+ <o-tab-item
113
+ v-for="(tab, i) in tabs"
114
+ :key="i"
115
+ :value="i"
116
+ :label="tab.label"
117
+ :icon="tab.icon"
118
+ :disabled="tab.disabled" />
119
+ </o-tabs>
120
+ </section>
121
+
122
+ <section>
123
+ <h3>Expanded</h3>
124
+ <o-tabs type="boxed" expanded>
125
+ <o-tab-item
126
+ v-for="(tab, i) in tabs"
127
+ :key="i"
128
+ :value="i"
129
+ :label="tab.label"
130
+ :icon="tab.icon"
131
+ :disabled="tab.disabled" />
132
+ </o-tabs>
133
+ </section>
134
+
135
+ <section>
136
+ <h3>Sizes</h3>
137
+ <o-tabs size="small" type="boxed">
138
+ <o-tab-item
139
+ v-for="(tab, i) in tabs"
140
+ :key="i"
141
+ :value="i"
142
+ :label="tab.label"
143
+ :icon="tab.icon"
144
+ :disabled="tab.disabled" />
145
+ </o-tabs>
146
+ <o-tabs size="medium" type="boxed">
147
+ <o-tab-item
148
+ v-for="(tab, i) in tabs"
149
+ :key="i"
150
+ :value="i"
151
+ :label="tab.label"
152
+ :icon="tab.icon"
153
+ :disabled="tab.disabled" />
154
+ </o-tabs>
155
+ <o-tabs size="large" type="boxed">
156
+ <o-tab-item
157
+ v-for="(tab, i) in tabs"
158
+ :key="i"
159
+ :value="i"
160
+ :label="tab.label"
161
+ :icon="tab.icon"
162
+ :disabled="tab.disabled" />
163
+ </o-tabs>
164
+ </section>
165
+
166
+ <section>
167
+ <h3>Vertical</h3>
168
+ <o-field grouped group-multiline>
169
+ <o-field>
170
+ <o-switch v-model="atRight"> Right position </o-switch>
171
+ </o-field>
172
+ <o-field>
173
+ <o-switch v-model="expanded"> Expanded </o-switch>
174
+ </o-field>
175
+ <o-field label="Size">
176
+ <o-select v-model="size">
177
+ <option :value="null">Default</option>
178
+ <option value="small">Small</option>
179
+ <option value="medium">Medium</option>
180
+ <option value="large">Large</option>
181
+ </o-select>
182
+ </o-field>
183
+ <o-field label="Type">
184
+ <o-select v-model="type">
185
+ <option value="default">Default</option>
186
+ <option value="boxed">Boxed</option>
187
+ <option value="toggle">Toggle</option>
188
+ <option value="pills">Pills</option>
189
+ </o-select>
190
+ </o-field>
191
+ </o-field>
192
+ <o-tabs
193
+ vertical
194
+ :position="atRight ? 'right' : ''"
195
+ :size="size"
196
+ :type="type"
197
+ :expanded="expanded">
198
+ <o-tab-item
199
+ v-for="(tab, i) in tabs"
200
+ :key="i"
201
+ :value="i"
202
+ :label="tab.label"
203
+ :icon="tab.icon"
204
+ :disabled="tab.disabled"
205
+ v-html="tab.content" />
206
+ </o-tabs>
207
+ </section>
208
+ </template>