@galaxy-ds/core 2.0.5 → 2.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.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galaxy-ds/core",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "types": "dist/index.d.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galaxy-ds/core",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
2
2
  import DatePicker from './DatePicker';
3
- import DatePickerExample from './support/DatePickerExample.js';
3
+ import DatePickerExample from './support/DatePickerExample';
4
4
 
5
5
  <Meta title="Form Elements/Calendars/DatePicker" component={DatePicker} />
6
6
 
@@ -12,15 +12,16 @@ import DatePickerExample from './support/DatePickerExample.js';
12
12
  docs: {
13
13
  source: {
14
14
  code: `
15
- function DatePickerExample() {
16
- const [date, setDate] = useState(null);
17
- return (
18
- <DatePicker
19
- onChange={(item) => setDate(item)}
20
- date={date}
21
- ></DatePicker>
22
- );
23
- }
15
+ import React, { useState } from 'react';
16
+ import { DatePicker } from '@galaxy-ds/core';
17
+ const DatePickerExample: React.FC = () => {
18
+ const [date, setDate] = useState<Date>(new Date());
19
+ const handleChange = (item: Date) => {
20
+ console.log(item);
21
+ setDate(item);
22
+ };
23
+ return <DatePicker onChange={handleChange} date={date}></DatePicker>;
24
+ };
24
25
  `
25
26
  }
26
27
  }
@@ -0,0 +1,14 @@
1
+ import React, { useState } from 'react';
2
+ import { DatePicker } from '../';
3
+
4
+ const DatePickerExample: React.FC = () => {
5
+ const [date, setDate] = useState<Date>(new Date());
6
+ const handleChange = (item: Date) => {
7
+ console.log(item);
8
+ setDate(item);
9
+ };
10
+
11
+ return <DatePicker onChange={handleChange} date={date} />;
12
+ };
13
+
14
+ export default DatePickerExample;
@@ -1,6 +1,6 @@
1
1
  import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs';
2
2
  import DateRangePicker from './DateRangePicker';
3
- import DateRangePickerExample from './support/DateRangePickerExample.js';
3
+ import DateRangePickerExample from './support/DateRangePickerExample';
4
4
 
5
5
  <Meta title="Form Elements/Calendars/DateRangePicker" component={DateRangePicker} />
6
6
 
@@ -16,22 +16,28 @@ Date range picker with default 2 months side by side.
16
16
  code: `
17
17
  import React, { useState } from 'react';
18
18
  import { DateRangePicker } from '@galaxy-ds/core';
19
- function DateRangePickerExample({months}) {
20
- const [state, setState] = useState([
19
+ import type { DateRangePickerProps, Range, RangeKeyDict } from '@galaxy-ds/core';
20
+ const DateRangePickerExample: React.FC<DateRangePickerProps> = () => {
21
+ const [selectionRange, setSelectionRange] = useState<Range>(
21
22
  {
22
23
  startDate: new Date(),
24
+ endDate: new Date(),
23
25
  key: 'selection',
24
26
  },
25
- ]);
27
+ );
28
+ const handleSelect = (ranges: RangeKeyDict) => {
29
+ console.table(ranges);
30
+ setSelectionRange(ranges['selection'])
31
+ }
26
32
  return (
27
33
  <DateRangePicker
28
- onChange={(item) => setState([item.selection])}
29
- ranges={state}
34
+ onChange={handleSelect}
35
+ ranges={[selectionRange]}
30
36
  months={2}
31
37
  dateDisplayFormat='dd MMMM yyyy'
32
- ></DateRangePicker>
38
+ />
33
39
  );
34
- }
40
+ };
35
41
  `
36
42
  }
37
43
  }
@@ -69,24 +75,30 @@ Show just a single month with `months={1}`.
69
75
  docs: {
70
76
  source: {
71
77
  code: `
72
- import React, {useState} from 'react';
78
+ import React, { useState } from 'react';
73
79
  import { DateRangePicker } from '@galaxy-ds/core';
74
- function DateRangePickerExample({months}) {
75
- const [state, setState] = useState([
80
+ import type { DateRangePickerProps, Range, RangeKeyDict } from '@galaxy-ds/core';
81
+ const DateRangePickerExample: React.FC<DateRangePickerProps> = () => {
82
+ const [selectionRange, setSelectionRange] = useState<Range>(
76
83
  {
77
84
  startDate: new Date(),
85
+ endDate: new Date(),
78
86
  key: 'selection',
79
87
  },
80
- ]);
88
+ );
89
+ const handleSelect = (ranges: RangeKeyDict) => {
90
+ console.table(ranges);
91
+ setSelectionRange(ranges['selection'])
92
+ }
81
93
  return (
82
94
  <DateRangePicker
83
- onChange={(item) => setState([item.selection])}
84
- ranges={state}
95
+ onChange={handleSelect}
96
+ ranges={[selectionRange]}
85
97
  months={1}
86
98
  dateDisplayFormat='dd MMMM yyyy'
87
- ></DateRangePicker>
99
+ />
88
100
  );
89
- }
101
+ };
90
102
  `
91
103
  }
92
104
  }
@@ -3,5 +3,10 @@ import { render } from '@testing-library/react';
3
3
  import DateRangePicker from './DateRangePicker';
4
4
 
5
5
  test('DateRangePicker', () => {
6
- render(<DateRangePicker />);
6
+ const ranges = {
7
+ startDate: new Date(),
8
+ endDate: new Date(),
9
+ key: 'selection',
10
+ };
11
+ render(<DateRangePicker ranges={[ranges]} />);
7
12
  });
@@ -1,3 +1,13 @@
1
- import { DateRangePickerProps as ReactDateRangePickerProps } from 'react-date-range';
1
+ import type {
2
+ DateRangePickerProps as ReactDateRangePickerProps,
3
+ Range,
4
+ RangeFocus,
5
+ RangeKeyDict,
6
+ Preview,
7
+ StaticRange,
8
+ InputRange,
9
+ } from 'react-date-range';
2
10
 
3
11
  export interface DateRangePickerProps extends ReactDateRangePickerProps {}
12
+
13
+ export { Range, RangeFocus, RangeKeyDict, Preview, StaticRange, InputRange };
@@ -0,0 +1,31 @@
1
+ import React, { useState } from 'react';
2
+ import { DateRangePicker } from '../';
3
+ import type {
4
+ DateRangePickerProps,
5
+ Range,
6
+ RangeKeyDict,
7
+ } from '../DateRangePicker.types';
8
+
9
+ const DateRangePickerExample: React.FC<DateRangePickerProps> = ({ months }) => {
10
+ const [selectionRange, setSelectionRange] = useState<Range>({
11
+ startDate: new Date(),
12
+ endDate: new Date(),
13
+ key: 'selection',
14
+ });
15
+
16
+ const handleSelect = (ranges: RangeKeyDict) => {
17
+ console.table(ranges);
18
+ setSelectionRange(ranges['selection']);
19
+ };
20
+
21
+ return (
22
+ <DateRangePicker
23
+ onChange={handleSelect}
24
+ ranges={[selectionRange]}
25
+ months={months}
26
+ dateDisplayFormat="dd MMMM yyyy"
27
+ />
28
+ );
29
+ };
30
+
31
+ export default DateRangePickerExample;
@@ -1,6 +1,12 @@
1
- import { ArgsTable, Canvas, Meta, Story } from "@storybook/addon-docs"
2
- import { NewEntryRibbonIcon, MatterFolderRibbonIcon } from "../Icons/leap";
3
- import { RibbonButton } from "./RibbonButton"
1
+ import { ArgsTable, Canvas, Meta, Story } from "@storybook/addon-docs";
2
+ import {
3
+ NewEntryRibbonIcon,
4
+ CalendarRibbonIcon,
5
+ DeleteRibbonIcon,
6
+ MatterFolderRibbonIcon
7
+ } from "../Icons/leap";
8
+ import { Divider } from "../Divider";
9
+ import { RibbonButton } from "./RibbonButton";
4
10
 
5
11
  <Meta title="components/Buttons/RibbonButton" component={RibbonButton} />
6
12
 
@@ -36,4 +42,22 @@ import { RibbonButton } from "./RibbonButton"
36
42
  </Story>
37
43
  </Canvas>
38
44
 
45
+ <Canvas withToolbar>
46
+ <Story
47
+ name="Toolbar"
48
+ >
49
+ {() => (
50
+ <div style={{ display: 'flex', alignItems: 'center' }}>
51
+ <RibbonButton icon={<NewEntryRibbonIcon />} label="New Entry" isWrapped />
52
+ <Divider orientation="vertical" sx={{ '&.MuiDivider-root': { height: '70px' }}} />
53
+ <RibbonButton icon={<CalendarRibbonIcon />} label="11th October" isWrapped />
54
+ <Divider orientation="vertical" sx={{ '&.MuiDivider-root': { height: '70px' }}} />
55
+ <RibbonButton icon={<DeleteRibbonIcon />} label="Delete" />
56
+ <Divider orientation="vertical" sx={{ '&.MuiDivider-root': { height: '70px' }}} />
57
+ <RibbonButton icon={<MatterFolderRibbonIcon />} label="Open Matter" isWrapped />
58
+ </div>
59
+ )}
60
+ </Story>
61
+ </Canvas>
62
+
39
63
  <ArgsTable story="Default" />
@@ -49,12 +49,11 @@ export const RibbonLabelStyled = styled(Typography)({
49
49
  export const RibbonContentStyled = styled('div', {
50
50
  shouldForwardProp: (prop) => prop !== 'isWrapped',
51
51
  })<{ isWrapped?: boolean }>(({ isWrapped }) => ({
52
+ display: 'flex',
53
+ flexDirection: 'column',
54
+ alignItems: 'center',
55
+ height: '100%',
52
56
  ...(isWrapped && {
53
- height: '80px',
54
57
  width: '54px',
55
- p: {
56
- position: 'relative',
57
- bottom: '8px',
58
- },
59
58
  }),
60
59
  }));
@@ -8,8 +8,9 @@ import { RibbonButtonProps, RibbonButtonRef } from './RibbonButton.types';
8
8
 
9
9
  export const RibbonButton = forwardRef<RibbonButtonRef, RibbonButtonProps>(
10
10
  function RibbonMenuListButton(props, ref) {
11
+ const { isWrapped, icon, label, ...rest } = props;
11
12
  return (
12
- <RibbonButtonStyled ref={ref} variant="outlined" {...props}>
13
+ <RibbonButtonStyled ref={ref} variant="outlined" {...rest}>
13
14
  <RibbonContentStyled isWrapped={props.isWrapped}>
14
15
  {props.icon}
15
16
  <RibbonLabelStyled variant="body2">{props.label}</RibbonLabelStyled>
@@ -1,5 +1,12 @@
1
1
  import { ArgsTable, Canvas, Meta, Story } from "@storybook/addon-docs"
2
- import { MatterFolderRibbonIcon, NewEntryRibbonIcon } from "../Icons/leap";
2
+ import {
3
+ NewEntryRibbonIcon,
4
+ CalendarRibbonIcon,
5
+ DeleteRibbonIcon,
6
+ MatterFolderRibbonIcon
7
+ } from "../Icons/leap";
8
+ import { Divider } from "../Divider";
9
+ import { RibbonButton } from "../RibbonButton";
3
10
  import { RibbonButtonGroup } from "./RibbonButtonGroup"
4
11
  import { RibbonButtonGroupMenuExample } from "./RibbonButtonGroupMenuExample"
5
12
 
@@ -22,7 +29,25 @@ import { RibbonButtonGroupMenuExample } from "./RibbonButtonGroupMenuExample"
22
29
  name="Wrapped"
23
30
  >
24
31
  {() => (
25
- <RibbonButtonGroup icon={<MatterFolderRibbonIcon />} label="Open Matter" isWrapped/>
32
+ <RibbonButtonGroup icon={<MatterFolderRibbonIcon />} label="Open Matter" isWrapped />
33
+ )}
34
+ </Story>
35
+ </Canvas>
36
+
37
+ <Canvas withToolbar>
38
+ <Story
39
+ name="Toolbar"
40
+ >
41
+ {() => (
42
+ <div style={{ display: 'flex', alignItems: 'center' }}>
43
+ <RibbonButtonGroup icon={<NewEntryRibbonIcon />} label="New Entry" isWrapped />
44
+ <Divider orientation="vertical" sx={{ '&.MuiDivider-root': { height: '70px' }}} />
45
+ <RibbonButton icon={<CalendarRibbonIcon />} label="11th October" isWrapped />
46
+ <Divider orientation="vertical" sx={{ '&.MuiDivider-root': { height: '70px' }}} />
47
+ <RibbonButton icon={<DeleteRibbonIcon />} label="Delete" />
48
+ <Divider orientation="vertical" sx={{ '&.MuiDivider-root': { height: '70px' }}} />
49
+ <RibbonButton icon={<MatterFolderRibbonIcon />} label="Open Matter" isWrapped />
50
+ </div>
26
51
  )}
27
52
  </Story>
28
53
  </Canvas>
@@ -14,14 +14,14 @@ export const RibbonButtonGroup = forwardRef<
14
14
  RibbonButtonGroupRef,
15
15
  RibbonButtonGroupProps
16
16
  >(function RibbonButtonGroup(props, ref) {
17
- const { icon, label, isWrapped, onToggle, onClick } = props;
17
+ const { icon, label, isWrapped, onToggle, onClick, ...rest } = props;
18
18
 
19
19
  return (
20
20
  <RibbonButtonGroupStyled
21
21
  variant="outlined"
22
22
  disableRipple
23
23
  ref={ref}
24
- {...props}
24
+ {...rest}
25
25
  >
26
26
  <RibbonButtonStyled
27
27
  variant="outlined"
@@ -1,18 +1,17 @@
1
1
  import { ButtonGroupProps as MuiButtonGroupProps } from '@mui/material';
2
2
  import { RibbonButtonProps } from '../RibbonButton/RibbonButton.types';
3
3
 
4
- type ButtonGroupProps = MuiButtonGroupProps;
4
+ type ButtonGroupProps = MuiButtonGroupProps & RibbonButtonProps;
5
5
 
6
- export type RibbonButtonGroupProps = ButtonGroupProps &
7
- RibbonButtonProps & {
8
- /**
9
- * Primary Action
10
- * */
11
- onClick?: () => void;
12
- /**
13
- * Secondary Action
14
- * */
15
- onToggle?: () => void;
16
- };
6
+ export interface RibbonButtonGroupProps extends ButtonGroupProps {
7
+ /**
8
+ * Primary Action
9
+ * */
10
+ onClick?: () => void;
11
+ /**
12
+ * Secondary Action
13
+ * */
14
+ onToggle?: () => void;
15
+ }
17
16
 
18
17
  export type RibbonButtonGroupRef = HTMLDivElement;
@@ -1,15 +0,0 @@
1
- import React, {useState} from 'react';
2
- import DatePicker from '../DatePicker';
3
-
4
- function DatePickerExample() {
5
- const [date, setDate] = useState(null);
6
-
7
- return (
8
- <DatePicker
9
- onChange={(item) => setDate(item)}
10
- date={date}
11
- ></DatePicker>
12
- );
13
- }
14
-
15
- export default DatePickerExample;
@@ -1,22 +0,0 @@
1
- import React, {useState} from 'react';
2
- import DateRangePicker from '../DateRangePicker';
3
-
4
- function DateRangePickerExample({months}) {
5
- const [state, setState] = useState([
6
- {
7
- startDate: new Date(),
8
- key: 'selection',
9
- },
10
- ]);
11
-
12
- return (
13
- <DateRangePicker
14
- onChange={(item) => setState([item.selection])}
15
- ranges={state}
16
- months={months}
17
- dateDisplayFormat='dd MMMM yyyy'
18
- ></DateRangePicker>
19
- );
20
- }
21
-
22
- export default DateRangePickerExample;