@saasquatch/mint-components 1.3.2-12 → 1.3.2-13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/sqm-divided-layout_30.cjs.entry.js +348 -430
- package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +1 -1
- package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeListData.js +2 -2
- package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +30 -30
- package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +4 -7
- package/dist/collection/components/sqm-reward-exchange-list/useRewardExchangeList.js +7 -31
- package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +0 -2
- package/dist/collection/components/sqm-task-card/TaskCard.stories.js +167 -222
- package/dist/collection/components/sqm-task-card/progress-bar/progress-bar-view.js +12 -5
- package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +82 -50
- package/dist/collection/components/sqm-task-card/sqm-task-card.js +10 -2
- package/dist/esm/sqm-divided-layout_30.entry.js +348 -430
- package/dist/esm-es5/sqm-divided-layout_30.entry.js +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-16f5a7cb.system.js +1 -1
- package/dist/mint-components/{p-d2e71fe0.entry.js → p-3f7218fb.entry.js} +10 -10
- package/dist/mint-components/p-b6b4022a.system.entry.js +1 -0
- package/dist/types/components/sqm-reward-exchange-list/RewardExchangeListData.d.ts +2 -2
- package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.d.ts +2 -2
- package/dist/types/components/sqm-task-card/TaskCard.stories.d.ts +9 -4
- package/dist/types/components/sqm-task-card/progress-bar/progress-bar-view.d.ts +1 -0
- package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +1 -1
- package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +2 -1
- package/dist/types/components.d.ts +1 -1
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +1 -1
- package/dist/collection/components/sqm-task-card/progress-bar/progress-bar.stories.js +0 -53
- package/dist/mint-components/p-b47179b8.system.entry.js +0 -1
- package/dist/types/components/sqm-task-card/progress-bar/progress-bar.stories.d.ts +0 -12
|
@@ -4,8 +4,8 @@ import preset from "jss-preset-default";
|
|
|
4
4
|
import { HostBlock } from "../../global/mixins";
|
|
5
5
|
import * as SVGs from "./SVGs";
|
|
6
6
|
import { ProgressBarView, } from "./progress-bar/progress-bar-view";
|
|
7
|
+
import { DateTime } from "luxon";
|
|
7
8
|
export function TaskCardView(props) {
|
|
8
|
-
const { rewardAmount, cardTitle, description, showProgressBar, progress = 0, goal, rewardUnit, repeatable, showExpiry, dateExpires, buttonText, buttonLink, loading, } = props;
|
|
9
9
|
console.log({ props });
|
|
10
10
|
const checkmark_circle = SVGs.checkmark_circle();
|
|
11
11
|
const arrow_left_right = SVGs.arrow_left_right();
|
|
@@ -19,16 +19,28 @@ export function TaskCardView(props) {
|
|
|
19
19
|
position: "relative",
|
|
20
20
|
boxSizing: "border-box",
|
|
21
21
|
minWidth: "347px",
|
|
22
|
-
background: "var(--sl-color-
|
|
23
|
-
border: "1px solid var(--sl-color-
|
|
22
|
+
background: "var(--sl-color-neutral-0)",
|
|
23
|
+
border: "1px solid var(--sl-color-neutral-300)",
|
|
24
24
|
borderRadius: "var(--sl-border-radius-medium)",
|
|
25
25
|
fontSize: "var(--sl-font-size-small)",
|
|
26
26
|
lineHeight: "var(--sl-line-height-dense)",
|
|
27
|
+
color: "var(--sl-color-neutral-600)",
|
|
27
28
|
},
|
|
28
29
|
"& .main.complete": {
|
|
29
30
|
background: "var(--sl-color-success-50)",
|
|
30
31
|
borderColor: "var(--sl-color-success-700)",
|
|
31
32
|
},
|
|
33
|
+
"& .main.expired": {
|
|
34
|
+
color: "var(--sl-color-neutral-400)",
|
|
35
|
+
background: "var(--sl-color-neutral-100)",
|
|
36
|
+
},
|
|
37
|
+
"& .title": {
|
|
38
|
+
fontSize: "var(--sl-font-size-small)",
|
|
39
|
+
fontWeight: "var(--sl-font-weight-semibold)",
|
|
40
|
+
},
|
|
41
|
+
"& .black": {
|
|
42
|
+
color: "var(--sl-color-neutral-1000)",
|
|
43
|
+
},
|
|
32
44
|
},
|
|
33
45
|
Header: {
|
|
34
46
|
display: "flex",
|
|
@@ -41,7 +53,6 @@ export function TaskCardView(props) {
|
|
|
41
53
|
},
|
|
42
54
|
"& .value": {
|
|
43
55
|
alignSelf: "center",
|
|
44
|
-
color: "var(--sl-color-black)",
|
|
45
56
|
fontSize: "var(--sl-font-size-x-large)",
|
|
46
57
|
fontWeight: "var(--sl-font-weight-semibold)",
|
|
47
58
|
lineHeight: "100%",
|
|
@@ -50,16 +61,21 @@ export function TaskCardView(props) {
|
|
|
50
61
|
"& .text": {
|
|
51
62
|
alignSelf: "end",
|
|
52
63
|
textTransform: "uppercase",
|
|
53
|
-
color: "var(--sl-color-gray-600)",
|
|
54
64
|
fontSize: "var(--sl-font-size-x-small)",
|
|
55
65
|
lineHeight: "var(--sl-font-size-medium)",
|
|
56
66
|
marginRight: "var(--sl-spacing-xx-small)",
|
|
57
67
|
},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
"& .end": {
|
|
69
|
+
color: "var(--sl-color-warning-600)",
|
|
70
|
+
fontWeight: "var(--sl-font-weight-semibold)",
|
|
71
|
+
marginBottom: "var(--sl-spacing-xx-small)",
|
|
72
|
+
},
|
|
73
|
+
"& .black": {
|
|
74
|
+
color: "var(--sl-color-neutral-1000)",
|
|
75
|
+
},
|
|
76
|
+
"& .neutral": {
|
|
77
|
+
color: "var(--sl-color-neutral-400)",
|
|
78
|
+
},
|
|
63
79
|
},
|
|
64
80
|
Footer: {
|
|
65
81
|
display: "flex",
|
|
@@ -71,58 +87,69 @@ export function TaskCardView(props) {
|
|
|
71
87
|
marginTop: "auto",
|
|
72
88
|
verticalAlign: "text-bottom",
|
|
73
89
|
fontSize: "var(--sl-font-size-x-small)",
|
|
74
|
-
color: "var(--sl-color-gray-600)",
|
|
75
90
|
},
|
|
76
91
|
"& .success": {
|
|
77
|
-
color: "var(--sl-color-success-600)
|
|
92
|
+
color: "var(--sl-color-success-600)",
|
|
78
93
|
fontWeight: "var(--sl-font-weight-semibold)",
|
|
79
94
|
},
|
|
80
95
|
"& .action": {
|
|
81
96
|
marginTop: "auto",
|
|
82
97
|
marginLeft: "auto",
|
|
98
|
+
"&::part(base)": {
|
|
99
|
+
color: "var(--sl-color-neutral-0)",
|
|
100
|
+
borderRadius: "var(--sl-border-radius-medium)",
|
|
101
|
+
},
|
|
102
|
+
"&.disabled::part(base)": {
|
|
103
|
+
border: "1px solid var(--sl-color-neutral-400)",
|
|
104
|
+
background: "var(--sl-color-neutral-400)",
|
|
105
|
+
},
|
|
83
106
|
},
|
|
84
|
-
"&
|
|
85
|
-
color: "var(--sl-color-
|
|
86
|
-
background: "var(--sl-color-primary-500)",
|
|
87
|
-
border: "1px solid var(--sl-color-primary-500)",
|
|
88
|
-
borderRadius: "var(--sl-border-radius-medium)",
|
|
89
|
-
},
|
|
90
|
-
"& sl-button.action.completed::part(base) ": {
|
|
91
|
-
border: "1px solid var(--sl-color-gray-300)!important",
|
|
92
|
-
background: "var(--sl-color-gray-300)!important",
|
|
107
|
+
"& .neutral": {
|
|
108
|
+
color: "var(--sl-color-neutral-400)",
|
|
93
109
|
},
|
|
94
110
|
},
|
|
95
111
|
};
|
|
96
112
|
jss.setup(preset());
|
|
97
113
|
const sheet = jss.createStyleSheet(style);
|
|
98
114
|
const styleString = sheet.toString();
|
|
99
|
-
const showComplete = progress >= goal;
|
|
100
|
-
const repetitions = showProgressBar
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
const showComplete = props.progress >= props.goal;
|
|
116
|
+
const repetitions = props.showProgressBar
|
|
117
|
+
? Math.floor(props.progress / props.goal)
|
|
118
|
+
: props.progress;
|
|
119
|
+
const taskComplete = showComplete && props.repeatable === false;
|
|
120
|
+
const dateExpire = props.showExpiry && DateTime.fromISO(props.dateExpires.split("/").pop());
|
|
121
|
+
const taskExpired = props.showExpiry && DateTime.now() > dateExpire;
|
|
122
|
+
const dateExpireText = dateExpire.toLocaleString(DateTime.DATE_FULL);
|
|
123
|
+
console.log(taskExpired);
|
|
103
124
|
return (h("div", { class: sheet.classes.TaskCard },
|
|
104
|
-
h("div", { class:
|
|
125
|
+
h("div", { class: taskExpired ? "main expired" : taskComplete ? "main complete" : "main" },
|
|
105
126
|
h("style", { type: "text/css" }, styleString),
|
|
106
|
-
h("div", { class: sheet.classes.Header },
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
127
|
+
h("div", { class: sheet.classes.Header }, props.loading ? (h("sl-skeleton", { style: { width: "22%", margin: "0" } })) : (h("div", null,
|
|
128
|
+
taskExpired && (h("div", { class: "end" },
|
|
129
|
+
" ",
|
|
130
|
+
"Ended " + dateExpireText,
|
|
131
|
+
" ")),
|
|
132
|
+
showComplete && (h("span", { class: taskExpired ? "icon neutral" : "icon" }, checkmark_circle)),
|
|
133
|
+
h("span", { class: taskExpired ? "value" : "value black" }, props.rewardAmount),
|
|
134
|
+
h("span", { class: "text" }, props.rewardUnit)))),
|
|
135
|
+
props.loading ? (h("sl-skeleton", { style: { width: "42%", margin: "0 16px" } })) : (h("div", { class: taskExpired ? "title" : "title black" }, props.cardTitle)),
|
|
136
|
+
props.loading ? (h("sl-skeleton", { style: { width: "91%", margin: "12px 16px" } })) : (h(Details, Object.assign({}, props))),
|
|
137
|
+
props.showProgressBar && props.loading ? (h("sl-skeleton", { style: { width: "91%", margin: "0 auto" } })) : (props.showProgressBar && (h(ProgressBarView, Object.assign({}, props, { complete: taskComplete, expired: taskExpired })))),
|
|
138
|
+
h("div", { class: sheet.classes.Footer }, props.loading ? (h("sl-skeleton", { style: { width: "25%", marginLeft: "auto" } })) : (h("div", { style: { display: "contents" } },
|
|
114
139
|
h("span", { class: "text" },
|
|
115
|
-
repeatable && (h("div", null,
|
|
116
|
-
h("span", { class: repetitions > 0
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
140
|
+
props.repeatable && (h("div", null,
|
|
141
|
+
h("span", { class: repetitions > 0
|
|
142
|
+
? taskExpired
|
|
143
|
+
? "icon neutral"
|
|
144
|
+
: "icon success"
|
|
145
|
+
: "icon" }, arrow_left_right),
|
|
146
|
+
h("span", { class: repetitions > 0
|
|
147
|
+
? taskExpired
|
|
148
|
+
? "neutral"
|
|
149
|
+
: "success"
|
|
150
|
+
: "" }, "Completed " + repetitions + " times"))),
|
|
151
|
+
props.showExpiry && !taskExpired && (h("span", null, "Ends " + dateExpireText))),
|
|
152
|
+
h("sl-button", { class: taskComplete || taskExpired ? "action disabled" : "action", type: "primary", size: "small", onClick: () => window.open(props.buttonLink), disabled: taskComplete || taskExpired }, props.buttonText)))))));
|
|
126
153
|
}
|
|
127
154
|
function Details(props) {
|
|
128
155
|
const style = {
|
|
@@ -137,7 +164,7 @@ function Details(props) {
|
|
|
137
164
|
position: "absolute",
|
|
138
165
|
top: "var(--sl-spacing-medium)",
|
|
139
166
|
right: "var(--sl-spacing-medium)",
|
|
140
|
-
color: "var(--sl-color-
|
|
167
|
+
color: "var(--sl-color-neutral-700)",
|
|
141
168
|
fontSize: "var(--sl-font-size-large)",
|
|
142
169
|
"& :hover": {
|
|
143
170
|
color: "var(--sl-color-primary-700)",
|
|
@@ -146,16 +173,21 @@ function Details(props) {
|
|
|
146
173
|
transition: "transform var(--sl-transition-medium) ease",
|
|
147
174
|
},
|
|
148
175
|
"& input:checked ~ .summary": {
|
|
149
|
-
transition: "
|
|
176
|
+
transition: "all var(--sl-transition-medium) ease",
|
|
150
177
|
maxHeight: "300px",
|
|
178
|
+
marginBottom: props.steps
|
|
179
|
+
? "var(--sl-spacing-large)"
|
|
180
|
+
: props.showProgressBar
|
|
181
|
+
? "var(--sl-spacing-xx-large)"
|
|
182
|
+
: "var(--sl-spacing-large)",
|
|
151
183
|
},
|
|
152
184
|
"& .summary": {
|
|
153
185
|
display: "block",
|
|
154
186
|
overflow: "hidden",
|
|
155
|
-
|
|
156
|
-
fontSize: "var(--sl-font-size-x-small)",
|
|
187
|
+
fontSize: "var(--sl-font-size-small)",
|
|
157
188
|
maxHeight: "0px",
|
|
158
|
-
transition: "
|
|
189
|
+
transition: "all var(--sl-transition-fast) ease-out",
|
|
190
|
+
marginBottom: "var(--sl-spacing-medium)",
|
|
159
191
|
},
|
|
160
192
|
},
|
|
161
193
|
};
|
|
@@ -7,6 +7,7 @@ import { useDemoBigStat } from "../sqm-big-stat/useDemoBigStat";
|
|
|
7
7
|
import { TaskCardView } from "./sqm-task-card-view";
|
|
8
8
|
/**
|
|
9
9
|
* @uiName Task Card
|
|
10
|
+
* @uiOrder ["rewardAmount", "reward-unit", "card-title", "description", "*", "showExpiry", "dateExpires" ]
|
|
10
11
|
*/
|
|
11
12
|
export class TaskCard {
|
|
12
13
|
constructor() {
|
|
@@ -51,6 +52,12 @@ export class TaskCard {
|
|
|
51
52
|
* @uiName Show Goal Expiry
|
|
52
53
|
*/
|
|
53
54
|
this.showExpiry = false;
|
|
55
|
+
/**
|
|
56
|
+
* @uiName Date Goal Expires
|
|
57
|
+
* @uiWidget DateRange
|
|
58
|
+
* @uiOptions {"allowPastDates":true, "months": 1}
|
|
59
|
+
*/
|
|
60
|
+
this.dateExpires = "/";
|
|
54
61
|
/**
|
|
55
62
|
* @uiName CTA Button Text
|
|
56
63
|
*/
|
|
@@ -297,7 +304,7 @@ export class TaskCard {
|
|
|
297
304
|
"references": {}
|
|
298
305
|
},
|
|
299
306
|
"required": false,
|
|
300
|
-
"optional":
|
|
307
|
+
"optional": false,
|
|
301
308
|
"docs": {
|
|
302
309
|
"tags": [{
|
|
303
310
|
"text": "Date Goal Expires",
|
|
@@ -312,7 +319,8 @@ export class TaskCard {
|
|
|
312
319
|
"text": ""
|
|
313
320
|
},
|
|
314
321
|
"attribute": "date-expires",
|
|
315
|
-
"reflect": false
|
|
322
|
+
"reflect": false,
|
|
323
|
+
"defaultValue": "\"/\""
|
|
316
324
|
},
|
|
317
325
|
"buttonText": {
|
|
318
326
|
"type": "string",
|