@flightlesslabs/dodo-ui 0.1.1 → 0.1.3

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 (36) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.js +1 -0
  3. package/dist/stories/components/Form/Button/Button.stories.svelte +17 -5
  4. package/dist/stories/components/Form/Button/Button.stories.svelte.d.ts +2 -26
  5. package/dist/stories/components/Form/Button/Button.svelte +335 -4
  6. package/dist/stories/components/Form/Button/Button.svelte.d.ts +13 -5
  7. package/dist/stories/components/Form/Button/Color/Color.stories.svelte +42 -4
  8. package/dist/stories/components/Form/Button/IconButton/IconButton.stories.svelte +11 -5
  9. package/dist/stories/components/Form/Button/Roundness/Roundness.stories.svelte +46 -0
  10. package/dist/stories/components/Form/Button/Roundness/Roundness.stories.svelte.d.ts +26 -0
  11. package/dist/stories/components/Form/Button/Size/Size.stories.svelte +1 -4
  12. package/dist/stories/components/Form/Button/Variant/Variant.stories.svelte +1 -4
  13. package/dist/stories/components/Form/Button/utils/scss/mixins.scss +70 -0
  14. package/dist/storybook-types.d.ts +129 -0
  15. package/dist/storybook-types.js +1 -0
  16. package/dist/styles/_colors.css +171 -0
  17. package/dist/styles/_components.css +10 -0
  18. package/dist/styles/global.css +1 -0
  19. package/dist/types.d.ts +4 -1
  20. package/package.json +15 -13
  21. package/src/lib/index.ts +8 -1
  22. package/src/lib/stories/components/Form/Button/Button.stories.svelte +19 -6
  23. package/src/lib/stories/components/Form/Button/Button.svelte +197 -8
  24. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +42 -4
  25. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +11 -5
  26. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +46 -0
  27. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +1 -4
  28. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +1 -4
  29. package/src/lib/stories/components/Form/Button/utils/scss/mixins.scss +70 -0
  30. package/src/lib/storybook-types.ts +182 -0
  31. package/src/lib/styles/_colors.css +171 -0
  32. package/src/lib/styles/_components.css +10 -0
  33. package/src/lib/styles/global.css +1 -0
  34. package/src/lib/types.ts +5 -1
  35. package/src/lib/stories/Getting Started.mdx +0 -13
  36. package/src/lib/stories/Home.mdx +0 -10
@@ -8,10 +8,7 @@
8
8
  const { Story } = defineMeta({
9
9
  component: Button,
10
10
  tags: ['autodocs'],
11
- // @ts-ignore
12
- argTypes: {
13
- ...storyButtonArgTypes,
14
- },
11
+ argTypes: storyButtonArgTypes,
15
12
  args: {
16
13
  onclick: fn(),
17
14
  },
@@ -8,10 +8,7 @@
8
8
  const { Story } = defineMeta({
9
9
  component: Button,
10
10
  tags: ['autodocs'],
11
- // @ts-ignore
12
- argTypes: {
13
- ...storyButtonArgTypes,
14
- },
11
+ argTypes: storyButtonArgTypes,
15
12
  args: {
16
13
  onclick: fn(),
17
14
  },
@@ -0,0 +1,70 @@
1
+ /// Mixin: generate-dodo-ui-button-colors
2
+ /// Generates CSS custom properties for Dodo UI button styles (text & solid)
3
+ /// across different interaction states (default, hover, active).
4
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
5
+ @mixin generate-dodo-ui-button-colors($color-name) {
6
+ --dodo-ui-button-outline-#{$color-name}: var(--dodo-color-#{$color-name}-400);
7
+
8
+ --dodo-ui-button-text-#{$color-name}-bg: var(--dodo-color-#{$color-name}-100);
9
+ --dodo-ui-button-text-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-200);
10
+ --dodo-ui-button-text-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-300);
11
+
12
+ --dodo-ui-button-solid-#{$color-name}-bg: var(--dodo-color-#{$color-name}-500);
13
+ --dodo-ui-button-solid-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-600);
14
+ --dodo-ui-button-solid-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-700);
15
+ }
16
+
17
+ /// Mixin: generate-dodo-ui-button-colors
18
+ /// Generates CSS custom properties for Dodo UI button styles (text & solid)
19
+ /// across different interaction states (default, hover, active).
20
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
21
+ @mixin generate-dodo-ui-button-colors-dark($color-name) {
22
+ --dodo-ui-button-outline-#{$color-name}: var(--dodo-color-#{$color-name}-300);
23
+
24
+ --dodo-ui-button-text-#{$color-name}-bg: var(--dodo-color-#{$color-name}-50);
25
+ --dodo-ui-button-text-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-100);
26
+ --dodo-ui-button-text-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-200);
27
+
28
+ --dodo-ui-button-solid-#{$color-name}-bg: var(--dodo-color-#{$color-name}-300);
29
+ --dodo-ui-button-solid-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-200);
30
+ --dodo-ui-button-solid-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-100);
31
+ }
32
+
33
+ /// Mixin: generate-dodo-ui-button-color
34
+ /// Auto-generates .color--[theme] > .variant--text & .variant--solid styles
35
+ /// @param {String} $theme - e.g., default, safe, danger, etc.
36
+ @mixin generate-dodo-ui-button-color($theme) {
37
+ &--#{$theme} {
38
+ &.variant {
39
+ &--text {
40
+ color: var(--dodo-color-#{$theme}-800);
41
+ background-color: var(--dodo-ui-button-text-#{$theme}-bg);
42
+
43
+ &:hover {
44
+ background-color: var(--dodo-ui-button-text-#{$theme}-hover-bg);
45
+ }
46
+
47
+ &:active {
48
+ background-color: var(--dodo-ui-button-text-#{$theme}-active-bg);
49
+ }
50
+
51
+ &.outline {
52
+ border-color: var(--dodo-ui-button-outline-#{$theme});
53
+ }
54
+ }
55
+
56
+ &--solid {
57
+ color: var(--dodo-color-constant-white);
58
+ background-color: var(--dodo-ui-button-solid-#{$theme}-bg);
59
+
60
+ &:hover {
61
+ background-color: var(--dodo-ui-button-solid-#{$theme}-hover-bg);
62
+ }
63
+
64
+ &:active {
65
+ background-color: var(--dodo-ui-button-solid-#{$theme}-active-bg);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,129 @@
1
+ type ControlType = 'object' | 'boolean' | 'check' | 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select' | 'number' | 'range' | 'file' | 'color' | 'date' | 'text';
2
+ interface ControlBase {
3
+ [key: string]: any;
4
+ /** @see https://storybook.js.org/docs/api/arg-types#controltype */
5
+ type?: ControlType;
6
+ disable?: boolean;
7
+ }
8
+ type Control = ControlType | false | (ControlBase & (ControlBase | {
9
+ type: 'color';
10
+ /** @see https://storybook.js.org/docs/api/arg-types#controlpresetcolors */
11
+ presetColors?: string[];
12
+ } | {
13
+ type: 'file';
14
+ /** @see https://storybook.js.org/docs/api/arg-types#controlaccept */
15
+ accept?: string;
16
+ } | {
17
+ type: 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select';
18
+ /** @see https://storybook.js.org/docs/api/arg-types#controllabels */
19
+ labels?: {
20
+ [options: string]: string;
21
+ };
22
+ } | {
23
+ type: 'number' | 'range';
24
+ /** @see https://storybook.js.org/docs/api/arg-types#controlmax */
25
+ max?: number;
26
+ /** @see https://storybook.js.org/docs/api/arg-types#controlmin */
27
+ min?: number;
28
+ /** @see https://storybook.js.org/docs/api/arg-types#controlstep */
29
+ step?: number;
30
+ }));
31
+ type ConditionalTest = {
32
+ truthy?: boolean;
33
+ } | {
34
+ exists: boolean;
35
+ } | {
36
+ eq: any;
37
+ } | {
38
+ neq: any;
39
+ };
40
+ type ConditionalValue = {
41
+ arg: string;
42
+ } | {
43
+ global: string;
44
+ };
45
+ type Conditional = ConditionalValue & ConditionalTest;
46
+ interface Args {
47
+ [name: string]: any;
48
+ }
49
+ interface SBBaseType {
50
+ required?: boolean;
51
+ raw?: string;
52
+ }
53
+ type SBScalarType = SBBaseType & {
54
+ name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';
55
+ };
56
+ type SBArrayType = SBBaseType & {
57
+ name: 'array';
58
+ value: SBType;
59
+ };
60
+ type SBObjectType = SBBaseType & {
61
+ name: 'object';
62
+ value: Record<string, SBType>;
63
+ };
64
+ type SBEnumType = SBBaseType & {
65
+ name: 'enum';
66
+ value: (string | number)[];
67
+ };
68
+ type SBIntersectionType = SBBaseType & {
69
+ name: 'intersection';
70
+ value: SBType[];
71
+ };
72
+ type SBUnionType = SBBaseType & {
73
+ name: 'union';
74
+ value: SBType[];
75
+ };
76
+ type SBOtherType = SBBaseType & {
77
+ name: 'other';
78
+ value: string;
79
+ };
80
+ type SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;
81
+ interface InputType {
82
+ /** @see https://storybook.js.org/docs/api/arg-types#control */
83
+ control?: Control;
84
+ /** @see https://storybook.js.org/docs/api/arg-types#description */
85
+ description?: string;
86
+ /** @see https://storybook.js.org/docs/api/arg-types#if */
87
+ if?: Conditional;
88
+ /** @see https://storybook.js.org/docs/api/arg-types#mapping */
89
+ mapping?: {
90
+ [key: string]: any;
91
+ };
92
+ /** @see https://storybook.js.org/docs/api/arg-types#name */
93
+ name?: string;
94
+ /** @see https://storybook.js.org/docs/api/arg-types#options */
95
+ options?: readonly any[];
96
+ /** @see https://storybook.js.org/docs/api/arg-types#table */
97
+ table?: {
98
+ [key: string]: unknown;
99
+ /** @see https://storybook.js.org/docs/api/arg-types#tablecategory */
100
+ category?: string;
101
+ /** @see https://storybook.js.org/docs/api/arg-types#tabledefaultvalue */
102
+ defaultValue?: {
103
+ summary?: string;
104
+ detail?: string;
105
+ };
106
+ /** @see https://storybook.js.org/docs/api/arg-types#tabledisable */
107
+ disable?: boolean;
108
+ /** @see https://storybook.js.org/docs/api/arg-types#tablesubcategory */
109
+ subcategory?: string;
110
+ /** @see https://storybook.js.org/docs/api/arg-types#tabletype */
111
+ type?: {
112
+ summary?: string;
113
+ detail?: string;
114
+ };
115
+ };
116
+ /** @see https://storybook.js.org/docs/api/arg-types#type */
117
+ type?: SBType | SBScalarType['name'];
118
+ /**
119
+ * @deprecated Use `table.defaultValue.summary` instead.
120
+ * @see https://storybook.js.org/docs/api/arg-types#defaultvalue
121
+ */
122
+ defaultValue?: any;
123
+ [key: string]: any;
124
+ }
125
+ export type ArgTypes<TArgs = Args> = {
126
+ [name in keyof TArgs]: InputType;
127
+ };
128
+ export type StoryBookArgTypes = Partial<ArgTypes<Args>>;
129
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,171 @@
1
+ :root {
2
+ /* Base colors */
3
+ --dodo-color-black: var(--dodo-color-base-black);
4
+ --dodo-color-white: var(--dodo-color-base-white);
5
+
6
+ /* Base colors constants */
7
+ --dodo-color-constant-black: var(--dodo-color-base-black);
8
+ --dodo-color-constant-white: var(--dodo-color-base-white);
9
+
10
+ /* Default color */
11
+ --dodo-color-default-50: var(--dodo-color-base-slate-50);
12
+ --dodo-color-default-100: var(--dodo-color-base-slate-100);
13
+ --dodo-color-default-200: var(--dodo-color-base-slate-200);
14
+ --dodo-color-default-300: var(--dodo-color-base-slate-300);
15
+ --dodo-color-default-400: var(--dodo-color-base-slate-400);
16
+ --dodo-color-default-500: var(--dodo-color-base-slate-500);
17
+ --dodo-color-default-600: var(--dodo-color-base-slate-600);
18
+ --dodo-color-default-700: var(--dodo-color-base-slate-700);
19
+ --dodo-color-default-800: var(--dodo-color-base-slate-800);
20
+ --dodo-color-default-900: var(--dodo-color-base-slate-900);
21
+ --dodo-color-default-950: var(--dodo-color-base-slate-950);
22
+
23
+ /* Primary color */
24
+ --dodo-color-primary-50: var(--dodo-color-base-violet-50);
25
+ --dodo-color-primary-100: var(--dodo-color-base-violet-100);
26
+ --dodo-color-primary-200: var(--dodo-color-base-violet-200);
27
+ --dodo-color-primary-300: var(--dodo-color-base-violet-300);
28
+ --dodo-color-primary-400: var(--dodo-color-base-violet-400);
29
+ --dodo-color-primary-500: var(--dodo-color-base-violet-500);
30
+ --dodo-color-primary-600: var(--dodo-color-base-violet-600);
31
+ --dodo-color-primary-700: var(--dodo-color-base-violet-700);
32
+ --dodo-color-primary-800: var(--dodo-color-base-violet-800);
33
+ --dodo-color-primary-900: var(--dodo-color-base-violet-900);
34
+ --dodo-color-primary-950: var(--dodo-color-base-violet-950);
35
+
36
+ /* Safe color */
37
+ --dodo-color-safe-50: var(--dodo-color-base-emerald-50);
38
+ --dodo-color-safe-100: var(--dodo-color-base-emerald-100);
39
+ --dodo-color-safe-200: var(--dodo-color-base-emerald-200);
40
+ --dodo-color-safe-300: var(--dodo-color-base-emerald-300);
41
+ --dodo-color-safe-400: var(--dodo-color-base-emerald-400);
42
+ --dodo-color-safe-500: var(--dodo-color-base-emerald-500);
43
+ --dodo-color-safe-600: var(--dodo-color-base-emerald-600);
44
+ --dodo-color-safe-700: var(--dodo-color-base-emerald-700);
45
+ --dodo-color-safe-800: var(--dodo-color-base-emerald-800);
46
+ --dodo-color-safe-900: var(--dodo-color-base-emerald-900);
47
+ --dodo-color-safe-950: var(--dodo-color-base-emerald-950);
48
+
49
+ /* Warning color */
50
+ --dodo-color-warning-50: var(--dodo-color-base-amber-50);
51
+ --dodo-color-warning-100: var(--dodo-color-base-amber-100);
52
+ --dodo-color-warning-200: var(--dodo-color-base-amber-200);
53
+ --dodo-color-warning-300: var(--dodo-color-base-amber-300);
54
+ --dodo-color-warning-400: var(--dodo-color-base-amber-400);
55
+ --dodo-color-warning-500: var(--dodo-color-base-amber-500);
56
+ --dodo-color-warning-600: var(--dodo-color-base-amber-600);
57
+ --dodo-color-warning-700: var(--dodo-color-base-amber-700);
58
+ --dodo-color-warning-800: var(--dodo-color-base-amber-800);
59
+ --dodo-color-warning-900: var(--dodo-color-base-amber-900);
60
+ --dodo-color-warning-950: var(--dodo-color-base-amber-950);
61
+
62
+ /* Danger color */
63
+ --dodo-color-danger-50: var(--dodo-color-base-red-50);
64
+ --dodo-color-danger-100: var(--dodo-color-base-red-100);
65
+ --dodo-color-danger-200: var(--dodo-color-base-red-200);
66
+ --dodo-color-danger-300: var(--dodo-color-base-red-300);
67
+ --dodo-color-danger-400: var(--dodo-color-base-red-400);
68
+ --dodo-color-danger-500: var(--dodo-color-base-red-500);
69
+ --dodo-color-danger-600: var(--dodo-color-base-red-600);
70
+ --dodo-color-danger-700: var(--dodo-color-base-red-700);
71
+ --dodo-color-danger-800: var(--dodo-color-base-red-800);
72
+ --dodo-color-danger-900: var(--dodo-color-base-red-900);
73
+ --dodo-color-danger-950: var(--dodo-color-base-red-950);
74
+
75
+ /* Info color */
76
+ --dodo-color-info-50: var(--dodo-color-base-cyan-50);
77
+ --dodo-color-info-100: var(--dodo-color-base-cyan-100);
78
+ --dodo-color-info-200: var(--dodo-color-base-cyan-200);
79
+ --dodo-color-info-300: var(--dodo-color-base-cyan-300);
80
+ --dodo-color-info-400: var(--dodo-color-base-cyan-400);
81
+ --dodo-color-info-500: var(--dodo-color-base-cyan-500);
82
+ --dodo-color-info-600: var(--dodo-color-base-cyan-600);
83
+ --dodo-color-info-700: var(--dodo-color-base-cyan-700);
84
+ --dodo-color-info-800: var(--dodo-color-base-cyan-800);
85
+ --dodo-color-info-900: var(--dodo-color-base-cyan-900);
86
+ --dodo-color-info-950: var(--dodo-color-base-cyan-950);
87
+ }
88
+
89
+ .dodo-theme--dark {
90
+ /* Dark: Base colors */
91
+ --dodo-color-black: var(--dodo-color-base-white);
92
+ --dodo-color-white: var(--dodo-color-base-black);
93
+
94
+ /* Dark: Default color */
95
+ --dodo-color-default-50: var(--dodo-color-base-slate-950);
96
+ --dodo-color-default-100: var(--dodo-color-base-slate-900);
97
+ --dodo-color-default-200: var(--dodo-color-base-slate-800);
98
+ --dodo-color-default-300: var(--dodo-color-base-slate-700);
99
+ --dodo-color-default-400: var(--dodo-color-base-slate-600);
100
+ --dodo-color-default-500: var(--dodo-color-base-slate-500);
101
+ --dodo-color-default-600: var(--dodo-color-base-slate-400);
102
+ --dodo-color-default-700: var(--dodo-color-base-slate-300);
103
+ --dodo-color-default-800: var(--dodo-color-base-slate-200);
104
+ --dodo-color-default-900: var(--dodo-color-base-slate-100);
105
+ --dodo-color-default-950: var(--dodo-color-base-slate-50);
106
+
107
+ /* Dark: Primary color */
108
+ --dodo-color-primary-50: var(--dodo-color-base-violet-950);
109
+ --dodo-color-primary-100: var(--dodo-color-base-violet-900);
110
+ --dodo-color-primary-200: var(--dodo-color-base-violet-800);
111
+ --dodo-color-primary-300: var(--dodo-color-base-violet-700);
112
+ --dodo-color-primary-400: var(--dodo-color-base-violet-600);
113
+ --dodo-color-primary-500: var(--dodo-color-base-violet-500);
114
+ --dodo-color-primary-600: var(--dodo-color-base-violet-400);
115
+ --dodo-color-primary-700: var(--dodo-color-base-violet-300);
116
+ --dodo-color-primary-800: var(--dodo-color-base-violet-200);
117
+ --dodo-color-primary-900: var(--dodo-color-base-violet-100);
118
+ --dodo-color-primary-950: var(--dodo-color-base-violet-50);
119
+
120
+ /* Dark: Safe color */
121
+ --dodo-color-safe-50: var(--dodo-color-base-emerald-950);
122
+ --dodo-color-safe-100: var(--dodo-color-base-emerald-900);
123
+ --dodo-color-safe-200: var(--dodo-color-base-emerald-800);
124
+ --dodo-color-safe-300: var(--dodo-color-base-emerald-700);
125
+ --dodo-color-safe-400: var(--dodo-color-base-emerald-600);
126
+ --dodo-color-safe-500: var(--dodo-color-base-emerald-500);
127
+ --dodo-color-safe-600: var(--dodo-color-base-emerald-400);
128
+ --dodo-color-safe-700: var(--dodo-color-base-emerald-300);
129
+ --dodo-color-safe-800: var(--dodo-color-base-emerald-200);
130
+ --dodo-color-safe-900: var(--dodo-color-base-emerald-100);
131
+ --dodo-color-safe-950: var(--dodo-color-base-emerald-50);
132
+
133
+ /* Dark: Warning color */
134
+ --dodo-color-warning-50: var(--dodo-color-base-amber-950);
135
+ --dodo-color-warning-100: var(--dodo-color-base-amber-900);
136
+ --dodo-color-warning-200: var(--dodo-color-base-amber-800);
137
+ --dodo-color-warning-300: var(--dodo-color-base-amber-700);
138
+ --dodo-color-warning-400: var(--dodo-color-base-amber-600);
139
+ --dodo-color-warning-500: var(--dodo-color-base-amber-500);
140
+ --dodo-color-warning-600: var(--dodo-color-base-amber-400);
141
+ --dodo-color-warning-700: var(--dodo-color-base-amber-300);
142
+ --dodo-color-warning-800: var(--dodo-color-base-amber-200);
143
+ --dodo-color-warning-900: var(--dodo-color-base-amber-100);
144
+ --dodo-color-warning-950: var(--dodo-color-base-amber-50);
145
+
146
+ /* Dark: Danger color */
147
+ --dodo-color-danger-50: var(--dodo-color-base-red-950);
148
+ --dodo-color-danger-100: var(--dodo-color-base-red-900);
149
+ --dodo-color-danger-200: var(--dodo-color-base-red-800);
150
+ --dodo-color-danger-300: var(--dodo-color-base-red-700);
151
+ --dodo-color-danger-400: var(--dodo-color-base-red-600);
152
+ --dodo-color-danger-500: var(--dodo-color-base-red-500);
153
+ --dodo-color-danger-600: var(--dodo-color-base-red-400);
154
+ --dodo-color-danger-700: var(--dodo-color-base-red-300);
155
+ --dodo-color-danger-800: var(--dodo-color-base-red-200);
156
+ --dodo-color-danger-900: var(--dodo-color-base-red-100);
157
+ --dodo-color-danger-950: var(--dodo-color-base-red-50);
158
+
159
+ /* Dark: Info color */
160
+ --dodo-color-info-50: var(--dodo-color-base-cyan-950);
161
+ --dodo-color-info-100: var(--dodo-color-base-cyan-900);
162
+ --dodo-color-info-200: var(--dodo-color-base-cyan-800);
163
+ --dodo-color-info-300: var(--dodo-color-base-cyan-700);
164
+ --dodo-color-info-400: var(--dodo-color-base-cyan-600);
165
+ --dodo-color-info-500: var(--dodo-color-base-cyan-500);
166
+ --dodo-color-info-600: var(--dodo-color-base-cyan-400);
167
+ --dodo-color-info-700: var(--dodo-color-base-cyan-300);
168
+ --dodo-color-info-800: var(--dodo-color-base-cyan-200);
169
+ --dodo-color-info-900: var(--dodo-color-base-cyan-100);
170
+ --dodo-color-info-950: var(--dodo-color-base-cyan-50);
171
+ }
@@ -0,0 +1,10 @@
1
+ :root {
2
+ --dodo-ui-element-height-normal: 40px;
3
+ --dodo-ui-element-height-small: 34px;
4
+ --dodo-ui-element-height-large: 48px;
5
+
6
+ --dodo-ui-element-roundness-base: 7px;
7
+ --dodo-ui-element-roundness-1: var(--dodo-ui-element-roundness-base);
8
+ --dodo-ui-element-roundness-2: calc(var(--dodo-ui-element-roundness-base) * 2);
9
+ --dodo-ui-element-roundness-3: calc(var(--dodo-ui-element-roundness-base) * 4);
10
+ }
@@ -1,3 +1,4 @@
1
1
  @import '_colors-base.css';
2
2
  @import '_colors.css';
3
3
  @import '_breakpoint.css';
4
+ @import '_components.css';
package/dist/types.d.ts CHANGED
@@ -1 +1,4 @@
1
- export type ComponentSize = 'small' | 'normal' | 'large';
1
+ /** Component Size */
2
+ export type ComponentSize = 'normal' | 'small' | 'large';
3
+ export type ComponentRoundness = 1 | 2 | 3;
4
+ export type ComponentRoundnessFull = 'full';
package/package.json CHANGED
@@ -1,6 +1,19 @@
1
1
  {
2
2
  "name": "@flightlesslabs/dodo-ui",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
+ "scripts": {
5
+ "build": "vite build && pnpm run prepack",
6
+ "preview": "vite preview",
7
+ "prepare": "svelte-kit sync || echo ''",
8
+ "prepack": "svelte-kit sync && svelte-package && publint",
9
+ "svelte-check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
10
+ "format": "prettier --write .",
11
+ "lint": "prettier --check . && eslint .",
12
+ "dev": "storybook dev -p 6006",
13
+ "build-storybook": "storybook build && touch ./storybook-static/.nojekyll",
14
+ "check": "pnpm run svelte-check && eslint . && pnpm run lint",
15
+ "check:fix": "pnpm run svelte-check && eslint . && pnpm run format"
16
+ },
4
17
  "homepage": "https://flightlesslabs.github.io/dodo-ui",
5
18
  "repository": {
6
19
  "type": "git",
@@ -80,16 +93,5 @@
80
93
  },
81
94
  "dependencies": {
82
95
  "@iconify/svelte": "^4.2.0"
83
- },
84
- "scripts": {
85
- "build": "vite build && pnpm run prepack",
86
- "preview": "vite preview",
87
- "svelte-check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
88
- "format": "prettier --write .",
89
- "lint": "prettier --check . && eslint .",
90
- "dev": "storybook dev -p 6006",
91
- "build-storybook": "storybook build && touch ./storybook-static/.nojekyll",
92
- "check": "pnpm run svelte-check && eslint . && pnpm run lint",
93
- "check:fix": "pnpm run svelte-check && eslint . && pnpm run format"
94
96
  }
95
- }
97
+ }
package/src/lib/index.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  import '$lib/styles/global.css';
2
2
 
3
- export type { ComponentSize } from './types.js';
3
+ export type { ComponentSize, ComponentRoundness, ComponentRoundnessFull } from './types.js';
4
4
 
5
+ /** Form: Button */
5
6
  export { default as Button } from '$lib/stories/components/Form/Button/Button.svelte';
7
+ export type {
8
+ ButtonColor,
9
+ ButtonRoundness,
10
+ ButtonLinkTarget,
11
+ ButtonLinkReferrerpolicy,
12
+ } from '$lib/stories/components/Form/Button/Button.svelte';
@@ -2,9 +2,9 @@
2
2
  import { defineMeta } from '@storybook/addon-svelte-csf';
3
3
  import { fn } from '@storybook/test';
4
4
  import Button from './Button.svelte';
5
- import Icon from '@iconify/svelte';
5
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
6
6
 
7
- export const storyButtonArgTypes = {
7
+ export const storyButtonArgTypes: StoryBookArgTypes = {
8
8
  type: {
9
9
  control: { type: 'select' },
10
10
  options: ['button', 'submit'],
@@ -17,6 +17,10 @@
17
17
  control: { type: 'select' },
18
18
  options: ['text', 'solid'],
19
19
  },
20
+ roundness: {
21
+ control: { type: 'select' },
22
+ options: [false, 1, 2, 3, 'full'],
23
+ },
20
24
  size: {
21
25
  control: { type: 'select' },
22
26
  options: ['small', 'medium', 'large'],
@@ -27,16 +31,25 @@
27
31
  const { Story } = defineMeta({
28
32
  component: Button,
29
33
  tags: ['autodocs'],
30
- // @ts-ignore
31
- argTypes: {
32
- ...storyButtonArgTypes,
33
- },
34
+ argTypes: storyButtonArgTypes,
34
35
  args: {
35
36
  onclick: fn(),
36
37
  },
37
38
  });
38
39
  </script>
39
40
 
41
+ <!-- ⚠️ Test Button: Do not use! -->
42
+ <Story
43
+ name="Test Button"
44
+ args={{
45
+ outline: false,
46
+ disabled: false,
47
+ compact: false,
48
+ _unsafeChildrenStringForTesting: 'Click me!',
49
+ }}
50
+ />
51
+
52
+ <!-- Button with default style -->
40
53
  <Story name="Default" args={{ outline: false, disabled: false, compact: false }}>
41
54
  <Button>Click me!</Button>
42
55
  </Story>