allaw-ui 2.0.4 → 2.0.6

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.
Binary file
@@ -104,18 +104,18 @@
104
104
  <glyph unicode="&#xe94e;" glyph-name="apple" data-tags="apple" d="M798.293 128c-35.413-52.907-72.96-104.533-130.133-105.387-57.173-1.28-75.52 33.707-140.373 33.707-65.28 0-85.333-32.853-139.521-34.987-55.893-2.133-98.133 56.32-133.973 107.947-72.96 105.387-128.853 299.52-53.76 430.080 37.12 64.853 103.68 105.813 175.787 107.093 54.615 0.853 106.668-37.12 140.375-37.12 33.28 0 96.427 45.653 162.56 38.827 27.733-1.28 105.387-11.093 155.307-84.48-3.84-2.56-92.587-54.613-91.733-162.56 1.28-128.853 113.067-171.947 114.347-172.373-1.28-2.987-17.92-61.44-58.88-120.747zM554.667 810.667c31.147 35.413 82.773 62.293 125.44 64 5.547-49.92-14.507-100.267-44.373-136.107-29.44-36.267-78.080-64.427-125.867-60.587-6.4 49.067 17.493 100.267 44.8 132.693z" />
105
105
  <glyph unicode="&#xe94f;" glyph-name="linkedin" data-tags="linkedin" d="M1024-64h-204.8v358.349c0 98.304-43.366 153.139-121.139 153.139-84.634 0-134.861-57.139-134.861-153.139v-358.349h-204.8v665.6h204.8v-74.854c0 0 64.256 112.742 209.050 112.742 144.845 0 251.75-88.371 251.75-271.258v-432.23zM125.030 708.045c-69.069 0-125.030 56.422-125.030 126.003 0 69.53 55.962 125.952 125.030 125.952 69.018 0 124.979-56.422 124.979-125.952 0.051-69.581-55.962-126.003-124.979-126.003v0zM0-64h256v665.6h-256v-665.6z" />
106
106
  <glyph unicode="&#xe950;" glyph-name="microsoft-outlook" data-tags="microsoft-outlook" d="M1024 644.821v-447.061c0-9.813-3.413-18.091-10.155-24.576-6.741-6.571-15.019-9.813-24.747-9.813h-364.672v296.917l68.267-52.437c4.352-3.627 9.771-5.376 16.171-5.376 6.315 0 11.819 1.749 16.597 5.419zM624.427 731.051h364.672c9.003 0 16.768-2.688 23.168-8.192 6.4-5.461 9.984-12.8 10.581-21.76l-314.411-250.709-84.011 66.091zM571.904 923.136v-950.229l-571.904 98.816v749.867l571.989 101.547zM399.147 446.123c-0.853 48.341-13.355 88.405-37.504 120.064-23.68 31.573-54.4 48.256-90.923 49.664-35.157-1.408-65.237-18.048-89.6-49.664-24.32-31.659-36.48-71.765-37.12-120.064 0.64-47.659 13.44-87.339 37.76-119.083 24.363-31.573 54.357-48.341 89.643-50.176 36.48 1.493 67.157 18.091 91.52 49.92 24.32 31.915 37.12 71.68 37.76 119.339zM266.027 552.021c18.389-0.853 33.877-10.923 46.208-30.592 12.16-19.669 18.56-44.587 18.56-74.752 0-30.763-6.357-55.765-18.56-75.563-12.843-19.797-28.16-30.037-46.763-30.037s-33.92 9.643-46.72 29.44-18.56 44.8-18.56 74.837c0 30.080 5.76 55.083 18.56 74.24 12.117 19.2 27.563 29.44 46.123 30.763z" />
107
- <glyph unicode="&#xe951;" d="M277.333 682.667h469.333v-469.333h-469.333v469.333z" />
108
- <glyph unicode="&#xe952;" d="M547.84 513.707l21.504-30.72 33.792 24.576v-178.176h36.864v233.472h-30.72z" />
109
- <glyph unicode="&#xe953;" glyph-name="microsoftoutlook" data-tags="microsoft-outlook" d="M1024 644.821v-447.061c0-9.813-3.413-18.091-10.155-24.576-6.741-6.571-15.019-9.813-24.747-9.813h-364.672v296.917l68.267-52.437c4.352-3.627 9.771-5.376 16.171-5.376 6.315 0 11.819 1.749 16.597 5.419zM624.427 731.051h364.672c9.003 0 16.768-2.688 23.168-8.192 6.4-5.461 9.984-12.8 10.581-21.76l-314.411-250.709-84.011 66.091zM571.904 923.136v-950.229l-571.904 98.816v749.867l571.989 101.547zM399.147 446.123c-0.853 48.341-13.355 88.405-37.504 120.064-23.68 31.573-54.4 48.256-90.923 49.664-35.157-1.408-65.237-18.048-89.6-49.664-24.32-31.659-36.48-71.765-37.12-120.064 0.64-47.659 13.44-87.339 37.76-119.083 24.363-31.573 54.357-48.341 89.643-50.176 36.48 1.493 67.157 18.091 91.52 49.92 24.32 31.915 37.12 71.68 37.76 119.339zM266.027 552.021c18.389-0.853 33.877-10.923 46.208-30.592 12.16-19.669 18.56-44.587 18.56-74.752 0-30.763-6.357-55.765-18.56-75.563-12.843-19.797-28.16-30.037-46.763-30.037s-33.92 9.643-46.72 29.44-18.56 44.8-18.56 74.837c0 30.080 5.76 55.083 18.56 74.24 12.117 19.2 27.563 29.44 46.123 30.763z" />
110
- <glyph unicode="&#xe954;" d="M489.451 453.44c13.333 12.245 21.611 29.227 21.611 47.979 0 37.269-32.704 67.584-72.896 67.584-34.176 0-63.403-21.525-71.040-52.331l35.349-8.981c3.52 14.165 18.517 24.448 35.691 24.448 20.096 0 36.459-13.781 36.459-30.72s-16.363-30.72-36.459-30.72h-21.269v-36.864h21.269c23.061 0 42.517-16.021 42.517-34.987 0-19.285-18.475-34.987-41.195-34.987-20.523 0-38.059 13.013-40.832 30.251l-35.989-5.888c5.589-34.901 38.613-61.227 76.8-61.227 42.816 0 77.653 32.235 77.653 71.851 0 21.824-10.752 41.408-27.669 54.592z" />
111
- <glyph unicode="&#xe955;" d="M725.333 64h-426.667l-21.333 85.333 21.333 85.333h426.667l21.333-85.333z" />
112
- <glyph unicode="&#xe956;" d="M810.667 213.333l85.333 21.333v426.667l-85.333 21.333-85.333-21.333v-426.667z" />
113
- <glyph unicode="&#xe957;" d="M725.333 661.333l21.333 85.333-21.333 85.333h-533.333c-35.349 0-64-28.651-64-64v-533.333l85.333-21.333 85.333 21.333v426.667h426.667z" />
114
- <glyph unicode="&#xe958;" d="M725.333 234.667v-170.667l170.667 170.667z" />
115
- <glyph unicode="&#xe959;" d="M832 832h-106.667v-170.667h170.667v106.667c0 35.349-28.651 64-64 64z" />
107
+ <glyph unicode="&#xe951;" d="M781.474 717.474h-538.947v-538.947h538.947z" />
108
+ <glyph unicode="&#xe952;" d="M781.474-64l242.526 242.526-121.263 20.69-121.263-20.69-22.133-110.918z" />
109
+ <glyph unicode="&#xe953;" glyph-name="play" data-tags="play" horiz-adv-x="877" d="M94.48-63.141c-32.274 5.287-63.377 26.516-79.643 54.361-6.986 11.959-12.17 28.677-13.919 44.888-1.224 11.345-1.224 812.334 0 823.68 3.044 28.221 13.476 49.939 32.911 68.519 34.712 33.184 82.082 40.948 123.653 20.265 10.169-5.059 666.111-405.913 674.048-411.918 26.288-19.891 41.424-46.683 45.222-80.048 2.187-19.213-3.817-46.177-14.211-63.816-7.59-12.88-18.692-25.036-30.619-33.527-9.888-7.039-665.618-407.55-674.44-411.939-8.208-4.084-18.146-7.57-27.483-9.641-8.259-1.832-26.744-2.261-35.519-0.823z" />
110
+ <glyph unicode="&#xe954;" d="M0 178.526v-161.684c0-44.665 36.177-80.842 80.842-80.842h161.684l24.901 121.263-24.901 121.263-132.13 20.69-110.397-20.69z" />
111
+ <glyph unicode="&#xe955;" d="M1024 717.474v161.684c0 44.665-36.177 80.842-80.842 80.842h-161.684c-14.755-60.143-22.133-104.404-22.133-132.783s7.378-64.96 22.133-109.743c53.638-15.36 94.059-23.039 121.263-23.039s67.625 7.68 121.263 23.039z" />
112
+ <glyph unicode="&#xe956;" d="M1024 717.474h-242.526v-538.947h242.526z" />
113
+ <glyph unicode="&#xe957;" d="M781.474 178.526h-538.947v-242.526h538.947z" />
114
+ <glyph unicode="&#xe958;" d="M781.474 960h-700.632c-44.665 0-80.842-36.177-80.842-80.842v-700.632h242.526v538.947h538.947v242.526z" />
115
+ <glyph unicode="&#xe959;" d="M353.078 299.385c-20.143 13.608-34.088 33.482-41.701 59.756l46.754 19.267c4.244-16.168 11.655-28.699 22.232-37.592 10.509-8.893 23.309-13.272 38.265-13.272 15.293 0 28.429 4.648 39.411 13.945s16.505 21.154 16.505 35.503c0 14.686-5.794 26.678-17.381 35.975s-26.139 13.945-43.52 13.945h-27.015v46.282h24.253c14.956 0 27.554 4.042 37.794 12.126s15.36 19.133 15.36 33.213c0 12.531-4.581 22.501-13.743 29.979s-20.749 11.251-34.829 11.251c-13.743 0-24.657-3.638-32.741-10.981-8.079-7.363-14.153-16.659-17.651-27.015l-46.282 19.267c6.131 17.381 17.381 32.741 33.886 46.013s37.592 19.941 63.192 19.941c18.931 0 35.975-3.638 51.065-10.981s26.947-17.516 35.503-30.451c8.556-13.002 12.8-27.554 12.8-43.722 0-16.505-3.975-30.451-11.924-41.903s-17.718-20.211-29.305-26.341v-2.762c14.962-6.169 27.959-16.3 37.592-29.305 9.768-13.137 14.686-28.834 14.686-47.158s-4.648-34.695-13.945-49.044c-9.297-14.349-22.164-25.667-38.467-33.886-16.371-8.219-34.762-12.396-55.175-12.396-23.646-0.067-45.474 6.737-65.617 20.346v0zM640.269 531.402l-51.335-37.12-25.667 38.939 92.093 66.425h35.301v-313.331h-50.392v245.086z" />
116
116
  <glyph unicode="&#xe95a;" d="M48.762 911.238h438.857v-438.857h-438.857v438.857z" />
117
117
  <glyph unicode="&#xe95b;" d="M48.762 423.619h438.857v-438.857h-438.857v438.857z" />
118
118
  <glyph unicode="&#xe95c;" d="M536.381 911.238h438.857v-438.857h-438.857v438.857z" />
119
119
  <glyph unicode="&#xe95d;" d="M536.381 423.619h438.857v-438.857h-438.857v438.857z" />
120
- <glyph unicode="&#xe95e;" d="M192 64h106.667v170.667h-170.667v-106.667c0-35.349 28.651-64 64-64z" />
120
+ <glyph unicode="&#xe95e;" glyph-name="pause" data-tags="pause" horiz-adv-x="852" d="M120.549-63.781c-30.987 2.728-62.772 16.694-83.089 36.51-7.98 7.784-19.121 23.746-24.747 35.459-3.943 8.209-8.485 22.227-10.946 33.781-1.689 7.93-1.767 25.902-1.767 406.061v397.764l2.163 9.978c4.328 19.965 9.62 32.571 20.789 49.516 18.252 27.694 46.525 45.229 85.396 52.962 7.789 1.55 14.76 1.748 61.495 1.748 57.274 0 58.175-0.068 78.959-5.953 18.476-5.232 40.961-18.214 53.822-31.074 7.785-7.785 19.009-23.971 24.34-35.099 4.383-9.149 7.906-19.859 10.559-32.1l2.163-9.978v-397.764c0-380.159-0.078-398.132-1.767-406.061-2.461-11.554-7.003-25.572-10.946-33.781-5.626-11.713-16.767-27.675-24.747-35.459-12.784-12.468-34.44-25.149-51.73-30.29-20.106-5.978-21.889-6.128-75.772-6.377-27.38-0.127-51.758-0.056-54.174 0.156zM633.006-63.781c-30.987 2.728-62.772 16.694-83.089 36.51-7.98 7.784-19.121 23.746-24.747 35.459-3.943 8.209-8.485 22.227-10.946 33.781-1.689 7.93-1.767 25.902-1.767 406.061v397.764l2.163 9.978c4.328 19.965 9.621 32.571 20.789 49.516 18.252 27.694 46.525 45.229 85.396 52.962 7.789 1.55 14.76 1.748 61.495 1.748 57.274 0 58.175-0.068 78.959-5.953 18.476-5.232 40.961-18.214 53.822-31.074 7.785-7.785 19.009-23.971 24.34-35.099 4.383-9.149 7.906-19.859 10.559-32.1l2.163-9.978v-397.764c0-380.159-0.078-398.132-1.767-406.061-2.461-11.554-7.003-25.572-10.946-33.781-5.626-11.713-16.767-27.675-24.747-35.459-12.784-12.468-34.441-25.149-51.73-30.29-20.106-5.978-21.889-6.128-75.772-6.377-27.38-0.127-51.758-0.056-54.174 0.156z" />
121
121
  </font></defs></svg>
Binary file
Binary file
@@ -7,9 +7,7 @@
7
7
  height: 42px;
8
8
  padding: 1rem 1.3rem;
9
9
  border-radius: 24px;
10
- transition:
11
- background-color 0.2s,
12
- opacity 0.2s;
10
+ transition: background-color 0.2s, opacity 0.2s;
13
11
  border: 0px;
14
12
  cursor: pointer;
15
13
  text-wrap: nowrap;
@@ -62,6 +60,23 @@
62
60
  pointer-events: none;
63
61
  }
64
62
 
63
+ .primary-button-loading-dots {
64
+ width: 1.25rem;
65
+ display: inline-block;
66
+ text-align: left;
67
+ font-size: 0.9rem;
68
+ }
69
+
70
+ .primary-button-warning {
71
+ background: var(--red-tag-dark, #e15151);
72
+ color: var(--pure-white, #fff);
73
+ border: none;
74
+ }
75
+
76
+ .primary-button-warning:hover {
77
+ background: #c14040;
78
+ }
79
+
65
80
  @keyframes pulse-background {
66
81
  0% {
67
82
  background-color: #171e25;
@@ -73,10 +88,3 @@
73
88
  background-color: #1985e8;
74
89
  }
75
90
  }
76
-
77
- .primary-button-loading-dots {
78
- width: 1.25rem;
79
- display: inline-block;
80
- text-align: left;
81
- font-size: 0.9rem;
82
- }
@@ -12,6 +12,7 @@ export interface PrimaryButtonProps extends ButtonHTMLAttributes<HTMLButtonEleme
12
12
  fullWidth?: boolean;
13
13
  type?: "button" | "submit" | "reset";
14
14
  isLoading?: boolean;
15
+ variant?: "default" | "warning";
15
16
  }
16
17
  declare const PrimaryButton: React.ForwardRefExoticComponent<PrimaryButtonProps & React.RefAttributes<HTMLButtonElement>>;
17
18
  export default PrimaryButton;
@@ -61,7 +61,7 @@ import React, { forwardRef, useImperativeHandle, useState, useEffect, } from "re
61
61
  import "./PrimaryButton.css";
62
62
  import "../../../styles/global.css";
63
63
  var PrimaryButton = forwardRef(function (_a, ref) {
64
- var startIcon = _a.startIcon, endIcon = _a.endIcon, startIconName = _a.startIconName, endIconName = _a.endIconName, label = _a.label, _b = _a.disabled, disabled = _b === void 0 ? false : _b, onClick = _a.onClick, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, _d = _a.type, type = _d === void 0 ? "button" : _d, _e = _a.isLoading, isLoading = _e === void 0 ? false : _e, props = __rest(_a, ["startIcon", "endIcon", "startIconName", "endIconName", "label", "disabled", "onClick", "fullWidth", "type", "isLoading"]);
64
+ var startIcon = _a.startIcon, endIcon = _a.endIcon, startIconName = _a.startIconName, endIconName = _a.endIconName, label = _a.label, _b = _a.disabled, disabled = _b === void 0 ? false : _b, onClick = _a.onClick, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, _d = _a.type, type = _d === void 0 ? "button" : _d, _e = _a.isLoading, isLoading = _e === void 0 ? false : _e, variant = _a.variant, props = __rest(_a, ["startIcon", "endIcon", "startIconName", "endIconName", "label", "disabled", "onClick", "fullWidth", "type", "isLoading", "variant"]);
65
65
  var buttonRef = React.useRef(null);
66
66
  var _f = useState(false), internalIsLoading = _f[0], setInternalIsLoading = _f[1];
67
67
  var _g = useState(""), loadingDots = _g[0], setLoadingDots = _g[1];
@@ -108,7 +108,7 @@ var PrimaryButton = forwardRef(function (_a, ref) {
108
108
  }
109
109
  });
110
110
  }); };
111
- return (React.createElement("button", __assign({ ref: buttonRef, className: "primary-button ".concat(disabled ? "primary-button-disabled" : "primary-button-enabled", " ").concat(fullWidth ? "primary-button-full-width" : "", " ").concat(isButtonLoading ? "primary-button-loading" : ""), disabled: disabled, onClick: handleClick, type: type }, props),
111
+ return (React.createElement("button", __assign({ ref: buttonRef, className: "primary-button ".concat(disabled ? "primary-button-disabled" : "primary-button-enabled", " ").concat(fullWidth ? "primary-button-full-width" : "", " ").concat(isButtonLoading ? "primary-button-loading" : "").concat(variant === "warning" ? "primary-button-warning" : ""), disabled: disabled, onClick: handleClick, type: type }, props),
112
112
  startIcon && (React.createElement("span", { className: "primary-button-icon ".concat(startIconName) })),
113
113
  React.createElement("span", { className: "primary-button-label" }, label),
114
114
  isButtonLoading ? (React.createElement("span", { className: "primary-button-loading-dots" }, loadingDots)) : (endIcon && React.createElement("span", { className: "primary-button-icon ".concat(endIconName) }))));
@@ -61,15 +61,24 @@ declare namespace _default {
61
61
  }
62
62
  export { control_5 as control };
63
63
  }
64
- export namespace parameters {
65
- namespace backgrounds {
66
- let _default: string;
67
- export { _default as default };
68
- export let values: {
69
- name: string;
70
- value: string;
71
- }[];
64
+ export namespace variant {
65
+ export namespace control_6 {
66
+ let type_7: string;
67
+ export { type_7 as type };
68
+ let options_1: string[];
69
+ export { options_1 as options };
72
70
  }
71
+ export { control_6 as control };
72
+ }
73
+ }
74
+ export namespace parameters {
75
+ namespace backgrounds {
76
+ let _default: string;
77
+ export { _default as default };
78
+ export let values: {
79
+ name: string;
80
+ value: string;
81
+ }[];
73
82
  }
74
83
  }
75
84
  }
@@ -83,4 +92,5 @@ export const Loading: any;
83
92
  export const SubmitButton: any;
84
93
  export const ResetButton: any;
85
94
  export const AsyncButton: any;
95
+ export const WarningButton: any;
86
96
  import PrimaryButton from "./PrimaryButton";
@@ -95,18 +95,24 @@ export default {
95
95
  type: "boolean",
96
96
  },
97
97
  },
98
- parameters: {
99
- backgrounds: {
100
- default: "light",
101
- values: [
102
- { name: "light", value: "#ffffff" },
103
- { name: "grey", value: "#728ea7" },
104
- { name: "figma", value: "#404040" },
105
- { name: "dark", value: "#171e25" },
106
- ],
98
+ variant: {
99
+ control: {
100
+ type: "select",
101
+ options: ["default", "warning"],
107
102
  },
108
103
  },
109
104
  },
105
+ parameters: {
106
+ backgrounds: {
107
+ default: "light",
108
+ values: [
109
+ { name: "light", value: "#ffffff" },
110
+ { name: "grey", value: "#728ea7" },
111
+ { name: "figma", value: "#404040" },
112
+ { name: "dark", value: "#171e25" },
113
+ ],
114
+ },
115
+ },
110
116
  };
111
117
  var Template = function (args) { return React.createElement(PrimaryButton, __assign({}, args)); };
112
118
  export var Default = Template.bind({});
@@ -145,3 +151,5 @@ AsyncButton.args = __assign(__assign({}, Default.args), { label: "Async Action",
145
151
  }
146
152
  });
147
153
  }); } });
154
+ export var WarningButton = Template.bind({});
155
+ WarningButton.args = __assign(__assign({}, Default.args), { label: "Warning", variant: "warning" });
@@ -1,28 +1,62 @@
1
1
  .billing-button-wrapper {
2
- padding: 0.5rem 1rem;
3
- background-color: #F4F7FB;
4
- border: 1px solid var(--primary-venom-grey, #E6EDF5);
5
- border-radius: 5px;
6
- font-family: Inter;
7
- display: flex;
8
- flex-direction: row;
9
- gap: 0.5rem;
10
- font-weight: 600;
11
- color: black;
12
- align-items: center;
13
- cursor: pointer;
2
+ padding: 0.5rem 1rem;
3
+ background-color: #f4f7fb;
4
+ border: 1px solid var(--primary-venom-grey, #e6edf5);
5
+ border-radius: 5px;
6
+ font-family: Inter;
7
+ display: flex;
8
+ flex-direction: row;
9
+ gap: 0.5rem;
10
+ font-weight: 600;
11
+ color: black;
12
+ align-items: center;
13
+ cursor: pointer;
14
+ max-height: 38px;
15
+ transition: transform 0.2s ease-in-out;
14
16
  }
15
17
 
16
18
  .billing-button-wrapper > i {
17
- color: #25BEEB;
18
- font-weight: 500;
19
- font-size: 16px;
19
+ color: #25beeb;
20
+ font-weight: 500;
21
+ font-size: 16px;
22
+ min-width: 16px;
20
23
  }
21
24
 
22
25
  .billing-button-wrapper:active {
23
- outline: 1px solid #25BEEB;
26
+ outline: 1px solid #25beeb;
27
+ }
28
+
29
+ .billing-time {
30
+ min-width: 70px;
31
+ text-align: center;
32
+ font-weight: 500;
33
+ font-variant-numeric: tabular-nums;
34
+ }
35
+
36
+ .icon-wrapper i {
37
+ display: flex;
38
+ justify-content: center;
39
+ align-items: center;
40
+ width: 100%;
41
+ height: 100%;
42
+ font-size: 14px;
43
+ color: #25beeb;
44
+ font-weight: 800;
45
+ }
46
+
47
+ @keyframes borderOpacity {
48
+ 0% {
49
+ border-color: rgba(37, 190, 235, 0.16);
50
+ }
51
+ 50% {
52
+ border-color: rgba(37, 190, 235, 1);
53
+ }
54
+ 100% {
55
+ border-color: rgba(37, 190, 235, 0.16);
56
+ }
24
57
  }
25
58
 
26
59
  .isRunning {
27
- outline: 1px solid #25BEEB;
28
- }
60
+ border: 1px solid rgba(37, 190, 235, 0.2);
61
+ animation: borderOpacity 3s infinite ease-in-out;
62
+ }
@@ -3,6 +3,8 @@ import "./BillingCount.css";
3
3
  export type BillingCountProps = {
4
4
  onEnd: (time: number) => void;
5
5
  setIsStarted?: (value: boolean) => void;
6
+ resetTimer?: boolean;
7
+ pauseTimer?: boolean;
6
8
  };
7
- declare function BillingCount({ onEnd, setIsStarted }: BillingCountProps): React.JSX.Element;
9
+ declare const BillingCount: ({ onEnd, setIsStarted, pauseTimer, resetTimer, }: BillingCountProps) => React.JSX.Element;
8
10
  export default BillingCount;
@@ -1,75 +1,146 @@
1
- import React, { useEffect, useState } from "react";
2
- import { differenceInSeconds } from "date-fns";
1
+ import React, { useEffect, useState, useRef } from "react";
3
2
  import "./BillingCount.css";
4
- function BillingCount(_a) {
5
- var onEnd = _a.onEnd, setIsStarted = _a.setIsStarted;
6
- var _b = useState(false), started = _b[0], setStarted = _b[1];
7
- var _c = useState(0), time = _c[0], setTime = _c[1];
8
- // Load saved start time and elapsed time from localStorage on component mount
3
+ var LOCAL_STORAGE_KEYS = {
4
+ START_TIME: "startTimeBilling",
5
+ ELAPSED_TIME: "elapsedTime",
6
+ IS_RUNNING: "isRunning",
7
+ };
8
+ var BillingCount = function (_a) {
9
+ var onEnd = _a.onEnd, setIsStarted = _a.setIsStarted, pauseTimer = _a.pauseTimer, resetTimer = _a.resetTimer;
10
+ var _b = useState(0), time = _b[0], setTime = _b[1];
11
+ var _c = useState(false), isPaused = _c[0], setIsPaused = _c[1];
12
+ var _d = useState(false), isRunning = _d[0], setIsRunning = _d[1];
13
+ var _e = useState(false), isInitialized = _e[0], setIsInitialized = _e[1];
14
+ var intervalRef = useRef(null);
9
15
  useEffect(function () {
10
- var savedStartTime = localStorage.getItem("startTimeBilling");
11
- var savedElapsedTime = parseInt(localStorage.getItem("elapsedTime") || "0", 10);
12
- if (savedStartTime) {
13
- var elapsed = differenceInSeconds(new Date(), new Date(savedStartTime)) + savedElapsedTime;
14
- setTime(elapsed);
15
- setStarted(true);
16
+ setIsInitialized(true);
17
+ }, []);
18
+ useEffect(function () {
19
+ setTime(getSavedElapsedTime());
20
+ }, []);
21
+ useEffect(function () {
22
+ if (!isInitialized)
23
+ return;
24
+ if (resetTimer)
25
+ setTime(0);
26
+ setIsPaused(false);
27
+ setIsRunning(false);
28
+ clearTimerData();
29
+ if (intervalRef.current) {
30
+ clearInterval(intervalRef.current);
16
31
  }
17
- else {
18
- setTime(savedElapsedTime);
32
+ else if (pauseTimer) {
33
+ pauseTimerHandler();
19
34
  }
20
- }, []);
21
- // Update the timer every second if started
35
+ else if (!pauseTimer && !isRunning && isPaused) {
36
+ startTimerHandler();
37
+ }
38
+ }, [resetTimer]);
22
39
  useEffect(function () {
23
- var interval;
24
- if (started) {
25
- interval = setInterval(function () {
26
- var savedStartTime = localStorage.getItem("startTimeBilling");
27
- if (savedStartTime) {
28
- var elapsed = differenceInSeconds(new Date(), new Date(savedStartTime)) + parseInt(localStorage.getItem("elapsedTime") || "0", 10);
29
- setTime(elapsed);
30
- }
31
- }, 1000); // Update every second
40
+ if (isRunning && !isPaused) {
41
+ intervalRef.current = setInterval(function () {
42
+ setTime(function (prevTime) {
43
+ var newElapsedTime = prevTime + 1;
44
+ updateElapsedTime(newElapsedTime);
45
+ return newElapsedTime;
46
+ });
47
+ }, 1000);
32
48
  }
33
- return function () { return clearInterval(interval); };
34
- }, [started]);
35
- var handleButtonClick = function () {
36
- if (started) {
37
- // Stop timer and reset
38
- setIsStarted && setIsStarted(false);
39
- var savedStartTime = localStorage.getItem("startTimeBilling");
40
- if (savedStartTime) {
41
- var finalElapsedTime = differenceInSeconds(new Date(), new Date(savedStartTime)) + parseInt(localStorage.getItem("elapsedTime") || "0", 10);
42
- onEnd(finalElapsedTime); // Callback with final time
43
- }
44
- localStorage.removeItem("startTimeBilling");
45
- localStorage.removeItem("elapsedTime");
46
- setTime(0);
47
- setStarted(false);
49
+ else if (intervalRef.current) {
50
+ clearInterval(intervalRef.current);
51
+ intervalRef.current = null;
52
+ }
53
+ return function () {
54
+ if (intervalRef.current)
55
+ clearInterval(intervalRef.current);
56
+ };
57
+ }, [isRunning, isPaused]);
58
+ useEffect(function () {
59
+ if (!isInitialized)
60
+ return;
61
+ if (resetTimer) {
62
+ pauseTimerHandler();
63
+ }
64
+ else if (!pauseTimer && !resetTimer) {
65
+ startTimerHandler();
66
+ }
67
+ else if (pauseTimer) {
68
+ pauseTimerHandler();
69
+ }
70
+ }, [pauseTimer, resetTimer]);
71
+ // Gestion de reprise de chrono en cas de refresh de page
72
+ useEffect(function () {
73
+ var savedElapsedTime = getSavedElapsedTime();
74
+ var savedIsRunning = localStorage.getItem(LOCAL_STORAGE_KEYS.IS_RUNNING) === "true";
75
+ setTime(savedElapsedTime);
76
+ if (savedIsRunning && savedElapsedTime > 0) {
77
+ setIsRunning(true);
78
+ setIsStarted && setIsStarted(true);
48
79
  }
49
80
  else {
50
- // Start timer from 0
81
+ setIsRunning(false);
82
+ setIsStarted && setIsStarted(false);
83
+ }
84
+ }, [setIsStarted]);
85
+ // Mise a jour du temps de session
86
+ var updateElapsedTime = function (elapsedTime) {
87
+ localStorage.setItem(LOCAL_STORAGE_KEYS.ELAPSED_TIME, elapsedTime.toString());
88
+ };
89
+ // Cleanup du localStorage après un reset de session de travail
90
+ var clearTimerData = function () {
91
+ localStorage.removeItem(LOCAL_STORAGE_KEYS.START_TIME);
92
+ localStorage.removeItem(LOCAL_STORAGE_KEYS.ELAPSED_TIME);
93
+ localStorage.removeItem(LOCAL_STORAGE_KEYS.IS_RUNNING);
94
+ };
95
+ var getSavedElapsedTime = function () {
96
+ return parseInt(localStorage.getItem(LOCAL_STORAGE_KEYS.ELAPSED_TIME) || "0", 10);
97
+ };
98
+ var getCurrentElapsedTime = function () {
99
+ var savedStartTime = localStorage.getItem(LOCAL_STORAGE_KEYS.START_TIME);
100
+ if (savedStartTime) {
101
+ return getSavedElapsedTime();
102
+ }
103
+ return getSavedElapsedTime();
104
+ };
105
+ var startTimerHandler = function () {
106
+ if (!isRunning) {
107
+ localStorage.setItem(LOCAL_STORAGE_KEYS.START_TIME, new Date().toISOString());
108
+ localStorage.setItem(LOCAL_STORAGE_KEYS.IS_RUNNING, "true");
109
+ setTime(getSavedElapsedTime());
110
+ setIsRunning(true);
51
111
  setIsStarted && setIsStarted(true);
52
- localStorage.setItem("startTimeBilling", new Date().toISOString());
53
- setStarted(true);
54
112
  }
55
113
  };
56
- // Format the time in hours, minutes, and seconds
114
+ var pauseTimerHandler = function () {
115
+ if (isRunning) {
116
+ var elapsed = getCurrentElapsedTime();
117
+ updateElapsedTime(elapsed);
118
+ localStorage.setItem(LOCAL_STORAGE_KEYS.IS_RUNNING, "false");
119
+ setTime(elapsed);
120
+ setIsRunning(false);
121
+ setIsStarted && setIsStarted(false);
122
+ }
123
+ };
124
+ var handleButtonClick = function () {
125
+ if (!isRunning) {
126
+ startTimerHandler();
127
+ }
128
+ else {
129
+ pauseTimerHandler();
130
+ onEnd(getCurrentElapsedTime());
131
+ }
132
+ };
57
133
  var formatTime = function (seconds) {
58
134
  var hrs = Math.floor(seconds / 3600);
59
135
  var mins = Math.floor((seconds % 3600) / 60);
60
136
  var secs = seconds % 60;
61
- return "".concat(hrs.toString().padStart(2, "0"), ":").concat(mins.toString().padStart(2, "0"), ":").concat(secs.toString().padStart(2, "0"));
137
+ return "".concat(hrs.toString().padStart(2, "0"), ":").concat(mins
138
+ .toString()
139
+ .padStart(2, "0"), ":").concat(secs.toString().padStart(2, "0"));
62
140
  };
63
- return React.createElement("button", { onClick: handleButtonClick, className: "billing-button-wrapper ".concat(started ? "isRunning" : "") },
141
+ return (React.createElement("button", { onClick: handleButtonClick, className: "billing-button-wrapper ".concat(isRunning ? "isRunning" : "") },
64
142
  React.createElement("i", { className: "allaw-icon-clock" }),
65
- formatTime(time),
66
- React.createElement("svg", { width: "11px", height: "11px", viewBox: "-0.5 0 7 7", version: "1.1", xmlns: "http://www.w3.org/2000/svg" },
67
- React.createElement("g", { id: "Page-1", stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" },
68
- React.createElement("g", { id: "Dribbble-Light-Preview", transform: "translate(-347.000000, -3766.000000)", fill: "#25BEEB" },
69
- React.createElement("g", { id: "icons", transform: "translate(56.000000, 160.000000)" },
70
- React.createElement("path", { d: "M296.494737,3608.57322 L292.500752,3606.14219 C291.83208,3605.73542 291,3606.25002 291,3607.06891 L291,3611.93095 C291,3612.7509 291.83208,3613.26444 292.500752,3612.85767 L296.494737,3610.42771 C297.168421,3610.01774 297.168421,3608.98319 296.494737,3608.57322", id: "play-[#1003]" }))))));
71
- }
143
+ React.createElement("span", { className: "billing-time" }, formatTime(time)),
144
+ React.createElement("i", { className: isRunning ? "allaw-icon-pause" : "allaw-icon-play", style: { fontSize: "12px", color: "#25BEEB", fontWeight: 800 } })));
145
+ };
72
146
  export default BillingCount;
73
- /*
74
-
75
- */
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import "./Stepper.css";
3
+ interface ConfirmationModalProps {
4
+ show: boolean;
5
+ title: string;
6
+ description: string;
7
+ confirmLabel: string;
8
+ cancelLabel: string;
9
+ onConfirm: () => void;
10
+ onCancel: () => void;
11
+ isDanger?: boolean;
12
+ }
13
+ declare const ConfirmationModal: React.FC<ConfirmationModalProps>;
14
+ export default ConfirmationModal;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import "./Stepper.css";
3
+ import PrimaryButton from "../../atoms/buttons/PrimaryButton";
4
+ import SecondaryButton from "../../atoms/buttons/SecondaryButton";
5
+ import Heading from "../../atoms/typography/Heading";
6
+ import Paragraph from "../../atoms/typography/Paragraph";
7
+ var ConfirmationModal = function (_a) {
8
+ var show = _a.show, title = _a.title, description = _a.description, confirmLabel = _a.confirmLabel, cancelLabel = _a.cancelLabel, onConfirm = _a.onConfirm, onCancel = _a.onCancel, _b = _a.isDanger, isDanger = _b === void 0 ? false : _b;
9
+ var handleOutsideClick = function (e) {
10
+ if (e.target === e.currentTarget) {
11
+ onCancel();
12
+ }
13
+ };
14
+ if (!show)
15
+ return null;
16
+ return (React.createElement("div", { className: "confirmation-modal", onClick: handleOutsideClick },
17
+ React.createElement("div", { className: "confirmation-modal-content" },
18
+ React.createElement("div", { className: "confirmation-modal-heading-wrapper" },
19
+ React.createElement(Heading, { text: title, variant: "h4", color: "noir", align: "left" })),
20
+ React.createElement("div", { className: "confirmation-modal-paragraph-wrapper" },
21
+ React.createElement(Paragraph, { text: description, variant: "medium", size: "default", className: "confirmation-modal-paragraph" })),
22
+ React.createElement("div", { className: "confirmation-modal-buttons" },
23
+ React.createElement(SecondaryButton, { label: cancelLabel, onClick: onCancel, startIconName: "allaw-icon-close", startIcon: true }),
24
+ React.createElement(PrimaryButton, { label: confirmLabel, variant: isDanger ? "warning" : "default", onClick: onConfirm, endIconName: "allaw-icon-check", endIcon: true })))));
25
+ };
26
+ export default ConfirmationModal;
@@ -103,3 +103,75 @@
103
103
  border-bottom-right-radius: 0;
104
104
  }
105
105
  }
106
+
107
+ .stepper-container.modal-active {
108
+ position: relative;
109
+ }
110
+
111
+ .stepper-container.modal-active::before {
112
+ content: "";
113
+ position: absolute;
114
+ top: 0;
115
+ left: 0;
116
+ width: 100%;
117
+ height: 100%;
118
+ background: rgba(0, 0, 0, 0.3);
119
+ filter: brightness(50%);
120
+ z-index: 1000;
121
+ pointer-events: none;
122
+ border-radius: 16px;
123
+ }
124
+
125
+ .confirmation-modal {
126
+ position: absolute;
127
+ inset: 0;
128
+ display: flex;
129
+ justify-content: center;
130
+ align-items: center;
131
+ z-index: 1100;
132
+ }
133
+
134
+ .confirmation-modal-content {
135
+ background: #fff;
136
+ border-radius: 16px;
137
+ padding: 2rem;
138
+ max-width: 400px;
139
+ width: 90%;
140
+ text-align: center;
141
+ animation: fadeIn 0.2s ease-out;
142
+ }
143
+
144
+ .confirmation-modal-heading-wrapper {
145
+ margin-bottom: 1.5rem;
146
+ display: flex;
147
+ justify-content: start;
148
+ }
149
+
150
+ .confirmation-modal-paragraph-wrapper {
151
+ margin-bottom: 2.5rem;
152
+ }
153
+
154
+ .confirmation-modal-paragraph {
155
+ text-align: left;
156
+ }
157
+
158
+ .confirmation-modal-buttons {
159
+ display: flex;
160
+ justify-content: space-between;
161
+ gap: 16px;
162
+ }
163
+
164
+ .confirmation-modal-buttons button {
165
+ flex: 1;
166
+ }
167
+
168
+ @keyframes fadeIn {
169
+ from {
170
+ opacity: 0;
171
+ transform: scale(0.9);
172
+ }
173
+ to {
174
+ opacity: 1;
175
+ transform: scale(1);
176
+ }
177
+ }
@@ -30,6 +30,16 @@ export interface StepperProps {
30
30
  showProgressBar?: boolean[];
31
31
  onClose?: () => void;
32
32
  validateStep?: (step: number) => boolean | Promise<boolean>;
33
+ confirmationModal?: {
34
+ show: boolean;
35
+ title: string;
36
+ description: string;
37
+ confirmLabel: string;
38
+ cancelLabel: string;
39
+ isDanger: boolean;
40
+ };
41
+ onModalConfirm?: () => void;
42
+ onModalCancel?: () => void;
33
43
  }
34
44
  declare const Stepper: React.FC<StepperProps>;
35
45
  export default Stepper;
@@ -43,9 +43,11 @@ import "../../../styles/icons.css";
43
43
  import ProgressBar from "../../atoms/progressBars/ProgressBar";
44
44
  import PrimaryButton from "../../atoms/buttons/PrimaryButton";
45
45
  import SecondaryButton from "../../atoms/buttons/SecondaryButton";
46
+ import ConfirmationModal from "./ConfirmationModal";
46
47
  var Stepper = function (_a) {
47
- var steps = _a.steps, currentStep = _a.currentStep, _b = _a.startIcon, startIcon = _b === void 0 ? [] : _b, _c = _a.endIcon, endIcon = _c === void 0 ? true : _c, children = _a.children, _d = _a.secondaryButton, secondaryButton = _d === void 0 ? [] : _d, _e = _a.primaryButton, primaryButton = _e === void 0 ? [] : _e, _f = _a.showProgressBar, showProgressBar = _f === void 0 ? [] : _f, onClose = _a.onClose, validateStep = _a.validateStep;
48
- var _g = useState(false), isVisible = _g[0], setIsVisible = _g[1];
48
+ var _b, _c, _d, _e, _f;
49
+ var steps = _a.steps, currentStep = _a.currentStep, _g = _a.startIcon, startIcon = _g === void 0 ? [] : _g, _h = _a.endIcon, endIcon = _h === void 0 ? true : _h, children = _a.children, _j = _a.secondaryButton, secondaryButton = _j === void 0 ? [] : _j, _k = _a.primaryButton, primaryButton = _k === void 0 ? [] : _k, _l = _a.showProgressBar, showProgressBar = _l === void 0 ? [] : _l, onClose = _a.onClose, validateStep = _a.validateStep, confirmationModal = _a.confirmationModal, onModalCancel = _a.onModalCancel, onModalConfirm = _a.onModalConfirm;
50
+ var _m = useState(false), isVisible = _m[0], setIsVisible = _m[1];
49
51
  var portalContainerRef = useRef(null);
50
52
  var stepperContainerRef = useRef(null);
51
53
  useEffect(function () {
@@ -93,7 +95,6 @@ var Stepper = function (_a) {
93
95
  var currentShowProgressBar = showProgressBar[currentStep - 1] !== false;
94
96
  var currentShowStartIcon = startIcon[currentStep - 1];
95
97
  var handleClose = useCallback(function () {
96
- setIsVisible(false);
97
98
  if (onClose) {
98
99
  onClose();
99
100
  }
@@ -107,7 +108,7 @@ var Stepper = function (_a) {
107
108
  }
108
109
  }, [handleClose]);
109
110
  var stepperContent = (React.createElement("div", { className: "stepper-overlay ".concat(isVisible ? "visible" : ""), onMouseDown: handleMouseDown },
110
- React.createElement("div", { className: "stepper-container", onClick: function (e) { return e.stopPropagation(); }, ref: stepperContainerRef },
111
+ React.createElement("div", { className: "stepper-container ".concat((confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.show) ? "modal-active" : ""), onClick: function (e) { return e.stopPropagation(); }, ref: stepperContainerRef },
111
112
  React.createElement(ProgressBar, { steps: steps, currentStep: currentStep, startIcon: currentShowStartIcon, endIcon: endIcon, onStartIconClick: handlePrevious, onEndIconClick: handleClose, showProgressBar: currentShowProgressBar }),
112
113
  React.createElement("div", { className: "stepper-content" }, children[currentStep - 1]),
113
114
  React.createElement("div", { className: "stepper-buttons ".concat(!(currentSecondaryButton === null || currentSecondaryButton === void 0 ? void 0 : currentSecondaryButton.show) && !(currentPrimaryButton === null || currentPrimaryButton === void 0 ? void 0 : currentPrimaryButton.show)
@@ -116,7 +117,8 @@ var Stepper = function (_a) {
116
117
  (currentSecondaryButton === null || currentSecondaryButton === void 0 ? void 0 : currentSecondaryButton.show) && (React.createElement("div", { className: "stepper-button-container secondary-button-container" },
117
118
  React.createElement(SecondaryButton, { fullWidth: true, label: currentSecondaryButton.label, startIcon: currentSecondaryButton.startIconName ? true : undefined, endIcon: currentSecondaryButton.endIconName ? true : undefined, startIconName: currentSecondaryButton.startIconName, endIconName: currentSecondaryButton.endIconName, onClick: function () { var _a; return (_a = currentSecondaryButton.onSecondaryButtonClick) === null || _a === void 0 ? void 0 : _a.call(currentSecondaryButton, currentStep); } }))),
118
119
  (currentPrimaryButton === null || currentPrimaryButton === void 0 ? void 0 : currentPrimaryButton.show) && (React.createElement("div", { className: "stepper-button-container primary-button-container" },
119
- React.createElement(PrimaryButton, { fullWidth: true, label: currentPrimaryButton.label, startIcon: currentPrimaryButton.startIconName ? true : undefined, endIcon: currentPrimaryButton.endIconName ? true : undefined, startIconName: currentPrimaryButton.startIconName, endIconName: currentPrimaryButton.endIconName, disabled: currentPrimaryButton.disabled, onClick: handleNext })))))));
120
+ React.createElement(PrimaryButton, { fullWidth: true, label: currentPrimaryButton.label, startIcon: currentPrimaryButton.startIconName ? true : undefined, endIcon: currentPrimaryButton.endIconName ? true : undefined, startIconName: currentPrimaryButton.startIconName, endIconName: currentPrimaryButton.endIconName, disabled: currentPrimaryButton.disabled, onClick: handleNext })))),
121
+ React.createElement(ConfirmationModal, { show: (_b = confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.show) !== null && _b !== void 0 ? _b : false, title: (_c = confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.title) !== null && _c !== void 0 ? _c : "Confirmation", description: (_d = confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.description) !== null && _d !== void 0 ? _d : "Voulez-vous continuer ?", confirmLabel: (_e = confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.confirmLabel) !== null && _e !== void 0 ? _e : "Confirmer", cancelLabel: (_f = confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.cancelLabel) !== null && _f !== void 0 ? _f : "Annuler", onConfirm: onModalConfirm !== null && onModalConfirm !== void 0 ? onModalConfirm : (function () { }), onCancel: onModalCancel !== null && onModalCancel !== void 0 ? onModalCancel : (function () { }), isDanger: confirmationModal === null || confirmationModal === void 0 ? void 0 : confirmationModal.isDanger }))));
120
122
  return portalContainerRef.current && isVisible
121
123
  ? ReactDOM.createPortal(stepperContent, portalContainerRef.current)
122
124
  : null;
@@ -7,9 +7,9 @@ declare const meta: {
7
7
  layout: string;
8
8
  };
9
9
  args: {
10
- onLogin: import("@vitest/spy").Mock<(...args: any[]) => any>;
11
- onLogout: import("@vitest/spy").Mock<(...args: any[]) => any>;
12
- onCreateAccount: import("@vitest/spy").Mock<(...args: any[]) => any>;
10
+ onLogin: import("@vitest/spy").Mock<[], void>;
11
+ onLogout: import("@vitest/spy").Mock<[], void>;
12
+ onCreateAccount: import("@vitest/spy").Mock<[], void>;
13
13
  };
14
14
  };
15
15
  export default meta;
@@ -293,6 +293,25 @@ li {
293
293
  content: "\e950";
294
294
  color: #0072c6;
295
295
  }
296
+ .allaw-icon-microsoft .path1:before {
297
+ content: "\e95a";
298
+ color: rgb(242, 80, 34);
299
+ }
300
+ .allaw-icon-microsoft .path2:before {
301
+ content: "\e95b";
302
+ margin-left: -1em;
303
+ color: rgb(0, 164, 239);
304
+ }
305
+ .allaw-icon-microsoft .path3:before {
306
+ content: "\e95c";
307
+ margin-left: -1em;
308
+ color: rgb(127, 186, 0);
309
+ }
310
+ .allaw-icon-microsoft .path4:before {
311
+ content: "\e95d";
312
+ margin-left: -1em;
313
+ color: rgb(255, 185, 0);
314
+ }
296
315
  .allaw-icon-google-calendar .path1:before {
297
316
  content: "\e951";
298
317
  color: rgb(255, 255, 255);
@@ -300,22 +319,22 @@ li {
300
319
  .allaw-icon-google-calendar .path2:before {
301
320
  content: "\e952";
302
321
  margin-left: -1em;
303
- color: rgb(66, 133, 244);
322
+ color: rgb(234, 67, 53);
304
323
  }
305
324
  .allaw-icon-google-calendar .path3:before {
306
325
  content: "\e954";
307
326
  margin-left: -1em;
308
- color: rgb(25, 103, 210);
327
+ color: rgb(24, 128, 56);
309
328
  }
310
329
  .allaw-icon-google-calendar .path4:before {
311
330
  content: "\e955";
312
331
  margin-left: -1em;
313
- color: rgb(251, 188, 4);
332
+ color: rgb(25, 103, 210);
314
333
  }
315
334
  .allaw-icon-google-calendar .path5:before {
316
335
  content: "\e956";
317
336
  margin-left: -1em;
318
- color: rgb(24, 128, 56);
337
+ color: rgb(251, 188, 4);
319
338
  }
320
339
  .allaw-icon-google-calendar .path6:before {
321
340
  content: "\e957";
@@ -325,33 +344,16 @@ li {
325
344
  .allaw-icon-google-calendar .path7:before {
326
345
  content: "\e958";
327
346
  margin-left: -1em;
328
- color: rgb(234, 67, 53);
347
+ color: rgb(66, 133, 244);
329
348
  }
330
349
  .allaw-icon-google-calendar .path8:before {
331
350
  content: "\e959";
332
351
  margin-left: -1em;
333
- color: none;
334
- }
335
- .allaw-icon-microsoft .path1:before {
336
- content: "\e95a";
337
- color: rgb(242, 80, 34);
338
- }
339
- .allaw-icon-microsoft .path2:before {
340
- content: "\e95b";
341
- margin-left: -1em;
342
- color: rgb(0, 164, 239);
343
- }
344
- .allaw-icon-microsoft .path3:before {
345
- content: "\e95c";
346
- margin-left: -1em;
347
- color: rgb(127, 186, 0);
348
- }
349
- .allaw-icon-microsoft .path4:before {
350
- content: "\e95d";
351
- margin-left: -1em;
352
- color: rgb(255, 185, 0);
352
+ color: rgb(66, 133, 244);
353
353
  }
354
- .allaw-icon-microsoftoutlook:before {
354
+ .allaw-icon-play:before {
355
355
  content: "\e953";
356
- color: #0072c6;
356
+ }
357
+ .allaw-icon-pause:before {
358
+ content: "\e95e";
357
359
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allaw-ui",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "description": "Composants UI pour l'application Allaw",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",