@ulu/frontend-vue 0.3.2 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"UluList.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/elements/UluList.vue"],"names":[],"mappings":"AA8BA;wBA2OqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAVjC;;;;;;;;;;;;;;;;;;;;;;;2OAOG"}
1
+ {"version":3,"file":"UluList.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/elements/UluList.vue"],"names":[],"mappings":"AAiCA;wBAmPqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAVjC;;;;;;;;;;;;;;;;;;;;;;;2OAOG"}
@@ -1,13 +1,14 @@
1
- import { computed as n, createBlock as m, createCommentVNode as u, openBlock as t, resolveDynamicComponent as y, normalizeStyle as B, normalizeClass as o, withCtx as f, createElementBlock as d, Fragment as v, renderList as S, renderSlot as g, createTextVNode as k, toDisplayString as C } from "vue";
1
+ import { computed as n, createBlock as m, createCommentVNode as u, openBlock as l, resolveDynamicComponent as y, normalizeStyle as B, normalizeClass as o, withCtx as f, createElementBlock as d, Fragment as v, renderList as S, renderSlot as g, createTextVNode as k, toDisplayString as C } from "vue";
2
2
  const h = {
3
3
  __name: "UluList",
4
4
  props: {
5
5
  /**
6
6
  * Array of list items, output as is or use slot to template the item
7
+ * - Note item can add classes by defining { classes: { item } }
7
8
  */
8
9
  items: Array,
9
10
  /**
10
- * Classes object (keys are list and listItem to be applied to <ul> and <li>)
11
+ * Classes object (keys are { list, item } to be applied to <ul> and <li>)
11
12
  * - Any valid class binding for each
12
13
  */
13
14
  classes: {
@@ -49,8 +50,8 @@ const h = {
49
50
  listStyleType: String
50
51
  },
51
52
  setup(e) {
52
- const l = e, r = n(() => l.ordered || l.forceOrdered), c = n(() => r.value ? "ol" : "ul");
53
- return (i, O) => e.items?.length ? (t(), m(y(c.value), {
53
+ const r = e, s = n(() => r.ordered || r.forceOrdered), c = n(() => s.value ? "ol" : "ul");
54
+ return (i, O) => e.items?.length ? (l(), m(y(c.value), {
54
55
  key: 0,
55
56
  class: o([
56
57
  {
@@ -64,19 +65,22 @@ const h = {
64
65
  style: B({
65
66
  listStyleType: e.listStyleType
66
67
  }),
67
- reversed: r.value ? e.reversed : null,
68
+ reversed: s.value ? e.reversed : null,
68
69
  start: e.start
69
70
  }, {
70
71
  default: f(() => [
71
- (t(!0), d(v, null, S(e.items, (s, a) => (t(), d("li", {
72
+ (l(!0), d(v, null, S(e.items, (t, a) => (l(), d("li", {
72
73
  key: a,
73
- class: o(e.classes.listItem)
74
+ class: o([
75
+ e.classes.item,
76
+ t?.classes?.item
77
+ ])
74
78
  }, [
75
79
  g(i.$slots, "default", {
76
- item: s,
80
+ item: t,
77
81
  index: a
78
82
  }, () => [
79
- k(C(s), 1)
83
+ k(C(t), 1)
80
84
  ])
81
85
  ], 2))), 128))
82
86
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"UluMenu.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/navigation/UluMenu.vue"],"names":[],"mappings":"AAiDA;wBAyTqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;;;;2OAQG"}
1
+ {"version":3,"file":"UluMenu.vue.d.ts","sourceRoot":"","sources":["../../../lib/components/navigation/UluMenu.vue"],"names":[],"mappings":"AAsDA;wBAwUqB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;;6BAEtE,CAAC,EAAE,CAAC;;;AAXjC;;;;;;;;;;;;2OAQG"}
@@ -1,7 +1,7 @@
1
- import { resolveComponent as O, resolveDirective as $, createElementBlock as r, createCommentVNode as n, openBlock as t, normalizeClass as a, Fragment as S, renderList as d, withDirectives as x, renderSlot as u, createBlock as i, mergeProps as f, withCtx as y, createElementVNode as b, toDisplayString as D, createSlots as E } from "vue";
2
- import I from "../utils/UluAction.vue.js";
3
- import M from "../elements/UluIcon.vue.js";
4
- import U from "../elements/UluTag.vue.js";
1
+ import { resolveComponent as O, resolveDirective as $, createElementBlock as i, createCommentVNode as c, openBlock as t, normalizeClass as a, Fragment as w, renderList as k, withDirectives as S, renderSlot as u, createBlock as o, withCtx as h, createElementVNode as x, toDisplayString as b, mergeProps as m, createSlots as D } from "vue";
2
+ import E from "../utils/UluAction.vue.js";
3
+ import I from "../elements/UluIcon.vue.js";
4
+ import M from "../elements/UluTag.vue.js";
5
5
  const j = {
6
6
  __name: "UluMenu",
7
7
  props: {
@@ -41,18 +41,18 @@ const j = {
41
41
  */
42
42
  "item-click"
43
43
  ],
44
- setup(l, { emit: C }) {
45
- const h = C, v = (s, c) => {
46
- c.click && c.click(s), h("item-click", { item: c, event: s });
44
+ setup(l, { emit: y }) {
45
+ const C = y, g = (s, n) => {
46
+ n.click && n.click(s), C("item-click", { item: n, event: s });
47
47
  };
48
- return (s, c) => {
49
- const g = O("UluMenu", !0), A = $("ulu-tooltip");
50
- return l.items?.length ? (t(), r("ul", {
48
+ return (s, n) => {
49
+ const v = O("UluMenu", !0), A = $("ulu-tooltip");
50
+ return l.items?.length ? (t(), i("ul", {
51
51
  key: 0,
52
52
  class: a(l.classes.list)
53
53
  }, [
54
- (t(!0), r(S, null, d(l.items, (e, o) => (t(), r("li", {
55
- key: o,
54
+ (t(!0), i(w, null, k(l.items, (e, r) => (t(), i("li", {
55
+ key: r,
56
56
  class: a([
57
57
  l.classes.item,
58
58
  e?.classes?.item,
@@ -60,58 +60,64 @@ const j = {
60
60
  e.separatorAfter ? l.classes.itemSeparatorAfter : ""
61
61
  ])
62
62
  }, [
63
- x((t(), i(I, f({ ref_for: !0 }, e, {
63
+ S((t(), o(E, {
64
+ to: e.to,
65
+ path: e.path,
66
+ href: e.href,
67
+ target: e.target,
68
+ download: e.download,
69
+ element: e.element,
64
70
  activeClass: l.classes.linkActive,
65
71
  exactActiveClass: l.classes.linkExactActive,
66
- onClick: (k) => {
67
- v(k, e);
72
+ onClick: (f) => {
73
+ g(f, e);
68
74
  },
69
- class: [l.classes.link, e?.classes?.link],
75
+ class: a([l.classes.link, e?.classes?.link]),
70
76
  "aria-label": l.iconOnly ? e.title : null,
71
77
  id: e.id
72
- }), {
73
- default: y(() => [
78
+ }, {
79
+ default: h(() => [
74
80
  u(s.$slots, "default", {
75
81
  item: e,
76
- index: o
82
+ index: r
77
83
  }, () => [
78
- e.icon ? (t(), i(M, {
84
+ e.icon ? (t(), o(I, {
79
85
  key: 0,
80
86
  icon: e.icon,
81
87
  class: a([l.classes.linkIcon, e?.classes?.linkIcon])
82
- }, null, 8, ["icon", "class"])) : n("", !0),
83
- b("span", {
88
+ }, null, 8, ["icon", "class"])) : c("", !0),
89
+ x("span", {
84
90
  class: a([l.classes.linkText, e?.classes?.linkText])
85
- }, D(e.title), 3),
86
- e.tag ? (t(), i(U, f({
91
+ }, b(e.title), 3),
92
+ e.tag ? (t(), o(M, m({
87
93
  key: 1,
88
94
  ref_for: !0
89
- }, e.tag), null, 16)) : n("", !0)
95
+ }, e.tag), null, 16)) : c("", !0)
90
96
  ])
91
97
  ]),
92
98
  _: 2
93
- }, 1040, ["activeClass", "exactActiveClass", "onClick", "class", "aria-label", "id"])), [
99
+ }, 1032, ["to", "path", "href", "target", "download", "element", "activeClass", "exactActiveClass", "onClick", "class", "aria-label", "id"])), [
94
100
  [A, l.iconOnly ? e.title : e.tooltip || null]
95
101
  ]),
96
102
  u(s.$slots, "item", {
97
103
  item: e,
98
- index: o
104
+ index: r
99
105
  }),
100
- !l.noChildren && e?.children?.length ? (t(), i(g, {
106
+ !l.noChildren && e?.children?.length ? (t(), o(v, {
101
107
  key: 0,
102
108
  iconOnly: l.iconOnly,
103
109
  classes: l.classes,
104
110
  items: e.children
105
- }, E({ _: 2 }, [
106
- d(s.$slots, (k, m) => ({
107
- name: m,
108
- fn: y((B) => [
109
- u(s.$slots, m, f({ ref_for: !0 }, B))
111
+ }, D({ _: 2 }, [
112
+ k(s.$slots, (f, d) => ({
113
+ name: d,
114
+ fn: h((B) => [
115
+ u(s.$slots, d, m({ ref_for: !0 }, B))
110
116
  ])
111
117
  }))
112
- ]), 1032, ["iconOnly", "classes", "items"])) : n("", !0)
118
+ ]), 1032, ["iconOnly", "classes", "items"])) : c("", !0)
113
119
  ], 2))), 128))
114
- ], 2)) : n("", !0);
120
+ ], 2)) : c("", !0);
115
121
  };
116
122
  }
117
123
  };
@@ -20,7 +20,10 @@
20
20
  <li
21
21
  v-for="(item, index) in items"
22
22
  :key="index"
23
- :class="classes.listItem"
23
+ :class="[
24
+ classes.item,
25
+ item?.classes?.item
26
+ ]"
24
27
  >
25
28
  <slot :item="item" :index="index">
26
29
  {{ item }}
@@ -35,10 +38,11 @@
35
38
  const props = defineProps({
36
39
  /**
37
40
  * Array of list items, output as is or use slot to template the item
41
+ * - Note item can add classes by defining { classes: { item } }
38
42
  */
39
43
  items: Array,
40
44
  /**
41
- * Classes object (keys are list and listItem to be applied to <ul> and <li>)
45
+ * Classes object (keys are { list, item } to be applied to <ul> and <li>)
42
46
  * - Any valid class binding for each
43
47
  */
44
48
  classes: {
@@ -14,7 +14,12 @@
14
14
  ]"
15
15
  >
16
16
  <UluAction
17
- v-bind="item"
17
+ :to="item.to"
18
+ :path="item.path"
19
+ :href="item.href"
20
+ :target="item.target"
21
+ :download="item.download"
22
+ :element="item.element"
18
23
  :activeClass="classes.linkActive"
19
24
  :exactActiveClass="classes.linkExactActive"
20
25
  @click="(event) => { handleItemClick(event, item) }"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend-vue",
3
- "version": "0.3.2",
3
+ "version": "0.4.1",
4
4
  "description": "A modular, tree-shakeable Vue 3 component library for the Ulu Frontend theming system, plus general utilities for Vue development",
5
5
  "type": "module",
6
6
  "files": [
@@ -65,7 +65,7 @@
65
65
  "@fortawesome/vue-fontawesome": "^3.0.8",
66
66
  "@headlessui/vue": "^1.7.23",
67
67
  "@portabletext/vue": "^1.0.14",
68
- "@ulu/frontend": "^0.3.0",
68
+ "@ulu/frontend": "^0.3.6",
69
69
  "@ulu/utils": "^0.0.34",
70
70
  "@unhead/vue": "^2.0.11",
71
71
  "fuse.js": "^6.6.2",
@@ -87,7 +87,7 @@
87
87
  "@storybook/addon-essentials": "^9.0.0-alpha.12",
88
88
  "@storybook/addon-links": "^9.1.1",
89
89
  "@storybook/vue3-vite": "^9.1.1",
90
- "@ulu/frontend": "^0.3.3",
90
+ "@ulu/frontend": "^0.3.6",
91
91
  "@ulu/utils": "^0.0.34",
92
92
  "@unhead/vue": "^2.0.11",
93
93
  "@vitejs/plugin-vue": "^6.0.0",