@jobber/components 6.109.5 → 6.110.0

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.
@@ -9,11 +9,11 @@ require('../Typography-cjs.js');
9
9
  require('../Text-cjs.js');
10
10
  require('../Content-cjs.js');
11
11
  require('../Switch-cjs.js');
12
+ require('../Icon-cjs.js');
13
+ require('@jobber/design');
12
14
  require('../Button-cjs.js');
13
15
  require('react-router-dom');
14
16
  require('../tslib.es6-cjs.js');
15
- require('../Icon-cjs.js');
16
- require('@jobber/design');
17
17
  require('../Emphasis-cjs.js');
18
18
  require('../Markdown-cjs.js');
19
19
  require('react/jsx-runtime');
@@ -7,11 +7,11 @@ import '../Typography-es.js';
7
7
  import '../Text-es.js';
8
8
  import '../Content-es.js';
9
9
  import '../Switch-es.js';
10
+ import '../Icon-es.js';
11
+ import '@jobber/design';
10
12
  import '../Button-es.js';
11
13
  import 'react-router-dom';
12
14
  import '../tslib.es6-es.js';
13
- import '../Icon-es.js';
14
- import '@jobber/design';
15
15
  import '../Emphasis-es.js';
16
16
  import '../Markdown-es.js';
17
17
  import 'react/jsx-runtime';
@@ -3,7 +3,8 @@
3
3
  var Switch = require('../Switch-cjs.js');
4
4
  require('react');
5
5
  require('classnames');
6
- require('../Typography-cjs.js');
6
+ require('../Icon-cjs.js');
7
+ require('@jobber/design');
7
8
 
8
9
 
9
10
 
@@ -1,4 +1,5 @@
1
1
  export { S as Switch } from '../Switch-es.js';
2
2
  import 'react';
3
3
  import 'classnames';
4
- import '../Typography-es.js';
4
+ import '../Icon-es.js';
5
+ import '@jobber/design';
@@ -2,9 +2,9 @@
2
2
 
3
3
  var React = require('react');
4
4
  var classnames = require('classnames');
5
- var Typography = require('./Typography-cjs.js');
5
+ var Icon = require('./Icon-cjs.js');
6
6
 
7
- var styles = {"switch":"rVg6dYYBFN4-","track":"yyISARGmmJo-","isChecked":"_40c6OIH33p8-","toggle":"zA0Fmn8IIZI-","label":"HLUIVXs3n5w-","pip":"PiwOCJz7Zto-","disabled":"e-cSZjkHGw8-","spinning":"_0lBGF-nXMrc-"};
7
+ var styles = {"switch":"rVg6dYYBFN4-","track":"yyISARGmmJo-","isChecked":"_40c6OIH33p8-","toggle":"zA0Fmn8IIZI-","disabled":"e-cSZjkHGw8-","pip":"PiwOCJz7Zto-","icon":"JS-CLzHa9-I-","spinning":"_0lBGF-nXMrc-"};
8
8
 
9
9
  function Switch({ value: providedValue, ariaLabel, name, disabled, onChange, }) {
10
10
  const [statefulValue, setValue] = React.useState(false);
@@ -25,24 +25,21 @@ function Switch({ value: providedValue, ariaLabel, name, disabled, onChange, })
25
25
  });
26
26
  return (React.createElement(React.Fragment, null,
27
27
  React.createElement("button", { id: name, type: "button", role: "switch", "aria-checked": value, "aria-label": ariaLabel, className: className, onClick: toggleSwitch, disabled: disabled },
28
- React.createElement("span", { className: styles.toggle },
29
- React.createElement(Label, { as: "On", disabled: disabled }),
30
- React.createElement("span", { className: styles.pip }),
31
- React.createElement(Label, { as: "Off", disabled: disabled }))),
28
+ React.createElement("span", { className: styles.icon, "aria-hidden": "true" },
29
+ React.createElement(Icon.Icon, Object.assign({ size: "small", name: value ? "checkmark" : "cross" }, getIconColor(value, disabled !== null && disabled !== void 0 ? disabled : false)))),
30
+ React.createElement("span", { className: styles.toggle })),
32
31
  React.createElement("input", { name: name, type: "hidden", value: String(value) })));
33
32
  }
34
- function Label({ as, disabled }) {
35
- const getTextColor = () => {
36
- if (disabled) {
37
- return "grey";
38
- }
39
- else if (as === "On") {
40
- return "white";
41
- }
42
- return "greyBlue";
33
+ function getIconColor(isChecked, isDisabled) {
34
+ const checkedColor = {
35
+ color: "surface",
36
+ };
37
+ const uncheckedColor = {
38
+ customColor: isDisabled
39
+ ? "var(--color-disabled)"
40
+ : "var(--color-inactive--onSurface)",
43
41
  };
44
- return (React.createElement("span", { className: styles.label },
45
- React.createElement(Typography.Typography, { element: "span", textColor: getTextColor(), size: "small", fontWeight: "bold", textCase: "uppercase" }, as)));
42
+ return isChecked ? checkedColor : uncheckedColor;
46
43
  }
47
44
 
48
45
  exports.Switch = Switch;
package/dist/Switch-es.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import React__default, { useState } from 'react';
2
2
  import classnames from 'classnames';
3
- import { T as Typography } from './Typography-es.js';
3
+ import { I as Icon } from './Icon-es.js';
4
4
 
5
- var styles = {"switch":"rVg6dYYBFN4-","track":"yyISARGmmJo-","isChecked":"_40c6OIH33p8-","toggle":"zA0Fmn8IIZI-","label":"HLUIVXs3n5w-","pip":"PiwOCJz7Zto-","disabled":"e-cSZjkHGw8-","spinning":"_0lBGF-nXMrc-"};
5
+ var styles = {"switch":"rVg6dYYBFN4-","track":"yyISARGmmJo-","isChecked":"_40c6OIH33p8-","toggle":"zA0Fmn8IIZI-","disabled":"e-cSZjkHGw8-","pip":"PiwOCJz7Zto-","icon":"JS-CLzHa9-I-","spinning":"_0lBGF-nXMrc-"};
6
6
 
7
7
  function Switch({ value: providedValue, ariaLabel, name, disabled, onChange, }) {
8
8
  const [statefulValue, setValue] = useState(false);
@@ -23,24 +23,21 @@ function Switch({ value: providedValue, ariaLabel, name, disabled, onChange, })
23
23
  });
24
24
  return (React__default.createElement(React__default.Fragment, null,
25
25
  React__default.createElement("button", { id: name, type: "button", role: "switch", "aria-checked": value, "aria-label": ariaLabel, className: className, onClick: toggleSwitch, disabled: disabled },
26
- React__default.createElement("span", { className: styles.toggle },
27
- React__default.createElement(Label, { as: "On", disabled: disabled }),
28
- React__default.createElement("span", { className: styles.pip }),
29
- React__default.createElement(Label, { as: "Off", disabled: disabled }))),
26
+ React__default.createElement("span", { className: styles.icon, "aria-hidden": "true" },
27
+ React__default.createElement(Icon, Object.assign({ size: "small", name: value ? "checkmark" : "cross" }, getIconColor(value, disabled !== null && disabled !== void 0 ? disabled : false)))),
28
+ React__default.createElement("span", { className: styles.toggle })),
30
29
  React__default.createElement("input", { name: name, type: "hidden", value: String(value) })));
31
30
  }
32
- function Label({ as, disabled }) {
33
- const getTextColor = () => {
34
- if (disabled) {
35
- return "grey";
36
- }
37
- else if (as === "On") {
38
- return "white";
39
- }
40
- return "greyBlue";
31
+ function getIconColor(isChecked, isDisabled) {
32
+ const checkedColor = {
33
+ color: "surface",
34
+ };
35
+ const uncheckedColor = {
36
+ customColor: isDisabled
37
+ ? "var(--color-disabled)"
38
+ : "var(--color-inactive--onSurface)",
41
39
  };
42
- return (React__default.createElement("span", { className: styles.label },
43
- React__default.createElement(Typography, { element: "span", textColor: getTextColor(), size: "small", fontWeight: "bold", textCase: "uppercase" }, as)));
40
+ return isChecked ? checkedColor : uncheckedColor;
44
41
  }
45
42
 
46
43
  export { Switch as S };
package/dist/styles.css CHANGED
@@ -7850,15 +7850,19 @@ h2.react-datepicker__current-month {
7850
7850
  .rVg6dYYBFN4- {
7851
7851
  --switch--width: 48px;
7852
7852
  --switch--pipSize: 16px;
7853
- --switch--labelWidth: calc(var(--switch--pipSize) * 1.3);
7854
7853
  --switch--borderOffset: var(--border-thick);
7854
+ --switch-pipOnPosition: calc(
7855
+ var(--switch--width) - var(--switch--pipSize) -
7856
+ (var(--switch--borderOffset) * 2) - var(--space-smallest)
7857
+ );
7858
+ --switch-pipOffPosition: var(--space-smallest);
7855
7859
  }
7856
7860
 
7857
7861
  .yyISARGmmJo-,
7858
7862
  .yyISARGmmJo- * {
7859
7863
  box-sizing: border-box;
7860
- transition: all 200ms;
7861
- transition: all var(--timing-base);
7864
+ transition: all 200ms ease-in-out;
7865
+ transition: all var(--timing-base) ease-in-out;
7862
7866
  }
7863
7867
 
7864
7868
  .yyISARGmmJo- {
@@ -7872,8 +7876,8 @@ h2.react-datepicker__current-month {
7872
7876
  border-radius: var(--switch--pipSize);
7873
7877
  overflow: hidden;
7874
7878
  line-height: normal;
7875
- background-color: rgba(255, 255, 255, 1);
7876
- background-color: var(--color-surface);
7879
+ background-color: hsl(195, 12%, 94%);
7880
+ background-color: var(--color-inactive--surface);
7877
7881
  cursor: pointer;
7878
7882
  -webkit-appearance: none;
7879
7883
  appearance: none;
@@ -7900,78 +7904,46 @@ h2.react-datepicker__current-month {
7900
7904
  background-color: var(--color-interactive);
7901
7905
  }
7902
7906
 
7903
- .zA0Fmn8IIZI- {
7904
- display: -ms-flexbox;
7905
- display: flex;
7906
- position: relative;
7907
- margin-left: calc(var(--switch--width) / -2);
7908
- pointer-events: none;
7909
- -ms-flex: 1 1 100%;
7910
- flex: 1 1 100%;
7911
- -ms-flex-align: center;
7912
- align-items: center;
7913
- }
7914
-
7915
- ._40c6OIH33p8- .zA0Fmn8IIZI- {
7916
- margin-left: 0;
7917
- }
7918
-
7919
- .HLUIVXs3n5w- {
7920
- display: -ms-flexbox;
7921
- display: flex;
7922
- position: relative;
7923
- min-width: var(--switch--labelWidth);
7924
- margin-top: 1px;
7925
- margin-top: var(--space-minuscule);
7926
- -webkit-user-select: none;
7927
- -ms-user-select: none;
7928
- user-select: none;
7929
- pointer-events: none;
7930
- -ms-flex-align: center;
7931
- align-items: center;
7932
- -ms-flex-pack: center;
7933
- justify-content: center;
7934
- opacity: 0;
7935
- }
7936
-
7937
- .HLUIVXs3n5w-:first-of-type {
7938
- padding-left: 8px;
7939
- padding-left: var(--space-small);
7940
- }
7941
-
7942
- .HLUIVXs3n5w-:last-of-type {
7943
- padding-right: 8px;
7944
- padding-right: var(--space-small);
7907
+ ._40c6OIH33p8-:hover {
7908
+ border-color: hsl(107, 65%, 24%);
7909
+ border-color: var(--color-interactive--hover);
7910
+ background-color: hsl(107, 65%, 24%);
7911
+ background-color: var(--color-interactive--hover);
7945
7912
  }
7946
7913
 
7947
- .PiwOCJz7Zto- {
7948
- -ms-flex: 0 0 auto;
7949
- flex: 0 0 auto;
7914
+ .zA0Fmn8IIZI- {
7950
7915
  width: var(--switch--pipSize);
7951
7916
  height: var(--switch--pipSize);
7952
7917
  border: none;
7953
7918
  border-radius: 100%;
7954
7919
  border-radius: var(--radius-circle);
7955
- background-color: hsl(198, 35%, 21%);
7956
- background-color: var(--color-interactive--subtle);
7957
- transition: all 100ms ease-out;
7958
- transition: all var(--timing-quick) ease-out;
7920
+ background-color: hsl(197, 90%, 12%);
7921
+ background-color: var(--color-inactive--onSurface);
7922
+ -webkit-transform: translateX(var(--switch-pipOffPosition));
7923
+ transform: translateX(var(--switch-pipOffPosition));
7959
7924
  }
7960
7925
 
7961
- ._40c6OIH33p8- .PiwOCJz7Zto- {
7926
+ ._40c6OIH33p8- .zA0Fmn8IIZI- {
7962
7927
  border-color: hsl(107, 58%, 33%);
7963
7928
  border-color: var(--color-interactive);
7964
7929
  background-color: rgba(255, 255, 255, 1);
7965
7930
  background-color: var(--color-surface);
7931
+ -webkit-transform: translateX(var(--switch-pipOnPosition));
7932
+ transform: translateX(var(--switch-pipOnPosition));
7966
7933
  }
7967
7934
 
7968
- .e-cSZjkHGw8- .PiwOCJz7Zto- {
7935
+ .e-cSZjkHGw8- .zA0Fmn8IIZI- {
7969
7936
  border-color: hsl(0, 0%, 93%);
7970
7937
  border-color: var(--color-disabled--secondary);
7971
7938
  background-color: hsl(0, 0%, 58%);
7972
7939
  background-color: var(--color-disabled);
7973
7940
  }
7974
7941
 
7942
+ .e-cSZjkHGw8-._40c6OIH33p8- .zA0Fmn8IIZI- {
7943
+ background-color: rgba(255, 255, 255, 1);
7944
+ background-color: var(--color-surface);
7945
+ }
7946
+
7975
7947
  .e-cSZjkHGw8- {
7976
7948
  border-color: hsl(0, 0%, 58%);
7977
7949
  border-color: var(--color-disabled);
@@ -7995,6 +7967,63 @@ h2.react-datepicker__current-month {
7995
7967
  border-color: var(--color-disabled);
7996
7968
  }
7997
7969
 
7970
+ .JS-CLzHa9-I- {
7971
+ display: -ms-flexbox;
7972
+ display: flex;
7973
+ position: absolute;
7974
+ -webkit-transform: translateX(
7975
+ calc(
7976
+ var(--switch-pipOffPosition) + var(--switch--pipSize) +
7977
+ 4px
7978
+ )
7979
+ );
7980
+ -webkit-transform: translateX(
7981
+ calc(
7982
+ var(--switch-pipOffPosition) + var(--switch--pipSize) +
7983
+ var(--space-smaller)
7984
+ )
7985
+ );
7986
+ transform: translateX(
7987
+ calc(
7988
+ var(--switch-pipOffPosition) + var(--switch--pipSize) +
7989
+ 4px
7990
+ )
7991
+ );
7992
+ transform: translateX(
7993
+ calc(
7994
+ var(--switch-pipOffPosition) + var(--switch--pipSize) +
7995
+ var(--space-smaller)
7996
+ )
7997
+ );
7998
+ }
7999
+
8000
+ ._40c6OIH33p8- .JS-CLzHa9-I- {
8001
+ -webkit-transform: translateX(
8002
+ calc(
8003
+ var(--switch-pipOnPosition) - var(--switch--pipSize) -
8004
+ 4px
8005
+ )
8006
+ );
8007
+ -webkit-transform: translateX(
8008
+ calc(
8009
+ var(--switch-pipOnPosition) - var(--switch--pipSize) -
8010
+ var(--space-smaller)
8011
+ )
8012
+ );
8013
+ transform: translateX(
8014
+ calc(
8015
+ var(--switch-pipOnPosition) - var(--switch--pipSize) -
8016
+ 4px
8017
+ )
8018
+ );
8019
+ transform: translateX(
8020
+ calc(
8021
+ var(--switch-pipOnPosition) - var(--switch--pipSize) -
8022
+ var(--space-smaller)
8023
+ )
8024
+ );
8025
+ }
8026
+
7998
8027
  .ViFkIUcS6PM- {
7999
8028
  font-style: normal;
8000
8029
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "6.109.5",
3
+ "version": "6.110.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -538,5 +538,5 @@
538
538
  "> 1%",
539
539
  "IE 10"
540
540
  ],
541
- "gitHead": "f7a0a568d4416a7f2e691260e61efebe85541559"
541
+ "gitHead": "8c986f28ec1bc68fb16cc16110bb76af64ab3e1e"
542
542
  }