@evoke-platform/ui-components 1.6.0-dev.2 → 1.6.0-dev.21
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/published/components/core/SwipeableDrawer/SwipeableDrawer.d.ts +4 -0
- package/dist/published/components/core/SwipeableDrawer/SwipeableDrawer.js +8 -0
- package/dist/published/components/core/SwipeableDrawer/index.d.ts +3 -0
- package/dist/published/components/core/SwipeableDrawer/index.js +3 -0
- package/dist/published/components/core/index.d.ts +2 -1
- package/dist/published/components/core/index.js +2 -1
- package/dist/published/components/custom/BuilderGrid/BuilderGrid.js +27 -27
- package/dist/published/components/custom/Form/FormComponents/ImageComponent/Image.js +2 -2
- package/dist/published/components/custom/Form/FormComponents/RepeatableFieldComponent/RepeatableField.js +87 -57
- package/dist/published/components/custom/Form/tests/Form.test.js +1 -1
- package/dist/published/components/custom/FormField/AddressFieldComponent/addressFieldComponent.js +1 -1
- package/dist/published/components/custom/FormField/BooleanSelect/BooleanSelect.js +3 -3
- package/dist/published/components/custom/FormField/DatePickerSelect/DatePickerSelect.js +7 -1
- package/dist/published/components/custom/FormField/DateTimePickerSelect/DateTimePickerSelect.js +7 -1
- package/dist/published/components/custom/FormField/InputFieldComponent/InputFieldComponent.js +6 -3
- package/dist/published/components/custom/FormField/Select/Select.js +17 -5
- package/dist/published/components/custom/FormField/TimePickerSelect/TimePickerSelect.js +13 -3
- package/dist/published/components/custom/FormV2/components/ActionButtons.d.ts +19 -0
- package/dist/published/components/custom/FormV2/components/ActionButtons.js +106 -0
- package/dist/published/components/custom/FormV2/components/FieldWrapper.d.ts +24 -0
- package/dist/published/components/custom/FormV2/components/FieldWrapper.js +100 -0
- package/dist/published/components/custom/FormV2/components/FormContext.d.ts +12 -0
- package/dist/published/components/custom/FormV2/components/FormContext.js +8 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/AddressFields.d.ts +17 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/AddressFields.js +50 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/ActionDialog.d.ts +14 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/ActionDialog.js +83 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/DocumentViewerCell.d.ts +13 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/DocumentViewerCell.js +140 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/DropdownRepeatableField.d.ts +17 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/DropdownRepeatableField.js +233 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/DropdownRepeatableFieldInput.d.ts +40 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/DropdownRepeatableFieldInput.js +95 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/RepeatableField.d.ts +12 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/CollectionFiles/RepeatableField.js +526 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/Criteria.d.ts +12 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/Criteria.js +93 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/DocumentFiles/Document.d.ts +16 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/DocumentFiles/Document.js +73 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/DocumentFiles/DocumentList.d.ts +13 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/DocumentFiles/DocumentList.js +179 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/Image.d.ts +12 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/Image.js +108 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/UserProperty.d.ts +16 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/UserProperty.js +125 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/relatedObjectFiles/InstanceLookup.d.ts +15 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/relatedObjectFiles/InstanceLookup.js +226 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/relatedObjectFiles/ObjectPropertyInput.d.ts +4 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/relatedObjectFiles/ObjectPropertyInput.js +439 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/relatedObjectFiles/RelatedObjectInstance.d.ts +29 -0
- package/dist/published/components/custom/FormV2/components/FormFieldTypes/relatedObjectFiles/RelatedObjectInstance.js +74 -0
- package/dist/published/components/custom/FormV2/components/TabNav.d.ts +10 -0
- package/dist/published/components/custom/FormV2/components/TabNav.js +23 -0
- package/dist/published/components/custom/FormV2/components/ValidationFiles/Validation.d.ts +3 -0
- package/dist/published/components/custom/FormV2/components/ValidationFiles/Validation.js +176 -0
- package/dist/published/components/custom/FormV2/components/ValidationFiles/ValidationErrorDisplay.d.ts +10 -0
- package/dist/published/components/custom/FormV2/components/ValidationFiles/ValidationErrorDisplay.js +45 -0
- package/dist/published/components/custom/FormV2/components/types.d.ts +87 -0
- package/dist/published/components/custom/FormV2/components/types.js +1 -0
- package/dist/published/components/custom/FormV2/components/utils.d.ts +39 -0
- package/dist/published/components/custom/FormV2/components/utils.js +269 -0
- package/dist/published/components/custom/HistoryLog/HistoryData.d.ts +1 -0
- package/dist/published/components/custom/HistoryLog/HistoryData.js +14 -6
- package/dist/published/components/custom/HistoryLog/HistoryLoading.d.ts +4 -1
- package/dist/published/components/custom/HistoryLog/HistoryLoading.js +14 -8
- package/dist/published/components/custom/HistoryLog/index.d.ts +2 -0
- package/dist/published/components/custom/HistoryLog/index.js +4 -4
- package/dist/published/components/custom/ResponsiveOverflow/ResponsiveOverflow.d.ts +33 -0
- package/dist/published/components/custom/ResponsiveOverflow/ResponsiveOverflow.js +143 -0
- package/dist/published/components/custom/ResponsiveOverflow/ResponsiveOverflow.test.d.ts +1 -0
- package/dist/published/components/custom/ResponsiveOverflow/ResponsiveOverflow.test.js +100 -0
- package/dist/published/components/custom/ResponsiveOverflow/index.d.ts +4 -0
- package/dist/published/components/custom/ResponsiveOverflow/index.js +3 -0
- package/dist/published/components/custom/index.d.ts +1 -0
- package/dist/published/components/custom/index.js +1 -0
- package/dist/published/index.d.ts +1 -1
- package/dist/published/index.js +1 -1
- package/dist/published/stories/ResponsiveOverflow.stories.d.ts +8 -0
- package/dist/published/stories/ResponsiveOverflow.stories.js +91 -0
- package/dist/published/theme/hooks.d.ts +7 -0
- package/dist/published/theme/hooks.js +9 -0
- package/package.json +4 -2
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { vi } from 'vitest';
|
|
6
|
+
import Button from '../../core/Button/Button';
|
|
7
|
+
import ResponsiveOverflow from './ResponsiveOverflow';
|
|
8
|
+
let mockResizeCallback = null;
|
|
9
|
+
const originalResizeObserver = global.ResizeObserver;
|
|
10
|
+
const originalGetBoundingClientRect = Element.prototype.getBoundingClientRect;
|
|
11
|
+
describe('ResponsiveOverflow', () => {
|
|
12
|
+
// Helper function to simulate resize events
|
|
13
|
+
const simulateResize = (width) => {
|
|
14
|
+
Element.prototype.getBoundingClientRect = vi.fn(() => ({
|
|
15
|
+
width,
|
|
16
|
+
}));
|
|
17
|
+
if (mockResizeCallback) {
|
|
18
|
+
mockResizeCallback([], {});
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
mockResizeCallback = null;
|
|
23
|
+
global.ResizeObserver = class ResizeObserver {
|
|
24
|
+
constructor(callback) {
|
|
25
|
+
mockResizeCallback = callback;
|
|
26
|
+
}
|
|
27
|
+
observe() { }
|
|
28
|
+
unobserve() { }
|
|
29
|
+
disconnect() { }
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
afterEach(() => {
|
|
33
|
+
global.ResizeObserver = originalResizeObserver;
|
|
34
|
+
Element.prototype.getBoundingClientRect = originalGetBoundingClientRect;
|
|
35
|
+
});
|
|
36
|
+
it('renders children correctly', () => {
|
|
37
|
+
render(React.createElement(ResponsiveOverflow, null,
|
|
38
|
+
React.createElement(Button, null, "Button 1"),
|
|
39
|
+
React.createElement(Button, null, "Button 2"),
|
|
40
|
+
React.createElement(Button, null, "Button 3")));
|
|
41
|
+
expect(screen.getByText('Button 1')).toBeInTheDocument();
|
|
42
|
+
expect(screen.getByText('Button 2')).toBeInTheDocument();
|
|
43
|
+
expect(screen.getByText('Button 3')).toBeInTheDocument();
|
|
44
|
+
});
|
|
45
|
+
it('displays custom button text when overflowing', async () => {
|
|
46
|
+
render(React.createElement(ResponsiveOverflow, { moreButtonText: "Show More" },
|
|
47
|
+
React.createElement(Button, null, "Button 1"),
|
|
48
|
+
React.createElement(Button, null, "Button 2"),
|
|
49
|
+
React.createElement(Button, null, "Button 3"),
|
|
50
|
+
React.createElement(Button, null, "Button 4")));
|
|
51
|
+
simulateResize(80); // Narrow width to force overflow
|
|
52
|
+
await screen.findByRole('button', { name: 'Show More' });
|
|
53
|
+
});
|
|
54
|
+
it('displays custom more button when overflowing', async () => {
|
|
55
|
+
const customButton = React.createElement(Button, { "data-testid": "custom-more" }, "Custom More");
|
|
56
|
+
render(React.createElement(ResponsiveOverflow, { customMoreButton: customButton },
|
|
57
|
+
React.createElement(Button, null, "Button 1"),
|
|
58
|
+
React.createElement(Button, null, "Button 2"),
|
|
59
|
+
React.createElement(Button, null, "Button 3"),
|
|
60
|
+
React.createElement(Button, null, "Button 4")));
|
|
61
|
+
simulateResize(80);
|
|
62
|
+
await screen.findByRole('button', { name: 'Custom More' });
|
|
63
|
+
});
|
|
64
|
+
it('shows More button when triggered by ResizeObserver', async () => {
|
|
65
|
+
render(React.createElement(ResponsiveOverflow, { moreButtonText: "More" },
|
|
66
|
+
React.createElement(Button, null, "Button 1"),
|
|
67
|
+
React.createElement(Button, null, "Button 2"),
|
|
68
|
+
React.createElement(Button, null, "Button 3"),
|
|
69
|
+
React.createElement(Button, null, "Button 4"),
|
|
70
|
+
React.createElement(Button, null, "Button 5"),
|
|
71
|
+
React.createElement(Button, null, "Button 6"),
|
|
72
|
+
React.createElement(Button, null, "Button 7"),
|
|
73
|
+
React.createElement(Button, null, "Button 8"),
|
|
74
|
+
React.createElement(Button, null, "Button 9"),
|
|
75
|
+
React.createElement(Button, null, "Button 10")));
|
|
76
|
+
simulateResize(80);
|
|
77
|
+
const moreBtn = await screen.findByRole('button', { name: 'More' });
|
|
78
|
+
await screen.findByRole('button', { name: 'Button 1' });
|
|
79
|
+
await userEvent.click(moreBtn);
|
|
80
|
+
// Button 9 should be in the overflow menu as a menuitem
|
|
81
|
+
await screen.findByRole('menuitem', { name: 'Button 9' });
|
|
82
|
+
});
|
|
83
|
+
it('handles dynamic resizing from wide to narrow conditions', async () => {
|
|
84
|
+
render(React.createElement(ResponsiveOverflow, { moreButtonText: "More" },
|
|
85
|
+
React.createElement(Button, null, "Button 1"),
|
|
86
|
+
React.createElement(Button, null, "Button 2"),
|
|
87
|
+
React.createElement(Button, null, "Button 3"),
|
|
88
|
+
React.createElement(Button, null, "Button 4"),
|
|
89
|
+
React.createElement(Button, null, "Button 5"),
|
|
90
|
+
React.createElement(Button, null, "Button 6")));
|
|
91
|
+
simulateResize(800);
|
|
92
|
+
// With wide container, all buttons should fit
|
|
93
|
+
// More button should not be visible
|
|
94
|
+
expect(screen.queryByRole('button', { name: 'More' })).not.toBeInTheDocument();
|
|
95
|
+
// Now simulate narrow conditions - force overflow
|
|
96
|
+
simulateResize(200);
|
|
97
|
+
// With narrow container, More button should now be visible
|
|
98
|
+
await screen.findByRole('button', { name: 'More' });
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -9,5 +9,6 @@ export { HistoryLog } from './HistoryLog';
|
|
|
9
9
|
export { MenuBar } from './Menubar';
|
|
10
10
|
export { MultiSelect } from './MultiSelect';
|
|
11
11
|
export { RepeatableField } from './RepeatableField';
|
|
12
|
+
export { ResponsiveOverflow } from './ResponsiveOverflow';
|
|
12
13
|
export { RichTextViewer } from './RichTextViewer';
|
|
13
14
|
export { UserAvatar } from './UserAvatar';
|
|
@@ -8,5 +8,6 @@ export { HistoryLog } from './HistoryLog';
|
|
|
8
8
|
export { MenuBar } from './Menubar';
|
|
9
9
|
export { MultiSelect } from './MultiSelect';
|
|
10
10
|
export { RepeatableField } from './RepeatableField';
|
|
11
|
+
export { ResponsiveOverflow } from './ResponsiveOverflow';
|
|
11
12
|
export { RichTextViewer } from './RichTextViewer';
|
|
12
13
|
export { UserAvatar } from './UserAvatar';
|
|
@@ -2,7 +2,7 @@ export { ClickAwayListener, createTheme, darken, lighten, styled, Toolbar, useMe
|
|
|
2
2
|
export { CalendarPicker, DateTimePicker, MonthPicker, PickersDay, StaticDateTimePicker, StaticTimePicker, TimePicker, YearPicker, } from '@mui/x-date-pickers';
|
|
3
3
|
export * from './colors';
|
|
4
4
|
export * from './components/core';
|
|
5
|
-
export { BuilderGrid, CriteriaBuilder, DataGrid, ErrorComponent, Form, FormField, getReadableQuery, HistoryLog, MenuBar, MultiSelect, RepeatableField, RichTextViewer, UserAvatar, } from './components/custom';
|
|
5
|
+
export { BuilderGrid, CriteriaBuilder, DataGrid, ErrorComponent, Form, FormField, getReadableQuery, HistoryLog, MenuBar, MultiSelect, RepeatableField, ResponsiveOverflow, RichTextViewer, UserAvatar, } from './components/custom';
|
|
6
6
|
export type { FormRef } from './components/custom';
|
|
7
7
|
export { NumericFormat } from './components/custom/FormField/InputFieldComponent';
|
|
8
8
|
export { Box, Container, Grid, Stack } from './components/layout';
|
package/dist/published/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { ClickAwayListener, createTheme, darken, lighten, styled, Toolbar, useMe
|
|
|
2
2
|
export { CalendarPicker, DateTimePicker, MonthPicker, PickersDay, StaticDateTimePicker, StaticTimePicker, TimePicker, YearPicker, } from '@mui/x-date-pickers';
|
|
3
3
|
export * from './colors';
|
|
4
4
|
export * from './components/core';
|
|
5
|
-
export { BuilderGrid, CriteriaBuilder, DataGrid, ErrorComponent, Form, FormField, getReadableQuery, HistoryLog, MenuBar, MultiSelect, RepeatableField, RichTextViewer, UserAvatar, } from './components/custom';
|
|
5
|
+
export { BuilderGrid, CriteriaBuilder, DataGrid, ErrorComponent, Form, FormField, getReadableQuery, HistoryLog, MenuBar, MultiSelect, RepeatableField, ResponsiveOverflow, RichTextViewer, UserAvatar, } from './components/custom';
|
|
6
6
|
export { NumericFormat } from './components/custom/FormField/InputFieldComponent';
|
|
7
7
|
export { Box, Container, Grid, Stack } from './components/layout';
|
|
8
8
|
export * from './theme';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Meta, Story } from '@storybook/react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ResponsiveOverflowProps } from '../components/custom/ResponsiveOverflow';
|
|
4
|
+
declare const _default: Meta<import("@storybook/react").Args>;
|
|
5
|
+
export default _default;
|
|
6
|
+
export declare const ResizableDemo: () => React.JSX.Element;
|
|
7
|
+
export declare const WithLinks: Story<ResponsiveOverflowProps>;
|
|
8
|
+
export declare const WithCustomMoreButton: Story<ResponsiveOverflowProps>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { KeyboardArrowDownRounded } from '@mui/icons-material';
|
|
2
|
+
import { Box, Paper, Typography } from '@mui/material';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import Button from '../components/core/Button/Button';
|
|
5
|
+
import Link from '../components/core/Link/Link';
|
|
6
|
+
import ResponsiveOverflow from '../components/custom/ResponsiveOverflow';
|
|
7
|
+
export default {
|
|
8
|
+
title: 'Custom/ResponsiveOverflow',
|
|
9
|
+
component: ResponsiveOverflow,
|
|
10
|
+
parameters: {
|
|
11
|
+
componentSubtitle: 'A container that handles overflow with a dropdown menu',
|
|
12
|
+
},
|
|
13
|
+
argTypes: {
|
|
14
|
+
moreButtonText: {
|
|
15
|
+
control: 'text',
|
|
16
|
+
description: 'Text for the overflow button',
|
|
17
|
+
defaultValue: 'More',
|
|
18
|
+
},
|
|
19
|
+
customMoreButton: {
|
|
20
|
+
control: false,
|
|
21
|
+
description: 'Custom button element to replace the default More button',
|
|
22
|
+
},
|
|
23
|
+
children: {
|
|
24
|
+
control: false,
|
|
25
|
+
description: 'React elements to display in the container',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
const Template = (args) => React.createElement(ResponsiveOverflow, { ...args });
|
|
30
|
+
// Interactive demo with resizable container
|
|
31
|
+
export const ResizableDemo = () => {
|
|
32
|
+
const [width, setWidth] = useState(800);
|
|
33
|
+
const handleChange = (event) => {
|
|
34
|
+
setWidth(Number(event.target.value));
|
|
35
|
+
};
|
|
36
|
+
return (React.createElement(Box, null,
|
|
37
|
+
React.createElement(Typography, { variant: "h6", gutterBottom: true }, "Resize Container"),
|
|
38
|
+
React.createElement(Box, { sx: { mb: 2 } },
|
|
39
|
+
React.createElement(Typography, { variant: "body2", gutterBottom: true },
|
|
40
|
+
"Container Width: ",
|
|
41
|
+
width,
|
|
42
|
+
"px"),
|
|
43
|
+
React.createElement("input", { type: "range", min: 200, max: 1000, value: width, onChange: handleChange,
|
|
44
|
+
// eslint-disable-next-line no-inline-styles/no-inline-styles
|
|
45
|
+
style: { width: '100%' }, "aria-label": "Adjust container width", title: "Drag to resize container" })),
|
|
46
|
+
React.createElement(Paper, { elevation: 1, sx: {
|
|
47
|
+
width: `${width}px`,
|
|
48
|
+
padding: 2,
|
|
49
|
+
transition: 'width 0.3s ease',
|
|
50
|
+
backgroundColor: '#f5f5f5',
|
|
51
|
+
} },
|
|
52
|
+
React.createElement(ResponsiveOverflow, { moreButtonText: "More" },
|
|
53
|
+
React.createElement(Button, { variant: "contained", color: "primary" }, "Dashboard"),
|
|
54
|
+
React.createElement(Button, { variant: "contained" }, "Applications"),
|
|
55
|
+
React.createElement(Button, { variant: "contained" }, "Inspections"),
|
|
56
|
+
React.createElement(Button, { variant: "contained" }, "Reports"),
|
|
57
|
+
React.createElement(Button, { variant: "contained" }, "Licenses"),
|
|
58
|
+
React.createElement(Button, { variant: "contained" }, "Permits"),
|
|
59
|
+
React.createElement(Button, { variant: "contained" }, "Requests"),
|
|
60
|
+
React.createElement(Button, { variant: "contained" }, "Locations")))));
|
|
61
|
+
};
|
|
62
|
+
export const WithLinks = Template.bind({});
|
|
63
|
+
WithLinks.args = {
|
|
64
|
+
moreButtonText: 'More',
|
|
65
|
+
children: [
|
|
66
|
+
React.createElement(Link, { key: "1" }, "Applications"),
|
|
67
|
+
React.createElement(Link, { key: "2" }, "Inspections"),
|
|
68
|
+
React.createElement(Link, { key: "3" }, "Licenses"),
|
|
69
|
+
React.createElement(Link, { key: "4" }, "Permits"),
|
|
70
|
+
React.createElement(Link, { key: "5" }, "Requests"),
|
|
71
|
+
React.createElement(Link, { key: "6" }, "Compliance"),
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
export const WithCustomMoreButton = Template.bind({});
|
|
75
|
+
WithCustomMoreButton.args = {
|
|
76
|
+
customMoreButton: (React.createElement(Button, { variant: "contained", endIcon: React.createElement(KeyboardArrowDownRounded, null) }, "More Options")),
|
|
77
|
+
children: [
|
|
78
|
+
React.createElement(Button, { variant: "contained", color: "primary", key: "1" }, "Dashboard"),
|
|
79
|
+
React.createElement(Button, { variant: "contained", key: "2" }, "Applications"),
|
|
80
|
+
React.createElement(Button, { variant: "contained", key: "3" }, "Inspections"),
|
|
81
|
+
React.createElement(Button, { variant: "contained", key: "4" }, "Reports"),
|
|
82
|
+
React.createElement(Button, { variant: "contained", key: "5" }, "Licenses"),
|
|
83
|
+
React.createElement(Button, { variant: "contained", key: "6" }, "Permits"),
|
|
84
|
+
React.createElement(Button, { variant: "contained", key: "7" }, "Requests"),
|
|
85
|
+
React.createElement(Button, { variant: "contained", key: "8" }, "Documents"),
|
|
86
|
+
React.createElement(Button, { variant: "contained", key: "9" }, "Locations"),
|
|
87
|
+
React.createElement(Button, { variant: "contained", key: "10" }, "Calendar"),
|
|
88
|
+
React.createElement(Button, { variant: "contained", key: "11" }, "Compliance"),
|
|
89
|
+
React.createElement(Button, { variant: "contained", key: "12" }, "Notifications"),
|
|
90
|
+
],
|
|
91
|
+
};
|
|
@@ -107,3 +107,10 @@ export declare const useWidgetSize: (options?: {
|
|
|
107
107
|
resize?: boolean;
|
|
108
108
|
}) => WidgetSizeInfo;
|
|
109
109
|
export default useWidgetSize;
|
|
110
|
+
export declare function useFormContext(): {
|
|
111
|
+
fetchedOptions: import("react-hook-form").FieldValues;
|
|
112
|
+
setFetchedOptions: (newData: import("react-hook-form").FieldValues) => void;
|
|
113
|
+
getValues: import("react-hook-form").UseFormGetValues<import("react-hook-form").FieldValues>;
|
|
114
|
+
stickyFooter?: boolean | undefined;
|
|
115
|
+
object?: import("@evoke-platform/context").Obj | undefined;
|
|
116
|
+
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { useTheme } from '@mui/material';
|
|
2
2
|
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
3
|
+
import { useContext } from 'react';
|
|
3
4
|
import useMeasure from 'react-use-measure';
|
|
5
|
+
import { FormContext } from '../components/custom/FormV2/components/FormContext';
|
|
4
6
|
/**
|
|
5
7
|
* Custom hook for responsive design breakpoints using size terminology.
|
|
6
8
|
* Breakpoints based on MUI default theme:
|
|
@@ -98,3 +100,10 @@ export const useWidgetSize = (options) => {
|
|
|
98
100
|
};
|
|
99
101
|
};
|
|
100
102
|
export default useWidgetSize;
|
|
103
|
+
export function useFormContext() {
|
|
104
|
+
const context = useContext(FormContext);
|
|
105
|
+
if (!context) {
|
|
106
|
+
throw new Error('useFormContext must be used within a FormContext.Provider');
|
|
107
|
+
}
|
|
108
|
+
return context;
|
|
109
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evoke-platform/ui-components",
|
|
3
|
-
"version": "1.6.0-dev.
|
|
3
|
+
"version": "1.6.0-dev.21",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/published/index.js",
|
|
6
6
|
"module": "dist/published/index.js",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"@testing-library/user-event": "^14.5.2",
|
|
55
55
|
"@types/flat": "^5.0.5",
|
|
56
56
|
"@types/jest": "^28.1.4",
|
|
57
|
+
"@types/json-logic-js": "^2.0.8",
|
|
57
58
|
"@types/luxon": "^3.4.2",
|
|
58
59
|
"@types/nanoid-dictionary": "^4.2.3",
|
|
59
60
|
"@types/node": "^18.0.0",
|
|
@@ -86,7 +87,7 @@
|
|
|
86
87
|
"yalc": "^1.0.0-pre.53"
|
|
87
88
|
},
|
|
88
89
|
"peerDependencies": {
|
|
89
|
-
"@evoke-platform/context": "^1.3.0-
|
|
90
|
+
"@evoke-platform/context": "^1.3.0-dev.6",
|
|
90
91
|
"react": "^18.1.0",
|
|
91
92
|
"react-dom": "^18.1.0"
|
|
92
93
|
},
|
|
@@ -125,6 +126,7 @@
|
|
|
125
126
|
"pluralize": "^8.0.0",
|
|
126
127
|
"pretty-bytes": "^6.1.1",
|
|
127
128
|
"react-dropzone": "^14.2.2",
|
|
129
|
+
"react-hook-form": "^7.60.0",
|
|
128
130
|
"react-input-mask": "^2.0.4",
|
|
129
131
|
"react-number-format": "^4.9.3",
|
|
130
132
|
"react-querybuilder": "^6.0.2",
|