@flightlesslabs/dodo-ui 0.10.3 → 0.11.1

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 (212) hide show
  1. package/dist/index.d.ts +3 -3
  2. package/dist/index.js +2 -2
  3. package/dist/stories/components/Form/DatePicker/DatePicker.stories.svelte +16 -0
  4. package/dist/stories/components/Form/DatePicker/DatePicker.svelte +3 -12
  5. package/dist/stories/components/Form/DatePicker/DatePicker.svelte.d.ts +3 -1
  6. package/dist/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +43 -0
  7. package/dist/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte.d.ts +18 -0
  8. package/dist/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +54 -0
  9. package/dist/stories/components/Form/DatePicker/Positions/Positions.stories.svelte.d.ts +18 -0
  10. package/dist/stories/components/Info/Calendar/Calendar.stories.svelte +14 -0
  11. package/dist/stories/components/Info/Calendar/Calendar.svelte +2 -1
  12. package/dist/stories/components/Info/Calendar/Calendar.svelte.d.ts +3 -3
  13. package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.svelte +2 -215
  14. package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.svelte.d.ts +1 -7
  15. package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/utils/scss/mixins.scss +0 -46
  16. package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +14 -0
  17. package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.svelte +3 -25
  18. package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.svelte.d.ts +4 -5
  19. package/dist/stories/components/Info/Calendar/utils/createDateOfMonth/createDateOfMonth.d.ts +27 -0
  20. package/dist/stories/components/Info/Calendar/utils/createDateOfMonth/createDateOfMonth.js +72 -0
  21. package/dist/stories/components/Info/Calendar/utils/createDateOfMonth/index.mdx +121 -0
  22. package/dist/stories/components/Info/Calendar/utils/getDatesOfMonth/getDatesOfMonth.d.ts +10 -0
  23. package/dist/stories/components/Info/Calendar/utils/{getDatesOfMonth.js → getDatesOfMonth/getDatesOfMonth.js} +20 -13
  24. package/dist/stories/components/Info/Calendar/utils/getDatesOfMonth/index.mdx +37 -0
  25. package/dist/stories/components/Info/Calendar/utils/types.d.ts +0 -4
  26. package/dist/stories/developer tools/components/Popper/Popper.stories.svelte +16 -0
  27. package/dist/stories/developer tools/components/Popper/Popper.svelte +10 -14
  28. package/dist/stories/developer tools/components/Popper/Popper.svelte.d.ts +2 -0
  29. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +25 -11
  30. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte.d.ts +2 -0
  31. package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.d.ts +10 -8
  32. package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.js +40 -23
  33. package/dist/stories/developer tools/helpers/Time/getMoment/getMoment.d.ts +10 -11
  34. package/dist/stories/developer tools/helpers/Time/getMoment/getMoment.js +8 -8
  35. package/dist/stories/developer tools/helpers/Time/getMoment/index.mdx +31 -4
  36. package/package.json +21 -23
  37. package/src/lib/index.ts +3 -3
  38. package/src/lib/stories/Home.mdx +59 -0
  39. package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
  40. package/src/lib/stories/components/Form/Button/Button.stories.svelte +61 -0
  41. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +43 -0
  42. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +36 -0
  43. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +43 -0
  44. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +23 -0
  45. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +16 -0
  46. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +18 -0
  47. package/src/lib/stories/components/Form/DatePicker/Color/Color.stories.svelte +47 -0
  48. package/src/lib/stories/components/Form/DatePicker/Controls/Controls.stories.svelte +58 -0
  49. package/src/lib/stories/components/Form/DatePicker/Customize/Customize.stories.svelte +167 -0
  50. package/src/lib/stories/components/Form/DatePicker/DatePicker.stories.svelte +107 -0
  51. package/src/lib/stories/components/Form/DatePicker/DatePicker.svelte +11 -13
  52. package/src/lib/stories/components/Form/DatePicker/Events/Events.stories.svelte +147 -0
  53. package/src/lib/stories/components/Form/DatePicker/FilterDates/FilterDates.stories.svelte +61 -0
  54. package/src/lib/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +46 -0
  55. package/src/lib/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +57 -0
  56. package/src/lib/stories/components/Form/DatePicker/Roundness/Roundness.stories.svelte +38 -0
  57. package/src/lib/stories/components/Form/DatePicker/Size/Size.stories.svelte +41 -0
  58. package/src/lib/stories/components/Form/DatePicker/WithIcon/WithIcon.stories.svelte +41 -0
  59. package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +28 -0
  60. package/src/lib/stories/components/Form/Label/Label.stories.svelte +13 -0
  61. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
  62. package/src/lib/stories/components/Form/Message/Message.stories.svelte +27 -0
  63. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +22 -0
  64. package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +134 -0
  65. package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +84 -0
  66. package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +87 -0
  67. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +132 -0
  68. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +58 -0
  69. package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
  70. package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
  71. package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
  72. package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +139 -0
  73. package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +63 -0
  74. package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +174 -0
  75. package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +40 -0
  76. package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +58 -0
  77. package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +87 -0
  78. package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +32 -0
  79. package/src/lib/stories/components/Form/Select/Select.stories.svelte +125 -0
  80. package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +28 -0
  81. package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +43 -0
  82. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +125 -0
  83. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
  84. package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
  85. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +43 -0
  86. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
  87. package/src/lib/stories/components/Info/Calendar/Calendar.stories.svelte +121 -0
  88. package/src/lib/stories/components/Info/Calendar/Calendar.svelte +8 -2
  89. package/src/lib/stories/components/Info/Calendar/Color/Color.stories.svelte +23 -0
  90. package/src/lib/stories/components/Info/Calendar/Controls/Controls.stories.svelte +26 -0
  91. package/src/lib/stories/components/Info/Calendar/Customize/Customize.stories.svelte +160 -0
  92. package/src/lib/stories/components/Info/Calendar/Events/Events.stories.svelte +122 -0
  93. package/src/lib/stories/components/Info/Calendar/FilterDates/FilterDates.stories.svelte +70 -0
  94. package/src/lib/stories/components/Info/Calendar/Size/Size.stories.svelte +20 -0
  95. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarControls.stories.svelte +36 -0
  96. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/CalendarMonthSelector.stories.svelte +58 -0
  97. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Color/Color.stories.svelte +23 -0
  98. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Customize/Customize.stories.svelte +30 -0
  99. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Events/Events.stories.svelte +25 -0
  100. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/NameTypes/NameTypes.stories.svelte +25 -0
  101. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Roundness/Roundness.stories.svelte +26 -0
  102. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Size/Size.stories.svelte +20 -0
  103. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/CalendarNavigation.stories.svelte +36 -0
  104. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Color/Color.stories.svelte +19 -0
  105. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Customize/Customize.stories.svelte +33 -0
  106. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Events/Events.stories.svelte +37 -0
  107. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Size/Size.stories.svelte +16 -0
  108. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/CalendarYearSelector.stories.svelte +58 -0
  109. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Color/Color.stories.svelte +23 -0
  110. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Customize/Customize.stories.svelte +30 -0
  111. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Events/Events.stories.svelte +25 -0
  112. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Roundness/Roundness.stories.svelte +26 -0
  113. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Size/Size.stories.svelte +20 -0
  114. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Color/Color.stories.svelte +23 -0
  115. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Controls/Controls.stories.svelte +21 -0
  116. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Customize/Customize.stories.svelte +69 -0
  117. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Events/Events.stories.svelte +61 -0
  118. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Size/Size.stories.svelte +20 -0
  119. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.stories.svelte +75 -0
  120. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.svelte +2 -25
  121. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Color/Color.stories.svelte +41 -0
  122. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Customize/Customize.stories.svelte +45 -0
  123. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Events/Events.stories.svelte +28 -0
  124. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Roundness/Roundness.stories.svelte +31 -0
  125. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Size/Size.stories.svelte +24 -0
  126. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/SpecialChips/SpecialChips.stories.svelte +96 -0
  127. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/utils/scss/mixins.scss +0 -46
  128. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +104 -0
  129. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.svelte +23 -53
  130. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/CalendarWeek.stories.svelte +38 -0
  131. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Customize/Customize.stories.svelte +32 -0
  132. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/NameTypes/NameTypes.stories.svelte +28 -0
  133. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Size/Size.stories.svelte +16 -0
  134. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Color/Color.stories.svelte +23 -0
  135. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Customize/Customize.stories.svelte +68 -0
  136. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Events/Events.stories.svelte +24 -0
  137. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Size/Size.stories.svelte +20 -0
  138. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/CalendarMonthChip.stories.svelte +40 -0
  139. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Color/Color.stories.svelte +29 -0
  140. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Customize/Customize.stories.svelte +33 -0
  141. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Events/Events.stories.svelte +23 -0
  142. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Roundness/Roundness.stories.svelte +26 -0
  143. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Size/Size.stories.svelte +19 -0
  144. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthList.stories.svelte +45 -0
  145. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Color/Color.stories.svelte +22 -0
  146. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Customize/Customize.stories.svelte +36 -0
  147. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Events/Events.stories.svelte +33 -0
  148. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Size/Size.stories.svelte +19 -0
  149. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/CalendarYearChip.stories.svelte +41 -0
  150. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Color/Color.stories.svelte +30 -0
  151. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Customize/Customize.stories.svelte +33 -0
  152. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Events/Events.stories.svelte +24 -0
  153. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Roundness/Roundness.stories.svelte +27 -0
  154. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Size/Size.stories.svelte +20 -0
  155. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearList.stories.svelte +39 -0
  156. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Color/Color.stories.svelte +23 -0
  157. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Customize/Customize.stories.svelte +36 -0
  158. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Events/Events.stories.svelte +24 -0
  159. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Size/Size.stories.svelte +20 -0
  160. package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth/createDateOfMonth.ts +120 -0
  161. package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth/index.mdx +121 -0
  162. package/src/lib/stories/components/Info/Calendar/utils/{getDatesOfMonth.ts → getDatesOfMonth/getDatesOfMonth.ts} +30 -16
  163. package/src/lib/stories/components/Info/Calendar/utils/getDatesOfMonth/index.mdx +37 -0
  164. package/src/lib/stories/components/Info/Calendar/utils/types.ts +0 -5
  165. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +30 -0
  166. package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +56 -0
  167. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +48 -0
  168. package/src/lib/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +29 -0
  169. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
  170. package/src/lib/stories/components/Layout/Menu/Menu.stories.svelte +69 -0
  171. package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +34 -0
  172. package/src/lib/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +16 -0
  173. package/src/lib/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +21 -0
  174. package/src/lib/stories/components/Layout/Menu/Size/Size.stories.svelte +37 -0
  175. package/src/lib/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
  176. package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +50 -0
  177. package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +25 -0
  178. package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +24 -0
  179. package/src/lib/stories/components/Layout/Separator/Color/Color.stories.svelte +19 -0
  180. package/src/lib/stories/components/Layout/Separator/Separator.stories.svelte +30 -0
  181. package/src/lib/stories/developer tools/Intro.mdx +9 -0
  182. package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +53 -0
  183. package/src/lib/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +121 -0
  184. package/src/lib/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte +17 -0
  185. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
  186. package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
  187. package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
  188. package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
  189. package/src/lib/stories/developer tools/components/Popper/Popper.stories.svelte +140 -0
  190. package/src/lib/stories/developer tools/components/Popper/Popper.svelte +13 -14
  191. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +64 -0
  192. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +36 -10
  193. package/src/lib/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.ts +45 -31
  194. package/src/lib/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +92 -0
  195. package/src/lib/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +114 -0
  196. package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +25 -0
  197. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +30 -0
  198. package/src/lib/stories/developer tools/directives/clickOutside/index.mdx +25 -0
  199. package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
  200. package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
  201. package/src/lib/stories/developer tools/helpers/Time/getMoment/getMoment.ts +11 -12
  202. package/src/lib/stories/developer tools/helpers/Time/getMoment/index.mdx +45 -0
  203. package/src/lib/stories/developer tools/helpers/logger/index.mdx +63 -0
  204. package/src/lib/stories/developer tools/philosophy/Colors/Colors.mdx +43 -0
  205. package/src/lib/stories/developer tools/philosophy/Colors/Colors.stories.svelte +22 -0
  206. package/src/lib/stories/developer tools/philosophy/Colors/Opacity.stories.svelte +11 -0
  207. package/src/lib/stories/developer tools/philosophy/Themes.mdx +23 -0
  208. package/dist/stories/components/Info/Calendar/utils/createDateOfMonth.d.ts +0 -28
  209. package/dist/stories/components/Info/Calendar/utils/createDateOfMonth.js +0 -87
  210. package/dist/stories/components/Info/Calendar/utils/getDatesOfMonth.d.ts +0 -10
  211. package/dist/stories/components/Info/Calendar/utils/index.mdx +0 -64
  212. package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth.ts +0 -160
@@ -0,0 +1,140 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
4
+ import { Menu, MenuItem, Popper } from '$lib/index.js';
5
+ import Button from '$lib/stories/components/Form/Button/Button.svelte';
6
+ import { positionXArray, positionYArray } from '$lib/types/position.js';
7
+
8
+ export const storyPopperArgTypes: StoryBookArgTypes = {
9
+ popupPositionX: {
10
+ control: { type: 'select' },
11
+ options: positionXArray,
12
+ },
13
+ popupPositionY: {
14
+ control: { type: 'select' },
15
+ options: positionYArray,
16
+ },
17
+ };
18
+
19
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
20
+ const { Story } = defineMeta({
21
+ component: Popper,
22
+ tags: ['autodocs'],
23
+ argTypes: storyPopperArgTypes,
24
+ parameters: {
25
+ docs: {
26
+ story: {
27
+ height: '200px',
28
+ inline: false,
29
+ },
30
+ },
31
+ },
32
+ });
33
+
34
+ let open = $state(false);
35
+ </script>
36
+
37
+ <Story name="Default" args={{ open, onClickOutside: () => (open = false) }} asChild>
38
+ <Popper {open} onClickOutside={() => (open = false)}>
39
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
40
+ {#snippet popupChildren()}
41
+ <Menu>
42
+ <MenuItem>One</MenuItem>
43
+ <MenuItem>Two</MenuItem>
44
+ <MenuItem>Three</MenuItem>
45
+ </Menu>
46
+ {/snippet}
47
+ </Popper>
48
+ </Story>
49
+
50
+ <Story name="MenuOpen" args={{ open: true }} asChild>
51
+ <Popper open>
52
+ Hello! how are you doing?
53
+ {#snippet popupChildren()}
54
+ <Menu>
55
+ <MenuItem>One</MenuItem>
56
+ <MenuItem>Two</MenuItem>
57
+ <MenuItem>Three</MenuItem>
58
+ </Menu>
59
+ {/snippet}
60
+ </Popper>
61
+ </Story>
62
+
63
+ <Story
64
+ name="CustomPaperProps"
65
+ args={{
66
+ open: true,
67
+ paperProps: {
68
+ color: 'primary',
69
+ },
70
+ }}
71
+ asChild
72
+ >
73
+ <Popper
74
+ open
75
+ paperProps={{
76
+ color: 'primary',
77
+ }}
78
+ >
79
+ Hello! how are you doing?
80
+ {#snippet popupChildren()}
81
+ <Menu>
82
+ <MenuItem>One</MenuItem>
83
+ <MenuItem>Two</MenuItem>
84
+ <MenuItem>Three</MenuItem>
85
+ </Menu>
86
+ {/snippet}
87
+ </Popper>
88
+ </Story>
89
+
90
+ <!-- Expand the Popper to full width -->
91
+ <Story name="FullWidth" asChild>
92
+ <Popper {open} fullWidth onClickOutside={() => (open = false)}>
93
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
94
+
95
+ {#snippet popupChildren()}
96
+ <Menu>
97
+ <MenuItem>One</MenuItem>
98
+ <MenuItem>Two</MenuItem>
99
+ <MenuItem>Three</MenuItem>
100
+ </Menu>
101
+ {/snippet}
102
+ </Popper>
103
+ </Story>
104
+
105
+ <!-- Expand the Popper to full width but not the popup -->
106
+ <Story name="PopupFullWidthFalse" asChild>
107
+ <Popper {open} fullWidth popupFullWidth={false} onClickOutside={() => (open = false)}>
108
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
109
+
110
+ {#snippet popupChildren()}
111
+ <Menu>
112
+ <MenuItem>One</MenuItem>
113
+ <MenuItem>Two</MenuItem>
114
+ <MenuItem>Three</MenuItem>
115
+ </Menu>
116
+ {/snippet}
117
+ </Popper>
118
+ </Story>
119
+
120
+ <Story
121
+ name="CustomPopup"
122
+ args={{
123
+ open,
124
+ onClickOutside: () => (open = false),
125
+ }}
126
+ asChild
127
+ >
128
+ <Popper {open} onClickOutside={() => (open = false)}>
129
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
130
+
131
+ {#snippet customPopup(popperLocation)}
132
+ {#if open}
133
+ <Menu>
134
+ <MenuItem>{popperLocation?.height}</MenuItem>
135
+ <MenuItem>{popperLocation?.width}</MenuItem>
136
+ </Menu>
137
+ {/if}
138
+ {/snippet}
139
+ </Popper>
140
+ </Story>
@@ -20,6 +20,8 @@
20
20
  open?: boolean;
21
21
  /** Full width Popper? */
22
22
  fullWidth?: boolean;
23
+ /** override Full width for Popup? */
24
+ popupFullWidth?: boolean;
23
25
  /** PopperPopup ref */
24
26
  popupRef?: HTMLDivElement;
25
27
  /** PopperPopup contents goes here */
@@ -73,24 +75,26 @@
73
75
  popperHeightForVerticalPosition,
74
76
  lockPoistions,
75
77
  fullWidth = false,
78
+ popupFullWidth: popupFullWidthRaw,
76
79
  }: PopperProps = $props();
77
80
 
81
+ const popupFullWidth = $derived(popupFullWidthRaw !== undefined ? popupFullWidthRaw : fullWidth);
82
+
78
83
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
84
  let customPopupTyped = customPopup as any;
80
85
 
81
- let popperContainerRef = $state<HTMLDivElement>();
82
86
  let popperLocation = $state<DOMRect>();
83
87
 
84
88
  function capturePopperLocation() {
85
- if (!popperContainerRef) {
89
+ if (!ref) {
86
90
  return;
87
91
  }
88
92
 
89
- popperLocation = popperContainerRef.getBoundingClientRect();
93
+ popperLocation = ref.getBoundingClientRect();
90
94
  }
91
95
 
92
96
  $effect(() => {
93
- if (!popperContainerRef) {
97
+ if (!ref) {
94
98
  return;
95
99
  }
96
100
 
@@ -111,11 +115,9 @@
111
115
  {id}
112
116
  use:clickOutside={onClickOutside}
113
117
  >
114
- <div class="PopperContainer" bind:this={popperContainerRef}>
115
- {#if children}
116
- {@render children()}
117
- {/if}
118
- </div>
118
+ {#if children}
119
+ {@render children()}
120
+ {/if}
119
121
 
120
122
  {#if customPopupTyped}
121
123
  {@render customPopupTyped(popperLocation)}
@@ -131,6 +133,7 @@
131
133
  {popupOffsetY}
132
134
  {popperHeightForVerticalPosition}
133
135
  {lockPoistions}
136
+ fullWidth={popupFullWidth}
134
137
  class={popupClass}
135
138
  >
136
139
  {#if popupChildren}
@@ -149,11 +152,7 @@
149
152
  &.fullWidth {
150
153
  display: flex;
151
154
  width: 100%;
152
-
153
- .PopperContainer {
154
- display: block;
155
- width: 100%;
156
- }
155
+ flex-direction: column;
157
156
  }
158
157
  }
159
158
  </style>
@@ -0,0 +1,64 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import type { StoryBookArgTypes } from '$lib/storybook-types.js';
4
+ import { Menu, MenuItem, PopperPopup } from '$lib/index.js';
5
+ import { positionXArray, positionYArray } from '$lib/types/position.js';
6
+
7
+ export const storyPopperPopupArgTypes: StoryBookArgTypes = {
8
+ popupPositionX: {
9
+ control: { type: 'select' },
10
+ options: positionXArray,
11
+ },
12
+ popupPositionY: {
13
+ control: { type: 'select' },
14
+ options: positionYArray,
15
+ },
16
+ };
17
+
18
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
19
+ const { Story } = defineMeta({
20
+ component: PopperPopup,
21
+ tags: ['autodocs'],
22
+ argTypes: storyPopperPopupArgTypes,
23
+ parameters: {
24
+ docs: {
25
+ story: {
26
+ height: '200px',
27
+ inline: false,
28
+ },
29
+ },
30
+ },
31
+ });
32
+ </script>
33
+
34
+ <Story name="Default" asChild>
35
+ <PopperPopup>
36
+ <Menu>
37
+ <MenuItem>One</MenuItem>
38
+ <MenuItem>Two</MenuItem>
39
+ <MenuItem>Three</MenuItem>
40
+ </Menu>
41
+ </PopperPopup>
42
+ </Story>
43
+
44
+ <Story
45
+ name="CustomPaperProps"
46
+ args={{
47
+ paperProps: {
48
+ color: 'primary',
49
+ },
50
+ }}
51
+ asChild
52
+ >
53
+ <PopperPopup
54
+ paperProps={{
55
+ color: 'primary',
56
+ }}
57
+ >
58
+ <Menu>
59
+ <MenuItem>One</MenuItem>
60
+ <MenuItem>Two</MenuItem>
61
+ <MenuItem>Three</MenuItem>
62
+ </Menu>
63
+ </PopperPopup>
64
+ </Story>
@@ -32,6 +32,8 @@
32
32
  lockPoistions?: boolean;
33
33
  /** Popper Height For Vertical Position, default 300 */
34
34
  popperHeightForVerticalPosition?: number;
35
+ /** Full width Popper? */
36
+ fullWidth?: boolean;
35
37
  }
36
38
  </script>
37
39
 
@@ -50,9 +52,15 @@
50
52
  popupOffsetY: offsetY = 12,
51
53
  popperHeightForVerticalPosition = 100,
52
54
  lockPoistions = false,
55
+ fullWidth = false,
53
56
  }: PopperPopupProps = $props();
54
57
 
55
- const popperWidth = $derived(width || '100%');
58
+ let popupLocation = $state<DOMRect>();
59
+
60
+ const fullWidthInPixels = $derived(
61
+ fullWidth && popperLocation?.width ? `${popperLocation?.width}px` : '',
62
+ );
63
+ const popperWidth = $derived(width || fullWidthInPixels);
56
64
  const popupMaxHeight = $derived(maxHeight || '400px');
57
65
 
58
66
  let left = $state<number | null>(null);
@@ -60,20 +68,39 @@
60
68
  let top = $state<number | null>(null);
61
69
  let bottom = $state<number | null>(null);
62
70
 
71
+ function capturePopupLocation() {
72
+ if (!ref) {
73
+ return;
74
+ }
75
+
76
+ popupLocation = ref.getBoundingClientRect();
77
+ }
78
+
79
+ $effect(() => {
80
+ if (!ref) {
81
+ return;
82
+ }
83
+
84
+ capturePopupLocation();
85
+
86
+ window.addEventListener('resize', capturePopupLocation);
87
+
88
+ return () => {
89
+ window.removeEventListener('resize', capturePopupLocation);
90
+ };
91
+ });
92
+
63
93
  $effect(() => {
64
94
  const values = getPopupPosition({
65
95
  positionX,
66
96
  positionY,
67
- height: popperLocation?.height || 0,
68
- width: popperLocation?.width || 0,
69
- top: popperLocation?.top || 0,
70
- bottom: popperLocation?.bottom || 0,
71
- left: popperLocation?.left || 0,
72
- right: popperLocation?.right || 0,
73
97
  offsetX: offsetX,
74
98
  offsetY: offsetY,
75
99
  popperHeight: popperHeightForVerticalPosition,
76
100
  lockPoistions,
101
+ popperLocation,
102
+ popupLocation,
103
+ fullWidth,
77
104
  });
78
105
 
79
106
  left = values.left;
@@ -91,12 +118,11 @@
91
118
  className,
92
119
  ].join(' ')}
93
120
  bind:this={ref}
94
- style={`width: ${popperWidth};
121
+ style={`${popperWidth ? `width: ${popperWidth};` : ''}
95
122
  ${left !== null ? `left: ${left}px;` : ''}
96
123
  ${right !== null ? `right: ${right}px;` : ''}
97
124
  ${top !== null ? `top: ${top}px;` : ''}
98
125
  ${bottom !== null ? `bottom: ${bottom}px;` : ''}
99
- ${positionX === 'center' ? `margin: auto;` : ''}
100
126
  `}
101
127
  >
102
128
  <Paper shadow={3} {...paperProps}>
@@ -110,7 +136,7 @@
110
136
 
111
137
  <style lang="scss">
112
138
  .dodo-ui-PopperPopup {
113
- position: absolute;
139
+ position: fixed;
114
140
  z-index: var(--dodo-ui-z-index-4);
115
141
 
116
142
  section {
@@ -4,16 +4,13 @@ import type { PositionX, PositionY } from '$lib/types/position.js';
4
4
  export interface GetPopupPositionProps {
5
5
  positionX: PositionX;
6
6
  positionY: PositionY;
7
- height: number;
8
- width: number;
9
- top: number;
10
- bottom: number;
11
- left: number;
12
- right: number;
13
7
  offsetX?: number;
14
8
  offsetY?: number;
15
9
  popperHeight: number;
16
10
  lockPoistions: boolean;
11
+ popperLocation?: DOMRect;
12
+ popupLocation?: DOMRect;
13
+ fullWidth?: boolean;
17
14
  }
18
15
 
19
16
  export function getPopupPosition(props: GetPopupPositionProps) {
@@ -32,52 +29,69 @@ export function getPopupPosition(props: GetPopupPositionProps) {
32
29
  };
33
30
  }
34
31
 
35
- const innerHeight = window.innerHeight;
36
-
37
- const gapBottom = innerHeight - props.bottom;
38
- const popperHeight = props.popperHeight;
32
+ const POPPER_LEFT = props.popperLocation?.left || 0;
33
+ const POPPER_TOP = props.popperLocation?.top || 0;
34
+ const POPPER_BOTTOM = props.popperLocation?.bottom || 0;
35
+ const POPPER_HEIGHT = props.popperLocation?.height || 0;
36
+ const POPPER_WIDTH = props.popperLocation?.width || 0;
39
37
 
40
38
  const offsetX = props.offsetX ? props.offsetX : 0;
41
39
  const offsetY = props.offsetY ? props.offsetY : 0;
42
40
 
43
- const positionX = props.positionX;
41
+ const POPUP_WIDTH = props.popupLocation?.width || 0;
42
+
43
+ const WIDTH_DIFF = POPPER_WIDTH - POPUP_WIDTH;
44
+
45
+ const innerHeight = window.innerHeight;
46
+ const gapBottom = innerHeight - POPPER_BOTTOM;
47
+
44
48
  let positionY = props.positionY;
45
49
 
50
+ // Adjust position if there is not enough space to draw it.
46
51
  if (!props.lockPoistions) {
47
- if (positionY === 'top' && props.top < popperHeight + offsetY) {
52
+ if (positionY === 'top' && POPPER_TOP < POPPER_HEIGHT + offsetY) {
48
53
  positionY = 'bottom';
49
- } else if (positionY === 'bottom' && gapBottom < popperHeight + offsetY) {
54
+ } else if (positionY === 'bottom' && gapBottom < POPPER_HEIGHT + offsetY) {
50
55
  positionY = 'top';
51
56
  }
52
57
  }
53
58
 
54
- switch (positionX) {
55
- case 'left':
56
- left = offsetX;
57
- right = null;
58
- break;
59
- case 'center':
60
- left = 0;
61
- right = 0;
62
- break;
63
- case 'right':
64
- left = null;
65
- right = offsetX;
66
- break;
67
- }
68
-
69
59
  switch (positionY) {
70
60
  case 'top':
71
- case 'middle':
72
61
  top = null;
73
- bottom = props.height + offsetY;
62
+ bottom = POPPER_TOP + POPPER_HEIGHT + offsetY;
74
63
  break;
75
64
  case 'bottom':
76
- top = props.height + offsetY;
65
+ top = POPPER_TOP + POPPER_HEIGHT + offsetY;
77
66
  bottom = null;
78
67
  break;
79
68
  }
80
69
 
70
+ if (props.fullWidth) {
71
+ // If Full Width
72
+ left = POPPER_LEFT;
73
+ right = null;
74
+ } else if (WIDTH_DIFF < 0) {
75
+ // If Popup is bigger than the Popper Container
76
+ left = POPPER_LEFT;
77
+ right = null;
78
+ } else {
79
+ switch (props.positionX) {
80
+ case 'left':
81
+ left = POPPER_LEFT + offsetX;
82
+ right = null;
83
+ break;
84
+ case 'center':
85
+ left = POPPER_LEFT + offsetX + WIDTH_DIFF / 2;
86
+ right = null;
87
+ break;
88
+ case 'right':
89
+ left = POPPER_LEFT + offsetX + WIDTH_DIFF;
90
+ right = null;
91
+ break;
92
+ }
93
+ }
94
+
81
95
  return {
82
96
  left,
83
97
  right,
@@ -0,0 +1,92 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { Menu, MenuItem, Popper } from '$lib/index.js';
4
+ import Button from '$lib/stories/components/Form/Button/Button.svelte';
5
+ import { storyPopperArgTypes } from '../../Popper.stories.svelte';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: Popper,
10
+ tags: ['autodocs'],
11
+ argTypes: storyPopperArgTypes,
12
+ parameters: {
13
+ docs: {
14
+ story: {
15
+ height: '200px',
16
+ inline: false,
17
+ },
18
+ },
19
+ },
20
+ });
21
+
22
+ let open = $state(false);
23
+ </script>
24
+
25
+ <!-- Positions will auto adjust depending on the space on top and bottom -->
26
+ <Story
27
+ name="PositionAutoAdjust"
28
+ args={{ open, onClickOutside: () => (open = false), popupPositionY: 'top' }}
29
+ asChild
30
+ >
31
+ <Popper {open} onClickOutside={() => (open = false)} popupPositionY="top">
32
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
33
+ {#snippet popupChildren()}
34
+ <Menu>
35
+ <MenuItem>One</MenuItem>
36
+ <MenuItem>Two</MenuItem>
37
+ <MenuItem>Three</MenuItem>
38
+ </Menu>
39
+ {/snippet}
40
+ </Popper>
41
+ </Story>
42
+
43
+ <!-- Positions will not auto adjust if you use `lockPoistions` -->
44
+ <Story
45
+ name="LockPoistions"
46
+ args={{
47
+ open,
48
+ onClickOutside: () => (open = false),
49
+ popupPositionY: 'top',
50
+ lockPoistions: true,
51
+ }}
52
+ asChild
53
+ >
54
+ <Popper {open} lockPoistions onClickOutside={() => (open = false)} popupPositionY="top">
55
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
56
+ {#snippet popupChildren()}
57
+ <Menu>
58
+ <MenuItem>One</MenuItem>
59
+ <MenuItem>Two</MenuItem>
60
+ <MenuItem>Three</MenuItem>
61
+ </Menu>
62
+ {/snippet}
63
+ </Popper>
64
+ </Story>
65
+
66
+ <!-- you can also adjust `popperHeightForVerticalPosition` to achive the same -->
67
+ <Story
68
+ name="HeightForVerticalPosition"
69
+ args={{
70
+ open,
71
+ onClickOutside: () => (open = false),
72
+ popupPositionY: 'top',
73
+ popperHeightForVerticalPosition: 3,
74
+ }}
75
+ asChild
76
+ >
77
+ <Popper
78
+ {open}
79
+ onClickOutside={() => (open = false)}
80
+ popupPositionY="top"
81
+ popperHeightForVerticalPosition={3}
82
+ >
83
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
84
+ {#snippet popupChildren()}
85
+ <Menu>
86
+ <MenuItem>One</MenuItem>
87
+ <MenuItem>Two</MenuItem>
88
+ <MenuItem>Three</MenuItem>
89
+ </Menu>
90
+ {/snippet}
91
+ </Popper>
92
+ </Story>
@@ -0,0 +1,114 @@
1
+ <script module lang="ts">
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { Menu, MenuItem, Popper } from '$lib/index.js';
4
+ import Button from '$lib/stories/components/Form/Button/Button.svelte';
5
+ import { storyPopperArgTypes } from '../Popper.stories.svelte';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ component: Popper,
10
+ tags: ['autodocs'],
11
+ argTypes: storyPopperArgTypes,
12
+ parameters: {
13
+ layout: 'centered',
14
+ docs: {
15
+ story: {
16
+ height: '400px',
17
+ inline: false,
18
+ },
19
+ },
20
+ },
21
+ });
22
+
23
+ let open = $state(false);
24
+ </script>
25
+
26
+ <Story name="BottomLeft" asChild>
27
+ <Popper {open} onClickOutside={() => (open = false)} popupWidth="100px">
28
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
29
+ {#snippet popupChildren()}
30
+ <Menu>
31
+ <MenuItem>One</MenuItem>
32
+ <MenuItem>Two</MenuItem>
33
+ <MenuItem>Three</MenuItem>
34
+ </Menu>
35
+ {/snippet}
36
+ </Popper>
37
+ </Story>
38
+
39
+ <Story name="BottomCenter" asChild>
40
+ <Popper {open} popupPositionX="center" onClickOutside={() => (open = false)} popupWidth="100px">
41
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
42
+ {#snippet popupChildren()}
43
+ <Menu>
44
+ <MenuItem>One</MenuItem>
45
+ <MenuItem>Two</MenuItem>
46
+ <MenuItem>Three</MenuItem>
47
+ </Menu>
48
+ {/snippet}
49
+ </Popper>
50
+ </Story>
51
+
52
+ <Story name="BottomRight" asChild>
53
+ <Popper {open} popupPositionX="right" onClickOutside={() => (open = false)} popupWidth="100px">
54
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
55
+ {#snippet popupChildren()}
56
+ <Menu>
57
+ <MenuItem>One</MenuItem>
58
+ <MenuItem>Two</MenuItem>
59
+ <MenuItem>Three</MenuItem>
60
+ </Menu>
61
+ {/snippet}
62
+ </Popper>
63
+ </Story>
64
+
65
+ <Story name="TopLeft" asChild>
66
+ <Popper {open} popupPositionY="top" onClickOutside={() => (open = false)} popupWidth="100px">
67
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
68
+ {#snippet popupChildren()}
69
+ <Menu>
70
+ <MenuItem>One</MenuItem>
71
+ <MenuItem>Two</MenuItem>
72
+ <MenuItem>Three</MenuItem>
73
+ </Menu>
74
+ {/snippet}
75
+ </Popper>
76
+ </Story>
77
+
78
+ <Story name="TopCenter" asChild>
79
+ <Popper
80
+ {open}
81
+ popupPositionY="top"
82
+ popupPositionX="center"
83
+ onClickOutside={() => (open = false)}
84
+ popupWidth="100px"
85
+ >
86
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
87
+ {#snippet popupChildren()}
88
+ <Menu>
89
+ <MenuItem>One</MenuItem>
90
+ <MenuItem>Two</MenuItem>
91
+ <MenuItem>Three</MenuItem>
92
+ </Menu>
93
+ {/snippet}
94
+ </Popper>
95
+ </Story>
96
+
97
+ <Story name="TopRight" asChild>
98
+ <Popper
99
+ {open}
100
+ popupPositionY="top"
101
+ popupPositionX="right"
102
+ onClickOutside={() => (open = false)}
103
+ popupWidth="100px"
104
+ >
105
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
106
+ {#snippet popupChildren()}
107
+ <Menu>
108
+ <MenuItem>One</MenuItem>
109
+ <MenuItem>Two</MenuItem>
110
+ <MenuItem>Three</MenuItem>
111
+ </Menu>
112
+ {/snippet}
113
+ </Popper>
114
+ </Story>