@ulu/frontend-vue 0.1.2-beta.9 → 0.1.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/frontend-vue.js +1197 -1189
  2. package/dist/types/components/collapsible/UluModal.vue.d.ts.map +1 -1
  3. package/dist/types/components/forms/UluForm.vue.d.ts +24 -0
  4. package/dist/types/components/forms/UluForm.vue.d.ts.map +1 -0
  5. package/dist/types/components/forms/UluFormActions.vue.d.ts +10 -0
  6. package/dist/types/components/forms/UluFormActions.vue.d.ts.map +1 -0
  7. package/dist/types/components/forms/UluFormCheckbox.vue.d.ts +22 -0
  8. package/dist/types/components/forms/UluFormCheckbox.vue.d.ts.map +1 -0
  9. package/dist/types/components/forms/UluFormFieldset.vue.d.ts +16 -0
  10. package/dist/types/components/forms/UluFormFieldset.vue.d.ts.map +1 -0
  11. package/dist/types/components/forms/UluFormFile.vue.d.ts +2 -0
  12. package/dist/types/components/forms/UluFormFile.vue.d.ts.map +1 -1
  13. package/dist/types/components/forms/UluFormItem.vue.d.ts +28 -0
  14. package/dist/types/components/forms/UluFormItem.vue.d.ts.map +1 -0
  15. package/dist/types/components/forms/UluFormItemsInline.vue.d.ts +10 -0
  16. package/dist/types/components/forms/UluFormItemsInline.vue.d.ts.map +1 -0
  17. package/dist/types/components/forms/UluFormRadio.vue.d.ts +26 -0
  18. package/dist/types/components/forms/UluFormRadio.vue.d.ts.map +1 -0
  19. package/dist/types/components/forms/UluFormRequiredChar.vue.d.ts +3 -0
  20. package/dist/types/components/forms/UluFormRequiredChar.vue.d.ts.map +1 -0
  21. package/dist/types/components/forms/UluFormSelect.vue.d.ts +3 -1
  22. package/dist/types/components/forms/UluFormSelect.vue.d.ts.map +1 -1
  23. package/dist/types/components/forms/UluFormText.vue.d.ts +3 -1
  24. package/dist/types/components/forms/UluFormText.vue.d.ts.map +1 -1
  25. package/dist/types/components/forms/UluFormTextarea.vue.d.ts +24 -0
  26. package/dist/types/components/forms/UluFormTextarea.vue.d.ts.map +1 -0
  27. package/dist/types/components/navigation/UluPager.vue.d.ts.map +1 -1
  28. package/dist/types/components/systems/facets/UluFacetsSearch.vue.d.ts.map +1 -1
  29. package/dist/types/components/systems/facets/UluFacetsSort.vue.d.ts.map +1 -1
  30. package/lib/components/collapsible/UluModal.vue +2 -4
  31. package/lib/components/forms/UluForm.vue +42 -0
  32. package/lib/components/forms/UluFormActions.vue +9 -0
  33. package/lib/components/forms/UluFormCheckbox.vue +38 -0
  34. package/lib/components/forms/UluFormFieldset.vue +15 -0
  35. package/lib/components/forms/UluFormFile.vue +24 -23
  36. package/lib/components/forms/UluFormItem.vue +49 -0
  37. package/lib/components/forms/UluFormItemsInline.vue +9 -0
  38. package/lib/components/forms/UluFormMessage.vue +3 -3
  39. package/lib/components/forms/UluFormRadio.vue +48 -0
  40. package/lib/components/forms/UluFormRequiredChar.vue +7 -0
  41. package/lib/components/forms/UluFormSelect.vue +24 -23
  42. package/lib/components/forms/UluFormText.vue +20 -19
  43. package/lib/components/forms/UluFormTextarea.vue +41 -0
  44. package/lib/components/navigation/UluPager.vue +2 -3
  45. package/lib/components/systems/facets/UluFacetsSearch.vue +2 -2
  46. package/lib/components/systems/facets/UluFacetsSort.vue +2 -4
  47. package/package.json +1 -1
@@ -1,28 +1,25 @@
1
1
  <template>
2
- <div class="site-form__item site-form__item--select">
3
- <label :class="{ 'hidden-visually' : labelHidden }" :for="id">
4
- <slot>
5
- {{ label }}
6
- </slot>
7
- </label>
8
- <select
9
- :id="id"
10
- :value="modelValue"
11
- @input="$emit('update:modelValue', $event.target.value)"
12
- >
13
- <option disabled value="">Please select one</option>
14
- <option v-for="(option, index) in options" :key="index" :value="option.value">
15
- {{ option.text }}
16
- </option>
17
- </select>
18
- </div>
2
+ <label :class="{ 'hidden-visually' : labelHidden }" :for="id">
3
+ <slot name="label">
4
+ {{ label }}<UluFormRequiredChar v-if="required" />
5
+ </slot>
6
+ </label>
7
+ <select
8
+ :id="id"
9
+ :value="modelValue"
10
+ @input="$emit('update:modelValue', $event.target.value)"
11
+ :required="required"
12
+ >
13
+ <option disabled value="">Please select one</option>
14
+ <option v-for="(option, index) in options" :key="index" :value="option.value">
15
+ {{ option.text }}
16
+ </option>
17
+ </select>
19
18
  </template>
20
19
 
21
20
  <script setup>
22
- const getNextId = (() => {
23
- let count = 0;
24
- return () => `select-id-${++count}`;
25
- })();
21
+ import { newId } from "../../utils/dom.js";
22
+ import UluFormRequiredChar from "./UluFormRequiredChar.vue";
26
23
 
27
24
  defineProps({
28
25
  /**
@@ -40,10 +37,14 @@
40
37
  /**
41
38
  * If true, the label will be visually hidden.
42
39
  */
43
- labelHidden: Boolean
40
+ labelHidden: Boolean,
41
+ /**
42
+ * If true, the field will be required.
43
+ */
44
+ required: Boolean
44
45
  });
45
46
 
46
47
  defineEmits(['update:modelValue']);
47
48
 
48
- const id = getNextId();
49
+ const id = newId();
49
50
  </script>
@@ -1,24 +1,21 @@
1
1
  <template>
2
- <div class="site-form__item site-form__item--text">
3
- <label :class="{ 'hidden-visually' : labelHidden }" :for="id">
4
- <slot>
5
- {{ label }}
6
- </slot>
7
- </label>
8
- <input
9
- type="text"
10
- :value="modelValue"
11
- @input="$emit('update:modelValue', $event.target.value)"
12
- :id="id"
13
- >
14
- </div>
2
+ <label :class="{ 'hidden-visually' : labelHidden }" :for="id">
3
+ <slot name="label">
4
+ {{ label }}<UluFormRequiredChar v-if="required" />
5
+ </slot>
6
+ </label>
7
+ <input
8
+ type="text"
9
+ :value="modelValue"
10
+ @input="$emit('update:modelValue', $event.target.value)"
11
+ :id="id"
12
+ :required="required"
13
+ >
15
14
  </template>
16
15
 
17
16
  <script setup>
18
- const getNextId = (() => {
19
- let count = 0;
20
- return () => `text-input-id-${++count}`;
21
- })();
17
+ import { newId } from "../../utils/dom.js";
18
+ import UluFormRequiredChar from "./UluFormRequiredChar.vue";
22
19
 
23
20
  defineProps({
24
21
  /**
@@ -32,10 +29,14 @@
32
29
  /**
33
30
  * If true, the label will be visually hidden.
34
31
  */
35
- labelHidden: Boolean
32
+ labelHidden: Boolean,
33
+ /**
34
+ * If true, the field will be required.
35
+ */
36
+ required: Boolean
36
37
  });
37
38
 
38
39
  defineEmits(['update:modelValue']);
39
40
 
40
- const id = getNextId();
41
+ const id = newId();
41
42
  </script>
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <label :class="{ 'hidden-visually' : labelHidden }" :for="id">
3
+ <slot name="label">
4
+ {{ label }}<UluFormRequiredChar v-if="required" />
5
+ </slot>
6
+ </label>
7
+ <textarea
8
+ :value="modelValue"
9
+ @input="$emit('update:modelValue', $event.target.value)"
10
+ :id="id"
11
+ :required="required"
12
+ ></textarea>
13
+ </template>
14
+
15
+ <script setup>
16
+ import { newId } from "../../utils/dom.js";
17
+ import UluFormRequiredChar from "./UluFormRequiredChar.vue";
18
+
19
+ defineProps({
20
+ /**
21
+ * The label for the textarea.
22
+ */
23
+ label: String,
24
+ /**
25
+ * The value of the textarea (for v-model).
26
+ */
27
+ modelValue: String,
28
+ /**
29
+ * If true, the label will be visually hidden.
30
+ */
31
+ labelHidden: Boolean,
32
+ /**
33
+ * If true, the field will be required.
34
+ */
35
+ required: Boolean
36
+ });
37
+
38
+ defineEmits(['update:modelValue']);
39
+
40
+ const id = newId();
41
+ </script>
@@ -55,8 +55,7 @@
55
55
 
56
56
  <script setup>
57
57
  import UluIcon from '../elements/UluIcon.vue';
58
-
59
- let pagerCounter = 0;
58
+ import { newId } from '../../utils/dom.js';
60
59
 
61
60
  const props = defineProps({
62
61
  /**
@@ -89,7 +88,7 @@ const props = defineProps({
89
88
  }
90
89
  });
91
90
 
92
- const headingId = `ulu-pager-${ pagerCounter++ }`;
91
+ const headingId = newId('ulu-pager');
93
92
 
94
93
  /**
95
94
  * Generates the title for a page link.
@@ -15,6 +15,7 @@
15
15
 
16
16
  <script setup>
17
17
  import { computed } from 'vue';
18
+ import { newId } from '../../../utils/dom.js';
18
19
 
19
20
  const props = defineProps({
20
21
  classes: {
@@ -30,8 +31,7 @@
30
31
 
31
32
  const emit = defineEmits(['update:modelValue']);
32
33
 
33
- let uid = 0;
34
- const id = `facet-view-keyword-${++uid}`;
34
+ const id = newId('facet-view-keyword');
35
35
 
36
36
  const localValue = computed({
37
37
  get() {
@@ -20,9 +20,7 @@
20
20
  </template>
21
21
 
22
22
  <script setup>
23
- import { ref } from 'vue';
24
-
25
- let idCounter = 0;
23
+ import { newId } from '../../../utils/dom.js';
26
24
 
27
25
  defineProps({
28
26
  classes: {
@@ -41,5 +39,5 @@
41
39
 
42
40
  const emit = defineEmits(['update:modelValue']);
43
41
 
44
- const sortId = ref(`ulu-facet-sort-${++idCounter}`);
42
+ const sortId = newId('ulu-facet-sort');
45
43
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend-vue",
3
- "version": "0.1.2-beta.9",
3
+ "version": "0.1.3-beta.1",
4
4
  "description": "A modular and tree-shakeable Vue 3 component library for the Ulu frontend",
5
5
  "type": "module",
6
6
  "files": [