@namelivia/vue-components 4.5.1 → 4.7.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 (48) hide show
  1. package/dist/index.esm.js +1074 -1076
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.js +1103 -1104
  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/InfiniteScroll/InfiniteScroll.cy.js +7 -0
  23. package/src/InfiniteScroll/InfiniteScroll.stories.js +38 -0
  24. package/src/InfiniteScroll/InfiniteScroll.vue +59 -0
  25. package/src/Inputs/CheckBoxInput/CheckBoxInput.vue +9 -27
  26. package/src/Inputs/ImageInput/ImageInput.vue +10 -30
  27. package/src/Inputs/NumberInput/NumberInput.vue +12 -37
  28. package/src/Inputs/ResizeImageUpload/ResizeImageUpload.vue +28 -50
  29. package/src/Inputs/Selector/Selector.vue +27 -52
  30. package/src/Inputs/TextInput/TextInput.vue +10 -31
  31. package/src/Loading/Loading.vue +3 -7
  32. package/src/Modal/Modal.vue +9 -16
  33. package/src/Navbar/MobileMenuButton.vue +5 -17
  34. package/src/Navbar/MobileNavigationLink.vue +9 -27
  35. package/src/Navbar/MobileNavigationLinks.vue +6 -19
  36. package/src/Navbar/Navbar.vue +22 -53
  37. package/src/Navbar/NavbarTitle.vue +7 -19
  38. package/src/Navbar/NavigationLink.vue +9 -27
  39. package/src/Navbar/NavigationLinks.vue +5 -15
  40. package/src/Navbar/RightContent.vue +9 -24
  41. package/src/Pagination/Pagination.vue +8 -14
  42. package/src/RangeView/RangeView.vue +3 -7
  43. package/src/SectionTitle/SectionTitle.vue +5 -9
  44. package/src/Spinner/Spinner.vue +2 -5
  45. package/src/StyledTable/StyledTable.vue +2 -5
  46. package/src/Temperature/Temperature.vue +11 -22
  47. package/src/index.js +1 -0
  48. package/styles/index.css +2 -0
package/dist/index.esm.js CHANGED
@@ -1,20 +1,26 @@
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, onBeforeUnmount } from 'vue';
2
2
 
3
- var script$B = defineComponent({
4
- name: 'SectionTitle',
3
+ const _hoisted_1$y = { class: "section-title" };
4
+
5
+
6
+ var script$C = {
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) {
15
+
12
16
 
13
- const _hoisted_1$x = { class: "section-title" };
14
17
 
15
- function render$B(_ctx, _cache, $props, $setup, $data, $options) {
16
- return (openBlock(), createElementBlock("h1", _hoisted_1$x, toDisplayString(_ctx.text), 1 /* TEXT */))
18
+ return (_ctx, _cache) => {
19
+ return (openBlock(), createElementBlock("h1", _hoisted_1$y, toDisplayString(__props.text), 1 /* TEXT */))
17
20
  }
21
+ }
22
+
23
+ };
18
24
 
19
25
  function styleInject(css, ref) {
20
26
  if ( ref === void 0 ) ref = {};
@@ -43,135 +49,143 @@ function styleInject(css, ref) {
43
49
  }
44
50
  }
45
51
 
46
- 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
- styleInject(css_248z$w);
52
+ var css_248z$x = "\n.section-title[data-v-0375af86] {\n text-align: center;\n font-size: var(--font-size-xlarge);\n line-height: 1.5;\n}\n";
53
+ styleInject(css_248z$x);
48
54
 
49
- script$B.render = render$B;
50
- script$B.__scopeId = "data-v-0375af86";
51
- script$B.__file = "src/SectionTitle/SectionTitle.vue";
55
+ script$C.__scopeId = "data-v-0375af86";
56
+ script$C.__file = "src/SectionTitle/SectionTitle.vue";
52
57
 
53
- var script$A = defineComponent({
54
- name: "Loading",
58
+ var script$B = {
59
+ __name: 'Loading',
55
60
  props: {
56
- text: String,
57
- },
58
- });
61
+ text: String,
62
+ },
63
+ setup(__props) {
64
+
59
65
 
60
- function render$A(_ctx, _cache, $props, $setup, $data, $options) {
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
+ }
65
73
 
66
- 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
- styleInject(css_248z$v);
74
+ };
75
+
76
+ var css_248z$w = "\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";
77
+ styleInject(css_248z$w);
68
78
 
69
- script$A.render = render$A;
70
- script$A.__scopeId = "data-v-7a9a3040";
71
- script$A.__file = "src/Loading/Loading.vue";
79
+ script$B.__scopeId = "data-v-7a9a3040";
80
+ script$B.__file = "src/Loading/Loading.vue";
72
81
 
73
- var script$z = defineComponent({
74
- name: "CardImage",
82
+ const _hoisted_1$x = ["src", "alt"];
83
+
84
+
85
+ var script$A = {
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"
102
- }, null, 8 /* PROPS */, _hoisted_1$w))
107
+ src: __props.src,
108
+ alt: __props.alt,
109
+ ref_key: "image",
110
+ ref: image
111
+ }, null, 8 /* PROPS */, _hoisted_1$x))
112
+ }
103
113
  }
104
114
 
105
- var css_248z$u = "\nimg[data-v-5fa6a3f6] {\n width: 100%;\n}\n";
106
- styleInject(css_248z$u);
115
+ };
107
116
 
108
- script$z.render = render$z;
109
- script$z.__scopeId = "data-v-5fa6a3f6";
110
- script$z.__file = "src/Card/CardImage.vue";
117
+ var css_248z$v = "\nimg[data-v-5fa6a3f6] {\n width: 100%;\n}\n";
118
+ styleInject(css_248z$v);
111
119
 
112
- var script$y = defineComponent({
113
- name: "CardBody",
114
- props: {
115
- title: String,
116
- },
117
- });
120
+ script$A.__scopeId = "data-v-5fa6a3f6";
121
+ script$A.__file = "src/Card/CardImage.vue";
118
122
 
119
- const _hoisted_1$v = { class: "card-body" };
123
+ const _hoisted_1$w = { 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) {
124
- return (openBlock(), createElementBlock("div", _hoisted_1$v, [
125
- createElementVNode("div", _hoisted_2$g, toDisplayString(_ctx.title), 1 /* TEXT */),
127
+
128
+ var script$z = {
129
+ __name: 'CardBody',
130
+ props: {
131
+ title: String,
132
+ },
133
+ setup(__props) {
134
+
135
+
136
+
137
+ return (_ctx, _cache) => {
138
+ return (openBlock(), createElementBlock("div", _hoisted_1$w, [
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
+ }
131
146
 
132
- 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
- styleInject(css_248z$t);
147
+ };
134
148
 
135
- script$y.render = render$y;
136
- script$y.__scopeId = "data-v-c140cd30";
137
- script$y.__file = "src/Card/CardBody.vue";
149
+ var css_248z$u = "\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";
150
+ styleInject(css_248z$u);
138
151
 
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
- });
152
+ script$z.__scopeId = "data-v-c140cd30";
153
+ script$z.__file = "src/Card/CardBody.vue";
155
154
 
156
- const _hoisted_1$u = {
155
+ const _hoisted_1$v = {
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)
167
- ? (openBlock(), createElementBlock("div", _hoisted_1$u, [
162
+ var script$y = {
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)
181
+ ? (openBlock(), createElementBlock("div", _hoisted_1$v, [
168
182
  createElementVNode("div", _hoisted_2$f, [
169
- createVNode(_component_card_image, {
170
- src: _ctx.image,
171
- alt: _ctx.title,
183
+ createVNode(script$A, {
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$z, { 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
+ }
184
199
 
185
- 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
- styleInject(css_248z$s);
200
+ };
201
+
202
+ var css_248z$t = "\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";
203
+ styleInject(css_248z$t);
187
204
 
188
- script$x.render = render$x;
189
- script$x.__scopeId = "data-v-da3858b4";
190
- script$x.__file = "src/Card/Card.vue";
205
+ script$y.__scopeId = "data-v-da3858b4";
206
+ script$y.__file = "src/Card/Card.vue";
191
207
 
192
- var script$w = defineComponent({
193
- name: "CardGrid"
194
- });
208
+ const _hoisted_1$u = { class: "card-grid" };
195
209
 
196
- const _hoisted_1$t = { class: "card-grid" };
197
210
 
198
- function render$w(_ctx, _cache, $props, $setup, $data, $options) {
199
- return (openBlock(), createElementBlock("div", _hoisted_1$t, [
211
+ var script$x = {
212
+ __name: 'CardGrid',
213
+ setup(__props) {
214
+
215
+ // No logic needed
216
+
217
+ return (_ctx, _cache) => {
218
+ return (openBlock(), createElementBlock("div", _hoisted_1$u, [
200
219
  renderSlot(_ctx.$slots, "default")
201
220
  ]))
202
221
  }
222
+ }
203
223
 
204
- 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
- styleInject(css_248z$r);
224
+ };
225
+
226
+ var css_248z$s = "\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";
227
+ styleInject(css_248z$s);
206
228
 
207
- script$w.render = render$w;
208
- script$w.__scopeId = "data-v-ad060034";
209
- script$w.__file = "src/CardGrid/CardGrid.vue";
229
+ script$x.__scopeId = "data-v-ad060034";
230
+ script$x.__file = "src/CardGrid/CardGrid.vue";
231
+
232
+ const _hoisted_1$t = { class: "container" };
210
233
 
211
- var script$v = defineComponent({
212
- name: "Container"
213
- });
214
234
 
215
- const _hoisted_1$s = { class: "container" };
235
+ var script$w = {
236
+ __name: 'Container',
237
+ setup(__props) {
216
238
 
217
- function render$v(_ctx, _cache, $props, $setup, $data, $options) {
218
- return (openBlock(), createElementBlock("div", _hoisted_1$s, [
239
+ // No logic needed
240
+
241
+ return (_ctx, _cache) => {
242
+ return (openBlock(), createElementBlock("div", _hoisted_1$t, [
219
243
  renderSlot(_ctx.$slots, "default")
220
244
  ]))
221
245
  }
246
+ }
222
247
 
223
- var css_248z$q = "\n.container[data-v-7cccf06a] {\n max-width: var(--container-max-width);\n margin: var(--container-margin);\n}\n";
224
- styleInject(css_248z$q);
248
+ };
249
+
250
+ var css_248z$r = "\n.container[data-v-7cccf06a] {\n max-width: var(--container-max-width);\n margin: var(--container-margin);\n}\n";
251
+ styleInject(css_248z$r);
252
+
253
+ script$w.__scopeId = "data-v-7cccf06a";
254
+ script$w.__file = "src/Container/Container.vue";
225
255
 
226
- script$v.render = render$v;
227
- script$v.__scopeId = "data-v-7cccf06a";
228
- script$v.__file = "src/Container/Container.vue";
256
+ const _hoisted_1$s = ["href"];
229
257
 
230
- var script$u = defineComponent({
231
- name: "MobileNavigationLink",
258
+ var script$v = {
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$s))
277
+ }
264
278
  }
265
279
 
266
- 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
- styleInject(css_248z$p);
280
+ };
268
281
 
269
- script$u.render = render$u;
270
- script$u.__scopeId = "data-v-3e279546";
271
- script$u.__file = "src/Navbar/MobileNavigationLink.vue";
282
+ var css_248z$q = "\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";
283
+ styleInject(css_248z$q);
272
284
 
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
- });
285
+ script$v.__scopeId = "data-v-3e279546";
286
+ script$v.__file = "src/Navbar/MobileNavigationLink.vue";
288
287
 
289
- const _hoisted_1$q = {
288
+ const _hoisted_1$r = {
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$u = {
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)
308
- ? (openBlock(), createElementBlock("div", _hoisted_1$q, [
314
+ (__props.open)
315
+ ? (openBlock(), createElementBlock("div", _hoisted_1$r, [
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$v, {
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
+ }
325
333
 
326
- 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
- styleInject(css_248z$o);
334
+ };
335
+
336
+ var css_248z$p = "\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";
337
+ styleInject(css_248z$p);
338
+
339
+ script$u.__scopeId = "data-v-eb1296c6";
340
+ script$u.__file = "src/Navbar/MobileNavigationLinks.vue";
328
341
 
329
- script$t.render = render$t;
330
- script$t.__scopeId = "data-v-eb1296c6";
331
- script$t.__file = "src/Navbar/MobileNavigationLinks.vue";
342
+ const _hoisted_1$q = ["href"];
332
343
 
333
- var script$s = defineComponent({
334
- name: "NavigationLink",
344
+ var script$t = {
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$q))
363
+ }
367
364
  }
368
365
 
369
- 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
- styleInject(css_248z$n);
366
+ };
371
367
 
372
- script$s.render = render$s;
373
- script$s.__scopeId = "data-v-4989b384";
374
- script$s.__file = "src/Navbar/NavigationLink.vue";
368
+ var css_248z$o = "\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";
369
+ styleInject(css_248z$o);
375
370
 
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
- });
371
+ script$t.__scopeId = "data-v-4989b384";
372
+ script$t.__file = "src/Navbar/NavigationLink.vue";
387
373
 
388
- const _hoisted_1$o = { class: "links-container" };
374
+ const _hoisted_1$p = { 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$s = {
378
+ __name: 'NavigationLinks',
379
+ props: {
380
+ links: Array,
381
+ },
382
+ setup(__props) {
383
+
384
+
393
385
 
394
- return (openBlock(), createElementBlock("div", _hoisted_1$o, [
386
+ return (_ctx, _cache) => {
387
+ return (openBlock(), createElementBlock("div", _hoisted_1$p, [
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$t, {
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
+ }
407
401
 
408
- 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
- styleInject(css_248z$m);
402
+ };
410
403
 
411
- script$r.render = render$r;
412
- script$r.__scopeId = "data-v-294f43c2";
413
- script$r.__file = "src/Navbar/NavigationLinks.vue";
404
+ var css_248z$n = "\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";
405
+ styleInject(css_248z$n);
414
406
 
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
- });
407
+ script$s.__scopeId = "data-v-294f43c2";
408
+ script$s.__file = "src/Navbar/NavigationLinks.vue";
432
409
 
433
- const _hoisted_1$n = ["href"];
410
+ const _hoisted_1$o = ["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$r = {
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
- ], 8 /* PROPS */, _hoisted_1$n))
442
+ ], 8 /* PROPS */, _hoisted_1$o))
443
+ }
453
444
  }
454
445
 
455
- 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
- styleInject(css_248z$l);
446
+ };
457
447
 
458
- script$q.render = render$q;
459
- script$q.__scopeId = "data-v-661ef87c";
460
- script$q.__file = "src/Navbar/NavbarTitle.vue";
448
+ var css_248z$m = "\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";
449
+ styleInject(css_248z$m);
461
450
 
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
- });
451
+ script$r.__scopeId = "data-v-661ef87c";
452
+ script$r.__file = "src/Navbar/NavbarTitle.vue";
484
453
 
485
- const _hoisted_1$m = { class: "action-container" };
454
+ const _hoisted_1$n = { class: "action-container" };
486
455
  const _hoisted_2$b = ["src", "alt"];
487
456
 
488
- function render$p(_ctx, _cache, $props, $setup, $data, $options) {
489
- return (openBlock(), createElementBlock("div", _hoisted_1$m, [
457
+ var script$q = {
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) => {
471
+ return (openBlock(), createElementBlock("div", _hoisted_1$n, [
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
+ }
497
480
 
498
- 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
- styleInject(css_248z$k);
481
+ };
500
482
 
501
- script$p.render = render$p;
502
- script$p.__scopeId = "data-v-07675a13";
503
- script$p.__file = "src/Navbar/RightContent.vue";
483
+ var css_248z$l = "\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";
484
+ styleInject(css_248z$l);
504
485
 
505
- var script$o = defineComponent({
506
- name: "MobileMenuButton",
486
+ script$q.__scopeId = "data-v-07675a13";
487
+ script$q.__file = "src/Navbar/RightContent.vue";
488
+
489
+ var script$p = {
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,383 +520,428 @@ function render$o(_ctx, _cache, $props, $setup, $data, $options) {
540
520
  ], -1 /* HOISTED */)
541
521
  ])))
542
522
  }
523
+ }
543
524
 
544
- 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
- styleInject(css_248z$j);
525
+ };
546
526
 
547
- script$o.render = render$o;
548
- script$o.__scopeId = "data-v-397545ee";
549
- script$o.__file = "src/Navbar/MobileMenuButton.vue";
550
-
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
- });
527
+ var css_248z$k = "\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";
528
+ styleInject(css_248z$k);
597
529
 
598
- const _hoisted_1$l = { class: "navbar" };
530
+ script$p.__scopeId = "data-v-397545ee";
531
+ script$p.__file = "src/Navbar/MobileMenuButton.vue";
532
+
533
+ const _hoisted_1$m = { 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
 
611
- return (openBlock(), createElementBlock("nav", _hoisted_1$l, [
540
+ var script$o = {
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) => {
562
+ return (openBlock(), createElementBlock("nav", _hoisted_1$m, [
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$p, {
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$r, {
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$s, { 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$q, {
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$u, {
589
+ links: __props.links,
590
+ open: mobileMenuOpen.value
640
591
  }, null, 8 /* PROPS */, ["links", "open"])
641
592
  ]))
642
593
  }
594
+ }
643
595
 
644
- 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
- styleInject(css_248z$i);
596
+ };
646
597
 
647
- script$n.render = render$n;
648
- script$n.__scopeId = "data-v-1b5caf34";
649
- script$n.__file = "src/Navbar/Navbar.vue";
598
+ var css_248z$j = "\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";
599
+ styleInject(css_248z$j);
650
600
 
651
- var script$m = defineComponent({
652
- name: "StyledTable",
653
- });
601
+ script$o.__scopeId = "data-v-1b5caf34";
602
+ script$o.__file = "src/Navbar/Navbar.vue";
654
603
 
655
- const _hoisted_1$k = { class: "styled-table" };
604
+ const _hoisted_1$l = { class: "styled-table" };
656
605
 
657
- function render$m(_ctx, _cache, $props, $setup, $data, $options) {
658
- return (openBlock(), createElementBlock("table", _hoisted_1$k, [
606
+
607
+ var script$n = {
608
+ __name: 'StyledTable',
609
+ setup(__props) {
610
+
611
+ // No logic needed
612
+
613
+ return (_ctx, _cache) => {
614
+ return (openBlock(), createElementBlock("table", _hoisted_1$l, [
659
615
  renderSlot(_ctx.$slots, "default")
660
616
  ]))
661
617
  }
618
+ }
662
619
 
663
- var css_248z$h = "\n.styled-table[data-v-8e6b2044] {\n width: 100%;\n border-collapse: collapse;\n}\n";
664
- styleInject(css_248z$h);
620
+ };
621
+
622
+ var css_248z$i = "\n.styled-table[data-v-8e6b2044] {\n width: 100%;\n border-collapse: collapse;\n}\n";
623
+ styleInject(css_248z$i);
624
+
625
+ script$n.__scopeId = "data-v-8e6b2044";
626
+ script$n.__file = "src/StyledTable/StyledTable.vue";
665
627
 
666
- script$m.render = render$m;
667
- script$m.__scopeId = "data-v-8e6b2044";
668
- script$m.__file = "src/StyledTable/StyledTable.vue";
628
+ const _hoisted_1$k = ["disabled"];
669
629
 
670
- var script$l = defineComponent({
671
- name: "RegularButton",
630
+
631
+ var script$m = {
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$k))
668
+ }
707
669
  }
708
670
 
709
- 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
- styleInject(css_248z$g);
671
+ };
711
672
 
712
- script$l.render = render$l;
713
- script$l.__scopeId = "data-v-7c962c54";
714
- script$l.__file = "src/Buttons/RegularButton/RegularButton.vue";
673
+ var css_248z$h = "\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";
674
+ styleInject(css_248z$h);
715
675
 
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
- });
676
+ script$m.__scopeId = "data-v-7c962c54";
677
+ script$m.__file = "src/Buttons/RegularButton/RegularButton.vue";
729
678
 
730
- const _hoisted_1$i = { class: "pagination-container" };
679
+ const _hoisted_1$j = { 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
 
737
- return (openBlock(), createElementBlock("div", _hoisted_1$i, [
738
- (_ctx.showPrevious)
684
+ var script$l = {
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) => {
698
+ return (openBlock(), createElementBlock("div", _hoisted_1$j, [
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$m, { 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$m, { text: __props.nextLabel }, null, 8 /* PROPS */, ["text"])
748
709
  ], 8 /* PROPS */, _hoisted_3$7)
749
710
  ]))
750
711
  }
712
+ }
751
713
 
752
- 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
- styleInject(css_248z$f);
714
+ };
715
+
716
+ var css_248z$g = "\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";
717
+ styleInject(css_248z$g);
754
718
 
755
- script$k.render = render$k;
756
- script$k.__scopeId = "data-v-265c87a6";
757
- script$k.__file = "src/Pagination/Pagination.vue";
719
+ script$l.__scopeId = "data-v-265c87a6";
720
+ script$l.__file = "src/Pagination/Pagination.vue";
758
721
 
759
- var script$j = defineComponent({
760
- name: "Badge",
722
+ const _hoisted_1$i = { class: "badge" };
723
+
724
+
725
+ var script$k = {
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$i, toDisplayString(__props.text), 1 /* TEXT */))
736
+ }
770
737
  }
771
738
 
772
- 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
- styleInject(css_248z$e);
739
+ };
774
740
 
775
- script$j.render = render$j;
776
- script$j.__scopeId = "data-v-187659a4";
777
- script$j.__file = "src/Badge/Badge.vue";
741
+ var css_248z$f = "\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";
742
+ styleInject(css_248z$f);
778
743
 
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
- });
744
+ script$k.__scopeId = "data-v-187659a4";
745
+ script$k.__file = "src/Badge/Badge.vue";
799
746
 
800
- const _hoisted_1$g = { class: "wrapper" };
747
+ const _hoisted_1$h = { class: "wrapper" };
801
748
  const _hoisted_2$8 = { class: "title" };
802
749
  const _hoisted_3$6 = { class: "avg" };
803
750
  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) {
808
- 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 */),
754
+ var script$j = {
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) => {
770
+ return (openBlock(), createElementBlock("div", _hoisted_1$h, [
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
+ };
783
+
784
+ var css_248z$e = "\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";
785
+ styleInject(css_248z$e);
786
+
787
+ script$j.__scopeId = "data-v-4250e6d0";
788
+ script$j.__file = "src/Temperature/Temperature.vue";
789
+
790
+ var script$i = {
791
+ __name: 'SecondaryButton',
792
+ props: {
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
+ };
818
811
 
819
- 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";
812
+ var css_248z$d = "\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";
820
813
  styleInject(css_248z$d);
821
814
 
822
- script$i.render = render$i;
823
- script$i.__scopeId = "data-v-4250e6d0";
824
- script$i.__file = "src/Temperature/Temperature.vue";
815
+ script$i.__scopeId = "data-v-5bb3ed46";
816
+ script$i.__file = "src/Buttons/SecondaryButton/SecondaryButton.vue";
825
817
 
826
- var script$h = defineComponent({
827
- name: "Modal",
828
- emits: ['cancel', 'confirm'],
818
+ var script$h = {
819
+ __name: 'DangerButton',
829
820
  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
- });
821
+ text: String,
822
+ },
823
+ emits: ['click'],
824
+ setup(__props, { emit: __emit }) {
841
825
 
842
- const _hoisted_1$f = {
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$c = "\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$c);
842
+
843
+ script$h.__scopeId = "data-v-5e080598";
844
+ script$h.__file = "src/Buttons/DangerButton/DangerButton.vue";
845
+
846
+ const _hoisted_1$g = {
843
847
  key: 0,
844
848
  class: "modal-overlay"
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
- ? (openBlock(), createElementBlock("div", _hoisted_1$f, [
853
+ var script$g = {
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)
868
+ ? (openBlock(), createElementBlock("div", _hoisted_1$g, [
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$i, {
872
+ onClick: onCancel,
858
873
  text: "No"
859
- }, null, 8 /* PROPS */, ["onClick"]),
860
- createVNode(_component_danger_button, {
874
+ }),
875
+ createVNode(script$h, {
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$b = "\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$b);
876
890
 
877
- var script$g = defineComponent({
878
- name: "Spinner",
879
- });
891
+ script$g.__scopeId = "data-v-11d137c2";
892
+ script$g.__file = "src/Modal/Modal.vue";
880
893
 
881
- const _hoisted_1$e = {
894
+ const _hoisted_1$f = {
882
895
  class: "spinner",
883
896
  role: "status"
884
897
  };
885
898
 
886
- function render$g(_ctx, _cache, $props, $setup, $data, $options) {
887
- return (openBlock(), createElementBlock("div", _hoisted_1$e, _cache[0] || (_cache[0] = [
899
+
900
+ var script$f = {
901
+ __name: 'Spinner',
902
+ setup(__props) {
903
+
904
+ // No logic needed
905
+
906
+ return (_ctx, _cache) => {
907
+ return (openBlock(), createElementBlock("div", _hoisted_1$f, _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$a = "\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$a);
898
917
 
899
- var script$f = defineComponent({
900
- name: "RangeView",
901
- props: {
902
- ranges: Array,
903
- },
904
- });
918
+ script$f.__scopeId = "data-v-3d456f9a";
919
+ script$f.__file = "src/Spinner/Spinner.vue";
905
920
 
906
- const _hoisted_1$d = { class: "ranges-editor" };
921
+ const _hoisted_1$e = { 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) {
912
- return (openBlock(), createElementBlock("div", _hoisted_1$d, [
913
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.ranges, (range, index) => {
926
+
927
+ var script$e = {
928
+ __name: 'RangeView',
929
+ props: {
930
+ ranges: Array,
931
+ },
932
+ setup(__props) {
933
+
934
+
935
+
936
+ return (_ctx, _cache) => {
937
+ return (openBlock(), createElementBlock("div", _hoisted_1$e, [
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,367 +949,279 @@ 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$9 = "\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$9);
934
958
 
935
- var script$e = defineComponent({
936
- name: "ResetButton",
937
- props: {
938
- text: String,
939
- },
940
- });
959
+ script$e.__scopeId = "data-v-3e589c2c";
960
+ script$e.__file = "src/RangeView/RangeView.vue";
941
961
 
942
- const _hoisted_1$c = {
962
+ const _hoisted_1$d = {
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$d = {
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))
976
+
977
+ return (_ctx, _cache) => {
978
+ return (openBlock(), createElementBlock("button", _hoisted_1$d, toDisplayString(__props.text), 1 /* TEXT */))
979
+ }
978
980
  }
979
981
 
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";
982
+ };
983
+
984
+ var css_248z$8 = "\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";
981
985
  styleInject(css_248z$8);
982
986
 
983
- script$d.render = render$d;
984
- script$d.__scopeId = "data-v-f7f11890";
985
- script$d.__file = "src/Buttons/SubmitButton/SubmitButton.vue";
987
+ script$d.__scopeId = "data-v-70384d7c";
988
+ script$d.__file = "src/Buttons/ResetButton/ResetButton.vue";
986
989
 
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
- });
990
+ const _hoisted_1$c = ["disabled"];
999
991
 
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
- }
1006
992
 
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);
993
+ var script$c = {
994
+ __name: 'SubmitButton',
995
+ props: {
996
+ text: String,
997
+ disabled: Boolean,
998
+ },
999
+ setup(__props) {
1009
1000
 
1010
- script$c.render = render$c;
1011
- script$c.__scopeId = "data-v-5bb3ed46";
1012
- script$c.__file = "src/Buttons/SecondaryButton/SecondaryButton.vue";
1013
1001
 
1014
- var script$b = defineComponent({
1015
- name: "DangerButton",
1016
- props: {
1017
- text: String,
1018
- },
1019
- emits: ['click'],
1020
- methods: {
1021
- onClick(evt) {
1022
- this.$emit('click', evt);
1023
- },
1024
- },
1025
- });
1026
1002
 
1027
- function render$b(_ctx, _cache, $props, $setup, $data, $options) {
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$c))
1009
+ }
1032
1010
  }
1033
1011
 
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";
1035
- styleInject(css_248z$6);
1012
+ };
1036
1013
 
1037
- script$b.render = render$b;
1038
- script$b.__scopeId = "data-v-5e080598";
1039
- script$b.__file = "src/Buttons/DangerButton/DangerButton.vue";
1014
+ var css_248z$7 = "\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";
1015
+ styleInject(css_248z$7);
1040
1016
 
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$c.__scopeId = "data-v-f7f11890";
1018
+ script$c.__file = "src/Buttons/SubmitButton/SubmitButton.vue";
1070
1019
 
1071
- const _hoisted_1$a = { class: "text-input-container" };
1020
+ const _hoisted_1$b = { 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) {
1076
- return (openBlock(), createElementBlock("div", _hoisted_1$a, [
1024
+
1025
+ var script$b = {
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) => {
1043
+ return (openBlock(), createElementBlock("div", _hoisted_1$b, [
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
+ }
1094
1062
 
1095
- 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
- styleInject(css_248z$5);
1063
+ };
1097
1064
 
1098
- script$a.render = render$a;
1099
- script$a.__scopeId = "data-v-6df3547e";
1100
- script$a.__file = "src/Inputs/TextInput/TextInput.vue";
1065
+ var css_248z$6 = "\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";
1066
+ styleInject(css_248z$6);
1101
1067
 
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
- });
1068
+ script$b.__scopeId = "data-v-6df3547e";
1069
+ script$b.__file = "src/Inputs/TextInput/TextInput.vue";
1128
1070
 
1129
- const _hoisted_1$9 = { class: "checkbox-container" };
1071
+ const _hoisted_1$a = { 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) {
1134
- return (openBlock(), createElementBlock("div", _hoisted_1$9, [
1075
+
1076
+ var script$a = {
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) => {
1093
+ return (openBlock(), createElementBlock("div", _hoisted_1$a, [
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
+ }
1150
1110
 
1151
- 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
- styleInject(css_248z$4);
1111
+ };
1153
1112
 
1154
- script$9.render = render$9;
1155
- script$9.__scopeId = "data-v-4612e592";
1156
- script$9.__file = "src/Inputs/CheckBoxInput/CheckBoxInput.vue";
1113
+ var css_248z$5 = "\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";
1114
+ styleInject(css_248z$5);
1157
1115
 
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
- });
1116
+ script$a.__scopeId = "data-v-4612e592";
1117
+ script$a.__file = "src/Inputs/CheckBoxInput/CheckBoxInput.vue";
1193
1118
 
1194
- const _hoisted_1$8 = { class: "number-input-container" };
1119
+ const _hoisted_1$9 = { 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) {
1199
- return (openBlock(), createElementBlock("div", _hoisted_1$8, [
1123
+
1124
+ var script$9 = {
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) => {
1144
+ return (openBlock(), createElementBlock("div", _hoisted_1$9, [
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
+ }
1219
1165
 
1220
- 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
- styleInject(css_248z$3);
1166
+ };
1222
1167
 
1223
- script$8.render = render$8;
1224
- script$8.__scopeId = "data-v-26abc846";
1225
- script$8.__file = "src/Inputs/NumberInput/NumberInput.vue";
1168
+ var css_248z$4 = "\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";
1169
+ styleInject(css_248z$4);
1226
1170
 
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
- });
1171
+ script$9.__scopeId = "data-v-26abc846";
1172
+ script$9.__file = "src/Inputs/NumberInput/NumberInput.vue";
1256
1173
 
1257
- const _hoisted_1$7 = { class: "image-input-container" };
1174
+ const _hoisted_1$8 = { 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) {
1262
- return (openBlock(), createElementBlock("div", _hoisted_1$7, [
1178
+
1179
+ var script$8 = {
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) => {
1197
+ return (openBlock(), createElementBlock("div", _hoisted_1$8, [
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
+ }
1281
1217
 
1282
- 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
- styleInject(css_248z$2);
1218
+ };
1219
+
1220
+ var css_248z$3 = "\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";
1221
+ styleInject(css_248z$3);
1284
1222
 
1285
- script$7.render = render$7;
1286
- script$7.__scopeId = "data-v-d90b5f3c";
1287
- script$7.__file = "src/Inputs/ImageInput/ImageInput.vue";
1223
+ script$8.__scopeId = "data-v-d90b5f3c";
1224
+ script$8.__file = "src/Inputs/ImageInput/ImageInput.vue";
1288
1225
 
1289
1226
  /*! image-blob-reduce 4.1.0 https://github.com/nodeca/image-blob-reduce @license MIT */
1290
1227
  function commonjsRequire (path) {
@@ -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$7 = { class: "image-input-container" };
4822
+ const _hoisted_2$1 = { key: 0 };
4823
+
4824
+
4825
+ var script$7 = {
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 }) {
4932
4837
 
4933
- const _hoisted_1$6 = { class: "image-input-container" };
4934
- const _hoisted_2$1 = { key: 0 };
4935
4838
 
4936
- function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4937
- const _component_image_input = resolveComponent("image-input");
4938
4839
 
4939
- 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)
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
+ };
4856
+
4857
+ return (_ctx, _cache) => {
4858
+ return (openBlock(), createElementBlock("div", _hoisted_1$7, [
4859
+ createVNode(script$8, {
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
+ }
4954
4874
 
4955
- 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
- styleInject(css_248z$1);
4875
+ };
4957
4876
 
4958
- script$6.render = render$6;
4959
- script$6.__scopeId = "data-v-3fb95754";
4960
- script$6.__file = "src/Inputs/ResizeImageUpload/ResizeImageUpload.vue";
4877
+ var css_248z$2 = "\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";
4878
+ styleInject(css_248z$2);
4961
4879
 
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
- });
4880
+ script$7.__scopeId = "data-v-3fb95754";
4881
+ script$7.__file = "src/Inputs/ResizeImageUpload/ResizeImageUpload.vue";
5013
4882
 
5014
- const _hoisted_1$5 = { class: "selector-container" };
4883
+ const _hoisted_1$6 = { 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) {
5021
- return (openBlock(), createElementBlock("div", _hoisted_1$5, [
4889
+
4890
+ var script$6 = {
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) => {
4923
+ return (openBlock(), createElementBlock("div", _hoisted_1$6, [
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
+ }
5056
4959
 
5057
- 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
- styleInject(css_248z);
4960
+ };
4961
+
4962
+ var css_248z$1 = "\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";
4963
+ styleInject(css_248z$1);
5059
4964
 
5060
- script$5.render = render$5;
5061
- script$5.__scopeId = "data-v-008e1be2";
5062
- script$5.__file = "src/Inputs/Selector/Selector.vue";
4965
+ script$6.__scopeId = "data-v-008e1be2";
4966
+ script$6.__file = "src/Inputs/Selector/Selector.vue";
5063
4967
 
5064
- var script$4 = {
5065
- name: 'DropIcon',
4968
+ const _hoisted_1$5 = ["width", "height", "stroke"];
4969
+
4970
+
4971
+ var script$5 = {
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",
@@ -5092,36 +4999,41 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
5092
4999
  }, _cache[0] || (_cache[0] = [
5093
5000
  createElementVNode("path", { d: "M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z" }, null, -1 /* HOISTED */),
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
- ]), 8 /* PROPS */, _hoisted_1$4))
5002
+ ]), 8 /* PROPS */, _hoisted_1$5))
5096
5003
  }
5004
+ }
5005
+
5006
+ };
5097
5007
 
5098
- script$4.render = render$4;
5099
- script$4.__file = "src/Icons/DropIcon/DropIcon.vue";
5008
+ script$5.__file = "src/Icons/DropIcon/DropIcon.vue";
5100
5009
 
5101
- var script$3 = {
5102
- name: 'SkullIcon',
5010
+ const _hoisted_1$4 = ["width", "height", "stroke"];
5011
+
5012
+
5013
+ var script$4 = {
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",
@@ -5139,36 +5051,41 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
5139
5051
  cy: "12",
5140
5052
  r: "1"
5141
5053
  }, null, -1 /* HOISTED */)
5142
- ]), 8 /* PROPS */, _hoisted_1$3))
5054
+ ]), 8 /* PROPS */, _hoisted_1$4))
5055
+ }
5143
5056
  }
5144
5057
 
5145
- script$3.render = render$3;
5146
- script$3.__file = "src/Icons/SkullIcon/SkullIcon.vue";
5058
+ };
5147
5059
 
5148
- var script$2 = {
5149
- name: 'CalendarIcon',
5060
+ script$4.__file = "src/Icons/SkullIcon/SkullIcon.vue";
5061
+
5062
+ const _hoisted_1$3 = ["width", "height", "stroke"];
5063
+
5064
+
5065
+ var script$3 = {
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) {
5078
+
5161
5079
 
5162
- const _hoisted_1$2 = ["width", "height", "stroke"];
5163
5080
 
5164
- function render$2(_ctx, _cache, $props, $setup, $data, $options) {
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",
@@ -5184,36 +5101,41 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5184
5101
  rx: "2"
5185
5102
  }, null, -1 /* HOISTED */),
5186
5103
  createElementVNode("path", { d: "M3 10h18" }, null, -1 /* HOISTED */)
5187
- ]), 8 /* PROPS */, _hoisted_1$2))
5104
+ ]), 8 /* PROPS */, _hoisted_1$3))
5188
5105
  }
5106
+ }
5107
+
5108
+ };
5189
5109
 
5190
- script$2.render = render$2;
5191
- script$2.__file = "src/Icons/CalendarIcon/CalendarIcon.vue";
5110
+ script$3.__file = "src/Icons/CalendarIcon/CalendarIcon.vue";
5192
5111
 
5193
- var script$1 = {
5194
- name: 'SaveIcon',
5112
+ const _hoisted_1$2 = ["width", "height", "stroke"];
5113
+
5114
+
5115
+ var script$2 = {
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",
@@ -5222,36 +5144,41 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5222
5144
  createElementVNode("path", { d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z" }, null, -1 /* HOISTED */),
5223
5145
  createElementVNode("path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7" }, null, -1 /* HOISTED */),
5224
5146
  createElementVNode("path", { d: "M7 3v4a1 1 0 0 0 1 1h7" }, null, -1 /* HOISTED */)
5225
- ]), 8 /* PROPS */, _hoisted_1$1))
5147
+ ]), 8 /* PROPS */, _hoisted_1$2))
5148
+ }
5226
5149
  }
5227
5150
 
5228
- script$1.render = render$1;
5229
- script$1.__file = "src/Icons/SaveIcon/SaveIcon.vue";
5151
+ };
5230
5152
 
5231
- var script = {
5232
- name: 'CreateIcon',
5153
+ script$2.__file = "src/Icons/SaveIcon/SaveIcon.vue";
5154
+
5155
+ const _hoisted_1$1 = ["width", "height", "stroke"];
5156
+
5157
+
5158
+ var script$1 = {
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) {
5244
5171
 
5245
- const _hoisted_1 = ["width", "height", "stroke"];
5246
5172
 
5247
- function render(_ctx, _cache, $props, $setup, $data, $options) {
5173
+
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",
@@ -5270,11 +5197,82 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
5270
5197
  y1: "12",
5271
5198
  y2: "12"
5272
5199
  }, null, -1 /* HOISTED */)
5273
- ]), 8 /* PROPS */, _hoisted_1))
5200
+ ]), 8 /* PROPS */, _hoisted_1$1))
5274
5201
  }
5202
+ }
5203
+
5204
+ };
5205
+
5206
+ script$1.__file = "src/Icons/CreateIcon/CreateIcon.vue";
5207
+
5208
+ const _hoisted_1 = { class: "infinite-scroll-container" };
5209
+
5210
+
5211
+ var script = {
5212
+ __name: 'InfiniteScroll',
5213
+ props: {
5214
+ threshold: {
5215
+ type: Number,
5216
+ default: 0.1
5217
+ },
5218
+ rootMargin: {
5219
+ type: String,
5220
+ default: '0px'
5221
+ },
5222
+ disabled: {
5223
+ type: Boolean,
5224
+ default: false
5225
+ }
5226
+ },
5227
+ emits: ['load-more'],
5228
+ setup(__props, { emit: __emit }) {
5229
+
5230
+ const props = __props;
5231
+
5232
+ const emit = __emit;
5233
+ const sentinel = ref(null);
5234
+ let observer = null;
5235
+
5236
+ onMounted(() => {
5237
+ observer = new IntersectionObserver(([entry]) => {
5238
+ if (entry.isIntersecting && !props.disabled) {
5239
+ emit('load-more');
5240
+ }
5241
+ }, {
5242
+ rootMargin: props.rootMargin,
5243
+ threshold: props.threshold
5244
+ });
5245
+
5246
+ if (sentinel.value) {
5247
+ observer.observe(sentinel.value);
5248
+ }
5249
+ });
5250
+
5251
+ onBeforeUnmount(() => {
5252
+ if (observer) {
5253
+ observer.disconnect();
5254
+ }
5255
+ });
5256
+
5257
+ return (_ctx, _cache) => {
5258
+ return (openBlock(), createElementBlock("div", _hoisted_1, [
5259
+ renderSlot(_ctx.$slots, "default"),
5260
+ createElementVNode("div", {
5261
+ class: "sentinel",
5262
+ ref_key: "sentinel",
5263
+ ref: sentinel
5264
+ }, null, 512 /* NEED_PATCH */)
5265
+ ]))
5266
+ }
5267
+ }
5268
+
5269
+ };
5270
+
5271
+ var css_248z = "\n.infinite-scroll-container[data-v-69ac2b46] {\n width: 100%;\n}\n.sentinel[data-v-69ac2b46] {\n height: var(--infinite-scroll-sentinel-height, 1px);\n width: 100%;\n}\n";
5272
+ styleInject(css_248z);
5275
5273
 
5276
- script.render = render;
5277
- script.__file = "src/Icons/CreateIcon/CreateIcon.vue";
5274
+ script.__scopeId = "data-v-69ac2b46";
5275
+ script.__file = "src/InfiniteScroll/InfiniteScroll.vue";
5278
5276
 
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 };
5277
+ export { script$k as Badge, script$3 as CalendarIcon, script$y as Card, script$x as CardGrid, script$a as CheckBoxInput, script$w as Container, script$1 as CreateIcon, script$h as DangerButton, script$5 as DropIcon, script$8 as ImageInput, script as InfiniteScroll, script$B as Loading, script$g as Modal, script$o as Navbar, script$9 as NumberInput, script$l as Pagination, script$e as RangeView, script$m as RegularButton, script$d as ResetButton, script$7 as ResizeImageUpload, script$2 as SaveIcon, script$i as SecondaryButton, script$C as SectionTitle, script$6 as Selector, script$4 as SkullIcon, script$f as Spinner, script$n as StyledTable, script$c as SubmitButton, script$j as Temperature, script$b as TextInput };
5280
5278
  //# sourceMappingURL=index.esm.js.map