@namelivia/vue-components 4.5.1 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.esm.js +860 -931
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.js +865 -936
  4. package/dist/index.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/Badge/Badge.vue +3 -7
  7. package/src/Buttons/DangerButton/DangerButton.vue +5 -13
  8. package/src/Buttons/RegularButton/RegularButton.vue +24 -28
  9. package/src/Buttons/ResetButton/ResetButton.vue +3 -7
  10. package/src/Buttons/SecondaryButton/SecondaryButton.vue +5 -13
  11. package/src/Buttons/SubmitButton/SubmitButton.vue +4 -12
  12. package/src/Card/Card.vue +13 -19
  13. package/src/Card/CardBody.vue +4 -9
  14. package/src/Card/CardImage.vue +17 -24
  15. package/src/CardGrid/CardGrid.vue +2 -5
  16. package/src/Container/Container.vue +2 -5
  17. package/src/Icons/CalendarIcon/CalendarIcon.vue +10 -13
  18. package/src/Icons/CreateIcon/CreateIcon.vue +10 -13
  19. package/src/Icons/DropIcon/DropIcon.vue +10 -13
  20. package/src/Icons/SaveIcon/SaveIcon.vue +10 -13
  21. package/src/Icons/SkullIcon/SkullIcon.vue +10 -13
  22. package/src/Inputs/CheckBoxInput/CheckBoxInput.vue +9 -27
  23. package/src/Inputs/ImageInput/ImageInput.vue +10 -30
  24. package/src/Inputs/NumberInput/NumberInput.vue +12 -37
  25. package/src/Inputs/ResizeImageUpload/ResizeImageUpload.vue +28 -50
  26. package/src/Inputs/Selector/Selector.vue +27 -52
  27. package/src/Inputs/TextInput/TextInput.vue +10 -31
  28. package/src/Loading/Loading.vue +3 -7
  29. package/src/Modal/Modal.vue +9 -16
  30. package/src/Navbar/MobileMenuButton.vue +5 -17
  31. package/src/Navbar/MobileNavigationLink.vue +9 -27
  32. package/src/Navbar/MobileNavigationLinks.vue +6 -19
  33. package/src/Navbar/Navbar.vue +22 -53
  34. package/src/Navbar/NavbarTitle.vue +7 -19
  35. package/src/Navbar/NavigationLink.vue +9 -27
  36. package/src/Navbar/NavigationLinks.vue +5 -15
  37. package/src/Navbar/RightContent.vue +9 -24
  38. package/src/Pagination/Pagination.vue +8 -14
  39. package/src/RangeView/RangeView.vue +3 -7
  40. package/src/SectionTitle/SectionTitle.vue +5 -9
  41. package/src/Spinner/Spinner.vue +2 -5
  42. package/src/StyledTable/StyledTable.vue +2 -5
  43. package/src/Temperature/Temperature.vue +11 -22
package/dist/index.esm.js CHANGED
@@ -1,21 +1,27 @@
1
- import { defineComponent, createElementBlock, openBlock, toDisplayString, createStaticVNode, createElementVNode, renderSlot, resolveComponent, createCommentVNode, createVNode, withCtx, normalizeClass, createBlock, Transition, Fragment, renderList, withDirectives, vModelSelect } from 'vue';
1
+ import { createElementBlock, openBlock, toDisplayString, createStaticVNode, ref, onMounted, createElementVNode, renderSlot, createCommentVNode, createVNode, withCtx, computed, normalizeClass, createBlock, Transition, Fragment, renderList, watch, withDirectives, vModelSelect } from 'vue';
2
2
 
3
- var script$B = defineComponent({
4
- name: 'SectionTitle',
3
+ const _hoisted_1$x = { class: "section-title" };
4
+
5
+
6
+ var script$B = {
7
+ __name: 'SectionTitle',
5
8
  props: {
6
- text: {
7
- type: String,
8
- default: ''
9
- }
9
+ text: {
10
+ type: String,
11
+ default: ''
10
12
  }
11
- });
13
+ },
14
+ setup(__props) {
12
15
 
13
- const _hoisted_1$x = { class: "section-title" };
14
16
 
15
- function render$B(_ctx, _cache, $props, $setup, $data, $options) {
16
- return (openBlock(), createElementBlock("h1", _hoisted_1$x, toDisplayString(_ctx.text), 1 /* TEXT */))
17
+
18
+ return (_ctx, _cache) => {
19
+ return (openBlock(), createElementBlock("h1", _hoisted_1$x, toDisplayString(__props.text), 1 /* TEXT */))
20
+ }
17
21
  }
18
22
 
23
+ };
24
+
19
25
  function styleInject(css, ref) {
20
26
  if ( ref === void 0 ) ref = {};
21
27
  var insertAt = ref.insertAt;
@@ -46,132 +52,140 @@ function styleInject(css, ref) {
46
52
  var css_248z$w = "\n.section-title[data-v-0375af86] {\n text-align: center;\n font-size: var(--font-size-xlarge);\n line-height: 1.5;\n}\n";
47
53
  styleInject(css_248z$w);
48
54
 
49
- script$B.render = render$B;
50
55
  script$B.__scopeId = "data-v-0375af86";
51
56
  script$B.__file = "src/SectionTitle/SectionTitle.vue";
52
57
 
53
- var script$A = defineComponent({
54
- name: "Loading",
58
+ var script$A = {
59
+ __name: 'Loading',
55
60
  props: {
56
- text: String,
57
- },
58
- });
61
+ text: String,
62
+ },
63
+ setup(__props) {
59
64
 
60
- function render$A(_ctx, _cache, $props, $setup, $data, $options) {
65
+
66
+
67
+ return (_ctx, _cache) => {
61
68
  return (openBlock(), createElementBlock("div", null, _cache[0] || (_cache[0] = [
62
69
  createStaticVNode("<h1 class=\"loading-text\" data-v-7a9a3040>Loading...</h1><div class=\"loading-balls-container\" data-v-7a9a3040><div class=\"loading-ball blue\" data-v-7a9a3040></div><div class=\"loading-ball green\" data-v-7a9a3040></div><div class=\"loading-ball red\" data-v-7a9a3040></div></div>", 2)
63
70
  ])))
64
71
  }
72
+ }
73
+
74
+ };
65
75
 
66
76
  var css_248z$v = "\n.loading-text[data-v-7a9a3040] {\n text-align: center;\n font-size: var(--font-size-large);\n line-height: 1.75rem;\n}\n.loading-balls-container[data-v-7a9a3040] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n animation: bounce-7a9a3040 1.5s infinite ease-in-out;\n}\n.loading-ball[data-v-7a9a3040] {\n width: 2rem;\n height: 2rem;\n border-radius: var(--border-radius-round);\n}\n.loading-ball.blue[data-v-7a9a3040] {\n background-color: var(--color-loading-ball-blue);\n}\n.loading-ball.green[data-v-7a9a3040] {\n background-color: var(--color-loading-ball-green);\n}\n.loading-ball.red[data-v-7a9a3040] {\n background-color: var(--color-loading-ball-red);\n}\n@keyframes bounce-7a9a3040 {\n0%, 100% {\n transform: translateY(0);\n}\n50% {\n transform: translateY(-1rem);\n}\n}\n";
67
77
  styleInject(css_248z$v);
68
78
 
69
- script$A.render = render$A;
70
79
  script$A.__scopeId = "data-v-7a9a3040";
71
80
  script$A.__file = "src/Loading/Loading.vue";
72
81
 
73
- var script$z = defineComponent({
74
- name: "CardImage",
82
+ const _hoisted_1$w = ["src", "alt"];
83
+
84
+
85
+ var script$z = {
86
+ __name: 'CardImage',
75
87
  props: {
76
- src: String,
77
- alt: String,
78
- },
79
- data: function () {
80
- return {
81
- imageWidth: 0,
82
- }
83
- },
84
- methods: {
85
- calculateWidth() {
86
- return this.$refs.image.clientWidth
87
- },
88
- },
88
+ src: String,
89
+ alt: String,
90
+ },
89
91
  emits: ['width'],
90
- mounted: function () {
91
- this.$emit('width', this.calculateWidth());
92
- },
93
- });
92
+ setup(__props, { emit: __emit }) {
93
+
94
94
 
95
- const _hoisted_1$w = ["src", "alt"];
96
95
 
97
- function render$z(_ctx, _cache, $props, $setup, $data, $options) {
96
+ const emit = __emit;
97
+ const image = ref(null);
98
+
99
+ const calculateWidth = () => image.value.clientWidth;
100
+
101
+ onMounted(() => {
102
+ emit('width', calculateWidth());
103
+ });
104
+
105
+ return (_ctx, _cache) => {
98
106
  return (openBlock(), createElementBlock("img", {
99
- src: _ctx.src,
100
- alt: _ctx.alt,
101
- ref: "image"
107
+ src: __props.src,
108
+ alt: __props.alt,
109
+ ref_key: "image",
110
+ ref: image
102
111
  }, null, 8 /* PROPS */, _hoisted_1$w))
103
112
  }
113
+ }
114
+
115
+ };
104
116
 
105
117
  var css_248z$u = "\nimg[data-v-5fa6a3f6] {\n width: 100%;\n}\n";
106
118
  styleInject(css_248z$u);
107
119
 
108
- script$z.render = render$z;
109
120
  script$z.__scopeId = "data-v-5fa6a3f6";
110
121
  script$z.__file = "src/Card/CardImage.vue";
111
122
 
112
- var script$y = defineComponent({
113
- name: "CardBody",
114
- props: {
115
- title: String,
116
- },
117
- });
118
-
119
123
  const _hoisted_1$v = { class: "card-body" };
120
124
  const _hoisted_2$g = { class: "card-title" };
121
125
  const _hoisted_3$a = { class: "card-text" };
122
126
 
123
- function render$y(_ctx, _cache, $props, $setup, $data, $options) {
127
+
128
+ var script$y = {
129
+ __name: 'CardBody',
130
+ props: {
131
+ title: String,
132
+ },
133
+ setup(__props) {
134
+
135
+
136
+
137
+ return (_ctx, _cache) => {
124
138
  return (openBlock(), createElementBlock("div", _hoisted_1$v, [
125
- createElementVNode("div", _hoisted_2$g, toDisplayString(_ctx.title), 1 /* TEXT */),
139
+ createElementVNode("div", _hoisted_2$g, toDisplayString(__props.title), 1 /* TEXT */),
126
140
  createElementVNode("p", _hoisted_3$a, [
127
141
  renderSlot(_ctx.$slots, "default")
128
142
  ])
129
143
  ]))
130
144
  }
145
+ }
146
+
147
+ };
131
148
 
132
149
  var css_248z$t = "\n.card-body[data-v-c140cd30] {\n padding: var(--card-body-padding);\n}\n.card-title[data-v-c140cd30] {\n font-weight: var(--font-weight-bold);\n font-size: var(--font-size-large);\n margin-bottom: var(--card-title-margin-bottom);\n}\n.card-text[data-v-c140cd30] {\n color: var(--color-card-text);\n font-size: var(--font-size-base);\n}\n";
133
150
  styleInject(css_248z$t);
134
151
 
135
- script$y.render = render$y;
136
152
  script$y.__scopeId = "data-v-c140cd30";
137
153
  script$y.__file = "src/Card/CardBody.vue";
138
154
 
139
- var script$x = defineComponent({
140
- name: "Card",
141
- props: {
142
- image: String,
143
- title: String,
144
- dismissed: {
145
- type: Boolean,
146
- default: false,
147
- },
148
- },
149
- components: {
150
- CardImage: script$z,
151
- CardBody: script$y,
152
- },
153
- emits: ['width']
154
- });
155
-
156
155
  const _hoisted_1$u = {
157
156
  key: 0,
158
157
  class: "card-container"
159
158
  };
160
159
  const _hoisted_2$f = { class: "card" };
161
160
 
162
- function render$x(_ctx, _cache, $props, $setup, $data, $options) {
163
- const _component_card_image = resolveComponent("card-image");
164
- const _component_card_body = resolveComponent("card-body");
165
161
 
166
- return (!_ctx.dismissed)
162
+ var script$x = {
163
+ __name: 'Card',
164
+ props: {
165
+ image: String,
166
+ title: String,
167
+ dismissed: {
168
+ type: Boolean,
169
+ default: false,
170
+ },
171
+ },
172
+ emits: ['width'],
173
+ setup(__props) {
174
+
175
+
176
+
177
+
178
+
179
+ return (_ctx, _cache) => {
180
+ return (!__props.dismissed)
167
181
  ? (openBlock(), createElementBlock("div", _hoisted_1$u, [
168
182
  createElementVNode("div", _hoisted_2$f, [
169
- createVNode(_component_card_image, {
170
- src: _ctx.image,
171
- alt: _ctx.title,
183
+ createVNode(script$z, {
184
+ src: __props.image,
185
+ alt: __props.title,
172
186
  onWidth: _cache[0] || (_cache[0] = $event => (_ctx.$emit('width', $event)))
173
187
  }, null, 8 /* PROPS */, ["src", "alt"]),
174
- createVNode(_component_card_body, { title: _ctx.title }, {
188
+ createVNode(script$y, { title: __props.title }, {
175
189
  default: withCtx(() => [
176
190
  renderSlot(_ctx.$slots, "default")
177
191
  ]),
@@ -181,120 +195,113 @@ function render$x(_ctx, _cache, $props, $setup, $data, $options) {
181
195
  ]))
182
196
  : createCommentVNode("v-if", true)
183
197
  }
198
+ }
199
+
200
+ };
184
201
 
185
202
  var css_248z$s = "\n.card-container[data-v-da3858b4] {\n margin: var(--card-margin);\n}\n.card[data-v-da3858b4] {\n max-width: var(--card-max-width);\n border-radius: var(--border-radius-big);\n overflow: hidden;\n box-shadow: var(--card-shadow);\n}\n";
186
203
  styleInject(css_248z$s);
187
204
 
188
- script$x.render = render$x;
189
205
  script$x.__scopeId = "data-v-da3858b4";
190
206
  script$x.__file = "src/Card/Card.vue";
191
207
 
192
- var script$w = defineComponent({
193
- name: "CardGrid"
194
- });
195
-
196
208
  const _hoisted_1$t = { class: "card-grid" };
197
209
 
198
- function render$w(_ctx, _cache, $props, $setup, $data, $options) {
210
+
211
+ var script$w = {
212
+ __name: 'CardGrid',
213
+ setup(__props) {
214
+
215
+ // No logic needed
216
+
217
+ return (_ctx, _cache) => {
199
218
  return (openBlock(), createElementBlock("div", _hoisted_1$t, [
200
219
  renderSlot(_ctx.$slots, "default")
201
220
  ]))
202
221
  }
222
+ }
223
+
224
+ };
203
225
 
204
226
  var css_248z$r = "\n.card-grid[data-v-ad060034] {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: center;\n}\n@media (min-width: 1024px) {\n.card-grid[data-v-ad060034] {\n justify-content: space-between;\n}\n}\n";
205
227
  styleInject(css_248z$r);
206
228
 
207
- script$w.render = render$w;
208
229
  script$w.__scopeId = "data-v-ad060034";
209
230
  script$w.__file = "src/CardGrid/CardGrid.vue";
210
231
 
211
- var script$v = defineComponent({
212
- name: "Container"
213
- });
214
-
215
232
  const _hoisted_1$s = { class: "container" };
216
233
 
217
- function render$v(_ctx, _cache, $props, $setup, $data, $options) {
234
+
235
+ var script$v = {
236
+ __name: 'Container',
237
+ setup(__props) {
238
+
239
+ // No logic needed
240
+
241
+ return (_ctx, _cache) => {
218
242
  return (openBlock(), createElementBlock("div", _hoisted_1$s, [
219
243
  renderSlot(_ctx.$slots, "default")
220
244
  ]))
221
245
  }
246
+ }
247
+
248
+ };
222
249
 
223
250
  var css_248z$q = "\n.container[data-v-7cccf06a] {\n max-width: var(--container-max-width);\n margin: var(--container-margin);\n}\n";
224
251
  styleInject(css_248z$q);
225
252
 
226
- script$v.render = render$v;
227
253
  script$v.__scopeId = "data-v-7cccf06a";
228
254
  script$v.__file = "src/Container/Container.vue";
229
255
 
230
- var script$u = defineComponent({
231
- name: "MobileNavigationLink",
256
+ const _hoisted_1$r = ["href"];
257
+
258
+ var script$u = {
259
+ __name: 'MobileNavigationLink',
232
260
  props: {
233
- text: {
234
- type: String,
235
- },
236
- href: {
237
- type: String,
238
- },
239
- current: {
240
- type: Boolean,
241
- },
242
- },
243
- computed: {
244
- linkClass: function () {
245
- if (this.current) {
246
- return 'current-link'
247
- }
248
- return 'regular-link'
249
- },
250
- linkDestination: function () {
251
- return this.current ? '#' : this.href
252
- },
253
- },
254
- });
261
+ text: String,
262
+ href: String,
263
+ current: Boolean,
264
+ },
265
+ setup(__props) {
255
266
 
256
- const _hoisted_1$r = ["href"];
267
+ const props = __props;
268
+ const linkClass = computed(() => props.current ? 'current-link' : 'regular-link');
269
+ const linkDestination = computed(() => props.current ? '#' : props.href);
257
270
 
258
- function render$u(_ctx, _cache, $props, $setup, $data, $options) {
271
+ return (_ctx, _cache) => {
259
272
  return (openBlock(), createElementBlock("a", {
260
- href: _ctx.linkDestination,
261
- class: normalizeClass(_ctx.linkClass),
273
+ href: linkDestination.value,
274
+ class: normalizeClass(linkClass.value),
262
275
  "aria-current": "page"
263
- }, toDisplayString(_ctx.text), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$r))
276
+ }, toDisplayString(__props.text), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$r))
277
+ }
264
278
  }
265
279
 
280
+ };
281
+
266
282
  var css_248z$p = "\n.current-link[data-v-3e279546] {\n background-color: var(--color-navbar-current-background);\n color: var(--color-navbar-text);\n display: block;\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n border-radius: 0.375rem;\n font-size: var(--font-size-navbar);\n text-decoration: none;\n cursor: default;\n}\n.regular-link[data-v-3e279546] {\n color: var(--color-navbar-text);\n display: block;\n padding: 0.5rem 0.75rem;\n border-radius: 0.375rem;\n font-size: var(--font-size-navbar);\n transition: background-color 0.2s ease, color 0.2s ease;\n text-decoration: none;\n}\n.regular-link[data-v-3e279546]:hover {\n background-color: var(--color-navbar-link-background);\n}\n";
267
283
  styleInject(css_248z$p);
268
284
 
269
- script$u.render = render$u;
270
285
  script$u.__scopeId = "data-v-3e279546";
271
286
  script$u.__file = "src/Navbar/MobileNavigationLink.vue";
272
287
 
273
- var script$t = defineComponent({
274
- name: "MobileNavigationLinks",
275
- components: {
276
- MobileNavigationLink: script$u,
277
- },
278
- props: {
279
- links: {
280
- type: Array,
281
- },
282
- open: {
283
- type: Boolean,
284
- default: false,
285
- },
286
- },
287
- });
288
-
289
288
  const _hoisted_1$q = {
290
289
  key: 0,
291
290
  id: "mobile-menu"
292
291
  };
293
292
  const _hoisted_2$e = { class: "menu-panel" };
294
293
 
295
- function render$t(_ctx, _cache, $props, $setup, $data, $options) {
296
- const _component_mobile_navigation_link = resolveComponent("mobile-navigation-link");
294
+ var script$t = {
295
+ __name: 'MobileNavigationLinks',
296
+ props: {
297
+ links: Array,
298
+ open: { type: Boolean, default: false },
299
+ },
300
+ setup(__props) {
301
+
297
302
 
303
+
304
+ return (_ctx, _cache) => {
298
305
  return (openBlock(), createBlock(Transition, {
299
306
  "enter-active-class": "fade-scale-enter-active",
300
307
  "leave-active-class": "fade-scale-leave-active",
@@ -304,11 +311,11 @@ function render$t(_ctx, _cache, $props, $setup, $data, $options) {
304
311
  "leave-to-class": "fade-scale-leave-to"
305
312
  }, {
306
313
  default: withCtx(() => [
307
- (_ctx.open)
314
+ (__props.open)
308
315
  ? (openBlock(), createElementBlock("div", _hoisted_1$q, [
309
316
  createElementVNode("div", _hoisted_2$e, [
310
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.links, (link) => {
311
- return (openBlock(), createBlock(_component_mobile_navigation_link, {
317
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.links, (link) => {
318
+ return (openBlock(), createBlock(script$u, {
312
319
  key: link.id,
313
320
  href: link.href,
314
321
  text: link.text,
@@ -322,79 +329,65 @@ function render$t(_ctx, _cache, $props, $setup, $data, $options) {
322
329
  _: 1 /* STABLE */
323
330
  }))
324
331
  }
332
+ }
333
+
334
+ };
325
335
 
326
336
  var css_248z$o = "\n.fade-scale-enter-active[data-v-eb1296c6],\n.fade-scale-leave-active[data-v-eb1296c6] {\n transition: all 200ms ease;\n}\n.fade-scale-enter-from[data-v-eb1296c6],\n.fade-scale-leave-to[data-v-eb1296c6] {\n transform: scaleY(0);\n transform-origin: top;\n}\n.fade-scale-enter-to[data-v-eb1296c6],\n.fade-scale-leave-from[data-v-eb1296c6] {\n transform: scaleY(1);\n transform-origin: top;\n}\n#mobile-menu[data-v-eb1296c6] {\n display: block;\n}\n.menu-panel[data-v-eb1296c6] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n padding-top: 0.5rem;\n padding-bottom: 0.75rem;\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n background-color: var(--color-navbar-background);\n}\n@media (min-width: 640px) {\n#mobile-menu[data-v-eb1296c6] {\n display: none;\n}\n}\n";
327
337
  styleInject(css_248z$o);
328
338
 
329
- script$t.render = render$t;
330
339
  script$t.__scopeId = "data-v-eb1296c6";
331
340
  script$t.__file = "src/Navbar/MobileNavigationLinks.vue";
332
341
 
333
- var script$s = defineComponent({
334
- name: "NavigationLink",
342
+ const _hoisted_1$p = ["href"];
343
+
344
+ var script$s = {
345
+ __name: 'NavigationLink',
335
346
  props: {
336
- text: {
337
- type: String,
338
- },
339
- href: {
340
- type: String,
341
- },
342
- current: {
343
- type: Boolean,
344
- },
345
- },
346
- computed: {
347
- linkClass: function () {
348
- if (this.current) {
349
- return 'current-link'
350
- }
351
- return 'regular-link'
352
- },
353
- linkDestination: function () {
354
- return this.current ? '#' : this.href
355
- },
356
- },
357
- });
347
+ text: String,
348
+ href: String,
349
+ current: Boolean,
350
+ },
351
+ setup(__props) {
358
352
 
359
- const _hoisted_1$p = ["href"];
353
+ const props = __props;
354
+ const linkClass = computed(() => props.current ? 'current-link' : 'regular-link');
355
+ const linkDestination = computed(() => props.current ? '#' : props.href);
360
356
 
361
- function render$s(_ctx, _cache, $props, $setup, $data, $options) {
357
+ return (_ctx, _cache) => {
362
358
  return (openBlock(), createElementBlock("a", {
363
- href: _ctx.linkDestination,
364
- class: normalizeClass(_ctx.linkClass),
359
+ href: linkDestination.value,
360
+ class: normalizeClass(linkClass.value),
365
361
  "aria-current": "page"
366
- }, toDisplayString(_ctx.text), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$p))
362
+ }, toDisplayString(__props.text), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$p))
367
363
  }
364
+ }
365
+
366
+ };
368
367
 
369
368
  var css_248z$n = "\n.current-link[data-v-4989b384] {\n background-color: var(--color-navbar-current-background);\n color: var(--color-navbar-text);\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n border-radius: 0.375rem;\n font-size: var(--font-size-navbar);\n text-decoration: none;\n cursor: default;\n}\n.regular-link[data-v-4989b384] {\n color: var(--color-navbar-text);\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n border-radius: 0.375rem;\n font-size: var(--font-size-navbar);\n transition: background-color 0.2s ease, color 0.2s ease;\n text-decoration: none;\n}\n.regular-link[data-v-4989b384]:hover {\n background-color: var(--color-navbar-link-background);\n}\n";
370
369
  styleInject(css_248z$n);
371
370
 
372
- script$s.render = render$s;
373
371
  script$s.__scopeId = "data-v-4989b384";
374
372
  script$s.__file = "src/Navbar/NavigationLink.vue";
375
373
 
376
- var script$r = defineComponent({
377
- name: "NavigationLinks",
378
- components: {
379
- NavigationLink: script$s,
380
- },
381
- props: {
382
- links: {
383
- type: Array,
384
- },
385
- },
386
- });
387
-
388
374
  const _hoisted_1$o = { class: "links-container" };
389
375
  const _hoisted_2$d = { class: "links-wrapper" };
390
376
 
391
- function render$r(_ctx, _cache, $props, $setup, $data, $options) {
392
- const _component_navigation_link = resolveComponent("navigation-link");
377
+ var script$r = {
378
+ __name: 'NavigationLinks',
379
+ props: {
380
+ links: Array,
381
+ },
382
+ setup(__props) {
383
+
393
384
 
385
+
386
+ return (_ctx, _cache) => {
394
387
  return (openBlock(), createElementBlock("div", _hoisted_1$o, [
395
388
  createElementVNode("div", _hoisted_2$d, [
396
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.links, (link) => {
397
- return (openBlock(), createBlock(_component_navigation_link, {
389
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.links, (link) => {
390
+ return (openBlock(), createBlock(script$s, {
398
391
  key: link.id,
399
392
  href: link.href,
400
393
  text: link.text,
@@ -404,126 +397,113 @@ function render$r(_ctx, _cache, $props, $setup, $data, $options) {
404
397
  ])
405
398
  ]))
406
399
  }
400
+ }
401
+
402
+ };
407
403
 
408
404
  var css_248z$m = "\n.links-container[data-v-294f43c2] {\n display: none;\n}\n.links-wrapper[data-v-294f43c2] {\n display: flex;\n gap: 1rem;\n}\n@media (min-width: 640px) {\n.links-container[data-v-294f43c2] {\n display: block;\n margin-left: 1.5rem;\n}\n}\n";
409
405
  styleInject(css_248z$m);
410
406
 
411
- script$r.render = render$r;
412
407
  script$r.__scopeId = "data-v-294f43c2";
413
408
  script$r.__file = "src/Navbar/NavigationLinks.vue";
414
409
 
415
- var script$q = defineComponent({
416
- name: "NavbarTitle",
417
- props: {
418
- href: {
419
- type: String,
420
- },
421
- title: {
422
- type: String,
423
- },
424
- imageBig: {
425
- type: String,
426
- },
427
- imageSmall: {
428
- type: String,
429
- },
430
- }
431
- });
432
-
433
410
  const _hoisted_1$n = ["href"];
434
411
  const _hoisted_2$c = ["src", "alt"];
435
412
  const _hoisted_3$9 = ["src", "alt"];
436
413
 
437
- function render$q(_ctx, _cache, $props, $setup, $data, $options) {
414
+
415
+ var script$q = {
416
+ __name: 'NavbarTitle',
417
+ props: {
418
+ href: String,
419
+ title: String,
420
+ imageBig: String,
421
+ imageSmall: String,
422
+ },
423
+ setup(__props) {
424
+
425
+
426
+
427
+ return (_ctx, _cache) => {
438
428
  return (openBlock(), createElementBlock("a", {
439
429
  class: "title-container",
440
- href: _ctx.href
430
+ href: __props.href
441
431
  }, [
442
432
  createElementVNode("img", {
443
433
  class: "logo-small",
444
- src: _ctx.imageSmall,
445
- alt: _ctx.title
434
+ src: __props.imageSmall,
435
+ alt: __props.title
446
436
  }, null, 8 /* PROPS */, _hoisted_2$c),
447
437
  createElementVNode("img", {
448
438
  class: "logo-big",
449
- src: _ctx.imageBig,
450
- alt: _ctx.title
439
+ src: __props.imageBig,
440
+ alt: __props.title
451
441
  }, null, 8 /* PROPS */, _hoisted_3$9)
452
442
  ], 8 /* PROPS */, _hoisted_1$n))
453
443
  }
444
+ }
445
+
446
+ };
454
447
 
455
448
  var css_248z$l = "\n.title-container[data-v-661ef87c] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n.logo-small[data-v-661ef87c] {\n display: block;\n height: 2rem;\n width: auto;\n}\n.logo-big[data-v-661ef87c] {\n display: none;\n height: 2rem;\n width: auto;\n}\n@media (min-width: 1024px) {\n.logo-small[data-v-661ef87c] {\n display: none;\n}\n.logo-big[data-v-661ef87c] {\n display: block;\n}\n}\n\n\n";
456
449
  styleInject(css_248z$l);
457
450
 
458
- script$q.render = render$q;
459
451
  script$q.__scopeId = "data-v-661ef87c";
460
452
  script$q.__file = "src/Navbar/NavbarTitle.vue";
461
453
 
462
- var script$p = defineComponent({
463
- name: "RightContent",
464
- props: {
465
- locale: {
466
- type: String,
467
- },
468
- currentUserEmail: {
469
- type: String,
470
- },
471
- currentUserName: {
472
- type: String,
473
- },
474
- currentUserPicture: {
475
- type: String,
476
- },
477
- },
478
- computed: {
479
- avatarAlt: function () {
480
- return this.currentUserName + ` (${this.currentUserEmail})`
481
- },
482
- },
483
- });
484
-
485
454
  const _hoisted_1$m = { class: "action-container" };
486
455
  const _hoisted_2$b = ["src", "alt"];
487
456
 
488
- function render$p(_ctx, _cache, $props, $setup, $data, $options) {
457
+ var script$p = {
458
+ __name: 'RightContent',
459
+ props: {
460
+ locale: String,
461
+ currentUserEmail: String,
462
+ currentUserName: String,
463
+ currentUserPicture: String,
464
+ },
465
+ setup(__props) {
466
+
467
+ const props = __props;
468
+ const avatarAlt = computed(() => `${props.currentUserName} (${props.currentUserEmail})`);
469
+
470
+ return (_ctx, _cache) => {
489
471
  return (openBlock(), createElementBlock("div", _hoisted_1$m, [
490
472
  createElementVNode("img", {
491
473
  class: "circle-image",
492
- src: _ctx.currentUserPicture,
493
- alt: _ctx.avatarAlt
474
+ src: __props.currentUserPicture,
475
+ alt: avatarAlt.value
494
476
  }, null, 8 /* PROPS */, _hoisted_2$b)
495
477
  ]))
496
478
  }
479
+ }
480
+
481
+ };
497
482
 
498
483
  var css_248z$k = "\n.action-container[data-v-07675a13] {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n display: flex;\n align-items: center;\n padding-right: 0.5rem;\n color: var(--color-navbar-text);\n font-size: var(--font-size-navbar);\n}\n.circle-image[data-v-07675a13] {\n border-radius: 9999px;\n padding: 0.25rem;\n height: 50px;\n width: 50px;\n}\n@media (min-width: 640px) {\n.action-container[data-v-07675a13] {\n position: static;\n top: auto;\n bottom: auto;\n right: auto;\n margin-left: 1.5rem;\n padding-right: 0;\n}\n}\n\n";
499
484
  styleInject(css_248z$k);
500
485
 
501
- script$p.render = render$p;
502
486
  script$p.__scopeId = "data-v-07675a13";
503
487
  script$p.__file = "src/Navbar/RightContent.vue";
504
488
 
505
- var script$o = defineComponent({
506
- name: "MobileMenuButton",
489
+ var script$o = {
490
+ __name: 'MobileMenuButton',
507
491
  props: {
508
- open: {
509
- type: Boolean,
510
- default: false,
511
- },
512
- },
492
+ open: { type: Boolean, default: false },
493
+ },
513
494
  emits: ['click'],
514
- methods: {
515
- onClick(evt) {
516
- this.$emit('click', evt);
517
- },
518
- },
519
- });
495
+ setup(__props, { emit: __emit }) {
496
+
520
497
 
521
- function render$o(_ctx, _cache, $props, $setup, $data, $options) {
498
+ const emit = __emit;
499
+ const onClick = (evt) => emit('click', evt);
500
+
501
+ return (_ctx, _cache) => {
522
502
  return (openBlock(), createElementBlock("button", {
523
503
  class: "menu-button",
524
504
  type: "button",
525
- onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.onClick && _ctx.onClick(...args)))
526
- }, _cache[1] || (_cache[1] = [
505
+ onClick: onClick
506
+ }, _cache[0] || (_cache[0] = [
527
507
  createElementVNode("svg", {
528
508
  class: "menu-icon",
529
509
  xmlns: "http://www.w3.org/2000/svg",
@@ -540,263 +520,230 @@ function render$o(_ctx, _cache, $props, $setup, $data, $options) {
540
520
  ], -1 /* HOISTED */)
541
521
  ])))
542
522
  }
523
+ }
524
+
525
+ };
543
526
 
544
527
  var css_248z$j = "\n.menu-button[data-v-397545ee] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.5rem;\n border-radius: var(--border-radius-big);\n color: var(--color-navbar-text);\n background-color: transparent;\n transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;\n border: none;\n cursor: pointer;\n}\n.menu-icon[data-v-397545ee] {\n display: block;\n height: 1.5rem;\n width: 1.5rem;\n}\n";
545
528
  styleInject(css_248z$j);
546
529
 
547
- script$o.render = render$o;
548
530
  script$o.__scopeId = "data-v-397545ee";
549
531
  script$o.__file = "src/Navbar/MobileMenuButton.vue";
550
532
 
551
- var script$n = defineComponent({
552
- name: "Navbar",
553
- components: {
554
- NavbarTitle: script$q,
555
- NavigationLinks: script$r,
556
- MobileNavigationLinks: script$t,
557
- RightContent: script$p,
558
- MobileMenuButton: script$o,
559
- },
560
- data() {
561
- return {
562
- mobileMenuOpen: false,
563
- }
564
- },
565
- props: {
566
- links: {
567
- type: Array,
568
- },
569
- locale: {
570
- type: String,
571
- },
572
- currentUserEmail: {
573
- type: String,
574
- },
575
- currentUserName: {
576
- type: String,
577
- },
578
- currentUserPicture: {
579
- type: String,
580
- },
581
- title: {
582
- type: String,
583
- },
584
- imageBig: {
585
- type: String,
586
- },
587
- imageSmall: {
588
- type: String,
589
- },
590
- },
591
- methods: {
592
- onMobileMenuClick() {
593
- this.mobileMenuOpen = !this.mobileMenuOpen;
594
- },
595
- }
596
- });
597
-
598
533
  const _hoisted_1$l = { class: "navbar" };
599
534
  const _hoisted_2$a = { class: "navbar-container" };
600
535
  const _hoisted_3$8 = { class: "flex-header" };
601
536
  const _hoisted_4$3 = { class: "menu-toggle" };
602
537
  const _hoisted_5$2 = { class: "title-container" };
603
538
 
604
- function render$n(_ctx, _cache, $props, $setup, $data, $options) {
605
- const _component_mobile_menu_button = resolveComponent("mobile-menu-button");
606
- const _component_navbar_title = resolveComponent("navbar-title");
607
- const _component_navigation_links = resolveComponent("navigation-links");
608
- const _component_right_content = resolveComponent("right-content");
609
- const _component_mobile_navigation_links = resolveComponent("mobile-navigation-links");
610
539
 
540
+ var script$n = {
541
+ __name: 'Navbar',
542
+ props: {
543
+ links: Array,
544
+ locale: String,
545
+ currentUserEmail: String,
546
+ currentUserName: String,
547
+ currentUserPicture: String,
548
+ title: String,
549
+ imageBig: String,
550
+ imageSmall: String,
551
+ },
552
+ setup(__props) {
553
+
554
+
555
+
556
+ const mobileMenuOpen = ref(false);
557
+ const onMobileMenuClick = () => {
558
+ mobileMenuOpen.value = !mobileMenuOpen.value;
559
+ };
560
+
561
+ return (_ctx, _cache) => {
611
562
  return (openBlock(), createElementBlock("nav", _hoisted_1$l, [
612
563
  createElementVNode("div", _hoisted_2$a, [
613
564
  createElementVNode("div", _hoisted_3$8, [
614
565
  createElementVNode("div", _hoisted_4$3, [
615
- createVNode(_component_mobile_menu_button, {
616
- onClick: _ctx.onMobileMenuClick,
617
- open: _ctx.mobileMenuOpen
618
- }, null, 8 /* PROPS */, ["onClick", "open"])
566
+ createVNode(script$o, {
567
+ onClick: onMobileMenuClick,
568
+ open: mobileMenuOpen.value
569
+ }, null, 8 /* PROPS */, ["open"])
619
570
  ]),
620
571
  createElementVNode("div", _hoisted_5$2, [
621
- createVNode(_component_navbar_title, {
572
+ createVNode(script$q, {
622
573
  href: "/",
623
- title: _ctx.title,
624
- imageBig: _ctx.imageBig,
625
- imageSmall: _ctx.imageSmall
574
+ title: __props.title,
575
+ imageBig: __props.imageBig,
576
+ imageSmall: __props.imageSmall
626
577
  }, null, 8 /* PROPS */, ["title", "imageBig", "imageSmall"]),
627
- createVNode(_component_navigation_links, { links: _ctx.links }, null, 8 /* PROPS */, ["links"])
578
+ createVNode(script$r, { links: __props.links }, null, 8 /* PROPS */, ["links"])
628
579
  ]),
629
- createVNode(_component_right_content, {
630
- locale: _ctx.locale,
631
- "current-user-email": _ctx.currentUserEmail,
632
- "current-user-name": _ctx.currentUserName,
633
- "current-user-picture": _ctx.currentUserPicture
580
+ createVNode(script$p, {
581
+ locale: __props.locale,
582
+ "current-user-email": __props.currentUserEmail,
583
+ "current-user-name": __props.currentUserName,
584
+ "current-user-picture": __props.currentUserPicture
634
585
  }, null, 8 /* PROPS */, ["locale", "current-user-email", "current-user-name", "current-user-picture"])
635
586
  ])
636
587
  ]),
637
- createVNode(_component_mobile_navigation_links, {
638
- links: _ctx.links,
639
- open: _ctx.mobileMenuOpen
588
+ createVNode(script$t, {
589
+ links: __props.links,
590
+ open: mobileMenuOpen.value
640
591
  }, null, 8 /* PROPS */, ["links", "open"])
641
592
  ]))
642
593
  }
594
+ }
595
+
596
+ };
643
597
 
644
598
  var css_248z$i = "\n.navbar[data-v-1b5caf34] {\n background-color: var(--color-navbar-background);\n}\n.navbar-container[data-v-1b5caf34] {\n max-width: 80rem;\n margin-left: auto;\n margin-right: auto;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.flex-header[data-v-1b5caf34] {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 4rem;\n}\n.menu-toggle[data-v-1b5caf34] {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n}\n.title-container[data-v-1b5caf34] {\n flex: 1 1 0%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n@media (min-width: 640px) {\n.navbar-container[data-v-1b5caf34] {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.menu-toggle[data-v-1b5caf34] {\n display: none;\n}\n.title-container[data-v-1b5caf34] {\n align-items: stretch;\n justify-content: flex-start;\n}\n}\n@media (min-width: 1024px) {\n.navbar-container[data-v-1b5caf34] {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n}\n";
645
599
  styleInject(css_248z$i);
646
600
 
647
- script$n.render = render$n;
648
601
  script$n.__scopeId = "data-v-1b5caf34";
649
602
  script$n.__file = "src/Navbar/Navbar.vue";
650
603
 
651
- var script$m = defineComponent({
652
- name: "StyledTable",
653
- });
654
-
655
604
  const _hoisted_1$k = { class: "styled-table" };
656
605
 
657
- function render$m(_ctx, _cache, $props, $setup, $data, $options) {
606
+
607
+ var script$m = {
608
+ __name: 'StyledTable',
609
+ setup(__props) {
610
+
611
+ // No logic needed
612
+
613
+ return (_ctx, _cache) => {
658
614
  return (openBlock(), createElementBlock("table", _hoisted_1$k, [
659
615
  renderSlot(_ctx.$slots, "default")
660
616
  ]))
661
617
  }
618
+ }
619
+
620
+ };
662
621
 
663
622
  var css_248z$h = "\n.styled-table[data-v-8e6b2044] {\n width: 100%;\n border-collapse: collapse;\n}\n";
664
623
  styleInject(css_248z$h);
665
624
 
666
- script$m.render = render$m;
667
625
  script$m.__scopeId = "data-v-8e6b2044";
668
626
  script$m.__file = "src/StyledTable/StyledTable.vue";
669
627
 
670
- var script$l = defineComponent({
671
- name: "RegularButton",
628
+ const _hoisted_1$j = ["disabled"];
629
+
630
+
631
+ var script$l = {
632
+ __name: 'RegularButton',
672
633
  props: {
673
- text: String,
674
- loading: {
675
- type: Boolean,
676
- default: false,
677
- },
678
- textWhileLoading: {
679
- type: String,
680
- default: '...',
681
- },
634
+ text: String,
635
+ loading: {
636
+ type: Boolean,
637
+ default: false,
682
638
  },
683
- emits: ['click'],
684
- computed: {
685
- cssClass: function () {
686
- if (this.loading) {
687
- return 'regular-button loading';
688
- }
689
- return 'regular-button'
690
- },
691
- },
692
- methods: {
693
- onClick(evt) {
694
- this.$emit('click', evt);
695
- },
639
+ textWhileLoading: {
640
+ type: String,
641
+ default: '...',
696
642
  },
643
+ },
644
+ emits: ['click'],
645
+ setup(__props, { emit: __emit }) {
646
+
647
+ const props = __props;
648
+
649
+ const emit = __emit;
650
+
651
+ const cssClass = computed(() => {
652
+ if (props.loading) {
653
+ return 'regular-button loading';
654
+ }
655
+ return 'regular-button';
697
656
  });
698
657
 
699
- const _hoisted_1$j = ["disabled"];
658
+ const onClick = (evt) => {
659
+ emit('click', evt);
660
+ };
700
661
 
701
- function render$l(_ctx, _cache, $props, $setup, $data, $options) {
662
+ return (_ctx, _cache) => {
702
663
  return (openBlock(), createElementBlock("button", {
703
- onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.onClick && _ctx.onClick(...args))),
704
- class: normalizeClass(_ctx.cssClass),
705
- disabled: _ctx.loading
706
- }, toDisplayString(_ctx.loading ? _ctx.textWhileLoading : _ctx.text), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$j))
664
+ onClick: onClick,
665
+ class: normalizeClass(cssClass.value),
666
+ disabled: __props.loading
667
+ }, toDisplayString(__props.loading ? __props.textWhileLoading : __props.text), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$j))
668
+ }
707
669
  }
708
670
 
671
+ };
672
+
709
673
  var css_248z$g = "\n.regular-button[data-v-7c962c54] {\n background-color: var(--color-regular);\n color: var(--color-regular-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.regular-button[data-v-7c962c54]:hover {\n background-color: var(--color-regular-hover);\n}\n\n/* Loading state */\n.loading[data-v-7c962c54] {\n background-color: var(--color-regular-disabled);\n cursor: wait;\n}\n.loading[data-v-7c962c54]:hover {\n background-color: var(--color-regular-disabled);\n}\n";
710
674
  styleInject(css_248z$g);
711
675
 
712
- script$l.render = render$l;
713
676
  script$l.__scopeId = "data-v-7c962c54";
714
677
  script$l.__file = "src/Buttons/RegularButton/RegularButton.vue";
715
678
 
716
- var script$k = defineComponent({
717
- name: "Pagination",
718
- props: {
719
- previousLabel: String,
720
- nextLabel: String,
721
- showPrevious: Boolean,
722
- previousLink: String,
723
- nextLink: String,
724
- },
725
- components: {
726
- RegularButton: script$l,
727
- },
728
- });
729
-
730
679
  const _hoisted_1$i = { class: "pagination-container" };
731
680
  const _hoisted_2$9 = ["href"];
732
681
  const _hoisted_3$7 = ["href"];
733
682
 
734
- function render$k(_ctx, _cache, $props, $setup, $data, $options) {
735
- const _component_regular_button = resolveComponent("regular-button");
736
683
 
684
+ var script$k = {
685
+ __name: 'Pagination',
686
+ props: {
687
+ previousLabel: String,
688
+ nextLabel: String,
689
+ showPrevious: Boolean,
690
+ previousLink: String,
691
+ nextLink: String,
692
+ },
693
+ setup(__props) {
694
+
695
+
696
+
697
+ return (_ctx, _cache) => {
737
698
  return (openBlock(), createElementBlock("div", _hoisted_1$i, [
738
- (_ctx.showPrevious)
699
+ (__props.showPrevious)
739
700
  ? (openBlock(), createElementBlock("a", {
740
701
  key: 0,
741
- href: _ctx.previousLink
702
+ href: __props.previousLink
742
703
  }, [
743
- createVNode(_component_regular_button, { text: _ctx.previousLabel }, null, 8 /* PROPS */, ["text"])
704
+ createVNode(script$l, { text: __props.previousLabel }, null, 8 /* PROPS */, ["text"])
744
705
  ], 8 /* PROPS */, _hoisted_2$9))
745
706
  : createCommentVNode("v-if", true),
746
- createElementVNode("a", { href: _ctx.nextLink }, [
747
- createVNode(_component_regular_button, { text: _ctx.nextLabel }, null, 8 /* PROPS */, ["text"])
707
+ createElementVNode("a", { href: __props.nextLink }, [
708
+ createVNode(script$l, { text: __props.nextLabel }, null, 8 /* PROPS */, ["text"])
748
709
  ], 8 /* PROPS */, _hoisted_3$7)
749
710
  ]))
750
711
  }
712
+ }
713
+
714
+ };
751
715
 
752
716
  var css_248z$f = "\n.pagination-container[data-v-265c87a6] {\n display: flex;\n justify-content: space-between;\n margin-top: 1rem;\n}\na[data-v-265c87a6] {\n text-decoration: none;\n}\n";
753
717
  styleInject(css_248z$f);
754
718
 
755
- script$k.render = render$k;
756
719
  script$k.__scopeId = "data-v-265c87a6";
757
720
  script$k.__file = "src/Pagination/Pagination.vue";
758
721
 
759
- var script$j = defineComponent({
760
- name: "Badge",
722
+ const _hoisted_1$h = { class: "badge" };
723
+
724
+
725
+ var script$j = {
726
+ __name: 'Badge',
761
727
  props: {
762
- text: String,
763
- },
764
- });
728
+ text: String,
729
+ },
730
+ setup(__props) {
731
+
765
732
 
766
- const _hoisted_1$h = { class: "badge" };
767
733
 
768
- function render$j(_ctx, _cache, $props, $setup, $data, $options) {
769
- return (openBlock(), createElementBlock("span", _hoisted_1$h, toDisplayString(_ctx.text), 1 /* TEXT */))
734
+ return (_ctx, _cache) => {
735
+ return (openBlock(), createElementBlock("span", _hoisted_1$h, toDisplayString(__props.text), 1 /* TEXT */))
770
736
  }
737
+ }
738
+
739
+ };
771
740
 
772
741
  var css_248z$e = "\n.badge[data-v-187659a4] {\n background-color: var(--color-badge);\n color: var(--color-badge-text);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-bold);\n margin-right: var(--badge-margin-right);\n padding: var(--badge-padding);\n border-radius: var(--badge-border-radius);\n display: inline-block;\n}\n.dark .badge[data-v-187659a4] {\n background-color: var(--color-badge-dark);\n color: var(--color-badge-dark-text);\n}\n";
773
742
  styleInject(css_248z$e);
774
743
 
775
- script$j.render = render$j;
776
744
  script$j.__scopeId = "data-v-187659a4";
777
745
  script$j.__file = "src/Badge/Badge.vue";
778
746
 
779
- var script$i = defineComponent({
780
- name: "Temperature",
781
- props: {
782
- title: String,
783
- min: Number,
784
- max: Number,
785
- avg: Number
786
- },
787
- computed: {
788
- minFormatted() {
789
- return this.min.toFixed(2);
790
- },
791
- avgFormatted() {
792
- return this.avg.toFixed(2);
793
- },
794
- maxFormatted() {
795
- return this.max.toFixed(2);
796
- },
797
- },
798
- });
799
-
800
747
  const _hoisted_1$g = { class: "wrapper" };
801
748
  const _hoisted_2$8 = { class: "title" };
802
749
  const _hoisted_3$6 = { class: "avg" };
@@ -804,40 +751,97 @@ const _hoisted_4$2 = { class: "minmax" };
804
751
  const _hoisted_5$1 = { class: "min" };
805
752
  const _hoisted_6 = { class: "max" };
806
753
 
807
- function render$i(_ctx, _cache, $props, $setup, $data, $options) {
754
+ var script$i = {
755
+ __name: 'Temperature',
756
+ props: {
757
+ title: String,
758
+ min: Number,
759
+ max: Number,
760
+ avg: Number
761
+ },
762
+ setup(__props) {
763
+
764
+ const props = __props;
765
+ const minFormatted = computed(() => props.min.toFixed(2));
766
+ const avgFormatted = computed(() => props.avg.toFixed(2));
767
+ const maxFormatted = computed(() => props.max.toFixed(2));
768
+
769
+ return (_ctx, _cache) => {
808
770
  return (openBlock(), createElementBlock("div", _hoisted_1$g, [
809
- createElementVNode("div", _hoisted_2$8, toDisplayString(_ctx.title), 1 /* TEXT */),
810
- createElementVNode("div", _hoisted_3$6, toDisplayString(_ctx.avgFormatted) + " ℃", 1 /* TEXT */),
771
+ createElementVNode("div", _hoisted_2$8, toDisplayString(__props.title), 1 /* TEXT */),
772
+ createElementVNode("div", _hoisted_3$6, toDisplayString(avgFormatted.value) + " ℃", 1 /* TEXT */),
811
773
  createElementVNode("div", _hoisted_4$2, [
812
- createElementVNode("div", _hoisted_5$1, toDisplayString(_ctx.minFormatted) + " ℃", 1 /* TEXT */),
774
+ createElementVNode("div", _hoisted_5$1, toDisplayString(minFormatted.value) + " ℃", 1 /* TEXT */),
813
775
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "separator" }, "—", -1 /* HOISTED */)),
814
- createElementVNode("div", _hoisted_6, toDisplayString(_ctx.maxFormatted) + " ℃", 1 /* TEXT */)
776
+ createElementVNode("div", _hoisted_6, toDisplayString(maxFormatted.value) + " ℃", 1 /* TEXT */)
815
777
  ])
816
778
  ]))
817
779
  }
780
+ }
781
+
782
+ };
818
783
 
819
784
  var css_248z$d = "\n.wrapper[data-v-4250e6d0] {\n flex-direction: column;\n display: inline-flex;\n}\n.avg[data-v-4250e6d0] {\n display: flex;\n font-size: var(--font-size-xlarge);\n justify-content: center;\n}\n.title[data-v-4250e6d0] {\n display: flex;\n font-size: var(--font-size-base);\n justify-content: center;\n}\n.minmax[data-v-4250e6d0] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-size: var(--font-size-base);\n}\n";
820
785
  styleInject(css_248z$d);
821
786
 
822
- script$i.render = render$i;
823
787
  script$i.__scopeId = "data-v-4250e6d0";
824
788
  script$i.__file = "src/Temperature/Temperature.vue";
825
789
 
826
- var script$h = defineComponent({
827
- name: "Modal",
828
- emits: ['cancel', 'confirm'],
790
+ var script$h = {
791
+ __name: 'SecondaryButton',
829
792
  props: {
830
- open: Boolean,
831
- },
832
- methods: {
833
- onCancel(evt) {
834
- this.$emit('cancel', evt);
835
- },
836
- onConfirm(evt) {
837
- this.$emit('confirm', evt);
838
- },
839
- },
840
- });
793
+ text: String,
794
+ },
795
+ emits: ['click'],
796
+ setup(__props, { emit: __emit }) {
797
+
798
+
799
+ const emit = __emit;
800
+ const onClick = (evt) => emit('click', evt);
801
+
802
+ return (_ctx, _cache) => {
803
+ return (openBlock(), createElementBlock("button", {
804
+ class: "secondary-button",
805
+ onClick: onClick
806
+ }, toDisplayString(__props.text), 1 /* TEXT */))
807
+ }
808
+ }
809
+
810
+ };
811
+
812
+ var css_248z$c = "\n.secondary-button[data-v-5bb3ed46] {\n background-color: var(--color-secondary);\n color: var(--color-secondary-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.secondary-button[data-v-5bb3ed46]:hover {\n background-color: var(--color-secondary-hover);\n}\n";
813
+ styleInject(css_248z$c);
814
+
815
+ script$h.__scopeId = "data-v-5bb3ed46";
816
+ script$h.__file = "src/Buttons/SecondaryButton/SecondaryButton.vue";
817
+
818
+ var script$g = {
819
+ __name: 'DangerButton',
820
+ props: {
821
+ text: String,
822
+ },
823
+ emits: ['click'],
824
+ setup(__props, { emit: __emit }) {
825
+
826
+
827
+ const emit = __emit;
828
+ const onClick = (evt) => emit('click', evt);
829
+
830
+ return (_ctx, _cache) => {
831
+ return (openBlock(), createElementBlock("button", {
832
+ class: "danger-button",
833
+ onClick: onClick
834
+ }, toDisplayString(__props.text), 1 /* TEXT */))
835
+ }
836
+ }
837
+
838
+ };
839
+
840
+ var css_248z$b = "\n.danger-button[data-v-5e080598] {\n background-color: var(--color-danger);\n color: var(--color-danger-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.danger-button[data-v-5e080598]:hover {\n background-color: var(--color-danger-hover);\n}\n";
841
+ styleInject(css_248z$b);
842
+
843
+ script$g.__scopeId = "data-v-5e080598";
844
+ script$g.__file = "src/Buttons/DangerButton/DangerButton.vue";
841
845
 
842
846
  const _hoisted_1$f = {
843
847
  key: 0,
@@ -845,78 +849,99 @@ const _hoisted_1$f = {
845
849
  };
846
850
  const _hoisted_2$7 = { class: "modal-container" };
847
851
 
848
- function render$h(_ctx, _cache, $props, $setup, $data, $options) {
849
- const _component_secondary_button = resolveComponent("secondary-button");
850
- const _component_danger_button = resolveComponent("danger-button");
851
852
 
852
- return (_ctx.open)
853
+ var script$f = {
854
+ __name: 'Modal',
855
+ props: {
856
+ open: Boolean,
857
+ },
858
+ emits: ['cancel', 'confirm'],
859
+ setup(__props, { emit: __emit }) {
860
+
861
+
862
+ const emit = __emit;
863
+ const onCancel = (evt) => emit('cancel', evt);
864
+ const onConfirm = (evt) => emit('confirm', evt);
865
+
866
+ return (_ctx, _cache) => {
867
+ return (__props.open)
853
868
  ? (openBlock(), createElementBlock("div", _hoisted_1$f, [
854
869
  createElementVNode("div", _hoisted_2$7, [
855
870
  _cache[0] || (_cache[0] = createElementVNode("h1", { class: "modal-title" }, "Are you sure?", -1 /* HOISTED */)),
856
- createVNode(_component_secondary_button, {
857
- onClick: _ctx.onCancel,
871
+ createVNode(script$h, {
872
+ onClick: onCancel,
858
873
  text: "No"
859
- }, null, 8 /* PROPS */, ["onClick"]),
860
- createVNode(_component_danger_button, {
874
+ }),
875
+ createVNode(script$g, {
861
876
  class: "ml-2",
862
- onClick: _ctx.onConfirm,
877
+ onClick: onConfirm,
863
878
  text: "Yes"
864
- }, null, 8 /* PROPS */, ["onClick"])
879
+ })
865
880
  ])
866
881
  ]))
867
882
  : createCommentVNode("v-if", true)
868
883
  }
884
+ }
869
885
 
870
- var css_248z$c = "\n.modal-overlay[data-v-11d137c2] {\n background-color: var(--color-modal-overlay);\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.modal-container[data-v-11d137c2] {\n background-color: var(--color-modal-background);\n padding: 3.5rem 4rem;\n border-radius: var(--border-radius-big);\n text-align: center;\n}\n.modal-title[data-v-11d137c2] {\n font-size: var(--font-size-large);\n margin-bottom: 1rem;\n font-weight: var(--font-weight-bold);\n color: var(--color-modal-title);\n}\n";
871
- styleInject(css_248z$c);
886
+ };
872
887
 
873
- script$h.render = render$h;
874
- script$h.__scopeId = "data-v-11d137c2";
875
- script$h.__file = "src/Modal/Modal.vue";
888
+ var css_248z$a = "\n.modal-overlay[data-v-11d137c2] {\n background-color: var(--color-modal-overlay);\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.modal-container[data-v-11d137c2] {\n background-color: var(--color-modal-background);\n padding: 3.5rem 4rem;\n border-radius: var(--border-radius-big);\n text-align: center;\n}\n.modal-title[data-v-11d137c2] {\n font-size: var(--font-size-large);\n margin-bottom: 1rem;\n font-weight: var(--font-weight-bold);\n color: var(--color-modal-title);\n}\n";
889
+ styleInject(css_248z$a);
876
890
 
877
- var script$g = defineComponent({
878
- name: "Spinner",
879
- });
891
+ script$f.__scopeId = "data-v-11d137c2";
892
+ script$f.__file = "src/Modal/Modal.vue";
880
893
 
881
894
  const _hoisted_1$e = {
882
895
  class: "spinner",
883
896
  role: "status"
884
897
  };
885
898
 
886
- function render$g(_ctx, _cache, $props, $setup, $data, $options) {
899
+
900
+ var script$e = {
901
+ __name: 'Spinner',
902
+ setup(__props) {
903
+
904
+ // No logic needed
905
+
906
+ return (_ctx, _cache) => {
887
907
  return (openBlock(), createElementBlock("div", _hoisted_1$e, _cache[0] || (_cache[0] = [
888
908
  createElementVNode("span", { class: "sr-only-text" }, "Please wait...", -1 /* HOISTED */)
889
909
  ])))
890
910
  }
911
+ }
891
912
 
892
- var css_248z$b = "\n.spinner[data-v-3d456f9a] {\n display: inline-block;\n height: 2rem;\n width: 2rem;\n border: 4px solid currentColor;\n border-right-color: transparent;\n border-radius: var(--border-radius-round);\n animation: spin-3d456f9a 1.5s linear infinite;\n}\n.sr-only-text[data-v-3d456f9a] {\n position: absolute;\n margin: -1px;\n height: 1px;\n width: 1px;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n padding: 0;\n clip: rect(0, 0, 0, 0);\n}\n@keyframes spin-3d456f9a {\nfrom {\n transform: rotate(0deg);\n}\nto {\n transform: rotate(360deg);\n}\n}\n";
893
- styleInject(css_248z$b);
913
+ };
894
914
 
895
- script$g.render = render$g;
896
- script$g.__scopeId = "data-v-3d456f9a";
897
- script$g.__file = "src/Spinner/Spinner.vue";
915
+ var css_248z$9 = "\n.spinner[data-v-3d456f9a] {\n display: inline-block;\n height: 2rem;\n width: 2rem;\n border: 4px solid currentColor;\n border-right-color: transparent;\n border-radius: var(--border-radius-round);\n animation: spin-3d456f9a 1.5s linear infinite;\n}\n.sr-only-text[data-v-3d456f9a] {\n position: absolute;\n margin: -1px;\n height: 1px;\n width: 1px;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n padding: 0;\n clip: rect(0, 0, 0, 0);\n}\n@keyframes spin-3d456f9a {\nfrom {\n transform: rotate(0deg);\n}\nto {\n transform: rotate(360deg);\n}\n}\n";
916
+ styleInject(css_248z$9);
898
917
 
899
- var script$f = defineComponent({
900
- name: "RangeView",
901
- props: {
902
- ranges: Array,
903
- },
904
- });
918
+ script$e.__scopeId = "data-v-3d456f9a";
919
+ script$e.__file = "src/Spinner/Spinner.vue";
905
920
 
906
921
  const _hoisted_1$d = { class: "ranges-editor" };
907
922
  const _hoisted_2$6 = { class: "labels" };
908
923
  const _hoisted_3$5 = { class: "label" };
909
924
  const _hoisted_4$1 = { class: "label" };
910
925
 
911
- function render$f(_ctx, _cache, $props, $setup, $data, $options) {
926
+
927
+ var script$d = {
928
+ __name: 'RangeView',
929
+ props: {
930
+ ranges: Array,
931
+ },
932
+ setup(__props) {
933
+
934
+
935
+
936
+ return (_ctx, _cache) => {
912
937
  return (openBlock(), createElementBlock("div", _hoisted_1$d, [
913
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.ranges, (range, index) => {
938
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.ranges, (range, index) => {
914
939
  return (openBlock(), createElementBlock("div", {
915
940
  class: "range",
916
941
  key: range.id
917
942
  }, [
918
943
  createElementVNode("div", _hoisted_2$6, [
919
- createElementVNode("span", _hoisted_3$5, toDisplayString(index < _ctx.ranges.length - 1 ? range.max : ' '), 1 /* TEXT */)
944
+ createElementVNode("span", _hoisted_3$5, toDisplayString(index < __props.ranges.length - 1 ? range.max : ' '), 1 /* TEXT */)
920
945
  ]),
921
946
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "gap" }, null, -1 /* HOISTED */)),
922
947
  createElementVNode("span", _hoisted_4$1, toDisplayString(range.label), 1 /* TEXT */)
@@ -924,365 +949,277 @@ function render$f(_ctx, _cache, $props, $setup, $data, $options) {
924
949
  }), 128 /* KEYED_FRAGMENT */))
925
950
  ]))
926
951
  }
952
+ }
927
953
 
928
- var css_248z$a = "\n.ranges-editor[data-v-3e589c2c] {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n}\n.range[data-v-3e589c2c] {\n min-width: 50px;\n text-align: center;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n.labels[data-v-3e589c2c] {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n}\n.gap[data-v-3e589c2c] {\n height: 10px;\n width: auto;\n background-color: red;\n border: 1px solid black;\n}\n.label[data-v-3e589c2c] {\n margin-top: 5px;\n}\n";
929
- styleInject(css_248z$a);
954
+ };
930
955
 
931
- script$f.render = render$f;
932
- script$f.__scopeId = "data-v-3e589c2c";
933
- script$f.__file = "src/RangeView/RangeView.vue";
956
+ var css_248z$8 = "\n.ranges-editor[data-v-3e589c2c] {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n}\n.range[data-v-3e589c2c] {\n min-width: 50px;\n text-align: center;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n.labels[data-v-3e589c2c] {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n}\n.gap[data-v-3e589c2c] {\n height: 10px;\n width: auto;\n background-color: red;\n border: 1px solid black;\n}\n.label[data-v-3e589c2c] {\n margin-top: 5px;\n}\n";
957
+ styleInject(css_248z$8);
934
958
 
935
- var script$e = defineComponent({
936
- name: "ResetButton",
937
- props: {
938
- text: String,
939
- },
940
- });
959
+ script$d.__scopeId = "data-v-3e589c2c";
960
+ script$d.__file = "src/RangeView/RangeView.vue";
941
961
 
942
962
  const _hoisted_1$c = {
943
963
  class: "reset-button",
944
964
  type: "reset"
945
965
  };
946
966
 
947
- function render$e(_ctx, _cache, $props, $setup, $data, $options) {
948
- return (openBlock(), createElementBlock("button", _hoisted_1$c, toDisplayString(_ctx.text), 1 /* TEXT */))
949
- }
950
-
951
- var css_248z$9 = "\n.reset-button[data-v-70384d7c] {\n background-color: var(--color-reset);\n color: var(--color-reset-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.reset-button[data-v-70384d7c]:hover {\n background-color: var(--color-reset-hover);\n}\n";
952
- styleInject(css_248z$9);
953
-
954
- script$e.render = render$e;
955
- script$e.__scopeId = "data-v-70384d7c";
956
- script$e.__file = "src/Buttons/ResetButton/ResetButton.vue";
957
967
 
958
- var script$d = defineComponent({
959
- name: "SubmitButton",
968
+ var script$c = {
969
+ __name: 'ResetButton',
960
970
  props: {
961
- text: {
962
- type: String,
963
- },
964
- disabled: {
965
- type: Boolean,
966
- },
967
- },
968
- });
971
+ text: String,
972
+ },
973
+ setup(__props) {
969
974
 
970
- const _hoisted_1$b = ["disabled"];
971
975
 
972
- function render$d(_ctx, _cache, $props, $setup, $data, $options) {
973
- return (openBlock(), createElementBlock("button", {
974
- class: "submit-button",
975
- type: "submit",
976
- disabled: _ctx.disabled
977
- }, toDisplayString(_ctx.text), 9 /* TEXT, PROPS */, _hoisted_1$b))
978
- }
979
976
 
980
- var css_248z$8 = "\n.submit-button[data-v-f7f11890] {\n background-color: var(--color-submit);\n color: var(--color-submit-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.submit-button[data-v-f7f11890]:hover {\n background-color: var(--color-submit-hover);\n}\n.submit-button[data-v-f7f11890]:disabled {\n background-color: var(--color-submit-disabled);\n cursor: not-allowed;\n}\n";
981
- styleInject(css_248z$8);
977
+ return (_ctx, _cache) => {
978
+ return (openBlock(), createElementBlock("button", _hoisted_1$c, toDisplayString(__props.text), 1 /* TEXT */))
979
+ }
980
+ }
982
981
 
983
- script$d.render = render$d;
984
- script$d.__scopeId = "data-v-f7f11890";
985
- script$d.__file = "src/Buttons/SubmitButton/SubmitButton.vue";
982
+ };
986
983
 
987
- var script$c = defineComponent({
988
- name: "SecondaryButton",
989
- props: {
990
- text: String,
991
- },
992
- emits: ['click'],
993
- methods: {
994
- onClick(evt) {
995
- this.$emit('click', evt);
996
- },
997
- },
998
- });
984
+ var css_248z$7 = "\n.reset-button[data-v-70384d7c] {\n background-color: var(--color-reset);\n color: var(--color-reset-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.reset-button[data-v-70384d7c]:hover {\n background-color: var(--color-reset-hover);\n}\n";
985
+ styleInject(css_248z$7);
999
986
 
1000
- function render$c(_ctx, _cache, $props, $setup, $data, $options) {
1001
- return (openBlock(), createElementBlock("button", {
1002
- class: "secondary-button",
1003
- onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.onClick && _ctx.onClick(...args)))
1004
- }, toDisplayString(_ctx.text), 1 /* TEXT */))
1005
- }
987
+ script$c.__scopeId = "data-v-70384d7c";
988
+ script$c.__file = "src/Buttons/ResetButton/ResetButton.vue";
1006
989
 
1007
- var css_248z$7 = "\n.secondary-button[data-v-5bb3ed46] {\n background-color: var(--color-secondary);\n color: var(--color-secondary-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.secondary-button[data-v-5bb3ed46]:hover {\n background-color: var(--color-secondary-hover);\n}\n";
1008
- styleInject(css_248z$7);
990
+ const _hoisted_1$b = ["disabled"];
1009
991
 
1010
- script$c.render = render$c;
1011
- script$c.__scopeId = "data-v-5bb3ed46";
1012
- script$c.__file = "src/Buttons/SecondaryButton/SecondaryButton.vue";
1013
992
 
1014
- var script$b = defineComponent({
1015
- name: "DangerButton",
993
+ var script$b = {
994
+ __name: 'SubmitButton',
1016
995
  props: {
1017
- text: String,
1018
- },
1019
- emits: ['click'],
1020
- methods: {
1021
- onClick(evt) {
1022
- this.$emit('click', evt);
1023
- },
1024
- },
1025
- });
996
+ text: String,
997
+ disabled: Boolean,
998
+ },
999
+ setup(__props) {
1026
1000
 
1027
- function render$b(_ctx, _cache, $props, $setup, $data, $options) {
1001
+
1002
+
1003
+ return (_ctx, _cache) => {
1028
1004
  return (openBlock(), createElementBlock("button", {
1029
- class: "danger-button",
1030
- onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.onClick && _ctx.onClick(...args)))
1031
- }, toDisplayString(_ctx.text), 1 /* TEXT */))
1005
+ class: "submit-button",
1006
+ type: "submit",
1007
+ disabled: __props.disabled
1008
+ }, toDisplayString(__props.text), 9 /* TEXT, PROPS */, _hoisted_1$b))
1032
1009
  }
1010
+ }
1011
+
1012
+ };
1033
1013
 
1034
- var css_248z$6 = "\n.danger-button[data-v-5e080598] {\n background-color: var(--color-danger);\n color: var(--color-danger-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.danger-button[data-v-5e080598]:hover {\n background-color: var(--color-danger-hover);\n}\n";
1014
+ var css_248z$6 = "\n.submit-button[data-v-f7f11890] {\n background-color: var(--color-submit);\n color: var(--color-submit-text);\n font-weight: var(--font-weight-bold);\n padding: var(--button-padding);\n border-radius: var(--border-radius-base);\n border: var(--button-border);\n cursor: pointer;\n transition: var(--button-transition);\n}\n.submit-button[data-v-f7f11890]:hover {\n background-color: var(--color-submit-hover);\n}\n.submit-button[data-v-f7f11890]:disabled {\n background-color: var(--color-submit-disabled);\n cursor: not-allowed;\n}\n";
1035
1015
  styleInject(css_248z$6);
1036
1016
 
1037
- script$b.render = render$b;
1038
- script$b.__scopeId = "data-v-5e080598";
1039
- script$b.__file = "src/Buttons/DangerButton/DangerButton.vue";
1040
-
1041
- var script$a = defineComponent({
1042
- name: "TextInput",
1043
- props: {
1044
- id: {
1045
- type: String,
1046
- },
1047
- required: {
1048
- type: Boolean,
1049
- },
1050
- disabled: {
1051
- type: Boolean,
1052
- },
1053
- placeholder: {
1054
- type: String,
1055
- },
1056
- label: {
1057
- type: String,
1058
- },
1059
- text: {
1060
- type: String,
1061
- },
1062
- },
1063
- emits: ['update'],
1064
- methods: {
1065
- onInput(event) {
1066
- this.$emit('update', event.target.value);
1067
- },
1068
- },
1069
- });
1017
+ script$b.__scopeId = "data-v-f7f11890";
1018
+ script$b.__file = "src/Buttons/SubmitButton/SubmitButton.vue";
1070
1019
 
1071
1020
  const _hoisted_1$a = { class: "text-input-container" };
1072
1021
  const _hoisted_2$5 = ["for"];
1073
1022
  const _hoisted_3$4 = ["id", "name", "required", "disabled", "placeholder", "value"];
1074
1023
 
1075
- function render$a(_ctx, _cache, $props, $setup, $data, $options) {
1024
+
1025
+ var script$a = {
1026
+ __name: 'TextInput',
1027
+ props: {
1028
+ id: String,
1029
+ required: Boolean,
1030
+ disabled: Boolean,
1031
+ placeholder: String,
1032
+ label: String,
1033
+ text: String,
1034
+ },
1035
+ emits: ['update'],
1036
+ setup(__props, { emit: __emit }) {
1037
+
1038
+
1039
+ const emit = __emit;
1040
+ const onInput = (event) => emit('update', event.target.value);
1041
+
1042
+ return (_ctx, _cache) => {
1076
1043
  return (openBlock(), createElementBlock("div", _hoisted_1$a, [
1077
1044
  createElementVNode("label", {
1078
1045
  class: "text-input-label",
1079
- for: _ctx.id
1080
- }, toDisplayString(_ctx.label), 9 /* TEXT, PROPS */, _hoisted_2$5),
1046
+ for: __props.id
1047
+ }, toDisplayString(__props.label), 9 /* TEXT, PROPS */, _hoisted_2$5),
1081
1048
  createElementVNode("input", {
1082
1049
  class: "text-input-field",
1083
- id: _ctx.id,
1084
- name: _ctx.id,
1085
- required: _ctx.required,
1086
- disabled: _ctx.disabled,
1087
- placeholder: _ctx.placeholder,
1088
- value: _ctx.text,
1089
- onInput: _cache[0] || (_cache[0] = (...args) => (_ctx.onInput && _ctx.onInput(...args))),
1050
+ id: __props.id,
1051
+ name: __props.id,
1052
+ required: __props.required,
1053
+ disabled: __props.disabled,
1054
+ placeholder: __props.placeholder,
1055
+ value: __props.text,
1056
+ onInput: onInput,
1090
1057
  type: "text"
1091
1058
  }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3$4)
1092
1059
  ]))
1093
1060
  }
1061
+ }
1062
+
1063
+ };
1094
1064
 
1095
1065
  var css_248z$5 = "\n.text-input-container[data-v-6df3547e] {\n margin-bottom: 1rem;\n}\n.text-input-label[data-v-6df3547e] {\n display: block;\n color: var(--color-text-input-label);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-bold);\n margin-bottom: 0.5rem;\n}\n.text-input-field[data-v-6df3547e] {\n box-shadow: 0 1px 3px var(--color-text-input-shadow);\n appearance: none;\n border: 1px solid var(--color-text-input-border);\n border-radius: var(--border-radius--base);\n width: 100%;\n padding: 0.5rem 0.75rem;\n color: var(--color-text-input);\n line-height: 1.25;\n transition: box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out;\n}\n.text-input-field[data-v-6df3547e]:focus {\n outline: none;\n box-shadow: 0 0 0 3px var(--color-text-input-shadow);\n border-color: var(--color-text-input-border-focus);\n}\n.text-input-field[data-v-6df3547e]:disabled {\n background-color: var(--color-input-disabled);\n cursor: not-allowed;\n}\n";
1096
1066
  styleInject(css_248z$5);
1097
1067
 
1098
- script$a.render = render$a;
1099
1068
  script$a.__scopeId = "data-v-6df3547e";
1100
1069
  script$a.__file = "src/Inputs/TextInput/TextInput.vue";
1101
1070
 
1102
- var script$9 = defineComponent({
1103
- name: "CheckBoxInput",
1104
- props: {
1105
- id: {
1106
- type: String,
1107
- },
1108
- required: {
1109
- type: Boolean,
1110
- },
1111
- placeholder: {
1112
- type: String,
1113
- },
1114
- label: {
1115
- type: String,
1116
- },
1117
- checked: {
1118
- type: Boolean,
1119
- },
1120
- },
1121
- emits: ['update'],
1122
- methods: {
1123
- onInput(event) {
1124
- this.$emit('update', event.target.value);
1125
- },
1126
- },
1127
- });
1128
-
1129
1071
  const _hoisted_1$9 = { class: "checkbox-container" };
1130
1072
  const _hoisted_2$4 = ["id", "name", "required", "value"];
1131
1073
  const _hoisted_3$3 = ["for"];
1132
1074
 
1133
- function render$9(_ctx, _cache, $props, $setup, $data, $options) {
1075
+
1076
+ var script$9 = {
1077
+ __name: 'CheckBoxInput',
1078
+ props: {
1079
+ id: String,
1080
+ required: Boolean,
1081
+ placeholder: String,
1082
+ label: String,
1083
+ checked: Boolean,
1084
+ },
1085
+ emits: ['update'],
1086
+ setup(__props, { emit: __emit }) {
1087
+
1088
+
1089
+ const emit = __emit;
1090
+ const onInput = (event) => emit('update', event.target.value);
1091
+
1092
+ return (_ctx, _cache) => {
1134
1093
  return (openBlock(), createElementBlock("div", _hoisted_1$9, [
1135
1094
  createElementVNode("input", {
1136
- id: _ctx.id,
1137
- name: _ctx.id,
1138
- required: _ctx.required,
1139
- value: _ctx.checked,
1140
- onInput: _cache[0] || (_cache[0] = (...args) => (_ctx.onInput && _ctx.onInput(...args))),
1095
+ id: __props.id,
1096
+ name: __props.id,
1097
+ required: __props.required,
1098
+ value: __props.checked,
1099
+ onInput: onInput,
1141
1100
  type: "checkbox",
1142
1101
  "unchecked-value": "false"
1143
1102
  }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_2$4),
1144
1103
  createElementVNode("label", {
1145
1104
  class: "checkbox-label",
1146
- for: _ctx.id
1147
- }, toDisplayString(_ctx.label), 9 /* TEXT, PROPS */, _hoisted_3$3)
1105
+ for: __props.id
1106
+ }, toDisplayString(__props.label), 9 /* TEXT, PROPS */, _hoisted_3$3)
1148
1107
  ]))
1149
1108
  }
1109
+ }
1110
+
1111
+ };
1150
1112
 
1151
1113
  var css_248z$4 = "\n.checkbox-container[data-v-4612e592] {\n margin-bottom: 1rem;\n}\ninput[type=\"checkbox\"][data-v-4612e592] {\n margin-right: 0.5rem;\n}\n.checkbox-label[data-v-4612e592] {\n display: block;\n color: var(--color-checkbox-label);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-bold);\n}\n";
1152
1114
  styleInject(css_248z$4);
1153
1115
 
1154
- script$9.render = render$9;
1155
1116
  script$9.__scopeId = "data-v-4612e592";
1156
1117
  script$9.__file = "src/Inputs/CheckBoxInput/CheckBoxInput.vue";
1157
1118
 
1158
- var script$8 = defineComponent({
1159
- name: "NumberInput",
1160
- props: {
1161
- id: {
1162
- type: String,
1163
- },
1164
- required: {
1165
- type: Boolean,
1166
- },
1167
- disabled: {
1168
- type: Boolean,
1169
- },
1170
- placeholder: {
1171
- type: String,
1172
- },
1173
- label: {
1174
- type: String,
1175
- },
1176
- amount: {
1177
- type: Number,
1178
- },
1179
- min: {
1180
- type: String,
1181
- },
1182
- step: {
1183
- type: String,
1184
- },
1185
- },
1186
- emits: ['update'],
1187
- methods: {
1188
- onInput(event) {
1189
- this.$emit('update', event.target.value);
1190
- },
1191
- },
1192
- });
1193
-
1194
1119
  const _hoisted_1$8 = { class: "number-input-container" };
1195
1120
  const _hoisted_2$3 = ["for"];
1196
1121
  const _hoisted_3$2 = ["id", "name", "required", "placeholder", "disabled", "value", "min", "step"];
1197
1122
 
1198
- function render$8(_ctx, _cache, $props, $setup, $data, $options) {
1123
+
1124
+ var script$8 = {
1125
+ __name: 'NumberInput',
1126
+ props: {
1127
+ id: String,
1128
+ required: Boolean,
1129
+ disabled: Boolean,
1130
+ placeholder: String,
1131
+ label: String,
1132
+ amount: Number,
1133
+ min: String,
1134
+ step: String,
1135
+ },
1136
+ emits: ['update'],
1137
+ setup(__props, { emit: __emit }) {
1138
+
1139
+
1140
+ const emit = __emit;
1141
+ const onInput = (event) => emit('update', event.target.value);
1142
+
1143
+ return (_ctx, _cache) => {
1199
1144
  return (openBlock(), createElementBlock("div", _hoisted_1$8, [
1200
1145
  createElementVNode("label", {
1201
1146
  class: "number-input-label",
1202
- for: _ctx.id
1203
- }, toDisplayString(_ctx.label), 9 /* TEXT, PROPS */, _hoisted_2$3),
1147
+ for: __props.id
1148
+ }, toDisplayString(__props.label), 9 /* TEXT, PROPS */, _hoisted_2$3),
1204
1149
  createElementVNode("input", {
1205
1150
  class: "number-input-field",
1206
- id: _ctx.id,
1207
- name: _ctx.id,
1208
- required: _ctx.required,
1209
- placeholder: _ctx.placeholder,
1210
- disabled: _ctx.disabled,
1211
- value: _ctx.amount,
1212
- min: _ctx.min,
1213
- step: _ctx.step,
1214
- onInput: _cache[0] || (_cache[0] = (...args) => (_ctx.onInput && _ctx.onInput(...args))),
1151
+ id: __props.id,
1152
+ name: __props.id,
1153
+ required: __props.required,
1154
+ placeholder: __props.placeholder,
1155
+ disabled: __props.disabled,
1156
+ value: __props.amount,
1157
+ min: __props.min,
1158
+ step: __props.step,
1159
+ onInput: onInput,
1215
1160
  type: "number"
1216
1161
  }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3$2)
1217
1162
  ]))
1218
1163
  }
1164
+ }
1165
+
1166
+ };
1219
1167
 
1220
1168
  var css_248z$3 = "\n.number-input-container[data-v-26abc846] {\n margin-bottom: 1rem;\n}\n.number-input-label[data-v-26abc846] {\n display: block;\n color: var(--color-number-input-label);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-bold);\n margin-bottom: 0.5rem;\n}\n.number-input-field[data-v-26abc846] {\n box-shadow: 0 1px 3px var(--color-input-shadow);\n appearance: none;\n border: 1px solid var(--color-number-input-border);\n border-radius: var(--border-radius--base);\n width: 100%;\n padding: 0.5rem 0.75rem;\n color: var(--color-number-input);\n line-height: 1.25;\n transition: box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out;\n}\n.number-input-field[data-v-26abc846]:focus {\n outline: none;\n box-shadow: 0 0 0 3px var(--color-input-shadow-focus);\n border-color: var(--color-number-input-border-focus);\n}\n.number-input-field[data-v-26abc846]:disabled {\n background-color: var(--color-input-disabled);\n cursor: not-allowed;\n}\n";
1221
1169
  styleInject(css_248z$3);
1222
1170
 
1223
- script$8.render = render$8;
1224
1171
  script$8.__scopeId = "data-v-26abc846";
1225
1172
  script$8.__file = "src/Inputs/NumberInput/NumberInput.vue";
1226
1173
 
1227
- var script$7 = defineComponent({
1228
- name: "ImageInput",
1229
- props: {
1230
- id: {
1231
- type: String,
1232
- },
1233
- required: {
1234
- type: Boolean,
1235
- },
1236
- placeholder: {
1237
- type: String,
1238
- },
1239
- dropPlaceholder: {
1240
- type: String,
1241
- },
1242
- label: {
1243
- type: String,
1244
- },
1245
- file: {
1246
- type: Object,
1247
- },
1248
- },
1249
- emits: ['update'],
1250
- methods: {
1251
- onInput(event) {
1252
- this.$emit('update', event.target.files[0]);
1253
- },
1254
- },
1255
- });
1256
-
1257
1174
  const _hoisted_1$7 = { class: "image-input-container" };
1258
1175
  const _hoisted_2$2 = ["for"];
1259
1176
  const _hoisted_3$1 = ["id", "name", "required", "placeholder", "value", "drop-placeholder"];
1260
1177
 
1261
- function render$7(_ctx, _cache, $props, $setup, $data, $options) {
1178
+
1179
+ var script$7 = {
1180
+ __name: 'ImageInput',
1181
+ props: {
1182
+ id: String,
1183
+ required: Boolean,
1184
+ placeholder: String,
1185
+ dropPlaceholder: String,
1186
+ label: String,
1187
+ file: Object,
1188
+ },
1189
+ emits: ['update'],
1190
+ setup(__props, { emit: __emit }) {
1191
+
1192
+
1193
+ const emit = __emit;
1194
+ const onInput = (event) => emit('update', event.target.files[0]);
1195
+
1196
+ return (_ctx, _cache) => {
1262
1197
  return (openBlock(), createElementBlock("div", _hoisted_1$7, [
1263
1198
  createElementVNode("label", {
1264
1199
  class: "image-input-label",
1265
- for: _ctx.id
1266
- }, toDisplayString(_ctx.label), 9 /* TEXT, PROPS */, _hoisted_2$2),
1200
+ for: __props.id
1201
+ }, toDisplayString(__props.label), 9 /* TEXT, PROPS */, _hoisted_2$2),
1267
1202
  createElementVNode("input", {
1268
1203
  class: "image-input-field",
1269
- id: _ctx.id,
1270
- name: _ctx.id,
1271
- required: _ctx.required,
1272
- placeholder: _ctx.placeholder,
1273
- value: _ctx.file,
1274
- "drop-placeholder": _ctx.dropPlaceholder,
1275
- onInput: _cache[0] || (_cache[0] = (...args) => (_ctx.onInput && _ctx.onInput(...args))),
1204
+ id: __props.id,
1205
+ name: __props.id,
1206
+ required: __props.required,
1207
+ placeholder: __props.placeholder,
1208
+ value: __props.file,
1209
+ "drop-placeholder": __props.dropPlaceholder,
1210
+ onInput: onInput,
1276
1211
  type: "file",
1277
1212
  accept: "image/*"
1278
1213
  }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3$1)
1279
1214
  ]))
1280
1215
  }
1216
+ }
1217
+
1218
+ };
1281
1219
 
1282
1220
  var css_248z$2 = "\n.image-input-container[data-v-d90b5f3c] {\n margin-bottom: 1rem;\n}\n.image-input-label[data-v-d90b5f3c] {\n display: block;\n color: var(--color-image-input);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-bold);\n margin-bottom: 0.5rem;\n}\n.image-input-field[data-v-d90b5f3c] {\n box-shadow: 0 1px 3px var(--color-input-shadow);\n appearance: none;\n border: 1px solid var(--color-image-input-border);\n border-radius: var(--border-radius--base);\n width: 100%;\n padding: 0.5rem 0.75rem;\n color: var(--color-image-input);\n line-height: 1.25;\n transition: box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out;\n}\n.image-input-field[data-v-d90b5f3c]:focus {\n outline: none;\n box-shadow: 0 0 0 3px var(--color-image-input-shadow);\n border-color: var(--color-image-input-border-focus);\n}\n";
1283
1221
  styleInject(css_248z$2);
1284
1222
 
1285
- script$7.render = render$7;
1286
1223
  script$7.__scopeId = "data-v-d90b5f3c";
1287
1224
  script$7.__file = "src/Inputs/ImageInput/ImageInput.vue";
1288
1225
 
@@ -4881,157 +4818,122 @@ ImageBlobReduce.pica = pica;
4881
4818
 
4882
4819
  var imageBlobReduce = ImageBlobReduce;
4883
4820
 
4884
- var script$6 = defineComponent({
4885
- name: "ResizeImageUpload",
4886
- components: {
4887
- ImageInput: script$7,
4888
- },
4821
+ const _hoisted_1$6 = { class: "image-input-container" };
4822
+ const _hoisted_2$1 = { key: 0 };
4823
+
4824
+
4825
+ var script$6 = {
4826
+ __name: 'ResizeImageUpload',
4889
4827
  props: {
4890
- id: {
4891
- type: String,
4892
- },
4893
- required: {
4894
- type: Boolean,
4895
- },
4896
- placeholder: {
4897
- type: String,
4898
- },
4899
- dropPlaceholder: {
4900
- type: String,
4901
- },
4902
- label: {
4903
- type: String,
4904
- },
4905
- file: {
4906
- type: Object,
4907
- },
4908
- },
4909
- data() {
4910
- return {
4911
- rawImage: null,
4912
- resizing: false,
4913
- };
4914
- },
4828
+ id: String,
4829
+ required: Boolean,
4830
+ placeholder: String,
4831
+ dropPlaceholder: String,
4832
+ label: String,
4833
+ file: Object,
4834
+ },
4915
4835
  emits: ['loaded', 'error'],
4916
- methods: {
4917
- async onInput(file) {
4918
- try {
4919
- this.resizing = true;
4920
- const reduce = new imageBlobReduce();
4921
- const blob = await reduce.toBlob(file, { max: 1024 });
4922
- const newFile = new File([blob], file.name, { type: file.type });
4923
- this.$emit('loaded', newFile);
4924
- } catch (err) {
4925
- this.$emit('error');
4926
- } finally {
4927
- this.resizing = false;
4928
- }
4929
- },
4930
- },
4931
- });
4836
+ setup(__props, { emit: __emit }) {
4837
+
4932
4838
 
4933
- const _hoisted_1$6 = { class: "image-input-container" };
4934
- const _hoisted_2$1 = { key: 0 };
4935
4839
 
4936
- function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4937
- const _component_image_input = resolveComponent("image-input");
4840
+ const emit = __emit;
4841
+ const resizing = ref(false);
4842
+
4843
+ const onInput = async (file) => {
4844
+ try {
4845
+ resizing.value = true;
4846
+ const reduce = new imageBlobReduce();
4847
+ const blob = await reduce.toBlob(file, { max: 1024 });
4848
+ const newFile = new File([blob], file.name, { type: file.type });
4849
+ emit('loaded', newFile);
4850
+ } catch (err) {
4851
+ emit('error');
4852
+ } finally {
4853
+ resizing.value = false;
4854
+ }
4855
+ };
4938
4856
 
4857
+ return (_ctx, _cache) => {
4939
4858
  return (openBlock(), createElementBlock("div", _hoisted_1$6, [
4940
- createVNode(_component_image_input, {
4941
- id: _ctx.id,
4942
- name: _ctx.id,
4943
- required: _ctx.required,
4944
- placeholder: _ctx.placeholder,
4945
- "drop-placeholder": _ctx.dropPlaceholder,
4946
- label: _ctx.label,
4947
- onUpdate: _ctx.onInput
4948
- }, null, 8 /* PROPS */, ["id", "name", "required", "placeholder", "drop-placeholder", "label", "onUpdate"]),
4949
- (_ctx.resizing)
4859
+ createVNode(script$7, {
4860
+ id: __props.id,
4861
+ name: __props.id,
4862
+ required: __props.required,
4863
+ placeholder: __props.placeholder,
4864
+ "drop-placeholder": __props.dropPlaceholder,
4865
+ label: __props.label,
4866
+ onUpdate: onInput
4867
+ }, null, 8 /* PROPS */, ["id", "name", "required", "placeholder", "drop-placeholder", "label"]),
4868
+ (resizing.value)
4950
4869
  ? (openBlock(), createElementBlock("p", _hoisted_2$1, "Resizing..."))
4951
4870
  : createCommentVNode("v-if", true)
4952
4871
  ]))
4953
4872
  }
4873
+ }
4874
+
4875
+ };
4954
4876
 
4955
4877
  var css_248z$1 = "\nimage-input[data-v-3fb95754] {\n display: block;\n margin-bottom: 1rem;\n}\nimage-input label[data-v-3fb95754] {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: var(--font-weight-bold);\n font-size: var(--font-size-small);\n color: var(--color-image-input);\n}\nimage-input input[type=\"file\"][data-v-3fb95754] {\n display: block;\n width: 100%;\n padding: 0.5rem;\n border: 1px solid var(--color-image-input-border);\n border-radius: var(--border-radius--base);\n color: var(--color-image-input);\n background-color: var(--color-image-input-background);\n cursor: pointer;\n}\nimage-input input[type=\"file\"][data-v-3fb95754]:focus {\n outline: none;\n border-color: var(--color-image-input-border-focus);\n box-shadow: 0 0 0 3px var(--color-image-input-shadow);\n}\nimage-input input[type=\"file\"][data-v-3fb95754]:disabled {\n background-color: var(--color-input-disabled);\n cursor: not-allowed;\n}\n";
4956
4878
  styleInject(css_248z$1);
4957
4879
 
4958
- script$6.render = render$6;
4959
4880
  script$6.__scopeId = "data-v-3fb95754";
4960
4881
  script$6.__file = "src/Inputs/ResizeImageUpload/ResizeImageUpload.vue";
4961
4882
 
4962
- var script$5 = defineComponent({
4963
- name: "Selector",
4964
- props: {
4965
- id: {
4966
- type: String,
4967
- },
4968
- disabled: {
4969
- type: Boolean,
4970
- },
4971
- label: {
4972
- type: String,
4973
- },
4974
- initialValue: {
4975
- type: String,
4976
- },
4977
- options: {
4978
- type: Array,
4979
- },
4980
- },
4981
- data() {
4982
- return {
4983
- selected: '',
4984
- };
4985
- },
4986
- watch: {
4987
- initialValue: {
4988
- immediate: true,
4989
- handler: function (newSelectedValue) {
4990
- if (newSelectedValue !== "" && newSelectedValue !== undefined) {
4991
- this.selected = newSelectedValue;
4992
- }
4993
- },
4994
- },
4995
- options: {
4996
- immediate: true,
4997
- handler: function (newOptions) {
4998
- const enabledOptions = newOptions.filter((option) => !option.disabled);
4999
- if (enabledOptions.length === 1) {
5000
- this.selected = enabledOptions[0].value;
5001
- this.$emit('selected', this.selected);
5002
- }
5003
- },
5004
- },
5005
- },
5006
- emits: ['selected'],
5007
- methods: {
5008
- onChange() {
5009
- this.$emit('selected', this.selected);
5010
- },
5011
- },
5012
- });
5013
-
5014
4883
  const _hoisted_1$5 = { class: "selector-container" };
5015
4884
  const _hoisted_2 = ["for"];
5016
4885
  const _hoisted_3 = { class: "selector-relative-container" };
5017
4886
  const _hoisted_4 = ["id", "disabled"];
5018
4887
  const _hoisted_5 = ["value", "disabled"];
5019
4888
 
5020
- function render$5(_ctx, _cache, $props, $setup, $data, $options) {
4889
+
4890
+ var script$5 = {
4891
+ __name: 'Selector',
4892
+ props: {
4893
+ id: String,
4894
+ disabled: Boolean,
4895
+ label: String,
4896
+ initialValue: String,
4897
+ options: Array,
4898
+ },
4899
+ emits: ['selected'],
4900
+ setup(__props, { emit: __emit }) {
4901
+
4902
+ const props = __props;
4903
+
4904
+ const emit = __emit;
4905
+ const selected = ref('');
4906
+
4907
+ watch(() => props.initialValue, (newVal) => {
4908
+ if (newVal !== "" && newVal !== undefined) selected.value = newVal;
4909
+ }, { immediate: true });
4910
+
4911
+ watch(() => props.options, (newOptions) => {
4912
+ if (!newOptions) return;
4913
+ const enabledOptions = newOptions.filter((o) => !o.disabled);
4914
+ if (enabledOptions.length === 1) {
4915
+ selected.value = enabledOptions[0].value;
4916
+ emit('selected', selected.value);
4917
+ }
4918
+ }, { immediate: true });
4919
+
4920
+ const onChange = () => emit('selected', selected.value);
4921
+
4922
+ return (_ctx, _cache) => {
5021
4923
  return (openBlock(), createElementBlock("div", _hoisted_1$5, [
5022
4924
  createElementVNode("label", {
5023
4925
  class: "selector-label",
5024
- for: _ctx.id
5025
- }, toDisplayString(_ctx.label), 9 /* TEXT, PROPS */, _hoisted_2),
4926
+ for: __props.id
4927
+ }, toDisplayString(__props.label), 9 /* TEXT, PROPS */, _hoisted_2),
5026
4928
  createElementVNode("div", _hoisted_3, [
5027
4929
  withDirectives(createElementVNode("select", {
5028
4930
  class: "selector-field",
5029
- id: _ctx.id,
5030
- disabled: _ctx.disabled,
5031
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((_ctx.selected) = $event)),
5032
- onChange: _cache[1] || (_cache[1] = (...args) => (_ctx.onChange && _ctx.onChange(...args)))
4931
+ id: __props.id,
4932
+ disabled: __props.disabled,
4933
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((selected).value = $event)),
4934
+ onChange: onChange
5033
4935
  }, [
5034
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (option) => {
4936
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
5035
4937
  return (openBlock(), createElementBlock("option", {
5036
4938
  key: option.value,
5037
4939
  value: option.value,
@@ -5039,9 +4941,9 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
5039
4941
  }, toDisplayString(option.text), 9 /* TEXT, PROPS */, _hoisted_5))
5040
4942
  }), 128 /* KEYED_FRAGMENT */))
5041
4943
  ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_4), [
5042
- [vModelSelect, _ctx.selected]
4944
+ [vModelSelect, selected.value]
5043
4945
  ]),
5044
- _cache[2] || (_cache[2] = createElementVNode("div", { class: "selector-icon-container" }, [
4946
+ _cache[1] || (_cache[1] = createElementVNode("div", { class: "selector-icon-container" }, [
5045
4947
  createElementVNode("svg", {
5046
4948
  class: "selector-icon",
5047
4949
  xmlns: "http://www.w3.org/2000/svg",
@@ -5053,38 +4955,43 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
5053
4955
  ])
5054
4956
  ]))
5055
4957
  }
4958
+ }
4959
+
4960
+ };
5056
4961
 
5057
4962
  var css_248z = "\n.selector-container[data-v-008e1be2] {\n margin-bottom: 1rem;\n}\n.selector-label[data-v-008e1be2] {\n display: block;\n color: var(--color-selector-label);\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-bold);\n margin-bottom: 0.5rem;\n}\n.selector-relative-container[data-v-008e1be2] {\n position: relative;\n}\n.selector-field[data-v-008e1be2] {\n appearance: none;\n width: 100%;\n background-color: var(--color-selector-background);\n border: 1px solid var(--color-selector-border);\n color: var(--color-selector-text);\n padding: 0.75rem 1rem 0.75rem 0.75rem;\n padding-right: 2rem;\n border-radius: var(--border-radius--base);\n line-height: 1.25;\n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;\n}\n.selector-field[data-v-008e1be2]:focus {\n outline: none;\n background-color: var(--color-selector-background-focused);\n border-color: var(--color-selector-border-focused);\n}\n.selector-icon-container[data-v-008e1be2] {\n pointer-events: none;\n position: absolute;\n inset: 0 auto;\n right: 0;\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n color: var(--color-selector-icon-container);\n}\n.selector-icon[data-v-008e1be2] {\n fill: currentColor;\n height: 1rem;\n width: 1rem;\n}\n";
5058
4963
  styleInject(css_248z);
5059
4964
 
5060
- script$5.render = render$5;
5061
4965
  script$5.__scopeId = "data-v-008e1be2";
5062
4966
  script$5.__file = "src/Inputs/Selector/Selector.vue";
5063
4967
 
4968
+ const _hoisted_1$4 = ["width", "height", "stroke"];
4969
+
4970
+
5064
4971
  var script$4 = {
5065
- name: 'DropIcon',
4972
+ __name: 'DropIcon',
5066
4973
  props: {
5067
- size: {
5068
- type: [Number, String],
5069
- default: 24
5070
- },
5071
- color: {
5072
- type: String,
5073
- default: 'currentColor'
5074
- }
4974
+ size: {
4975
+ type: [Number, String],
4976
+ default: 24
4977
+ },
4978
+ color: {
4979
+ type: String,
4980
+ default: 'currentColor'
5075
4981
  }
5076
- };
4982
+ },
4983
+ setup(__props) {
5077
4984
 
5078
- const _hoisted_1$4 = ["width", "height", "stroke"];
5079
4985
 
5080
- function render$4(_ctx, _cache, $props, $setup, $data, $options) {
4986
+
4987
+ return (_ctx, _cache) => {
5081
4988
  return (openBlock(), createElementBlock("svg", {
5082
4989
  xmlns: "http://www.w3.org/2000/svg",
5083
- width: $props.size,
5084
- height: $props.size,
4990
+ width: __props.size,
4991
+ height: __props.size,
5085
4992
  viewBox: "0 0 24 24",
5086
4993
  fill: "none",
5087
- stroke: $props.color,
4994
+ stroke: __props.color,
5088
4995
  "stroke-width": "2",
5089
4996
  "stroke-linecap": "round",
5090
4997
  "stroke-linejoin": "round",
@@ -5094,34 +5001,39 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
5094
5001
  createElementVNode("path", { d: "M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97" }, null, -1 /* HOISTED */)
5095
5002
  ]), 8 /* PROPS */, _hoisted_1$4))
5096
5003
  }
5004
+ }
5005
+
5006
+ };
5097
5007
 
5098
- script$4.render = render$4;
5099
5008
  script$4.__file = "src/Icons/DropIcon/DropIcon.vue";
5100
5009
 
5010
+ const _hoisted_1$3 = ["width", "height", "stroke"];
5011
+
5012
+
5101
5013
  var script$3 = {
5102
- name: 'SkullIcon',
5014
+ __name: 'SkullIcon',
5103
5015
  props: {
5104
- size: {
5105
- type: [Number, String],
5106
- default: 24
5107
- },
5108
- color: {
5109
- type: String,
5110
- default: 'currentColor'
5111
- }
5016
+ size: {
5017
+ type: [Number, String],
5018
+ default: 24
5019
+ },
5020
+ color: {
5021
+ type: String,
5022
+ default: 'currentColor'
5112
5023
  }
5113
- };
5024
+ },
5025
+ setup(__props) {
5114
5026
 
5115
- const _hoisted_1$3 = ["width", "height", "stroke"];
5116
5027
 
5117
- function render$3(_ctx, _cache, $props, $setup, $data, $options) {
5028
+
5029
+ return (_ctx, _cache) => {
5118
5030
  return (openBlock(), createElementBlock("svg", {
5119
5031
  xmlns: "http://www.w3.org/2000/svg",
5120
- width: $props.size,
5121
- height: $props.size,
5032
+ width: __props.size,
5033
+ height: __props.size,
5122
5034
  viewBox: "0 0 24 24",
5123
5035
  fill: "none",
5124
- stroke: $props.color,
5036
+ stroke: __props.color,
5125
5037
  "stroke-width": "2",
5126
5038
  "stroke-linecap": "round",
5127
5039
  "stroke-linejoin": "round",
@@ -5141,34 +5053,39 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
5141
5053
  }, null, -1 /* HOISTED */)
5142
5054
  ]), 8 /* PROPS */, _hoisted_1$3))
5143
5055
  }
5056
+ }
5057
+
5058
+ };
5144
5059
 
5145
- script$3.render = render$3;
5146
5060
  script$3.__file = "src/Icons/SkullIcon/SkullIcon.vue";
5147
5061
 
5062
+ const _hoisted_1$2 = ["width", "height", "stroke"];
5063
+
5064
+
5148
5065
  var script$2 = {
5149
- name: 'CalendarIcon',
5066
+ __name: 'CalendarIcon',
5150
5067
  props: {
5151
- size: {
5152
- type: [Number, String],
5153
- default: 24
5154
- },
5155
- color: {
5156
- type: String,
5157
- default: 'currentColor'
5158
- }
5068
+ size: {
5069
+ type: [Number, String],
5070
+ default: 24
5071
+ },
5072
+ color: {
5073
+ type: String,
5074
+ default: 'currentColor'
5159
5075
  }
5160
- };
5076
+ },
5077
+ setup(__props) {
5161
5078
 
5162
- const _hoisted_1$2 = ["width", "height", "stroke"];
5163
5079
 
5164
- function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5080
+
5081
+ return (_ctx, _cache) => {
5165
5082
  return (openBlock(), createElementBlock("svg", {
5166
5083
  xmlns: "http://www.w3.org/2000/svg",
5167
- width: $props.size,
5168
- height: $props.size,
5084
+ width: __props.size,
5085
+ height: __props.size,
5169
5086
  viewBox: "0 0 24 24",
5170
5087
  fill: "none",
5171
- stroke: $props.color,
5088
+ stroke: __props.color,
5172
5089
  "stroke-width": "2",
5173
5090
  "stroke-linecap": "round",
5174
5091
  "stroke-linejoin": "round",
@@ -5186,34 +5103,39 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5186
5103
  createElementVNode("path", { d: "M3 10h18" }, null, -1 /* HOISTED */)
5187
5104
  ]), 8 /* PROPS */, _hoisted_1$2))
5188
5105
  }
5106
+ }
5107
+
5108
+ };
5189
5109
 
5190
- script$2.render = render$2;
5191
5110
  script$2.__file = "src/Icons/CalendarIcon/CalendarIcon.vue";
5192
5111
 
5112
+ const _hoisted_1$1 = ["width", "height", "stroke"];
5113
+
5114
+
5193
5115
  var script$1 = {
5194
- name: 'SaveIcon',
5116
+ __name: 'SaveIcon',
5195
5117
  props: {
5196
- size: {
5197
- type: [Number, String],
5198
- default: 24
5199
- },
5200
- color: {
5201
- type: String,
5202
- default: 'currentColor'
5203
- }
5118
+ size: {
5119
+ type: [Number, String],
5120
+ default: 24
5121
+ },
5122
+ color: {
5123
+ type: String,
5124
+ default: 'currentColor'
5204
5125
  }
5205
- };
5126
+ },
5127
+ setup(__props) {
5206
5128
 
5207
- const _hoisted_1$1 = ["width", "height", "stroke"];
5208
5129
 
5209
- function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5130
+
5131
+ return (_ctx, _cache) => {
5210
5132
  return (openBlock(), createElementBlock("svg", {
5211
5133
  xmlns: "http://www.w3.org/2000/svg",
5212
- width: $props.size,
5213
- height: $props.size,
5134
+ width: __props.size,
5135
+ height: __props.size,
5214
5136
  viewBox: "0 0 24 24",
5215
5137
  fill: "none",
5216
- stroke: $props.color,
5138
+ stroke: __props.color,
5217
5139
  "stroke-width": "2",
5218
5140
  "stroke-linecap": "round",
5219
5141
  "stroke-linejoin": "round",
@@ -5224,34 +5146,39 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5224
5146
  createElementVNode("path", { d: "M7 3v4a1 1 0 0 0 1 1h7" }, null, -1 /* HOISTED */)
5225
5147
  ]), 8 /* PROPS */, _hoisted_1$1))
5226
5148
  }
5149
+ }
5150
+
5151
+ };
5227
5152
 
5228
- script$1.render = render$1;
5229
5153
  script$1.__file = "src/Icons/SaveIcon/SaveIcon.vue";
5230
5154
 
5155
+ const _hoisted_1 = ["width", "height", "stroke"];
5156
+
5157
+
5231
5158
  var script = {
5232
- name: 'CreateIcon',
5159
+ __name: 'CreateIcon',
5233
5160
  props: {
5234
- size: {
5235
- type: [Number, String],
5236
- default: 24
5237
- },
5238
- color: {
5239
- type: String,
5240
- default: 'currentColor'
5241
- }
5161
+ size: {
5162
+ type: [Number, String],
5163
+ default: 24
5164
+ },
5165
+ color: {
5166
+ type: String,
5167
+ default: 'currentColor'
5242
5168
  }
5243
- };
5169
+ },
5170
+ setup(__props) {
5171
+
5244
5172
 
5245
- const _hoisted_1 = ["width", "height", "stroke"];
5246
5173
 
5247
- function render(_ctx, _cache, $props, $setup, $data, $options) {
5174
+ return (_ctx, _cache) => {
5248
5175
  return (openBlock(), createElementBlock("svg", {
5249
5176
  xmlns: "http://www.w3.org/2000/svg",
5250
- width: $props.size,
5251
- height: $props.size,
5177
+ width: __props.size,
5178
+ height: __props.size,
5252
5179
  viewBox: "0 0 24 24",
5253
5180
  fill: "none",
5254
- stroke: $props.color,
5181
+ stroke: __props.color,
5255
5182
  "stroke-width": "2",
5256
5183
  "stroke-linecap": "round",
5257
5184
  "stroke-linejoin": "round",
@@ -5272,9 +5199,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
5272
5199
  }, null, -1 /* HOISTED */)
5273
5200
  ]), 8 /* PROPS */, _hoisted_1))
5274
5201
  }
5202
+ }
5203
+
5204
+ };
5275
5205
 
5276
- script.render = render;
5277
5206
  script.__file = "src/Icons/CreateIcon/CreateIcon.vue";
5278
5207
 
5279
- export { script$j as Badge, script$2 as CalendarIcon, script$x as Card, script$w as CardGrid, script$9 as CheckBoxInput, script$v as Container, script as CreateIcon, script$b as DangerButton, script$4 as DropIcon, script$7 as ImageInput, script$A as Loading, script$h as Modal, script$n as Navbar, script$8 as NumberInput, script$k as Pagination, script$f as RangeView, script$l as RegularButton, script$e as ResetButton, script$6 as ResizeImageUpload, script$1 as SaveIcon, script$c as SecondaryButton, script$B as SectionTitle, script$5 as Selector, script$3 as SkullIcon, script$g as Spinner, script$m as StyledTable, script$d as SubmitButton, script$i as Temperature, script$a as TextInput };
5208
+ export { script$j as Badge, script$2 as CalendarIcon, script$x as Card, script$w as CardGrid, script$9 as CheckBoxInput, script$v as Container, script as CreateIcon, script$g as DangerButton, script$4 as DropIcon, script$7 as ImageInput, script$A as Loading, script$f as Modal, script$n as Navbar, script$8 as NumberInput, script$k as Pagination, script$d as RangeView, script$l as RegularButton, script$c as ResetButton, script$6 as ResizeImageUpload, script$1 as SaveIcon, script$h as SecondaryButton, script$B as SectionTitle, script$5 as Selector, script$3 as SkullIcon, script$e as Spinner, script$m as StyledTable, script$b as SubmitButton, script$i as Temperature, script$a as TextInput };
5280
5209
  //# sourceMappingURL=index.esm.js.map