@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
@@ -19,8 +19,6 @@ export interface CalendarDateChipProps {
19
19
  selected?: boolean;
20
20
  /** onselect event handler */
21
21
  onselect?: (value: Date, dayOfMonth: DateOfMonth, e: ButtonClickEvent) => void;
22
- /** onselectRange event handler */
23
- onselectRange?: (value: Date, type: DateRangeType, dayOfMonth: DateOfMonth, e: ButtonClickEvent) => void;
24
22
  /** Custom Calendar Chip Content */
25
23
  customCalendarDateChipContent?: (dayOfMonth: DateOfMonth) => Snippet;
26
24
  /** Custom Calendar Chip Content */
@@ -33,17 +31,13 @@ export interface CalendarDateChipProps {
33
31
  timezone?: string;
34
32
  /** Whether to return the time in UTC. If true, overrides timezone. */
35
33
  utc?: boolean;
36
- /** Show Value Range */
37
- showValueRange?: boolean;
38
- /** Date Range Type */
39
- rangeType?: DateRangeType;
40
34
  }
41
35
  import type { ComponentColor } from '../../../../../../../types/colors.js';
42
36
  import type { ComponentRoundness } from '../../../../../../../types/roundness.js';
43
37
  import type { Snippet } from 'svelte';
44
38
  import type { ButtonClickEvent } from '../../../../../Form/Button/Button.svelte';
45
39
  import type { ComponentSize } from '../../../../../../../types/size.js';
46
- import type { DateOfMonth, DateRangeType } from '../../../utils/types.js';
40
+ import type { DateOfMonth } from '../../../utils/types.js';
47
41
  declare const CalendarDateChip: import("svelte").Component<CalendarDateChipProps, {}, "ref">;
48
42
  type CalendarDateChip = ReturnType<typeof CalendarDateChip>;
49
43
  export default CalendarDateChip;
@@ -56,22 +56,6 @@
56
56
  --dodo-ui-CalendarDateChip-selected-#{$color-name}-active-bg: var(
57
57
  --dodo-color-#{$color-name}-100
58
58
  );
59
-
60
- --dodo-ui-CalendarDateChip-isRangeStart-#{$color-name}-bg: var(--dodo-color-#{$color-name}-300);
61
- --dodo-ui-CalendarDateChip-isRangeStart-#{$color-name}-hover-bg: var(
62
- --dodo-color-#{$color-name}-200
63
- );
64
- --dodo-ui-CalendarDateChip-isRangeStart-#{$color-name}-active-bg: var(
65
- --dodo-color-#{$color-name}-100
66
- );
67
-
68
- --dodo-ui-CalendarDateChip-isRangeEnd-#{$color-name}-bg: var(--dodo-color-#{$color-name}-300);
69
- --dodo-ui-CalendarDateChip-isRangeEnd-#{$color-name}-hover-bg: var(
70
- --dodo-color-#{$color-name}-200
71
- );
72
- --dodo-ui-CalendarDateChip-isRangeEnd-#{$color-name}-active-bg: var(
73
- --dodo-color-#{$color-name}-100
74
- );
75
59
  }
76
60
 
77
61
  /// Mixin: generate-dodo-ui-calendarDateChip-color
@@ -119,35 +103,5 @@
119
103
  }
120
104
  }
121
105
  }
122
-
123
- &.isRangeStart {
124
- .chip:not([disabled]) {
125
- color: var(--dodo-color-constant-white);
126
- background-color: var(--dodo-ui-CalendarDateChip-isRangeStart-#{$theme}-bg);
127
-
128
- &:hover {
129
- background-color: var(--dodo-ui-CalendarDateChip-isRangeStart-#{$theme}-hover-bg);
130
- }
131
-
132
- &:active {
133
- background-color: var(--dodo-ui-CalendarDateChip-isRangeStart-#{$theme}-active-bg);
134
- }
135
- }
136
- }
137
-
138
- &.isRangeEnd {
139
- .chip:not([disabled]) {
140
- color: var(--dodo-color-constant-white);
141
- background-color: var(--dodo-ui-CalendarDateChip-isRangeEnd-#{$theme}-bg);
142
-
143
- &:hover {
144
- background-color: var(--dodo-ui-CalendarDateChip-isRangeEnd-#{$theme}-hover-bg);
145
- }
146
-
147
- &:active {
148
- background-color: var(--dodo-ui-CalendarDateChip-isRangeEnd-#{$theme}-active-bg);
149
- }
150
- }
151
- }
152
106
  }
153
107
  }
@@ -83,3 +83,17 @@ const { Story } = defineMeta({
83
83
  showNextMonth: false,
84
84
  }}
85
85
  />
86
+
87
+ <Story
88
+ name="ManipulateDate"
89
+ args={{
90
+ manipulateDate: (dateToModify: DateOfMonth) => {
91
+ // Disable all Fridays
92
+ if (getMoment(dateToModify.date, undefined).day() === 5) {
93
+ dateToModify.disabled = true;
94
+ }
95
+
96
+ return dateToModify;
97
+ },
98
+ }}
99
+ />
@@ -2,10 +2,10 @@
2
2
  </script>
3
3
 
4
4
  <script lang="ts">import getMoment from '../../../../../developer tools/helpers/Time/getMoment/getMoment.js';
5
- import getDatesOfMonth from '../../utils/getDatesOfMonth.js';
6
5
  import CalendarDateChip, {} from './CalendarDateChip/CalendarDateChip.svelte';
7
6
  import CalendarWeek from './CalendarWeek/CalendarWeek.svelte';
8
- let { class: className = '', ref = $bindable(), value, startOfWeek, timezone, utc, calendarDateChipProps, color, showToday, showLastMonth, showNextMonth, showSelected = true, activeMonth, onselect, customCalendarDateChipContent, customCalendarDateChip, today, minDate, maxDate, excludeDates, includeDates, weekDayNameType, customCalendarWeekContent, customCalendarWeek, size = 'normal', weekendDays, weekendDaysColorDays = true, rangeValue, onselectRange, } = $props();
7
+ import { getDatesOfMonth } from '../../../../../../index.js';
8
+ let { class: className = '', ref = $bindable(), value, startOfWeek, timezone, utc, calendarDateChipProps, color, showToday, showLastMonth, showNextMonth, showSelected = true, activeMonth, onselect, customCalendarDateChipContent, customCalendarDateChip, today, minDate, maxDate, excludeDates, includeDates, weekDayNameType, customCalendarWeekContent, customCalendarWeek, size = 'normal', weekendDays, weekendDaysColorDays = true, manipulateDate, } = $props();
9
9
  let monthToPick = $state(undefined);
10
10
  const daysGroup = $derived(getDatesOfMonth(monthToPick, {
11
11
  startOfWeek,
@@ -16,26 +16,7 @@ const daysGroup = $derived(getDatesOfMonth(monthToPick, {
16
16
  maxDate,
17
17
  excludeDates,
18
18
  includeDates,
19
- rangeValue,
20
- }) || []);
21
- function getRangeType(day, rangeValue) {
22
- if (!rangeValue) {
23
- return undefined;
24
- }
25
- const [range1, range2] = rangeValue;
26
- if (!range1 || !range2) {
27
- return undefined;
28
- }
29
- if (getMoment(range1, undefined, { timezone, utc }).format('MMM YYYY') ===
30
- getMoment(day.date, undefined, { timezone, utc }).format('DD-MM-YYY')) {
31
- return 'start';
32
- }
33
- else if (getMoment(range2, undefined, { timezone, utc }).format('MMM YYYY') ===
34
- getMoment(day.date, undefined, { timezone, utc }).format('DD-MM-YYY')) {
35
- return 'end';
36
- }
37
- return undefined;
38
- }
19
+ }, manipulateDate) || []);
39
20
  $effect(() => {
40
21
  if (!value) {
41
22
  monthToPick = activeMonth;
@@ -92,9 +73,6 @@ $effect(() => {
92
73
  )
93
74
  ? true
94
75
  : false}
95
- showValueRange={rangeValue ? true : false}
96
- rangeType={getRangeType(day, rangeValue)}
97
- {onselectRange}
98
76
  {...calendarDateChipProps}
99
77
  />
100
78
  {/each}
@@ -38,8 +38,6 @@ export interface CalendarDatesChartProps {
38
38
  includeDates?: Date[];
39
39
  /** onselect event handler */
40
40
  onselect?: (value: Date, dayOfMonth: DateOfMonth, e: ButtonClickEvent) => void;
41
- /** onselectRange event handler */
42
- onselectRange?: (value: Date, type: DateRangeType, dayOfMonth: DateOfMonth, e: ButtonClickEvent) => void;
43
41
  /** Custom Calendar Chip Content */
44
42
  customCalendarDateChipContent?: (dayOfMonth: DateOfMonth) => Snippet;
45
43
  /** Custom Calendar Chip */
@@ -56,15 +54,16 @@ export interface CalendarDatesChartProps {
56
54
  weekendDays?: CalendarWeekNames[];
57
55
  /** Color Weekend days */
58
56
  weekendDaysColorDays?: boolean;
59
- /** Range value */
60
- rangeValue?: [Date, Date];
57
+ /** manipulate date callback */
58
+ manipulateDate?: (dateToModify: DateOfMonth, settings?: CreateDatesOfMonthSettings) => DateOfMonth;
61
59
  }
62
60
  import type { ComponentColor } from '../../../../../../types/colors.js';
63
61
  import type { Snippet } from 'svelte';
64
- import type { DateOfMonth, DateRangeType } from '../../utils/types.js';
62
+ import type { DateOfMonth } from '../../utils/types.js';
65
63
  import { type CalendarDateChipProps } from './CalendarDateChip/CalendarDateChip.svelte';
66
64
  import type { CalendarWeekOption, CalendarWeekDayNameType, CalendarWeekNames } from './CalendarWeek/CalendarWeek.svelte';
67
65
  import type { ComponentSize } from '../../../../../../types/size.js';
66
+ import type { CreateDatesOfMonthSettings } from '../../utils/createDateOfMonth/createDateOfMonth.js';
68
67
  declare const CalendarDatesChart: import("svelte").Component<CalendarDatesChartProps, {}, "ref">;
69
68
  type CalendarDatesChart = ReturnType<typeof CalendarDatesChart>;
70
69
  export default CalendarDatesChart;
@@ -0,0 +1,27 @@
1
+ import type { DateOfMonth } from '../types.js';
2
+ import type { CalendarWeekNames } from '../../../../../../index.js';
3
+ /** Settings for generating calendar dates */
4
+ export interface CreateDatesOfMonthSettings {
5
+ startOfWeek?: CalendarWeekNames;
6
+ showLastMonth?: boolean;
7
+ showNextMonth?: boolean;
8
+ today?: Date;
9
+ minDate?: Date;
10
+ maxDate?: Date;
11
+ excludeDates?: Date[];
12
+ includeDates?: Date[];
13
+ timezone?: string;
14
+ utc?: boolean;
15
+ }
16
+ export type CreateDateOfMonthType = 'currentMonth' | 'nextMonth' | 'lastMonth';
17
+ /**
18
+ * Generates a DateOfMonth object with metadata for a specific day, including
19
+ * whether it's part of the current month, disabled, or today.
20
+ *
21
+ * @param date - The day to convert.
22
+ * @param settings - Optional configuration settings.
23
+ * @param monthType - Specifies if the day belongs to the current, previous, or next month.
24
+ * @param manipulateDate - Optional function to customize the resulting date object.
25
+ * @returns A DateOfMonth object representing the day.
26
+ */
27
+ export default function createDateOfMonth(date?: Date, settings?: CreateDatesOfMonthSettings, monthType?: CreateDateOfMonthType, manipulateDate?: (dateToModify: DateOfMonth, settings?: CreateDatesOfMonthSettings) => DateOfMonth): DateOfMonth;
@@ -0,0 +1,72 @@
1
+ import getMoment from '../../../../../developer tools/helpers/Time/getMoment/getMoment.js';
2
+ /**
3
+ * Creates a moment object from a Date with optional timezone and UTC settings.
4
+ */
5
+ function dateMoment(date, settings) {
6
+ return getMoment(date, undefined, {
7
+ timezone: settings?.timezone,
8
+ utc: settings?.utc,
9
+ });
10
+ }
11
+ /**
12
+ * Determines if the given day matches "today" (manual or actual).
13
+ */
14
+ function getIsToday(dayMoment, todayDate, todayManual) {
15
+ const dayDateFormat = dayMoment.format('DD-MM-YYYY');
16
+ return todayManual === dayDateFormat || todayDate === dayDateFormat;
17
+ }
18
+ /**
19
+ * Determines if a date should be disabled based on limits and included/excluded lists.
20
+ */
21
+ function getIsDateDisabled(dayMoment, minDate, maxDate, excludeDates, includeDates) {
22
+ const dayDateFormat = dayMoment.format('DD-MM-YYYY');
23
+ if (minDate?.isValid() && dayMoment.isBefore(minDate))
24
+ return true;
25
+ if (maxDate?.isValid() && dayMoment.isAfter(maxDate))
26
+ return true;
27
+ if (excludeDates?.includes(dayDateFormat))
28
+ return true;
29
+ if (includeDates && !includeDates.includes(dayDateFormat))
30
+ return true;
31
+ return false;
32
+ }
33
+ /**
34
+ * Generates a DateOfMonth object with metadata for a specific day, including
35
+ * whether it's part of the current month, disabled, or today.
36
+ *
37
+ * @param date - The day to convert.
38
+ * @param settings - Optional configuration settings.
39
+ * @param monthType - Specifies if the day belongs to the current, previous, or next month.
40
+ * @param manipulateDate - Optional function to customize the resulting date object.
41
+ * @returns A DateOfMonth object representing the day.
42
+ */
43
+ export default function createDateOfMonth(date, settings, monthType = 'currentMonth', manipulateDate) {
44
+ const minDate = settings?.minDate ? dateMoment(settings.minDate, settings) : undefined;
45
+ const maxDate = settings?.maxDate ? dateMoment(settings.maxDate, settings) : undefined;
46
+ const excludeDates = settings?.excludeDates?.map((item) => dateMoment(item, settings).format('DD-MM-YYYY'));
47
+ const includeDates = settings?.includeDates?.map((item) => dateMoment(item, settings).format('DD-MM-YYYY'));
48
+ const todayDate = dateMoment(undefined, settings).format('DD-MM-YYYY');
49
+ const todayManual = settings?.today
50
+ ? dateMoment(settings.today, settings).format('DD-MM-YYYY')
51
+ : undefined;
52
+ const dayMoment = dateMoment(date, settings);
53
+ let dataToExport = {
54
+ id: `${dayMoment.valueOf()}`,
55
+ date: dayMoment.toDate(),
56
+ isCurrentMonth: true,
57
+ disabled: getIsDateDisabled(dayMoment, minDate, maxDate, excludeDates, includeDates),
58
+ today: getIsToday(dayMoment, todayDate, todayManual),
59
+ };
60
+ if (monthType === 'lastMonth') {
61
+ dataToExport.isLastMonth = true;
62
+ dataToExport.isCurrentMonth = false;
63
+ }
64
+ else if (monthType === 'nextMonth') {
65
+ dataToExport.isNextMonth = true;
66
+ dataToExport.isCurrentMonth = false;
67
+ }
68
+ if (manipulateDate) {
69
+ dataToExport = manipulateDate(dataToExport, settings);
70
+ }
71
+ return dataToExport;
72
+ }
@@ -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,10 @@
1
+ import { type CreateDatesOfMonthSettings, type DateOfMonth } from '../../../../../../index.js';
2
+ /**
3
+ * Generates a calendar grid of dates for a given month.
4
+ *
5
+ * @param date - The base date for the month to generate.
6
+ * @param settings - Optional settings for formatting and display.
7
+ * @param manipulateDate - Optional function to modify each generated DateOfMonth.
8
+ * @returns A 2D array of DateOfMonth objects representing the calendar, or null if invalid.
9
+ */
10
+ export default function getDatesOfMonth(date?: Date, settings?: CreateDatesOfMonthSettings, manipulateDate?: (dateToModify: DateOfMonth, settings?: CreateDatesOfMonthSettings) => DateOfMonth): DateOfMonth[][] | null;
@@ -1,13 +1,12 @@
1
- import getMoment from '../../../../developer tools/helpers/Time/getMoment/getMoment.js';
2
- import { calendarWeekOptions } from '../../../../../index.js';
3
- import createDateOfMonth, {} from './createDateOfMonth.js';
1
+ import getMoment from '../../../../../developer tools/helpers/Time/getMoment/getMoment.js';
2
+ import { calendarWeekOptions, createDateOfMonth, } from '../../../../../../index.js';
4
3
  /**
5
4
  * Divides an array into chunks of a given size.
6
5
  *
7
6
  * @template T - The type of elements in the array.
8
- * @param {T[]} arr - The array to be chunked.
9
- * @param {number} size - The chunk size.
10
- * @returns {T[][]} - An array of chunks.
7
+ * @param arr - The array to be chunked.
8
+ * @param size - The chunk size.
9
+ * @returns An array of chunks.
11
10
  */
12
11
  function chunkArray(arr, size) {
13
12
  const result = [];
@@ -16,6 +15,13 @@ function chunkArray(arr, size) {
16
15
  }
17
16
  return result;
18
17
  }
18
+ /**
19
+ * Creates a moment object from a Date with optional timezone and UTC settings.
20
+ *
21
+ * @param date - The date to convert.
22
+ * @param settings - Optional settings for timezone and UTC.
23
+ * @returns A moment object with the applied settings.
24
+ */
19
25
  function dateMoment(date, settings) {
20
26
  return getMoment(date, undefined, {
21
27
  timezone: settings?.timezone,
@@ -25,11 +31,12 @@ function dateMoment(date, settings) {
25
31
  /**
26
32
  * Generates a calendar grid of dates for a given month.
27
33
  *
28
- * @param {Date} date - The base date for the month to generate.
29
- * @param {GetDatesOfMonthSettings} [settings] - Optional settings for formatting and display.
30
- * @returns {(DateOfMonth[][] | null)} - A 2D array of DateOfMonth objects representing the calendar, or null if invalid.
34
+ * @param date - The base date for the month to generate.
35
+ * @param settings - Optional settings for formatting and display.
36
+ * @param manipulateDate - Optional function to modify each generated DateOfMonth.
37
+ * @returns A 2D array of DateOfMonth objects representing the calendar, or null if invalid.
31
38
  */
32
- export default function getDatesOfMonth(date, settings) {
39
+ export default function getDatesOfMonth(date, settings, manipulateDate) {
33
40
  if (!date) {
34
41
  return null;
35
42
  }
@@ -50,12 +57,12 @@ export default function getDatesOfMonth(date, settings) {
50
57
  if (showLastMonth) {
51
58
  for (let gap = 0; gap < startOfMonthDay; gap++) {
52
59
  const dayMoment = lastMonth.clone().add(gap, 'days');
53
- dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'lastMonth'));
60
+ dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'lastMonth', manipulateDate));
54
61
  }
55
62
  }
56
63
  for (let day = 1; day <= daysInMonth; day++) {
57
64
  const dayMoment = monthMoment.clone().set('date', day);
58
- dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'currentMonth'));
65
+ dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'currentMonth', manipulateDate));
59
66
  }
60
67
  const datesDivided = chunkArray(dates, 7);
61
68
  if (showNextMonth) {
@@ -65,7 +72,7 @@ export default function getDatesOfMonth(date, settings) {
65
72
  const nextMonthDates = [];
66
73
  for (let gap = 0; gap < nextMonthDaysRequired; gap++) {
67
74
  const dayMoment = nextMonth.clone().add(gap, 'days');
68
- nextMonthDates.push(createDateOfMonth(dayMoment.toDate(), settings, 'nextMonth'));
75
+ nextMonthDates.push(createDateOfMonth(dayMoment.toDate(), settings, 'nextMonth', manipulateDate));
69
76
  }
70
77
  datesDivided[datesDivided.length - 1] = [...lastRow, ...nextMonthDates];
71
78
  }
@@ -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
+ />
@@ -29,8 +29,4 @@ export type DateOfMonth = {
29
29
  isNextMonth?: boolean;
30
30
  disabled?: boolean;
31
31
  today?: boolean;
32
- isRangeStart?: boolean;
33
- isRangeEnd?: boolean;
34
- inRange?: boolean;
35
32
  };
36
- export type DateRangeType = 'start' | 'end';
@@ -82,6 +82,7 @@ let open = $state(false);
82
82
  </Popper>
83
83
  </Story>
84
84
 
85
+ <!-- Expand the Popper to full width -->
85
86
  <Story name="FullWidth" asChild>
86
87
  <Popper {open} fullWidth onClickOutside={() => (open = false)}>
87
88
  <Button onclick={() => (open = true)}>Click to see Popup</Button>
@@ -96,6 +97,21 @@ let open = $state(false);
96
97
  </Popper>
97
98
  </Story>
98
99
 
100
+ <!-- Expand the Popper to full width but not the popup -->
101
+ <Story name="PopupFullWidthFalse" asChild>
102
+ <Popper {open} fullWidth popupFullWidth={false} onClickOutside={() => (open = false)}>
103
+ <Button onclick={() => (open = true)}>Click to see Popup</Button>
104
+
105
+ {#snippet popupChildren()}
106
+ <Menu>
107
+ <MenuItem>One</MenuItem>
108
+ <MenuItem>Two</MenuItem>
109
+ <MenuItem>Three</MenuItem>
110
+ </Menu>
111
+ {/snippet}
112
+ </Popper>
113
+ </Story>
114
+
99
115
  <Story
100
116
  name="CustomPopup"
101
117
  args={{
@@ -3,19 +3,19 @@ import { clickOutside } from '../../directives/clickOutside/clickOutside.js';
3
3
  </script>
4
4
 
5
5
  <script lang="ts">"use strict";
6
- let { children, popupChildren, id, class: className = '', ref = $bindable(), open = false, popupRef = $bindable(), paperProps, popupMaxHeight, popupWidth, popupClass, popupPositionX, popupPositionY, popupOffsetX, popupOffsetY, onClickOutside = () => { }, customPopup, popperHeightForVerticalPosition, lockPoistions, fullWidth = false, } = $props();
6
+ let { children, popupChildren, id, class: className = '', ref = $bindable(), open = false, popupRef = $bindable(), paperProps, popupMaxHeight, popupWidth, popupClass, popupPositionX, popupPositionY, popupOffsetX, popupOffsetY, onClickOutside = () => { }, customPopup, popperHeightForVerticalPosition, lockPoistions, fullWidth = false, popupFullWidth: popupFullWidthRaw, } = $props();
7
+ const popupFullWidth = $derived(popupFullWidthRaw !== undefined ? popupFullWidthRaw : fullWidth);
7
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
9
  let customPopupTyped = customPopup;
9
- let popperContainerRef = $state();
10
10
  let popperLocation = $state();
11
11
  function capturePopperLocation() {
12
- if (!popperContainerRef) {
12
+ if (!ref) {
13
13
  return;
14
14
  }
15
- popperLocation = popperContainerRef.getBoundingClientRect();
15
+ popperLocation = ref.getBoundingClientRect();
16
16
  }
17
17
  $effect(() => {
18
- if (!popperContainerRef) {
18
+ if (!ref) {
19
19
  return;
20
20
  }
21
21
  capturePopperLocation();
@@ -33,11 +33,9 @@ $effect(() => {
33
33
  {id}
34
34
  use:clickOutside={onClickOutside}
35
35
  >
36
- <div class="PopperContainer" bind:this={popperContainerRef}>
37
- {#if children}
38
- {@render children()}
39
- {/if}
40
- </div>
36
+ {#if children}
37
+ {@render children()}
38
+ {/if}
41
39
 
42
40
  {#if customPopupTyped}
43
41
  {@render customPopupTyped(popperLocation)}
@@ -53,6 +51,7 @@ $effect(() => {
53
51
  {popupOffsetY}
54
52
  {popperHeightForVerticalPosition}
55
53
  {lockPoistions}
54
+ fullWidth={popupFullWidth}
56
55
  class={popupClass}
57
56
  >
58
57
  {#if popupChildren}
@@ -70,8 +69,5 @@ $effect(() => {
70
69
  .dodo-ui-Popper.fullWidth {
71
70
  display: flex;
72
71
  width: 100%;
73
- }
74
- .dodo-ui-Popper.fullWidth .PopperContainer {
75
- display: block;
76
- width: 100%;
72
+ flex-direction: column;
77
73
  }</style>
@@ -16,6 +16,8 @@ export interface PopperProps {
16
16
  open?: boolean;
17
17
  /** Full width Popper? */
18
18
  fullWidth?: boolean;
19
+ /** override Full width for Popup? */
20
+ popupFullWidth?: boolean;
19
21
  /** PopperPopup ref */
20
22
  popupRef?: HTMLDivElement;
21
23
  /** PopperPopup contents goes here */