@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.
- package/dist/index.d.ts +18 -2
- package/dist/index.js +11 -0
- package/dist/stories/components/Form/NumericInput/Events/Events.stories.svelte +126 -0
- package/dist/stories/components/Form/NumericInput/Events/Events.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/NumericInput/NumericInput.stories.svelte +79 -0
- package/dist/stories/components/Form/NumericInput/NumericInput.stories.svelte.d.ts +21 -0
- package/dist/stories/components/Form/NumericInput/NumericInput.svelte +161 -0
- package/dist/stories/components/Form/NumericInput/NumericInput.svelte.d.ts +69 -0
- package/dist/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +84 -0
- package/dist/stories/components/Form/NumericInput/Validation/Validation.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/PasswordInput/Events/Events.stories.svelte +27 -6
- package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +5 -3
- package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +7 -1
- package/dist/stories/components/Form/Select/Customize/Customize.stories.svelte +16 -1
- package/dist/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +59 -0
- package/dist/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/Select/Events/Events.stories.svelte +27 -0
- package/dist/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +54 -0
- package/dist/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/Select/Positions/Positions.stories.svelte +83 -0
- package/dist/stories/components/Form/Select/Positions/Positions.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/Select/Select.svelte +110 -123
- package/dist/stories/components/Form/Select/Select.svelte.d.ts +22 -3
- package/dist/stories/components/Form/TextInput/Events/Events.stories.svelte +27 -0
- package/dist/stories/components/Form/TextInput/TextInput.svelte +5 -3
- package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +10 -1
- package/dist/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +28 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +51 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte.d.ts +22 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.svelte +129 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.svelte.d.ts +81 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +46 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +27 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
- package/dist/stories/components/Layout/Menu/MenuItem/MenuItem.svelte.d.ts +1 -1
- package/dist/stories/developer tools/components/DynamicInput/DynamicInput.svelte +23 -4
- package/dist/stories/developer tools/components/DynamicInput/DynamicInput.svelte.d.ts +13 -2
- package/dist/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +115 -0
- package/dist/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte.d.ts +18 -0
- package/dist/stories/developer tools/helpers/Numbers/cleanNumericString/cleanNumericString.d.ts +13 -0
- package/dist/stories/developer tools/helpers/Numbers/cleanNumericString/cleanNumericString.js +26 -0
- package/dist/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
- package/dist/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
- package/dist/stories/developer tools/helpers/Numbers/isValidNumberValue/isValidNumberValue.d.ts +51 -0
- package/dist/stories/developer tools/helpers/Numbers/isValidNumberValue/isValidNumberValue.js +96 -0
- package/dist/stories/developer tools/helpers/logger/index.mdx +63 -0
- package/dist/stories/developer tools/helpers/logger/logger.d.ts +24 -0
- package/dist/stories/developer tools/helpers/logger/logger.js +31 -0
- package/package.json +15 -17
- package/src/lib/index.ts +33 -0
- package/src/lib/stories/Home.mdx +59 -0
- package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
- package/src/lib/stories/components/Form/Button/Button.stories.svelte +61 -0
- package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +43 -0
- package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +36 -0
- package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +43 -0
- package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +23 -0
- package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +18 -0
- package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +28 -0
- package/src/lib/stories/components/Form/Label/Label.stories.svelte +13 -0
- package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
- package/src/lib/stories/components/Form/Message/Message.stories.svelte +27 -0
- package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +22 -0
- package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +134 -0
- package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +84 -0
- package/src/lib/stories/components/Form/NumericInput/NumericInput.svelte +286 -0
- package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +87 -0
- package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +132 -0
- package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +59 -0
- package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +15 -3
- package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
- package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
- package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +139 -0
- package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +63 -0
- package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +174 -0
- package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +40 -0
- package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +58 -0
- package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +87 -0
- package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +32 -0
- package/src/lib/stories/components/Form/Select/Select.stories.svelte +121 -0
- package/src/lib/stories/components/Form/Select/Select.svelte +166 -146
- package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +28 -0
- package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +43 -0
- package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +125 -0
- package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
- package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
- package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +43 -0
- package/src/lib/stories/components/Form/TextInput/TextInput.svelte +18 -3
- package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +30 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +56 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.svelte +262 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +48 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +29 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
- package/src/lib/stories/components/Layout/Menu/Menu.stories.svelte +69 -0
- package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +34 -0
- package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.svelte +1 -1
- package/src/lib/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +21 -0
- package/src/lib/stories/components/Layout/Menu/Size/Size.stories.svelte +37 -0
- package/src/lib/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
- package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +50 -0
- package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +25 -0
- package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +24 -0
- package/src/lib/stories/components/Layout/Separator/Color/Color.stories.svelte +19 -0
- package/src/lib/stories/components/Layout/Separator/Separator.stories.svelte +30 -0
- package/src/lib/stories/developer tools/Intro.mdx +9 -0
- package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +53 -0
- package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.svelte +43 -3
- package/src/lib/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +121 -0
- package/src/lib/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte +17 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
- package/src/lib/stories/developer tools/components/Popper/Popper.stories.svelte +124 -0
- package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +64 -0
- package/src/lib/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +92 -0
- package/src/lib/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +114 -0
- package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +25 -0
- package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +30 -0
- package/src/lib/stories/developer tools/directives/clickOutside/index.mdx +25 -0
- package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/cleanNumericString.ts +27 -0
- package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
- package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
- package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/isValidNumberValue.ts +156 -0
- package/src/lib/stories/developer tools/helpers/logger/index.mdx +63 -0
- package/src/lib/stories/developer tools/helpers/logger/logger.ts +46 -0
- package/src/lib/stories/developer tools/philosophy/Colors/Colors.mdx +43 -0
- package/src/lib/stories/developer tools/philosophy/Colors/Colors.stories.svelte +22 -0
- package/src/lib/stories/developer tools/philosophy/Colors/Opacity.stories.svelte +11 -0
- package/src/lib/stories/developer tools/philosophy/Themes.mdx +23 -0
|
@@ -31,7 +31,6 @@ const { Story } = defineMeta({
|
|
|
31
31
|
}}
|
|
32
32
|
/>
|
|
33
33
|
|
|
34
|
-
<!-- `e: PasswordInputToggleEvent` -->
|
|
35
34
|
<Story
|
|
36
35
|
name="Toggle"
|
|
37
36
|
args={{
|
|
@@ -43,7 +42,6 @@ const { Story } = defineMeta({
|
|
|
43
42
|
}}
|
|
44
43
|
/>
|
|
45
44
|
|
|
46
|
-
<!-- `e: TextInputFocusEvent` -->
|
|
47
45
|
<Story
|
|
48
46
|
name="Focus"
|
|
49
47
|
args={{
|
|
@@ -55,7 +53,6 @@ const { Story } = defineMeta({
|
|
|
55
53
|
}}
|
|
56
54
|
/>
|
|
57
55
|
|
|
58
|
-
<!-- `e: TextInputFocusEvent` -->
|
|
59
56
|
<Story
|
|
60
57
|
name="Blur"
|
|
61
58
|
args={{
|
|
@@ -67,7 +64,6 @@ const { Story } = defineMeta({
|
|
|
67
64
|
}}
|
|
68
65
|
/>
|
|
69
66
|
|
|
70
|
-
<!-- `e: TextInputClipboardEvent` -->
|
|
71
67
|
<Story
|
|
72
68
|
name="Copy"
|
|
73
69
|
args={{
|
|
@@ -79,7 +75,6 @@ const { Story } = defineMeta({
|
|
|
79
75
|
}}
|
|
80
76
|
/>
|
|
81
77
|
|
|
82
|
-
<!-- `e: TextInputClipboardEvent` -->
|
|
83
78
|
<Story
|
|
84
79
|
name="Cut"
|
|
85
80
|
args={{
|
|
@@ -91,7 +86,6 @@ const { Story } = defineMeta({
|
|
|
91
86
|
}}
|
|
92
87
|
/>
|
|
93
88
|
|
|
94
|
-
<!-- `e: TextInputClipboardEvent` -->
|
|
95
89
|
<Story
|
|
96
90
|
name="Paste"
|
|
97
91
|
args={{
|
|
@@ -102,3 +96,30 @@ const { Story } = defineMeta({
|
|
|
102
96
|
},
|
|
103
97
|
}}
|
|
104
98
|
/>
|
|
99
|
+
|
|
100
|
+
<Story
|
|
101
|
+
name="KeyDown"
|
|
102
|
+
args={{
|
|
103
|
+
onkeydown: (e: TextInputKeyboardEvent) => {
|
|
104
|
+
console.log('onkeydown Event', e.key);
|
|
105
|
+
},
|
|
106
|
+
}}
|
|
107
|
+
/>
|
|
108
|
+
|
|
109
|
+
<Story
|
|
110
|
+
name="KeyPress"
|
|
111
|
+
args={{
|
|
112
|
+
onkeypress: (e: TextInputKeyboardEvent) => {
|
|
113
|
+
console.log('onkeypress Event', e.key);
|
|
114
|
+
},
|
|
115
|
+
}}
|
|
116
|
+
/>
|
|
117
|
+
|
|
118
|
+
<Story
|
|
119
|
+
name="KeyUp"
|
|
120
|
+
args={{
|
|
121
|
+
onkeyup: (e: TextInputKeyboardEvent) => {
|
|
122
|
+
console.log('onkeyup Event', e.key);
|
|
123
|
+
},
|
|
124
|
+
}}
|
|
125
|
+
/>
|
|
@@ -5,21 +5,19 @@
|
|
|
5
5
|
import UtilityButton from '../../../developer tools/components/UtilityButton/UtilityButton.svelte';
|
|
6
6
|
import InputEnclosure from '../../../developer tools/components/InputEnclosure/InputEnclosure.svelte';
|
|
7
7
|
import { DynamicInput } from '../../../../index.js';
|
|
8
|
-
let { size = 'normal', roundness = 1, outline = true, name, id, class: className = '', disabled = false, oninput, onchange, onblur, onfocus, onpaste, oncopy, oncut, before, after, customPasswordToggleIcon, error = false, passwordToggle = true, passwordToggleState = $bindable(), value = $bindable(), placeholder, ontoggle, ref = $bindable(), readonly = false, } = $props();
|
|
8
|
+
let { size = 'normal', roundness = 1, outline = true, name, id, class: className = '', disabled = false, oninput, onchange, onblur, onfocus, onpaste, oncopy, oncut, onkeydown, onkeypress, onkeyup, before, after, customPasswordToggleIcon, error = false, passwordToggle = true, passwordToggleState = $bindable(), value = $bindable(), placeholder, ontoggle, ref = $bindable(), readonly = false, } = $props();
|
|
9
9
|
let focused = $state(false);
|
|
10
10
|
let toggle = $state(passwordToggleState);
|
|
11
11
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
12
|
let customPasswordToggleIconTyped = customPasswordToggleIcon;
|
|
13
13
|
function onfocusMod(e) {
|
|
14
14
|
const eTyped = e;
|
|
15
|
-
focused = true;
|
|
16
15
|
if (onfocus) {
|
|
17
16
|
onfocus(eTyped);
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
19
|
function onblurMod(e) {
|
|
21
20
|
const eTyped = e;
|
|
22
|
-
focused = false;
|
|
23
21
|
if (onblur) {
|
|
24
22
|
onblur(eTyped);
|
|
25
23
|
}
|
|
@@ -51,6 +49,7 @@ function ontoggleMod(e) {
|
|
|
51
49
|
{id}
|
|
52
50
|
{disabled}
|
|
53
51
|
bind:ref
|
|
52
|
+
bind:focused
|
|
54
53
|
{oninput}
|
|
55
54
|
{onchange}
|
|
56
55
|
onfocus={onfocusMod}
|
|
@@ -58,6 +57,9 @@ function ontoggleMod(e) {
|
|
|
58
57
|
{onpaste}
|
|
59
58
|
{oncopy}
|
|
60
59
|
{oncut}
|
|
60
|
+
onkeydown={onkeydown ? (e) => onkeydown(e as TextInputKeyboardEvent) : undefined}
|
|
61
|
+
onkeypress={onkeypress ? (e) => onkeypress(e as TextInputKeyboardEvent) : undefined}
|
|
62
|
+
onkeyup={onkeyup ? (e) => onkeyup(e as TextInputKeyboardEvent) : undefined}
|
|
61
63
|
{placeholder}
|
|
62
64
|
bind:value
|
|
63
65
|
{readonly}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ComponentSize } from '../../../../types/size.js';
|
|
2
2
|
import type { ComponentRoundness } from '../../../../types/roundness.js';
|
|
3
3
|
import type { Snippet } from 'svelte';
|
|
4
|
-
import type { ChangeEventHandler, ClipboardEventHandler, FocusEventHandler, FormEventHandler } from 'svelte/elements';
|
|
4
|
+
import type { ChangeEventHandler, ClipboardEventHandler, FocusEventHandler, FormEventHandler, KeyboardEventHandler } from 'svelte/elements';
|
|
5
5
|
export type PasswordInputToggleEvent = {
|
|
6
6
|
event: Event;
|
|
7
7
|
toggle: boolean;
|
|
@@ -57,6 +57,12 @@ export interface PasswordInputProps {
|
|
|
57
57
|
oncut?: ClipboardEventHandler<HTMLInputElement>;
|
|
58
58
|
/** ontoggle event handler */
|
|
59
59
|
ontoggle?: (e: PasswordInputToggleEvent) => void;
|
|
60
|
+
/** onkeydown event handler */
|
|
61
|
+
onkeydown?: KeyboardEventHandler<HTMLInputElement>;
|
|
62
|
+
/** onkeypress event handler */
|
|
63
|
+
onkeypress?: KeyboardEventHandler<HTMLInputElement>;
|
|
64
|
+
/** onkeyup event handler */
|
|
65
|
+
onkeyup?: KeyboardEventHandler<HTMLInputElement>;
|
|
60
66
|
}
|
|
61
67
|
declare const PasswordInput: import("svelte").Component<PasswordInputProps, {}, "ref" | "value" | "passwordToggleState">;
|
|
62
68
|
type PasswordInput = ReturnType<typeof PasswordInput>;
|
|
@@ -3,6 +3,7 @@ import Select, {} from '../Select.svelte';
|
|
|
3
3
|
import { selectOptions, storySelectArgTypes } from '../Select.stories.svelte';
|
|
4
4
|
import { Menu } from '../../../../../index.js';
|
|
5
5
|
import MenuItem from '../../../Layout/Menu/MenuItem/MenuItem.svelte';
|
|
6
|
+
import Icon from '@iconify/svelte';
|
|
6
7
|
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
7
8
|
const { Story } = defineMeta({
|
|
8
9
|
component: Select,
|
|
@@ -30,6 +31,19 @@ let value = $state(options[0]);
|
|
|
30
31
|
</Select>
|
|
31
32
|
</Story>
|
|
32
33
|
|
|
34
|
+
<!-- Format look and feel Dropdown Arrow icon -->
|
|
35
|
+
<Story name="CustomDropdownArrowIcon" asChild>
|
|
36
|
+
<Select {options} {value} onselect={(val: SelectOption) => (value = val)}>
|
|
37
|
+
{#snippet customDropdownArrowIcon(open)}
|
|
38
|
+
{#if open}
|
|
39
|
+
<Icon icon="mingcute:up-fill" width="24" height="24" />
|
|
40
|
+
{:else}
|
|
41
|
+
<Icon icon="mingcute:down-fill" width="24" height="24" />
|
|
42
|
+
{/if}
|
|
43
|
+
{/snippet}
|
|
44
|
+
</Select>
|
|
45
|
+
</Story>
|
|
46
|
+
|
|
33
47
|
<!-- Format look and feel of Popper menu item. -->
|
|
34
48
|
<Story name="CustomMenuItem" asChild>
|
|
35
49
|
<Select {options} {value} onselect={(val: SelectOption) => (value = val)}>
|
|
@@ -51,13 +65,14 @@ let value = $state(options[0]);
|
|
|
51
65
|
<!-- Format look and feel of Popup. -->
|
|
52
66
|
<Story name="CustomPopup" asChild>
|
|
53
67
|
<Select {options} {value}>
|
|
54
|
-
{#snippet customPopupContent(options, selectedOption)}
|
|
68
|
+
{#snippet customPopupContent(options, selectedOption, onselect)}
|
|
55
69
|
<Menu size="small" separator>
|
|
56
70
|
{#each options as option (option.value)}
|
|
57
71
|
<MenuItem
|
|
58
72
|
type="button"
|
|
59
73
|
disabled={option.disabled}
|
|
60
74
|
selected={selectedOption.value === option.value}
|
|
75
|
+
onclick={() => onselect(option)}
|
|
61
76
|
>
|
|
62
77
|
<b>{option.label}</b>
|
|
63
78
|
</MenuItem>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
2
|
+
import Select, {} from '../Select.svelte';
|
|
3
|
+
import { selectOptions, storySelectArgTypes } from '../Select.stories.svelte';
|
|
4
|
+
import Icon from '@iconify/svelte';
|
|
5
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
6
|
+
const { Story } = defineMeta({
|
|
7
|
+
component: Select,
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
argTypes: storySelectArgTypes,
|
|
10
|
+
parameters: {
|
|
11
|
+
docs: {
|
|
12
|
+
story: {
|
|
13
|
+
height: '400px',
|
|
14
|
+
inline: false,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const options = selectOptions;
|
|
20
|
+
let value = $state(options[0]);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<Story
|
|
24
|
+
name="PositionAfter"
|
|
25
|
+
args={{ options, value, onselect: (val: SelectOption) => (value = val) }}
|
|
26
|
+
/>
|
|
27
|
+
|
|
28
|
+
<Story
|
|
29
|
+
name="PositionBefore"
|
|
30
|
+
args={{
|
|
31
|
+
options,
|
|
32
|
+
value,
|
|
33
|
+
onselect: (val: SelectOption) => (value = val),
|
|
34
|
+
dropdownArrowPosition: 'before',
|
|
35
|
+
}}
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
<Story
|
|
39
|
+
name="HideArrow"
|
|
40
|
+
args={{
|
|
41
|
+
options,
|
|
42
|
+
value,
|
|
43
|
+
onselect: (val: SelectOption) => (value = val),
|
|
44
|
+
dropdownArrowPosition: false,
|
|
45
|
+
}}
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<!-- Format look and feel Dropdown Arrow icon -->
|
|
49
|
+
<Story name="CustomDropdownArrowIcon" asChild>
|
|
50
|
+
<Select {options} {value} onselect={(val: SelectOption) => (value = val)}>
|
|
51
|
+
{#snippet customDropdownArrowIcon(open)}
|
|
52
|
+
{#if open}
|
|
53
|
+
<Icon icon="mingcute:up-fill" width="24" height="24" />
|
|
54
|
+
{:else}
|
|
55
|
+
<Icon icon="mingcute:down-fill" width="24" height="24" />
|
|
56
|
+
{/if}
|
|
57
|
+
{/snippet}
|
|
58
|
+
</Select>
|
|
59
|
+
</Story>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
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> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const DropDownArrow: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type DropDownArrow = InstanceType<typeof DropDownArrow>;
|
|
18
|
+
export default DropDownArrow;
|
|
@@ -136,3 +136,30 @@ let value = $state(options[0]);
|
|
|
136
136
|
},
|
|
137
137
|
}}
|
|
138
138
|
/>
|
|
139
|
+
|
|
140
|
+
<Story
|
|
141
|
+
name="KeyDown"
|
|
142
|
+
args={{
|
|
143
|
+
onkeydown: (e: DynamicInputKeyboardEvent) => {
|
|
144
|
+
console.log('onkeydown Event', e.key);
|
|
145
|
+
},
|
|
146
|
+
}}
|
|
147
|
+
/>
|
|
148
|
+
|
|
149
|
+
<Story
|
|
150
|
+
name="KeyPress"
|
|
151
|
+
args={{
|
|
152
|
+
onkeypress: (e: DynamicInputKeyboardEvent) => {
|
|
153
|
+
console.log('onkeypress Event', e.key);
|
|
154
|
+
},
|
|
155
|
+
}}
|
|
156
|
+
/>
|
|
157
|
+
|
|
158
|
+
<Story
|
|
159
|
+
name="KeyUp"
|
|
160
|
+
args={{
|
|
161
|
+
onkeyup: (e: DynamicInputKeyboardEvent) => {
|
|
162
|
+
console.log('onkeyup Event', e.key);
|
|
163
|
+
},
|
|
164
|
+
}}
|
|
165
|
+
/>
|
package/dist/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
2
|
+
import { selectOptions, storySelectArgTypes } from '../../Select.stories.svelte';
|
|
3
|
+
import Select, {} from '../../Select.svelte';
|
|
4
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
component: Select,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: storySelectArgTypes,
|
|
9
|
+
parameters: {
|
|
10
|
+
docs: {
|
|
11
|
+
story: {
|
|
12
|
+
height: '200px',
|
|
13
|
+
inline: false,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
const options = selectOptions;
|
|
19
|
+
let value = $state(options[0]);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<!-- Positions will auto adjust depending on the space on top and bottom -->
|
|
23
|
+
<Story
|
|
24
|
+
name="PositionAutoAdjust"
|
|
25
|
+
args={{
|
|
26
|
+
options,
|
|
27
|
+
value,
|
|
28
|
+
onselect: (val: SelectOption) => (value = val),
|
|
29
|
+
}}
|
|
30
|
+
/>
|
|
31
|
+
|
|
32
|
+
<!-- Positions will not auto adjust if you use `lockPoistions` -->
|
|
33
|
+
<Story
|
|
34
|
+
name="LockPoistions"
|
|
35
|
+
args={{
|
|
36
|
+
options,
|
|
37
|
+
value,
|
|
38
|
+
onselect: (val: SelectOption) => (value = val),
|
|
39
|
+
popupPositionY: 'top',
|
|
40
|
+
lockPoistions: true,
|
|
41
|
+
}}
|
|
42
|
+
/>
|
|
43
|
+
|
|
44
|
+
<!-- you can also adjust `popperHeightForVerticalPosition` to achive the same -->
|
|
45
|
+
<Story
|
|
46
|
+
name="HeightForVerticalPosition"
|
|
47
|
+
args={{
|
|
48
|
+
options,
|
|
49
|
+
value,
|
|
50
|
+
onselect: (val: SelectOption) => (value = val),
|
|
51
|
+
popupPositionY: 'top',
|
|
52
|
+
popperHeightForVerticalPosition: 3,
|
|
53
|
+
}}
|
|
54
|
+
/>
|
package/dist/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
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> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const AutoPosition: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type AutoPosition = InstanceType<typeof AutoPosition>;
|
|
18
|
+
export default AutoPosition;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
2
|
+
import { selectOptions, storySelectArgTypes } from '../Select.stories.svelte';
|
|
3
|
+
import Select, {} from '../Select.svelte';
|
|
4
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
component: Select,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
argTypes: storySelectArgTypes,
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: 'centered',
|
|
11
|
+
docs: {
|
|
12
|
+
story: {
|
|
13
|
+
height: '600px',
|
|
14
|
+
inline: false,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const options = selectOptions;
|
|
20
|
+
let value = $state(options[0]);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<Story
|
|
24
|
+
name="BottomLeft"
|
|
25
|
+
args={{ options, value, onselect: (val: SelectOption) => (value = val), popupMaxHeight: '200px' }}
|
|
26
|
+
/>
|
|
27
|
+
|
|
28
|
+
<Story
|
|
29
|
+
name="BottomCenter"
|
|
30
|
+
args={{
|
|
31
|
+
options,
|
|
32
|
+
value,
|
|
33
|
+
onselect: (val: SelectOption) => (value = val),
|
|
34
|
+
popupPositionX: 'center',
|
|
35
|
+
popupMaxHeight: '200px',
|
|
36
|
+
}}
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<Story
|
|
40
|
+
name="BottomRight"
|
|
41
|
+
args={{
|
|
42
|
+
options,
|
|
43
|
+
value,
|
|
44
|
+
onselect: (val: SelectOption) => (value = val),
|
|
45
|
+
popupPositionX: 'right',
|
|
46
|
+
popupMaxHeight: '200px',
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
|
|
50
|
+
<Story
|
|
51
|
+
name="TopLeft"
|
|
52
|
+
args={{
|
|
53
|
+
options,
|
|
54
|
+
value,
|
|
55
|
+
onselect: (val: SelectOption) => (value = val),
|
|
56
|
+
popupPositionY: 'top',
|
|
57
|
+
popupMaxHeight: '200px',
|
|
58
|
+
}}
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
<Story
|
|
62
|
+
name="TopCenter"
|
|
63
|
+
args={{
|
|
64
|
+
options,
|
|
65
|
+
value,
|
|
66
|
+
onselect: (val: SelectOption) => (value = val),
|
|
67
|
+
popupPositionY: 'top',
|
|
68
|
+
popupPositionX: 'center',
|
|
69
|
+
popupMaxHeight: '200px',
|
|
70
|
+
}}
|
|
71
|
+
/>
|
|
72
|
+
|
|
73
|
+
<Story
|
|
74
|
+
name="TopRight"
|
|
75
|
+
args={{
|
|
76
|
+
options,
|
|
77
|
+
value,
|
|
78
|
+
onselect: (val: SelectOption) => (value = val),
|
|
79
|
+
popupPositionY: 'top',
|
|
80
|
+
popupPositionX: 'right',
|
|
81
|
+
popupMaxHeight: '200px',
|
|
82
|
+
}}
|
|
83
|
+
/>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
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> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const Positions: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type Positions = InstanceType<typeof Positions>;
|
|
18
|
+
export default Positions;
|