@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.
Files changed (29) hide show
  1. package/dist/cjs/sqm-divided-layout_30.cjs.entry.js +348 -430
  2. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +1 -1
  3. package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeListData.js +2 -2
  4. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +30 -30
  5. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +4 -7
  6. package/dist/collection/components/sqm-reward-exchange-list/useRewardExchangeList.js +7 -31
  7. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +0 -2
  8. package/dist/collection/components/sqm-task-card/TaskCard.stories.js +167 -222
  9. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar-view.js +12 -5
  10. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +82 -50
  11. package/dist/collection/components/sqm-task-card/sqm-task-card.js +10 -2
  12. package/dist/esm/sqm-divided-layout_30.entry.js +348 -430
  13. package/dist/esm-es5/sqm-divided-layout_30.entry.js +1 -1
  14. package/dist/mint-components/mint-components.esm.js +1 -1
  15. package/dist/mint-components/p-16f5a7cb.system.js +1 -1
  16. package/dist/mint-components/{p-d2e71fe0.entry.js → p-3f7218fb.entry.js} +10 -10
  17. package/dist/mint-components/p-b6b4022a.system.entry.js +1 -0
  18. package/dist/types/components/sqm-reward-exchange-list/RewardExchangeListData.d.ts +2 -2
  19. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.d.ts +2 -2
  20. package/dist/types/components/sqm-task-card/TaskCard.stories.d.ts +9 -4
  21. package/dist/types/components/sqm-task-card/progress-bar/progress-bar-view.d.ts +1 -0
  22. package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +1 -1
  23. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +2 -1
  24. package/dist/types/components.d.ts +1 -1
  25. package/grapesjs/grapesjs.js +1 -1
  26. package/package.json +1 -1
  27. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar.stories.js +0 -53
  28. package/dist/mint-components/p-b47179b8.system.entry.js +0 -1
  29. 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-white)",
23
- border: "1px solid var(--sl-color-gray-300)",
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
- Title: {
60
- color: "var(--sl-color-black)",
61
- fontSize: "var(--sl-font-size-small)",
62
- fontWeight: "var(--sl-font-weight-semibold)",
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)!important",
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
- "& sl-button.action::part(base) ": {
85
- color: "var(--sl-color-white)",
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 ? Math.floor(progress / goal) : progress;
101
- const taskComplete = showComplete && repeatable === false;
102
- console.log({ showProgressBar, loading });
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: showComplete ? "main complete" : "main" },
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
- showComplete && h("span", { class: "icon" }, checkmark_circle),
108
- h("span", { class: "value" }, rewardAmount),
109
- h("span", { class: "text" }, rewardUnit)),
110
- h("div", { class: sheet.classes.Title }, cardTitle),
111
- h(Details, { description: description }),
112
- showProgressBar && loading ? (h("sl-skeleton", { style: { width: "98%", margin: "0 auto" } })) : (showProgressBar && h(ProgressBarView, Object.assign({}, props, { complete: taskComplete }))),
113
- h("div", { class: sheet.classes.Footer },
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 ? "icon success" : "icon" }, arrow_left_right),
117
- h("span", { class: repetitions > 0 ? "success" : "" },
118
- "Completed ",
119
- repetitions,
120
- " times"))),
121
- showExpiry && (h("span", null,
122
- "Ends ",
123
- " ",
124
- dateExpires))),
125
- h("sl-button", { class: taskComplete ? "action completed" : "action", size: "small", onClick: () => window.open(buttonLink), disabled: taskComplete }, buttonText)))));
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-gray-700)",
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: "max-height var(--sl-transition-medium) ease",
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
- color: "var(--sl-color-gray-700)",
156
- fontSize: "var(--sl-font-size-x-small)",
187
+ fontSize: "var(--sl-font-size-small)",
157
188
  maxHeight: "0px",
158
- transition: "max-height var(--sl-transition-fast) ease-out",
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": true,
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",