@flightlesslabs/dodo-ui 0.12.0 → 0.13.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 (170) hide show
  1. package/dist/stories/components/Form/RangeSlider/RangeSlider.svelte +32 -19
  2. package/package.json +41 -43
  3. package/src/lib/stories/Home.mdx +59 -0
  4. package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
  5. package/src/lib/stories/components/Form/Button/Button.stories.svelte +61 -0
  6. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +43 -0
  7. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +36 -0
  8. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +43 -0
  9. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +23 -0
  10. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +16 -0
  11. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +18 -0
  12. package/src/lib/stories/components/Form/DatePicker/Color/Color.stories.svelte +47 -0
  13. package/src/lib/stories/components/Form/DatePicker/Controls/Controls.stories.svelte +58 -0
  14. package/src/lib/stories/components/Form/DatePicker/Customize/Customize.stories.svelte +167 -0
  15. package/src/lib/stories/components/Form/DatePicker/DatePicker.stories.svelte +107 -0
  16. package/src/lib/stories/components/Form/DatePicker/Events/Events.stories.svelte +147 -0
  17. package/src/lib/stories/components/Form/DatePicker/FilterDates/FilterDates.stories.svelte +61 -0
  18. package/src/lib/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +46 -0
  19. package/src/lib/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +57 -0
  20. package/src/lib/stories/components/Form/DatePicker/Roundness/Roundness.stories.svelte +38 -0
  21. package/src/lib/stories/components/Form/DatePicker/Size/Size.stories.svelte +41 -0
  22. package/src/lib/stories/components/Form/DatePicker/WithIcon/WithIcon.stories.svelte +41 -0
  23. package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +28 -0
  24. package/src/lib/stories/components/Form/Label/Label.stories.svelte +13 -0
  25. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
  26. package/src/lib/stories/components/Form/Message/Message.stories.svelte +27 -0
  27. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +22 -0
  28. package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +134 -0
  29. package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +84 -0
  30. package/src/lib/stories/components/Form/NumericInput/Roundness/Roundness.stories.svelte +20 -0
  31. package/src/lib/stories/components/Form/NumericInput/Size/Size.stories.svelte +16 -0
  32. package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +87 -0
  33. package/src/lib/stories/components/Form/NumericInput/WithIcon/WithIcon.stories.svelte +31 -0
  34. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +132 -0
  35. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +58 -0
  36. package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
  37. package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
  38. package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
  39. package/src/lib/stories/components/Form/RangeSlider/Color/Color.stories.svelte +19 -0
  40. package/src/lib/stories/components/Form/RangeSlider/Events/Events.stories.svelte +63 -0
  41. package/src/lib/stories/components/Form/RangeSlider/RangeSlider.stories.svelte +69 -0
  42. package/src/lib/stories/components/Form/RangeSlider/RangeSlider.svelte +33 -22
  43. package/src/lib/stories/components/Form/RangeSlider/Roundness/Roundness.stories.svelte +30 -0
  44. package/src/lib/stories/components/Form/RangeSlider/Size/Size.stories.svelte +16 -0
  45. package/src/lib/stories/components/Form/RangeSlider/WithIcon/WithIcon.stories.svelte +33 -0
  46. package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +139 -0
  47. package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +63 -0
  48. package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +174 -0
  49. package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +40 -0
  50. package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +58 -0
  51. package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +87 -0
  52. package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +32 -0
  53. package/src/lib/stories/components/Form/Select/Select.stories.svelte +125 -0
  54. package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +28 -0
  55. package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +43 -0
  56. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +125 -0
  57. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
  58. package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
  59. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +43 -0
  60. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
  61. package/src/lib/stories/components/Info/Calendar/Calendar.stories.svelte +121 -0
  62. package/src/lib/stories/components/Info/Calendar/Color/Color.stories.svelte +23 -0
  63. package/src/lib/stories/components/Info/Calendar/Controls/Controls.stories.svelte +26 -0
  64. package/src/lib/stories/components/Info/Calendar/Customize/Customize.stories.svelte +160 -0
  65. package/src/lib/stories/components/Info/Calendar/Events/Events.stories.svelte +122 -0
  66. package/src/lib/stories/components/Info/Calendar/FilterDates/FilterDates.stories.svelte +70 -0
  67. package/src/lib/stories/components/Info/Calendar/Size/Size.stories.svelte +20 -0
  68. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarControls.stories.svelte +36 -0
  69. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/CalendarMonthSelector.stories.svelte +58 -0
  70. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Color/Color.stories.svelte +23 -0
  71. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Customize/Customize.stories.svelte +30 -0
  72. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Events/Events.stories.svelte +25 -0
  73. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/NameTypes/NameTypes.stories.svelte +25 -0
  74. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Roundness/Roundness.stories.svelte +26 -0
  75. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Size/Size.stories.svelte +20 -0
  76. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/CalendarNavigation.stories.svelte +36 -0
  77. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Color/Color.stories.svelte +19 -0
  78. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Customize/Customize.stories.svelte +33 -0
  79. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Events/Events.stories.svelte +37 -0
  80. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Size/Size.stories.svelte +16 -0
  81. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/CalendarYearSelector.stories.svelte +58 -0
  82. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Color/Color.stories.svelte +23 -0
  83. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Customize/Customize.stories.svelte +30 -0
  84. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Events/Events.stories.svelte +25 -0
  85. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Roundness/Roundness.stories.svelte +26 -0
  86. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Size/Size.stories.svelte +20 -0
  87. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Color/Color.stories.svelte +23 -0
  88. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Controls/Controls.stories.svelte +21 -0
  89. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Customize/Customize.stories.svelte +69 -0
  90. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Events/Events.stories.svelte +61 -0
  91. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Size/Size.stories.svelte +20 -0
  92. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.stories.svelte +75 -0
  93. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Color/Color.stories.svelte +41 -0
  94. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Customize/Customize.stories.svelte +45 -0
  95. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Events/Events.stories.svelte +28 -0
  96. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Roundness/Roundness.stories.svelte +31 -0
  97. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Size/Size.stories.svelte +24 -0
  98. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/SpecialChips/SpecialChips.stories.svelte +96 -0
  99. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +104 -0
  100. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/CalendarWeek.stories.svelte +38 -0
  101. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Customize/Customize.stories.svelte +32 -0
  102. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/NameTypes/NameTypes.stories.svelte +28 -0
  103. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Size/Size.stories.svelte +16 -0
  104. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Color/Color.stories.svelte +23 -0
  105. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Customize/Customize.stories.svelte +68 -0
  106. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Events/Events.stories.svelte +24 -0
  107. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Size/Size.stories.svelte +20 -0
  108. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/CalendarMonthChip.stories.svelte +40 -0
  109. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Color/Color.stories.svelte +29 -0
  110. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Customize/Customize.stories.svelte +33 -0
  111. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Events/Events.stories.svelte +23 -0
  112. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Roundness/Roundness.stories.svelte +26 -0
  113. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Size/Size.stories.svelte +19 -0
  114. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthList.stories.svelte +45 -0
  115. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Color/Color.stories.svelte +22 -0
  116. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Customize/Customize.stories.svelte +36 -0
  117. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Events/Events.stories.svelte +33 -0
  118. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Size/Size.stories.svelte +19 -0
  119. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/CalendarYearChip.stories.svelte +41 -0
  120. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Color/Color.stories.svelte +30 -0
  121. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Customize/Customize.stories.svelte +33 -0
  122. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Events/Events.stories.svelte +24 -0
  123. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Roundness/Roundness.stories.svelte +27 -0
  124. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Size/Size.stories.svelte +20 -0
  125. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearList.stories.svelte +39 -0
  126. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Color/Color.stories.svelte +23 -0
  127. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Customize/Customize.stories.svelte +36 -0
  128. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Events/Events.stories.svelte +24 -0
  129. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Size/Size.stories.svelte +20 -0
  130. package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth/index.mdx +121 -0
  131. package/src/lib/stories/components/Info/Calendar/utils/getDatesOfMonth/index.mdx +37 -0
  132. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +30 -0
  133. package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +56 -0
  134. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +48 -0
  135. package/src/lib/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +29 -0
  136. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
  137. package/src/lib/stories/components/Layout/Menu/Menu.stories.svelte +69 -0
  138. package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +34 -0
  139. package/src/lib/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +16 -0
  140. package/src/lib/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +21 -0
  141. package/src/lib/stories/components/Layout/Menu/Size/Size.stories.svelte +37 -0
  142. package/src/lib/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
  143. package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +50 -0
  144. package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +25 -0
  145. package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +24 -0
  146. package/src/lib/stories/components/Layout/Separator/Color/Color.stories.svelte +19 -0
  147. package/src/lib/stories/components/Layout/Separator/Separator.stories.svelte +30 -0
  148. package/src/lib/stories/developer tools/Intro.mdx +9 -0
  149. package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +53 -0
  150. package/src/lib/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +121 -0
  151. package/src/lib/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte +17 -0
  152. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
  153. package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
  154. package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
  155. package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
  156. package/src/lib/stories/developer tools/components/Popper/Popper.stories.svelte +140 -0
  157. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +64 -0
  158. package/src/lib/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +92 -0
  159. package/src/lib/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +114 -0
  160. package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +25 -0
  161. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +30 -0
  162. package/src/lib/stories/developer tools/directives/clickOutside/index.mdx +25 -0
  163. package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
  164. package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
  165. package/src/lib/stories/developer tools/helpers/Time/getMoment/index.mdx +45 -0
  166. package/src/lib/stories/developer tools/helpers/logger/index.mdx +63 -0
  167. package/src/lib/stories/developer tools/philosophy/Colors/Colors.mdx +43 -0
  168. package/src/lib/stories/developer tools/philosophy/Colors/Colors.stories.svelte +22 -0
  169. package/src/lib/stories/developer tools/philosophy/Colors/Opacity.stories.svelte +11 -0
  170. package/src/lib/stories/developer tools/philosophy/Themes.mdx +23 -0
@@ -0,0 +1,27 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearChip from '../CalendarYearChip.svelte';
4
+ import { storyCalendarYearChipArgTypes } from '../CalendarYearChip.stories.svelte';
5
+ import { getMoment } from '$lib/index.js';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: CalendarYearChip,
10
+ tags: ['autodocs'],
11
+ argTypes: storyCalendarYearChipArgTypes,
12
+ args: {
13
+ value: getMoment(undefined, undefined, { utc: true }).format('YYYY'),
14
+ },
15
+ });
16
+ </script>
17
+
18
+ <!-- Hover to see the result -->
19
+ <Story name="Roundness 1" />
20
+
21
+ <Story name="Roundness 2" args={{ roundness: 2 }} />
22
+
23
+ <Story name="Roundness 3" args={{ roundness: 3 }} />
24
+
25
+ <Story name="Roundness 0" args={{ roundness: 0 }} />
26
+
27
+ <Story name="Roundness Full" args={{ roundness: 'full', compact: true }} />
@@ -0,0 +1,20 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearChip from '../CalendarYearChip.svelte';
4
+ import { storyCalendarYearChipArgTypes } from '../CalendarYearChip.stories.svelte';
5
+ import getMoment from '$lib/stories/developer tools/helpers/Time/getMoment/getMoment.js';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: CalendarYearChip,
10
+ tags: ['autodocs'],
11
+ argTypes: storyCalendarYearChipArgTypes,
12
+ args: {
13
+ value: getMoment(undefined, undefined, { utc: true }).format('YYYY'),
14
+ },
15
+ });
16
+ </script>
17
+
18
+ <Story name="Normal" />
19
+ <Story name="Small" args={{ size: 'small' }} />
20
+ <Story name="Large" args={{ size: 'large' }} />
@@ -0,0 +1,39 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearList from './CalendarYearList.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
+ import getMoment from '$lib/stories/developer tools/helpers/Time/getMoment/getMoment.js';
8
+
9
+ export const storyCalendarYearListArgTypes: StoryBookArgTypes = {
10
+ color: {
11
+ control: { type: 'select' },
12
+ options: componentColorArray,
13
+ },
14
+ size: {
15
+ control: { type: 'select' },
16
+ options: componentSizeArray,
17
+ },
18
+ };
19
+
20
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
21
+ const { Story } = defineMeta({
22
+ component: CalendarYearList,
23
+ tags: ['autodocs'],
24
+ argTypes: storyCalendarYearListArgTypes,
25
+ args: {
26
+ value: getMoment(undefined, undefined, { utc: true }).format('YYYY'),
27
+ },
28
+ });
29
+ </script>
30
+
31
+ <!-- Default CalendarYearList -->
32
+ <Story name="Default" />
33
+
34
+ <Story
35
+ name="HideControls"
36
+ args={{
37
+ showControls: false,
38
+ }}
39
+ />
@@ -0,0 +1,23 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearList from '../CalendarYearList.svelte';
4
+ import { storyCalendarYearListArgTypes } from '../CalendarYearList.stories.svelte';
5
+ import getMoment from '$lib/stories/developer tools/helpers/Time/getMoment/getMoment.js';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: CalendarYearList,
10
+ tags: ['autodocs'],
11
+ argTypes: storyCalendarYearListArgTypes,
12
+ args: {
13
+ value: getMoment(undefined, undefined, { utc: true }).format('YYYY'),
14
+ },
15
+ });
16
+ </script>
17
+
18
+ <Story name="Primary" />
19
+ <Story name="Secondary" args={{ color: 'secondary' }} />
20
+ <Story name="Neutral" args={{ color: 'neutral' }} />
21
+ <Story name="Safe" args={{ color: 'safe' }} />
22
+ <Story name="Warning" args={{ color: 'warning' }} />
23
+ <Story name="Danger" args={{ color: 'danger' }} />
@@ -0,0 +1,36 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearList from '../CalendarYearList.svelte';
4
+ import { storyCalendarYearListArgTypes } from '../CalendarYearList.stories.svelte';
5
+ import { Button, getMoment } from '$lib/index.js';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: CalendarYearList,
10
+ tags: ['autodocs'],
11
+ argTypes: storyCalendarYearListArgTypes,
12
+ args: {
13
+ value: getMoment(undefined, undefined, { utc: true }).format('YYYY'),
14
+ },
15
+ });
16
+ </script>
17
+
18
+ <Story name="Default" />
19
+
20
+ <Story name="customCalendarYearChipContent" asChild>
21
+ <CalendarYearList value={getMoment(undefined, undefined, { utc: true }).format('YYYY')}>
22
+ {#snippet customCalendarYearChipContent(val)}
23
+ 🗓️{val}
24
+ {/snippet}
25
+ </CalendarYearList>
26
+ </Story>
27
+
28
+ <Story name="customCalendarYearChip" asChild>
29
+ <CalendarYearList value={getMoment(undefined, undefined, { utc: true }).format('YYYY')}>
30
+ {#snippet customCalendarYearChip(val)}
31
+ <Button size="small" variant="text" outline>
32
+ {val}
33
+ </Button>
34
+ {/snippet}
35
+ </CalendarYearList>
36
+ </Story>
@@ -0,0 +1,24 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearList from '../CalendarYearList.svelte';
4
+ import { storyCalendarYearListArgTypes } from '../CalendarYearList.stories.svelte';
5
+ import getMoment from '$lib/stories/developer tools/helpers/Time/getMoment/getMoment.js';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: CalendarYearList,
10
+ tags: ['autodocs'],
11
+ argTypes: storyCalendarYearListArgTypes,
12
+ });
13
+
14
+ let value = $state<string>(getMoment(undefined, undefined, { utc: true }).format('YYYY'));
15
+ </script>
16
+
17
+ <Story name="Select" asChild>
18
+ <CalendarYearList
19
+ {value}
20
+ onselect={(val) => {
21
+ value = val;
22
+ }}
23
+ />
24
+ </Story>
@@ -0,0 +1,20 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import CalendarYearList from '../CalendarYearList.svelte';
4
+ import { storyCalendarYearListArgTypes } from '../CalendarYearList.stories.svelte';
5
+ import getMoment from '$lib/stories/developer tools/helpers/Time/getMoment/getMoment.js';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: CalendarYearList,
10
+ tags: ['autodocs'],
11
+ argTypes: storyCalendarYearListArgTypes,
12
+ args: {
13
+ value: getMoment(undefined, undefined, { utc: true }).format('YYYY'),
14
+ },
15
+ });
16
+ </script>
17
+
18
+ <Story name="Normal" />
19
+ <Story name="Small" args={{ size: 'small' }} />
20
+ <Story name="Large" args={{ size: 'large' }} />
@@ -0,0 +1,121 @@
1
+ import { Source } from '@storybook/addon-docs/blocks';
2
+
3
+ # `createDateOfMonth`
4
+
5
+ `createDateOfMonth(date, settings, monthType?, manipulateDate?)` creates a single `DateOfMonth` object representing one calendar cell. This is typically used internally by `getDatesOfMonth` but can be useful for custom logic.
6
+
7
+ ## Usage
8
+
9
+ <Source
10
+ dark
11
+ language="ts"
12
+ code={`
13
+ // Manual usage for one day
14
+ import { createDateOfMonth } from '@flightlesslabs/dodo-ui';
15
+
16
+ const date = new Date();
17
+ const dateObj = createDateOfMonth(date, {
18
+ minDate: new Date('2025-01-01'),
19
+ timezone: 'UTC',
20
+ }, 'currentMonth');
21
+ `}
22
+ />
23
+
24
+ ---
25
+
26
+ # Types
27
+
28
+ ## `DateOfMonth`
29
+
30
+ <Source
31
+ dark
32
+ language="ts"
33
+ code={`
34
+ // Represents a single calendar cell
35
+ type DateOfMonth = {
36
+ id: string;
37
+ date: Date;
38
+ isCurrentMonth: boolean;
39
+ isLastMonth?: boolean;
40
+ isNextMonth?: boolean;
41
+ disabled?: boolean;
42
+ today?: boolean;
43
+ };
44
+ `}
45
+ />
46
+
47
+ ## `CreateDatesOfMonthSettings`
48
+
49
+ <Source
50
+ dark
51
+ language="ts"
52
+ code={`
53
+ // Configuration for calendar generation
54
+ interface CreateDatesOfMonthSettings {
55
+ startOfWeek?: 'SUN' | 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT';
56
+ showLastMonth?: boolean;
57
+ showNextMonth?: boolean;
58
+ today?: Date;
59
+ minDate?: Date;
60
+ maxDate?: Date;
61
+ excludeDates?: Date[];
62
+ includeDates?: Date[];
63
+ timezone?: string;
64
+ utc?: boolean;
65
+ }
66
+ `}
67
+ />
68
+
69
+ ## `CreateDateOfMonthType`
70
+
71
+ <Source
72
+ dark
73
+ language="ts"
74
+ code={`
75
+ // Indicates the month context of the date
76
+ type CreateDateOfMonthType = 'currentMonth' | 'nextMonth' | 'lastMonth';
77
+ `}
78
+ />
79
+
80
+ ## `DAYS_OF_WEEK` Enum
81
+
82
+ <Source
83
+ dark
84
+ language="ts"
85
+ code={`
86
+ // Weekday constants (Sunday = 0)
87
+ export const enum DAYS_OF_WEEK {
88
+ SUN,
89
+ MON,
90
+ TUE,
91
+ WED,
92
+ THU,
93
+ FRI,
94
+ SAT,
95
+ }
96
+ `}
97
+ />
98
+
99
+ ## `MONTHS` Enum
100
+
101
+ <Source
102
+ dark
103
+ language="ts"
104
+ code={`
105
+ // Month constants (January = 0)
106
+ export const enum MONTHS {
107
+ JAN,
108
+ FEB,
109
+ MAR,
110
+ APR,
111
+ MAY,
112
+ JUN,
113
+ JUL,
114
+ AUG,
115
+ SEP,
116
+ OCT,
117
+ NOV,
118
+ DEC,
119
+ }
120
+ `}
121
+ />
@@ -0,0 +1,37 @@
1
+ import { Source } from '@storybook/addon-docs/blocks';
2
+
3
+ # `getDatesOfMonth`
4
+
5
+ `getDatesOfMonth(date, settings, manipulateDate)` generates a 2D array of weeks, each containing `DateOfMonth` objects. It supports options via `CreateDatesOfMonthSettings` and allows injecting custom logic per date.
6
+
7
+ ## Usage
8
+
9
+ <Source
10
+ dark
11
+ language="ts"
12
+ code={`
13
+ // Basic usage
14
+ import { getDatesOfMonth, getMoment } from '@flightlesslabs/dodo-ui';
15
+
16
+ const dates = getDatesOfMonth(new Date(), {
17
+ showLastMonth: false,
18
+ showNextMonth: false,
19
+ });
20
+
21
+ // Using a formatted date
22
+ const dates2 = getDatesOfMonth(
23
+ getMoment('01-02-2025', 'DD-MM-YYYY').toDate()
24
+ );
25
+
26
+ // With custom manipulation
27
+ const dates3 = getDatesOfMonth(new Date(), {
28
+ timezone: 'America/New_York',
29
+ startOfWeek: 'MON',
30
+ }, (date, settings) => {
31
+ return {
32
+ ...date,
33
+ disabled: true,
34
+ };
35
+ });
36
+ `}
37
+ />
@@ -0,0 +1,30 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import DynamicMenu from '../DynamicMenu.svelte';
4
+ import { dynamicMenuItemOptions, storyDynamicMenuArgTypes } from '../DynamicMenu.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: DynamicMenu,
9
+ tags: ['autodocs'],
10
+ argTypes: storyDynamicMenuArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <!-- Custom Menu Item Content -->
15
+ <Story name="CustomMenuItemContent" asChild>
16
+ <DynamicMenu options={dynamicMenuItemOptions}>
17
+ {#snippet customMenuItemContent(option, selectedOption)}
18
+ {selectedOption?.id === option.id ? '✅' : ''} {option.label} 💯💯💯
19
+ {/snippet}
20
+ </DynamicMenu>
21
+ </Story>
22
+
23
+ <!-- Custom Menu Item Placeholder Content -->
24
+ <Story name="CustomPlaceholderMenuItemContent" asChild>
25
+ <DynamicMenu options={[]} showOptionsPlaceholder>
26
+ {#snippet customPlaceholderMenuItemContent()}
27
+ No dice 💯💯💯
28
+ {/snippet}
29
+ </DynamicMenu>
30
+ </Story>
@@ -0,0 +1,56 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import DynamicMenu, { type DynamicMenuItemOption } from './DynamicMenu.svelte';
4
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
5
+
6
+ export const storyDynamicMenuArgTypes: StoryBookArgTypes = {};
7
+
8
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
9
+ const { Story } = defineMeta({
10
+ component: DynamicMenu,
11
+ tags: ['autodocs'],
12
+ argTypes: storyDynamicMenuArgTypes,
13
+ });
14
+
15
+ export const dynamicMenuItemOptions: DynamicMenuItemOption[] = [
16
+ {
17
+ id: '1',
18
+ label: 'One',
19
+ },
20
+ {
21
+ id: '2',
22
+ label: 'Two',
23
+ },
24
+ {
25
+ id: '3',
26
+ label: 'Three',
27
+ },
28
+ {
29
+ id: '4',
30
+ label: 'Four',
31
+ },
32
+ {
33
+ id: '5',
34
+ label: 'Five',
35
+ },
36
+ {
37
+ id: '6',
38
+ disabled: true,
39
+ label: 'Five',
40
+ },
41
+ ];
42
+ </script>
43
+
44
+ <!-- Default DynamicMenu -->
45
+ <Story name="Default" args={{ options: dynamicMenuItemOptions }} />
46
+
47
+ <!-- Selected Option -->
48
+ <Story
49
+ name="SelectedOption"
50
+ args={{ options: dynamicMenuItemOptions, selectedOption: dynamicMenuItemOptions[1] }}
51
+ />
52
+
53
+ <Story
54
+ name="ShowPlaceholder"
55
+ args={{ options: [], showOptionsPlaceholder: true, optionsPlaceholder: 'No content found.' }}
56
+ />
@@ -0,0 +1,48 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { dynamicMenuItemOptions, storyDynamicMenuArgTypes } from '../DynamicMenu.stories.svelte';
4
+ import DynamicMenu, { type DynamicMenuItemOption } from '../DynamicMenu.svelte';
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const { Story } = defineMeta({
8
+ component: DynamicMenu,
9
+ tags: ['autodocs'],
10
+ argTypes: storyDynamicMenuArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <!-- Menu Item onclick -->
15
+ <Story name="onclick" asChild>
16
+ <DynamicMenu
17
+ keyboardNavigation
18
+ options={dynamicMenuItemOptions}
19
+ onclick={(e: MouseEvent, option: DynamicMenuItemOption) => {
20
+ e.preventDefault();
21
+ console.log(option);
22
+ }}
23
+ />
24
+ </Story>
25
+
26
+ <!-- KeyboardNavigation Event: onEnter -->
27
+ <Story name="onEnter" asChild>
28
+ <DynamicMenu
29
+ keyboardNavigation
30
+ options={dynamicMenuItemOptions}
31
+ onEnter={(e: KeyboardEvent, menuItemIndex: number) => {
32
+ e.preventDefault();
33
+ console.log(menuItemIndex);
34
+ }}
35
+ />
36
+ </Story>
37
+
38
+ <!-- KeyboardNavigation Event: onEsc -->
39
+ <Story name="onEsc" asChild>
40
+ <DynamicMenu
41
+ keyboardNavigation
42
+ options={dynamicMenuItemOptions}
43
+ onEsc={(e: KeyboardEvent, menuItemIndex: number) => {
44
+ e.preventDefault();
45
+ console.log(menuItemIndex);
46
+ }}
47
+ />
48
+ </Story>
@@ -0,0 +1,29 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import DynamicMenu from '../DynamicMenu.svelte';
4
+ import { dynamicMenuItemOptions, storyDynamicMenuArgTypes } from '../DynamicMenu.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: DynamicMenu,
9
+ tags: ['autodocs'],
10
+ argTypes: storyDynamicMenuArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <!-- KeyboardNavigationOn -->
15
+ <Story
16
+ name="KeyboardNavigationOn"
17
+ args={{
18
+ options: dynamicMenuItemOptions,
19
+ keyboardNavigation: true,
20
+ onEnter: (e: KeyboardEvent, menuItemIndex: number) => {
21
+ e.preventDefault();
22
+ console.log(menuItemIndex);
23
+ },
24
+ onEsc: (e: KeyboardEvent, menuItemIndex: number) => {
25
+ e.preventDefault();
26
+ console.log(menuItemIndex);
27
+ },
28
+ }}
29
+ />
@@ -0,0 +1,72 @@
1
+ import { Source } from '@storybook/addon-docs/blocks';
2
+
3
+ # Option Format
4
+
5
+ ## DynamicMenuItemOption
6
+
7
+ <Source
8
+ dark
9
+ language="ts"
10
+ code={`
11
+ type DynamicMenuItemOption<TMeta = unknown> = {
12
+ id: string;
13
+ /** label */
14
+ label?: string;
15
+ /** Custom Metadata */
16
+ meta?: TMeta;
17
+ /** Menu Item type */
18
+ type?: MenuItemType;
19
+ /** Menu Separator */
20
+ separator?: boolean;
21
+ /** How large should the Menu Items be? */
22
+ size?: ComponentSize;
23
+ /** The onclick event handler */
24
+ onclick?: MouseEventHandler<HTMLButtonElement>;
25
+ /** disabled state */
26
+ disabled?: boolean;
27
+ /** link href */
28
+ href?: string;
29
+ /** Link button: download */
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ download?: any;
32
+ /** Link button: hreflang */
33
+ hreflang?: string | undefined | null;
34
+ /** Link button: media */
35
+ media?: string | undefined | null;
36
+ /** Link button: ping */
37
+ ping?: string | undefined | null;
38
+ /** Link button: rel */
39
+ rel?: string | undefined | null;
40
+ /** Link button: target */
41
+ target?: ButtonLinkTarget;
42
+ /** Link button: Type */
43
+ anchorMediaType?: string | undefined | null;
44
+ /** Link button: referrerpolicy */
45
+ referrerpolicy?: ButtonLinkReferrerpolicy;
46
+ };
47
+ `}
48
+ />
49
+
50
+ ## Example values
51
+
52
+ <Source
53
+ dark
54
+ language="ts"
55
+ code={`
56
+ const options: DynamicMenuItemOption[] = [
57
+ {
58
+ id: '1',
59
+ label: 'One',
60
+ },
61
+ {
62
+ id: '2',
63
+ label: 'Two',
64
+ },
65
+ {
66
+ id: '3',
67
+ label: 'Three',
68
+ disabled: true,
69
+ },
70
+ ];
71
+ `}
72
+ />
@@ -0,0 +1,69 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Menu from './Menu.svelte';
4
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
5
+ import MenuItem from './MenuItem/MenuItem.svelte';
6
+ import { Separator } from '$lib/index.js';
7
+
8
+ export const storyMenuArgTypes: StoryBookArgTypes = {};
9
+
10
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
11
+ const { Story } = defineMeta({
12
+ component: Menu,
13
+ tags: ['autodocs'],
14
+ argTypes: storyMenuArgTypes,
15
+ });
16
+ </script>
17
+
18
+ <!-- Default Menu -->
19
+ <Story name="Default" asChild>
20
+ <Menu>
21
+ <MenuItem>Cut</MenuItem>
22
+ <MenuItem>Copy</MenuItem>
23
+ <MenuItem>Paste</MenuItem>
24
+ </Menu>
25
+ </Story>
26
+
27
+ <!-- Fixed width and height -->
28
+ <Story name="FixedSize" asChild>
29
+ <Menu width="200px" height="300px">
30
+ <MenuItem>Cut</MenuItem>
31
+ <MenuItem>Copy</MenuItem>
32
+ <MenuItem>Paste</MenuItem>
33
+ </Menu>
34
+ </Story>
35
+
36
+ <!-- MenuItems With Separator -->
37
+ <Story name="WithSeparator" asChild>
38
+ <Menu separator>
39
+ <MenuItem>Cut</MenuItem>
40
+ <MenuItem>Copy</MenuItem>
41
+ <MenuItem>Paste</MenuItem>
42
+ </Menu>
43
+ </Story>
44
+
45
+ <!-- MenuItems Grouped in Sections. [Separator](?path=/docs/components-layout-separator--docs) -->
46
+ <Story name="Sections" asChild>
47
+ <Menu width="200px">
48
+ <MenuItem>Cut</MenuItem>
49
+ <MenuItem>Cut Special</MenuItem>
50
+ <MenuItem>Cut Selected</MenuItem>
51
+ <Separator />
52
+ <MenuItem>Copy</MenuItem>
53
+ <MenuItem>Copy Special</MenuItem>
54
+ <MenuItem>Copy Selected</MenuItem>
55
+ <Separator />
56
+ <MenuItem>Paste</MenuItem>
57
+ <MenuItem>Paste Special</MenuItem>
58
+ <MenuItem>Paste Selected</MenuItem>
59
+ </Menu>
60
+ </Story>
61
+
62
+ <!-- MenuItems With some options disabled -->
63
+ <Story name="Disabled" asChild>
64
+ <Menu>
65
+ <MenuItem>Cut</MenuItem>
66
+ <MenuItem disabled>Copy</MenuItem>
67
+ <MenuItem>Paste</MenuItem>
68
+ </Menu>
69
+ </Story>