@flightlesslabs/dodo-ui 0.6.4 → 0.6.6

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 (122) hide show
  1. package/dist/index.d.ts +6 -4
  2. package/dist/stories/Home.mdx +4 -6
  3. package/dist/stories/components/Form/Button/Button.stories.svelte +16 -37
  4. package/dist/stories/components/Form/Button/Button.svelte +44 -46
  5. package/dist/stories/components/Form/Button/Button.svelte.d.ts +10 -9
  6. package/dist/stories/components/Form/Button/Color/Color.stories.svelte +23 -48
  7. package/dist/stories/components/Form/Button/Events/Events.stories.svelte +1 -7
  8. package/dist/stories/components/Form/Button/IconButton/IconButton.stories.svelte +4 -12
  9. package/dist/stories/components/Form/Button/Roundness/Roundness.stories.svelte +5 -31
  10. package/dist/stories/components/Form/Button/Size/Size.stories.svelte +3 -9
  11. package/dist/stories/components/Form/Button/Variant/Variant.stories.svelte +5 -8
  12. package/dist/stories/components/Form/FormControl/FormControl.stories.svelte +11 -12
  13. package/dist/stories/components/Form/FormControl/FormControl.svelte +3 -8
  14. package/dist/stories/components/Form/Label/Label.stories.svelte +1 -11
  15. package/dist/stories/components/Form/Label/Label.svelte +2 -4
  16. package/dist/stories/components/Form/Label/Label.svelte.d.ts +0 -2
  17. package/dist/stories/components/Form/Message/Color/Color.stories.svelte +9 -9
  18. package/dist/stories/components/Form/Message/Message.stories.svelte +5 -13
  19. package/dist/stories/components/Form/Message/Message.svelte +4 -9
  20. package/dist/stories/components/Form/Message/Message.svelte.d.ts +3 -5
  21. package/dist/stories/components/Form/Message/Size/Size.stories.svelte +3 -5
  22. package/dist/stories/components/Form/PasswordInput/Events/Events.stories.svelte +8 -72
  23. package/dist/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +5 -3
  24. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +4 -4
  25. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +3 -2
  26. package/dist/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +4 -4
  27. package/dist/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +2 -2
  28. package/dist/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +3 -30
  29. package/dist/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +4 -4
  30. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +4 -6
  31. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte +4 -4
  32. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte.d.ts +3 -2
  33. package/dist/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +2 -2
  34. package/dist/stories/components/Form/TextInput/Events/Events.stories.svelte +7 -63
  35. package/dist/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +4 -4
  36. package/dist/stories/components/Form/TextInput/TextInput.stories.svelte +6 -4
  37. package/dist/stories/components/Form/TextInput/TextInput.svelte +12 -5
  38. package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +4 -2
  39. package/dist/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +4 -4
  40. package/dist/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
  41. package/dist/stories/components/Layout/Paper/Color/Color.stories.svelte.d.ts +26 -0
  42. package/dist/stories/components/Layout/Paper/Paper.stories.svelte +25 -16
  43. package/dist/stories/components/Layout/Paper/Paper.svelte +211 -14
  44. package/dist/stories/components/Layout/Paper/Paper.svelte.d.ts +18 -7
  45. package/dist/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +8 -13
  46. package/dist/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +6 -24
  47. package/dist/stories/components/Layout/Paper/utils/scss/mixins.scss +46 -0
  48. package/dist/stories/developer tools/Intro.mdx +2 -0
  49. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +5 -5
  50. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +14 -14
  51. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte.d.ts +3 -2
  52. package/dist/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +4 -4
  53. package/dist/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +4 -4
  54. package/dist/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +3 -3
  55. package/dist/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +4 -3
  56. package/dist/stories/developer tools/components/UtilityButton/UtilityButton.svelte +3 -3
  57. package/dist/stories/developer tools/components/UtilityButton/UtilityButton.svelte.d.ts +1 -1
  58. package/dist/stories/{philosophy/Colors/Colors.mdx → developer tools/philosophy/Colors/Colors.mdx } +2 -2
  59. package/dist/stories/{philosophy/Colors/Swatches/Palette.svelte → developer tools/philosophy/Colors/Swatches/Palette.svelte } +1 -1
  60. package/dist/stories/{philosophy/Colors/Swatches/Swatch.svelte → developer tools/philosophy/Colors/Swatches/Swatch.svelte } +1 -1
  61. package/dist/stories/{philosophy/Colors/Swatches/Swatches.svelte → developer tools/philosophy/Colors/Swatches/Swatches.svelte } +1 -1
  62. package/dist/stories/{philosophy/Colors/utils/color.js → developer tools/philosophy/Colors/utils/color.js } +1 -1
  63. package/dist/stories/{philosophy/Themes.mdx → developer tools/philosophy/Themes.mdx } +1 -1
  64. package/dist/styles/_colors.css +44 -44
  65. package/dist/styles/_components.css +6 -3
  66. package/dist/styles/_shadow.css +13 -20
  67. package/dist/styles/_space.css +7 -0
  68. package/dist/styles/global.css +1 -0
  69. package/dist/types/colors.d.ts +7 -0
  70. package/dist/types/colors.js +10 -0
  71. package/dist/types/roundness.d.ts +3 -0
  72. package/dist/types/roundness.js +1 -0
  73. package/dist/types/shadow.d.ts +3 -0
  74. package/dist/types/shadow.js +1 -0
  75. package/dist/types/size.d.ts +3 -0
  76. package/dist/types/size.js +1 -0
  77. package/dist/types/weight.d.ts +3 -0
  78. package/dist/types/weight.js +1 -0
  79. package/package.json +24 -24
  80. package/src/lib/index.ts +13 -8
  81. package/src/lib/stories/components/Form/Button/Button.svelte +30 -31
  82. package/src/lib/stories/components/Form/FormControl/FormControl.svelte +2 -7
  83. package/src/lib/stories/components/Form/Label/Label.svelte +1 -6
  84. package/src/lib/stories/components/Form/Message/Message.svelte +9 -16
  85. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +7 -6
  86. package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.svelte +7 -6
  87. package/src/lib/stories/components/Form/TextInput/TextInput.svelte +16 -6
  88. package/src/lib/stories/components/Layout/Paper/Paper.svelte +151 -23
  89. package/src/lib/stories/components/Layout/Paper/utils/scss/mixins.scss +46 -0
  90. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +17 -16
  91. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.svelte +4 -4
  92. package/src/lib/stories/developer tools/philosophy/Colors/Colors.svelte +46 -0
  93. package/src/lib/stories/developer tools/philosophy/Colors/Opacity.svelte +23 -0
  94. package/src/lib/stories/developer tools/philosophy/Colors/Swatches/Palette.svelte +46 -0
  95. package/src/lib/stories/developer tools/philosophy/Colors/Swatches/Swatch.svelte +35 -0
  96. package/src/lib/stories/developer tools/philosophy/Colors/Swatches/Swatches.svelte +55 -0
  97. package/src/lib/stories/developer tools/philosophy/Colors/utils/color.ts +41 -0
  98. package/src/lib/styles/_colors.css +44 -44
  99. package/src/lib/styles/_components.css +6 -3
  100. package/src/lib/styles/_shadow.css +13 -20
  101. package/src/lib/styles/_space.css +7 -0
  102. package/src/lib/styles/global.css +1 -0
  103. package/src/lib/types/colors.ts +16 -0
  104. package/src/lib/types/roundness.ts +3 -0
  105. package/src/lib/types/shadow.ts +3 -0
  106. package/src/lib/types/size.ts +3 -0
  107. package/src/lib/types/weight.ts +3 -0
  108. package/dist/types.d.ts +0 -5
  109. package/dist/types.js +0 -1
  110. package/src/lib/types.ts +0 -6
  111. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.stories.svelte +0 -0
  112. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.stories.svelte.d.ts +0 -0
  113. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.svelte +0 -0
  114. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.svelte.d.ts +0 -0
  115. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.stories.svelte +0 -0
  116. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.stories.svelte.d.ts +0 -0
  117. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.svelte +0 -0
  118. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.svelte.d.ts +0 -0
  119. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Swatches/Palette.svelte.d.ts +0 -0
  120. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Swatches/Swatch.svelte.d.ts +0 -0
  121. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Swatches/Swatches.svelte.d.ts +0 -0
  122. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/utils/color.d.ts +0 -0
@@ -18,15 +18,7 @@ const { Story } = defineMeta({
18
18
  console.log('Input Event', target.value);
19
19
  },
20
20
  }}
21
- >
22
- <TextInput
23
- oninput={(e: Event) => {
24
- const target = e.target as HTMLInputElement;
25
-
26
- console.log('Input Event', target.value);
27
- }}
28
- />
29
- </Story>
21
+ />
30
22
 
31
23
  <Story
32
24
  name="Change"
@@ -37,15 +29,7 @@ const { Story } = defineMeta({
37
29
  console.log('onChange Event', target.value);
38
30
  },
39
31
  }}
40
- >
41
- <TextInput
42
- onchange={(e: Event) => {
43
- const target = e.target as HTMLInputElement;
44
-
45
- console.log('onchange Event', target.value);
46
- }}
47
- />
48
- </Story>
32
+ />
49
33
 
50
34
  <!-- `e: TextInputFocusEvent` -->
51
35
  <Story
@@ -57,15 +41,7 @@ const { Story } = defineMeta({
57
41
  console.log('onfocus Event', target);
58
42
  },
59
43
  }}
60
- >
61
- <TextInput
62
- onfocus={(e: TextInputFocusEvent) => {
63
- const target = e.target as HTMLInputElement;
64
-
65
- console.log('onfocus Event', target);
66
- }}
67
- />
68
- </Story>
44
+ />
69
45
 
70
46
  <!-- `e: TextInputFocusEvent` -->
71
47
  <Story
@@ -77,15 +53,7 @@ const { Story } = defineMeta({
77
53
  console.log('onblur Event', target);
78
54
  },
79
55
  }}
80
- >
81
- <TextInput
82
- onblur={(e: TextInputFocusEvent) => {
83
- const target = e.target as HTMLInputElement;
84
-
85
- console.log('onblur Event', target);
86
- }}
87
- />
88
- </Story>
56
+ />
89
57
 
90
58
  <!-- `e: TextInputClipboardEvent` -->
91
59
  <Story
@@ -97,15 +65,7 @@ const { Story } = defineMeta({
97
65
  console.log('oncopy Event', target);
98
66
  },
99
67
  }}
100
- >
101
- <TextInput
102
- oncopy={(e: TextInputClipboardEvent) => {
103
- const target = e.target as HTMLInputElement;
104
-
105
- console.log('oncopy Event', target);
106
- }}
107
- />
108
- </Story>
68
+ />
109
69
 
110
70
  <!-- `e: TextInputClipboardEvent` -->
111
71
  <Story
@@ -117,15 +77,7 @@ const { Story } = defineMeta({
117
77
  console.log('oncut Event', target);
118
78
  },
119
79
  }}
120
- >
121
- <TextInput
122
- oncut={(e: TextInputClipboardEvent) => {
123
- const target = e.target as HTMLInputElement;
124
-
125
- console.log('oncut Event', target);
126
- }}
127
- />
128
- </Story>
80
+ />
129
81
 
130
82
  <!-- `e: TextInputClipboardEvent` -->
131
83
  <Story
@@ -137,12 +89,4 @@ const { Story } = defineMeta({
137
89
  console.log('onpaste Event', target);
138
90
  },
139
91
  }}
140
- >
141
- <TextInput
142
- onpaste={(e: TextInputClipboardEvent) => {
143
- const target = e.target as HTMLInputElement;
144
-
145
- console.log('onpaste Event', target);
146
- }}
147
- />
148
- </Story>
92
+ />
@@ -12,10 +12,10 @@
12
12
  });
13
13
  </script>
14
14
 
15
- <Story name="Roundness 1x" />
15
+ <Story name="Roundness 1" />
16
16
 
17
- <Story name="Roundness 2x" args={{ roundness: '2x' }} />
17
+ <Story name="Roundness 2" args={{ roundness: 2 }} />
18
18
 
19
- <Story name="Roundness 3x" args={{ roundness: '3x' }} />
19
+ <Story name="Roundness 3" args={{ roundness: 3 }} />
20
20
 
21
- <Story name="Roundness False" args={{ roundness: false }} />
21
+ <Story name="Roundness 0" args={{ roundness: 0 }} />
@@ -1,17 +1,19 @@
1
1
  <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
- import TextInput from './TextInput.svelte';
2
+ import TextInput, { textInputTypeArray } from './TextInput.svelte';
3
+ import { componentRoundnessArray } from '../../../../types/roundness.js';
4
+ import { componentSizeArray } from '../../../../types/size.js';
3
5
  export const storyTextInputArgTypes = {
4
6
  type: {
5
7
  control: { type: 'select' },
6
- options: ['text', 'tel', 'email', 'password', 'url', 'number'],
8
+ options: textInputTypeArray,
7
9
  },
8
10
  roundness: {
9
11
  control: { type: 'select' },
10
- options: [false, '1x', '2x', '3x'],
12
+ options: componentRoundnessArray,
11
13
  },
12
14
  size: {
13
15
  control: { type: 'select' },
14
- options: ['normal', 'small', 'large'],
16
+ options: componentSizeArray,
15
17
  },
16
18
  };
17
19
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
@@ -1,8 +1,15 @@
1
- <script lang="ts" module>export {};
1
+ <script lang="ts" module>export const textInputTypeArray = [
2
+ 'text',
3
+ 'tel',
4
+ 'email',
5
+ 'password',
6
+ 'url',
7
+ 'number',
8
+ ];
2
9
  </script>
3
10
 
4
11
  <script lang="ts">import InputEnclosure from '../../../developer tools/components/InputEnclosure/InputEnclosure.svelte';
5
- let { type = 'text', size = 'normal', roundness = '1x', outline = true, name, id, class: className = '', disabled = false, oninput, onchange, onblur, onfocus, onpaste, oncopy, oncut, before, after, error = false, value = $bindable(), placeholder, ref = $bindable(), readonly = false, } = $props();
12
+ let { type = 'text', size = 'normal', roundness = 1, outline = true, name, id, class: className = '', disabled = false, oninput, onchange, onblur, onfocus, onpaste, oncopy, oncut, before, after, error = false, value = $bindable(), placeholder, ref = $bindable(), readonly = false, } = $props();
6
13
  let focused = $state(false);
7
14
  function onfocusMod(e) {
8
15
  focused = true;
@@ -58,13 +65,13 @@ function onblurMod(e) {
58
65
  }
59
66
  .dodo-ui-TextInput.size--normal input {
60
67
  font-size: 1rem;
61
- padding: 0 12px;
68
+ padding: 0 calc(var(--dodo-ui-space-small) * 2);
62
69
  }
63
70
  .dodo-ui-TextInput.size--small input {
64
- padding: 0 8px;
71
+ padding: 0 var(--dodo-ui-space);
65
72
  font-size: 0.9rem;
66
73
  }
67
74
  .dodo-ui-TextInput.size--large input {
68
75
  font-size: 1.1rem;
69
- padding: 0 14px;
76
+ padding: 0 calc(var(--dodo-ui-space) * 2);
70
77
  }</style>
@@ -1,11 +1,13 @@
1
1
  export type TextInputType = 'text' | 'tel' | 'email' | 'password' | 'url' | 'number';
2
+ export declare const textInputTypeArray: TextInputType[];
2
3
  export type TextInputFocusEvent = FocusEvent & {
3
4
  currentTarget: EventTarget & HTMLInputElement;
4
5
  };
5
6
  export type TextInputClipboardEvent = ClipboardEvent & {
6
7
  currentTarget: EventTarget & HTMLInputElement;
7
8
  };
8
- import type { ComponentRoundness, ComponentSize } from '../../../../types.js';
9
+ import type { ComponentRoundness } from '../../../../types/roundness.js';
10
+ import type { ComponentSize } from '../../../../types/size.js';
9
11
  import type { Snippet } from 'svelte';
10
12
  import type { ChangeEventHandler, ClipboardEventHandler, FocusEventHandler, FormEventHandler } from 'svelte/elements';
11
13
  interface TextInputProps {
@@ -16,7 +18,7 @@ interface TextInputProps {
16
18
  /** How large should the button be? */
17
19
  size?: ComponentSize;
18
20
  /** How round should the border radius be? */
19
- roundness?: ComponentRoundness | false;
21
+ roundness?: ComponentRoundness;
20
22
  /** Add a border around the button. Default True */
21
23
  outline?: boolean;
22
24
  /** Input value */
@@ -13,7 +13,7 @@
13
13
  </script>
14
14
 
15
15
  <!-- TextInput icon in front. -->
16
- <Story name="Icon Before">
16
+ <Story name="Icon Before" asChild>
17
17
  <TextInput>
18
18
  {#snippet before()}
19
19
  <Icon icon="material-symbols:content-copy" />
@@ -22,7 +22,7 @@
22
22
  </Story>
23
23
 
24
24
  <!-- TextInput icon in front. -->
25
- <Story name="Icon After">
25
+ <Story name="Icon After" asChild>
26
26
  <TextInput>
27
27
  {#snippet after()}
28
28
  <Icon icon="material-symbols:download-2" />
@@ -30,7 +30,7 @@
30
30
  </TextInput>
31
31
  </Story>
32
32
 
33
- <Story name="Small" args={{ size: 'small' }}>
33
+ <Story name="Small" args={{ size: 'small' }} asChild>
34
34
  <TextInput size="small">
35
35
  {#snippet before()}
36
36
  <Icon icon="material-symbols:content-copy" />
@@ -38,7 +38,7 @@
38
38
  </TextInput>
39
39
  </Story>
40
40
 
41
- <Story name="Large" args={{ size: 'large' }}>
41
+ <Story name="Large" args={{ size: 'large' }} asChild>
42
42
  <TextInput size="large">
43
43
  {#snippet before()}
44
44
  <Icon icon="material-symbols:content-copy" />
@@ -0,0 +1,63 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { storyPaperArgTypes } from '../Paper.stories.svelte';
4
+ import Paper from '../Paper.svelte';
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const { Story } = defineMeta({
8
+ component: Paper,
9
+ tags: ['autodocs'],
10
+ argTypes: storyPaperArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Default" args={{ height: '100px' }}>Hola!</Story>
15
+
16
+ <Story name="Primary" args={{ color: 'primary', height: '100px' }}>Hola!</Story>
17
+ <Story name="Secondary" args={{ color: 'secondary', height: '100px' }}>Hola!</Story>
18
+ <Story name="Neutral" args={{ color: 'neutral', height: '100px' }}>Hola!</Story>
19
+ <Story name="Safe" args={{ color: 'safe', height: '100px' }}>Hola!</Story>
20
+ <Story name="Warning" args={{ color: 'warning', height: '100px' }}>Hola!</Story>
21
+ <Story name="Danger" args={{ color: 'danger', height: '100px' }}>Hola!</Story>
22
+
23
+ <Story name="Default Outline" args={{ outline: true, height: '100px' }}>Hola!</Story>
24
+ <Story name="Primary Outline" args={{ color: 'primary', outline: true, height: '100px' }}>
25
+ Hola!
26
+ </Story>
27
+ <Story name="Secondary Outline" args={{ color: 'secondary', outline: true, height: '100px' }}>
28
+ Hola!
29
+ </Story>
30
+ <Story name="Neutral Outline" args={{ color: 'neutral', outline: true, height: '100px' }}>
31
+ Hola!
32
+ </Story>
33
+ <Story name="Safe Outline" args={{ color: 'safe', outline: true, height: '100px' }}>Hola!</Story>
34
+ <Story name="Warning Outline" args={{ color: 'warning', outline: true, height: '100px' }}>
35
+ Hola!
36
+ </Story>
37
+ <Story name="Danger Outline" args={{ color: 'danger', outline: true, height: '100px' }}>Hola!</Story
38
+ >
39
+
40
+ <Story name="Primary Solid" args={{ color: 'primary', variant: 'solid', height: '100px' }}>
41
+ Hola!
42
+ </Story>
43
+ <Story name="Secondary Solid" args={{ color: 'secondary', variant: 'solid', height: '100px' }}>
44
+ Hola!
45
+ </Story>
46
+ <Story name="Neutral Solid" args={{ color: 'neutral', variant: 'solid', height: '100px' }}>
47
+ Hola!
48
+ </Story>
49
+ <Story name="Safe Solid" args={{ color: 'safe', variant: 'solid', height: '100px' }}>Hola!</Story>
50
+ <Story name="Warning Solid" args={{ color: 'warning', variant: 'solid', height: '100px' }}>
51
+ Hola!
52
+ </Story>
53
+ <Story name="Danger Solid" args={{ color: 'danger', variant: 'solid', height: '100px' }}>
54
+ Hola!
55
+ </Story>
56
+
57
+ <!-- Paper with Custom Backgroun and Border colors -->
58
+ <Story
59
+ name="Custom Color"
60
+ args={{ height: '100px', customBackgroundColor: '#ffdfad', customBorderColor: '#fbc674' }}
61
+ >
62
+ Hola!
63
+ </Story>
@@ -0,0 +1,26 @@
1
+ export default Color;
2
+ type Color = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Color: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -1,13 +1,24 @@
1
1
  <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
- import Paper from './Paper.svelte';
2
+ import Paper, { paperColorArray } from './Paper.svelte';
3
+ import { componentRoundnessArray } from '../../../../types/roundness.js';
4
+ import { componentShadowArray } from '../../../../types/shadow.js';
5
+ import { componentWeightArray } from '../../../../types/weight.js';
3
6
  export const storyPaperArgTypes = {
7
+ color: {
8
+ control: { type: 'select' },
9
+ options: paperColorArray,
10
+ },
11
+ variant: {
12
+ control: { type: 'select' },
13
+ options: componentWeightArray,
14
+ },
4
15
  roundness: {
5
16
  control: { type: 'select' },
6
- options: [false, '1x', '2x', '3x', 'full'],
17
+ options: componentRoundnessArray,
7
18
  },
8
19
  shadow: {
9
20
  control: { type: 'select' },
10
- options: [false, '1x', '2x', '3x', '4x', '5x', '6x', '7x'],
21
+ options: componentShadowArray,
11
22
  },
12
23
  };
13
24
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
@@ -18,20 +29,18 @@ const { Story } = defineMeta({
18
29
  });
19
30
  </script>
20
31
 
21
- <!-- ⚠️ Test Paper: Do not use! -->
22
- <Story
23
- name="Test Paper"
24
- args={{
25
- _unsafeChildrenStringForTesting: 'Hola!',
26
- }}
27
- />
28
-
29
32
  <!-- Paper with default style -->
30
- <Story name="Default">
31
- <Paper>Hola!</Paper>
32
- </Story>
33
+ <Story name="Default">Hola!</Story>
33
34
 
34
35
  <!-- Paper with width and height -->
35
- <Story name="WidthAndHeight">
36
- <Paper width="200px" height="200px">Hola!</Paper>
36
+ <Story name="WidthAndHeight" args={{ width: '200px', height: '200px', color: 'primary' }}>
37
+ Hola!
38
+ </Story>
39
+
40
+ <!-- Paper with Custom Backgroun and Border colors -->
41
+ <Story
42
+ name="Custom Color"
43
+ args={{ height: '100px', customBackgroundColor: '#ffdfad', customBorderColor: '#fbc674' }}
44
+ >
45
+ Hola!
37
46
  </Story>
@@ -1,34 +1,142 @@
1
- <script lang="ts" module>export {};
1
+ <script lang="ts" module>import { componentColorPriorityArray, componentColorSeverityArray, } from '../../../../types/colors.js';
2
+ export const paperColorArray = [
3
+ 'default',
4
+ ...componentColorPriorityArray,
5
+ ...componentColorSeverityArray,
6
+ ];
2
7
  </script>
3
8
 
4
- <script lang="ts">let { children, roundness = '1x', shadow = '1x', id, class: className = '', _unsafeChildrenStringForTesting, width, height, ref = $bindable(), } = $props();
9
+ <script lang="ts">let { children, roundness = 1, shadow = 0, id, class: className = '', width, height, ref = $bindable(), color = 'default', variant = 'text', customBackgroundColor, customBorderColor, outline = false, } = $props();
5
10
  export {};
6
11
  </script>
7
12
 
8
13
  <div
14
+ class:outline
9
15
  class={[
10
16
  'dodo-ui-Paper',
11
17
  `roundness--${roundness}`,
18
+ `color--${color}`,
19
+ `variant--${variant}`,
20
+ `shadow--${shadow}`,
12
21
  `${shadow ? `shadow--${shadow} dodo-shadow-${shadow}` : `shadow--${shadow}`}`,
13
22
  className,
14
23
  ].join(' ')}
15
24
  {id}
16
25
  bind:this={ref}
17
- style={`${width ? `width:${width};` : ''}${height ? `height:${height};` : ''}`}
26
+ style={`${width ? `width:${width};` : ''}
27
+ ${height ? `height:${height};` : ''}
28
+ ${customBackgroundColor ? `background-color:${customBackgroundColor};` : ''}
29
+ ${customBorderColor ? `border-color:${customBorderColor};` : ''}
30
+ `}
18
31
  >
19
32
  {#if children}
20
33
  {@render children()}
21
- {:else if _unsafeChildrenStringForTesting}
22
- {_unsafeChildrenStringForTesting}
23
34
  {/if}
24
35
  </div>
25
36
 
26
37
  <style>:global(:root) {
27
- --dodo-ui-Paper-bg: var(--dodo-color-white);
38
+ --dodo-ui-Paper-default-bg: var(--dodo-color-white);
39
+ --dodo-ui-Paper-default-bg-shadow-1: var(--dodo-color-white);
40
+ --dodo-ui-Paper-default-bg-shadow-2: var(--dodo-color-white);
41
+ --dodo-ui-Paper-default-bg-shadow-3: var(--dodo-color-white);
42
+ --dodo-ui-Paper-default-bg-shadow-4: var(--dodo-color-white);
43
+ --dodo-ui-Paper-default-bg-shadow-5: var(--dodo-color-white);
44
+ --dodo-ui-Paper-outline-default: var(--dodo-color-neutral-300);
45
+ --dodo-ui-Paper-outline-neutral: var(--dodo-color-neutral-400);
46
+ --dodo-ui-Paper-text-neutral-bg: var(--dodo-color-neutral-100);
47
+ --dodo-ui-Paper-solid-neutral-bg: var(--dodo-color-neutral-500);
48
+ --dodo-ui-Paper-outline-primary: var(--dodo-color-primary-400);
49
+ --dodo-ui-Paper-text-primary-bg: var(--dodo-color-primary-100);
50
+ --dodo-ui-Paper-solid-primary-bg: var(--dodo-color-primary-500);
51
+ --dodo-ui-Paper-outline-secondary: var(--dodo-color-secondary-400);
52
+ --dodo-ui-Paper-text-secondary-bg: var(--dodo-color-secondary-100);
53
+ --dodo-ui-Paper-solid-secondary-bg: var(--dodo-color-secondary-500);
54
+ --dodo-ui-Paper-outline-safe: var(--dodo-color-safe-400);
55
+ --dodo-ui-Paper-text-safe-bg: var(--dodo-color-safe-100);
56
+ --dodo-ui-Paper-solid-safe-bg: var(--dodo-color-safe-500);
57
+ --dodo-ui-Paper-outline-warning: var(--dodo-color-warning-400);
58
+ --dodo-ui-Paper-text-warning-bg: var(--dodo-color-warning-100);
59
+ --dodo-ui-Paper-solid-warning-bg: var(--dodo-color-warning-500);
60
+ --dodo-ui-Paper-outline-danger: var(--dodo-color-danger-400);
61
+ --dodo-ui-Paper-text-danger-bg: var(--dodo-color-danger-100);
62
+ --dodo-ui-Paper-solid-danger-bg: var(--dodo-color-danger-500);
28
63
  }
29
64
 
30
65
  :global(.dodo-theme--dark) {
31
- --dodo-ui-Paper-bg: var(--dodo-color-default-100);
66
+ --dodo-ui-Paper-default-bg-mixer: #999999fd;
67
+ --dodo-ui-Paper-default-bg: color-mix(
68
+ in oklab,
69
+ var(--dodo-color-neutral-50) 98%,
70
+ var(--dodo-ui-Paper-default-bg-mixer)
71
+ );
72
+ --dodo-ui-Paper-default-bg-shadow-1: color-mix(
73
+ in oklab,
74
+ var(--dodo-color-neutral-50) 95%,
75
+ var(--dodo-ui-Paper-default-bg-mixer)
76
+ );
77
+ --dodo-ui-Paper-default-bg-shadow-2: color-mix(
78
+ in oklab,
79
+ var(--dodo-color-neutral-50) 90%,
80
+ var(--dodo-ui-Paper-default-bg-mixer)
81
+ );
82
+ --dodo-ui-Paper-default-bg-shadow-3: color-mix(
83
+ in oklab,
84
+ var(--dodo-color-neutral-50) 85%,
85
+ var(--dodo-ui-Paper-default-bg-mixer)
86
+ );
87
+ --dodo-ui-Paper-default-bg-shadow-4: color-mix(
88
+ in oklab,
89
+ var(--dodo-color-neutral-50) 80%,
90
+ var(--dodo-ui-Paper-default-bg-mixer)
91
+ );
92
+ --dodo-ui-Paper-default-bg-shadow-5: color-mix(
93
+ in oklab,
94
+ var(--dodo-color-neutral-50) 75%,
95
+ var(--dodo-ui-Paper-default-bg-mixer)
96
+ );
97
+ --dodo-ui-Paper-outline-default: var(--dodo-color-neutral-200);
98
+ --dodo-ui-Paper-outline-neutral: var(--dodo-color-neutral-300);
99
+ --dodo-ui-Paper-text-neutral-bg: color-mix(
100
+ in oklab,
101
+ var(--dodo-color-neutral-50) 80%,
102
+ #00000080
103
+ );
104
+ --dodo-ui-Paper-solid-neutral-bg: var(--dodo-color-neutral-300);
105
+ --dodo-ui-Paper-outline-primary: var(--dodo-color-primary-300);
106
+ --dodo-ui-Paper-text-primary-bg: color-mix(
107
+ in oklab,
108
+ var(--dodo-color-primary-50) 80%,
109
+ #00000080
110
+ );
111
+ --dodo-ui-Paper-solid-primary-bg: var(--dodo-color-primary-300);
112
+ --dodo-ui-Paper-outline-secondary: var(--dodo-color-secondary-300);
113
+ --dodo-ui-Paper-text-secondary-bg: color-mix(
114
+ in oklab,
115
+ var(--dodo-color-secondary-50) 80%,
116
+ #00000080
117
+ );
118
+ --dodo-ui-Paper-solid-secondary-bg: var(--dodo-color-secondary-300);
119
+ --dodo-ui-Paper-outline-safe: var(--dodo-color-safe-300);
120
+ --dodo-ui-Paper-text-safe-bg: color-mix(
121
+ in oklab,
122
+ var(--dodo-color-safe-50) 80%,
123
+ #00000080
124
+ );
125
+ --dodo-ui-Paper-solid-safe-bg: var(--dodo-color-safe-300);
126
+ --dodo-ui-Paper-outline-warning: var(--dodo-color-warning-300);
127
+ --dodo-ui-Paper-text-warning-bg: color-mix(
128
+ in oklab,
129
+ var(--dodo-color-warning-50) 80%,
130
+ #00000080
131
+ );
132
+ --dodo-ui-Paper-solid-warning-bg: var(--dodo-color-warning-300);
133
+ --dodo-ui-Paper-outline-danger: var(--dodo-color-danger-300);
134
+ --dodo-ui-Paper-text-danger-bg: color-mix(
135
+ in oklab,
136
+ var(--dodo-color-danger-50) 80%,
137
+ #00000080
138
+ );
139
+ --dodo-ui-Paper-solid-danger-bg: var(--dodo-color-danger-300);
32
140
  }
33
141
 
34
142
  .dodo-ui-Paper {
@@ -36,18 +144,107 @@ export {};
36
144
  transition: all 150ms;
37
145
  font-family: inherit;
38
146
  color: inherit;
39
- background-color: var(--dodo-ui-Paper-bg);
147
+ border-style: solid;
148
+ border-width: var(--dodo-ui-element-border-width);
149
+ border-color: transparent;
40
150
  overflow: hidden;
41
151
  }
42
- .dodo-ui-Paper.roundness--1x {
43
- border-radius: var(--dodo-ui-element-roundness-1x);
152
+ .dodo-ui-Paper.roundness--1 {
153
+ border-radius: var(--dodo-ui-element-roundness-1);
44
154
  }
45
- .dodo-ui-Paper.roundness--2x {
46
- border-radius: var(--dodo-ui-element-roundness-2x);
155
+ .dodo-ui-Paper.roundness--2 {
156
+ border-radius: var(--dodo-ui-element-roundness-2);
47
157
  }
48
- .dodo-ui-Paper.roundness--3x {
49
- border-radius: var(--dodo-ui-element-roundness-3x);
158
+ .dodo-ui-Paper.roundness--3 {
159
+ border-radius: var(--dodo-ui-element-roundness-3);
50
160
  }
51
161
  .dodo-ui-Paper.roundness--full {
52
162
  border-radius: 50%;
163
+ }
164
+ .dodo-ui-Paper.color--default {
165
+ background-color: var(--dodo-ui-Paper-default-bg);
166
+ }
167
+ .dodo-ui-Paper.color--default.outline {
168
+ border-color: var(--dodo-ui-Paper-outline-default);
169
+ }
170
+ .dodo-ui-Paper.color--neutral.variant--text {
171
+ color: var(--dodo-color-neutral-800);
172
+ background-color: var(--dodo-ui-Paper-text-neutral-bg);
173
+ }
174
+ .dodo-ui-Paper.color--neutral.variant--text.outline {
175
+ border-color: var(--dodo-ui-Paper-outline-neutral);
176
+ }
177
+ .dodo-ui-Paper.color--neutral.variant--solid {
178
+ color: var(--dodo-color-constant-white);
179
+ background-color: var(--dodo-ui-Paper-solid-neutral-bg);
180
+ }
181
+ .dodo-ui-Paper.color--primary.variant--text {
182
+ color: var(--dodo-color-primary-800);
183
+ background-color: var(--dodo-ui-Paper-text-primary-bg);
184
+ }
185
+ .dodo-ui-Paper.color--primary.variant--text.outline {
186
+ border-color: var(--dodo-ui-Paper-outline-primary);
187
+ }
188
+ .dodo-ui-Paper.color--primary.variant--solid {
189
+ color: var(--dodo-color-constant-white);
190
+ background-color: var(--dodo-ui-Paper-solid-primary-bg);
191
+ }
192
+ .dodo-ui-Paper.color--secondary.variant--text {
193
+ color: var(--dodo-color-secondary-800);
194
+ background-color: var(--dodo-ui-Paper-text-secondary-bg);
195
+ }
196
+ .dodo-ui-Paper.color--secondary.variant--text.outline {
197
+ border-color: var(--dodo-ui-Paper-outline-secondary);
198
+ }
199
+ .dodo-ui-Paper.color--secondary.variant--solid {
200
+ color: var(--dodo-color-constant-white);
201
+ background-color: var(--dodo-ui-Paper-solid-secondary-bg);
202
+ }
203
+ .dodo-ui-Paper.color--safe.variant--text {
204
+ color: var(--dodo-color-safe-800);
205
+ background-color: var(--dodo-ui-Paper-text-safe-bg);
206
+ }
207
+ .dodo-ui-Paper.color--safe.variant--text.outline {
208
+ border-color: var(--dodo-ui-Paper-outline-safe);
209
+ }
210
+ .dodo-ui-Paper.color--safe.variant--solid {
211
+ color: var(--dodo-color-constant-white);
212
+ background-color: var(--dodo-ui-Paper-solid-safe-bg);
213
+ }
214
+ .dodo-ui-Paper.color--warning.variant--text {
215
+ color: var(--dodo-color-warning-800);
216
+ background-color: var(--dodo-ui-Paper-text-warning-bg);
217
+ }
218
+ .dodo-ui-Paper.color--warning.variant--text.outline {
219
+ border-color: var(--dodo-ui-Paper-outline-warning);
220
+ }
221
+ .dodo-ui-Paper.color--warning.variant--solid {
222
+ color: var(--dodo-color-constant-white);
223
+ background-color: var(--dodo-ui-Paper-solid-warning-bg);
224
+ }
225
+ .dodo-ui-Paper.color--danger.variant--text {
226
+ color: var(--dodo-color-danger-800);
227
+ background-color: var(--dodo-ui-Paper-text-danger-bg);
228
+ }
229
+ .dodo-ui-Paper.color--danger.variant--text.outline {
230
+ border-color: var(--dodo-ui-Paper-outline-danger);
231
+ }
232
+ .dodo-ui-Paper.color--danger.variant--solid {
233
+ color: var(--dodo-color-constant-white);
234
+ background-color: var(--dodo-ui-Paper-solid-danger-bg);
235
+ }
236
+ .dodo-ui-Paper.color--default.shadow--1 {
237
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-1);
238
+ }
239
+ .dodo-ui-Paper.color--default.shadow--2 {
240
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-2);
241
+ }
242
+ .dodo-ui-Paper.color--default.shadow--3 {
243
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-3);
244
+ }
245
+ .dodo-ui-Paper.color--default.shadow--4 {
246
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-4);
247
+ }
248
+ .dodo-ui-Paper.color--default.shadow--5 {
249
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-5);
53
250
  }</style>