@flightlesslabs/dodo-ui 0.3.0 → 0.5.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/index.d.ts +15 -1
- package/dist/index.js +12 -0
- package/dist/stories/components/Form/Button/Button.svelte +4 -1
- package/dist/stories/components/Form/Button/Button.svelte.d.ts +4 -2
- package/dist/stories/components/Form/FormControl/FormControl.stories.svelte +27 -0
- package/dist/stories/components/Form/FormControl/FormControl.stories.svelte.d.ts +19 -0
- package/dist/stories/components/Form/FormControl/FormControl.svelte +34 -0
- package/dist/stories/components/Form/FormControl/FormControl.svelte.d.ts +20 -0
- package/dist/stories/components/Form/Label/Label.stories.svelte +21 -0
- package/dist/stories/components/Form/Label/Label.stories.svelte.d.ts +19 -0
- package/dist/stories/components/Form/Label/Label.svelte +19 -0
- package/dist/stories/components/Form/Label/Label.svelte.d.ts +18 -0
- package/dist/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
- package/dist/stories/components/Form/Message/Color/Color.stories.svelte.d.ts +26 -0
- package/dist/stories/components/Form/Message/Message.stories.svelte +31 -0
- package/dist/stories/components/Form/Message/Message.stories.svelte.d.ts +21 -0
- package/dist/stories/components/Form/Message/Message.svelte +50 -0
- package/dist/stories/components/Form/Message/Message.svelte.d.ts +20 -0
- package/dist/stories/components/Form/Message/Size/Size.stories.svelte +24 -0
- package/dist/stories/components/Form/Message/Size/Size.stories.svelte.d.ts +26 -0
- package/dist/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +17 -1
- package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +37 -158
- package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +10 -7
- package/dist/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +74 -0
- package/dist/stories/components/Form/SimpleSelect/Events/Events.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +24 -0
- package/dist/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte.d.ts +26 -0
- package/dist/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +59 -0
- package/dist/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte.d.ts +23 -0
- package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte +69 -0
- package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte.d.ts +50 -0
- package/dist/stories/components/Form/SimpleSelect/Size/Size.stories.svelte +20 -0
- package/dist/stories/components/Form/SimpleSelect/Size/Size.stories.svelte.d.ts +26 -0
- package/dist/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +36 -0
- package/dist/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
- package/dist/stories/components/Form/TextInput/TextInput.stories.svelte +2 -0
- package/dist/stories/components/Form/TextInput/TextInput.svelte +22 -118
- package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +7 -4
- package/dist/stories/developer tools/Intro.mdx +7 -0
- package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +34 -0
- package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte.d.ts +21 -0
- package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +120 -0
- package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte.d.ts +29 -0
- package/dist/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
- package/dist/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte.d.ts +26 -0
- package/dist/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
- package/dist/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte.d.ts +26 -0
- package/dist/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
- package/dist/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
- package/dist/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +27 -0
- package/dist/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte.d.ts +26 -0
- package/dist/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +29 -0
- package/dist/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte.d.ts +21 -0
- package/dist/stories/developer tools/components/UtilityButton/UtilityButton.svelte +79 -0
- package/dist/stories/developer tools/components/UtilityButton/UtilityButton.svelte.d.ts +26 -0
- package/package.json +30 -30
- package/src/lib/index.ts +23 -1
- package/src/lib/stories/components/Form/Button/Button.svelte +8 -2
- package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +29 -0
- package/src/lib/stories/components/Form/FormControl/FormControl.svelte +67 -0
- package/src/lib/stories/components/Form/Label/Label.stories.svelte +23 -0
- package/src/lib/stories/components/Form/Label/Label.svelte +45 -0
- package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
- package/src/lib/stories/components/Form/Message/Message.stories.svelte +35 -0
- package/src/lib/stories/components/Form/Message/Message.svelte +92 -0
- package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +24 -0
- package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +17 -1
- package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +51 -196
- package/src/lib/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +79 -0
- package/src/lib/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +24 -0
- package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +64 -0
- package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.svelte +159 -0
- package/src/lib/stories/components/Form/SimpleSelect/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +36 -0
- package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +2 -0
- package/src/lib/stories/components/Form/TextInput/TextInput.svelte +29 -142
- package/src/lib/stories/developer tools/Intro.mdx +7 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +198 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
- package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +27 -0
- package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +33 -0
- package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.svelte +128 -0
package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import InputEnclosure from '../InputEnclosure.svelte';
|
|
4
|
+
import { storyInputEnclosureArgTypes } from '../InputEnclosure.stories.svelte';
|
|
5
|
+
|
|
6
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
component: InputEnclosure,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: storyInputEnclosureArgTypes,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Story name="Roundness 1x" />
|
|
15
|
+
|
|
16
|
+
<Story name="Roundness 2x" args={{ roundness: '2x' }} />
|
|
17
|
+
|
|
18
|
+
<Story name="Roundness 3x" args={{ roundness: '3x' }} />
|
|
19
|
+
|
|
20
|
+
<Story name="Roundness False" args={{ roundness: false }} />
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import InputEnclosure from '../InputEnclosure.svelte';
|
|
4
|
+
import { storyInputEnclosureArgTypes } from '../InputEnclosure.stories.svelte';
|
|
5
|
+
|
|
6
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
component: InputEnclosure,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: storyInputEnclosureArgTypes,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Story name="Normal" />
|
|
15
|
+
<Story name="Small" args={{ size: 'small' }} />
|
|
16
|
+
<Story name="Large" args={{ size: 'large' }} />
|
package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import InputEnclosure from '../InputEnclosure.svelte';
|
|
4
|
+
import { storyInputEnclosureArgTypes } from '../InputEnclosure.stories.svelte';
|
|
5
|
+
import Icon from '@iconify/svelte';
|
|
6
|
+
|
|
7
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
8
|
+
const { Story } = defineMeta({
|
|
9
|
+
component: InputEnclosure,
|
|
10
|
+
tags: ['autodocs'],
|
|
11
|
+
argTypes: storyInputEnclosureArgTypes,
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!-- InputEnclosure icon in front. -->
|
|
16
|
+
<Story name="Icon Before">
|
|
17
|
+
<InputEnclosure>
|
|
18
|
+
{#snippet before()}
|
|
19
|
+
<Icon icon="material-symbols:content-copy" />
|
|
20
|
+
{/snippet}
|
|
21
|
+
</InputEnclosure>
|
|
22
|
+
</Story>
|
|
23
|
+
|
|
24
|
+
<!-- InputEnclosure icon in front. -->
|
|
25
|
+
<Story name="Icon After">
|
|
26
|
+
<InputEnclosure>
|
|
27
|
+
{#snippet after()}
|
|
28
|
+
<Icon icon="material-symbols:download-2" />
|
|
29
|
+
{/snippet}
|
|
30
|
+
</InputEnclosure>
|
|
31
|
+
</Story>
|
|
32
|
+
|
|
33
|
+
<Story name="Small" args={{ size: 'small' }}>
|
|
34
|
+
<InputEnclosure size="small">
|
|
35
|
+
{#snippet before()}
|
|
36
|
+
<Icon icon="material-symbols:content-copy" />
|
|
37
|
+
{/snippet}
|
|
38
|
+
</InputEnclosure>
|
|
39
|
+
</Story>
|
|
40
|
+
|
|
41
|
+
<Story name="Large" args={{ size: 'large' }}>
|
|
42
|
+
<InputEnclosure size="large">
|
|
43
|
+
{#snippet before()}
|
|
44
|
+
<Icon icon="material-symbols:content-copy" />
|
|
45
|
+
{/snippet}
|
|
46
|
+
</InputEnclosure>
|
|
47
|
+
</Story>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import { fn } from '@storybook/test';
|
|
4
|
+
import UtilityButton from '../UtilityButton.svelte';
|
|
5
|
+
import { storyUtilityButtonArgTypes } from '../UtilityButton.stories.svelte';
|
|
6
|
+
import Icon from '@iconify/svelte';
|
|
7
|
+
|
|
8
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
9
|
+
const { Story } = defineMeta({
|
|
10
|
+
component: UtilityButton,
|
|
11
|
+
tags: ['autodocs'],
|
|
12
|
+
argTypes: storyUtilityButtonArgTypes,
|
|
13
|
+
args: {
|
|
14
|
+
onclick: fn(),
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Story name="Normal" args={{ disabled: false }}>
|
|
20
|
+
<UtilityButton><Icon icon="mdi:eye" width="24" height="24" /></UtilityButton>
|
|
21
|
+
</Story>
|
|
22
|
+
<Story name="Small" args={{ size: 'small' }}>
|
|
23
|
+
<UtilityButton size="small"><Icon icon="mdi:eye" width="22" height="22" /></UtilityButton>
|
|
24
|
+
</Story>
|
|
25
|
+
<Story name="Large" args={{ size: 'large' }}>
|
|
26
|
+
<UtilityButton size="large"><Icon icon="mdi:eye" width="28" height="28" /></UtilityButton>
|
|
27
|
+
</Story>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import UtilityButton from './UtilityButton.svelte';
|
|
4
|
+
import type { StoryBookArgTypes } from '$lib/storybook-types.js';
|
|
5
|
+
import Icon from '@iconify/svelte';
|
|
6
|
+
import { fn } from '@storybook/test';
|
|
7
|
+
|
|
8
|
+
export const storyUtilityButtonArgTypes: StoryBookArgTypes = {
|
|
9
|
+
size: {
|
|
10
|
+
control: { type: 'select' },
|
|
11
|
+
options: ['normal', 'small', 'large'],
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
16
|
+
const { Story } = defineMeta({
|
|
17
|
+
component: UtilityButton,
|
|
18
|
+
tags: ['autodocs'],
|
|
19
|
+
argTypes: storyUtilityButtonArgTypes,
|
|
20
|
+
args: {
|
|
21
|
+
onclick: fn(),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<!-- Button with default style -->
|
|
27
|
+
<Story name="Default">
|
|
28
|
+
<UtilityButton><Icon icon="mdi:eye" width="24" height="24" /></UtilityButton>
|
|
29
|
+
</Story>
|
|
30
|
+
|
|
31
|
+
<Story name="Disabled" args={{ disabled: true }}>
|
|
32
|
+
<UtilityButton disabled><Icon icon="mdi:eye" width="24" height="24" /></UtilityButton>
|
|
33
|
+
</Story>
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { ComponentSize } from '$lib/types.js';
|
|
3
|
+
import type { Snippet } from 'svelte';
|
|
4
|
+
import type { MouseEventHandler } from 'svelte/elements';
|
|
5
|
+
|
|
6
|
+
interface UtilityButtonProps {
|
|
7
|
+
/** Button contents goes here*/
|
|
8
|
+
children?: Snippet;
|
|
9
|
+
/** Button ref */
|
|
10
|
+
ref?: HTMLButtonElement;
|
|
11
|
+
/** How large should the button be? */
|
|
12
|
+
size?: ComponentSize;
|
|
13
|
+
/** Button disabled state */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/** Name */
|
|
16
|
+
name?: string;
|
|
17
|
+
/** Id */
|
|
18
|
+
id?: string;
|
|
19
|
+
/** Title (for tooltip) */
|
|
20
|
+
title?: string;
|
|
21
|
+
/** Custom css class*/
|
|
22
|
+
class?: string;
|
|
23
|
+
/** The onclick event handler */
|
|
24
|
+
onclick?: MouseEventHandler<HTMLButtonElement>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let {
|
|
28
|
+
children,
|
|
29
|
+
size = 'normal',
|
|
30
|
+
name,
|
|
31
|
+
id,
|
|
32
|
+
title,
|
|
33
|
+
class: className = '',
|
|
34
|
+
disabled = false,
|
|
35
|
+
onclick,
|
|
36
|
+
ref = $bindable<HTMLButtonElement>(),
|
|
37
|
+
}: UtilityButtonProps = $props();
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<button
|
|
41
|
+
class={['dodo-ui-UtilityButton', `size--${size}`, className].join(' ')}
|
|
42
|
+
{name}
|
|
43
|
+
{id}
|
|
44
|
+
{title}
|
|
45
|
+
{disabled}
|
|
46
|
+
{onclick}
|
|
47
|
+
bind:this={ref}
|
|
48
|
+
>
|
|
49
|
+
{#if children}
|
|
50
|
+
{@render children()}
|
|
51
|
+
{/if}
|
|
52
|
+
</button>
|
|
53
|
+
|
|
54
|
+
<style lang="scss">
|
|
55
|
+
:global(:root) {
|
|
56
|
+
--dodo-ui-UtilityButton-hover: var(--dodo-color-primary-600);
|
|
57
|
+
--dodo-ui-UtilityButton-active: var(--dodo-color-primary-600);
|
|
58
|
+
|
|
59
|
+
--dodo-ui-UtilityButton-disabled-color: var(--dodo-color-default-400);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
:global(.dodo-theme--dark) {
|
|
63
|
+
--dodo-ui-UtilityButton-hover: var(--dodo-color-primary-600);
|
|
64
|
+
--dodo-ui-UtilityButton-active: var(--dodo-color-primary-600);
|
|
65
|
+
|
|
66
|
+
--dodo-ui-UtilityButton-disabled-color: var(--dodo-color-default-500);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.dodo-ui-UtilityButton {
|
|
70
|
+
cursor: pointer;
|
|
71
|
+
outline: none;
|
|
72
|
+
transition: all 150ms;
|
|
73
|
+
text-decoration: none;
|
|
74
|
+
margin: 0;
|
|
75
|
+
display: inline-flex;
|
|
76
|
+
justify-content: center;
|
|
77
|
+
align-items: center;
|
|
78
|
+
font-family: inherit;
|
|
79
|
+
background-color: transparent;
|
|
80
|
+
border: 0;
|
|
81
|
+
outline: 0;
|
|
82
|
+
padding: 0;
|
|
83
|
+
color: var(--dodo-color-default-700);
|
|
84
|
+
border-radius: 50%;
|
|
85
|
+
font-family: inherit;
|
|
86
|
+
|
|
87
|
+
&:hover {
|
|
88
|
+
color: var(--dodo-ui-UtilityButton-hover);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
&:active {
|
|
92
|
+
color: var(--dodo-ui-UtilityButton-active);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&.size {
|
|
96
|
+
&--normal {
|
|
97
|
+
height: var(--dodo-ui-element-height-normal);
|
|
98
|
+
width: var(--dodo-ui-element-height-normal);
|
|
99
|
+
font-size: 1rem;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&--small {
|
|
103
|
+
height: var(--dodo-ui-element-height-small);
|
|
104
|
+
width: var(--dodo-ui-element-height-small);
|
|
105
|
+
font-size: 0.9rem;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&--large {
|
|
109
|
+
height: var(--dodo-ui-element-height-large);
|
|
110
|
+
width: var(--dodo-ui-element-height-large);
|
|
111
|
+
font-size: 1.1rem;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&[disabled] {
|
|
116
|
+
cursor: initial;
|
|
117
|
+
color: var(--dodo-ui-UtilityButton-disabled-color);
|
|
118
|
+
|
|
119
|
+
&:hover {
|
|
120
|
+
color: var(--dodo-ui-UtilityButton-disabled-color);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&:active {
|
|
124
|
+
color: var(--dodo-ui-UtilityButton-disabled-color);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
</style>
|