@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.
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/stories/components/Form/DatePicker/DatePicker.stories.svelte +16 -0
- package/dist/stories/components/Form/DatePicker/DatePicker.svelte +3 -12
- package/dist/stories/components/Form/DatePicker/DatePicker.svelte.d.ts +3 -1
- package/dist/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +43 -0
- package/dist/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +54 -0
- package/dist/stories/components/Form/DatePicker/Positions/Positions.stories.svelte.d.ts +18 -0
- package/dist/stories/components/Info/Calendar/Calendar.stories.svelte +14 -0
- package/dist/stories/components/Info/Calendar/Calendar.svelte +2 -1
- package/dist/stories/components/Info/Calendar/Calendar.svelte.d.ts +3 -3
- package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.svelte +2 -215
- package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.svelte.d.ts +1 -7
- package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/utils/scss/mixins.scss +0 -46
- package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +14 -0
- package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.svelte +3 -25
- package/dist/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.svelte.d.ts +4 -5
- package/dist/stories/components/Info/Calendar/utils/createDateOfMonth/createDateOfMonth.d.ts +27 -0
- package/dist/stories/components/Info/Calendar/utils/createDateOfMonth/createDateOfMonth.js +72 -0
- package/dist/stories/components/Info/Calendar/utils/createDateOfMonth/index.mdx +121 -0
- package/dist/stories/components/Info/Calendar/utils/getDatesOfMonth/getDatesOfMonth.d.ts +10 -0
- package/dist/stories/components/Info/Calendar/utils/{getDatesOfMonth.js → getDatesOfMonth/getDatesOfMonth.js} +20 -13
- package/dist/stories/components/Info/Calendar/utils/getDatesOfMonth/index.mdx +37 -0
- package/dist/stories/components/Info/Calendar/utils/types.d.ts +0 -4
- package/dist/stories/developer tools/components/Popper/Popper.stories.svelte +16 -0
- package/dist/stories/developer tools/components/Popper/Popper.svelte +10 -14
- package/dist/stories/developer tools/components/Popper/Popper.svelte.d.ts +2 -0
- package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +25 -11
- package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte.d.ts +2 -0
- package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.d.ts +10 -8
- package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.js +40 -23
- package/dist/stories/developer tools/helpers/Time/getMoment/getMoment.d.ts +10 -11
- package/dist/stories/developer tools/helpers/Time/getMoment/getMoment.js +8 -8
- package/dist/stories/developer tools/helpers/Time/getMoment/index.mdx +31 -4
- package/package.json +21 -23
- package/src/lib/index.ts +3 -3
- package/src/lib/stories/Home.mdx +59 -0
- package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
- package/src/lib/stories/components/Form/Button/Button.stories.svelte +61 -0
- package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +43 -0
- package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +36 -0
- package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +43 -0
- package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +23 -0
- package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +18 -0
- package/src/lib/stories/components/Form/DatePicker/Color/Color.stories.svelte +47 -0
- package/src/lib/stories/components/Form/DatePicker/Controls/Controls.stories.svelte +58 -0
- package/src/lib/stories/components/Form/DatePicker/Customize/Customize.stories.svelte +167 -0
- package/src/lib/stories/components/Form/DatePicker/DatePicker.stories.svelte +107 -0
- package/src/lib/stories/components/Form/DatePicker/DatePicker.svelte +11 -13
- package/src/lib/stories/components/Form/DatePicker/Events/Events.stories.svelte +147 -0
- package/src/lib/stories/components/Form/DatePicker/FilterDates/FilterDates.stories.svelte +61 -0
- package/src/lib/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +46 -0
- package/src/lib/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +57 -0
- package/src/lib/stories/components/Form/DatePicker/Roundness/Roundness.stories.svelte +38 -0
- package/src/lib/stories/components/Form/DatePicker/Size/Size.stories.svelte +41 -0
- package/src/lib/stories/components/Form/DatePicker/WithIcon/WithIcon.stories.svelte +41 -0
- package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +28 -0
- package/src/lib/stories/components/Form/Label/Label.stories.svelte +13 -0
- package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +36 -0
- package/src/lib/stories/components/Form/Message/Message.stories.svelte +27 -0
- package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +22 -0
- package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +134 -0
- package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +84 -0
- package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +87 -0
- package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +132 -0
- package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +58 -0
- package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +20 -0
- package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +31 -0
- package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +139 -0
- package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +63 -0
- package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +174 -0
- package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +40 -0
- package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +58 -0
- package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +87 -0
- package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +32 -0
- package/src/lib/stories/components/Form/Select/Select.stories.svelte +125 -0
- package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +28 -0
- package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +43 -0
- package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +125 -0
- package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +21 -0
- package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +17 -0
- package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +43 -0
- package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +47 -0
- package/src/lib/stories/components/Info/Calendar/Calendar.stories.svelte +121 -0
- package/src/lib/stories/components/Info/Calendar/Calendar.svelte +8 -2
- package/src/lib/stories/components/Info/Calendar/Color/Color.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/Controls/Controls.stories.svelte +26 -0
- package/src/lib/stories/components/Info/Calendar/Customize/Customize.stories.svelte +160 -0
- package/src/lib/stories/components/Info/Calendar/Events/Events.stories.svelte +122 -0
- package/src/lib/stories/components/Info/Calendar/FilterDates/FilterDates.stories.svelte +70 -0
- package/src/lib/stories/components/Info/Calendar/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarControls.stories.svelte +36 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/CalendarMonthSelector.stories.svelte +58 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Color/Color.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Customize/Customize.stories.svelte +30 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Events/Events.stories.svelte +25 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/NameTypes/NameTypes.stories.svelte +25 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Roundness/Roundness.stories.svelte +26 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/CalendarNavigation.stories.svelte +36 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Color/Color.stories.svelte +19 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Customize/Customize.stories.svelte +33 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Events/Events.stories.svelte +37 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/CalendarYearSelector.stories.svelte +58 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Color/Color.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Customize/Customize.stories.svelte +30 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Events/Events.stories.svelte +25 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Roundness/Roundness.stories.svelte +26 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Color/Color.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Controls/Controls.stories.svelte +21 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Customize/Customize.stories.svelte +69 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Events/Events.stories.svelte +61 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.stories.svelte +75 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.svelte +2 -25
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Color/Color.stories.svelte +41 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Customize/Customize.stories.svelte +45 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Events/Events.stories.svelte +28 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Roundness/Roundness.stories.svelte +31 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Size/Size.stories.svelte +24 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/SpecialChips/SpecialChips.stories.svelte +96 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/utils/scss/mixins.scss +0 -46
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +104 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.svelte +23 -53
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/CalendarWeek.stories.svelte +38 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Customize/Customize.stories.svelte +32 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/NameTypes/NameTypes.stories.svelte +28 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Color/Color.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Customize/Customize.stories.svelte +68 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Events/Events.stories.svelte +24 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/CalendarMonthChip.stories.svelte +40 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Color/Color.stories.svelte +29 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Customize/Customize.stories.svelte +33 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Events/Events.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Roundness/Roundness.stories.svelte +26 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Size/Size.stories.svelte +19 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthList.stories.svelte +45 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Color/Color.stories.svelte +22 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Customize/Customize.stories.svelte +36 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Events/Events.stories.svelte +33 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Size/Size.stories.svelte +19 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/CalendarYearChip.stories.svelte +41 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Color/Color.stories.svelte +30 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Customize/Customize.stories.svelte +33 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Events/Events.stories.svelte +24 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Roundness/Roundness.stories.svelte +27 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearList.stories.svelte +39 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Color/Color.stories.svelte +23 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Customize/Customize.stories.svelte +36 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Events/Events.stories.svelte +24 -0
- package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Size/Size.stories.svelte +20 -0
- package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth/createDateOfMonth.ts +120 -0
- package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth/index.mdx +121 -0
- package/src/lib/stories/components/Info/Calendar/utils/{getDatesOfMonth.ts → getDatesOfMonth/getDatesOfMonth.ts} +30 -16
- package/src/lib/stories/components/Info/Calendar/utils/getDatesOfMonth/index.mdx +37 -0
- package/src/lib/stories/components/Info/Calendar/utils/types.ts +0 -5
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +30 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +56 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +48 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +29 -0
- package/src/lib/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +72 -0
- package/src/lib/stories/components/Layout/Menu/Menu.stories.svelte +69 -0
- package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +34 -0
- package/src/lib/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +21 -0
- package/src/lib/stories/components/Layout/Menu/Size/Size.stories.svelte +37 -0
- package/src/lib/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
- package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +50 -0
- package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +25 -0
- package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +24 -0
- package/src/lib/stories/components/Layout/Separator/Color/Color.stories.svelte +19 -0
- package/src/lib/stories/components/Layout/Separator/Separator.stories.svelte +30 -0
- package/src/lib/stories/developer tools/Intro.mdx +9 -0
- package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +53 -0
- package/src/lib/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +121 -0
- package/src/lib/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte +17 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +38 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +20 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +16 -0
- package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +47 -0
- package/src/lib/stories/developer tools/components/Popper/Popper.stories.svelte +140 -0
- package/src/lib/stories/developer tools/components/Popper/Popper.svelte +13 -14
- package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +64 -0
- package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +36 -10
- package/src/lib/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.ts +45 -31
- package/src/lib/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +92 -0
- package/src/lib/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +114 -0
- package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +25 -0
- package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +30 -0
- package/src/lib/stories/developer tools/directives/clickOutside/index.mdx +25 -0
- package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +20 -0
- package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +71 -0
- package/src/lib/stories/developer tools/helpers/Time/getMoment/getMoment.ts +11 -12
- package/src/lib/stories/developer tools/helpers/Time/getMoment/index.mdx +45 -0
- package/src/lib/stories/developer tools/helpers/logger/index.mdx +63 -0
- package/src/lib/stories/developer tools/philosophy/Colors/Colors.mdx +43 -0
- package/src/lib/stories/developer tools/philosophy/Colors/Colors.stories.svelte +22 -0
- package/src/lib/stories/developer tools/philosophy/Colors/Opacity.stories.svelte +11 -0
- package/src/lib/stories/developer tools/philosophy/Themes.mdx +23 -0
- package/dist/stories/components/Info/Calendar/utils/createDateOfMonth.d.ts +0 -28
- package/dist/stories/components/Info/Calendar/utils/createDateOfMonth.js +0 -87
- package/dist/stories/components/Info/Calendar/utils/getDatesOfMonth.d.ts +0 -10
- package/dist/stories/components/Info/Calendar/utils/index.mdx +0 -64
- package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth.ts +0 -160
|
@@ -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
|
+
/>
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import getMoment from '$lib/stories/developer tools/helpers/Time/getMoment/getMoment.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import {
|
|
3
|
+
calendarWeekOptions,
|
|
4
|
+
createDateOfMonth,
|
|
5
|
+
type CreateDatesOfMonthSettings,
|
|
6
|
+
type DateOfMonth,
|
|
7
|
+
} from '$lib/index.js';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Divides an array into chunks of a given size.
|
|
9
11
|
*
|
|
10
12
|
* @template T - The type of elements in the array.
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @returns
|
|
13
|
+
* @param arr - The array to be chunked.
|
|
14
|
+
* @param size - The chunk size.
|
|
15
|
+
* @returns An array of chunks.
|
|
14
16
|
*/
|
|
15
17
|
function chunkArray<T>(arr: T[], size: number): T[][] {
|
|
16
18
|
const result: T[][] = [];
|
|
@@ -20,6 +22,13 @@ function chunkArray<T>(arr: T[], size: number): T[][] {
|
|
|
20
22
|
return result;
|
|
21
23
|
}
|
|
22
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Creates a moment object from a Date with optional timezone and UTC settings.
|
|
27
|
+
*
|
|
28
|
+
* @param date - The date to convert.
|
|
29
|
+
* @param settings - Optional settings for timezone and UTC.
|
|
30
|
+
* @returns A moment object with the applied settings.
|
|
31
|
+
*/
|
|
23
32
|
function dateMoment(date?: Date, settings?: CreateDatesOfMonthSettings) {
|
|
24
33
|
return getMoment(date, undefined, {
|
|
25
34
|
timezone: settings?.timezone,
|
|
@@ -30,13 +39,18 @@ function dateMoment(date?: Date, settings?: CreateDatesOfMonthSettings) {
|
|
|
30
39
|
/**
|
|
31
40
|
* Generates a calendar grid of dates for a given month.
|
|
32
41
|
*
|
|
33
|
-
* @param
|
|
34
|
-
* @param
|
|
35
|
-
* @
|
|
42
|
+
* @param date - The base date for the month to generate.
|
|
43
|
+
* @param settings - Optional settings for formatting and display.
|
|
44
|
+
* @param manipulateDate - Optional function to modify each generated DateOfMonth.
|
|
45
|
+
* @returns A 2D array of DateOfMonth objects representing the calendar, or null if invalid.
|
|
36
46
|
*/
|
|
37
47
|
export default function getDatesOfMonth(
|
|
38
48
|
date?: Date,
|
|
39
49
|
settings?: CreateDatesOfMonthSettings,
|
|
50
|
+
manipulateDate?: (
|
|
51
|
+
dateToModify: DateOfMonth,
|
|
52
|
+
settings?: CreateDatesOfMonthSettings,
|
|
53
|
+
) => DateOfMonth,
|
|
40
54
|
): DateOfMonth[][] | null {
|
|
41
55
|
if (!date) {
|
|
42
56
|
return null;
|
|
@@ -54,6 +68,7 @@ export default function getDatesOfMonth(
|
|
|
54
68
|
const startOfWeek =
|
|
55
69
|
calendarWeekOptions.find((item) => item.abr3 === settings?.startOfWeek) ||
|
|
56
70
|
calendarWeekOptions[0];
|
|
71
|
+
|
|
57
72
|
const rawStartOfMonthDay = monthMoment.day();
|
|
58
73
|
const startOfMonthDay = (rawStartOfMonthDay - startOfWeek.value + 7) % 7;
|
|
59
74
|
|
|
@@ -66,15 +81,13 @@ export default function getDatesOfMonth(
|
|
|
66
81
|
if (showLastMonth) {
|
|
67
82
|
for (let gap = 0; gap < startOfMonthDay; gap++) {
|
|
68
83
|
const dayMoment = lastMonth.clone().add(gap, 'days');
|
|
69
|
-
|
|
70
|
-
dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'lastMonth'));
|
|
84
|
+
dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'lastMonth', manipulateDate));
|
|
71
85
|
}
|
|
72
86
|
}
|
|
73
87
|
|
|
74
88
|
for (let day = 1; day <= daysInMonth; day++) {
|
|
75
89
|
const dayMoment = monthMoment.clone().set('date', day);
|
|
76
|
-
|
|
77
|
-
dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'currentMonth'));
|
|
90
|
+
dates.push(createDateOfMonth(dayMoment.toDate(), settings, 'currentMonth', manipulateDate));
|
|
78
91
|
}
|
|
79
92
|
|
|
80
93
|
const datesDivided = chunkArray<DateOfMonth>(dates, 7);
|
|
@@ -88,8 +101,9 @@ export default function getDatesOfMonth(
|
|
|
88
101
|
|
|
89
102
|
for (let gap = 0; gap < nextMonthDaysRequired; gap++) {
|
|
90
103
|
const dayMoment = nextMonth.clone().add(gap, 'days');
|
|
91
|
-
|
|
92
|
-
|
|
104
|
+
nextMonthDates.push(
|
|
105
|
+
createDateOfMonth(dayMoment.toDate(), settings, 'nextMonth', manipulateDate),
|
|
106
|
+
);
|
|
93
107
|
}
|
|
94
108
|
|
|
95
109
|
datesDivided[datesDivided.length - 1] = [...lastRow, ...nextMonthDates];
|
|
@@ -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>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import type { StoryBookArgTypes } from '$lib/storybook-types.js';
|
|
4
|
+
import MenuItem, { menuItemTypeArray } from './MenuItem.svelte';
|
|
5
|
+
import { componentSizeArray } from '$lib/types/size.js';
|
|
6
|
+
|
|
7
|
+
export const storyMenuItemArgTypes: StoryBookArgTypes = {
|
|
8
|
+
type: {
|
|
9
|
+
control: { type: 'select' },
|
|
10
|
+
options: menuItemTypeArray,
|
|
11
|
+
},
|
|
12
|
+
size: {
|
|
13
|
+
control: { type: 'select' },
|
|
14
|
+
options: componentSizeArray,
|
|
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: MenuItem,
|
|
21
|
+
tags: ['autodocs'],
|
|
22
|
+
argTypes: storyMenuItemArgTypes,
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<!-- Default MenuItem -->
|
|
27
|
+
<Story name="Default">Menu Item</Story>
|
|
28
|
+
|
|
29
|
+
<!-- With Separator -->
|
|
30
|
+
<Story name="WithSeparator" args={{ separator: true }}>Menu Item</Story>
|
|
31
|
+
|
|
32
|
+
<Story name="Disabled" args={{ disabled: true }}>Menu Item</Story>
|
|
33
|
+
|
|
34
|
+
<Story name="Selected" args={{ selected: true }}>Menu Item</Story>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import MenuItem from '../MenuItem.svelte';
|
|
4
|
+
import { storyMenuItemArgTypes } from '../MenuItem.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: MenuItem,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: storyMenuItemArgTypes,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Story name="Normal">Menu Item</Story>
|
|
15
|
+
<Story name="Small" args={{ size: 'small' }}>Menu Item</Story>
|
|
16
|
+
<Story name="Large" args={{ size: 'large' }}>Menu Item</Story>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import MenuItem from '../MenuItem.svelte';
|
|
4
|
+
import { storyMenuItemArgTypes } from '../MenuItem.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: MenuItem,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: storyMenuItemArgTypes,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Story name="Text">Menu Item</Story>
|
|
15
|
+
<Story
|
|
16
|
+
name="Link"
|
|
17
|
+
args={{ type: 'link', href: 'https://www.w3schools.com/tags/tag_a.asp', target: '_blank' }}
|
|
18
|
+
>
|
|
19
|
+
Menu Item
|
|
20
|
+
</Story>
|
|
21
|
+
<Story name="Button" args={{ type: 'button', onclick: () => {} }}>Menu Item</Story>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Menu from '../Menu.svelte';
|
|
4
|
+
import { storyMenuArgTypes } from '../Menu.stories.svelte';
|
|
5
|
+
import MenuItem from '../MenuItem/MenuItem.svelte';
|
|
6
|
+
|
|
7
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
8
|
+
const { Story } = defineMeta({
|
|
9
|
+
component: Menu,
|
|
10
|
+
tags: ['autodocs'],
|
|
11
|
+
argTypes: storyMenuArgTypes,
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<Story name="Normal" asChild>
|
|
16
|
+
<Menu>
|
|
17
|
+
<MenuItem>Cut</MenuItem>
|
|
18
|
+
<MenuItem>Copy</MenuItem>
|
|
19
|
+
<MenuItem>Paste</MenuItem>
|
|
20
|
+
</Menu>
|
|
21
|
+
</Story>
|
|
22
|
+
|
|
23
|
+
<Story name="Small" asChild>
|
|
24
|
+
<Menu size="small">
|
|
25
|
+
<MenuItem>Cut</MenuItem>
|
|
26
|
+
<MenuItem>Copy</MenuItem>
|
|
27
|
+
<MenuItem>Paste</MenuItem>
|
|
28
|
+
</Menu>
|
|
29
|
+
</Story>
|
|
30
|
+
|
|
31
|
+
<Story name="Large" asChild>
|
|
32
|
+
<Menu size="large">
|
|
33
|
+
<MenuItem>Cut</MenuItem>
|
|
34
|
+
<MenuItem>Copy</MenuItem>
|
|
35
|
+
<MenuItem>Paste</MenuItem>
|
|
36
|
+
</Menu>
|
|
37
|
+
</Story>
|