@ulu/frontend-vue 0.5.16 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/components/elements/UluButton.vue.d.ts +4 -0
  2. package/dist/components/elements/UluButton.vue.d.ts.map +1 -1
  3. package/dist/components/elements/UluButton.vue.js +31 -16
  4. package/dist/components/elements/UluIcon.vue.js +21 -36
  5. package/dist/components/forms/UluFormCheckbox.vue.d.ts +3 -19
  6. package/dist/components/forms/UluFormCheckbox.vue.d.ts.map +1 -1
  7. package/dist/components/forms/UluFormCheckbox.vue.js +10 -31
  8. package/dist/components/forms/UluFormFile.vue.d.ts +3 -25
  9. package/dist/components/forms/UluFormFile.vue.d.ts.map +1 -1
  10. package/dist/components/forms/UluFormFile.vue.js +11 -49
  11. package/dist/components/forms/UluFormItem.vue.d.ts +23 -8
  12. package/dist/components/forms/UluFormItem.vue.d.ts.map +1 -1
  13. package/dist/components/forms/UluFormItem.vue.js +126 -29
  14. package/dist/components/forms/UluFormLabel.vue.d.ts +24 -0
  15. package/dist/components/forms/UluFormLabel.vue.d.ts.map +1 -0
  16. package/dist/components/forms/UluFormLabel.vue.js +34 -0
  17. package/dist/components/forms/UluFormRadio.vue.d.ts +7 -25
  18. package/dist/components/forms/UluFormRadio.vue.d.ts.map +1 -1
  19. package/dist/components/forms/UluFormRadio.vue.js +11 -37
  20. package/dist/components/forms/UluFormSelect.vue.d.ts +7 -23
  21. package/dist/components/forms/UluFormSelect.vue.d.ts.map +1 -1
  22. package/dist/components/forms/UluFormSelect.vue.js +24 -43
  23. package/dist/components/forms/UluFormText.vue.d.ts +5 -23
  24. package/dist/components/forms/UluFormText.vue.d.ts.map +1 -1
  25. package/dist/components/forms/UluFormText.vue.js +10 -38
  26. package/dist/components/forms/UluFormTextarea.vue.d.ts +5 -23
  27. package/dist/components/forms/UluFormTextarea.vue.d.ts.map +1 -1
  28. package/dist/components/forms/UluFormTextarea.vue.js +10 -37
  29. package/dist/components/forms/UluSearchForm.vue.d.ts +24 -3
  30. package/dist/components/forms/UluSearchForm.vue.d.ts.map +1 -1
  31. package/dist/components/forms/UluSearchForm.vue.js +67 -22
  32. package/dist/components/index.d.ts +1 -0
  33. package/dist/components/systems/facets/UluFacetsFilterSelects.vue.d.ts.map +1 -1
  34. package/dist/components/systems/facets/UluFacetsFilterSelects.vue.js +21 -22
  35. package/dist/components/utils/UluAction.vue.d.ts +2 -0
  36. package/dist/components/utils/UluAction.vue.d.ts.map +1 -1
  37. package/dist/components/utils/UluAction.vue.js +9 -5
  38. package/dist/components/visualizations/UluProgressBar.vue.d.ts +2 -2
  39. package/dist/index.js +130 -128
  40. package/dist/plugins/core/index.d.ts.map +1 -1
  41. package/dist/plugins/core/index.js +17 -16
  42. package/dist/utils/props.d.ts +7 -0
  43. package/dist/utils/props.d.ts.map +1 -1
  44. package/dist/utils/props.js +8 -2
  45. package/lib/components/elements/UluButton.vue +18 -3
  46. package/lib/components/elements/UluIcon.vue +8 -26
  47. package/lib/components/forms/UluForm.vue +25 -25
  48. package/lib/components/forms/UluFormCheckbox.vue +11 -25
  49. package/lib/components/forms/UluFormFieldset.vue +6 -6
  50. package/lib/components/forms/UluFormFile.vue +10 -40
  51. package/lib/components/forms/UluFormItem.vue +150 -39
  52. package/lib/components/forms/UluFormLabel.vue +30 -0
  53. package/lib/components/forms/UluFormRadio.vue +15 -34
  54. package/lib/components/forms/UluFormSelect.vue +19 -24
  55. package/lib/components/forms/UluFormText.vue +7 -25
  56. package/lib/components/forms/UluFormTextarea.vue +7 -25
  57. package/lib/components/forms/UluSearchForm.vue +67 -19
  58. package/lib/components/forms/UluSelectableMenu.vue +62 -62
  59. package/lib/components/index.js +1 -0
  60. package/lib/components/systems/facets/UluFacetsFilterSelects.vue +11 -14
  61. package/lib/components/utils/UluAction.vue +6 -2
  62. package/lib/plugins/core/index.js +2 -1
  63. package/lib/utils/props.js +14 -0
  64. package/package.json +3 -3
@@ -0,0 +1,24 @@
1
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
+ export default _default;
3
+ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import('vue').DefineComponent<{}, {
7
+ id: string;
8
+ required: boolean;
9
+ labelHidden: boolean;
10
+ $props: {
11
+ readonly id?: string | undefined;
12
+ readonly required?: boolean | undefined;
13
+ readonly labelHidden?: boolean | undefined;
14
+ };
15
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLLabelElement>;
16
+ type __VLS_TemplateResult = {
17
+ attrs: Partial<{}>;
18
+ slots: {
19
+ default?(_: {}): any;
20
+ };
21
+ refs: {};
22
+ rootEl: HTMLLabelElement;
23
+ };
24
+ //# sourceMappingURL=UluFormLabel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UluFormLabel.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormLabel.vue"],"names":[],"mappings":"AAQA;wBAgHqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;wPAQG"}
@@ -0,0 +1,34 @@
1
+ import { createElementBlock as o, openBlock as r, normalizeClass as t, renderSlot as a, createBlock as n, createCommentVNode as d } from "vue";
2
+ import i from "./UluFormRequiredChar.vue.js";
3
+ const c = ["for"], f = {
4
+ __name: "UluFormLabel",
5
+ props: {
6
+ /**
7
+ * The ID of the input this label is associated with.
8
+ */
9
+ id: {
10
+ type: String,
11
+ required: !0
12
+ },
13
+ /**
14
+ * If true, the label will be visually hidden.
15
+ */
16
+ labelHidden: Boolean,
17
+ /**
18
+ * If true, appends the required character.
19
+ */
20
+ required: Boolean
21
+ },
22
+ setup(e) {
23
+ return (l, s) => (r(), o("label", {
24
+ for: e.id,
25
+ class: t({ "hidden-visually": e.labelHidden })
26
+ }, [
27
+ a(l.$slots, "default"),
28
+ e.required ? (r(), n(i, { key: 0 })) : d("", !0)
29
+ ], 10, c));
30
+ }
31
+ };
32
+ export {
33
+ f as default
34
+ };
@@ -1,29 +1,11 @@
1
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
- export default _default;
3
- type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
- $slots: S;
5
- });
6
- declare const __VLS_component: import('vue').DefineComponent<{}, {
1
+ declare const _default: import('vue').DefineComponent<{}, {
7
2
  $emit: (event: "update:modelValue", ...args: any[]) => void;
8
- required: boolean;
9
- modelValue?: string | number | undefined;
10
- value?: string | number | undefined;
11
- label?: string | undefined;
12
- name?: string | undefined;
3
+ modelValue?: string | number | boolean | undefined;
4
+ value?: string | number | boolean | undefined;
13
5
  $props: {
14
- readonly required?: boolean | undefined;
15
- readonly modelValue?: string | number | undefined;
16
- readonly value?: string | number | undefined;
17
- readonly label?: string | undefined;
18
- readonly name?: string | undefined;
19
- };
20
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
21
- type __VLS_TemplateResult = {
22
- attrs: Partial<{}>;
23
- slots: {
24
- default?(_: {}): any;
6
+ readonly modelValue?: string | number | boolean | undefined;
7
+ readonly value?: string | number | boolean | undefined;
25
8
  };
26
- refs: {};
27
- rootEl: any;
28
- };
9
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLInputElement>;
10
+ export default _default;
29
11
  //# sourceMappingURL=UluFormRadio.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UluFormRadio.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormRadio.vue"],"names":[],"mappings":"AAgBA;wBAwJqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;;;;;;2OAQG"}
1
+ {"version":3,"file":"UluFormRadio.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormRadio.vue"],"names":[],"mappings":"AASA;"}
@@ -1,52 +1,26 @@
1
- import { createElementBlock as u, openBlock as a, Fragment as d, createElementVNode as n, unref as o, renderSlot as m, createTextVNode as i, createBlock as c, createCommentVNode as f, toDisplayString as s } from "vue";
2
- import { newId as g } from "../../utils/dom.js";
3
- import v from "./UluFormRequiredChar.vue.js";
4
- const V = ["id", "name", "value", "checked", "required"], k = ["for"], h = {
1
+ import { inject as a, computed as n, createElementBlock as r, openBlock as m, mergeProps as d } from "vue";
2
+ const i = ["value", "checked"], v = {
5
3
  __name: "UluFormRadio",
6
4
  props: {
7
- /**
8
- * The label for the radio button.
9
- */
10
- label: String,
11
5
  /**
12
6
  * The value of the selected radio button in the group (for v-model).
13
7
  */
14
- modelValue: [String, Number],
8
+ modelValue: [String, Number, Boolean],
15
9
  /**
16
10
  * The value of this radio button.
17
11
  */
18
- value: [String, Number],
19
- /**
20
- * The name of the radio button group.
21
- */
22
- name: String,
23
- /**
24
- * If true, the field will be required.
25
- */
26
- required: Boolean
12
+ value: [String, Number, Boolean]
27
13
  },
28
14
  emits: ["update:modelValue"],
29
15
  setup(e) {
30
- const t = g();
31
- return (l, r) => (a(), u(d, null, [
32
- n("input", {
33
- type: "radio",
34
- id: o(t),
35
- name: e.name,
36
- value: e.value,
37
- checked: e.modelValue === e.value,
38
- onChange: r[0] || (r[0] = (S) => l.$emit("update:modelValue", e.value)),
39
- required: e.required
40
- }, null, 40, V),
41
- n("label", { for: o(t) }, [
42
- m(l.$slots, "default", {}, () => [
43
- i(s(e.label), 1),
44
- e.required ? (a(), c(v, { key: 0 })) : f("", !0)
45
- ])
46
- ], 8, k)
47
- ], 64));
16
+ const t = a("uluFormFieldAttrs", null), u = n(() => t ? t.value : {});
17
+ return (o, l) => (m(), r("input", d({ type: "radio" }, u.value, {
18
+ value: e.value,
19
+ checked: e.modelValue === e.value,
20
+ onChange: l[0] || (l[0] = (c) => o.$emit("update:modelValue", e.value))
21
+ }), null, 16, i));
48
22
  }
49
23
  };
50
24
  export {
51
- h as default
25
+ v as default
52
26
  };
@@ -1,29 +1,13 @@
1
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
- export default _default;
3
- type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
- $slots: S;
5
- });
6
- declare const __VLS_component: import('vue').DefineComponent<{}, {
1
+ declare const _default: import('vue').DefineComponent<{}, {
7
2
  $emit: (event: "update:modelValue", ...args: any[]) => void;
8
- required: boolean;
9
- labelHidden: boolean;
10
- modelValue?: string | undefined;
11
- label?: string | undefined;
3
+ placeholder: string | boolean;
4
+ modelValue?: string | number | unknown[] | undefined;
12
5
  options?: unknown[] | undefined;
13
6
  $props: {
14
- readonly required?: boolean | undefined;
15
- readonly labelHidden?: boolean | undefined;
16
- readonly modelValue?: string | undefined;
17
- readonly label?: string | undefined;
7
+ readonly placeholder?: string | boolean | undefined;
8
+ readonly modelValue?: string | number | unknown[] | undefined;
18
9
  readonly options?: unknown[] | undefined;
19
10
  };
20
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
21
- type __VLS_TemplateResult = {
22
- attrs: Partial<{}>;
23
- slots: {
24
- label?(_: {}): any;
25
- };
26
- refs: {};
27
- rootEl: any;
28
- };
11
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLSelectElement>;
12
+ export default _default;
29
13
  //# sourceMappingURL=UluFormSelect.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UluFormSelect.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormSelect.vue"],"names":[],"mappings":"AAkBA;wBAoKqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;;;;;;2OAQG"}
1
+ {"version":3,"file":"UluFormSelect.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormSelect.vue"],"names":[],"mappings":"AAkBA;"}
@@ -1,61 +1,42 @@
1
- import { createElementBlock as r, openBlock as o, Fragment as i, createElementVNode as a, unref as u, normalizeClass as c, renderSlot as f, createTextVNode as v, createBlock as b, createCommentVNode as V, toDisplayString as s, renderList as g } from "vue";
2
- import { newId as k } from "../../utils/dom.js";
3
- import p from "./UluFormRequiredChar.vue.js";
4
- const q = ["for"], y = ["id", "value", "required"], B = ["value"], x = {
1
+ import { inject as i, computed as c, createElementBlock as l, openBlock as o, mergeProps as m, createCommentVNode as p, toDisplayString as n, Fragment as v, renderList as f } from "vue";
2
+ const g = ["value"], y = {
3
+ key: 0,
4
+ disabled: "",
5
+ value: ""
6
+ }, h = ["value"], V = {
5
7
  __name: "UluFormSelect",
6
8
  props: {
7
- /**
8
- * The label for the select input.
9
- */
10
- label: String,
11
9
  /**
12
10
  * The value of the select input (for v-model).
13
11
  */
14
- modelValue: String,
12
+ modelValue: [String, Number, Array],
15
13
  /**
16
14
  * An array of options for the select input. Each option should be an object with `value` and `text` properties.
17
15
  */
18
16
  options: Array,
19
17
  /**
20
- * If true, the label will be visually hidden.
21
- */
22
- labelHidden: Boolean,
23
- /**
24
- * If true, the field will be required.
18
+ * The text for the default disabled option. Pass false to hide it.
25
19
  */
26
- required: Boolean
20
+ placeholder: {
21
+ type: [String, Boolean],
22
+ default: "Please select one"
23
+ }
27
24
  },
28
25
  emits: ["update:modelValue"],
29
26
  setup(e) {
30
- const n = k();
31
- return (d, l) => (o(), r(i, null, [
32
- a("label", {
33
- class: c({ "hidden-visually": e.labelHidden }),
34
- for: u(n)
35
- }, [
36
- f(d.$slots, "label", {}, () => [
37
- v(s(e.label), 1),
38
- e.required ? (o(), b(p, { key: 0 })) : V("", !0)
39
- ])
40
- ], 10, q),
41
- a("select", {
42
- id: u(n),
43
- value: e.modelValue,
44
- onInput: l[0] || (l[0] = (t) => d.$emit("update:modelValue", t.target.value)),
45
- required: e.required
46
- }, [
47
- l[1] || (l[1] = a("option", {
48
- disabled: "",
49
- value: ""
50
- }, "Please select one", -1)),
51
- (o(!0), r(i, null, g(e.options, (t, m) => (o(), r("option", {
52
- key: m,
53
- value: t.value
54
- }, s(t.text), 9, B))), 128))
55
- ], 40, y)
56
- ], 64));
27
+ const a = i("uluFormFieldAttrs", null), u = c(() => a ? a.value : {});
28
+ return (s, r) => (o(), l("select", m(u.value, {
29
+ value: e.modelValue,
30
+ onInput: r[0] || (r[0] = (t) => s.$emit("update:modelValue", t.target.value))
31
+ }), [
32
+ e.placeholder !== !1 ? (o(), l("option", y, n(e.placeholder || "Please select one"), 1)) : p("", !0),
33
+ (o(!0), l(v, null, f(e.options, (t, d) => (o(), l("option", {
34
+ key: d,
35
+ value: t.value
36
+ }, n(t.text), 9, h))), 128))
37
+ ], 16, g));
57
38
  }
58
39
  };
59
40
  export {
60
- x as default
41
+ V as default
61
42
  };
@@ -1,27 +1,9 @@
1
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
- export default _default;
3
- type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
- $slots: S;
5
- });
6
- declare const __VLS_component: import('vue').DefineComponent<{}, {
1
+ declare const _default: import('vue').DefineComponent<{}, {
7
2
  $emit: (event: "update:modelValue", ...args: any[]) => void;
8
- required: boolean;
9
- labelHidden: boolean;
10
- modelValue?: string | undefined;
11
- label?: string | undefined;
3
+ modelValue?: string | number | undefined;
12
4
  $props: {
13
- readonly required?: boolean | undefined;
14
- readonly labelHidden?: boolean | undefined;
15
- readonly modelValue?: string | undefined;
16
- readonly label?: string | undefined;
17
- };
18
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
19
- type __VLS_TemplateResult = {
20
- attrs: Partial<{}>;
21
- slots: {
22
- label?(_: {}): any;
5
+ readonly modelValue?: string | number | undefined;
23
6
  };
24
- refs: {};
25
- rootEl: any;
26
- };
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLInputElement>;
8
+ export default _default;
27
9
  //# sourceMappingURL=UluFormText.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UluFormText.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormText.vue"],"names":[],"mappings":"AAcA;wBA8IqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;;;;2OAQG"}
1
+ {"version":3,"file":"UluFormText.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormText.vue"],"names":[],"mappings":"AAQA;"}
@@ -1,49 +1,21 @@
1
- import { createElementBlock as i, openBlock as o, Fragment as u, createElementVNode as a, unref as n, normalizeClass as m, renderSlot as s, createTextVNode as c, createBlock as f, createCommentVNode as V, toDisplayString as b } from "vue";
2
- import { newId as p } from "../../utils/dom.js";
3
- import g from "./UluFormRequiredChar.vue.js";
4
- const q = ["for"], B = ["value", "id", "required"], S = {
1
+ import { inject as n, computed as a, createElementBlock as m, openBlock as s, mergeProps as p } from "vue";
2
+ const d = ["value"], c = {
5
3
  __name: "UluFormText",
6
4
  props: {
7
- /**
8
- * The label for the text input.
9
- */
10
- label: String,
11
5
  /**
12
6
  * The value of the text input (for v-model).
13
7
  */
14
- modelValue: String,
15
- /**
16
- * If true, the label will be visually hidden.
17
- */
18
- labelHidden: Boolean,
19
- /**
20
- * If true, the field will be required.
21
- */
22
- required: Boolean
8
+ modelValue: [String, Number]
23
9
  },
24
10
  emits: ["update:modelValue"],
25
- setup(e) {
26
- const l = p();
27
- return (t, r) => (o(), i(u, null, [
28
- a("label", {
29
- class: m({ "hidden-visually": e.labelHidden }),
30
- for: n(l)
31
- }, [
32
- s(t.$slots, "label", {}, () => [
33
- c(b(e.label), 1),
34
- e.required ? (o(), f(g, { key: 0 })) : V("", !0)
35
- ])
36
- ], 10, q),
37
- a("input", {
38
- type: "text",
39
- value: e.modelValue,
40
- onInput: r[0] || (r[0] = (d) => t.$emit("update:modelValue", d.target.value)),
41
- id: n(l),
42
- required: e.required
43
- }, null, 40, B)
44
- ], 64));
11
+ setup(l) {
12
+ const e = n("uluFormFieldAttrs", null), u = a(() => e ? e.value : {});
13
+ return (o, t) => (s(), m("input", p({ type: "text" }, u.value, {
14
+ value: l.modelValue,
15
+ onInput: t[0] || (t[0] = (r) => o.$emit("update:modelValue", r.target.value))
16
+ }), null, 16, d));
45
17
  }
46
18
  };
47
19
  export {
48
- S as default
20
+ c as default
49
21
  };
@@ -1,27 +1,9 @@
1
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
- export default _default;
3
- type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
- $slots: S;
5
- });
6
- declare const __VLS_component: import('vue').DefineComponent<{}, {
1
+ declare const _default: import('vue').DefineComponent<{}, {
7
2
  $emit: (event: "update:modelValue", ...args: any[]) => void;
8
- required: boolean;
9
- labelHidden: boolean;
10
- modelValue?: string | undefined;
11
- label?: string | undefined;
3
+ modelValue?: string | number | undefined;
12
4
  $props: {
13
- readonly required?: boolean | undefined;
14
- readonly labelHidden?: boolean | undefined;
15
- readonly modelValue?: string | undefined;
16
- readonly label?: string | undefined;
17
- };
18
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
19
- type __VLS_TemplateResult = {
20
- attrs: Partial<{}>;
21
- slots: {
22
- label?(_: {}): any;
5
+ readonly modelValue?: string | number | undefined;
23
6
  };
24
- refs: {};
25
- rootEl: any;
26
- };
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLTextAreaElement>;
8
+ export default _default;
27
9
  //# sourceMappingURL=UluFormTextarea.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UluFormTextarea.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormTextarea.vue"],"names":[],"mappings":"AAaA;wBA4IqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;;;;2OAQG"}
1
+ {"version":3,"file":"UluFormTextarea.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluFormTextarea.vue"],"names":[],"mappings":"AAOA;"}
@@ -1,48 +1,21 @@
1
- import { createElementBlock as i, openBlock as a, Fragment as u, createElementVNode as o, unref as n, normalizeClass as m, renderSlot as s, createTextVNode as c, createBlock as f, createCommentVNode as V, toDisplayString as b } from "vue";
2
- import { newId as g } from "../../utils/dom.js";
3
- import q from "./UluFormRequiredChar.vue.js";
4
- const B = ["for"], k = ["value", "id", "required"], x = {
1
+ import { inject as a, computed as n, createElementBlock as m, openBlock as s, mergeProps as d } from "vue";
2
+ const p = ["value"], c = {
5
3
  __name: "UluFormTextarea",
6
4
  props: {
7
- /**
8
- * The label for the textarea.
9
- */
10
- label: String,
11
5
  /**
12
6
  * The value of the textarea (for v-model).
13
7
  */
14
- modelValue: String,
15
- /**
16
- * If true, the label will be visually hidden.
17
- */
18
- labelHidden: Boolean,
19
- /**
20
- * If true, the field will be required.
21
- */
22
- required: Boolean
8
+ modelValue: [String, Number]
23
9
  },
24
10
  emits: ["update:modelValue"],
25
- setup(e) {
26
- const l = g();
27
- return (t, r) => (a(), i(u, null, [
28
- o("label", {
29
- class: m({ "hidden-visually": e.labelHidden }),
30
- for: n(l)
31
- }, [
32
- s(t.$slots, "label", {}, () => [
33
- c(b(e.label), 1),
34
- e.required ? (a(), f(q, { key: 0 })) : V("", !0)
35
- ])
36
- ], 10, B),
37
- o("textarea", {
38
- value: e.modelValue,
39
- onInput: r[0] || (r[0] = (d) => t.$emit("update:modelValue", d.target.value)),
40
- id: n(l),
41
- required: e.required
42
- }, null, 40, k)
43
- ], 64));
11
+ setup(l) {
12
+ const e = a("uluFormFieldAttrs", null), u = n(() => e ? e.value : {});
13
+ return (o, t) => (s(), m("textarea", d(u.value, {
14
+ value: l.modelValue,
15
+ onInput: t[0] || (t[0] = (r) => o.$emit("update:modelValue", r.target.value))
16
+ }), null, 16, p));
44
17
  }
45
18
  };
46
19
  export {
47
- x as default
20
+ c as default
48
21
  };
@@ -1,8 +1,29 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
1
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
+ export default _default;
3
+ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import('vue').DefineComponent<{}, {
7
+ $emit: (event: "update:modelValue" | "submit", ...args: any[]) => void;
8
+ modelValue: string;
2
9
  placeholder: string;
10
+ label: string;
11
+ submitButtonProps: Record<string, any>;
12
+ id?: string | undefined;
3
13
  $props: {
14
+ readonly modelValue?: string | undefined;
4
15
  readonly placeholder?: string | undefined;
16
+ readonly label?: string | undefined;
17
+ readonly submitButtonProps?: Record<string, any> | undefined;
18
+ readonly id?: string | undefined;
5
19
  };
6
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
7
- export default _default;
20
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLFormElement>;
21
+ type __VLS_TemplateResult = {
22
+ attrs: Partial<{}>;
23
+ slots: {
24
+ submit?(_: {}): any;
25
+ };
26
+ refs: {};
27
+ rootEl: HTMLFormElement;
28
+ };
8
29
  //# sourceMappingURL=UluSearchForm.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UluSearchForm.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluSearchForm.vue"],"names":[],"mappings":"AAmBA;"}
1
+ {"version":3,"file":"UluSearchForm.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/forms/UluSearchForm.vue"],"names":[],"mappings":"AAyBA;wBAiOqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAZjC;;;;;;;;;;;;;;uPASG"}
@@ -1,36 +1,81 @@
1
- import { createElementBlock as o, openBlock as a, createElementVNode as e, createVNode as l } from "vue";
2
- import s from "../elements/UluIcon.vue.js";
3
- const c = { class: "form-theme search-form type-small" }, i = { class: "search-form__field" }, n = ["placeholder"], m = {
4
- class: "search-form__submit button button--primary",
5
- "aria-label": "Submit Search"
6
- }, h = {
1
+ import { computed as d, createElementBlock as p, openBlock as m, withModifiers as c, createElementVNode as t, toDisplayString as f, renderSlot as h, createVNode as _, mergeProps as b } from "vue";
2
+ import { newId as g } from "../../utils/dom.js";
3
+ import S from "../elements/UluButton.vue.js";
4
+ const y = { class: "input-group input-group--joined" }, v = { class: "input-group__item input-group__item--field" }, V = ["for"], B = ["id", "placeholder", "value"], k = { class: "input-group__item" }, $ = {
7
5
  __name: "UluSearchForm",
8
6
  props: {
7
+ /**
8
+ * The search input value (for v-model).
9
+ */
10
+ modelValue: {
11
+ type: String,
12
+ default: ""
13
+ },
9
14
  /**
10
15
  * The placeholder text for the search input.
11
16
  */
12
17
  placeholder: {
13
18
  type: String,
14
19
  default: "Titles, keyword…"
15
- }
20
+ },
21
+ /**
22
+ * The visually hidden label for the search input.
23
+ */
24
+ label: {
25
+ type: String,
26
+ default: "Search"
27
+ },
28
+ /**
29
+ * Props to pass to the default UluButton component (used for submit button)
30
+ * - Alternately use 'submit' slot
31
+ */
32
+ submitButtonProps: {
33
+ type: Object,
34
+ default: () => ({
35
+ type: "submit",
36
+ primary: !0,
37
+ icon: "type:search",
38
+ ariaLabel: "Submit Search"
39
+ })
40
+ },
41
+ /**
42
+ * Optional ID for the input element. If not provided, a unique ID is generated.
43
+ */
44
+ id: String
16
45
  },
17
- setup(r) {
18
- return (p, t) => (a(), o("div", c, [
19
- e("div", i, [
20
- t[0] || (t[0] = e("label", { class: "hidden-visually" }, "Search", -1)),
21
- e("input", {
22
- class: "search-form__input",
23
- type: "text",
24
- id: "example-input",
25
- placeholder: r.placeholder
26
- }, null, 8, n)
27
- ]),
28
- e("button", m, [
29
- l(s, { icon: "type:search" })
46
+ emits: ["update:modelValue", "submit"],
47
+ setup(e, { emit: r }) {
48
+ const o = e, a = r, i = d(() => o.id || g()), s = () => {
49
+ a("submit", o.modelValue);
50
+ };
51
+ return (l, u) => (m(), p("form", {
52
+ class: "form-theme",
53
+ onSubmit: c(s, ["prevent"])
54
+ }, [
55
+ t("div", y, [
56
+ t("div", v, [
57
+ t("label", {
58
+ for: i.value,
59
+ class: "hidden-visually"
60
+ }, f(e.label), 9, V),
61
+ t("input", {
62
+ type: "search",
63
+ id: i.value,
64
+ class: "input-group__input",
65
+ placeholder: e.placeholder,
66
+ value: e.modelValue,
67
+ onInput: u[0] || (u[0] = (n) => l.$emit("update:modelValue", n.target.value))
68
+ }, null, 40, B)
69
+ ]),
70
+ t("div", k, [
71
+ h(l.$slots, "submit", {}, () => [
72
+ _(S, b({ class: "input-group__button" }, e.submitButtonProps), null, 16)
73
+ ])
74
+ ])
30
75
  ])
31
- ]));
76
+ ], 32));
32
77
  }
33
78
  };
34
79
  export {
35
- h as default
80
+ $ as default
36
81
  };