vueless 0.0.504 → 0.0.506
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/package.json +1 -1
- package/types.ts +6 -0
- package/ui.button/UButton.vue +106 -240
- package/ui.button/config.ts +167 -0
- package/ui.button/storybook/Docs.mdx +2 -2
- package/ui.button/storybook/{stories.js → stories.ts} +36 -16
- package/ui.button/types.ts +121 -0
- package/ui.button/{useAttrs.js → useAttrs.ts} +6 -3
- package/ui.button-link/ULink.vue +72 -223
- package/ui.button-link/storybook/Docs.mdx +2 -2
- package/ui.button-link/storybook/{stories.js → stories.ts} +30 -17
- package/ui.button-link/types.ts +131 -0
- package/ui.button-link/{useAttrs.js → useAttrs.ts} +15 -3
- package/ui.button-toggle/UToggle.vue +47 -165
- package/ui.button-toggle/storybook/Docs.mdx +2 -2
- package/ui.button-toggle/storybook/{stories.js → stories.ts} +13 -5
- package/ui.button-toggle/types.ts +85 -0
- package/ui.button-toggle/useAttrs.ts +18 -0
- package/ui.button-toggle-item/UToggleItem.vue +59 -110
- package/ui.button-toggle-item/storybook/Docs.mdx +2 -2
- package/ui.button-toggle-item/storybook/{stories.js → stories.ts} +10 -3
- package/ui.button-toggle-item/types.ts +40 -0
- package/ui.button-toggle-item/{useAttrs.js → useAttrs.ts} +16 -4
- package/ui.image-icon/UIcon.vue +1 -1
- package/ui.image-icon/config.ts +5 -4
- package/ui.loader/ULoader.vue +1 -1
- package/ui.loader/config.js +2 -1
- package/ui.loader-overlay/ULoaderOverlay.vue +1 -1
- package/web-types.json +137 -59
- package/ui.button/config.js +0 -164
- package/ui.button-toggle/useAttrs.js +0 -15
- /package/ui.button/{constants.js → constants.ts} +0 -0
- /package/ui.button-link/{config.js → config.ts} +0 -0
- /package/ui.button-link/{constants.js → constants.ts} +0 -0
- /package/ui.button-toggle/{config.js → config.ts} +0 -0
- /package/ui.button-toggle/{constants.js → constants.ts} +0 -0
- /package/ui.button-toggle-item/{config.js → config.ts} +0 -0
- /package/ui.button-toggle-item/{constants.js → constants.ts} +0 -0
|
@@ -1,122 +1,22 @@
|
|
|
1
|
-
<
|
|
2
|
-
<UButton
|
|
3
|
-
tabindex="0"
|
|
4
|
-
:for="elementId"
|
|
5
|
-
:no-ring="!getToggleSeparated()"
|
|
6
|
-
color="grayscale"
|
|
7
|
-
variant="secondary"
|
|
8
|
-
:label="label"
|
|
9
|
-
:size="getToggleSize()"
|
|
10
|
-
:round="getToggleRound()"
|
|
11
|
-
:block="getToggleBlock()"
|
|
12
|
-
:square="getToggleSquare()"
|
|
13
|
-
:disabled="getToggleDisabled()"
|
|
14
|
-
v-bind="toggleButtonAttrs"
|
|
15
|
-
@click="onClickSetValue"
|
|
16
|
-
>
|
|
17
|
-
<template #left>
|
|
18
|
-
<!-- @slot Use it to add something before the label. -->
|
|
19
|
-
<slot name="left" />
|
|
20
|
-
</template>
|
|
21
|
-
|
|
22
|
-
<!-- @slot Use it to add something instead of the label. -->
|
|
23
|
-
<template #default>
|
|
24
|
-
<input
|
|
25
|
-
:id="elementId"
|
|
26
|
-
v-model="selectedItem"
|
|
27
|
-
:name="getToggleName()"
|
|
28
|
-
:type="getToggleType()"
|
|
29
|
-
:value="value"
|
|
30
|
-
:disabled="getToggleDisabled()"
|
|
31
|
-
v-bind="toggleInputAttrs"
|
|
32
|
-
/>
|
|
33
|
-
|
|
34
|
-
<!--
|
|
35
|
-
@slot Use it to add something instead of the label.
|
|
36
|
-
@binding {string} label
|
|
37
|
-
-->
|
|
38
|
-
<slot name="default" :label="label">
|
|
39
|
-
{{ label }}
|
|
40
|
-
</slot>
|
|
41
|
-
</template>
|
|
42
|
-
|
|
43
|
-
<template #right>
|
|
44
|
-
<!-- @slot Use it to add something after the label. -->
|
|
45
|
-
<slot name="right" />
|
|
46
|
-
</template>
|
|
47
|
-
</UButton>
|
|
48
|
-
</template>
|
|
49
|
-
|
|
50
|
-
<script setup>
|
|
1
|
+
<script lang="ts" setup>
|
|
51
2
|
import { computed, inject, onMounted, ref, useId } from "vue";
|
|
52
3
|
|
|
53
4
|
import UButton from "../ui.button/UButton.vue";
|
|
54
5
|
import { getDefault } from "../utils/ui.ts";
|
|
55
6
|
|
|
56
|
-
import { TYPE_RADIO } from "../ui.button-toggle/constants.
|
|
7
|
+
import { TYPE_RADIO } from "../ui.button-toggle/constants.ts";
|
|
57
8
|
|
|
58
|
-
import useAttrs from "./useAttrs.
|
|
59
|
-
import defaultConfig from "./config.
|
|
60
|
-
import { UToggleItem } from "./constants.
|
|
9
|
+
import useAttrs from "./useAttrs.ts";
|
|
10
|
+
import defaultConfig from "./config.ts";
|
|
11
|
+
import { UToggleItem } from "./constants.ts";
|
|
61
12
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const props = defineProps({
|
|
65
|
-
/**
|
|
66
|
-
* Selected value.
|
|
67
|
-
*/
|
|
68
|
-
modelValue: {
|
|
69
|
-
type: [String, Number, Array],
|
|
70
|
-
default: "",
|
|
71
|
-
},
|
|
13
|
+
import type { UToggleItemProps } from "./types.ts";
|
|
72
14
|
|
|
73
|
-
|
|
74
|
-
* Value for checkbox state.
|
|
75
|
-
*/
|
|
76
|
-
value: {
|
|
77
|
-
type: [String, Number],
|
|
78
|
-
default: "",
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Toggle item label.
|
|
83
|
-
*/
|
|
84
|
-
label: {
|
|
85
|
-
type: String,
|
|
86
|
-
default: "",
|
|
87
|
-
},
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Make toggle item disabled.
|
|
91
|
-
*/
|
|
92
|
-
disabled: {
|
|
93
|
-
type: Boolean,
|
|
94
|
-
default: getDefault(defaultConfig, UToggleItem).disabled,
|
|
95
|
-
},
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Unique element id.
|
|
99
|
-
*/
|
|
100
|
-
id: {
|
|
101
|
-
type: String,
|
|
102
|
-
default: "",
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Component config object.
|
|
107
|
-
*/
|
|
108
|
-
config: {
|
|
109
|
-
type: Object,
|
|
110
|
-
default: () => ({}),
|
|
111
|
-
},
|
|
15
|
+
defineOptions({ inheritAttrs: false });
|
|
112
16
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
dataTest: {
|
|
117
|
-
type: String,
|
|
118
|
-
default: "",
|
|
119
|
-
},
|
|
17
|
+
const props = withDefaults(defineProps<UToggleItemProps>(), {
|
|
18
|
+
disabled: getDefault<UToggleItemProps>(defaultConfig, UToggleItem).disabled,
|
|
19
|
+
dataTest: "",
|
|
120
20
|
});
|
|
121
21
|
|
|
122
22
|
const emit = defineEmits([
|
|
@@ -175,3 +75,52 @@ function onClickSetValue() {
|
|
|
175
75
|
emit("update:modelValue", props.value);
|
|
176
76
|
}
|
|
177
77
|
</script>
|
|
78
|
+
|
|
79
|
+
<template>
|
|
80
|
+
<UButton
|
|
81
|
+
tabindex="0"
|
|
82
|
+
:for="elementId"
|
|
83
|
+
:no-ring="!getToggleSeparated()"
|
|
84
|
+
color="grayscale"
|
|
85
|
+
variant="secondary"
|
|
86
|
+
:label="label"
|
|
87
|
+
:size="getToggleSize()"
|
|
88
|
+
:round="getToggleRound()"
|
|
89
|
+
:block="getToggleBlock()"
|
|
90
|
+
:square="getToggleSquare()"
|
|
91
|
+
:disabled="getToggleDisabled()"
|
|
92
|
+
v-bind="toggleButtonAttrs"
|
|
93
|
+
@click="onClickSetValue"
|
|
94
|
+
>
|
|
95
|
+
<template #left>
|
|
96
|
+
<!-- @slot Use it to add something before the label. -->
|
|
97
|
+
<slot name="left" />
|
|
98
|
+
</template>
|
|
99
|
+
|
|
100
|
+
<!-- @slot Use it to add something instead of the label. -->
|
|
101
|
+
<template #default>
|
|
102
|
+
<input
|
|
103
|
+
:id="elementId"
|
|
104
|
+
v-model="selectedItem"
|
|
105
|
+
:name="getToggleName()"
|
|
106
|
+
:type="getToggleType()"
|
|
107
|
+
:value="value"
|
|
108
|
+
:disabled="getToggleDisabled()"
|
|
109
|
+
v-bind="toggleInputAttrs"
|
|
110
|
+
/>
|
|
111
|
+
|
|
112
|
+
<!--
|
|
113
|
+
@slot Use it to add something instead of the label.
|
|
114
|
+
@binding {string} label
|
|
115
|
+
-->
|
|
116
|
+
<slot name="default" :label="label">
|
|
117
|
+
{{ label }}
|
|
118
|
+
</slot>
|
|
119
|
+
</template>
|
|
120
|
+
|
|
121
|
+
<template #right>
|
|
122
|
+
<!-- @slot Use it to add something after the label. -->
|
|
123
|
+
<slot name="right" />
|
|
124
|
+
</template>
|
|
125
|
+
</UButton>
|
|
126
|
+
</template>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
|
|
2
2
|
import { getSource } from "../../utils/storybook.ts";
|
|
3
3
|
|
|
4
|
-
import * as stories from "./stories.
|
|
5
|
-
import defaultConfig from "../config.
|
|
4
|
+
import * as stories from "./stories.ts";
|
|
5
|
+
import defaultConfig from "../config.ts?raw"
|
|
6
6
|
|
|
7
7
|
<Meta of={stories} />
|
|
8
8
|
<Title of={stories} />
|
|
@@ -3,6 +3,13 @@ import { getArgTypes, getSlotNames, getSlotsFragment } from "../../utils/storybo
|
|
|
3
3
|
import UToggleItem from "../../ui.button-toggle-item/UToggleItem.vue";
|
|
4
4
|
import UIcon from "../../ui.image-icon/UIcon.vue";
|
|
5
5
|
|
|
6
|
+
import type { Meta, StoryFn } from "@storybook/vue3";
|
|
7
|
+
import type { UToggleItemProps } from "../types.ts";
|
|
8
|
+
|
|
9
|
+
interface UToggleItemArgs extends UToggleItemProps {
|
|
10
|
+
slotTemplate?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
/**
|
|
7
14
|
* The `UToggleItem` component. | [View on GitHub](https://github.com/vuelessjs/vueless/tree/main/src/ui.button-toggle-item)
|
|
8
15
|
*/
|
|
@@ -18,9 +25,9 @@ export default {
|
|
|
18
25
|
...getArgTypes(UToggleItem.__name),
|
|
19
26
|
value: { control: { type: "text" } },
|
|
20
27
|
},
|
|
21
|
-
};
|
|
28
|
+
} as Meta;
|
|
22
29
|
|
|
23
|
-
const DefaultTemplate = (args) => ({
|
|
30
|
+
const DefaultTemplate: StoryFn<UToggleItemArgs> = (args: UToggleItemArgs) => ({
|
|
24
31
|
components: { UToggleItem, UIcon },
|
|
25
32
|
setup() {
|
|
26
33
|
const slots = getSlotNames(UToggleItem.__name);
|
|
@@ -33,7 +40,7 @@ const DefaultTemplate = (args) => ({
|
|
|
33
40
|
v-model="args.modelValue"
|
|
34
41
|
name="toggle"
|
|
35
42
|
>
|
|
36
|
-
${args.slotTemplate || getSlotsFragment()}
|
|
43
|
+
${args.slotTemplate || getSlotsFragment("")}
|
|
37
44
|
</UToggleItem>
|
|
38
45
|
`,
|
|
39
46
|
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import defaultConfig from "./config.ts";
|
|
2
|
+
|
|
3
|
+
export type Config = Partial<typeof defaultConfig>;
|
|
4
|
+
|
|
5
|
+
export interface UToggleItemProps {
|
|
6
|
+
/**
|
|
7
|
+
* Selected value.
|
|
8
|
+
*/
|
|
9
|
+
modelValue?: string | number | Array<string | number>;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Value for checkbox state.
|
|
13
|
+
*/
|
|
14
|
+
value?: string | number;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Toggle item label.
|
|
18
|
+
*/
|
|
19
|
+
label?: string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Make toggle item disabled.
|
|
23
|
+
*/
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Unique element id.
|
|
28
|
+
*/
|
|
29
|
+
id?: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Component config object.
|
|
33
|
+
*/
|
|
34
|
+
config?: Partial<typeof defaultConfig>;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Data-test attribute for automated testing.
|
|
38
|
+
*/
|
|
39
|
+
dataTest?: string;
|
|
40
|
+
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import { computed, toValue } from "vue";
|
|
1
|
+
import { computed, toValue, type Ref } from "vue";
|
|
2
2
|
import useUI from "../composables/useUI.ts";
|
|
3
3
|
|
|
4
|
-
import defaultConfig from "./config.
|
|
4
|
+
import defaultConfig from "./config.ts";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import type { UseAttrs } from "../types.ts";
|
|
7
|
+
import type { UToggleItemProps, Config } from "./types.ts";
|
|
8
|
+
|
|
9
|
+
type itemState = {
|
|
10
|
+
isSelected: Ref<boolean>;
|
|
11
|
+
separated: Ref<boolean>;
|
|
12
|
+
variant: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default function useAttrs(
|
|
16
|
+
props: UToggleItemProps,
|
|
17
|
+
{ isSelected, separated, variant }: itemState,
|
|
18
|
+
): UseAttrs<Config> {
|
|
19
|
+
const { config, getKeysAttrs, hasSlotContent, getExtendingKeysClasses } = useUI<Config>(
|
|
8
20
|
defaultConfig,
|
|
9
21
|
() => props.config,
|
|
10
22
|
);
|
package/ui.image-icon/UIcon.vue
CHANGED
|
@@ -41,7 +41,7 @@ const props = defineProps({
|
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* Icon color.
|
|
44
|
-
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, white
|
|
44
|
+
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, black, white
|
|
45
45
|
*/
|
|
46
46
|
color: {
|
|
47
47
|
type: String,
|
package/ui.image-icon/config.ts
CHANGED
|
@@ -3,13 +3,14 @@ export default /*tw*/ {
|
|
|
3
3
|
base: "fill-current outline-0 shrink-0 grow-0",
|
|
4
4
|
variants: {
|
|
5
5
|
variant: {
|
|
6
|
-
light: "text-{color}-400",
|
|
7
|
-
default: "text-{color}-600",
|
|
8
|
-
dark: "text-{color}-800",
|
|
6
|
+
light: "text-{color}-400 dark:text-{color}-200",
|
|
7
|
+
default: "text-{color}-600 dark:text-{color}-400",
|
|
8
|
+
dark: "text-{color}-800 dark:text-{color}-600",
|
|
9
9
|
},
|
|
10
10
|
color: {
|
|
11
11
|
white: "text-white",
|
|
12
|
-
|
|
12
|
+
black: "text-gray-900",
|
|
13
|
+
grayscale: "text-gray-900 dark:text-white",
|
|
13
14
|
},
|
|
14
15
|
interactive: {
|
|
15
16
|
true: "cursor-pointer",
|
package/ui.loader/ULoader.vue
CHANGED
|
@@ -29,7 +29,7 @@ const props = defineProps({
|
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Loader color.
|
|
32
|
-
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, white
|
|
32
|
+
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, black, white
|
|
33
33
|
*/
|
|
34
34
|
color: {
|
|
35
35
|
type: String,
|
package/ui.loader/config.js
CHANGED
|
@@ -38,7 +38,7 @@ const props = defineProps({
|
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* Loader color.
|
|
41
|
-
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, white
|
|
41
|
+
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose, black, white
|
|
42
42
|
*/
|
|
43
43
|
color: {
|
|
44
44
|
type: String,
|