@servicetitan/design-system 14.0.0 → 14.0.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.
Files changed (52) hide show
  1. package/dist/components/AnvilSelect/components/Trigger.css +1 -0
  2. package/dist/components/AnvilSelect/components/Trigger.css.map +1 -1
  3. package/dist/components/AnvilSelect/index.css +1 -0
  4. package/dist/components/AnvilSelect/index.css.map +1 -1
  5. package/dist/components/Button/Button.css +22 -35
  6. package/dist/components/Button/Button.css.map +1 -1
  7. package/dist/components/Button/Button.js +1 -6
  8. package/dist/components/Button/Button.js.map +1 -1
  9. package/dist/components/Button/index.css +22 -35
  10. package/dist/components/Button/index.css.map +1 -1
  11. package/dist/components/Checkbox/Checkbox.css +1 -1
  12. package/dist/components/Checkbox/index.css +1 -1
  13. package/dist/components/DatePicker/DatePicker.css +1 -1
  14. package/dist/components/DatePicker/index.css +1 -1
  15. package/dist/components/DateRangePicker/DateRangePicker.js +23 -8
  16. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  17. package/dist/components/Icon/Icon.css +23 -36
  18. package/dist/components/Icon/Icon.css.map +1 -1
  19. package/dist/components/Icon/index.css +23 -36
  20. package/dist/components/Icon/index.css.map +1 -1
  21. package/dist/components/Radio/Radio.css +1 -1
  22. package/dist/components/Radio/index.css +1 -1
  23. package/dist/components/Table/Table.css +1 -1
  24. package/dist/components/Table/index.css +1 -1
  25. package/dist/components/Takeover/Takeover.js +3 -1
  26. package/dist/components/Takeover/Takeover.js.map +1 -1
  27. package/dist/components/Thumbnail/Thumbnail.css +1 -1
  28. package/dist/components/Thumbnail/index.css +1 -1
  29. package/dist/components/TimePicker/utils/timezoneUtils.js +1 -1
  30. package/dist/components/TimePicker/utils/timezoneUtils.js.map +1 -1
  31. package/dist/components/Toast/Toast.d.ts +5 -0
  32. package/dist/components/Toast/Toast.js +9 -1
  33. package/dist/components/Toast/Toast.js.map +1 -1
  34. package/dist/components/Toast/ToastGroup.js +3 -1
  35. package/dist/components/Toast/ToastGroup.js.map +1 -1
  36. package/dist/components/Toast/ToastGroupContext.d.ts +4 -0
  37. package/dist/components/Toast/ToastGroupContext.js +3 -0
  38. package/dist/components/Toast/ToastGroupContext.js.map +1 -0
  39. package/dist/components/index.css +27 -39
  40. package/dist/components/index.css.map +1 -1
  41. package/dist/global/index.css +1 -1
  42. package/dist/global/version.css +1 -1
  43. package/dist/system-light.css +1 -1
  44. package/dist/system-light.min.css +1 -1
  45. package/dist/system.css +28 -40
  46. package/dist/system.css.map +1 -1
  47. package/dist/system.min.css +2 -2
  48. package/dist/themes/index.css +1 -1
  49. package/dist/themes/kendo/index.css +1 -1
  50. package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js +36 -10
  51. package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js.map +1 -1
  52. package/package.json +7 -7
@@ -193,6 +193,7 @@
193
193
  border-radius: 100%;
194
194
  margin-top: 1px;
195
195
  padding: 1px 4px;
196
+ background: transparent;
196
197
  }
197
198
  .Trigger .Trigger__clear.Button::before {
198
199
  border-radius: 100%;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../src/utilities/_visually-hidden.scss","../../../../src/components/Form/Form.scss","../../../../src/components/AnvilSelect/AnvilSelect.scss","../../../../src/utilities/_component-reset.scss","../../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../../src/components/AnvilSelect/components/Trigger.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAjEc;;AAkEd;EAAmB,cAnEL;;;AAsEf;EACC,cAvEc;EAwEd,OA7EY;EA8EZ,kBA5EkB;;AA8ElB;EAEC,cA7Ea;EA8Eb;;AAGD;AAAA;EACU,OAvFE;;;AA0Fb;EACC;EACA,SDgBkB;ECflB,kBA1FqB;;AA4FrB;EACC,kBA9FiB;;AAgGjB;EACC,OAnGU;;AAuGZ;EACC;;;AAIF;EACC;EACA;EACA,OAvGe;EAwGf;EACA;EACA;EACA;;AAEA;EAAsB,cAnGN;;AAoGhB;EAAsB,cAvGN;;AAyGhB;EACC,OAzHW;EA0HX,cArHa;;AAwHd;EAEC,cAzHa;;;AA6Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAtIa;;AAyId;EAEC,oBA5Ia;;;AAgJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAxJa;;AA2Jd;EAEC,oBA9Ja;;;AAkKf;EACC;EACA;EACA;EACA,cDnDW;;;ACsDZ;EACC;EACA,OAxKe;;AA0Kf;EAAoB,OAlLR;;;AAqLb;EACC","file":"Trigger.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../../src/utilities/_visually-hidden.scss","../../../../src/components/Form/Form.scss","../../../../src/components/AnvilSelect/AnvilSelect.scss","../../../../src/utilities/_component-reset.scss","../../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../../src/components/AnvilSelect/components/Trigger.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAlEc;;AAmEd;EAAmB,cApEL;;;AAuEf;EACC,cAxEc;EAyEd,OA9EY;EA+EZ,kBA7EkB;;AA+ElB;EAEC,cA9Ea;EA+Eb;;AAGD;AAAA;EACU,OAxFE;;;AA2Fb;EACC;EACA,SDekB;ECdlB,kBA3FqB;;AA6FrB;EACC,kBA/FiB;;AAiGjB;EACC,OApGU;;AAwGZ;EACC;;;AAIF;EACC;EACA;EACA,OAxGe;EAyGf;EACA;EACA;EACA;;AAEA;EAAsB,cApGN;;AAqGhB;EAAsB,cAxGN;;AA0GhB;EACC,OA1HW;EA2HX,cAtHa;;AAyHd;EAEC,cA1Ha;;;AA8Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAvIa;;AA0Id;EAEC,oBA7Ia;;;AAiJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAzJa;;AA4Jd;EAEC,oBA/Ja;;;AAmKf;EACC;EACA;EACA;EACA,cDpDW;;;ACuDZ;EACC;EACA,OAzKe;;AA2Kf;EAAoB,OAnLR;;;AAsLb;EACC","file":"Trigger.css"}
@@ -193,6 +193,7 @@
193
193
  border-radius: 100%;
194
194
  margin-top: 1px;
195
195
  padding: 1px 4px;
196
+ background: transparent;
196
197
  }
197
198
  .Trigger .Trigger__clear.Button::before {
198
199
  border-radius: 100%;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Form/Form.scss","../../../src/components/AnvilSelect/AnvilSelect.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/AnvilSelect/components/Trigger.scss","../../../src/components/AnvilSelect/components/DrillIn.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAjEc;;AAkEd;EAAmB,cAnEL;;;AAsEf;EACC,cAvEc;EAwEd,OA7EY;EA8EZ,kBA5EkB;;AA8ElB;EAEC,cA7Ea;EA8Eb;;AAGD;AAAA;EACU,OAvFE;;;AA0Fb;EACC;EACA,SDgBkB;ECflB,kBA1FqB;;AA4FrB;EACC,kBA9FiB;;AAgGjB;EACC,OAnGU;;AAuGZ;EACC;;;AAIF;EACC;EACA;EACA,OAvGe;EAwGf;EACA;EACA;EACA;;AAEA;EAAsB,cAnGN;;AAoGhB;EAAsB,cAvGN;;AAyGhB;EACC,OAzHW;EA0HX,cArHa;;AAwHd;EAEC,cAzHa;;;AA6Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAtIa;;AAyId;EAEC,oBA5Ia;;;AAgJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAxJa;;AA2Jd;EAEC,oBA9Ja;;;AAkKf;EACC;EACA;EACA;EACA,cDnDW;;;ACsDZ;EACC;EACA,OAxKe;;AA0Kf;EAAoB,OAlLR;;;AAqLb;EACC;;;ACtLD;EACC;;;AAGD;EACC;;;AAIA;EAAmB,kBAZH;;;AAejB;EACC;;AAEA;EACC,YAlBc;EAmBd,eFFgB;EEGhB,YFmGa","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Form/Form.scss","../../../src/components/AnvilSelect/AnvilSelect.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/AnvilSelect/components/Trigger.scss","../../../src/components/AnvilSelect/components/DrillIn.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAlEc;;AAmEd;EAAmB,cApEL;;;AAuEf;EACC,cAxEc;EAyEd,OA9EY;EA+EZ,kBA7EkB;;AA+ElB;EAEC,cA9Ea;EA+Eb;;AAGD;AAAA;EACU,OAxFE;;;AA2Fb;EACC;EACA,SDekB;ECdlB,kBA3FqB;;AA6FrB;EACC,kBA/FiB;;AAiGjB;EACC,OApGU;;AAwGZ;EACC;;;AAIF;EACC;EACA;EACA,OAxGe;EAyGf;EACA;EACA;EACA;;AAEA;EAAsB,cApGN;;AAqGhB;EAAsB,cAxGN;;AA0GhB;EACC,OA1HW;EA2HX,cAtHa;;AAyHd;EAEC,cA1Ha;;;AA8Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAvIa;;AA0Id;EAEC,oBA7Ia;;;AAiJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAzJa;;AA4Jd;EAEC,oBA/Ja;;;AAmKf;EACC;EACA;EACA;EACA,cDpDW;;;ACuDZ;EACC;EACA,OAzKe;;AA2Kf;EAAoB,OAnLR;;;AAsLb;EACC;;;ACvLD;EACC;;;AAGD;EACC;;;AAIA;EAAmB,kBAZH;;;AAejB;EACC;;AAEA;EACC,YAlBc;EAmBd,eFFgB;EEGhB,YFmGa","file":"index.css"}
@@ -9,7 +9,7 @@
9
9
  align-items: center;
10
10
  background-color: var(--colorsSurfaceGrey, #eeeeee);
11
11
  border: 0;
12
- border-radius: 3px;
12
+ border-radius: 6px;
13
13
  box-sizing: border-box;
14
14
  color: var(--colorsTextOnGrey, #444445);
15
15
  cursor: pointer;
@@ -19,14 +19,15 @@
19
19
  justify-content: center;
20
20
  line-height: 1;
21
21
  margin: 0;
22
- outline: none;
23
22
  padding: 12px 16px;
24
23
  text-align: center;
25
24
  text-decoration: none;
26
25
  text-shadow: none;
27
- transition: background cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, color cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms;
26
+ transition: background cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, color cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, outline cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, outline-offset cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms;
28
27
  user-select: none;
29
28
  position: relative;
29
+ outline-offset: 0;
30
+ outline: solid 0 transparent;
30
31
  }
31
32
  .Button::before {
32
33
  content: "";
@@ -46,13 +47,13 @@
46
47
  .Button:active::before, .Button.Button--selected::before {
47
48
  background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
48
49
  }
49
- .Button.Button--focus-visible:focus {
50
- outline: 0;
51
- box-shadow: 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
50
+ .Button:focus-visible {
51
+ outline-offset: 2px;
52
+ outline: solid 2px var(--colorsBorderPrimary, #0265dc);
52
53
  }
53
54
  .Button.Button--outline {
54
55
  background-color: transparent;
55
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445);
56
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
56
57
  }
57
58
  .Button.Button--outline:hover::before {
58
59
  background-color: var(--colorsHoverOnGrey, rgba(20, 20, 20, 0.08));
@@ -60,9 +61,6 @@
60
61
  .Button.Button--outline:active::before, .Button.Button--outline.Button--selected::before {
61
62
  background-color: var(--colorsActiveOnGrey, rgba(20, 20, 20, 0.16));
62
63
  }
63
- .Button.Button--outline.Button--focus-visible:focus {
64
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445), 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
65
- }
66
64
  .Button.Button--subtle {
67
65
  background-color: transparent;
68
66
  }
@@ -114,34 +112,31 @@ button.Button {
114
112
  color: var(--colorsTextOnPrimary, white);
115
113
  }
116
114
  .Button--blue:hover::before {
117
- background-color: var(--colorsHoverOnPrimary, rgba(255, 255, 255, 0.16));
115
+ background-color: var(--colorsHoverOnGrey, rgba(20, 20, 20, 0.08));
118
116
  }
119
117
  .Button--blue:active::before, .Button--blue.Button--selected::before {
120
- background-color: var(--colorsActiveOnPrimary, rgba(20, 20, 20, 0.16));
118
+ background-color: var(--colorsActiveOnGrey, rgba(20, 20, 20, 0.16));
121
119
  }
122
120
  .Button--blue.Button--outline {
123
121
  background-color: transparent;
124
- box-shadow: inset 0 0 0 1px var(--colorsBorderPrimary, #0265dc);
122
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
125
123
  color: var(--colorsTextPrimary, #0265dc);
126
124
  }
127
125
  .Button--blue.Button--outline:hover::before {
128
- background-color: var(--colorsHoverPrimary, rgba(2, 101, 220, 0.1));
129
- }
130
- .Button--blue.Button--outline.Button--focus-visible:focus {
131
- box-shadow: inset 0 0 0 1px var(--colorsBorderPrimary, #0265dc), 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
126
+ background-color: var(--colorsHoverDefault, rgba(20, 20, 20, 0.08));
132
127
  }
133
128
  .Button--blue.Button--outline:active::before, .Button--blue.Button--outline.Button--selected::before {
134
- background-color: var(--colorsActivePrimary, rgba(2, 101, 220, 0.3));
129
+ background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
135
130
  }
136
131
  .Button--blue.Button--subtle {
137
132
  background-color: transparent;
138
133
  color: var(--colorsTextPrimary, #0265dc);
139
134
  }
140
135
  .Button--blue.Button--subtle:hover::before {
141
- background-color: var(--colorsHoverPrimary, rgba(2, 101, 220, 0.1));
136
+ background-color: var(--colorsHoverDefault, rgba(20, 20, 20, 0.08));
142
137
  }
143
138
  .Button--blue.Button--subtle:active::before, .Button--blue.Button--subtle.Button--selected::before {
144
- background-color: var(--colorsActivePrimary, rgba(2, 101, 220, 0.3));
139
+ background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
145
140
  }
146
141
 
147
142
  .Button--red {
@@ -151,15 +146,15 @@ button.Button {
151
146
  .Button--red:hover::before {
152
147
  background-color: var(--colorsHoverOnCritical, rgba(255, 255, 255, 0.16));
153
148
  }
149
+ .Button--red:focus-visible {
150
+ outline: solid 2px var(--colorsBorderCritical, #e13212);
151
+ }
154
152
  .Button--red:active::before, .Button--red.Button--selected::before {
155
153
  background-color: var(--colorsActiveOnCritical, rgba(20, 20, 20, 0.16));
156
154
  }
157
- .Button--red.Button--focus-visible:focus {
158
- box-shadow: 0 0 0 3px var(--colorsFocusRingCritical, #ffb2a0);
159
- }
160
155
  .Button--red.Button--outline {
161
156
  background-color: transparent;
162
- box-shadow: inset 0 0 0 1px var(--colorsBorderCritical, #e13212);
157
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
163
158
  color: var(--colorsTextCritical, #bf2a00);
164
159
  }
165
160
  .Button--red.Button--outline:hover::before {
@@ -168,9 +163,6 @@ button.Button {
168
163
  .Button--red.Button--outline:active::before, .Button--red.Button--outline.Button--selected::before {
169
164
  background-color: var(--colorsActiveCritical, rgba(225, 50, 18, 0.3));
170
165
  }
171
- .Button--red.Button--outline.Button--focus-visible:focus {
172
- box-shadow: inset 0 0 0 1px var(--colorsBorderCritical, #e13212), 0 0 0 3px var(--colorsFocusRingCritical, #ffb2a0);
173
- }
174
166
  .Button--red.Button--subtle {
175
167
  background-color: transparent;
176
168
  color: var(--colorsTextCritical, #bf2a00);
@@ -183,19 +175,14 @@ button.Button {
183
175
  }
184
176
 
185
177
  .Button--disabled, .Button--disabled.Button--outline, .Button--disabled.Button--subtle {
186
- background: var(--colorsSurfaceGrey, #eeeeee);
187
- color: var(--colorsTextOnGrey, #444445);
178
+ background: #bcbcbd;
179
+ color: #606162;
180
+ box-shadow: none;
188
181
  opacity: 0.4;
189
182
  }
190
183
  .Button--disabled svg, .Button--disabled.Button--outline svg, .Button--disabled.Button--subtle svg {
191
184
  opacity: 0.6;
192
185
  }
193
- .Button--disabled.Button--outline, .Button--disabled.Button--subtle {
194
- background: transparent;
195
- }
196
- .Button--disabled.Button--outline {
197
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445);
198
- }
199
186
 
200
187
  .Button--inactive {
201
188
  pointer-events: none;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Button/Button.scss","../../../src/utilities/_component-reset.scss","../../../src/utilities/_font-smoothing.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;AC0CA;ACvCC;EACA;AAEA;EACA;ECLC;EACA;EF2CD;EACA,kBArCoB;EAsCpB;EACA,eG5BiB;EH6BjB;EACA,OA/Cc;EAgDd;EACA;EACA,WGoFa;EHnFb,aGsDsB;EHrDtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;EAED;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC,kBA1Da;;AAgEd;EACC,kBAzDc;;AA6DhB;EACC;EACA,YAjFc;;AAoFf;EACC;EACA;;AAGC;EACC,kBA5EY;;AAkFb;EACC,kBA3Ea;;AA+Ef;EAAgC;;AAGjC;EACC;;AAGC;EACC,kBA/FY;;AAqGb;EACC,kBA9Fa;;;AAsGjB;EACC,WGHa;EHIb;;;AAGD;EACC,SGpBW;EHqBX;;AAEA;EACC;;AAEA;EACC;EACA;;;AAKH;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKA;EAKC,OAjLa;;;AAqLf;EACC,kBA/KoB;EAgLpB,OApLiB;;AAuLhB;EACC,kBAhKgB;;AAsKjB;EACC,kBA/JiB;;AAmKnB;EACC;EACA;EACA,OAxMa;;AA2MZ;EACC,kBAtLY;;AA0Ld;EAAgC;;AAI/B;EACC,kBAvLa;;AA4LhB;EACC;EACA,OA5Na;;AA+NZ;EACC,kBA1MY;;AAgNb;EACC,kBAzMa;;;AA+MjB;EACC,kBAvOqB;EAwOrB,OA5OkB;;AA+OjB;EACC,kBAxNiB;;AA8NlB;EACC,kBAvNkB;;AA2NpB;EAAgC,YAjPhB;;AAmPhB;EACC;EACA;EACA,OAlQc;;AAqQb;EACC,kBAhPa;;AAsPd;EACC,kBA/Oc;;AAmPhB;EAAgC;;AAGjC;EACC;EACA,OAtRc;;AAyRb;EACC,kBApQa;;AA0Qd;EACC,kBAnQc;;;AA2QjB;EAGC,YAxSmB;EAySnB,OA/Sa;EAgTb;;AAEA;EACC,SGrMgB;;AHyMlB;EAEC;;AAGD;EACC;;;AAIF;EAAoB;;;AAGpB;EACC,WGhMa;EHiMb;;AAEA;EACC,WGlMY;EHmMZ;;;AAMF;EAAwB,WG3MV;;;AH6Md;EACC;;AACA;EAAsB,SGlNR;;;AHqNf;EACC;;AACA;EAAsB;;;AAIvB;EAAgB;;;AAGhB;EAAsB;;;AAItB;EACC;IAAK;;;AAGN;EACC,SG3PkB;EH4PlB;EACA;;AAEA;EAAmB;;;AAGpB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsB,eGvQV;;;AHwQZ;EAAuB,cGxQX;;;AH0QZ;EAA2B;;;AAE3B;EACC;EACA;;;AAGD;EAAoD","file":"Button.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Button/Button.scss","../../../src/utilities/_component-reset.scss","../../../src/utilities/_font-smoothing.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../node_modules/@servicetitan/tokens/core/appearances/light.scss"],"names":[],"mappings":"AAAA;ACoCA;ACjCC;EACA;AAEA;EACA;ECLC;EACA;EFqCD;EACA,kBA/BoB;EAgCpB;EACA,eGrBiB;EHsBjB;EACA,OAzCc;EA0Cd;EACA;EACA,WG0Fa;EHzFb,aG4DsB;EH3DtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;EAID;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC,kBAzDa;;AA+Dd;EACC,kBA1Dc;;AA8DhB;EACC;EACA,SA9Ec;;AAiFf;EACC;EACA;;AAGC;EACC,kBA5EY;;AAkFb;EACC,kBA7Ea;;AAkFhB;EACC;;AAGC;EACC,kBA7FY;;AAmGb;EACC,kBA9Fa;;;AAsGjB;EACC,WGEa;EHDb;;;AAGD;EACC,SGfW;EHgBX;;AAEA;EACC;;AAEA;EACC;EACA;;;AAKH;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKA;EAKC,OA5Ka;;;AAgLf;EACC,kBA1KoB;EA2KpB,OA/KiB;;AAkLhB;EACC,kBA/Ja;;AAqKd;EACC,kBAhKc;;AAoKhB;EACC;EACA;EACA,OAnMa;;AAsMZ;EACC,kBApLY;;AA0Lb;EACC,kBArLa;;AA0LhB;EACC;EACA,OArNa;;AAwNZ;EACC,kBAtMY;;AA4Mb;EACC,kBAvMa;;;AA6MjB;EACC,kBAhOqB;EAiOrB,OArOkB;;AAwOjB;EACC,kBArNiB;;AAyNnB;EACC,SApOe;;AAyOf;EACC,kBA1NkB;;AA8NpB;EACC;EACA;EACA,OA7Pc;;AAgQb;EACC,kBA9Oa;;AAoPd;EACC,kBA/Oc;;AAoPjB;EACC;EACA,OA/Qc;;AAkRb;EACC,kBAhQa;;AAsQd;EACC,kBAjQc;;;AAyQjB;EAGC,YI5PkC;EJ6PlC,OIhPyB;EJiPzB;EACA;;AAEA;EACC,SG/LgB;;;AHoMnB;EAAoB;;;AAGpB;EACC,WGjLa;EHkLb;;AAEA;EACC,WGnLY;EHoLZ;;;AAMF;EAAwB,WG5LV;;;AH8Ld;EACC;;AACA;EAAsB,SGnMR;;;AHsMf;EACC;;AACA;EAAsB;;;AAIvB;EAAgB;;;AAGhB;EAAsB;;;AAItB;EACC;IAAK;;;AAGN;EACC,SG5OkB;EH6OlB;EACA;;AAEA;EAAmB;;;AAGpB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsB,eGxPV;;;AHyPZ;EAAuB,cGzPX;;;AH2PZ;EAA2B;;;AAE3B;EACC;EACA;;;AAGD;EAAoD","file":"Button.css"}
@@ -13,7 +13,6 @@ import React from 'react';
13
13
  import classnames from 'classnames';
14
14
  import { Icon } from '../Icon';
15
15
  import { getContent } from '../../utilities/getContent';
16
- import { useFocusVisible } from '../../hooks/useFocusVisible';
17
16
  const defaultProps = {
18
17
  el: 'button',
19
18
  };
@@ -22,9 +21,6 @@ const defaultProps = {
22
21
  */
23
22
  export const Button = React.forwardRef((_a, ref) => {
24
23
  var { children, className, color = 'default', content, el: Element = defaultProps.el, fill = 'solid', full, href, icon, iconName, iconPosition = 'left', inactive, large, loading, negative, outline, primary, selected, size = 'medium', small, text, type, width = 'auto', xsmall, onFocus, onBlur } = _a, props = __rest(_a, ["children", "className", "color", "content", "el", "fill", "full", "href", "icon", "iconName", "iconPosition", "inactive", "large", "loading", "negative", "outline", "primary", "selected", "size", "small", "text", "type", "width", "xsmall", "onFocus", "onBlur"]);
25
- const newRef = React.useRef(null);
26
- const itemRef = ref ? ref : newRef;
27
- const { isFocusVisible, focusFunction, blurFunction } = useFocusVisible(itemRef, onBlur, onFocus);
28
24
  const getTagName = () => {
29
25
  // If `el` is passed in and isn't default, it is always used
30
26
  if (Element !== defaultProps.el)
@@ -147,7 +143,6 @@ export const Button = React.forwardRef((_a, ref) => {
147
143
  'Button--inactive': preventClicks,
148
144
  'Button--loading': loading,
149
145
  'Button--icon-only': !hasContent(),
150
- 'Button--focus-visible': isFocusVisible,
151
146
  'Button--selected': selected,
152
147
  });
153
148
  const ButtonElement = getTagName();
@@ -155,7 +150,7 @@ export const Button = React.forwardRef((_a, ref) => {
155
150
  !props['aria-label'] &&
156
151
  console.warn(`Accessibility warning:
157
152
  \naria-label attribute does not exist or is empty for button that does not have inner text that is visible to screen readers`);
158
- return (React.createElement(ButtonElement, Object.assign({ className: ButtonClasses, disabled: preventClicks, href: href, role: getTagName() !== 'button' ? 'button' : null, style: { width: getWidthValue() }, tabIndex: getTabIndex(), onFocus: focusFunction, onBlur: blurFunction, ref: itemRef, "data-anvil-component": "Button" }, getTypeAttribute(), props),
153
+ return (React.createElement(ButtonElement, Object.assign({ className: ButtonClasses, disabled: preventClicks, href: href, role: getTagName() !== 'button' ? 'button' : null, style: { width: getWidthValue() }, tabIndex: getTabIndex(), ref: ref, "data-anvil-component": "Button" }, getTypeAttribute(), props),
159
154
  React.createElement("span", { className: "Button__content" },
160
155
  iconPosition === 'left' && renderIcon(),
161
156
  getContent({ children, content }),
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { FC } from 'react';\nimport classnames from 'classnames';\nimport { Icon, IconPropsStrict } from '../Icon';\nimport { getContent } from '../../utilities/getContent';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\n\n/**\n * Button properties\n */\nexport interface ButtonPropsStrict {\n\t/** Button Color */\n\tcolor?: 'primary' | 'blue' | 'default' | 'grey' | 'negative' | 'red';\n\n\t/** Additional classes */\n\tclassName?: string;\n\n\t/** Disabled button, unclickable */\n\tdisabled?: boolean;\n\n\t/** Set the component HTML element. Warning: Using non-standard markup can produce accessibility issues. */\n\tel?: 'button' | 'a' | 'span';\n\n\t/** Button Type. 'none' is deprecated, use 'subtle' instead. */\n\tfill?: 'solid' | 'outline' | 'none' | 'subtle';\n\n\t/** Shortcut for `width=\"full\"` */\n\tfull?: boolean;\n\n\t/** URL for Button. Turns into `<a>` tag. */\n\thref?: string;\n\n\t/** Custom Icon element. Use `iconName` to use default element. */\n\ticon?: React.ReactElement;\n\n\t/** Name of Icon to be inside Button. Use `icon` to pass a custom element. */\n\ticonName?: IconPropsStrict['name'];\n\n\t/** Position the icon */\n\ticonPosition?: 'left' | 'right';\n\n\t/** Unclicable button */\n\tinactive?: boolean;\n\n\t/** Shortcut for `size=\"large\"` */\n\tlarge?: boolean;\n\n\t/** Button with loading indicator */\n\tloading?: boolean;\n\n\t/** Shortcut for `color=\"negative\"` */\n\tnegative?: boolean;\n\n\t/** Shortcut for `fill=\"outline\"` */\n\toutline?: boolean;\n\n\t/** Shortcut for `color=\"primary\"` */\n\tprimary?: boolean;\n\n\t/** Selected State */\n\tselected?: boolean;\n\n\t/** Button Size */\n\tsize?: 'xsmall' | 'small' | 'medium' | 'large';\n\n\t/** Shortcut for `size=\"small\"` */\n\tsmall?: boolean;\n\n\t/** Deprecated. Shortcut for `fill=\"subtle\"` */\n\ttext?: boolean;\n\n\t/** Button Width */\n\twidth?: string | number | 'auto' | 'full';\n\n\t/** Shortcut for `size=\"small\"` */\n\txsmall?: boolean;\n}\n\nexport interface ButtonProps extends ButtonPropsStrict {\n\t/** Unstrict Props */\n\t[propName: string]: any;\n}\n\nconst defaultProps = {\n\tel: 'button',\n};\n\n/**\n * **Buttons** provide a possible user actions\n */\nexport const Button: FC<ButtonProps> = React.forwardRef(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tcolor = 'default',\n\t\t\tcontent,\n\t\t\tel: Element = defaultProps.el,\n\t\t\tfill = 'solid',\n\t\t\tfull,\n\t\t\thref,\n\t\t\ticon,\n\t\t\ticonName,\n\t\t\ticonPosition = 'left',\n\t\t\tinactive,\n\t\t\tlarge,\n\t\t\tloading,\n\t\t\tnegative,\n\t\t\toutline,\n\t\t\tprimary,\n\t\t\tselected,\n\t\t\tsize = 'medium',\n\t\t\tsmall,\n\t\t\ttext,\n\t\t\ttype,\n\t\t\twidth = 'auto',\n\t\t\txsmall,\n\t\t\tonFocus,\n\t\t\tonBlur,\n\t\t\t...props\n\t\t},\n\t\tref: React.RefObject<HTMLElement>\n\t) => {\n\t\tconst newRef = React.useRef(null);\n\t\tconst itemRef = ref ? ref : newRef;\n\n\t\tconst { isFocusVisible, focusFunction, blurFunction } = useFocusVisible(\n\t\t\titemRef,\n\t\t\tonBlur,\n\t\t\tonFocus\n\t\t);\n\n\t\tconst getTagName = () => {\n\t\t\t// If `el` is passed in and isn't default, it is always used\n\t\t\tif (Element !== defaultProps.el) return Element;\n\n\t\t\t// If `href` is passed in, the element becomes an anchor\n\t\t\tif (href) return 'a';\n\n\t\t\t// Is default, use it\n\t\t\treturn Element;\n\t\t};\n\n\t\tconst getTabIndex = () => {\n\t\t\tif (props.tabIndex) return props.tabIndex;\n\t\t\tif (getTagName() !== 'button') 0;\n\t\t\treturn null;\n\t\t};\n\n\t\tconst getColorClass = () => {\n\t\t\tlet realColor = color;\n\n\t\t\t// Override string props with boolean values\n\t\t\tif (primary) realColor = 'primary';\n\t\t\tif (negative) realColor = 'negative';\n\n\t\t\tconst ButtonColorClasses: any = {\n\t\t\t\tprimary: 'Button--blue',\n\t\t\t\tblue: 'Button--blue',\n\t\t\t\tdefault: 'Button--grey',\n\t\t\t\tgrey: 'Button--grey',\n\t\t\t\tnegative: 'Button--red',\n\t\t\t\tred: 'Button--red',\n\t\t\t};\n\n\t\t\treturn ButtonColorClasses[realColor];\n\t\t};\n\n\t\tconst getFillClass = () => {\n\t\t\tlet realFill = fill;\n\t\t\tif (outline) realFill = 'outline';\n\t\t\tif (text || fill === 'subtle' || fill === 'none')\n\t\t\t\trealFill = 'subtle';\n\n\t\t\tif (realFill === 'solid') return 'Button--solid';\n\t\t\tif (realFill === 'outline') return 'Button--outline';\n\t\t\tif (realFill === 'subtle') return 'Button--subtle';\n\t\t};\n\n\t\tconst getSizeClass = () => {\n\t\t\tlet realSize = size;\n\t\t\tif (xsmall) realSize = 'xsmall';\n\t\t\tif (small) realSize = 'small';\n\t\t\tif (large) realSize = 'large';\n\n\t\t\tif (realSize === 'xsmall') return 'Button--xsmall';\n\t\t\tif (realSize === 'small') return 'Button--small';\n\t\t\tif (realSize === 'large') return 'Button--large';\n\t\t};\n\n\t\tconst getWidth = () => {\n\t\t\tif (full) return 'full';\n\t\t\treturn width;\n\t\t};\n\n\t\tconst getWidthValue = () => {\n\t\t\tconst width = getWidth();\n\t\t\treturn width !== 'auto' && width !== 'full' ? width : false;\n\t\t};\n\n\t\tconst getWidthClass = () => {\n\t\t\treturn getWidth() === 'full' ? 'Button--full' : null;\n\t\t};\n\n\t\tconst getTypeAttribute = () => {\n\t\t\tif (type) return { type };\n\t\t\tif (getTagName() === 'button') return { type: 'button' };\n\t\t};\n\n\t\tReact.useEffect(() => {\n\t\t\tif (text)\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `text` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (fill === 'none')\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `fill='none'` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'button' && !!getTypeAttribute())\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only button elements can have type attributes.'\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'a' && href)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only anchor elements can have href attributes.'\n\t\t\t\t);\n\t\t});\n\n\t\tconst hasContent = () => {\n\t\t\tif (children != null) return true;\n\t\t\tif (content != null) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst hasIcon = () => {\n\t\t\tif (iconName || icon) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst renderIcon = () => {\n\t\t\tif (!hasIcon()) return;\n\n\t\t\tlet ButtonIcon = null;\n\t\t\tif (iconName)\n\t\t\t\tButtonIcon = (\n\t\t\t\t\t<Icon className=\"Button__icon-svg\" name={iconName} />\n\t\t\t\t);\n\t\t\tif (icon) ButtonIcon = icon;\n\n\t\t\tconst ButtonIconClasses = classnames('Button__icon', {\n\t\t\t\t'Button__icon--left': hasContent() && iconPosition === 'left',\n\t\t\t\t'Button__icon--right': hasContent() && iconPosition === 'right',\n\t\t\t});\n\n\t\t\treturn <span className={ButtonIconClasses}>{ButtonIcon}</span>;\n\t\t};\n\n\t\tconst preventClicks = props.disabled || inactive || loading;\n\n\t\tconst ButtonClasses = classnames(\n\t\t\t'Button',\n\t\t\tclassName,\n\t\t\tgetColorClass(),\n\t\t\tgetFillClass(),\n\t\t\tgetSizeClass(),\n\t\t\tgetWidthClass(),\n\t\t\t{\n\t\t\t\t'Button--disabled': props.disabled,\n\t\t\t\t'Button--inactive': preventClicks,\n\t\t\t\t'Button--loading': loading,\n\t\t\t\t'Button--icon-only': !hasContent(),\n\t\t\t\t'Button--focus-visible': isFocusVisible,\n\t\t\t\t'Button--selected': selected,\n\t\t\t}\n\t\t);\n\n\t\tconst ButtonElement: any = getTagName();\n\n\t\t!hasContent() &&\n\t\t\t!props['aria-label'] &&\n\t\t\tconsole.warn(\n\t\t\t\t`Accessibility warning:\n\t\t\t\t\\naria-label attribute does not exist or is empty for button that does not have inner text that is visible to screen readers`\n\t\t\t);\n\n\t\treturn (\n\t\t\t<ButtonElement\n\t\t\t\tclassName={ButtonClasses}\n\t\t\t\tdisabled={preventClicks}\n\t\t\t\thref={href}\n\t\t\t\trole={getTagName() !== 'button' ? 'button' : null}\n\t\t\t\tstyle={{ width: getWidthValue() }}\n\t\t\t\ttabIndex={getTabIndex()}\n\t\t\t\tonFocus={focusFunction}\n\t\t\t\tonBlur={blurFunction}\n\t\t\t\tref={itemRef}\n\t\t\t\tdata-anvil-component=\"Button\"\n\t\t\t\t{...getTypeAttribute()}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"Button__content\">\n\t\t\t\t\t{iconPosition === 'left' && renderIcon()}\n\t\t\t\t\t{getContent({ children, content })}\n\t\t\t\t\t{iconPosition === 'right' && renderIcon()}\n\t\t\t\t</span>\n\t\t\t</ButtonElement>\n\t\t);\n\t}\n);\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { FC } from 'react';\nimport classnames from 'classnames';\nimport { Icon, IconPropsStrict } from '../Icon';\nimport { getContent } from '../../utilities/getContent';\n\n/**\n * Button properties\n */\nexport interface ButtonPropsStrict {\n\t/** Button Color */\n\tcolor?: 'primary' | 'blue' | 'default' | 'grey' | 'negative' | 'red';\n\n\t/** Additional classes */\n\tclassName?: string;\n\n\t/** Disabled button, unclickable */\n\tdisabled?: boolean;\n\n\t/** Set the component HTML element. Warning: Using non-standard markup can produce accessibility issues. */\n\tel?: 'button' | 'a' | 'span';\n\n\t/** Button Type. 'none' is deprecated, use 'subtle' instead. */\n\tfill?: 'solid' | 'outline' | 'none' | 'subtle';\n\n\t/** Shortcut for `width=\"full\"` */\n\tfull?: boolean;\n\n\t/** URL for Button. Turns into `<a>` tag. */\n\thref?: string;\n\n\t/** Custom Icon element. Use `iconName` to use default element. */\n\ticon?: React.ReactElement;\n\n\t/** Name of Icon to be inside Button. Use `icon` to pass a custom element. */\n\ticonName?: IconPropsStrict['name'];\n\n\t/** Position the icon */\n\ticonPosition?: 'left' | 'right';\n\n\t/** Unclicable button */\n\tinactive?: boolean;\n\n\t/** Shortcut for `size=\"large\"` */\n\tlarge?: boolean;\n\n\t/** Button with loading indicator */\n\tloading?: boolean;\n\n\t/** Shortcut for `color=\"negative\"` */\n\tnegative?: boolean;\n\n\t/** Shortcut for `fill=\"outline\"` */\n\toutline?: boolean;\n\n\t/** Shortcut for `color=\"primary\"` */\n\tprimary?: boolean;\n\n\t/** Selected State */\n\tselected?: boolean;\n\n\t/** Button Size */\n\tsize?: 'xsmall' | 'small' | 'medium' | 'large';\n\n\t/** Shortcut for `size=\"small\"` */\n\tsmall?: boolean;\n\n\t/** Deprecated. Shortcut for `fill=\"subtle\"` */\n\ttext?: boolean;\n\n\t/** Button Width */\n\twidth?: string | number | 'auto' | 'full';\n\n\t/** Shortcut for `size=\"small\"` */\n\txsmall?: boolean;\n}\n\nexport interface ButtonProps extends ButtonPropsStrict {\n\t/** Unstrict Props */\n\t[propName: string]: any;\n}\n\nconst defaultProps = {\n\tel: 'button',\n};\n\n/**\n * **Buttons** provide a possible user actions\n */\nexport const Button: FC<ButtonProps> = React.forwardRef(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tcolor = 'default',\n\t\t\tcontent,\n\t\t\tel: Element = defaultProps.el,\n\t\t\tfill = 'solid',\n\t\t\tfull,\n\t\t\thref,\n\t\t\ticon,\n\t\t\ticonName,\n\t\t\ticonPosition = 'left',\n\t\t\tinactive,\n\t\t\tlarge,\n\t\t\tloading,\n\t\t\tnegative,\n\t\t\toutline,\n\t\t\tprimary,\n\t\t\tselected,\n\t\t\tsize = 'medium',\n\t\t\tsmall,\n\t\t\ttext,\n\t\t\ttype,\n\t\t\twidth = 'auto',\n\t\t\txsmall,\n\t\t\tonFocus,\n\t\t\tonBlur,\n\t\t\t...props\n\t\t},\n\t\tref: React.RefObject<HTMLElement>\n\t) => {\n\t\tconst getTagName = () => {\n\t\t\t// If `el` is passed in and isn't default, it is always used\n\t\t\tif (Element !== defaultProps.el) return Element;\n\n\t\t\t// If `href` is passed in, the element becomes an anchor\n\t\t\tif (href) return 'a';\n\n\t\t\t// Is default, use it\n\t\t\treturn Element;\n\t\t};\n\n\t\tconst getTabIndex = () => {\n\t\t\tif (props.tabIndex) return props.tabIndex;\n\t\t\tif (getTagName() !== 'button') 0;\n\t\t\treturn null;\n\t\t};\n\n\t\tconst getColorClass = () => {\n\t\t\tlet realColor = color;\n\n\t\t\t// Override string props with boolean values\n\t\t\tif (primary) realColor = 'primary';\n\t\t\tif (negative) realColor = 'negative';\n\n\t\t\tconst ButtonColorClasses: any = {\n\t\t\t\tprimary: 'Button--blue',\n\t\t\t\tblue: 'Button--blue',\n\t\t\t\tdefault: 'Button--grey',\n\t\t\t\tgrey: 'Button--grey',\n\t\t\t\tnegative: 'Button--red',\n\t\t\t\tred: 'Button--red',\n\t\t\t};\n\n\t\t\treturn ButtonColorClasses[realColor];\n\t\t};\n\n\t\tconst getFillClass = () => {\n\t\t\tlet realFill = fill;\n\t\t\tif (outline) realFill = 'outline';\n\t\t\tif (text || fill === 'subtle' || fill === 'none')\n\t\t\t\trealFill = 'subtle';\n\n\t\t\tif (realFill === 'solid') return 'Button--solid';\n\t\t\tif (realFill === 'outline') return 'Button--outline';\n\t\t\tif (realFill === 'subtle') return 'Button--subtle';\n\t\t};\n\n\t\tconst getSizeClass = () => {\n\t\t\tlet realSize = size;\n\t\t\tif (xsmall) realSize = 'xsmall';\n\t\t\tif (small) realSize = 'small';\n\t\t\tif (large) realSize = 'large';\n\n\t\t\tif (realSize === 'xsmall') return 'Button--xsmall';\n\t\t\tif (realSize === 'small') return 'Button--small';\n\t\t\tif (realSize === 'large') return 'Button--large';\n\t\t};\n\n\t\tconst getWidth = () => {\n\t\t\tif (full) return 'full';\n\t\t\treturn width;\n\t\t};\n\n\t\tconst getWidthValue = () => {\n\t\t\tconst width = getWidth();\n\t\t\treturn width !== 'auto' && width !== 'full' ? width : false;\n\t\t};\n\n\t\tconst getWidthClass = () => {\n\t\t\treturn getWidth() === 'full' ? 'Button--full' : null;\n\t\t};\n\n\t\tconst getTypeAttribute = () => {\n\t\t\tif (type) return { type };\n\t\t\tif (getTagName() === 'button') return { type: 'button' };\n\t\t};\n\n\t\tReact.useEffect(() => {\n\t\t\tif (text)\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `text` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (fill === 'none')\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `fill='none'` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'button' && !!getTypeAttribute())\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only button elements can have type attributes.'\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'a' && href)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only anchor elements can have href attributes.'\n\t\t\t\t);\n\t\t});\n\n\t\tconst hasContent = () => {\n\t\t\tif (children != null) return true;\n\t\t\tif (content != null) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst hasIcon = () => {\n\t\t\tif (iconName || icon) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst renderIcon = () => {\n\t\t\tif (!hasIcon()) return;\n\n\t\t\tlet ButtonIcon = null;\n\t\t\tif (iconName)\n\t\t\t\tButtonIcon = (\n\t\t\t\t\t<Icon className=\"Button__icon-svg\" name={iconName} />\n\t\t\t\t);\n\t\t\tif (icon) ButtonIcon = icon;\n\n\t\t\tconst ButtonIconClasses = classnames('Button__icon', {\n\t\t\t\t'Button__icon--left': hasContent() && iconPosition === 'left',\n\t\t\t\t'Button__icon--right': hasContent() && iconPosition === 'right',\n\t\t\t});\n\n\t\t\treturn <span className={ButtonIconClasses}>{ButtonIcon}</span>;\n\t\t};\n\n\t\tconst preventClicks = props.disabled || inactive || loading;\n\n\t\tconst ButtonClasses = classnames(\n\t\t\t'Button',\n\t\t\tclassName,\n\t\t\tgetColorClass(),\n\t\t\tgetFillClass(),\n\t\t\tgetSizeClass(),\n\t\t\tgetWidthClass(),\n\t\t\t{\n\t\t\t\t'Button--disabled': props.disabled,\n\t\t\t\t'Button--inactive': preventClicks,\n\t\t\t\t'Button--loading': loading,\n\t\t\t\t'Button--icon-only': !hasContent(),\n\t\t\t\t'Button--selected': selected,\n\t\t\t}\n\t\t);\n\n\t\tconst ButtonElement: any = getTagName();\n\n\t\t!hasContent() &&\n\t\t\t!props['aria-label'] &&\n\t\t\tconsole.warn(\n\t\t\t\t`Accessibility warning:\n\t\t\t\t\\naria-label attribute does not exist or is empty for button that does not have inner text that is visible to screen readers`\n\t\t\t);\n\n\t\treturn (\n\t\t\t<ButtonElement\n\t\t\t\tclassName={ButtonClasses}\n\t\t\t\tdisabled={preventClicks}\n\t\t\t\thref={href}\n\t\t\t\trole={getTagName() !== 'button' ? 'button' : null}\n\t\t\t\tstyle={{ width: getWidthValue() }}\n\t\t\t\ttabIndex={getTabIndex()}\n\t\t\t\tref={ref}\n\t\t\t\tdata-anvil-component=\"Button\"\n\t\t\t\t{...getTypeAttribute()}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"Button__content\">\n\t\t\t\t\t{iconPosition === 'left' && renderIcon()}\n\t\t\t\t\t{getContent({ children, content })}\n\t\t\t\t\t{iconPosition === 'right' && renderIcon()}\n\t\t\t\t</span>\n\t\t\t</ButtonElement>\n\t\t);\n\t}\n);\n"]}
@@ -9,7 +9,7 @@
9
9
  align-items: center;
10
10
  background-color: var(--colorsSurfaceGrey, #eeeeee);
11
11
  border: 0;
12
- border-radius: 3px;
12
+ border-radius: 6px;
13
13
  box-sizing: border-box;
14
14
  color: var(--colorsTextOnGrey, #444445);
15
15
  cursor: pointer;
@@ -19,14 +19,15 @@
19
19
  justify-content: center;
20
20
  line-height: 1;
21
21
  margin: 0;
22
- outline: none;
23
22
  padding: 12px 16px;
24
23
  text-align: center;
25
24
  text-decoration: none;
26
25
  text-shadow: none;
27
- transition: background cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, color cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms;
26
+ transition: background cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, color cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, outline cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, outline-offset cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms;
28
27
  user-select: none;
29
28
  position: relative;
29
+ outline-offset: 0;
30
+ outline: solid 0 transparent;
30
31
  }
31
32
  .Button::before {
32
33
  content: "";
@@ -46,13 +47,13 @@
46
47
  .Button:active::before, .Button.Button--selected::before {
47
48
  background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
48
49
  }
49
- .Button.Button--focus-visible:focus {
50
- outline: 0;
51
- box-shadow: 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
50
+ .Button:focus-visible {
51
+ outline-offset: 2px;
52
+ outline: solid 2px var(--colorsBorderPrimary, #0265dc);
52
53
  }
53
54
  .Button.Button--outline {
54
55
  background-color: transparent;
55
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445);
56
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
56
57
  }
57
58
  .Button.Button--outline:hover::before {
58
59
  background-color: var(--colorsHoverOnGrey, rgba(20, 20, 20, 0.08));
@@ -60,9 +61,6 @@
60
61
  .Button.Button--outline:active::before, .Button.Button--outline.Button--selected::before {
61
62
  background-color: var(--colorsActiveOnGrey, rgba(20, 20, 20, 0.16));
62
63
  }
63
- .Button.Button--outline.Button--focus-visible:focus {
64
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445), 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
65
- }
66
64
  .Button.Button--subtle {
67
65
  background-color: transparent;
68
66
  }
@@ -114,34 +112,31 @@ button.Button {
114
112
  color: var(--colorsTextOnPrimary, white);
115
113
  }
116
114
  .Button--blue:hover::before {
117
- background-color: var(--colorsHoverOnPrimary, rgba(255, 255, 255, 0.16));
115
+ background-color: var(--colorsHoverOnGrey, rgba(20, 20, 20, 0.08));
118
116
  }
119
117
  .Button--blue:active::before, .Button--blue.Button--selected::before {
120
- background-color: var(--colorsActiveOnPrimary, rgba(20, 20, 20, 0.16));
118
+ background-color: var(--colorsActiveOnGrey, rgba(20, 20, 20, 0.16));
121
119
  }
122
120
  .Button--blue.Button--outline {
123
121
  background-color: transparent;
124
- box-shadow: inset 0 0 0 1px var(--colorsBorderPrimary, #0265dc);
122
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
125
123
  color: var(--colorsTextPrimary, #0265dc);
126
124
  }
127
125
  .Button--blue.Button--outline:hover::before {
128
- background-color: var(--colorsHoverPrimary, rgba(2, 101, 220, 0.1));
129
- }
130
- .Button--blue.Button--outline.Button--focus-visible:focus {
131
- box-shadow: inset 0 0 0 1px var(--colorsBorderPrimary, #0265dc), 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
126
+ background-color: var(--colorsHoverDefault, rgba(20, 20, 20, 0.08));
132
127
  }
133
128
  .Button--blue.Button--outline:active::before, .Button--blue.Button--outline.Button--selected::before {
134
- background-color: var(--colorsActivePrimary, rgba(2, 101, 220, 0.3));
129
+ background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
135
130
  }
136
131
  .Button--blue.Button--subtle {
137
132
  background-color: transparent;
138
133
  color: var(--colorsTextPrimary, #0265dc);
139
134
  }
140
135
  .Button--blue.Button--subtle:hover::before {
141
- background-color: var(--colorsHoverPrimary, rgba(2, 101, 220, 0.1));
136
+ background-color: var(--colorsHoverDefault, rgba(20, 20, 20, 0.08));
142
137
  }
143
138
  .Button--blue.Button--subtle:active::before, .Button--blue.Button--subtle.Button--selected::before {
144
- background-color: var(--colorsActivePrimary, rgba(2, 101, 220, 0.3));
139
+ background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
145
140
  }
146
141
 
147
142
  .Button--red {
@@ -151,15 +146,15 @@ button.Button {
151
146
  .Button--red:hover::before {
152
147
  background-color: var(--colorsHoverOnCritical, rgba(255, 255, 255, 0.16));
153
148
  }
149
+ .Button--red:focus-visible {
150
+ outline: solid 2px var(--colorsBorderCritical, #e13212);
151
+ }
154
152
  .Button--red:active::before, .Button--red.Button--selected::before {
155
153
  background-color: var(--colorsActiveOnCritical, rgba(20, 20, 20, 0.16));
156
154
  }
157
- .Button--red.Button--focus-visible:focus {
158
- box-shadow: 0 0 0 3px var(--colorsFocusRingCritical, #ffb2a0);
159
- }
160
155
  .Button--red.Button--outline {
161
156
  background-color: transparent;
162
- box-shadow: inset 0 0 0 1px var(--colorsBorderCritical, #e13212);
157
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
163
158
  color: var(--colorsTextCritical, #bf2a00);
164
159
  }
165
160
  .Button--red.Button--outline:hover::before {
@@ -168,9 +163,6 @@ button.Button {
168
163
  .Button--red.Button--outline:active::before, .Button--red.Button--outline.Button--selected::before {
169
164
  background-color: var(--colorsActiveCritical, rgba(225, 50, 18, 0.3));
170
165
  }
171
- .Button--red.Button--outline.Button--focus-visible:focus {
172
- box-shadow: inset 0 0 0 1px var(--colorsBorderCritical, #e13212), 0 0 0 3px var(--colorsFocusRingCritical, #ffb2a0);
173
- }
174
166
  .Button--red.Button--subtle {
175
167
  background-color: transparent;
176
168
  color: var(--colorsTextCritical, #bf2a00);
@@ -183,19 +175,14 @@ button.Button {
183
175
  }
184
176
 
185
177
  .Button--disabled, .Button--disabled.Button--outline, .Button--disabled.Button--subtle {
186
- background: var(--colorsSurfaceGrey, #eeeeee);
187
- color: var(--colorsTextOnGrey, #444445);
178
+ background: #bcbcbd;
179
+ color: #606162;
180
+ box-shadow: none;
188
181
  opacity: 0.4;
189
182
  }
190
183
  .Button--disabled svg, .Button--disabled.Button--outline svg, .Button--disabled.Button--subtle svg {
191
184
  opacity: 0.6;
192
185
  }
193
- .Button--disabled.Button--outline, .Button--disabled.Button--subtle {
194
- background: transparent;
195
- }
196
- .Button--disabled.Button--outline {
197
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445);
198
- }
199
186
 
200
187
  .Button--inactive {
201
188
  pointer-events: none;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Button/Button.scss","../../../src/utilities/_component-reset.scss","../../../src/utilities/_font-smoothing.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;AC0CA;ACvCC;EACA;AAEA;EACA;ECLC;EACA;EF2CD;EACA,kBArCoB;EAsCpB;EACA,eG5BiB;EH6BjB;EACA,OA/Cc;EAgDd;EACA;EACA,WGoFa;EHnFb,aGsDsB;EHrDtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;EAED;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC,kBA1Da;;AAgEd;EACC,kBAzDc;;AA6DhB;EACC;EACA,YAjFc;;AAoFf;EACC;EACA;;AAGC;EACC,kBA5EY;;AAkFb;EACC,kBA3Ea;;AA+Ef;EAAgC;;AAGjC;EACC;;AAGC;EACC,kBA/FY;;AAqGb;EACC,kBA9Fa;;;AAsGjB;EACC,WGHa;EHIb;;;AAGD;EACC,SGpBW;EHqBX;;AAEA;EACC;;AAEA;EACC;EACA;;;AAKH;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKA;EAKC,OAjLa;;;AAqLf;EACC,kBA/KoB;EAgLpB,OApLiB;;AAuLhB;EACC,kBAhKgB;;AAsKjB;EACC,kBA/JiB;;AAmKnB;EACC;EACA;EACA,OAxMa;;AA2MZ;EACC,kBAtLY;;AA0Ld;EAAgC;;AAI/B;EACC,kBAvLa;;AA4LhB;EACC;EACA,OA5Na;;AA+NZ;EACC,kBA1MY;;AAgNb;EACC,kBAzMa;;;AA+MjB;EACC,kBAvOqB;EAwOrB,OA5OkB;;AA+OjB;EACC,kBAxNiB;;AA8NlB;EACC,kBAvNkB;;AA2NpB;EAAgC,YAjPhB;;AAmPhB;EACC;EACA;EACA,OAlQc;;AAqQb;EACC,kBAhPa;;AAsPd;EACC,kBA/Oc;;AAmPhB;EAAgC;;AAGjC;EACC;EACA,OAtRc;;AAyRb;EACC,kBApQa;;AA0Qd;EACC,kBAnQc;;;AA2QjB;EAGC,YAxSmB;EAySnB,OA/Sa;EAgTb;;AAEA;EACC,SGrMgB;;AHyMlB;EAEC;;AAGD;EACC;;;AAIF;EAAoB;;;AAGpB;EACC,WGhMa;EHiMb;;AAEA;EACC,WGlMY;EHmMZ;;;AAMF;EAAwB,WG3MV;;;AH6Md;EACC;;AACA;EAAsB,SGlNR;;;AHqNf;EACC;;AACA;EAAsB;;;AAIvB;EAAgB;;;AAGhB;EAAsB;;;AAItB;EACC;IAAK;;;AAGN;EACC,SG3PkB;EH4PlB;EACA;;AAEA;EAAmB;;;AAGpB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsB,eGvQV;;;AHwQZ;EAAuB,cGxQX;;;AH0QZ;EAA2B;;;AAE3B;EACC;EACA;;;AAGD;EAAoD","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Button/Button.scss","../../../src/utilities/_component-reset.scss","../../../src/utilities/_font-smoothing.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../node_modules/@servicetitan/tokens/core/appearances/light.scss"],"names":[],"mappings":"AAAA;ACoCA;ACjCC;EACA;AAEA;EACA;ECLC;EACA;EFqCD;EACA,kBA/BoB;EAgCpB;EACA,eGrBiB;EHsBjB;EACA,OAzCc;EA0Cd;EACA;EACA,WG0Fa;EHzFb,aG4DsB;EH3DtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;EAID;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC,kBAzDa;;AA+Dd;EACC,kBA1Dc;;AA8DhB;EACC;EACA,SA9Ec;;AAiFf;EACC;EACA;;AAGC;EACC,kBA5EY;;AAkFb;EACC,kBA7Ea;;AAkFhB;EACC;;AAGC;EACC,kBA7FY;;AAmGb;EACC,kBA9Fa;;;AAsGjB;EACC,WGEa;EHDb;;;AAGD;EACC,SGfW;EHgBX;;AAEA;EACC;;AAEA;EACC;EACA;;;AAKH;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKA;EAKC,OA5Ka;;;AAgLf;EACC,kBA1KoB;EA2KpB,OA/KiB;;AAkLhB;EACC,kBA/Ja;;AAqKd;EACC,kBAhKc;;AAoKhB;EACC;EACA;EACA,OAnMa;;AAsMZ;EACC,kBApLY;;AA0Lb;EACC,kBArLa;;AA0LhB;EACC;EACA,OArNa;;AAwNZ;EACC,kBAtMY;;AA4Mb;EACC,kBAvMa;;;AA6MjB;EACC,kBAhOqB;EAiOrB,OArOkB;;AAwOjB;EACC,kBArNiB;;AAyNnB;EACC,SApOe;;AAyOf;EACC,kBA1NkB;;AA8NpB;EACC;EACA;EACA,OA7Pc;;AAgQb;EACC,kBA9Oa;;AAoPd;EACC,kBA/Oc;;AAoPjB;EACC;EACA,OA/Qc;;AAkRb;EACC,kBAhQa;;AAsQd;EACC,kBAjQc;;;AAyQjB;EAGC,YI5PkC;EJ6PlC,OIhPyB;EJiPzB;EACA;;AAEA;EACC,SG/LgB;;;AHoMnB;EAAoB;;;AAGpB;EACC,WGjLa;EHkLb;;AAEA;EACC,WGnLY;EHoLZ;;;AAMF;EAAwB,WG5LV;;;AH8Ld;EACC;;AACA;EAAsB,SGnMR;;;AHsMf;EACC;;AACA;EAAsB;;;AAIvB;EAAgB;;;AAGhB;EAAsB;;;AAItB;EACC;IAAK;;;AAGN;EACC,SG5OkB;EH6OlB;EACA;;AAEA;EAAmB;;;AAGpB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsB,eGxPV;;;AHyPZ;EAAuB,cGzPX;;;AH2PZ;EAA2B;;;AAE3B;EACC;EACA;;;AAGD;EAAoD","file":"index.css"}
@@ -228,7 +228,7 @@
228
228
  box-shadow: 0 0 0 4px var(--colorsBorderPrimarySubdued, #b5deff);
229
229
  }
230
230
  .a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
231
- border-color: var(--colorsBorderDefault, #444445);
231
+ border-color: var(--colorsBorderDefault, #949596);
232
232
  }
233
233
  .Checkbox--error.a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
234
234
  border-color: var(--colorsBorderCritical, #e13212);
@@ -228,7 +228,7 @@
228
228
  box-shadow: 0 0 0 4px var(--colorsBorderPrimarySubdued, #b5deff);
229
229
  }
230
230
  .a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
231
- border-color: var(--colorsBorderDefault, #444445);
231
+ border-color: var(--colorsBorderDefault, #949596);
232
232
  }
233
233
  .Checkbox--error.a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
234
234
  border-color: var(--colorsBorderCritical, #e13212);
@@ -228,7 +228,7 @@
228
228
  box-shadow: 0 0 0 4px var(--colorsBorderPrimarySubdued, #b5deff);
229
229
  }
230
230
  .a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
231
- border-color: var(--colorsBorderDefault, #444445);
231
+ border-color: var(--colorsBorderDefault, #949596);
232
232
  }
233
233
  .Checkbox--error.a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
234
234
  border-color: var(--colorsBorderCritical, #e13212);
@@ -228,7 +228,7 @@
228
228
  box-shadow: 0 0 0 4px var(--colorsBorderPrimarySubdued, #b5deff);
229
229
  }
230
230
  .a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
231
- border-color: var(--colorsBorderDefault, #444445);
231
+ border-color: var(--colorsBorderDefault, #949596);
232
232
  }
233
233
  .Checkbox--error.a-Checkbox:not(.Checkbox--disabled):hover .Checkbox__box {
234
234
  border-color: var(--colorsBorderCritical, #e13212);
@@ -101,18 +101,33 @@ export const DateRangePicker = (_a) => {
101
101
  if (event.nativeEvent.target.className === 'k-nav-today') {
102
102
  event.syntheticEvent.stopPropagation();
103
103
  const today = DateTime.now().setZone(timezone);
104
- if (event.target.activeRangeEnd === 'start') {
105
- eventValue = {
106
- start: iValue.start ? iValue.start : undefined,
107
- end: today.endOf('day'),
108
- };
109
- }
110
- if (event.target.activeRangeEnd === 'end') {
104
+ if (iValue.start && iValue.end) {
105
+ // reset selection if both values are already filled
111
106
  eventValue = {
112
107
  start: today.startOf('day'),
113
- end: iValue.end ? iValue.end : undefined,
114
108
  };
115
109
  }
110
+ else {
111
+ if (event.target.activeRangeEnd === 'start') {
112
+ eventValue = {
113
+ start: iValue.start ? iValue.start : undefined,
114
+ end: today.endOf('day'),
115
+ };
116
+ }
117
+ if (event.target.activeRangeEnd === 'end') {
118
+ eventValue = {
119
+ start: today.startOf('day'),
120
+ end: iValue.end ? iValue.end : undefined,
121
+ };
122
+ }
123
+ if (eventValue.start > eventValue.end) {
124
+ const reverseEventValue = {
125
+ start: eventValue.end,
126
+ end: eventValue.start,
127
+ };
128
+ eventValue = reverseEventValue;
129
+ }
130
+ }
116
131
  setIValue(eventValue);
117
132
  return;
118
133
  }