react-timelane 0.0.4 → 0.0.6

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 (139) hide show
  1. package/.storybook/main.ts +11 -0
  2. package/.storybook/package.json +3 -0
  3. package/.storybook/preview.ts +14 -0
  4. package/LICENSE +21 -0
  5. package/README.md +5 -16
  6. package/dist/components/Timelane/Timelane.d.ts +38 -0
  7. package/dist/components/Timelane/Timelane.stories.d.ts +19 -0
  8. package/dist/components/TimelaneAllocation/TimelaneAllocation.d.ts +10 -0
  9. package/dist/components/{TimelaneAside.d.ts → TimelaneAside/TimelaneAside.d.ts} +2 -3
  10. package/dist/components/{TimelaneBackground.d.ts → TimelaneBackground/TimelaneBackground.d.ts} +1 -2
  11. package/dist/components/{TimelaneBody.d.ts → TimelaneBody/TimelaneBody.d.ts} +1 -2
  12. package/dist/components/{TimelaneBodyInner.d.ts → TimelaneBody/TimelaneBodyInner.d.ts} +1 -1
  13. package/dist/components/TimelaneHeader/DaysHeader.d.ts +1 -2
  14. package/dist/components/TimelaneHeader/MonthsHeader.d.ts +1 -2
  15. package/dist/components/TimelaneHeader/TimelaneHeader.d.ts +1 -2
  16. package/dist/components/TimelaneHeader/WeeksHeader.d.ts +1 -2
  17. package/dist/components/TimelaneHeader/index.d.ts +4 -4
  18. package/dist/components/TimelaneLane/TimelaneLane.d.ts +1 -2
  19. package/dist/components/TimelaneLane/TimelaneLane.stories.d.ts +9 -0
  20. package/dist/components/{TimelaneSettingsContext.d.ts → TimelaneSettingsProvider/TimelaneSettingsContext.d.ts} +1 -1
  21. package/dist/components/TimelaneSettingsProvider/TimelaneSettingsProvider.d.ts +11 -0
  22. package/dist/components/TimelaneSettingsProvider/TimelaneSettingsProvider.stories.d.ts +9 -0
  23. package/dist/hooks/useTimelaneContext.d.ts +1 -1
  24. package/dist/index.d.ts +7 -7
  25. package/dist/react-timelane.css +1 -1
  26. package/dist/react-timelane.js +3465 -3406
  27. package/dist/stories/FullExamplePage/FullExamplePage.d.ts +4 -0
  28. package/dist/stories/FullExamplePage/FullExamplePage.stories.d.ts +19 -0
  29. package/dist/stories/FullExamplePage/MyTimelane.d.ts +20 -0
  30. package/dist/stories/constants.d.ts +7 -0
  31. package/dist/stories/hooks/useLocalStorage.d.ts +2 -0
  32. package/dist/stories/models/Allocation.d.ts +11 -0
  33. package/dist/stories/models/AllocationId.d.ts +1 -0
  34. package/dist/stories/models/Resource.d.ts +7 -0
  35. package/dist/stories/models/ResourceId.d.ts +1 -0
  36. package/dist/types/EnableResizing.d.ts +6 -0
  37. package/dist/types/Pixels.d.ts +1 -1
  38. package/dist/types/TimelaneSettings.d.ts +4 -1
  39. package/dist/types/index.d.ts +1 -0
  40. package/eslint.config.js +21 -21
  41. package/package.json +11 -2
  42. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  43. package/storybook-static/assets/Color-AVL7NMMY-B90CyoR2.js +1 -0
  44. package/storybook-static/assets/DocsRenderer-PQXLIZUC-Bq83urOe.js +2 -0
  45. package/storybook-static/assets/FullExamplePage-DfmTY2HY.css +1 -0
  46. package/storybook-static/assets/FullExamplePage.stories-2F7rFo1o.js +18 -0
  47. package/storybook-static/assets/Timelane-Dz9QoO0k.css +1 -0
  48. package/storybook-static/assets/Timelane-S9mAxniK.js +177 -0
  49. package/storybook-static/assets/Timelane.stories-eJTFFqOc.js +15 -0
  50. package/storybook-static/assets/TimelaneLane.stories-D-gkVkkl.js +37 -0
  51. package/storybook-static/assets/TimelaneSettingsProvider.stories-Ca_yRNCX.js +28 -0
  52. package/storybook-static/assets/blocks-Cs-T3qmo.js +658 -0
  53. package/storybook-static/assets/iframe-CoOaxin5.js +1124 -0
  54. package/storybook-static/assets/index-BFqcmZp8.js +9 -0
  55. package/storybook-static/assets/index-CKqcs_aQ.js +9 -0
  56. package/storybook-static/assets/index-Dn1Kba0m.js +1 -0
  57. package/storybook-static/assets/react-18-CSTqcdyU.js +25 -0
  58. package/storybook-static/components/Timelane/Timelane.d.ts +38 -0
  59. package/storybook-static/components/Timelane/Timelane.stories.d.ts +19 -0
  60. package/storybook-static/components/TimelaneAllocation/TimelaneAllocation.d.ts +10 -0
  61. package/storybook-static/components/TimelaneAside/TimelaneAside.d.ts +12 -0
  62. package/storybook-static/components/TimelaneBackground/TimelaneBackground.d.ts +4 -0
  63. package/storybook-static/components/TimelaneBody/TimelaneBody.d.ts +5 -0
  64. package/storybook-static/components/TimelaneBody/TimelaneBodyInner.d.ts +16 -0
  65. package/storybook-static/components/TimelaneBody/TimelaneSelectionLayer.d.ts +6 -0
  66. package/storybook-static/components/TimelaneHeader/DaysHeader.d.ts +14 -0
  67. package/storybook-static/components/TimelaneHeader/MonthsHeader.d.ts +14 -0
  68. package/storybook-static/components/TimelaneHeader/TimelaneHeader.d.ts +23 -0
  69. package/storybook-static/components/TimelaneHeader/WeeksHeader.d.ts +14 -0
  70. package/storybook-static/components/TimelaneHeader/index.d.ts +5 -0
  71. package/storybook-static/components/TimelaneHeader/renderingUtils.d.ts +4 -0
  72. package/storybook-static/components/TimelaneItem/DragResizeComponent.d.ts +20 -0
  73. package/storybook-static/components/TimelaneItem/TimelaneItem.d.ts +14 -0
  74. package/storybook-static/components/TimelaneLane/AvailableSpaceIndicator.d.ts +21 -0
  75. package/storybook-static/components/TimelaneLane/DropPreview.d.ts +9 -0
  76. package/storybook-static/components/TimelaneLane/DropTarget.d.ts +11 -0
  77. package/storybook-static/components/TimelaneLane/OverlapIndicator.d.ts +6 -0
  78. package/storybook-static/components/TimelaneLane/TimelaneLane.d.ts +15 -0
  79. package/storybook-static/components/TimelaneLane/TimelaneLane.stories.d.ts +9 -0
  80. package/storybook-static/components/TimelaneLayout/TimelaneLayout.d.ts +23 -0
  81. package/storybook-static/components/TimelaneSettingsProvider/TimelaneSettingsContext.d.ts +7 -0
  82. package/storybook-static/components/TimelaneSettingsProvider/TimelaneSettingsProvider.d.ts +11 -0
  83. package/storybook-static/components/TimelaneSettingsProvider/TimelaneSettingsProvider.stories.d.ts +9 -0
  84. package/storybook-static/components/utils.d.ts +27 -0
  85. package/storybook-static/favicon.svg +1 -0
  86. package/storybook-static/hooks/useScroll.d.ts +10 -0
  87. package/storybook-static/hooks/useTimelaneContext.d.ts +1 -0
  88. package/storybook-static/iframe.html +685 -0
  89. package/storybook-static/index.d.ts +12 -0
  90. package/storybook-static/index.html +152 -0
  91. package/storybook-static/index.json +1 -0
  92. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  93. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  94. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  95. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  96. package/storybook-static/project.json +1 -0
  97. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +356 -0
  98. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js.LEGAL.txt +40 -0
  99. package/storybook-static/sb-addons/docs-2/manager-bundle.js +151 -0
  100. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +188 -0
  101. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  102. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  103. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  104. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  105. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  106. package/storybook-static/sb-manager/globals-module-info.js +797 -0
  107. package/storybook-static/sb-manager/globals-runtime.js +72136 -0
  108. package/storybook-static/sb-manager/globals.js +34 -0
  109. package/storybook-static/sb-manager/runtime.js +13002 -0
  110. package/storybook-static/stories/FullExamplePage/FullExamplePage.d.ts +4 -0
  111. package/storybook-static/stories/FullExamplePage/FullExamplePage.stories.d.ts +19 -0
  112. package/storybook-static/stories/FullExamplePage/MyTimelane.d.ts +20 -0
  113. package/storybook-static/stories/constants.d.ts +7 -0
  114. package/storybook-static/stories/hooks/useLocalStorage.d.ts +2 -0
  115. package/storybook-static/stories/models/Allocation.d.ts +11 -0
  116. package/storybook-static/stories/models/AllocationId.d.ts +1 -0
  117. package/storybook-static/stories/models/Resource.d.ts +7 -0
  118. package/storybook-static/stories/models/ResourceId.d.ts +1 -0
  119. package/storybook-static/types/AvailableSpace.d.ts +6 -0
  120. package/storybook-static/types/DateBounds.d.ts +4 -0
  121. package/storybook-static/types/Dimensions.d.ts +4 -0
  122. package/storybook-static/types/EnableResizing.d.ts +6 -0
  123. package/storybook-static/types/GrabInfo.d.ts +5 -0
  124. package/storybook-static/types/Grid.d.ts +6 -0
  125. package/storybook-static/types/Item.d.ts +12 -0
  126. package/storybook-static/types/ItemId.d.ts +1 -0
  127. package/storybook-static/types/Lane.d.ts +5 -0
  128. package/storybook-static/types/LaneId.d.ts +1 -0
  129. package/storybook-static/types/OffsetBounds.d.ts +4 -0
  130. package/storybook-static/types/Pixels.d.ts +4 -0
  131. package/storybook-static/types/Position.d.ts +4 -0
  132. package/storybook-static/types/Rectangle.d.ts +6 -0
  133. package/storybook-static/types/TimeRange.d.ts +4 -0
  134. package/storybook-static/types/TimelaneSettings.d.ts +14 -0
  135. package/storybook-static/types/index.d.ts +16 -0
  136. package/dist/components/Timelane.d.ts +0 -17
  137. package/dist/components/TimelaneSettingsProvider.d.ts +0 -7
  138. package/dist/components/TimelaneWrapper.d.ts +0 -20
  139. /package/dist/components/{TimelaneSelectionLayer.d.ts → TimelaneBody/TimelaneSelectionLayer.d.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ import { Lane } from '../../types';
3
+ export interface TimelaneAsideProps {
4
+ lanes: Lane[];
5
+ focusedLane?: Lane | null;
6
+ setFocusedLane?: (lane: Lane | null) => void;
7
+ onLaneHeaderClick?: (lane: Lane, e: MouseEvent) => void;
8
+ onLaneHeaderDoubleClick?: (lane: Lane, e: MouseEvent) => void;
9
+ onLaneHeaderContextMenu?: (lane: Lane, e: MouseEvent) => void;
10
+ renderLaneHeader?: (lane: Lane) => ReactElement;
11
+ }
12
+ export declare function TimelaneAside({ lanes, focusedLane, setFocusedLane, onLaneHeaderClick, onLaneHeaderDoubleClick, onLaneHeaderContextMenu, renderLaneHeader, }: TimelaneAsideProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface TimelaneBackgroundProps {
2
+ focusedDay?: Date | null;
3
+ }
4
+ export declare function TimelaneBackground({ focusedDay }: TimelaneBackgroundProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ export interface TimelaneBodyProps {
3
+ onSelect?: (selection: number[]) => void;
4
+ }
5
+ export declare function TimelaneBody({ onSelect, children, }: PropsWithChildren<TimelaneBodyProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ import { AvailableSpace, Item, Lane } from '../../types';
3
+ interface TimelaneBodyInnerProps<T> {
4
+ lanes: Lane[];
5
+ items: Item<T>[];
6
+ renderItem?: (item: Item<T>, isDragged: boolean) => ReactElement;
7
+ onItemUpdate?: (item: Item<T>) => void;
8
+ onLaneClick?: (lane: Lane, when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
9
+ onLaneDoubleClick?: (lane: Lane, when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
10
+ onLaneContextMenu?: (lane: Lane, when: Date, e: MouseEvent) => void;
11
+ }
12
+ /**
13
+ * @deprecated The component should not be used
14
+ */
15
+ export declare function TimelaneBodyInner<T>({ lanes, items, renderItem, onItemUpdate, onLaneClick, onLaneDoubleClick, onLaneContextMenu, }: TimelaneBodyInnerProps<T>): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ interface TimelaneSelectionLayerProps {
3
+ onSelect: (selection: number[]) => void;
4
+ }
5
+ export declare function TimelaneSelectionLayer({ children, onSelect, }: PropsWithChildren<TimelaneSelectionLayerProps>): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,14 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ import { Pixels, TimeRange } from '../../types';
3
+ export interface DaysHeaderProps {
4
+ range: TimeRange;
5
+ pixels: Pixels;
6
+ focusedDay?: Date | null;
7
+ setFocusedDay?: (day: Date | null) => void;
8
+ render?: (day: Date) => ReactElement;
9
+ onDayClick?: (_: {
10
+ day: Date;
11
+ e: MouseEvent;
12
+ }) => void;
13
+ }
14
+ export declare function DaysHeader({ range, pixels, focusedDay, setFocusedDay, render, onDayClick, }: DaysHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ import { Pixels, TimeRange } from '../../types';
3
+ export interface MonthsHeaderProps {
4
+ range: TimeRange;
5
+ pixels: Pixels;
6
+ setFocusedDay?: (day: Date | null) => void;
7
+ render?: (firstDay: Date, lastDay: Date) => ReactElement;
8
+ onMonthClick?: (params: {
9
+ firstDay: Date;
10
+ lastDay: Date;
11
+ e: MouseEvent;
12
+ }) => void;
13
+ }
14
+ export declare function MonthsHeader({ range, pixels, setFocusedDay, render, onMonthClick, }: MonthsHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ export interface TimelaneHeaderProps {
3
+ focusedDay?: Date | null;
4
+ setFocusedDay?: (day: Date | null) => void;
5
+ renderMonthHeader?: (firstDay: Date, lastDay: Date) => ReactElement;
6
+ renderWeekHeader?: (firstDay: Date, lastDay: Date) => ReactElement;
7
+ renderDayHeader?: (day: Date) => ReactElement;
8
+ onMonthClick?: (_: {
9
+ firstDay: Date;
10
+ lastDay: Date;
11
+ e: MouseEvent;
12
+ }) => void;
13
+ onWeekClick?: (_: {
14
+ firstDay: Date;
15
+ lastDay: Date;
16
+ e: MouseEvent;
17
+ }) => void;
18
+ onDayClick?: (_: {
19
+ day: Date;
20
+ e: MouseEvent;
21
+ }) => void;
22
+ }
23
+ export declare function TimelaneHeader({ focusedDay, setFocusedDay, renderMonthHeader, renderWeekHeader, renderDayHeader, onMonthClick, onDayClick, onWeekClick, }: TimelaneHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ import { Pixels, TimeRange } from '../../types';
3
+ export interface WeeksHeaderProps {
4
+ range: TimeRange;
5
+ pixels: Pixels;
6
+ setFocusedDay?: (day: Date | null) => void;
7
+ render?: (firstDay: Date, lastDay: Date) => ReactElement;
8
+ onWeekClick?: (params: {
9
+ firstDay: Date;
10
+ lastDay: Date;
11
+ e: MouseEvent;
12
+ }) => void;
13
+ }
14
+ export declare function WeeksHeader({ range, pixels, setFocusedDay, render, onWeekClick, }: WeeksHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export { DaysHeader, type DaysHeaderProps } from './DaysHeader';
2
+ export { WeeksHeader, type WeeksHeaderProps } from './WeeksHeader';
3
+ export { MonthsHeader, type MonthsHeaderProps } from './MonthsHeader';
4
+ export { TimelaneHeader, type TimelaneHeaderProps } from './TimelaneHeader';
5
+ export { renderDayHeader, renderMonthHeader, renderWeekHeader, } from './renderingUtils';
@@ -0,0 +1,4 @@
1
+ import { ReactElement } from '../../../node_modules/react';
2
+ export declare function renderMonthHeader(firstDay: Date, lastDay: Date): ReactElement;
3
+ export declare function renderWeekHeader(firstDay: Date, lastDay: Date): ReactElement;
4
+ export declare function renderDayHeader(day: Date): ReactElement;
@@ -0,0 +1,20 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ import { Position, Rectangle, Dimensions, Item } from '../../types';
3
+ interface DragResizeComponentProps<T> {
4
+ item: Item<T>;
5
+ rectangle: Rectangle;
6
+ boundingRectangle: Dimensions;
7
+ onDragStart: (grabPosition: Position, relativeGrabPosition: Position) => void;
8
+ onDrag: () => void;
9
+ onDrop: () => void;
10
+ onUpdate: (rectangle: Rectangle) => void;
11
+ onResizeStart: () => void;
12
+ }
13
+ /**
14
+ * takes care of pixel-level drag-and-drop and resizing.
15
+ * will emit every event through event handlers.
16
+ * @param param0 t
17
+ * @returns
18
+ */
19
+ export default function DragResizeComponent<T>({ item, rectangle, boundingRectangle, children, onDrag, onDragStart, onDrop, onUpdate, onResizeStart, }: PropsWithChildren<DragResizeComponentProps<T>>): import("react/jsx-runtime").JSX.Element;
20
+ export {};
@@ -0,0 +1,14 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ import { Item, Position, Lane, TimelaneSettings } from '../../types';
3
+ interface TimelaneItemProps<T> {
4
+ item: Item<T>;
5
+ lane: Lane;
6
+ settings: TimelaneSettings;
7
+ onDragStart: (grabPosition: Position, relativeGrabPosition: Position) => void;
8
+ onDrop: () => void;
9
+ onDrag: () => void;
10
+ onUpdate: (updatedItem: Item<T>) => void;
11
+ onResizeStart: () => void;
12
+ }
13
+ export default function TimelaneItem<T>({ lane, item, settings, children, onDragStart, onDrag, onDrop, onUpdate, onResizeStart, }: PropsWithChildren<TimelaneItemProps<T>>): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,21 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ import { Item, Pixels, Lane, TimeRange } from '../../types';
3
+ interface AvailableSpaceIndicatorProps<T> {
4
+ pixels: Pixels;
5
+ range: TimeRange;
6
+ lane: Lane;
7
+ debug: boolean;
8
+ items: Item<T>[];
9
+ }
10
+ /**
11
+ * A component that displays the available space at the mouse cursor position.
12
+ * The available space is a rectangle that does not overlap with it's surrounding items.
13
+ * It is determined by some heuristics.
14
+ *
15
+ * Only used for debugging purposes.
16
+ *
17
+ * @param param0
18
+ * @returns
19
+ */
20
+ export default function AvailableSpaceIndicator<T>({ pixels, range, lane, items, debug, children, }: PropsWithChildren<AvailableSpaceIndicatorProps<T>>): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ interface DropPreviewProps {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export default function DropPreview({ x, y, width, height, children, }: PropsWithChildren<DropPreviewProps>): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,11 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ import { GrabInfo, Position } from '../../types';
3
+ interface DropTargetProps {
4
+ onDragStart?: (mousePos: Position, grabInfo: GrabInfo, data: any) => void;
5
+ onDrag?: (mousePos: Position, grabInfo: GrabInfo, data: any) => void;
6
+ onDrop?: (mousePos: Position, grabInfo: GrabInfo, data: any) => void;
7
+ onDragEnter?: (mousePos: Position, grabInfo: GrabInfo, data: any) => void;
8
+ onDragLeave?: (grabInfo: GrabInfo, data: any) => void;
9
+ }
10
+ export default function DropTarget({ children, onDragStart, onDrag, onDrop, onDragEnter, onDragLeave, }: PropsWithChildren<DropTargetProps>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Rectangle } from '../../types';
2
+ interface OverlapIndicatorProps {
3
+ overlap: Rectangle;
4
+ }
5
+ export default function OverlapIndicator({ overlap }: OverlapIndicatorProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { MouseEvent, ReactElement } from '../../../node_modules/react';
2
+ import { AvailableSpace, Item, Lane } from '../../types';
3
+ export interface TimelaneLaneProps<T> {
4
+ lane: Lane;
5
+ items: Item<T>[];
6
+ focused?: boolean;
7
+ onItemUpdate?: (item: Item<T>) => void;
8
+ onMouseUp?: (e: MouseEvent) => void;
9
+ onClick?: (when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
10
+ onDoubleClick?: (when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
11
+ onContextMenu?: (when: Date, e: MouseEvent) => void;
12
+ renderItem?: (item: Item<T>, isDragged: boolean) => ReactElement;
13
+ onResizeStart?: (data: T) => void;
14
+ }
15
+ export declare function TimelaneLane<T>({ lane, items, focused, onItemUpdate, onMouseUp, onClick, onDoubleClick, onContextMenu, renderItem, onResizeStart, }: TimelaneLaneProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ import { TimelaneLane } from '../TimelaneLane/TimelaneLane';
3
+ declare const meta: {
4
+ component: typeof TimelaneLane;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const Primary: Story;
@@ -0,0 +1,23 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ export declare function TimelaneLayout({ children }: PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace TimelaneLayout {
4
+ var Header: typeof TimelaneLayoutHeader;
5
+ var Body: typeof TimelaneLayoutBody;
6
+ var Background: typeof TimelaneLayoutBackground;
7
+ var Footer: typeof TimelaneLayoutFooter;
8
+ var Aside: typeof TimelaneLayoutAside;
9
+ var Corner: typeof TimelaneLayoutCorner;
10
+ }
11
+ declare function TimelaneLayoutHeader({ children }: PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
12
+ declare function TimelaneLayoutBackground({ children }: PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
13
+ declare function TimelaneLayoutBody({ children }: PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
14
+ declare function TimelaneLayoutFooter({ children }: PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
15
+ interface TimelaneLayoutAsideProps {
16
+ side?: "left" | "right";
17
+ }
18
+ declare function TimelaneLayoutAside({ side, children, }: PropsWithChildren<TimelaneLayoutAsideProps>): import("react/jsx-runtime").JSX.Element;
19
+ interface TimelaneLayoutCornerProps {
20
+ corner?: "top left" | "top right" | "bottom left" | "bottom right";
21
+ }
22
+ declare function TimelaneLayoutCorner({ corner, children, }: PropsWithChildren<TimelaneLayoutCornerProps>): import("react/jsx-runtime").JSX.Element;
23
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Dispatch, SetStateAction } from '../../../node_modules/react';
2
+ import { TimelaneSettings } from '../../types';
3
+ export interface TimelaneContextOuter {
4
+ settings: TimelaneSettings;
5
+ setSettings: Dispatch<SetStateAction<TimelaneSettings>>;
6
+ }
7
+ export declare const TimelaneSettingsContext: import('../../../node_modules/react').Context<TimelaneContextOuter>;
@@ -0,0 +1,11 @@
1
+ import { PropsWithChildren } from '../../../node_modules/react';
2
+ import { TimelaneSettings } from '../../types/TimelaneSettings';
3
+ export interface TimelaneSettingsProviderProps {
4
+ settings: TimelaneSettings;
5
+ }
6
+ /**
7
+ * this is an example docstring
8
+ * @param param0
9
+ * @returns
10
+ */
11
+ export declare function TimelaneSettingsProvider({ settings: _settings, children, }: PropsWithChildren<TimelaneSettingsProviderProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { StoryObj } from '@storybook/react-vite';
2
+ import { TimelaneSettingsProvider } from './TimelaneSettingsProvider';
3
+ declare const meta: {
4
+ component: typeof TimelaneSettingsProvider;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const Primary: Story;
@@ -0,0 +1,27 @@
1
+ import { DragLocationHistory, ElementDragPayload } from '@atlaskit/pragmatic-drag-and-drop/dist/types/internal-types';
2
+ import { Item, Dimensions, Pixels, Position, Rectangle, Lane, TimeRange, AvailableSpace, GrabInfo, Grid } from '../types';
3
+ export declare function getDropTargetDimensions(lane: Lane, pixels: Pixels, range: TimeRange): Dimensions;
4
+ export declare function getDropTargetHeight(lane: Lane, pixels: Pixels): number;
5
+ export declare function getDropTargetWidth(lane: Lane, pixels: Pixels, range: TimeRange): number;
6
+ export declare function getItemRectangle<T>(item: Item<T>, lane: Lane, range: TimeRange, pixels: Pixels): Rectangle;
7
+ export declare function getItemDimensions<T>(item: Item<T>, lane: Lane, pixels: Pixels): Dimensions;
8
+ export declare function dateToPixel(date: Date, start: Date, pixels: Pixels): number;
9
+ export declare function offsetToPixel(offset: number, capacity: number, pixels: Pixels): number;
10
+ export declare function getItemPosition<T>(item: Item<T>, lane: Lane, start: Date, pixels: Pixels): Position;
11
+ export declare function getGrabPosition(source: ElementDragPayload, location: DragLocationHistory): {
12
+ absolute: Position;
13
+ relative: Position;
14
+ };
15
+ export declare function getUpdatedItem<T>(oldItem: Item<T>, lane: Lane, dropPreviewRect: Rectangle, pixels: Pixels, range: TimeRange): Item<T>;
16
+ export declare function getDropPreviewRectangle<S, T>(lane: Lane, items: Item<T>[], item: Item<S>, mousePosition: Position | null, grabInfo: GrabInfo, pixels: Pixels, grid: Grid, range: TimeRange, allowOverlaps: boolean): Rectangle | null;
17
+ /**
18
+ * Returns true if two rectangles (l1, r1) and (l2, r2) overlap
19
+ * @param a
20
+ * @param b
21
+ * @returns
22
+ */
23
+ export declare function doOverlap(a: Rectangle, b: Rectangle): boolean;
24
+ export declare function getOverlap(a: Rectangle, b: Rectangle): Rectangle | null;
25
+ export declare function itemsDoOverlap<T>(a: Item<T>, b: Item<T>): boolean;
26
+ export declare function isWithinTargetDimensions(item: Rectangle, targetDimensions: Dimensions): boolean;
27
+ export declare function getAvailableSpace<T>(clickedDate: Date, clickedOffset: number, lane: Lane, items: Item<T>[], range: TimeRange): AvailableSpace | null;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:svgjs="http://svgjs.com/svgjs" xmlns:xlink="http://www.w3.org/1999/xlink" width="164" height="164" version="1.1"><svg xmlns="http://www.w3.org/2000/svg" width="164" height="164" fill="none" viewBox="0 0 164 164"><path fill="#FF4785" d="M22.467 147.762 17.5 15.402a8.062 8.062 0 0 1 7.553-8.35L137.637.016a8.061 8.061 0 0 1 8.565 8.047v144.23a8.063 8.063 0 0 1-8.424 8.054l-107.615-4.833a8.062 8.062 0 0 1-7.695-7.752Z"/><path fill="#fff" fill-rule="evenodd" d="m128.785.57-15.495.968-.755 18.172a1.203 1.203 0 0 0 1.928 1.008l7.06-5.354 5.962 4.697a1.202 1.202 0 0 0 1.946-.987L128.785.569Zm-12.059 60.856c-2.836 2.203-23.965 3.707-23.965.57.447-11.969-4.912-12.494-7.889-12.494-2.828 0-7.59.855-7.59 7.267 0 6.534 6.96 10.223 15.13 14.553 11.607 6.15 25.654 13.594 25.654 32.326 0 17.953-14.588 27.871-33.194 27.871-19.201 0-35.981-7.769-34.086-34.702.744-3.163 25.156-2.411 25.156 0-.298 11.114 2.232 14.383 8.633 14.383 4.912 0 7.144-2.708 7.144-7.267 0-6.9-7.252-10.973-15.595-15.657C64.827 81.933 51.53 74.468 51.53 57.34c0-17.098 11.76-28.497 32.747-28.497 20.988 0 32.449 11.224 32.449 32.584Z" clip-rule="evenodd"/></svg><style>@media (prefers-color-scheme:light){:root{filter:none}}</style></svg>
@@ -0,0 +1,10 @@
1
+ import { ItemId, LaneId } from '../types';
2
+ export declare const useScroll: () => {
3
+ scrollTo: (destination: {
4
+ horz?: Date;
5
+ vert?: LaneId;
6
+ } | ItemId) => void;
7
+ scrollToDate: (date: Date) => void;
8
+ scrollToItem: (itemId: ItemId) => void;
9
+ scrollToLane: (laneId: LaneId) => void;
10
+ };
@@ -0,0 +1 @@
1
+ export declare const useTimelaneContext: () => import('../components/TimelaneSettingsProvider/TimelaneSettingsContext').TimelaneContextOuter;