@planningcenter/tapestry-react 2.9.0-rc.4 → 2.9.0-rc.7
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/cjs/Button/Button.js +15 -4
- package/dist/cjs/FilterLayout/FilterLayout.js +5 -3
- package/dist/cjs/TimeField/utils.js +12 -6
- package/dist/cjs/ToggleSwitch/ToggleSwitch.js +99 -0
- package/dist/cjs/ToggleSwitch/ToggleSwitch.test.js +67 -0
- package/dist/cjs/ToggleSwitch/index.js +15 -0
- package/dist/cjs/index.d.js +13 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/system/colors/colors.js +17 -0
- package/dist/cjs/system/default-theme.js +3 -0
- package/dist/cjs/system/plugins/color.js +3 -1
- package/dist/cjs/system/style-names.js +1 -1
- package/dist/cjs/utils.js +0 -9
- package/dist/esm/Button/Button.js +15 -4
- package/dist/esm/FilterLayout/FilterLayout.js +5 -3
- package/dist/esm/TimeField/utils.js +12 -6
- package/dist/esm/ToggleSwitch/ToggleSwitch.js +80 -0
- package/dist/esm/ToggleSwitch/ToggleSwitch.test.js +57 -0
- package/dist/esm/ToggleSwitch/index.js +2 -0
- package/dist/esm/index.d.js +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/system/colors/colors.js +18 -1
- package/dist/esm/system/default-theme.js +3 -0
- package/dist/esm/system/plugins/color.js +3 -1
- package/dist/esm/system/style-names.js +1 -1
- package/dist/esm/utils.js +1 -9
- package/dist/types/Button/Button.d.ts +5 -1
- package/dist/types/ToggleSwitch/ToggleSwitch.d.ts +22 -0
- package/dist/types/ToggleSwitch/ToggleSwitch.test.d.ts +1 -0
- package/dist/types/ToggleSwitch/index.d.ts +2 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/system/style-names.d.ts +2 -2
- package/package.json +1 -1
- package/src/Button/Button.tsx +26 -3
- package/src/FilterLayout/FilterLayout.tsx +9 -6
- package/src/TimeField/TimeField.mdx +1 -1
- package/src/TimeField/utils.js +11 -13
- package/src/ToggleSwitch/ToggleSwitch.mdx +56 -0
- package/src/ToggleSwitch/ToggleSwitch.test.tsx +51 -0
- package/src/ToggleSwitch/ToggleSwitch.tsx +106 -0
- package/src/ToggleSwitch/index.ts +2 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +1 -0
- package/src/system/colors/colors.js +20 -1
- package/src/system/default-theme.ts +3 -0
- package/src/system/plugins/color.js +3 -0
- package/src/system/style-names.ts +1 -0
- package/src/utils.js +0 -8
- package/dist/cjs/TimeField/legacy_TimeField.js +0 -274
- package/dist/esm/TimeField/legacy_TimeField.js +0 -271
- package/src/TimeField/legacy_TimeField.js +0 -278
|
@@ -178,7 +178,14 @@ function Button(_ref) {
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
if (disabled) {
|
|
181
|
-
|
|
181
|
+
var disabledStyles = buttonThemes[theme][variant || 'fill'].disabled;
|
|
182
|
+
|
|
183
|
+
if (disabledStyles !== undefined) {
|
|
184
|
+
buttonProps = _objectSpread(_objectSpread({}, buttonProps), disabledStyles);
|
|
185
|
+
} else {
|
|
186
|
+
buttonProps.opacity = 0.65;
|
|
187
|
+
}
|
|
188
|
+
|
|
182
189
|
buttonProps['aria-disabled'] = true;
|
|
183
190
|
buttonProps.cursor = 'not-allowed';
|
|
184
191
|
|
|
@@ -198,9 +205,9 @@ function Button(_ref) {
|
|
|
198
205
|
buttonProps.hover = undefined;
|
|
199
206
|
buttonProps.active = undefined;
|
|
200
207
|
} else {
|
|
201
|
-
buttonProps.focus = _objectSpread(
|
|
208
|
+
buttonProps.focus = _objectSpread({
|
|
202
209
|
zIndex: 5
|
|
203
|
-
});
|
|
210
|
+
}, buttonProps.focus);
|
|
204
211
|
buttonProps.cursor = 'pointer';
|
|
205
212
|
buttonProps.touchAction = 'manipulation';
|
|
206
213
|
buttonProps.onClick = onClick;
|
|
@@ -280,7 +287,11 @@ function Button(_ref) {
|
|
|
280
287
|
}
|
|
281
288
|
}
|
|
282
289
|
|
|
283
|
-
return /*#__PURE__*/React.createElement(_Tooltip["default"], tooltip, /*#__PURE__*/React.createElement(_StackView.StackView, (0, _extends2["default"])({}, buttonProps, restProps
|
|
290
|
+
return /*#__PURE__*/React.createElement(_Tooltip["default"], tooltip, /*#__PURE__*/React.createElement(_StackView.StackView, (0, _extends2["default"])({}, buttonProps, restProps, {
|
|
291
|
+
css: {
|
|
292
|
+
'&:focus-visible': _objectSpread({}, buttonProps.focusVisible)
|
|
293
|
+
}
|
|
294
|
+
}), iconLeft && /*#__PURE__*/React.createElement(_Icon["default"], (0, _extends2["default"])({
|
|
284
295
|
size: size,
|
|
285
296
|
color: buttonProps.color,
|
|
286
297
|
marginRight: paddingHorizontalDense
|
|
@@ -80,7 +80,8 @@ function FilterLayout(props) {
|
|
|
80
80
|
shrink: 1
|
|
81
81
|
}, header)), /*#__PURE__*/React.createElement(_Divider["default"], null), /*#__PURE__*/React.createElement(_StackView["default"], {
|
|
82
82
|
axis: "horizontal",
|
|
83
|
-
grow: 1
|
|
83
|
+
grow: 1,
|
|
84
|
+
overflow: "hidden"
|
|
84
85
|
}, /*#__PURE__*/React.createElement(_StackView["default"], {
|
|
85
86
|
visible: sidebarOpen,
|
|
86
87
|
basis: fill ? '100%' : sidebarWidth + 'px',
|
|
@@ -88,9 +89,10 @@ function FilterLayout(props) {
|
|
|
88
89
|
borderRightColor: "separatorTertiary",
|
|
89
90
|
backgroundColor: "surfaceSecondary"
|
|
90
91
|
}, sidebar), /*#__PURE__*/React.createElement(_StackView["default"], {
|
|
91
|
-
|
|
92
|
+
visibility: sidebarOpen && fill ? 'hidden' : 'visible',
|
|
93
|
+
maxHeight: sidebarOpen && fill ? 0 : 'initial',
|
|
92
94
|
grow: 1,
|
|
93
|
-
shrink: 1,
|
|
95
|
+
shrink: sidebarOpen && fill ? 0 : 1,
|
|
94
96
|
basis: "100%"
|
|
95
97
|
}, toolbar, /*#__PURE__*/React.createElement(_Divider["default"], null), table)));
|
|
96
98
|
}
|
|
@@ -27,12 +27,18 @@ function addHoursToTime(time, hoursToAdd) {
|
|
|
27
27
|
function addMinutesToTime(time, minutesToAdd) {
|
|
28
28
|
var hours = time[0],
|
|
29
29
|
minutes = time[1];
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
var nextMinutes = minutes + minutesToAdd;
|
|
31
|
+
var remainderMinutes = modulo(nextMinutes, MINUTES_IN_HOUR);
|
|
32
|
+
|
|
33
|
+
if (remainderMinutes >= 0) {
|
|
34
|
+
var nextHours = hours + Math.floor(nextMinutes / MINUTES_IN_HOUR);
|
|
35
|
+
hours = modulo(nextHours, HOURS_IN_DAY);
|
|
36
|
+
minutes = remainderMinutes;
|
|
37
|
+
} else {
|
|
38
|
+
minutes = nextMinutes;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return [hours, minutes];
|
|
36
42
|
}
|
|
37
43
|
|
|
38
44
|
function addTimeToDate(date, time) {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.ToggleSwitch = ToggleSwitch;
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
|
|
11
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
|
+
|
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
|
14
|
+
|
|
15
|
+
var _Box = require("../Box");
|
|
16
|
+
|
|
17
|
+
var _Button = _interopRequireDefault(require("../Button"));
|
|
18
|
+
|
|
19
|
+
var _colors = require("../system/colors");
|
|
20
|
+
|
|
21
|
+
var _StackView = require("../StackView");
|
|
22
|
+
|
|
23
|
+
var _Text = _interopRequireDefault(require("../Text"));
|
|
24
|
+
|
|
25
|
+
var _system = require("../system");
|
|
26
|
+
|
|
27
|
+
function ToggleSwitch(props) {
|
|
28
|
+
var _props$disabled = props.disabled,
|
|
29
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
30
|
+
isActive = props.isActive,
|
|
31
|
+
label = props.label,
|
|
32
|
+
onClick = props.onClick,
|
|
33
|
+
_props$size = props.size,
|
|
34
|
+
size = _props$size === void 0 ? 'md' : _props$size,
|
|
35
|
+
tooltip = props.tooltip,
|
|
36
|
+
restProps = (0, _objectWithoutPropertiesLoose2["default"])(props, ["disabled", "isActive", "label", "onClick", "size", "tooltip"]);
|
|
37
|
+
|
|
38
|
+
var _useThemeProps = (0, _system.useThemeProps)('toggleSwitch', restProps),
|
|
39
|
+
backgroundColor = _useThemeProps.backgroundColor;
|
|
40
|
+
|
|
41
|
+
var toggleButtonProps = {
|
|
42
|
+
height: 2.5,
|
|
43
|
+
width: 4.375
|
|
44
|
+
};
|
|
45
|
+
var toggleNotchProps = {
|
|
46
|
+
height: 2,
|
|
47
|
+
width: 2
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
if (size === 'sm') {
|
|
51
|
+
toggleButtonProps = {
|
|
52
|
+
height: 2.25,
|
|
53
|
+
width: 4
|
|
54
|
+
};
|
|
55
|
+
toggleNotchProps = {
|
|
56
|
+
height: 1.75,
|
|
57
|
+
width: 1.75
|
|
58
|
+
};
|
|
59
|
+
} else if (size === 'xs') {
|
|
60
|
+
toggleButtonProps = {
|
|
61
|
+
height: 2,
|
|
62
|
+
width: 3.5
|
|
63
|
+
};
|
|
64
|
+
toggleNotchProps = {
|
|
65
|
+
height: 1.5,
|
|
66
|
+
width: 1.5
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return /*#__PURE__*/_react["default"].createElement(_StackView.StackView, {
|
|
71
|
+
alignment: "center",
|
|
72
|
+
axis: "horizontal",
|
|
73
|
+
spacing: size === 'xs' ? 0.5 : size === 'sm' ? 0.75 : 1
|
|
74
|
+
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], (0, _extends2["default"])({
|
|
75
|
+
as: "button",
|
|
76
|
+
backgroundColor: disabled ? _colors.colors.grays.light.neutral81 : isActive ? backgroundColor : _colors.colors.grays.light.neutral62,
|
|
77
|
+
onClick: onClick,
|
|
78
|
+
opacity: 1,
|
|
79
|
+
position: "relative",
|
|
80
|
+
radius: "pill",
|
|
81
|
+
theme: false,
|
|
82
|
+
disabled: disabled,
|
|
83
|
+
tooltip: tooltip
|
|
84
|
+
}, toggleButtonProps, restProps), /*#__PURE__*/_react["default"].createElement(_Box.Box, (0, _extends2["default"])({
|
|
85
|
+
background: "#fff",
|
|
86
|
+
left: 0.25,
|
|
87
|
+
pointerEvents: "none",
|
|
88
|
+
position: "absolute",
|
|
89
|
+
radius: "circle",
|
|
90
|
+
top: 0.25,
|
|
91
|
+
transform: "translateX(" + (isActive ? 'calc(100% - 1px)' : '0%') + ")",
|
|
92
|
+
transition: "120ms"
|
|
93
|
+
}, toggleNotchProps))), label && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
|
|
94
|
+
size: size === 'xs' ? 5 : size === 'sm' ? 4 : 3
|
|
95
|
+
}, label));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
var _default = ToggleSwitch;
|
|
99
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
require("@testing-library/jest-dom/extend-expect");
|
|
10
|
+
|
|
11
|
+
var _ToggleSwitch = _interopRequireDefault(require("./ToggleSwitch"));
|
|
12
|
+
|
|
13
|
+
describe('ToggleSwitch component', function () {
|
|
14
|
+
it('should render with default properties', function () {
|
|
15
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
|
|
16
|
+
isActive: false,
|
|
17
|
+
label: "Toggle me",
|
|
18
|
+
onClick: function onClick() {}
|
|
19
|
+
})),
|
|
20
|
+
getByRole = _render.getByRole;
|
|
21
|
+
|
|
22
|
+
var toggleButton = getByRole('button');
|
|
23
|
+
expect(toggleButton).toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
it('should call onClick when clicked', function () {
|
|
26
|
+
var mockOnClick = jest.fn();
|
|
27
|
+
|
|
28
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
|
|
29
|
+
isActive: false,
|
|
30
|
+
label: "Toggle me",
|
|
31
|
+
onClick: mockOnClick
|
|
32
|
+
})),
|
|
33
|
+
getByRole = _render2.getByRole;
|
|
34
|
+
|
|
35
|
+
var toggleButton = getByRole('button');
|
|
36
|
+
|
|
37
|
+
_react2.fireEvent.click(toggleButton);
|
|
38
|
+
|
|
39
|
+
expect(mockOnClick).toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
it('should display the label', function () {
|
|
42
|
+
var label = 'Toggle me';
|
|
43
|
+
|
|
44
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
|
|
45
|
+
isActive: false,
|
|
46
|
+
label: label,
|
|
47
|
+
onClick: function onClick() {}
|
|
48
|
+
})),
|
|
49
|
+
getByText = _render3.getByText;
|
|
50
|
+
|
|
51
|
+
expect(getByText(label)).toBeInTheDocument();
|
|
52
|
+
});
|
|
53
|
+
it('should apply active color when isActive is true', function () {
|
|
54
|
+
var activeColor = 'green';
|
|
55
|
+
|
|
56
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
|
|
57
|
+
backgroundColor: activeColor,
|
|
58
|
+
isActive: true,
|
|
59
|
+
label: "Toggle me",
|
|
60
|
+
onClick: function onClick() {}
|
|
61
|
+
})),
|
|
62
|
+
getByRole = _render4.getByRole;
|
|
63
|
+
|
|
64
|
+
var toggleButton = getByRole('button');
|
|
65
|
+
expect(toggleButton).toHaveStyle("background-color: " + activeColor);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _exportNames = {};
|
|
5
|
+
exports["default"] = void 0;
|
|
6
|
+
|
|
7
|
+
var _ToggleSwitch = require("./ToggleSwitch");
|
|
8
|
+
|
|
9
|
+
exports["default"] = _ToggleSwitch.ToggleSwitch;
|
|
10
|
+
Object.keys(_ToggleSwitch).forEach(function (key) {
|
|
11
|
+
if (key === "default" || key === "__esModule") return;
|
|
12
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
13
|
+
if (key in exports && exports[key] === _ToggleSwitch[key]) return;
|
|
14
|
+
exports[key] = _ToggleSwitch[key];
|
|
15
|
+
});
|
package/dist/cjs/index.d.js
CHANGED
|
@@ -61,6 +61,7 @@ var _exportNames = {
|
|
|
61
61
|
Tabs: true,
|
|
62
62
|
TextArea: true,
|
|
63
63
|
TimeField: true,
|
|
64
|
+
ToggleSwitch: true,
|
|
64
65
|
Toolbar: true,
|
|
65
66
|
TokenInput: true,
|
|
66
67
|
Tooltip: true,
|
|
@@ -72,7 +73,7 @@ var _exportNames = {
|
|
|
72
73
|
Select: true,
|
|
73
74
|
Sortable: true
|
|
74
75
|
};
|
|
75
|
-
exports.Sortable = exports.Select = exports.List = exports.Input = exports.Checkbox = exports.Wizard = exports.VariantProvider = exports.Tooltip = exports.TokenInput = exports.Toolbar = exports.TimeField = exports.TextArea = exports.Tabs = exports.Table = exports.Summary = exports.StepperProgress = exports.StepperField = exports.Sidebar = exports.SegmentedTabs = exports.SegmentedControl = exports.HeadingUppercase = exports.Section = exports.ScreenReader = exports.RangeSlider = exports.Radio = exports.Progress = exports.Pagination = exports.PagerView = exports.PageToolbar = exports.PageTitle = exports.PageTabList = exports.PageTab = exports.PageHeader = exports.PageDropdown = exports.PageButton = exports.PageBody = exports.PageActions = exports.NumberField = exports.Modal = exports.Menu = exports.Logo = exports.LinkList = exports.Link = exports.Icon = exports.Highlight = exports.HelperDrawer = exports.Heading = exports.FieldSet = exports.Form = exports.Field = exports.EditActions = exports.Dropdown = exports.Drawer = exports.DragDrop = exports.DateField = exports.DataTable = exports.Combobox = exports.ColumnView = exports.Collapse = exports.ChurchCenterStatus = exports.CheckboxGroup = exports.CheckboxCard = exports.Calendar = exports.Badge = exports.Avatar = exports.utils = exports.server = exports.hooks = exports.designSystem = void 0;
|
|
76
|
+
exports.Sortable = exports.Select = exports.List = exports.Input = exports.Checkbox = exports.Wizard = exports.VariantProvider = exports.Tooltip = exports.TokenInput = exports.Toolbar = exports.ToggleSwitch = exports.TimeField = exports.TextArea = exports.Tabs = exports.Table = exports.Summary = exports.StepperProgress = exports.StepperField = exports.Sidebar = exports.SegmentedTabs = exports.SegmentedControl = exports.HeadingUppercase = exports.Section = exports.ScreenReader = exports.RangeSlider = exports.Radio = exports.Progress = exports.Pagination = exports.PagerView = exports.PageToolbar = exports.PageTitle = exports.PageTabList = exports.PageTab = exports.PageHeader = exports.PageDropdown = exports.PageButton = exports.PageBody = exports.PageActions = exports.NumberField = exports.Modal = exports.Menu = exports.Logo = exports.LinkList = exports.Link = exports.Icon = exports.Highlight = exports.HelperDrawer = exports.Heading = exports.FieldSet = exports.Form = exports.Field = exports.EditActions = exports.Dropdown = exports.Drawer = exports.DragDrop = exports.DateField = exports.DataTable = exports.Combobox = exports.ColumnView = exports.Collapse = exports.ChurchCenterStatus = exports.CheckboxGroup = exports.CheckboxCard = exports.Calendar = exports.Badge = exports.Avatar = exports.utils = exports.server = exports.hooks = exports.designSystem = void 0;
|
|
76
77
|
|
|
77
78
|
var _Alert = require("./Alert");
|
|
78
79
|
|
|
@@ -218,6 +219,15 @@ Object.keys(_TileView).forEach(function (key) {
|
|
|
218
219
|
exports[key] = _TileView[key];
|
|
219
220
|
});
|
|
220
221
|
|
|
222
|
+
var _ToggleSwitch = require("./ToggleSwitch");
|
|
223
|
+
|
|
224
|
+
Object.keys(_ToggleSwitch).forEach(function (key) {
|
|
225
|
+
if (key === "default" || key === "__esModule") return;
|
|
226
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
227
|
+
if (key in exports && exports[key] === _ToggleSwitch[key]) return;
|
|
228
|
+
exports[key] = _ToggleSwitch[key];
|
|
229
|
+
});
|
|
230
|
+
|
|
221
231
|
var _ThemeProvider = require("./ThemeProvider");
|
|
222
232
|
|
|
223
233
|
Object.keys(_ThemeProvider).forEach(function (key) {
|
|
@@ -353,6 +363,8 @@ var TextArea;
|
|
|
353
363
|
exports.TextArea = TextArea;
|
|
354
364
|
var TimeField;
|
|
355
365
|
exports.TimeField = TimeField;
|
|
366
|
+
var ToggleSwitch;
|
|
367
|
+
exports.ToggleSwitch = ToggleSwitch;
|
|
356
368
|
var Toolbar;
|
|
357
369
|
exports.Toolbar = Toolbar;
|
|
358
370
|
var TokenInput;
|
package/dist/cjs/index.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
6
|
|
|
7
7
|
exports.__esModule = true;
|
|
8
|
-
exports.utils = exports.server = exports.hooks = exports.designSystem = exports.PageToolbar = exports.PageTitle = exports.PageTabList = exports.PageTab = exports.PageHeader = exports.PageDropdown = exports.PageButton = exports.PageBody = exports.PageActions = exports.WrapView = exports.Wizard = exports.VariantProvider = exports.Tooltip = exports.TokenInput = exports.Toolbar = exports.TimeField = exports.TileView = exports.ThemeProvider = exports.TextArea = exports.Text = exports.Tabs = exports.Table = exports.Tab = exports.Summary = exports.StepperProgress = exports.StepperField = exports.StackView = exports.Spinner = exports.Sortable = exports.Sidebar = exports.Select = exports.SegmentedTabs = exports.SegmentedControl = exports.HeadingUppercase = exports.Section = exports.Scrim = exports.ScreenReader = exports.RangeSlider = exports.Radio = exports.Progress = exports.Portal = exports.Popover = exports.Pagination = exports.PagerView = exports.NumberField = exports.Modal = exports.Menu = exports.Logo = exports.List = exports.LinkList = exports.Link = exports.Input = exports.Icon = exports.Highlight = exports.HelperDrawer = exports.Heading = exports.Group = exports.GridView = exports.FilterLayout = exports.FieldSet = exports.Form = exports.Field = exports.EditActions = exports.Dropdown = exports.Drawer = exports.DragDrop = exports.Divider = exports.DateField = exports.DataTable = exports.Combobox = exports.ColumnView = exports.Collapse = exports.ChurchCenterStatus = exports.CheckboxGroup = exports.CheckboxCard = exports.Checkbox = exports.Card = exports.Calendar = exports.Button = exports.Box = exports.Badge = exports.Avatar = exports.Alert = exports.ActionsDropdown = void 0;
|
|
8
|
+
exports.utils = exports.server = exports.hooks = exports.designSystem = exports.PageToolbar = exports.PageTitle = exports.PageTabList = exports.PageTab = exports.PageHeader = exports.PageDropdown = exports.PageButton = exports.PageBody = exports.PageActions = exports.WrapView = exports.Wizard = exports.VariantProvider = exports.Tooltip = exports.TokenInput = exports.Toolbar = exports.ToggleSwitch = exports.TimeField = exports.TileView = exports.ThemeProvider = exports.TextArea = exports.Text = exports.Tabs = exports.Table = exports.Tab = exports.Summary = exports.StepperProgress = exports.StepperField = exports.StackView = exports.Spinner = exports.Sortable = exports.Sidebar = exports.Select = exports.SegmentedTabs = exports.SegmentedControl = exports.HeadingUppercase = exports.Section = exports.Scrim = exports.ScreenReader = exports.RangeSlider = exports.Radio = exports.Progress = exports.Portal = exports.Popover = exports.Pagination = exports.PagerView = exports.NumberField = exports.Modal = exports.Menu = exports.Logo = exports.List = exports.LinkList = exports.Link = exports.Input = exports.Icon = exports.Highlight = exports.HelperDrawer = exports.Heading = exports.Group = exports.GridView = exports.FilterLayout = exports.FieldSet = exports.Form = exports.Field = exports.EditActions = exports.Dropdown = exports.Drawer = exports.DragDrop = exports.Divider = exports.DateField = exports.DataTable = exports.Combobox = exports.ColumnView = exports.Collapse = exports.ChurchCenterStatus = exports.CheckboxGroup = exports.CheckboxCard = exports.Checkbox = exports.Card = exports.Calendar = exports.Button = exports.Box = exports.Badge = exports.Avatar = exports.Alert = exports.ActionsDropdown = void 0;
|
|
9
9
|
|
|
10
10
|
require("focus-options-polyfill");
|
|
11
11
|
|
|
@@ -315,6 +315,10 @@ var _TimeField = _interopRequireDefault(require("./TimeField"));
|
|
|
315
315
|
|
|
316
316
|
exports.TimeField = _TimeField["default"];
|
|
317
317
|
|
|
318
|
+
var _ToggleSwitch = _interopRequireDefault(require("./ToggleSwitch"));
|
|
319
|
+
|
|
320
|
+
exports.ToggleSwitch = _ToggleSwitch["default"];
|
|
321
|
+
|
|
318
322
|
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
|
319
323
|
|
|
320
324
|
exports.Toolbar = _Toolbar["default"];
|
|
@@ -6,7 +6,24 @@ exports.colors = exports.palette = void 0;
|
|
|
6
6
|
|
|
7
7
|
var _utils = require("./utils");
|
|
8
8
|
|
|
9
|
+
// NOTE: this is a solution for using the UX palette in Tapestry-React
|
|
10
|
+
// that will likely be replaced with a tokenized palette in the future
|
|
11
|
+
var tapestry = {
|
|
12
|
+
create: {
|
|
13
|
+
create35: 'hsl(86deg 91% 35% / 100%)'
|
|
14
|
+
},
|
|
15
|
+
grays: {
|
|
16
|
+
light: {
|
|
17
|
+
neutral62: 'hsl(0deg 0% 62% / 100%)',
|
|
18
|
+
neutral81: 'hsl(0deg 0% 81% / 100%)'
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
interaction: {
|
|
22
|
+
interaction66: 'hsl(221deg 91% 66% / 100%)'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
9
25
|
var palette = {
|
|
26
|
+
tapestry: tapestry,
|
|
10
27
|
primary: {
|
|
11
28
|
lightest: 'hsl(88, 24%, 92%)',
|
|
12
29
|
lighter: 'hsl(88, 32%, 86%)',
|
|
@@ -20,8 +20,9 @@ function color(_ref, theme) {
|
|
|
20
20
|
borderTopColor = _ref.borderTopColor,
|
|
21
21
|
color = _ref.color,
|
|
22
22
|
fill = _ref.fill,
|
|
23
|
+
outlineColor = _ref.outlineColor,
|
|
23
24
|
stroke = _ref.stroke,
|
|
24
|
-
styles = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["backgroundColor", "borderColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "fill", "stroke"]);
|
|
25
|
+
styles = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["backgroundColor", "borderColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "fill", "outlineColor", "stroke"]);
|
|
25
26
|
var colorProps = {
|
|
26
27
|
backgroundColor: backgroundColor,
|
|
27
28
|
borderColor: borderColor,
|
|
@@ -31,6 +32,7 @@ function color(_ref, theme) {
|
|
|
31
32
|
borderTopColor: borderTopColor,
|
|
32
33
|
color: color,
|
|
33
34
|
fill: fill,
|
|
35
|
+
outlineColor: outlineColor,
|
|
34
36
|
stroke: stroke
|
|
35
37
|
};
|
|
36
38
|
Object.keys(colorProps).forEach(function (key) {
|
|
@@ -4,7 +4,7 @@ exports.__esModule = true;
|
|
|
4
4
|
exports.pseudoPropNames = exports.stylePropNames = exports.customStyleNames = exports.colorStyleNames = exports.nativeStyleNames = void 0;
|
|
5
5
|
var nativeStyleNames = ['alignContent', 'alignItems', 'alignSelf', 'alignmentBaseline', 'animation', 'animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction', 'backfaceVisibility', 'background', 'backgroundAttachment', 'backgroundBlendMode', 'backgroundClip', 'backgroundImage', 'backgroundOrigin', 'backgroundPosition', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize', 'baselineShift', 'border', 'borderBottom', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderBottomStyle', 'borderBottomWidth', 'borderCollapse', 'borderImage', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeft', 'borderLeftStyle', 'borderLeftWidth', 'borderRadius', 'borderRight', 'borderRightStyle', 'borderRightWidth', 'borderSpacing', 'borderStyle', 'borderTop', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderTopStyle', 'borderTopWidth', 'borderWidth', 'bottom', 'boxShadow', 'boxSizing', 'breakAfter', 'breakBefore', 'breakInside', 'clear', 'clip', 'clipPath', 'clipRule', 'columnCount', 'columnFill', 'columnGap', 'columnRule', 'columnRuleColor', 'columnRuleStyle', 'columnRuleWidth', 'columnSpan', 'columnWidth', 'columns', 'contain', 'content', 'counterIncrement', 'counterReset', 'cursor', 'direction', 'display', 'fillOpacity', 'fillRule', 'filter', 'flex', 'flexBasis', 'flexDirection', 'flexFlow', 'flexGrow', 'flexShrink', 'flexWrap', 'font', 'fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontSize', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantCaps', 'fontVariantLigatures', 'fontVariantNumeric', 'fontWeight', 'gap', 'gridArea', 'gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridColumn', 'gridColumnEnd', 'gridColumnGap', 'gridColumnStart', 'gridGap', 'gridRow', 'gridRowEnd', 'gridRowGap', 'gridRowStart', 'gridTemplate', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows', 'height', 'imageRendering', 'isolation', 'justifyContent', 'justifyItems', 'justifySelf', 'left', 'letterSpacing', 'lightingColor', 'lineHeight', 'listStyle', 'listStyleImage', 'listStylePosition', 'listStyleType', 'margin', 'marginBottom', 'marginLeft', 'marginRight', 'marginTop', 'mask', 'maskType', 'maxHeight', 'maxWidth', 'minHeight', 'minWidth', 'mixBlendMode', 'motion', 'objectFit', 'objectPosition', 'opacity', 'order', 'outline', 'outlineColor', 'outlineOffset', 'outlineStyle', 'outlineWidth', 'overflow', 'overflowWrap', 'overflowX', 'overflowY', 'padding', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', 'pageBreakAfter', 'pageBreakBefore', 'pageBreakInside', 'perspective', 'perspectiveOrigin', 'placeItems', 'placeSelf', 'pointerEvents', 'position', 'resize', 'right', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'tabSize', 'tableLayout', 'textAlign', 'textDecoration', 'textIndent', 'textOrientation', 'textOverflow', 'textRendering', 'textShadow', 'textTransform', 'top', 'touchAction', 'transform', 'transformOrigin', 'transformStyle', 'transition', 'transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction', 'verticalAlign', 'visibility', 'clipPath', 'filter', 'userSelect', 'WebkitOverflowScrolling', 'writingMode', 'whiteSpace', 'width', 'willChange', 'wordBreak', 'wordSpacing', 'wordWrap', 'zIndex'];
|
|
6
6
|
exports.nativeStyleNames = nativeStyleNames;
|
|
7
|
-
var colorStyleNames = ['backgroundColor', 'borderColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'fill', 'stroke'];
|
|
7
|
+
var colorStyleNames = ['backgroundColor', 'borderColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'fill', 'outlineColor', 'stroke'];
|
|
8
8
|
exports.colorStyleNames = colorStyleNames;
|
|
9
9
|
var customStyleNames = ['css', 'column', 'columnStart', 'columnEnd', 'row', 'rowStart', 'rowEnd', 'basis', 'elevation', 'grow', 'marginHorizontal', 'marginVertical', 'paddingHorizontal', 'paddingVertical', 'radius', 'radiusTop', 'radiusRight', 'radiusBottom', 'radiusLeft', 'x', 'y', 'rotate', 'scale', 'uppercase', 'shrink', 'wrap', 'strokeAlign', 'strokeWeight'];
|
|
10
10
|
exports.customStyleNames = customStyleNames;
|
package/dist/cjs/utils.js
CHANGED
|
@@ -21,7 +21,6 @@ exports.insertAtIndex = insertAtIndex;
|
|
|
21
21
|
exports.isArray = isArray;
|
|
22
22
|
exports.isElementInteractive = isElementInteractive;
|
|
23
23
|
exports.isFunction = isFunction;
|
|
24
|
-
exports.isNumber = isNumber;
|
|
25
24
|
exports.isValueInArray = isValueInArray;
|
|
26
25
|
exports.joinChildren = joinChildren;
|
|
27
26
|
exports.lockScroll = lockScroll;
|
|
@@ -400,14 +399,6 @@ function isArray(value) {
|
|
|
400
399
|
function isFunction(value) {
|
|
401
400
|
return value && value.constructor === Function;
|
|
402
401
|
}
|
|
403
|
-
/**
|
|
404
|
-
* Determines if value is a number
|
|
405
|
-
*/
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
function isNumber(value) {
|
|
409
|
-
return /^[0-9]$/i.test(value);
|
|
410
|
-
}
|
|
411
402
|
/**
|
|
412
403
|
* Determines if a value is present in an array by
|
|
413
404
|
* performing a shallow equal check on each item.
|
|
@@ -171,7 +171,14 @@ export function Button(_ref) {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
if (disabled) {
|
|
174
|
-
|
|
174
|
+
var disabledStyles = buttonThemes[theme][variant || 'fill'].disabled;
|
|
175
|
+
|
|
176
|
+
if (disabledStyles !== undefined) {
|
|
177
|
+
buttonProps = _objectSpread(_objectSpread({}, buttonProps), disabledStyles);
|
|
178
|
+
} else {
|
|
179
|
+
buttonProps.opacity = 0.65;
|
|
180
|
+
}
|
|
181
|
+
|
|
175
182
|
buttonProps['aria-disabled'] = true;
|
|
176
183
|
buttonProps.cursor = 'not-allowed';
|
|
177
184
|
|
|
@@ -191,9 +198,9 @@ export function Button(_ref) {
|
|
|
191
198
|
buttonProps.hover = undefined;
|
|
192
199
|
buttonProps.active = undefined;
|
|
193
200
|
} else {
|
|
194
|
-
buttonProps.focus = _objectSpread(
|
|
201
|
+
buttonProps.focus = _objectSpread({
|
|
195
202
|
zIndex: 5
|
|
196
|
-
});
|
|
203
|
+
}, buttonProps.focus);
|
|
197
204
|
buttonProps.cursor = 'pointer';
|
|
198
205
|
buttonProps.touchAction = 'manipulation';
|
|
199
206
|
buttonProps.onClick = onClick;
|
|
@@ -265,7 +272,11 @@ export function Button(_ref) {
|
|
|
265
272
|
}
|
|
266
273
|
}
|
|
267
274
|
|
|
268
|
-
return /*#__PURE__*/React.createElement(Tooltip, tooltip, /*#__PURE__*/React.createElement(StackView, _extends({}, buttonProps, restProps
|
|
275
|
+
return /*#__PURE__*/React.createElement(Tooltip, tooltip, /*#__PURE__*/React.createElement(StackView, _extends({}, buttonProps, restProps, {
|
|
276
|
+
css: {
|
|
277
|
+
'&:focus-visible': _objectSpread({}, buttonProps.focusVisible)
|
|
278
|
+
}
|
|
279
|
+
}), iconLeft && /*#__PURE__*/React.createElement(Icon, _extends({
|
|
269
280
|
size: size,
|
|
270
281
|
color: buttonProps.color,
|
|
271
282
|
marginRight: paddingHorizontalDense
|
|
@@ -67,7 +67,8 @@ export function FilterLayout(props) {
|
|
|
67
67
|
shrink: 1
|
|
68
68
|
}, header)), _ref, /*#__PURE__*/React.createElement(StackView, {
|
|
69
69
|
axis: "horizontal",
|
|
70
|
-
grow: 1
|
|
70
|
+
grow: 1,
|
|
71
|
+
overflow: "hidden"
|
|
71
72
|
}, /*#__PURE__*/React.createElement(StackView, {
|
|
72
73
|
visible: sidebarOpen,
|
|
73
74
|
basis: fill ? '100%' : sidebarWidth + 'px',
|
|
@@ -75,9 +76,10 @@ export function FilterLayout(props) {
|
|
|
75
76
|
borderRightColor: "separatorTertiary",
|
|
76
77
|
backgroundColor: "surfaceSecondary"
|
|
77
78
|
}, sidebar), /*#__PURE__*/React.createElement(StackView, {
|
|
78
|
-
|
|
79
|
+
visibility: sidebarOpen && fill ? 'hidden' : 'visible',
|
|
80
|
+
maxHeight: sidebarOpen && fill ? 0 : 'initial',
|
|
79
81
|
grow: 1,
|
|
80
|
-
shrink: 1,
|
|
82
|
+
shrink: sidebarOpen && fill ? 0 : 1,
|
|
81
83
|
basis: "100%"
|
|
82
84
|
}, toolbar, _ref2, table)));
|
|
83
85
|
}
|
|
@@ -10,12 +10,18 @@ export function addHoursToTime(time, hoursToAdd) {
|
|
|
10
10
|
export function addMinutesToTime(time, minutesToAdd) {
|
|
11
11
|
var hours = time[0],
|
|
12
12
|
minutes = time[1];
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
var nextMinutes = minutes + minutesToAdd;
|
|
14
|
+
var remainderMinutes = modulo(nextMinutes, MINUTES_IN_HOUR);
|
|
15
|
+
|
|
16
|
+
if (remainderMinutes >= 0) {
|
|
17
|
+
var nextHours = hours + Math.floor(nextMinutes / MINUTES_IN_HOUR);
|
|
18
|
+
hours = modulo(nextHours, HOURS_IN_DAY);
|
|
19
|
+
minutes = remainderMinutes;
|
|
20
|
+
} else {
|
|
21
|
+
minutes = nextMinutes;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return [hours, minutes];
|
|
19
25
|
}
|
|
20
26
|
export function addTimeToDate(date, time) {
|
|
21
27
|
var hours = time[0],
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Box } from '../Box';
|
|
5
|
+
import Button from '../Button';
|
|
6
|
+
import { colors } from '../system/colors';
|
|
7
|
+
import { StackView } from '../StackView';
|
|
8
|
+
import Text from '../Text';
|
|
9
|
+
import { useThemeProps } from '../system';
|
|
10
|
+
export function ToggleSwitch(props) {
|
|
11
|
+
var _props$disabled = props.disabled,
|
|
12
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
13
|
+
isActive = props.isActive,
|
|
14
|
+
label = props.label,
|
|
15
|
+
onClick = props.onClick,
|
|
16
|
+
_props$size = props.size,
|
|
17
|
+
size = _props$size === void 0 ? 'md' : _props$size,
|
|
18
|
+
tooltip = props.tooltip,
|
|
19
|
+
restProps = _objectWithoutPropertiesLoose(props, ["disabled", "isActive", "label", "onClick", "size", "tooltip"]);
|
|
20
|
+
|
|
21
|
+
var _useThemeProps = useThemeProps('toggleSwitch', restProps),
|
|
22
|
+
backgroundColor = _useThemeProps.backgroundColor;
|
|
23
|
+
|
|
24
|
+
var toggleButtonProps = {
|
|
25
|
+
height: 2.5,
|
|
26
|
+
width: 4.375
|
|
27
|
+
};
|
|
28
|
+
var toggleNotchProps = {
|
|
29
|
+
height: 2,
|
|
30
|
+
width: 2
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
if (size === 'sm') {
|
|
34
|
+
toggleButtonProps = {
|
|
35
|
+
height: 2.25,
|
|
36
|
+
width: 4
|
|
37
|
+
};
|
|
38
|
+
toggleNotchProps = {
|
|
39
|
+
height: 1.75,
|
|
40
|
+
width: 1.75
|
|
41
|
+
};
|
|
42
|
+
} else if (size === 'xs') {
|
|
43
|
+
toggleButtonProps = {
|
|
44
|
+
height: 2,
|
|
45
|
+
width: 3.5
|
|
46
|
+
};
|
|
47
|
+
toggleNotchProps = {
|
|
48
|
+
height: 1.5,
|
|
49
|
+
width: 1.5
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return /*#__PURE__*/React.createElement(StackView, {
|
|
54
|
+
alignment: "center",
|
|
55
|
+
axis: "horizontal",
|
|
56
|
+
spacing: size === 'xs' ? 0.5 : size === 'sm' ? 0.75 : 1
|
|
57
|
+
}, /*#__PURE__*/React.createElement(Button, _extends({
|
|
58
|
+
as: "button",
|
|
59
|
+
backgroundColor: disabled ? colors.grays.light.neutral81 : isActive ? backgroundColor : colors.grays.light.neutral62,
|
|
60
|
+
onClick: onClick,
|
|
61
|
+
opacity: 1,
|
|
62
|
+
position: "relative",
|
|
63
|
+
radius: "pill",
|
|
64
|
+
theme: false,
|
|
65
|
+
disabled: disabled,
|
|
66
|
+
tooltip: tooltip
|
|
67
|
+
}, toggleButtonProps, restProps), /*#__PURE__*/React.createElement(Box, _extends({
|
|
68
|
+
background: "#fff",
|
|
69
|
+
left: 0.25,
|
|
70
|
+
pointerEvents: "none",
|
|
71
|
+
position: "absolute",
|
|
72
|
+
radius: "circle",
|
|
73
|
+
top: 0.25,
|
|
74
|
+
transform: "translateX(" + (isActive ? 'calc(100% - 1px)' : '0%') + ")",
|
|
75
|
+
transition: "120ms"
|
|
76
|
+
}, toggleNotchProps))), label && /*#__PURE__*/React.createElement(Text, {
|
|
77
|
+
size: size === 'xs' ? 5 : size === 'sm' ? 4 : 3
|
|
78
|
+
}, label));
|
|
79
|
+
}
|
|
80
|
+
export default ToggleSwitch;
|