@jobber/components 4.14.1 → 4.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Grid.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./dist/Grid";
package/Grid.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+
7
+ var Grid = require("./dist/Grid");
8
+
9
+ Object.keys(Grid).forEach(function(key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ Object.defineProperty(exports, key, {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return Grid[key];
15
+ },
16
+ });
17
+ });
@@ -0,0 +1,25 @@
1
+ import { ReactElement } from "react";
2
+ import { GridCell, GridCellProps } from "./GridCell";
3
+ import alignments from "./GridAlign.css";
4
+ interface GridProps {
5
+ /**
6
+ * Add spacing between elements.
7
+ */
8
+ readonly gap?: boolean;
9
+ /**
10
+ * Adjust the alignment of columns. We only support a few select properties
11
+ * from `align-items` due to the nature of the other properties acting the
12
+ * same. Read more about [align-items](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items) property values.
13
+ */
14
+ readonly alignItems?: keyof typeof alignments;
15
+ /**
16
+ * Array of `Grid.Cell` children
17
+ */
18
+ readonly children: Array<ReactElement<GridCellProps>>;
19
+ }
20
+ export declare const GRID_TEST_ID = "ATL-Grid";
21
+ export declare function Grid({ alignItems, gap, children, }: GridProps): JSX.Element;
22
+ export declare namespace Grid {
23
+ var Cell: typeof GridCell;
24
+ }
25
+ export {};
@@ -0,0 +1,22 @@
1
+ import { PropsWithChildren } from "react";
2
+ /**
3
+ * Breakpoints that we support
4
+ */
5
+ declare const breakpoints: readonly ["xs", "sm", "md", "lg", "xl"];
6
+ /**
7
+ * Grab the type from breakpoints const
8
+ */
9
+ type ValuesOf<T extends readonly unknown[]> = T[number];
10
+ type Breakpoints = ValuesOf<typeof breakpoints>;
11
+ type ColumnSizes = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
12
+ export interface GridCellProps {
13
+ /**
14
+ * Set how many columns wide the cell is in the grid
15
+ */
16
+ readonly size: {
17
+ [Breakpoint in Breakpoints]?: ColumnSizes;
18
+ };
19
+ }
20
+ export declare const GRID_CELL_TEST_ID = "ATL-Grid-GridCell";
21
+ export declare function GridCell({ size, children }: PropsWithChildren<GridCellProps>): JSX.Element;
22
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./GridCell";
@@ -0,0 +1 @@
1
+ export * from "./Grid";
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var classnames = require('classnames');
7
+ var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
13
+
14
+ var css_248z$2 = "._3ktwlV3aNFk- {\n grid-column: initial;\n grid-column-end: span var(--gridCell--size-xs);\n}@media (min-width:490px) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-sm);\n}\n }@media (--small-screens-and-up) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-sm);\n}\n }@media (min-width: 640px) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-md);\n}\n }@media (--medium-screens) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-md);\n}\n }@media (min-width:1440px) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-lg);\n}\n }@media (--large-screens-and-up) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-lg);\n}\n }@media (min-width:1680px) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-xl);\n}\n }@media (--extra-large-screens-and-up) {._3ktwlV3aNFk- {\n grid-column-end: span var(--gridCell--size-xl);\n}\n }\n";
15
+ var styles$1 = {"gridCell":"_3ktwlV3aNFk-"};
16
+ styleInject_es.styleInject(css_248z$2);
17
+
18
+ /**
19
+ * Breakpoints that we support
20
+ */
21
+ const breakpoints = ["xs", "sm", "md", "lg", "xl"];
22
+ const MAX_COLUMNS = 12;
23
+ const GRID_CELL_TEST_ID = "ATL-Grid-GridCell";
24
+ function GridCell({ size, children }) {
25
+ /**
26
+ * Build CSS variables for column sizes for all possible breakpoints to size
27
+ * the column
28
+ */
29
+ const cssSizeVariables = breakpoints.reduce(getSizeCSSVariables(size), {});
30
+ return (React__default["default"].createElement("div", { "data-testid": GRID_CELL_TEST_ID, className: styles$1.gridCell, style: cssSizeVariables }, children));
31
+ }
32
+ function getSizeCSSVariables(size) {
33
+ return (breakpointsObj, currentSize) => {
34
+ let columnSize = size[currentSize];
35
+ // If a column size isn't provided in the size prop, use the previous
36
+ // breakpoint's value
37
+ if (!columnSize) {
38
+ const existingValues = Object.values(breakpointsObj);
39
+ const lastKnownValue = existingValues[existingValues.length - 1];
40
+ columnSize = lastKnownValue || MAX_COLUMNS;
41
+ }
42
+ breakpointsObj[`--gridCell--size-${currentSize}`] = columnSize;
43
+ return breakpointsObj;
44
+ };
45
+ }
46
+
47
+ var css_248z$1 = ".NqFGJV-UF3Q- {\n display: grid;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n}\n\n.IZLiiSquUTM- {\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n@media (min-width:768px) {\n .IZLiiSquUTM- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n }\n}\n\n@media (--medium-screens-and-up) {\n .IZLiiSquUTM- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n }\n}\n";
48
+ var styles = {"grid":"NqFGJV-UF3Q-","gap":"IZLiiSquUTM-"};
49
+ styleInject_es.styleInject(css_248z$1);
50
+
51
+ var css_248z = "._8XlrWg3FV-Q- {\n -ms-flex-align: center;\n align-items: center;\n}\n\n.uKzqJPlYxJs- {\n -ms-flex-align: start;\n align-items: start;\n}\n\n.CSBjeFlj2xQ- {\n -ms-flex-align: end;\n align-items: end;\n}\n\n.BYyFdzONXyk- {\n -ms-flex-align: stretch;\n align-items: stretch;\n}\n";
52
+ var alignments = {"center":"_8XlrWg3FV-Q-","start":"uKzqJPlYxJs-","end":"CSBjeFlj2xQ-","stretch":"BYyFdzONXyk-"};
53
+ styleInject_es.styleInject(css_248z);
54
+
55
+ const GRID_TEST_ID = "ATL-Grid";
56
+ function Grid({ alignItems = "start", gap = true, children, }) {
57
+ const classnames = classnames__default["default"](styles.grid, alignments[alignItems], {
58
+ [styles.gap]: gap,
59
+ });
60
+ return (React__default["default"].createElement("div", { "data-testid": GRID_TEST_ID, className: classnames }, children));
61
+ }
62
+ Grid.Cell = GridCell;
63
+
64
+ exports.GRID_TEST_ID = GRID_TEST_ID;
65
+ exports.Grid = Grid;
@@ -99,7 +99,7 @@ function InputPhoneNumber(_a) {
99
99
  // Remove special characters from pattern
100
100
  const cleanValue = value.replace(new RegExp(`[${specialCharacters}]`, "g"), "");
101
101
  const cleanValueRequiredLength = (pattern.match(/\*/g) || []).length;
102
- if (cleanValue.length < cleanValueRequiredLength) {
102
+ if (cleanValue.length > 0 && cleanValue.length < cleanValueRequiredLength) {
103
103
  return `${errorSubject} must contain ${cleanValueRequiredLength} or more digits`;
104
104
  }
105
105
  if (typeof (validations === null || validations === void 0 ? void 0 : validations.validate) === "function") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.14.1",
3
+ "version": "4.15.1",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "dist/*"
20
20
  ],
21
21
  "dependencies": {
22
- "@jobber/design": "^0.38.2",
22
+ "@jobber/design": "^0.39.0",
23
23
  "@jobber/formatters": "*",
24
24
  "@jobber/hooks": "^2.1.1",
25
25
  "@popperjs/core": "^2.0.6",
@@ -83,5 +83,5 @@
83
83
  "> 1%",
84
84
  "IE 10"
85
85
  ],
86
- "gitHead": "4ad2f695bd5ee956977279e3d3d7b9f97b27cb6e"
86
+ "gitHead": "c9fc7baec569a9583a29e1f9e9016ffb192499f7"
87
87
  }
package/rollup.config.js CHANGED
@@ -27,7 +27,6 @@ export default {
27
27
  require.resolve("@jobber/design/src/responsiveBreakpoints.css"),
28
28
  ],
29
29
  }),
30
- // eslint-disable-next-line @typescript-eslint/no-var-requires
31
30
  require("postcss-preset-env")({
32
31
  stage: 1,
33
32
  preserve: true,