@flightlesslabs/dodo-ui 0.7.2 → 0.9.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 (138) hide show
  1. package/dist/index.d.ts +18 -2
  2. package/dist/index.js +11 -0
  3. package/dist/stories/components/Form/NumericInput/Events/Events.stories.svelte +126 -0
  4. package/dist/stories/components/Form/NumericInput/Events/Events.stories.svelte.d.ts +18 -0
  5. package/dist/stories/components/Form/NumericInput/NumericInput.stories.svelte +79 -0
  6. package/dist/stories/components/Form/NumericInput/NumericInput.stories.svelte.d.ts +21 -0
  7. package/dist/stories/components/Form/NumericInput/NumericInput.svelte +161 -0
  8. package/dist/stories/components/Form/NumericInput/NumericInput.svelte.d.ts +69 -0
  9. package/dist/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +84 -0
  10. package/dist/stories/components/Form/NumericInput/Validation/Validation.stories.svelte.d.ts +18 -0
  11. package/dist/stories/components/Form/PasswordInput/Events/Events.stories.svelte +27 -6
  12. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +5 -3
  13. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +7 -1
  14. package/dist/stories/components/Form/Select/Customize/Customize.stories.svelte +16 -1
  15. package/dist/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +59 -0
  16. package/dist/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte.d.ts +18 -0
  17. package/dist/stories/components/Form/Select/Events/Events.stories.svelte +27 -0
  18. package/dist/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +54 -0
  19. package/dist/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte.d.ts +18 -0
  20. package/dist/stories/components/Form/Select/Positions/Positions.stories.svelte +83 -0
  21. package/dist/stories/components/Form/Select/Positions/Positions.stories.svelte.d.ts +18 -0
  22. package/dist/stories/components/Form/Select/Select.svelte +110 -123
  23. package/dist/stories/components/Form/Select/Select.svelte.d.ts +22 -3
  24. package/dist/stories/components/Form/TextInput/Events/Events.stories.svelte +27 -0
  25. package/dist/stories/components/Form/TextInput/TextInput.svelte +5 -3
  26. package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +10 -1
  27. package/dist/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +28 -0
  28. package/dist/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte.d.ts +18 -0
  29. package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +51 -0
  30. package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte.d.ts +22 -0
  31. package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.svelte +129 -0
  32. package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.svelte.d.ts +81 -0
  33. package/dist/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +46 -0
  34. package/dist/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte.d.ts +18 -0
  35. package/dist/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +27 -0
  36. package/dist/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte.d.ts +18 -0
  37. package/dist/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
  38. package/dist/stories/components/Layout/Menu/MenuItem/MenuItem.svelte.d.ts +1 -1
  39. package/dist/stories/developer tools/components/DynamicInput/DynamicInput.svelte +23 -4
  40. package/dist/stories/developer tools/components/DynamicInput/DynamicInput.svelte.d.ts +13 -2
  41. package/dist/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +115 -0
  42. package/dist/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte.d.ts +18 -0
  43. package/dist/stories/developer tools/helpers/Numbers/cleanNumericString/cleanNumericString.d.ts +13 -0
  44. package/dist/stories/developer tools/helpers/Numbers/cleanNumericString/cleanNumericString.js +26 -0
  45. package/dist/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
  46. package/dist/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
  47. package/dist/stories/developer tools/helpers/Numbers/isValidNumberValue/isValidNumberValue.d.ts +51 -0
  48. package/dist/stories/developer tools/helpers/Numbers/isValidNumberValue/isValidNumberValue.js +96 -0
  49. package/dist/stories/developer tools/helpers/logger/index.mdx +63 -0
  50. package/dist/stories/developer tools/helpers/logger/logger.d.ts +24 -0
  51. package/dist/stories/developer tools/helpers/logger/logger.js +31 -0
  52. package/package.json +15 -17
  53. package/src/lib/index.ts +33 -0
  54. package/src/lib/stories/Home.mdx +59 -0
  55. package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
  56. package/src/lib/stories/components/Form/Button/Button.stories.svelte +61 -0
  57. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +43 -0
  58. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +36 -0
  59. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +43 -0
  60. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +23 -0
  61. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +16 -0
  62. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +18 -0
  63. package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +28 -0
  64. package/src/lib/stories/components/Form/Label/Label.stories.svelte +13 -0
  65. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
  66. package/src/lib/stories/components/Form/Message/Message.stories.svelte +27 -0
  67. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +22 -0
  68. package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +134 -0
  69. package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +84 -0
  70. package/src/lib/stories/components/Form/NumericInput/NumericInput.svelte +286 -0
  71. package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +87 -0
  72. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +132 -0
  73. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +59 -0
  74. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +15 -3
  75. package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
  76. package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
  77. package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
  78. package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +139 -0
  79. package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +63 -0
  80. package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +174 -0
  81. package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +40 -0
  82. package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +58 -0
  83. package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +87 -0
  84. package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +32 -0
  85. package/src/lib/stories/components/Form/Select/Select.stories.svelte +121 -0
  86. package/src/lib/stories/components/Form/Select/Select.svelte +166 -146
  87. package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +28 -0
  88. package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +43 -0
  89. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +125 -0
  90. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
  91. package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
  92. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +43 -0
  93. package/src/lib/stories/components/Form/TextInput/TextInput.svelte +18 -3
  94. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
  95. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +30 -0
  96. package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +56 -0
  97. package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.svelte +262 -0
  98. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +48 -0
  99. package/src/lib/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +29 -0
  100. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
  101. package/src/lib/stories/components/Layout/Menu/Menu.stories.svelte +69 -0
  102. package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +34 -0
  103. package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.svelte +1 -1
  104. package/src/lib/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +16 -0
  105. package/src/lib/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +21 -0
  106. package/src/lib/stories/components/Layout/Menu/Size/Size.stories.svelte +37 -0
  107. package/src/lib/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
  108. package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +50 -0
  109. package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +25 -0
  110. package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +24 -0
  111. package/src/lib/stories/components/Layout/Separator/Color/Color.stories.svelte +19 -0
  112. package/src/lib/stories/components/Layout/Separator/Separator.stories.svelte +30 -0
  113. package/src/lib/stories/developer tools/Intro.mdx +9 -0
  114. package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +53 -0
  115. package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.svelte +43 -3
  116. package/src/lib/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +121 -0
  117. package/src/lib/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte +17 -0
  118. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
  119. package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
  120. package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
  121. package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
  122. package/src/lib/stories/developer tools/components/Popper/Popper.stories.svelte +124 -0
  123. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +64 -0
  124. package/src/lib/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +92 -0
  125. package/src/lib/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +114 -0
  126. package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +25 -0
  127. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +30 -0
  128. package/src/lib/stories/developer tools/directives/clickOutside/index.mdx +25 -0
  129. package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/cleanNumericString.ts +27 -0
  130. package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
  131. package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
  132. package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/isValidNumberValue.ts +156 -0
  133. package/src/lib/stories/developer tools/helpers/logger/index.mdx +63 -0
  134. package/src/lib/stories/developer tools/helpers/logger/logger.ts +46 -0
  135. package/src/lib/stories/developer tools/philosophy/Colors/Colors.mdx +43 -0
  136. package/src/lib/stories/developer tools/philosophy/Colors/Colors.stories.svelte +22 -0
  137. package/src/lib/stories/developer tools/philosophy/Colors/Opacity.stories.svelte +11 -0
  138. package/src/lib/stories/developer tools/philosophy/Themes.mdx +23 -0
@@ -0,0 +1,36 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Button from '../Button.svelte';
4
+ import { storyButtonArgTypes } from '../Button.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: Button,
9
+ tags: ['autodocs'],
10
+ argTypes: storyButtonArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story
15
+ name="Click"
16
+ args={{
17
+ onclick: (e: Event) => {
18
+ const target = e.target as HTMLButtonElement;
19
+
20
+ alert('Button Clicked');
21
+ console.log('Button Clicked', target);
22
+ },
23
+ }}
24
+ asChild
25
+ >
26
+ <Button
27
+ onclick={(e: Event) => {
28
+ const target = e.target as HTMLButtonElement;
29
+
30
+ alert('Button Clicked');
31
+ console.log('Button Clicked', target);
32
+ }}
33
+ >
34
+ Click me!
35
+ </Button>
36
+ </Story>
@@ -0,0 +1,43 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Button from '../Button.svelte';
4
+ import { storyButtonArgTypes } from '../Button.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: Button,
10
+ tags: ['autodocs'],
11
+ argTypes: storyButtonArgTypes,
12
+ });
13
+ </script>
14
+
15
+ <!-- Compact button with paddings stripped out and fixed size. We are using this icon library https://iconify.design/docs/icon-components/svelte/ -->
16
+ <Story name="Icon Button" args={{ compact: true }}>
17
+ <Icon icon="material-symbols:app-badging" width="18" height="18" />
18
+ </Story>
19
+
20
+ <!-- Circualr Icon button. -->
21
+ <Story name="Icon Button Circular" args={{ compact: true, roundness: 'full' }}>
22
+ <Icon icon="material-symbols:app-badging" width="18" height="18" />
23
+ </Story>
24
+
25
+ <!-- Button with an icon in front. -->
26
+ <Story name="Icon Before" asChild>
27
+ <Button>
28
+ {#snippet before()}
29
+ <Icon icon="material-symbols:content-copy" />
30
+ {/snippet}
31
+ Copy
32
+ </Button>
33
+ </Story>
34
+
35
+ <!-- Button with an icon in front. -->
36
+ <Story name="Icon After" asChild>
37
+ <Button>
38
+ {#snippet after()}
39
+ <Icon icon="material-symbols:download-2" />
40
+ {/snippet}
41
+ Download
42
+ </Button>
43
+ </Story>
@@ -0,0 +1,23 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Button from '../Button.svelte';
4
+ import { storyButtonArgTypes } from '../Button.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: Button,
9
+ tags: ['autodocs'],
10
+ argTypes: storyButtonArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Roundness 1">Click me!</Story>
15
+
16
+ <Story name="Roundness 2" args={{ roundness: 2 }}>Click me!</Story>
17
+
18
+ <Story name="Roundness 3" args={{ roundness: 3 }}>Click me!</Story>
19
+
20
+ <Story name="Roundness 0" args={{ roundness: 0 }}>Click me!</Story>
21
+
22
+ <!-- Button with 50% roundness usefull for icon (Compact) buttons -->
23
+ <Story name="Roundness Full" args={{ roundness: 'full', compact: true }}>C</Story>
@@ -0,0 +1,16 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Button from '../Button.svelte';
4
+ import { storyButtonArgTypes } from '../Button.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: Button,
9
+ tags: ['autodocs'],
10
+ argTypes: storyButtonArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Normal">Click me!</Story>
15
+ <Story name="Small" args={{ size: 'small' }}>Click me!</Story>
16
+ <Story name="Large" args={{ size: 'large' }}>Click me!</Story>
@@ -0,0 +1,18 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Button from '../Button.svelte';
4
+ import { storyButtonArgTypes } from '../Button.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: Button,
9
+ tags: ['autodocs'],
10
+ argTypes: storyButtonArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Solid">Click me!</Story>
15
+
16
+ <Story name="Text" args={{ variant: 'text' }}>Click me!</Story>
17
+
18
+ <Story name="Text Outline" args={{ variant: 'text', outline: true }}>Click me!</Story>
@@ -0,0 +1,28 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import FormControl from './FormControl.svelte';
4
+ import TextInput from '../TextInput/TextInput.svelte';
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const { Story } = defineMeta({
8
+ component: FormControl,
9
+ tags: ['autodocs'],
10
+ });
11
+ </script>
12
+
13
+ <Story name="Default" args={{ label: 'Hello there' }} />
14
+
15
+ <Story name="Example TextInput" args={{ label: 'Whats your first name?', for: 'first-name-01' }}>
16
+ <TextInput placeholder="First name" id="first-name-01" />
17
+ </Story>
18
+
19
+ <Story
20
+ name="ErrorMessage"
21
+ args={{
22
+ label: 'Whats your first name?',
23
+ for: 'first-name-02',
24
+ errorMessage: 'This is an error message',
25
+ }}
26
+ >
27
+ <TextInput value="John Smith" id="first-name-02" error />
28
+ </Story>
@@ -0,0 +1,13 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Label from './Label.svelte';
4
+
5
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
6
+ const { Story } = defineMeta({
7
+ component: Label,
8
+ tags: ['autodocs'],
9
+ });
10
+ </script>
11
+
12
+ <!-- Label with default style -->
13
+ <Story name="Default">This is a form label</Story>
@@ -0,0 +1,36 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Message from '../Message.svelte';
4
+ import { storyMessageArgTypes } from '../Message.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: Message,
9
+ tags: ['autodocs'],
10
+ argTypes: storyMessageArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Primary" args={{ color: 'primary' }}>
15
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
16
+ </Story>
17
+
18
+ <Story name="Secondary" args={{ color: 'secondary' }}>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
20
+ </Story>
21
+
22
+ <Story name="Neutral" args={{ color: 'neutral' }}>
23
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
24
+ </Story>
25
+
26
+ <Story name="Safe" args={{ color: 'safe' }}>
27
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
28
+ </Story>
29
+
30
+ <Story name="Warning" args={{ color: 'warning' }}>
31
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
32
+ </Story>
33
+
34
+ <Story name="Danger" args={{ color: 'danger' }}>
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
36
+ </Story>
@@ -0,0 +1,27 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Message from './Message.svelte';
4
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
5
+ import { componentColorArray } from '$lib/types/colors.js';
6
+ import { componentSizeArray } from '$lib/types/size.js';
7
+
8
+ export const storyMessageArgTypes: StoryBookArgTypes = {
9
+ color: {
10
+ control: { type: 'select' },
11
+ options: componentColorArray,
12
+ },
13
+ size: {
14
+ control: { type: 'select' },
15
+ options: componentSizeArray,
16
+ },
17
+ };
18
+
19
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
20
+ const { Story } = defineMeta({
21
+ component: Message,
22
+ tags: ['autodocs'],
23
+ argTypes: storyMessageArgTypes,
24
+ });
25
+ </script>
26
+
27
+ <Story name="Primary">Lorem ipsum dolor sit amet, consectetur adipiscing elit</Story>
@@ -0,0 +1,22 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Message from '../Message.svelte';
4
+ import { storyMessageArgTypes } from '../Message.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: Message,
9
+ tags: ['autodocs'],
10
+ argTypes: storyMessageArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Normal">Lorem ipsum dolor sit amet, consectetur adipiscing elit</Story>
15
+
16
+ <Story name="Small" args={{ size: 'small' }}>
17
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
18
+ </Story>
19
+
20
+ <Story name="Large" args={{ size: 'large' }}>
21
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit
22
+ </Story>
@@ -0,0 +1,134 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { storyNumericInputArgTypes } from '../NumericInput.stories.svelte';
4
+ import NumericInput from '../NumericInput.svelte';
5
+ import type {
6
+ TextInputFocusEvent,
7
+ TextInputClipboardEvent,
8
+ TextInputKeyboardEvent,
9
+ } from '../../TextInput/TextInput.svelte';
10
+
11
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
12
+ const { Story } = defineMeta({
13
+ component: NumericInput,
14
+ tags: ['autodocs'],
15
+ argTypes: storyNumericInputArgTypes,
16
+ });
17
+
18
+ let value = $state<undefined | number>(0);
19
+ </script>
20
+
21
+ <!-- Use this event to get filtered numeric value -->
22
+ <Story
23
+ name="NumericValueChange"
24
+ args={{
25
+ value,
26
+ onValueChange: (val: number | undefined) => {
27
+ value = val;
28
+ },
29
+ }}
30
+ />
31
+
32
+ <Story
33
+ name="Input"
34
+ args={{
35
+ oninput: (e: Event) => {
36
+ const target = e.target as HTMLInputElement;
37
+
38
+ console.log('Input Event', target.value);
39
+ },
40
+ }}
41
+ />
42
+
43
+ <Story
44
+ name="Change"
45
+ args={{
46
+ onchange: (e: Event) => {
47
+ const target = e.target as HTMLInputElement;
48
+
49
+ console.log('onChange Event', target.value);
50
+ },
51
+ }}
52
+ />
53
+
54
+ <Story
55
+ name="Focus"
56
+ args={{
57
+ onfocus: (e: TextInputFocusEvent) => {
58
+ const target = e.target as HTMLInputElement;
59
+
60
+ console.log('onfocus Event', target);
61
+ },
62
+ }}
63
+ />
64
+
65
+ <Story
66
+ name="Blur"
67
+ args={{
68
+ onblur: (e: TextInputFocusEvent) => {
69
+ const target = e.target as HTMLInputElement;
70
+
71
+ console.log('onblur Event', target);
72
+ },
73
+ }}
74
+ />
75
+
76
+ <Story
77
+ name="Copy"
78
+ args={{
79
+ oncopy: (e: TextInputClipboardEvent) => {
80
+ const target = e.target as HTMLInputElement;
81
+
82
+ console.log('oncopy Event', target);
83
+ },
84
+ }}
85
+ />
86
+
87
+ <Story
88
+ name="Cut"
89
+ args={{
90
+ oncut: (e: TextInputClipboardEvent) => {
91
+ const target = e.target as HTMLInputElement;
92
+
93
+ console.log('oncut Event', target);
94
+ },
95
+ }}
96
+ />
97
+
98
+ <Story
99
+ name="Paste"
100
+ args={{
101
+ onpaste: (e: TextInputClipboardEvent) => {
102
+ const target = e.target as HTMLInputElement;
103
+
104
+ console.log('onpaste Event', target);
105
+ },
106
+ }}
107
+ />
108
+
109
+ <Story
110
+ name="KeyDown"
111
+ args={{
112
+ onkeydown: (e: TextInputKeyboardEvent) => {
113
+ console.log('onkeydown Event', e.key);
114
+ },
115
+ }}
116
+ />
117
+
118
+ <Story
119
+ name="KeyPress"
120
+ args={{
121
+ onkeypress: (e: TextInputKeyboardEvent) => {
122
+ console.log('onkeypress Event', e.key);
123
+ },
124
+ }}
125
+ />
126
+
127
+ <Story
128
+ name="KeyUp"
129
+ args={{
130
+ onkeyup: (e: TextInputKeyboardEvent) => {
131
+ console.log('onkeyup Event', e.key);
132
+ },
133
+ }}
134
+ />
@@ -0,0 +1,84 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import NumericInput from './NumericInput.svelte';
4
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
5
+ import { componentRoundnessArray } from '$lib/types/roundness.js';
6
+ import { componentSizeArray } from '$lib/types/size.js';
7
+
8
+ export const storyNumericInputArgTypes: StoryBookArgTypes = {
9
+ roundness: {
10
+ control: { type: 'select' },
11
+ options: componentRoundnessArray,
12
+ },
13
+ size: {
14
+ control: { type: 'select' },
15
+ options: componentSizeArray,
16
+ },
17
+ };
18
+
19
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
20
+ const { Story } = defineMeta({
21
+ component: NumericInput,
22
+ tags: ['autodocs'],
23
+ argTypes: storyNumericInputArgTypes,
24
+ });
25
+
26
+ let value = $state<undefined | number>(0);
27
+ </script>
28
+
29
+ <!-- NumericInput with default style -->
30
+ <Story
31
+ name="Default"
32
+ args={{
33
+ value,
34
+ onValueChange: (val) => {
35
+ value = val;
36
+ },
37
+ }}
38
+ />
39
+
40
+ <Story name="Placeholder" args={{ value: undefined, placeholder: 'Type something...' }} />
41
+
42
+ <Story
43
+ name="No Outline"
44
+ args={{
45
+ outline: false,
46
+ value,
47
+ onValueChange: (val) => {
48
+ value = val;
49
+ },
50
+ }}
51
+ />
52
+
53
+ <Story
54
+ name="Error"
55
+ args={{
56
+ error: true,
57
+ value,
58
+ onValueChange: (val) => {
59
+ value = val;
60
+ },
61
+ }}
62
+ />
63
+
64
+ <Story
65
+ name="Disabled"
66
+ args={{
67
+ disabled: true,
68
+ value,
69
+ onValueChange: (val) => {
70
+ value = val;
71
+ },
72
+ }}
73
+ />
74
+
75
+ <Story
76
+ name="Read only"
77
+ args={{
78
+ readonly: true,
79
+ value,
80
+ onValueChange: (val) => {
81
+ value = val;
82
+ },
83
+ }}
84
+ />