@ulu/frontend-vue 0.2.0-beta.8 → 0.3.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.
- package/dist/components/collapsible/UluAccordionGroup.vue.d.ts +2 -2
- package/dist/components/collapsible/UluAccordionGroup.vue.d.ts.map +1 -1
- package/dist/components/collapsible/UluAccordionGroup.vue.js +22 -19
- package/dist/components/collapsible/UluDropdown.vue.d.ts +1 -1
- package/dist/components/collapsible/UluDropdown.vue.d.ts.map +1 -1
- package/dist/components/collapsible/UluDropdown.vue.js +22 -15
- package/dist/components/collapsible/UluModal.vue.d.ts +43 -248
- package/dist/components/collapsible/UluModal.vue.d.ts.map +1 -1
- package/dist/components/collapsible/UluModal.vue.js +139 -191
- package/dist/components/collapsible/UluTabGroup.vue.d.ts +2 -0
- package/dist/components/collapsible/UluTabGroup.vue.d.ts.map +1 -1
- package/dist/components/collapsible/UluTabGroup.vue.js +23 -14
- package/dist/components/elements/UluAlert.vue.d.ts +29 -144
- package/dist/components/elements/UluAlert.vue.d.ts.map +1 -1
- package/dist/components/elements/UluAlert.vue.js +39 -50
- package/dist/components/elements/UluBadge.vue.d.ts +6 -6
- package/dist/components/elements/UluBadgeStack.vue.d.ts +1 -1
- package/dist/components/elements/UluBadgeStack.vue.d.ts.map +1 -1
- package/dist/components/elements/UluBadgeStack.vue.js +12 -9
- package/dist/components/elements/UluButton.vue.d.ts +47 -177
- package/dist/components/elements/UluButton.vue.d.ts.map +1 -1
- package/dist/components/elements/UluButton.vue.js +59 -72
- package/dist/components/elements/UluButtonVerbose.vue.d.ts +38 -123
- package/dist/components/elements/UluButtonVerbose.vue.d.ts.map +1 -1
- package/dist/components/elements/UluButtonVerbose.vue.js +52 -65
- package/dist/components/elements/UluCallout.vue.d.ts +20 -25
- package/dist/components/elements/UluCallout.vue.d.ts.map +1 -1
- package/dist/components/elements/UluCallout.vue.js +11 -16
- package/dist/components/elements/UluCaptionedFigure.vue.d.ts +25 -0
- package/dist/components/elements/UluCaptionedFigure.vue.d.ts.map +1 -0
- package/dist/components/elements/UluCaptionedFigure.vue.js +48 -0
- package/dist/components/elements/UluCard.vue.d.ts +2 -2
- package/dist/components/elements/UluDefinitionList.vue.d.ts +4 -2
- package/dist/components/elements/UluDefinitionList.vue.d.ts.map +1 -1
- package/dist/components/elements/UluDefinitionList.vue.js +32 -28
- package/dist/components/elements/UluExternalLink.vue.d.ts +2 -2
- package/dist/components/elements/UluImage.vue.d.ts +14 -0
- package/dist/components/elements/UluImage.vue.d.ts.map +1 -0
- package/dist/components/elements/UluImage.vue.js +53 -0
- package/dist/components/elements/UluList.vue.d.ts.map +1 -1
- package/dist/components/elements/UluList.vue.js +14 -13
- package/dist/components/elements/UluOverflowScroller.vue.d.ts +49 -0
- package/dist/components/elements/UluOverflowScroller.vue.d.ts.map +1 -0
- package/dist/components/elements/UluOverflowScroller.vue.js +138 -0
- package/dist/components/elements/UluScrollSlider.vue.d.ts +38 -0
- package/dist/components/elements/UluScrollSlider.vue.d.ts.map +1 -0
- package/dist/components/elements/UluScrollSlider.vue.js +146 -0
- package/dist/components/elements/UluSlider.vue.d.ts +57 -0
- package/dist/components/elements/UluSlider.vue.d.ts.map +1 -0
- package/dist/components/elements/UluSlider.vue.js +277 -0
- package/dist/components/forms/UluFormFile.vue.d.ts +2 -2
- package/dist/components/forms/UluFormRadio.vue.d.ts +4 -4
- package/dist/components/index.d.ts +6 -0
- package/dist/components/layout/UluTitleRail.vue.d.ts +29 -87
- package/dist/components/layout/UluTitleRail.vue.d.ts.map +1 -1
- package/dist/components/layout/UluTitleRail.vue.js +51 -46
- package/dist/components/navigation/UluBreadcrumb.vue.d.ts +27 -68
- package/dist/components/navigation/UluBreadcrumb.vue.d.ts.map +1 -1
- package/dist/components/navigation/UluBreadcrumb.vue.js +51 -54
- package/dist/components/navigation/UluMenu.vue.d.ts +30 -138
- package/dist/components/navigation/UluMenu.vue.d.ts.map +1 -1
- package/dist/components/navigation/UluMenu.vue.js +85 -84
- package/dist/components/navigation/UluMenuStack.vue.d.ts +12 -2
- package/dist/components/navigation/UluMenuStack.vue.d.ts.map +1 -1
- package/dist/components/navigation/UluMenuStack.vue.js +26 -18
- package/dist/components/navigation/UluNavStrip.vue.d.ts +22 -134
- package/dist/components/navigation/UluNavStrip.vue.d.ts.map +1 -1
- package/dist/components/navigation/UluNavStrip.vue.js +43 -31
- package/dist/components/systems/facets/UluFacetsSidebarLayout.vue.js +10 -10
- package/dist/components/systems/facets/useFacets.d.ts +3 -0
- package/dist/components/systems/facets/useFacets.d.ts.map +1 -1
- package/dist/components/systems/facets/useFacets.js +124 -112
- package/dist/components/systems/index.d.ts +0 -3
- package/dist/components/systems/scroll-anchors/UluScrollAnchors.vue.d.ts +2 -2
- package/dist/components/systems/table-sticky/UluTableSticky.vue.d.ts +504 -432
- package/dist/components/systems/table-sticky/UluTableSticky.vue.d.ts.map +1 -1
- package/dist/components/systems/table-sticky/UluTableSticky.vue.js +313 -456
- package/dist/components/systems/table-sticky/UluTableStickyRows.vue.d.ts +40 -31
- package/dist/components/systems/table-sticky/UluTableStickyRows.vue.d.ts.map +1 -1
- package/dist/components/systems/table-sticky/UluTableStickyRows.vue.js +43 -45
- package/dist/components/systems/table-sticky/UluTableStickyTable.vue.d.ts +60 -146
- package/dist/components/systems/table-sticky/UluTableStickyTable.vue.d.ts.map +1 -1
- package/dist/components/systems/table-sticky/UluTableStickyTable.vue.js +156 -175
- package/dist/components/utils/UluAction.vue.d.ts +36 -0
- package/dist/components/utils/UluAction.vue.d.ts.map +1 -0
- package/dist/components/utils/UluAction.vue.js +59 -0
- package/dist/components/utils/UluConditionalText.vue.d.ts +7 -26
- package/dist/components/utils/UluConditionalText.vue.d.ts.map +1 -1
- package/dist/components/utils/UluConditionalText.vue.js +12 -14
- package/dist/components/utils/UluConditionalWrapper.vue.d.ts.map +1 -1
- package/dist/components/utils/UluConditionalWrapper.vue.js +11 -9
- package/dist/components/utils/UluPlaceholderImage.vue.d.ts +12 -57
- package/dist/components/utils/UluPlaceholderImage.vue.d.ts.map +1 -1
- package/dist/components/utils/UluPlaceholderImage.vue.js +18 -26
- package/dist/components/utils/UluPlaceholderText.vue.d.ts +6 -20
- package/dist/components/utils/UluPlaceholderText.vue.js +12 -14
- package/dist/components/utils/UluRouteAnnouncer.vue.d.ts +9 -58
- package/dist/components/utils/UluRouteAnnouncer.vue.d.ts.map +1 -1
- package/dist/components/utils/UluRouteAnnouncer.vue.js +28 -28
- package/dist/components/visualizations/UluAnimateNumber.vue.d.ts +20 -14
- package/dist/components/visualizations/UluAnimateNumber.vue.d.ts.map +1 -1
- package/dist/components/visualizations/UluAnimateNumber.vue.js +18 -26
- package/dist/components/visualizations/UluProgressCircle.vue.d.ts +2 -2
- package/dist/composables/useModifiers.d.ts +20 -25
- package/dist/composables/useModifiers.d.ts.map +1 -1
- package/dist/index.js +206 -200
- package/dist/plugins/modals/UluModalsDisplay.vue.d.ts +3 -12
- package/dist/plugins/modals/UluModalsDisplay.vue.js +24 -45
- package/dist/plugins/modals/index.js +6 -6
- package/dist/plugins/toast/UluToast.vue.d.ts +24 -49
- package/dist/plugins/toast/UluToast.vue.d.ts.map +1 -1
- package/dist/plugins/toast/UluToast.vue.js +68 -77
- package/dist/plugins/toast/UluToastDisplay.vue.d.ts +1 -9
- package/dist/plugins/toast/UluToastDisplay.vue.js +27 -35
- package/dist/plugins/toast/defaults.d.ts +40 -35
- package/dist/plugins/toast/defaults.js +2 -2
- package/dist/plugins/toast/index.js +4 -4
- package/dist/plugins/toast/store.d.ts +40 -35
- package/dist/plugins/toast/store.d.ts.map +1 -1
- package/dist/utils/props.d.ts +7 -0
- package/dist/utils/props.d.ts.map +1 -0
- package/dist/utils/props.js +6 -0
- package/lib/components/collapsible/UluAccordionGroup.vue +4 -1
- package/lib/components/collapsible/UluDropdown.vue +5 -1
- package/lib/components/collapsible/UluModal.vue +278 -298
- package/lib/components/collapsible/UluTabGroup.vue +21 -6
- package/lib/components/elements/UluAlert.vue +38 -51
- package/lib/components/elements/UluBadgeStack.vue +4 -1
- package/lib/components/elements/UluButton.vue +105 -129
- package/lib/components/elements/UluButtonVerbose.vue +67 -89
- package/lib/components/elements/UluCallout.vue +15 -19
- package/lib/components/elements/UluCaptionedFigure.vue +40 -0
- package/lib/components/elements/UluDefinitionList.vue +27 -6
- package/lib/components/elements/UluImage.vue +56 -0
- package/lib/components/elements/UluList.vue +1 -0
- package/lib/components/elements/UluOverflowScroller.vue +140 -0
- package/lib/components/elements/UluScrollSlider.vue +150 -0
- package/lib/components/elements/UluSlider.vue +488 -0
- package/lib/components/index.js +10 -0
- package/lib/components/layout/UluTitleRail.vue +55 -48
- package/lib/components/navigation/UluBreadcrumb.vue +29 -34
- package/lib/components/navigation/UluMenu.vue +60 -71
- package/lib/components/navigation/UluMenuStack.vue +6 -1
- package/lib/components/navigation/UluNavStrip.vue +43 -31
- package/lib/components/systems/facets/useFacets.js +33 -17
- package/lib/components/systems/index.js +0 -4
- package/lib/components/systems/table-sticky/UluTableSticky.vue +602 -576
- package/lib/components/systems/table-sticky/UluTableStickyRows.vue +16 -27
- package/lib/components/systems/table-sticky/UluTableStickyTable.vue +95 -96
- package/lib/components/utils/UluAction.vue +81 -0
- package/lib/components/utils/UluConditionalText.vue +13 -16
- package/lib/components/utils/UluConditionalWrapper.vue +5 -1
- package/lib/components/utils/UluPlaceholderImage.vue +44 -46
- package/lib/components/utils/UluPlaceholderText.vue +10 -13
- package/lib/components/utils/UluRouteAnnouncer.vue +59 -47
- package/lib/components/visualizations/UluAnimateNumber.vue +23 -30
- package/lib/composables/useModifiers.js +21 -26
- package/lib/plugins/modals/UluModalsDisplay.vue +44 -45
- package/lib/plugins/toast/UluToast.vue +28 -34
- package/lib/plugins/toast/UluToastDisplay.vue +9 -15
- package/lib/utils/props.js +8 -0
- package/package.json +9 -5
- package/dist/components/systems/slider/UluImageSlideShow.vue.d.ts +0 -130
- package/dist/components/systems/slider/UluImageSlideShow.vue.d.ts.map +0 -1
- package/dist/components/systems/slider/UluImageSlideShow.vue.js +0 -73
- package/dist/components/systems/slider/UluSlideShow.vue.d.ts +0 -205
- package/dist/components/systems/slider/UluSlideShow.vue.d.ts.map +0 -1
- package/dist/components/systems/slider/UluSlideShow.vue.js +0 -292
- package/dist/components/systems/slider/UluSlideShowSlide.vue.d.ts +0 -17
- package/dist/components/systems/slider/UluSlideShowSlide.vue.d.ts.map +0 -1
- package/dist/components/systems/slider/UluSlideShowSlide.vue.js +0 -26
- package/lib/components/systems/slider/UluImageSlideShow.vue +0 -75
- package/lib/components/systems/slider/UluSlideShow.vue +0 -336
- package/lib/components/systems/slider/UluSlideShowSlide.vue +0 -25
|
@@ -21,60 +21,47 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
</template>
|
|
23
23
|
|
|
24
|
-
<script>
|
|
24
|
+
<script setup>
|
|
25
25
|
import { computed } from "vue";
|
|
26
|
-
import UluButton from "./UluButton.vue";
|
|
27
26
|
import UluIcon from "./UluIcon.vue";
|
|
28
27
|
import { useModifiers } from "../../composables/useModifiers.js";
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
*/
|
|
50
|
-
icon: String,
|
|
51
|
-
/**
|
|
52
|
-
* Error, warning, info, success etc (must have these callout modifiers setup and this is used for type color [ie. color-error])
|
|
53
|
-
*/
|
|
54
|
-
type: {
|
|
55
|
-
type: String,
|
|
56
|
-
default: "danger"
|
|
57
|
-
},
|
|
58
|
-
/**
|
|
59
|
-
* Compact callout style
|
|
60
|
-
*/
|
|
61
|
-
compact: Boolean,
|
|
62
|
-
/**
|
|
63
|
-
* Modifiers (to add any modifier classes based on base class [ie. 'tertiary'])
|
|
64
|
-
*/
|
|
65
|
-
modifiers: [String, Array]
|
|
28
|
+
|
|
29
|
+
const props = defineProps({
|
|
30
|
+
/**
|
|
31
|
+
* Alert Title
|
|
32
|
+
*/
|
|
33
|
+
title: String,
|
|
34
|
+
/**
|
|
35
|
+
* Alert description
|
|
36
|
+
*/
|
|
37
|
+
description: String,
|
|
38
|
+
/**
|
|
39
|
+
* Pass specific icon definition, else it will resolve based on common types
|
|
40
|
+
*/
|
|
41
|
+
icon: String,
|
|
42
|
+
/**
|
|
43
|
+
* Error, warning, info, success etc (must have these callout modifiers setup and this is used for type color [ie. color-error])
|
|
44
|
+
*/
|
|
45
|
+
type: {
|
|
46
|
+
type: String,
|
|
47
|
+
default: "danger"
|
|
66
48
|
},
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Compact callout style
|
|
51
|
+
*/
|
|
52
|
+
compact: Boolean,
|
|
53
|
+
/**
|
|
54
|
+
* Modifiers (to add any modifier classes based on base class [ie. 'tertiary'])
|
|
55
|
+
*/
|
|
56
|
+
modifiers: [String, Array]
|
|
57
|
+
});
|
|
76
58
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
59
|
+
const { resolvedModifiers } = useModifiers({
|
|
60
|
+
props,
|
|
61
|
+
baseClass: "callout",
|
|
62
|
+
internal: computed(() => ({
|
|
63
|
+
[props.type] : props.type,
|
|
64
|
+
"compact": props.compact,
|
|
65
|
+
}))
|
|
66
|
+
});
|
|
80
67
|
</script>
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
:
|
|
2
|
+
<UluAction
|
|
3
|
+
:to="to"
|
|
4
|
+
:href="href"
|
|
5
|
+
:target="target"
|
|
6
|
+
:download="download"
|
|
4
7
|
class="button"
|
|
5
8
|
:class="[
|
|
6
9
|
{
|
|
7
|
-
'button--transparent' : transparent,
|
|
8
|
-
'button--primary' : primary,
|
|
9
|
-
'button--secondary' : secondary,
|
|
10
|
-
'button--outline' : outline,
|
|
11
|
-
'button--small' : small,
|
|
12
|
-
'button--large' : large,
|
|
13
|
-
'button--icon' : iconOnly,
|
|
14
10
|
'no-margin' : noMargin,
|
|
15
11
|
},
|
|
16
|
-
classes,
|
|
17
12
|
resolvedModifiers
|
|
18
13
|
]"
|
|
19
|
-
v-bind="attrs"
|
|
20
14
|
:aria-label="resolvedAriaLabel"
|
|
21
15
|
>
|
|
22
16
|
<slot name="before"/>
|
|
@@ -36,126 +30,108 @@
|
|
|
36
30
|
class="button__icon"
|
|
37
31
|
/>
|
|
38
32
|
<slot name="after"/>
|
|
39
|
-
</
|
|
33
|
+
</UluAction>
|
|
40
34
|
</template>
|
|
41
35
|
|
|
42
|
-
<script>
|
|
43
|
-
import {
|
|
36
|
+
<script setup>
|
|
37
|
+
import { computed } from "vue";
|
|
38
|
+
import UluAction from "../utils/UluAction.vue";
|
|
44
39
|
import UluIcon from "./UluIcon.vue";
|
|
45
40
|
import { useModifiers } from "../../composables/useModifiers.js";
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
},
|
|
143
|
-
element() {
|
|
144
|
-
return this.to ? RouterLink : this.href ? "a" : "button";
|
|
145
|
-
},
|
|
146
|
-
attrs() {
|
|
147
|
-
const { to, href, download, target } = this;
|
|
148
|
-
const attrs = to ? { to } : href ? { href } : {};
|
|
149
|
-
if (href) {
|
|
150
|
-
if (target) {
|
|
151
|
-
attrs.target = target;
|
|
152
|
-
}
|
|
153
|
-
if (download) {
|
|
154
|
-
attrs.download = typeof download === "string" ? download : true;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return attrs;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
};
|
|
41
|
+
|
|
42
|
+
const props = defineProps({
|
|
43
|
+
/**
|
|
44
|
+
* Icon prop, if used will set the icon for the button, will use UluIcon (which uses font-awesome icons conditionally)
|
|
45
|
+
* - If using custom icons don't use this prop, use before or after slots with correct classes (ie .button__icon)
|
|
46
|
+
*/
|
|
47
|
+
icon: [String, Array],
|
|
48
|
+
/**
|
|
49
|
+
* If passing an icon (and not using iconOnly) this determines if the icon is before or after (default) the text
|
|
50
|
+
*/
|
|
51
|
+
iconBefore: Boolean,
|
|
52
|
+
/**
|
|
53
|
+
* Button style for only icon
|
|
54
|
+
*/
|
|
55
|
+
iconOnly: Boolean,
|
|
56
|
+
/**
|
|
57
|
+
* If set will use router-link for button component and pass to prop
|
|
58
|
+
*/
|
|
59
|
+
to: [String, Object],
|
|
60
|
+
/**
|
|
61
|
+
* Sets the button to a link with this href
|
|
62
|
+
*/
|
|
63
|
+
href: String,
|
|
64
|
+
/**
|
|
65
|
+
* Set a value for target attribute when button is a link
|
|
66
|
+
*/
|
|
67
|
+
target: String,
|
|
68
|
+
/**
|
|
69
|
+
* Sets the download attribute on the link (passing string [filename] will populate the download attribute, true will just include it as boolean attribute)
|
|
70
|
+
*/
|
|
71
|
+
download: [Boolean, String],
|
|
72
|
+
/**
|
|
73
|
+
* For icon only buttons or buttons that need an explicit label
|
|
74
|
+
*/
|
|
75
|
+
alt: String,
|
|
76
|
+
/**
|
|
77
|
+
* If not using slot this sets the buttons text via prop
|
|
78
|
+
*/
|
|
79
|
+
text: String,
|
|
80
|
+
/**
|
|
81
|
+
* Pass any sizes setup for button (ie. small, large, etc)
|
|
82
|
+
*/
|
|
83
|
+
size: String,
|
|
84
|
+
/**
|
|
85
|
+
* Preset to set primary style (needs to be a button style in ulu scss)
|
|
86
|
+
*/
|
|
87
|
+
primary: Boolean,
|
|
88
|
+
/**
|
|
89
|
+
* Preset to set secondary style (needs to be a button style in ulu scss)
|
|
90
|
+
*/
|
|
91
|
+
secondary: Boolean,
|
|
92
|
+
/**
|
|
93
|
+
* Preset to set small size (use "size" for any sizes)
|
|
94
|
+
*/
|
|
95
|
+
small: Boolean,
|
|
96
|
+
/**
|
|
97
|
+
* Preset to set large size (use "size" for any sizes)
|
|
98
|
+
*/
|
|
99
|
+
large: Boolean,
|
|
100
|
+
/**
|
|
101
|
+
* Preset to set outline style button (needs to be a button style in ulu scss)
|
|
102
|
+
*/
|
|
103
|
+
outline: Boolean,
|
|
104
|
+
/**
|
|
105
|
+
* Preset to set transparent style button (needs to be a button style in ulu scss)
|
|
106
|
+
*/
|
|
107
|
+
transparent: Boolean,
|
|
108
|
+
/**
|
|
109
|
+
* Add no-margin utility
|
|
110
|
+
*/
|
|
111
|
+
noMargin: Boolean,
|
|
112
|
+
/**
|
|
113
|
+
* Modifiers (to add any modifier classes based on base class [ie. 'tertiary'])
|
|
114
|
+
*/
|
|
115
|
+
modifiers: [String, Array]
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const { resolvedModifiers } = useModifiers({
|
|
119
|
+
props,
|
|
120
|
+
baseClass: "button",
|
|
121
|
+
internal: computed(() => ({
|
|
122
|
+
"transparent" : props.transparent,
|
|
123
|
+
"primary" : props.primary,
|
|
124
|
+
"secondary" : props.secondary,
|
|
125
|
+
"outline" : props.outline,
|
|
126
|
+
"small" : props.small,
|
|
127
|
+
"large" : props.large,
|
|
128
|
+
"icon" : props.iconOnly,
|
|
129
|
+
[props.size] : props.size
|
|
130
|
+
}))
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
const resolvedAriaLabel = computed(() => {
|
|
134
|
+
const label = props.alt || (props.iconOnly && props.text);
|
|
135
|
+
return label ? label : null;
|
|
136
|
+
});
|
|
161
137
|
</script>
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
:
|
|
2
|
+
<UluAction
|
|
3
|
+
:to="to"
|
|
4
|
+
:href="href"
|
|
5
|
+
:target="target"
|
|
6
|
+
:download="download"
|
|
4
7
|
class="button-verbose"
|
|
5
|
-
:class="
|
|
6
|
-
{
|
|
7
|
-
'button-verbose--inline': inline,
|
|
8
|
-
'button-verbose--full-width': fullWidth,
|
|
9
|
-
},
|
|
10
|
-
resolvedModifiers
|
|
11
|
-
]"
|
|
12
|
-
v-bind="attrs"
|
|
8
|
+
:class="resolvedModifiers"
|
|
13
9
|
>
|
|
14
10
|
<component
|
|
15
11
|
v-if="$slots.title || title"
|
|
@@ -31,89 +27,71 @@
|
|
|
31
27
|
class="button-verbose__icon"
|
|
32
28
|
aria-hidden="true"
|
|
33
29
|
/>
|
|
34
|
-
</
|
|
30
|
+
</UluAction>
|
|
35
31
|
</template>
|
|
36
32
|
|
|
37
|
-
<script>
|
|
38
|
-
import {
|
|
33
|
+
<script setup>
|
|
34
|
+
import { computed } from "vue";
|
|
35
|
+
import UluAction from "../utils/UluAction.vue";
|
|
39
36
|
import UluIcon from "./UluIcon.vue";
|
|
40
37
|
import { useModifiers } from "../../composables/useModifiers.js";
|
|
41
38
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
const props = defineProps({
|
|
40
|
+
/**
|
|
41
|
+
* The title of the button. Can also be passed via slot.
|
|
42
|
+
*/
|
|
43
|
+
title: String,
|
|
44
|
+
/**
|
|
45
|
+
* Optional element to use for title
|
|
46
|
+
*/
|
|
47
|
+
titleElement: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: "strong"
|
|
46
50
|
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
*/
|
|
94
|
-
modifiers: [String, Array]
|
|
95
|
-
},
|
|
96
|
-
setup(props) {
|
|
97
|
-
const { resolvedModifiers } = useModifiers({ props, baseClass: "button-verbose" });
|
|
98
|
-
return { resolvedModifiers };
|
|
99
|
-
},
|
|
100
|
-
computed: {
|
|
101
|
-
element() {
|
|
102
|
-
return this.to ? RouterLink : this.href ? "a" : "button";
|
|
103
|
-
},
|
|
104
|
-
attrs() {
|
|
105
|
-
const { to, href, download, target } = this;
|
|
106
|
-
const attrs = to ? { to } : href ? { href } : {};
|
|
107
|
-
if (href) {
|
|
108
|
-
if (target) {
|
|
109
|
-
attrs.target = target;
|
|
110
|
-
}
|
|
111
|
-
if (download) {
|
|
112
|
-
attrs.download = typeof download === "string" ? download : true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return attrs;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
};
|
|
51
|
+
/**
|
|
52
|
+
* The body text of the button. Can also be passed via slot.
|
|
53
|
+
*/
|
|
54
|
+
body: String,
|
|
55
|
+
/**
|
|
56
|
+
* Icon prop, if used will set the icon for the button, will use UluIcon (which uses font-awesome icons conditionally)
|
|
57
|
+
*/
|
|
58
|
+
icon: [String, Array],
|
|
59
|
+
/**
|
|
60
|
+
* If set will use router-link for button component and pass to prop
|
|
61
|
+
*/
|
|
62
|
+
to: [String, Object],
|
|
63
|
+
/**
|
|
64
|
+
* Sets the button to a link with this href
|
|
65
|
+
*/
|
|
66
|
+
href: String,
|
|
67
|
+
/**
|
|
68
|
+
* Set a value for target attribute when button is a link
|
|
69
|
+
*/
|
|
70
|
+
target: String,
|
|
71
|
+
/**
|
|
72
|
+
* Sets the download attribute on the link (passing string [filename] will populate the download attribute, true will just include it as boolean attribute)
|
|
73
|
+
*/
|
|
74
|
+
download: [Boolean, String],
|
|
75
|
+
/**
|
|
76
|
+
* Preset to set inline style
|
|
77
|
+
*/
|
|
78
|
+
inline: Boolean,
|
|
79
|
+
/**
|
|
80
|
+
* Preset to set full-width style
|
|
81
|
+
*/
|
|
82
|
+
fullWidth: Boolean,
|
|
83
|
+
/**
|
|
84
|
+
* Modifiers (to add any modifier classes based on base class [ie. 'tertiary'])
|
|
85
|
+
*/
|
|
86
|
+
modifiers: [String, Array]
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const { resolvedModifiers } = useModifiers({
|
|
90
|
+
props,
|
|
91
|
+
baseClass: "button-verbose",
|
|
92
|
+
internal: computed(() => ({
|
|
93
|
+
"inline": props.inline,
|
|
94
|
+
"full-width": props.fullWidth,
|
|
95
|
+
}))
|
|
96
|
+
});
|
|
119
97
|
</script>
|
|
@@ -7,24 +7,20 @@
|
|
|
7
7
|
</div>
|
|
8
8
|
</template>
|
|
9
9
|
|
|
10
|
-
<script>
|
|
10
|
+
<script setup>
|
|
11
11
|
import { useModifiers } from "../../composables/useModifiers.js";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const { resolvedModifiers } = useModifiers({ props, baseClass: "callout" });
|
|
27
|
-
return { resolvedModifiers };
|
|
28
|
-
}
|
|
29
|
-
};
|
|
12
|
+
|
|
13
|
+
const props = defineProps({
|
|
14
|
+
/**
|
|
15
|
+
* Add full height utility class
|
|
16
|
+
*/
|
|
17
|
+
fullHeight: Boolean,
|
|
18
|
+
/**
|
|
19
|
+
* Class modifiers (ie. 'transparent', 'secondary', etc)
|
|
20
|
+
* - Can be String or Array of Strings
|
|
21
|
+
*/
|
|
22
|
+
modifiers: [String, Array]
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const { resolvedModifiers } = useModifiers({ props, baseClass: "callout" });
|
|
30
26
|
</script>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<figure class="captioned-figure" :class="resolvedModifiers">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
<figcaption v-if="caption || $slots.caption" class="captioned-figure__caption">
|
|
5
|
+
<slot name="caption">{{ caption }}</slot>
|
|
6
|
+
</figcaption>
|
|
7
|
+
</figure>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script setup>
|
|
11
|
+
import { computed } from "vue";
|
|
12
|
+
import { useModifiers } from '../../composables/useModifiers.js';
|
|
13
|
+
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
/**
|
|
16
|
+
* The text content for the caption.
|
|
17
|
+
*/
|
|
18
|
+
caption: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: ''
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* Positioning (e.g., 'bottom', 'center', 'right') else defaults to traditional
|
|
24
|
+
*/
|
|
25
|
+
position: String,
|
|
26
|
+
/**
|
|
27
|
+
* Modifiers for styling and positioning (e.g., 'bottom', 'center', 'right', 'traditional').
|
|
28
|
+
*/
|
|
29
|
+
modifiers: [String, Array]
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const { resolvedModifiers } = useModifiers({
|
|
33
|
+
props,
|
|
34
|
+
baseClass: "captioned-figure",
|
|
35
|
+
internal: computed(() => ({
|
|
36
|
+
"traditional" : !props.position,
|
|
37
|
+
[props.position] : props.position
|
|
38
|
+
}))
|
|
39
|
+
});
|
|
40
|
+
</script>
|