@flightlesslabs/dodo-ui 0.17.2 → 0.19.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 (51) hide show
  1. package/dist/index.d.ts +8 -1
  2. package/dist/index.js +4 -0
  3. package/dist/stories/components/Form/DatePicker/DatePicker.svelte +1 -0
  4. package/dist/stories/components/Form/NumericInput/NumericInput.svelte +1 -0
  5. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +1 -0
  6. package/dist/stories/components/Form/Search/Events/Events.stories.svelte +137 -0
  7. package/dist/stories/components/Form/Search/Events/Events.stories.svelte.d.ts +18 -0
  8. package/dist/stories/components/Form/Search/Roundness/Roundness.stories.svelte +21 -0
  9. package/dist/stories/components/Form/Search/Roundness/Roundness.stories.svelte.d.ts +26 -0
  10. package/dist/stories/components/Form/Search/Search.stories.svelte +40 -0
  11. package/dist/stories/components/Form/Search/Search.stories.svelte.d.ts +21 -0
  12. package/dist/stories/components/Form/Search/Search.svelte +142 -0
  13. package/dist/stories/components/Form/Search/Search.svelte.d.ts +66 -0
  14. package/dist/stories/components/Form/Search/SearchIcon/SearchIcon.stories.svelte +27 -0
  15. package/dist/stories/components/Form/Search/SearchIcon/SearchIcon.stories.svelte.d.ts +26 -0
  16. package/dist/stories/components/Form/Search/Size/Size.stories.svelte +17 -0
  17. package/dist/stories/components/Form/Search/Size/Size.stories.svelte.d.ts +26 -0
  18. package/dist/stories/components/Form/Search/WithIcon/WithIcon.stories.svelte +47 -0
  19. package/dist/stories/components/Form/Search/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  20. package/dist/stories/components/Form/Select/Select.svelte +1 -0
  21. package/dist/stories/components/Form/Select/Select.svelte.d.ts +4 -4
  22. package/dist/stories/components/Form/TextInput/TextInput.svelte +1 -0
  23. package/dist/stories/components/Layout/Accordian/Accordian.stories.svelte +52 -0
  24. package/dist/stories/components/Layout/Accordian/Accordian.stories.svelte.d.ts +21 -0
  25. package/dist/stories/components/Layout/Accordian/Accordian.svelte +121 -0
  26. package/dist/stories/components/Layout/Accordian/Accordian.svelte.d.ts +34 -0
  27. package/dist/stories/components/Layout/Accordian/Customize/Customize.stories.svelte +69 -0
  28. package/dist/stories/components/Layout/Accordian/Customize/Customize.stories.svelte.d.ts +18 -0
  29. package/dist/stories/components/Layout/Accordian/Events/Events.stories.svelte +30 -0
  30. package/dist/stories/components/Layout/Accordian/Events/Events.stories.svelte.d.ts +18 -0
  31. package/dist/stories/components/Layout/Accordian/Size/Size.stories.svelte +48 -0
  32. package/dist/stories/components/Layout/Accordian/Size/Size.stories.svelte.d.ts +26 -0
  33. package/dist/stories/developer tools/components/UtilityIcon/Size/Size.stories.svelte +25 -0
  34. package/dist/stories/developer tools/components/UtilityIcon/Size/Size.stories.svelte.d.ts +26 -0
  35. package/dist/stories/developer tools/components/UtilityIcon/UtilityIcon.stories.svelte +26 -0
  36. package/dist/stories/developer tools/components/UtilityIcon/UtilityIcon.stories.svelte.d.ts +21 -0
  37. package/dist/stories/developer tools/components/UtilityIcon/UtilityIcon.svelte +58 -0
  38. package/dist/stories/developer tools/components/UtilityIcon/UtilityIcon.svelte.d.ts +19 -0
  39. package/dist/types/special.d.ts +1 -0
  40. package/dist/types/special.js +1 -0
  41. package/package.json +11 -11
  42. package/src/lib/index.ts +14 -5
  43. package/src/lib/stories/components/Form/DatePicker/DatePicker.svelte +1 -0
  44. package/src/lib/stories/components/Form/NumericInput/NumericInput.svelte +1 -0
  45. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +1 -0
  46. package/src/lib/stories/components/Form/Search/Search.svelte +285 -0
  47. package/src/lib/stories/components/Form/Select/Select.svelte +5 -5
  48. package/src/lib/stories/components/Form/TextInput/TextInput.svelte +1 -0
  49. package/src/lib/stories/components/Layout/Accordian/Accordian.svelte +195 -0
  50. package/src/lib/stories/developer tools/components/UtilityIcon/UtilityIcon.svelte +90 -0
  51. package/src/lib/types/special.ts +1 -0
@@ -0,0 +1,47 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Search from '../Search.svelte';
4
+ import { storySearchArgTypes } from '../Search.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: Search,
10
+ tags: ['autodocs'],
11
+ argTypes: storySearchArgTypes,
12
+ });
13
+ </script>
14
+
15
+ <!-- Search icon in front. -->
16
+ <Story name="Icon Before" asChild>
17
+ <Search>
18
+ {#snippet before()}
19
+ <Icon icon="material-symbols:content-copy" />
20
+ {/snippet}
21
+ </Search>
22
+ </Story>
23
+
24
+ <!-- Search icon in front. -->
25
+ <Story name="Icon After" asChild>
26
+ <Search>
27
+ {#snippet after()}
28
+ <Icon icon="material-symbols:download-2" />
29
+ {/snippet}
30
+ </Search>
31
+ </Story>
32
+
33
+ <Story name="Small" args={{ size: 'small' }} asChild>
34
+ <Search size="small">
35
+ {#snippet before()}
36
+ <Icon icon="material-symbols:content-copy" />
37
+ {/snippet}
38
+ </Search>
39
+ </Story>
40
+
41
+ <Story name="Large" args={{ size: 'large' }} asChild>
42
+ <Search size="large">
43
+ {#snippet before()}
44
+ <Icon icon="material-symbols:content-copy" />
45
+ {/snippet}
46
+ </Search>
47
+ </Story>
@@ -0,0 +1,26 @@
1
+ export default WithIcon;
2
+ type WithIcon = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const WithIcon: $$__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
+ }
@@ -176,6 +176,7 @@ function onKeyBoardEnter(e, selectedItemIndex) {
176
176
  value={searchable ? searchTerm : selectedOption?.label}
177
177
  {readonly}
178
178
  variant={searchable ? 'input' : 'button'}
179
+ {size}
179
180
  >
180
181
  {#snippet customInputContent()}
181
182
  {#if customInputContentTyped}
@@ -7,7 +7,6 @@ export type SelectOption = {
7
7
  label: string;
8
8
  disabled?: boolean;
9
9
  };
10
- export type SelectDropdownArrowPosition = false | 'before' | 'after';
11
10
  export interface SelectProps {
12
11
  /** How large should the button be? */
13
12
  size?: ComponentSize;
@@ -71,11 +70,11 @@ export interface SelectProps {
71
70
  onkeyup?: KeyboardEventHandler<HTMLInputElement | HTMLButtonElement>;
72
71
  /** custom Content Formatting for variant button */
73
72
  customInputContent?: (val: SelectOption) => Snippet;
74
- /** custom Content Formatting for variant button */
73
+ /** custom Menu Item Content */
75
74
  customMenuItemContent?: (val: SelectOption, selected: boolean) => Snippet;
76
75
  /** Custom Popup Content */
77
76
  customPopupContent?: (options: SelectOption[], selectedOption: SelectOption, onselect: (val: SelectOption) => void) => Snippet;
78
- /** custom Content Formatting for variant button */
77
+ /** custom Placeholder MenuItem Content */
79
78
  customPlaceholderMenuItemContent?: () => Snippet;
80
79
  /** PopperPopup Max height. Use css compatible value */
81
80
  popupMaxHeight?: string;
@@ -90,7 +89,7 @@ export interface SelectProps {
90
89
  /** Dropdown Arrow Icon */
91
90
  customDropdownArrowIcon?: (open: boolean) => Snippet;
92
91
  /** Select Dropdown Arrow Position */
93
- dropdownArrowPosition?: SelectDropdownArrowPosition;
92
+ dropdownArrowPosition?: IconPosition;
94
93
  /** Popup stick horizontally */
95
94
  popupPositionX?: PositionX;
96
95
  /** Popup stick vertically */
@@ -103,6 +102,7 @@ export interface SelectProps {
103
102
  open?: boolean;
104
103
  }
105
104
  import { type MenuItemProps, type MenuProps, type PaperProps, type PopperProps, type PositionX, type PositionY } from '../../../../index.js';
105
+ import type { IconPosition } from '../../../../types/special.js';
106
106
  declare const Select: import("svelte").Component<SelectProps, {}, "ref" | "open">;
107
107
  type Select = ReturnType<typeof Select>;
108
108
  export default Select;
@@ -39,6 +39,7 @@ function onblurMod(e) {
39
39
  {name}
40
40
  {id}
41
41
  {disabled}
42
+ {size}
42
43
  bind:ref
43
44
  bind:focused
44
45
  {oninput}
@@ -0,0 +1,52 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import Accordian from './Accordian.svelte';
3
+ import { componentSizeArray } from '../../../../types/size.js';
4
+ export const storyAccordianArgTypes = {
5
+ size: {
6
+ control: { type: 'select' },
7
+ options: componentSizeArray,
8
+ },
9
+ };
10
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
11
+ const { Story } = defineMeta({
12
+ component: Accordian,
13
+ tags: ['autodocs'],
14
+ argTypes: storyAccordianArgTypes,
15
+ });
16
+ </script>
17
+
18
+ <Story name="Default" asChild>
19
+ <Accordian>
20
+ {#snippet summary()}
21
+ Click me!
22
+ {/snippet}
23
+
24
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
25
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
26
+ at harum, explicabo et doloremque.
27
+ </Accordian>
28
+ </Story>
29
+
30
+ <Story name="Open by Default" asChild>
31
+ <Accordian defaultOpen={true}>
32
+ {#snippet summary()}
33
+ Click me!
34
+ {/snippet}
35
+
36
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
37
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
38
+ at harum, explicabo et doloremque.
39
+ </Accordian>
40
+ </Story>
41
+
42
+ <Story name="Full Width Summary" asChild>
43
+ <Accordian fullWidthSummary>
44
+ {#snippet summary()}
45
+ Click me!
46
+ {/snippet}
47
+
48
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
49
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
50
+ at harum, explicabo et doloremque.
51
+ </Accordian>
52
+ </Story>
@@ -0,0 +1,21 @@
1
+ import Accordian from './Accordian.svelte';
2
+ import type { StoryBookArgTypes } from '../../../../storybook-types.js';
3
+ export declare const storyAccordianArgTypes: StoryBookArgTypes;
4
+ 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> {
5
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
+ $$bindings?: Bindings;
7
+ } & Exports;
8
+ (internal: unknown, props: {
9
+ $$events?: Events;
10
+ $$slots?: Slots;
11
+ }): Exports & {
12
+ $set?: any;
13
+ $on?: any;
14
+ };
15
+ z_$$bindings?: Bindings;
16
+ }
17
+ declare const Accordian: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {}, string>;
20
+ type Accordian = InstanceType<typeof Accordian>;
21
+ export default Accordian;
@@ -0,0 +1,121 @@
1
+ <script lang="ts" module>import Icon from '@iconify/svelte';
2
+ import { onMount } from 'svelte';
3
+ </script>
4
+
5
+ <script lang="ts">"use strict";
6
+ let { class: className = '', ref = $bindable(), ontoggle, open = $bindable(), defaultOpen, summary, children, size = 'normal', fullWidthSummary = false, customDropdownArrowIcon: customDropdownArrowIconInternal, dropdownArrowPosition = 'before', } = $props();
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ let customDropdownArrowIconTyped = customDropdownArrowIconInternal;
9
+ let isUserInteraction = $state(false);
10
+ function ontoggleMod(e) {
11
+ if (isUserInteraction) {
12
+ if (ontoggle) {
13
+ ontoggle(e);
14
+ }
15
+ }
16
+ isUserInteraction = false;
17
+ }
18
+ function onsummaryclick() {
19
+ isUserInteraction = true;
20
+ }
21
+ onMount(() => {
22
+ if (open === true) {
23
+ ref.open = true;
24
+ }
25
+ else if (open === false) {
26
+ ref.open = false;
27
+ }
28
+ else if (defaultOpen === true) {
29
+ ref.open = true;
30
+ }
31
+ else if (defaultOpen === false) {
32
+ ref.open = false;
33
+ }
34
+ });
35
+ </script>
36
+
37
+ {#snippet dropdownArrowIcon()}
38
+ {#if customDropdownArrowIconTyped}
39
+ {@render customDropdownArrowIconTyped(open)}
40
+ {:else}
41
+ <div class="IconOpen">
42
+ <Icon icon="material-symbols:arrow-drop-up-rounded" width="32" height="32" />
43
+ </div>
44
+ <div class="IconClose">
45
+ <Icon icon="material-symbols:arrow-drop-down-rounded" width="32" height="32" />
46
+ </div>
47
+ {/if}
48
+ {/snippet}
49
+
50
+ <details
51
+ class:fullWidthSummary
52
+ class={['dodo-ui-Accordian', `size--${size}`, className].join(' ')}
53
+ bind:this={ref}
54
+ {open}
55
+ ontoggle={ontoggleMod}
56
+ >
57
+ {#if summary}
58
+ <summary onclick={onsummaryclick}>
59
+ {#if dropdownArrowPosition === 'before'}
60
+ <div class:open class="DropdownArrow before">
61
+ {@render dropdownArrowIcon()}
62
+ </div>
63
+ {/if}
64
+ {@render summary()}
65
+ {#if dropdownArrowPosition === 'after'}
66
+ <div class:open class="DropdownArrow after">
67
+ {@render dropdownArrowIcon()}
68
+ </div>
69
+ {/if}
70
+ </summary>
71
+ {/if}
72
+
73
+ {#if children}
74
+ <div class="AccordianContent">
75
+ {@render children()}
76
+ </div>
77
+ {/if}
78
+ </details>
79
+
80
+ <style>.dodo-ui-Accordian {
81
+ color: var(--dodo-color-neutral-900);
82
+ width: 100%;
83
+ }
84
+ .dodo-ui-Accordian summary {
85
+ display: inline-flex;
86
+ align-items: center;
87
+ cursor: pointer;
88
+ user-select: none;
89
+ font-weight: 500;
90
+ }
91
+ .dodo-ui-Accordian.fullWidthSummary summary {
92
+ display: flex;
93
+ width: 100%;
94
+ }
95
+ .dodo-ui-Accordian[open] .IconOpen {
96
+ display: flex;
97
+ }
98
+ .dodo-ui-Accordian[open] .IconClose {
99
+ display: none;
100
+ }
101
+ .dodo-ui-Accordian:not([open]) .IconOpen {
102
+ display: none;
103
+ }
104
+ .dodo-ui-Accordian:not([open]) .IconClose {
105
+ display: flex;
106
+ }
107
+ .dodo-ui-Accordian.size--normal summary {
108
+ font-size: 1rem;
109
+ min-height: var(--dodo-ui-element-height-normal);
110
+ }
111
+ .dodo-ui-Accordian.size--small summary {
112
+ font-size: 0.9rem;
113
+ min-height: var(--dodo-ui-element-height-small);
114
+ }
115
+ .dodo-ui-Accordian.size--large summary {
116
+ font-size: 1.1rem;
117
+ min-height: var(--dodo-ui-element-height-large);
118
+ }
119
+ .dodo-ui-Accordian .AccordianContent {
120
+ margin-top: var(--dodo-ui-space);
121
+ }</style>
@@ -0,0 +1,34 @@
1
+ import type { ComponentSize } from '../../../../types/size.js';
2
+ import type { IconPosition } from '../../../../types/special.js';
3
+ import { type Snippet } from 'svelte';
4
+ import type { EventHandler } from 'svelte/elements';
5
+ export type AccordianToggleEvent = Event & {
6
+ currentTarget: EventTarget & HTMLDetailsElement;
7
+ };
8
+ export interface AccordianProps {
9
+ /** Contents goes here */
10
+ children?: Snippet;
11
+ /** Accordian summary */
12
+ summary?: Snippet;
13
+ /** summary full width */
14
+ fullWidthSummary?: boolean;
15
+ /** Accordian ref */
16
+ ref?: HTMLDetailsElement;
17
+ /** Custom css class */
18
+ class?: string;
19
+ /** The toggle event handler */
20
+ ontoggle?: EventHandler<Event, HTMLDetailsElement>;
21
+ /** Open state, for dynmaic Accordians */
22
+ open?: boolean;
23
+ /** default Open, for static Accordians */
24
+ defaultOpen?: boolean;
25
+ /** How large should the button be? */
26
+ size?: ComponentSize;
27
+ /** Select Dropdown Arrow Position */
28
+ dropdownArrowPosition?: IconPosition;
29
+ /** Dropdown Arrow Icon */
30
+ customDropdownArrowIcon?: (open: boolean) => Snippet;
31
+ }
32
+ declare const Accordian: import("svelte").Component<AccordianProps, {}, "ref" | "open">;
33
+ type Accordian = ReturnType<typeof Accordian>;
34
+ export default Accordian;
@@ -0,0 +1,69 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import Accordian from '../Accordian.svelte';
3
+ import { storyAccordianArgTypes } from '../Accordian.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: Accordian,
8
+ tags: ['autodocs'],
9
+ argTypes: storyAccordianArgTypes,
10
+ });
11
+ let open = $state(true);
12
+ </script>
13
+
14
+ <Story name="DropdownArrowPositionBefore" asChild>
15
+ <Accordian>
16
+ {#snippet summary()}
17
+ Click me!
18
+ {/snippet}
19
+
20
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
21
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
22
+ at harum, explicabo et doloremque.
23
+ </Accordian>
24
+ </Story>
25
+
26
+ <Story name="DropdownArrowPositionAfter" asChild>
27
+ <Accordian dropdownArrowPosition="after">
28
+ {#snippet summary()}
29
+ Click me!
30
+ {/snippet}
31
+
32
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
33
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
34
+ at harum, explicabo et doloremque.
35
+ </Accordian>
36
+ </Story>
37
+
38
+ <Story name="HideDropdownArrow" asChild>
39
+ <Accordian dropdownArrowPosition={false}>
40
+ {#snippet summary()}
41
+ Click me!
42
+ {/snippet}
43
+
44
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
45
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
46
+ at harum, explicabo et doloremque.
47
+ </Accordian>
48
+ </Story>
49
+
50
+ <!-- Format look and feel Dropdown Arrow icon -->
51
+ <Story name="CustomDropdownArrowIcon" asChild>
52
+ <Accordian {open} ontoggle={() => (open = !open)}>
53
+ {#snippet summary()}
54
+ Click me!
55
+ {/snippet}
56
+
57
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
58
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
59
+ at harum, explicabo et doloremque.
60
+
61
+ {#snippet customDropdownArrowIcon(open)}
62
+ {#if open}
63
+ <Icon icon="mingcute:up-fill" width="24" height="24" />
64
+ {:else}
65
+ <Icon icon="mingcute:down-fill" width="24" height="24" />
66
+ {/if}
67
+ {/snippet}
68
+ </Accordian>
69
+ </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 Customize: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type Customize = InstanceType<typeof Customize>;
18
+ export default Customize;
@@ -0,0 +1,30 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import { storyAccordianArgTypes } from '../Accordian.stories.svelte';
3
+ import Accordian, {} from '../Accordian.svelte';
4
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
5
+ const { Story } = defineMeta({
6
+ component: Accordian,
7
+ tags: ['autodocs'],
8
+ argTypes: storyAccordianArgTypes,
9
+ });
10
+ let open = $state(false);
11
+ </script>
12
+
13
+ <Story name="Toggle" asChild>
14
+ <Accordian
15
+ {open}
16
+ ontoggle={(e: AccordianToggleEvent) => {
17
+ open = !open;
18
+
19
+ console.log('Input Event', e);
20
+ }}
21
+ >
22
+ {#snippet summary()}
23
+ Click me!
24
+ {/snippet}
25
+
26
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
27
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
28
+ at harum, explicabo et doloremque.
29
+ </Accordian>
30
+ </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 Events: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type Events = InstanceType<typeof Events>;
18
+ export default Events;
@@ -0,0 +1,48 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Accordian from '../Accordian.svelte';
4
+ import { storyAccordianArgTypes } from '../Accordian.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: Accordian,
9
+ tags: ['autodocs'],
10
+ argTypes: storyAccordianArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Normal" asChild>
15
+ <Accordian>
16
+ {#snippet summary()}
17
+ Click me!
18
+ {/snippet}
19
+
20
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
21
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
22
+ at harum, explicabo et doloremque.
23
+ </Accordian>
24
+ </Story>
25
+
26
+ <Story name="Small" asChild>
27
+ <Accordian size="small">
28
+ {#snippet summary()}
29
+ Click me!
30
+ {/snippet}
31
+
32
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
33
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
34
+ at harum, explicabo et doloremque.
35
+ </Accordian>
36
+ </Story>
37
+
38
+ <Story name="Larger" asChild>
39
+ <Accordian size="large">
40
+ {#snippet summary()}
41
+ Click me!
42
+ {/snippet}
43
+
44
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequuntur nisi hic accusamus,
45
+ mollitia velit corporis, sit culpa nam ducimus quisquam aliquam eos atque doloribus architecto
46
+ at harum, explicabo et doloremque.
47
+ </Accordian>
48
+ </Story>
@@ -0,0 +1,26 @@
1
+ export default Size;
2
+ type Size = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Size: $$__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
+ }
@@ -0,0 +1,25 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import UtilityIcon from '../UtilityIcon.svelte';
4
+ import { storyUtilityIconArgTypes } from '../UtilityIcon.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: UtilityIcon,
10
+ tags: ['autodocs'],
11
+ argTypes: storyUtilityIconArgTypes,
12
+ });
13
+ </script>
14
+
15
+ <Story name="Normal">
16
+ <Icon icon="mdi:eye" width="24" height="24" />
17
+ </Story>
18
+
19
+ <Story name="Small" args={{ size: 'small' }}>
20
+ <Icon icon="mdi:eye" width="24" height="24" />
21
+ </Story>
22
+
23
+ <Story name="Large" args={{ size: 'large' }}>
24
+ <Icon icon="mdi:eye" width="24" height="24" />
25
+ </Story>
@@ -0,0 +1,26 @@
1
+ export default Size;
2
+ type Size = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Size: $$__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
+ }
@@ -0,0 +1,26 @@
1
+ <script module lang="ts">import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import UtilityIcon from './UtilityIcon.svelte';
3
+ import Icon from '@iconify/svelte';
4
+ import { componentSizeArray } from '../../../../types/size.js';
5
+ export const storyUtilityIconArgTypes = {
6
+ size: {
7
+ control: { type: 'select' },
8
+ options: componentSizeArray,
9
+ },
10
+ };
11
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
12
+ const { Story } = defineMeta({
13
+ component: UtilityIcon,
14
+ tags: ['autodocs'],
15
+ argTypes: storyUtilityIconArgTypes,
16
+ });
17
+ </script>
18
+
19
+ <!-- Button with default style -->
20
+ <Story name="Default">
21
+ <Icon icon="mdi:eye" width="24" height="24" />
22
+ </Story>
23
+
24
+ <Story name="Disabled" args={{ disabled: true }}>
25
+ <Icon icon="mdi:eye" width="24" height="24" />
26
+ </Story>