@jobber/components 4.71.5 → 4.71.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.
@@ -49,8 +49,8 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
49
49
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
50
50
  var jobberHooks__namespace = /*#__PURE__*/_interopNamespace(jobberHooks);
51
51
 
52
- var css_248z$3 = ".m5A5oeRFaMs- {\n position: relative;\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n overflow: hidden;\n}\n\n.cY-5BrIIUg8- {\n overflow: auto;\n}\n\n.y8xnHe7fwrI- {\n width: 100%;\n border-collapse: collapse;\n text-align: left;\n}\n\n.y8xnHe7fwrI- thead tr th {\n padding: calc(16px * 1);\n padding: var(--space-base);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n color: rgb(1, 41, 57);\n color: var(--color-heading);\n white-space: nowrap;\n}\n\n.y8xnHe7fwrI- thead tr th :first-child {\n display: -ms-flexbox;\n display: flex;\n}\n\n.y8xnHe7fwrI- tbody tr {\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.y8xnHe7fwrI- tbody tr:last-child {\n border-bottom: none;\n}\n\n.y8xnHe7fwrI- tbody tr td {\n padding: calc(16px * 1);\n padding: var(--space-base);\n}\n\n.y8xnHe7fwrI- tfoot {\n position: sticky;\n z-index: 1;\n width: 100%;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n border-top: calc(16px / 8) solid rgb(217, 223, 225);\n border-top: var(--border-thick) solid var(--color-border);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n bottom: 0;\n}\n\n.y8xnHe7fwrI- tfoot tr th {\n padding: calc(16px * 1);\n padding: var(--space-base);\n}\n\n.t8QYvdtkQXQ- thead tr th:first-child,\n.t8QYvdtkQXQ- tbody tr td:first-child {\n position: sticky;\n left: 0;\n z-index: 1;\n height: calc((16px * 3) + (16px / 4));\n height: calc(calc(16px * 3) + calc(16px / 4));\n height: calc(var(--space-largest) + var(--space-smaller));\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.t8QYvdtkQXQ- th:first-child::after,\n.t8QYvdtkQXQ- td:first-child::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n right: calc(-1 * (16px / 2));\n right: calc(-1 * calc(16px / 2));\n right: calc(-1 * var(--space-small));\n width: calc(16px / 2);\n width: var(--space-small);\n height: 100%;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.1) 0%,\n rgba(0, 0, 0, 0) 80%\n );\n background: linear-gradient(\n 90deg,\n rgba(var(--color-black--rgb), 0.1) 0%,\n rgba(var(--color-black--rgb), 0) 80%\n );\n}\n\n.Y21JuHX6fhk- {\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n z-index: 2;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.PJEX8dlqCMA-:first-child:hover {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n cursor: pointer;\n}\n\n._9ps4aWGs8W0-:hover {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n cursor: pointer;\n}\n\n._59XEEB8l5pI-:hover,\n._59XEEB8l5pI-:hover :first-child {\n background: rgb(238, 240, 242);\n background: var(--color-surface--background);\n cursor: pointer;\n}\n\n.a2BGGBkY5J8- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n -ms-flex-direction: column;\n flex-direction: column;\n top: calc(16px * 3);\n top: var(--space-largest);\n right: 0;\n bottom: calc(16px * 3);\n bottom: var(--space-largest);\n left: 0;\n width: 100%;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n";
53
- var styles$3 = {"dataTableContainer":"m5A5oeRFaMs-","tableContainer":"cY-5BrIIUg8-","table":"y8xnHe7fwrI-","pinFirstColumn":"t8QYvdtkQXQ-","stickyHeader":"Y21JuHX6fhk-","pinFirstHeaderSortable":"PJEX8dlqCMA-","sortableColumn":"_9ps4aWGs8W0-","clickableRow":"_59XEEB8l5pI-","emptyState":"a2BGGBkY5J8-"};
52
+ var css_248z$3 = ".m5A5oeRFaMs- {\n position: relative;\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n overflow: hidden;\n}\n\n.cY-5BrIIUg8- {\n overflow: auto;\n}\n\n.y8xnHe7fwrI- {\n width: 100%;\n border-collapse: collapse;\n text-align: left;\n}\n\n.y8xnHe7fwrI- thead tr th {\n padding: calc(16px * 1);\n padding: var(--space-base);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n color: rgb(1, 41, 57);\n color: var(--color-heading);\n white-space: nowrap;\n}\n\n.y8xnHe7fwrI- thead tr th :first-child {\n display: -ms-flexbox;\n display: flex;\n}\n\n.y8xnHe7fwrI- tbody tr {\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.y8xnHe7fwrI- tbody tr:last-child {\n border-bottom: none;\n}\n\n.y8xnHe7fwrI- tbody tr td {\n padding: calc(16px * 1);\n padding: var(--space-base);\n}\n\n.y8xnHe7fwrI- tfoot {\n position: sticky;\n z-index: 1;\n width: 100%;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n border-top: calc(16px / 8) solid rgb(217, 223, 225);\n border-top: var(--border-thick) solid var(--color-border);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n bottom: 0;\n}\n\n.y8xnHe7fwrI- tfoot tr th {\n padding: calc(16px * 1);\n padding: var(--space-base);\n}\n\n.t8QYvdtkQXQ- thead tr th:first-child,\n.t8QYvdtkQXQ- tbody tr td:first-child {\n position: sticky;\n left: 0;\n z-index: 1;\n height: calc((16px * 3) + (16px / 4));\n height: calc(calc(16px * 3) + calc(16px / 4));\n height: calc(var(--space-largest) + var(--space-smaller));\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.t8QYvdtkQXQ- tbody tr td.UGku9HGjQn0- {\n display: table-cell;\n position: static;\n}\n\n.t8QYvdtkQXQ- th:first-child::after,\n.t8QYvdtkQXQ- td:first-child::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n right: calc(-1 * (16px / 2));\n right: calc(-1 * calc(16px / 2));\n right: calc(-1 * var(--space-small));\n width: calc(16px / 2);\n width: var(--space-small);\n height: 100%;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.1) 0%,\n rgba(0, 0, 0, 0) 80%\n );\n background: linear-gradient(\n 90deg,\n rgba(var(--color-black--rgb), 0.1) 0%,\n rgba(var(--color-black--rgb), 0) 80%\n );\n}\n\n.Y21JuHX6fhk- {\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n z-index: 2;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.PJEX8dlqCMA-:first-child:hover {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n cursor: pointer;\n}\n\n._9ps4aWGs8W0-:hover {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n cursor: pointer;\n}\n\n._59XEEB8l5pI-:hover,\n._59XEEB8l5pI-:hover :first-child {\n background: rgb(238, 240, 242);\n background: var(--color-surface--background);\n cursor: pointer;\n}\n\n.a2BGGBkY5J8- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n -ms-flex-direction: column;\n flex-direction: column;\n top: calc(16px * 3);\n top: var(--space-largest);\n right: 0;\n bottom: calc(16px * 3);\n bottom: var(--space-largest);\n left: 0;\n width: 100%;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n";
53
+ var styles$3 = {"dataTableContainer":"m5A5oeRFaMs-","tableContainer":"cY-5BrIIUg8-","table":"y8xnHe7fwrI-","pinFirstColumn":"t8QYvdtkQXQ-","emptyStateCell":"UGku9HGjQn0-","stickyHeader":"Y21JuHX6fhk-","pinFirstHeaderSortable":"PJEX8dlqCMA-","sortableColumn":"_9ps4aWGs8W0-","clickableRow":"_59XEEB8l5pI-","emptyState":"a2BGGBkY5J8-"};
54
54
  styleInject_es.styleInject(css_248z$3);
55
55
 
56
56
  function BodyLoading({ table }) {
@@ -80,7 +80,8 @@ function Body({ table, onRowClick, emptyState, loading, }) {
80
80
  })));
81
81
  }))) : (React__default["default"].createElement("tbody", null,
82
82
  React__default["default"].createElement("tr", { className: bodyRowClasses },
83
- React__default["default"].createElement("td", { colSpan: table.getAllColumns().length, className: classnames__default["default"](styles$3.emptyState) }, emptyState))))));
83
+ React__default["default"].createElement("td", { colSpan: table.getAllColumns().length, className: styles$3.emptyStateCell },
84
+ React__default["default"].createElement("div", { className: styles$3.emptyState }, emptyState)))))));
84
85
  }
85
86
 
86
87
  function createTableSettings(data, columns, options) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormatFile = require('../FormatFile-aae6c6e2.js');
5
+ var FormatFile = require('../FormatFile-cc949eaf.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('filesize');
@@ -53,11 +53,52 @@ function InternalThumbnailImage({ file }) {
53
53
  }
54
54
  }
55
55
 
56
+ // This function comes from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator
57
+ function getClientBrowser(userAgent) {
58
+ // The order matters here, and this may report false positives for unlisted browsers.
59
+ if (userAgent.includes("Firefox")) {
60
+ // "Mozilla/5.0 (X11; Linux i686; rv:104.0) Gecko/20100101 Firefox/104.0"
61
+ return "Mozilla Firefox";
62
+ }
63
+ else if (userAgent.includes("SamsungBrowser")) {
64
+ // "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36"
65
+ return "Samsung Internet";
66
+ }
67
+ else if (userAgent.includes("Opera") || userAgent.includes("OPR")) {
68
+ // "Mozilla/5.0 (Macintosh; Intel Mac OS X 12_5_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 OPR/90.0.4480.54"
69
+ return "Opera";
70
+ }
71
+ else if (userAgent.includes("Edge")) {
72
+ // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
73
+ return "Microsoft Edge (Legacy)";
74
+ }
75
+ else if (userAgent.includes("Edg")) {
76
+ // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 Edg/104.0.1293.70"
77
+ return "Microsoft Edge (Chromium)";
78
+ }
79
+ else if (userAgent.includes("Chrome")) {
80
+ // "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
81
+ return "Google Chrome or Chromium";
82
+ }
83
+ else if (userAgent.includes("Safari")) {
84
+ // "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Mobile/15E148 Safari/604.1"
85
+ return "Apple Safari";
86
+ }
87
+ else {
88
+ return "unknown";
89
+ }
90
+ }
91
+ function isSafari(userAgent) {
92
+ return getClientBrowser(userAgent) === "Apple Safari";
93
+ }
94
+
56
95
  function InternalThumbnail({ compact = false, size, file, }) {
57
96
  const { name, type } = file;
58
97
  const iconName = getIconNameFromType(type);
59
98
  const hasName = Boolean(name) && compact;
60
- if (type.startsWith("image/")) {
99
+ const nonHeicImage = !type.startsWith("image/heic");
100
+ const userAgent = typeof document === "undefined" ? "" : window.navigator.userAgent;
101
+ if (type.startsWith("image/") && (nonHeicImage || isSafari(userAgent))) {
61
102
  return React__default["default"].createElement(InternalThumbnailImage, { file: file });
62
103
  }
63
104
  return (React__default["default"].createElement("div", { className: classnames__default["default"](styles$1.content, styles$1[size], {
@@ -69,7 +110,7 @@ function InternalThumbnail({ compact = false, size, file, }) {
69
110
  }
70
111
  function getIconNameFromType(mimeType) {
71
112
  if (mimeType.startsWith("image/"))
72
- return "camera";
113
+ return "image";
73
114
  if (mimeType.startsWith("video/"))
74
115
  return "video";
75
116
  switch (mimeType) {
@@ -6,7 +6,7 @@ var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
8
  var LightBox = require('../LightBox-a89d8863.js');
9
- var FormatFile = require('../FormatFile-aae6c6e2.js');
9
+ var FormatFile = require('../FormatFile-cc949eaf.js');
10
10
  var Button = require('../Button-b73a5e01.js');
11
11
  require('framer-motion');
12
12
  require('react-dom');
@@ -0,0 +1,7 @@
1
+ export declare function getClientBrowser(userAgent: string): "Mozilla Firefox" | "Samsung Internet" | "Opera" | "Microsoft Edge (Legacy)" | "Microsoft Edge (Chromium)" | "Google Chrome or Chromium" | "Apple Safari" | "unknown";
2
+ export declare function isSafari(userAgent: string): boolean;
3
+ export declare function isChrome(userAgent: string): boolean;
4
+ export declare function isFirefox(userAgent: string): boolean;
5
+ export declare function isEdge(userAgent: string): boolean;
6
+ export declare function isOpera(userAgent: string): boolean;
7
+ export declare function isSamsung(userAgent: string): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.71.5",
3
+ "version": "4.71.7",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -83,5 +83,5 @@
83
83
  "> 1%",
84
84
  "IE 10"
85
85
  ],
86
- "gitHead": "230aea880121a427aba1fe15bed1ba7758a6fae9"
86
+ "gitHead": "6e8e475fb1cc79a9176903603124e1b8c27c2571"
87
87
  }