@flightlesslabs/dodo-ui 0.4.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.
Files changed (57) hide show
  1. package/dist/index.d.ts +6 -1
  2. package/dist/index.js +4 -0
  3. package/dist/stories/components/Form/FormControl/FormControl.svelte +1 -1
  4. package/dist/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
  5. package/dist/stories/components/Form/Message/Color/Color.stories.svelte.d.ts +26 -0
  6. package/dist/stories/components/Form/Message/Message.stories.svelte +11 -26
  7. package/dist/stories/components/Form/Message/Message.stories.svelte.d.ts +2 -0
  8. package/dist/stories/components/Form/Message/Message.svelte +14 -3
  9. package/dist/stories/components/Form/Message/Message.svelte.d.ts +3 -0
  10. package/dist/stories/components/Form/Message/Size/Size.stories.svelte +24 -0
  11. package/dist/stories/components/Form/Message/Size/Size.stories.svelte.d.ts +26 -0
  12. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +32 -130
  13. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +2 -3
  14. package/dist/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +74 -0
  15. package/dist/stories/components/Form/SimpleSelect/Events/Events.stories.svelte.d.ts +18 -0
  16. package/dist/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +24 -0
  17. package/dist/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte.d.ts +26 -0
  18. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +59 -0
  19. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte.d.ts +23 -0
  20. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte +69 -0
  21. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte.d.ts +50 -0
  22. package/dist/stories/components/Form/SimpleSelect/Size/Size.stories.svelte +20 -0
  23. package/dist/stories/components/Form/SimpleSelect/Size/Size.stories.svelte.d.ts +26 -0
  24. package/dist/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +36 -0
  25. package/dist/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  26. package/dist/stories/components/Form/TextInput/TextInput.svelte +22 -120
  27. package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +1 -2
  28. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +34 -0
  29. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte.d.ts +21 -0
  30. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +120 -0
  31. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte.d.ts +29 -0
  32. package/dist/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
  33. package/dist/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte.d.ts +26 -0
  34. package/dist/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
  35. package/dist/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte.d.ts +26 -0
  36. package/dist/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
  37. package/dist/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  38. package/package.json +1 -1
  39. package/src/lib/index.ts +10 -1
  40. package/src/lib/stories/components/Form/FormControl/FormControl.svelte +1 -1
  41. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
  42. package/src/lib/stories/components/Form/Message/Message.stories.svelte +13 -26
  43. package/src/lib/stories/components/Form/Message/Message.svelte +23 -2
  44. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +24 -0
  45. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +35 -157
  46. package/src/lib/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +79 -0
  47. package/src/lib/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +24 -0
  48. package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +64 -0
  49. package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.svelte +159 -0
  50. package/src/lib/stories/components/Form/SimpleSelect/Size/Size.stories.svelte +20 -0
  51. package/src/lib/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +36 -0
  52. package/src/lib/stories/components/Form/TextInput/TextInput.svelte +22 -143
  53. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
  54. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +198 -0
  55. package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
  56. package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
  57. package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
@@ -0,0 +1,198 @@
1
+ <script lang="ts">
2
+ import type { ComponentRoundness, ComponentSize } from '$lib/types.js';
3
+ import type { Snippet } from 'svelte';
4
+
5
+ interface InputEnclosureProps {
6
+ /** InputEnclosure contents goes here */
7
+ children?: Snippet;
8
+ /** InputEnclosure ref */
9
+ ref?: HTMLDivElement;
10
+ /** How large should the button be? */
11
+ size?: ComponentSize;
12
+ /** How round should the border radius be? */
13
+ roundness?: ComponentRoundness | false;
14
+ /** Add a border around the button. Default True */
15
+ outline?: boolean;
16
+ /** disabled state */
17
+ disabled?: boolean;
18
+ /** is there any associated Error ? */
19
+ error?: boolean;
20
+ /** is focused */
21
+ focused?: boolean;
22
+ /** Icon before button content */
23
+ before?: Snippet;
24
+ /** Icon after button content */
25
+ after?: Snippet;
26
+ /** Custom css class*/
27
+ class?: string;
28
+ }
29
+
30
+ let {
31
+ size = 'normal',
32
+ roundness = '1x',
33
+ outline = true,
34
+ class: className = '',
35
+ disabled = false,
36
+ before,
37
+ after,
38
+ error = false,
39
+ focused = false,
40
+ children,
41
+ ref = $bindable<HTMLDivElement>(),
42
+ }: InputEnclosureProps = $props();
43
+ </script>
44
+
45
+ <div
46
+ class:outline
47
+ class:disabled
48
+ class:error
49
+ class:focused
50
+ class={['dodo-ui-InputEnclosure', `size--${size}`, `roundness--${roundness}`, className].join(
51
+ ' ',
52
+ )}
53
+ bind:this={ref}
54
+ >
55
+ {#if before}
56
+ <span class="content--before">
57
+ {@render before()}
58
+ </span>
59
+ {/if}
60
+
61
+ {#if children}
62
+ {@render children()}
63
+ {/if}
64
+ {#if after}
65
+ <span class="content--after">
66
+ {@render after()}
67
+ </span>
68
+ {/if}
69
+ </div>
70
+
71
+ <style lang="scss">
72
+ :global(:root) {
73
+ --dodo-ui-InputEnclosure-border-color: var(--dodo-color-default-500);
74
+ --dodo-ui-InputEnclosure-focus-border-color: var(--dodo-color-primary-500);
75
+ --dodo-ui-InputEnclosure-error-border-color: var(--dodo-color-danger-500);
76
+
77
+ --dodo-ui-InputEnclosure-disabled-color: var(--dodo-color-default-400);
78
+ --dodo-ui-InputEnclosure-disabled-bg: var(--dodo-color-default-200);
79
+ }
80
+
81
+ :global(.dodo-theme--dark) {
82
+ --dodo-ui-InputEnclosure-border-color: var(--dodo-color-default-600);
83
+ --dodo-ui-InputEnclosure-focus-border-color: var(--dodo-color-primary-600);
84
+ --dodo-ui-InputEnclosure-error-border-color: var(--dodo-color-danger-600);
85
+
86
+ --dodo-ui-InputEnclosure-disabled-bg: var(--dodo-color-default-100);
87
+ --dodo-ui-InputEnclosure-disabled-color: var(--dodo-color-default-500);
88
+ }
89
+
90
+ .dodo-ui-InputEnclosure {
91
+ display: flex;
92
+ overflow: hidden;
93
+ color: var(--dodo-color-default-800);
94
+ transition: all 150ms;
95
+ border: 0;
96
+
97
+ &.outline {
98
+ border-style: solid;
99
+ border-width: var(--dodo-ui-element-border-width);
100
+ border-color: var(--dodo-ui-InputEnclosure-border-color);
101
+ }
102
+
103
+ &.focused {
104
+ border-color: var(--dodo-ui-InputEnclosure-focus-border-color);
105
+ }
106
+
107
+ &.error {
108
+ border-color: var(--dodo-ui-InputEnclosure-error-border-color);
109
+ }
110
+
111
+ &.disabled {
112
+ cursor: initial;
113
+ background-color: var(--dodo-ui-InputEnclosure-disabled-bg);
114
+ color: var(--dodo-ui-InputEnclosure-disabled-color);
115
+ border-color: var(--dodo-ui-InputEnclosure-disabled-bg);
116
+ }
117
+
118
+ .content {
119
+ &--after,
120
+ &--before {
121
+ &:empty {
122
+ display: none;
123
+ }
124
+ }
125
+
126
+ &--after,
127
+ &--before {
128
+ display: inline-flex;
129
+ height: 100%;
130
+ align-items: center;
131
+ }
132
+ }
133
+
134
+ &.size {
135
+ &--normal {
136
+ height: var(--dodo-ui-element-height-normal);
137
+
138
+ .content {
139
+ &--before {
140
+ margin-left: 12px;
141
+ margin-right: -4px;
142
+ }
143
+
144
+ &--after {
145
+ margin-right: 12px;
146
+ margin-left: -4px;
147
+ }
148
+ }
149
+ }
150
+
151
+ &--small {
152
+ height: var(--dodo-ui-element-height-small);
153
+
154
+ .content {
155
+ &--before {
156
+ margin-left: 8px;
157
+ margin-right: -2px;
158
+ }
159
+
160
+ &--after {
161
+ margin-right: 8px;
162
+ margin-left: -2px;
163
+ }
164
+ }
165
+ }
166
+
167
+ &--large {
168
+ height: var(--dodo-ui-element-height-large);
169
+
170
+ .content {
171
+ &--before {
172
+ margin-left: 14px;
173
+ margin-right: -4px;
174
+ }
175
+
176
+ &--after {
177
+ margin-right: 14px;
178
+ margin-left: -4px;
179
+ }
180
+ }
181
+ }
182
+ }
183
+
184
+ &.roundness {
185
+ &--1x {
186
+ border-radius: var(--dodo-ui-element-roundness-1x);
187
+ }
188
+
189
+ &--2x {
190
+ border-radius: var(--dodo-ui-element-roundness-2x);
191
+ }
192
+
193
+ &--3x {
194
+ border-radius: var(--dodo-ui-element-roundness-3x);
195
+ }
196
+ }
197
+ }
198
+ </style>
@@ -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' }} />
@@ -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>