@yoobic/yobi 8.3.0-44 → 8.3.0-47

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 (69) hide show
  1. package/dist/cjs/{form-choice-helpers-b2ec494b.js → form-choice-helpers-e28efa04.js} +1 -1
  2. package/dist/cjs/yoo-card-feed.cjs.entry.js +2 -2
  3. package/dist/cjs/yoo-detail-bar.cjs.entry.js +1 -1
  4. package/dist/cjs/yoo-form-choice-button.cjs.entry.js +1 -1
  5. package/dist/cjs/yoo-form-choice-card.cjs.entry.js +1 -1
  6. package/dist/cjs/yoo-form-choice-chat.cjs.entry.js +1 -1
  7. package/dist/cjs/yoo-form-choice-image.cjs.entry.js +1 -1
  8. package/dist/cjs/yoo-form-choice-radio.cjs.entry.js +1 -1
  9. package/dist/cjs/yoo-form-connect.cjs.entry.js +2 -1
  10. package/dist/cjs/yoo-form-dynamic.cjs.entry.js +10 -9
  11. package/dist/cjs/yoo-form-swipe-cards.cjs.entry.js +1 -1
  12. package/dist/cjs/yoo-form-text-editor.cjs.entry.js +63 -45
  13. package/dist/cjs/yoo-form-todo-task-list.cjs.entry.js +1 -2
  14. package/dist/cjs/yoo-input-bar.cjs.entry.js +12948 -12743
  15. package/dist/cjs/yoo-login.cjs.entry.js +54 -63
  16. package/dist/cjs/yoo-scratch-card-creator.cjs.entry.js +1 -3
  17. package/dist/cjs/yoo-videoplayer-videojs.cjs.entry.js +3 -3
  18. package/dist/collection/components/form/form-choice/form-choice-helpers.js +1 -1
  19. package/dist/collection/components/form/form-connect/form-connect.js +2 -1
  20. package/dist/collection/components/form/form-dynamic/form-dynamic.js +10 -9
  21. package/dist/collection/components/form/form-swipe-cards/form-swipe-cards.css +1 -1
  22. package/dist/collection/components/form/form-todo-task-list/form-todo-task-list.js +1 -2
  23. package/dist/collection/components/form-creator/scratch-card-creator/scratch-card-creator.js +1 -3
  24. package/dist/collection/feature-communicate/feed/card-feed/components/sub-cards.js +2 -2
  25. package/dist/collection/feature-operate/campaign/detail-bar/detail-bar.js +3 -3
  26. package/dist/collection/feature-platform/login/login/login.css +120 -48
  27. package/dist/collection/feature-platform/login/login/login.js +25 -30
  28. package/dist/collection/feature-platform/login/login/parts/Header.js +15 -16
  29. package/dist/collection/feature-platform/login/login/parts/LoginForm.js +15 -18
  30. package/dist/collection/feature-platform/login/login/parts/LoginOptions.js +2 -2
  31. package/dist/design-system/{form-choice-helpers-800a6124.js → form-choice-helpers-b6936c42.js} +1 -1
  32. package/dist/design-system/yoo-card-feed.entry.js +3 -3
  33. package/dist/design-system/yoo-detail-bar.entry.js +1 -1
  34. package/dist/design-system/yoo-form-choice-button.entry.js +1 -1
  35. package/dist/design-system/yoo-form-choice-card.entry.js +1 -1
  36. package/dist/design-system/yoo-form-choice-chat.entry.js +1 -1
  37. package/dist/design-system/yoo-form-choice-image.entry.js +1 -1
  38. package/dist/design-system/yoo-form-choice-radio.entry.js +1 -1
  39. package/dist/design-system/yoo-form-connect.entry.js +2 -1
  40. package/dist/design-system/yoo-form-dynamic.entry.js +10 -9
  41. package/dist/design-system/yoo-form-swipe-cards.entry.js +1 -1
  42. package/dist/design-system/yoo-form-text-editor.entry.js +63 -45
  43. package/dist/design-system/yoo-form-todo-task-list.entry.js +1 -2
  44. package/dist/design-system/yoo-input-bar.entry.js +12948 -12743
  45. package/dist/design-system/yoo-login.entry.js +55 -64
  46. package/dist/design-system/yoo-scratch-card-creator.entry.js +1 -3
  47. package/dist/design-system/yoo-videoplayer-videojs.entry.js +3 -3
  48. package/dist/esm/{form-choice-helpers-800a6124.js → form-choice-helpers-b6936c42.js} +1 -1
  49. package/dist/esm/yoo-card-feed.entry.js +3 -3
  50. package/dist/esm/yoo-detail-bar.entry.js +1 -1
  51. package/dist/esm/yoo-form-choice-button.entry.js +1 -1
  52. package/dist/esm/yoo-form-choice-card.entry.js +1 -1
  53. package/dist/esm/yoo-form-choice-chat.entry.js +1 -1
  54. package/dist/esm/yoo-form-choice-image.entry.js +1 -1
  55. package/dist/esm/yoo-form-choice-radio.entry.js +1 -1
  56. package/dist/esm/yoo-form-connect.entry.js +2 -1
  57. package/dist/esm/yoo-form-dynamic.entry.js +10 -9
  58. package/dist/esm/yoo-form-swipe-cards.entry.js +1 -1
  59. package/dist/esm/yoo-form-text-editor.entry.js +63 -45
  60. package/dist/esm/yoo-form-todo-task-list.entry.js +1 -2
  61. package/dist/esm/yoo-input-bar.entry.js +12948 -12743
  62. package/dist/esm/yoo-login.entry.js +55 -64
  63. package/dist/esm/yoo-scratch-card-creator.entry.js +1 -3
  64. package/dist/esm/yoo-videoplayer-videojs.entry.js +3 -3
  65. package/dist/types/feature-platform/login/login/parts/LoginForm.d.ts +0 -1
  66. package/dist/types/feature-platform/login/login/parts/LoginOptions.d.ts +0 -1
  67. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/custom-app/custom-app.interface.d.ts +10 -3
  68. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/form-field/form-field.interface.d.ts +1 -0
  69. package/package.json +1 -1
@@ -160,7 +160,7 @@ function prepareChoice(choiceElement) {
160
160
  }
161
161
  function hasWarnings(values, choiceElement, warningMsgs) {
162
162
  const duplicateMessage = 'NODUPLICATEVALUES';
163
- const hasDuplicatedValues = draggableTagsHelpers.hasDuplicates(values);
163
+ const hasDuplicatedValues = draggableTagsHelpers.hasDuplicates(values === null || values === void 0 ? void 0 : values.map(v => (v === null || v === void 0 ? void 0 : v.text) || v));
164
164
  draggableTagsHelpers.showWarningAlert(choiceElement.host, hasDuplicatedValues || !!(warningMsgs === null || warningMsgs === void 0 ? void 0 : warningMsgs.length), hasDuplicatedValues ? duplicateMessage : warningMsgs === null || warningMsgs === void 0 ? void 0 : warningMsgs[0]);
165
165
  return hasDuplicatedValues && (warningMsgs === null || warningMsgs === void 0 ? void 0 : warningMsgs.length) > 0;
166
166
  }
@@ -92,14 +92,14 @@ const CardEvent = ({ configs }) => {
92
92
  index.h("span", { class: "heading" },
93
93
  index.h("yoo-icon", { size: "small", color: "text-color", name: isPublic ? 'feed' : 'email' }),
94
94
  overlays.translate(`${isPublic ? 'PUBLICEVENT' : 'PRIVATEEVENT'}`)),
95
- index.h("span", { class: "title" }, configs.title),
95
+ index.h("span", { class: "title" }, overlays.translateMulti(configs.title)),
96
96
  index.h("span", { class: "date dark" }, `${overlays.dateFormat(startDate, format)}${!isSameDay || !configs.allDay ? (` ${overlays.translate('YOOBICTO').toLowerCase()} ${overlays.dateFormat(endDate, endformat)}`) : ''}`),
97
97
  configs.location && (index.h("div", { class: "preview-container" },
98
98
  index.h("yoo-avatar", { imgSrc: configs.location.imageData, iconText: configs.location.title, size: "extra-small" }),
99
99
  index.h("span", null, configs.location.title))),
100
100
  configs.address && index.h("span", { class: "address" }, configs.address),
101
101
  configs.virtualRoomUrl && index.h("yoo-truncate", { class: "url", innerHTML: overlays.replaceAllLinks(configs.virtualRoomUrl) }),
102
- configs.description && index.h("yoo-truncate", { class: "card-feeds", maxLength: 10, byWords: true, showEllipsisButton: true, content: overlays.replaceAllLinks(configs.description) }),
102
+ configs.description && index.h("yoo-truncate", { class: "card-feeds", maxLength: 10, byWords: true, showEllipsisButton: true, content: overlays.replaceAllLinks(overlays.translateMulti(configs.description)) }),
103
103
  ((_a = configs.tags) === null || _a === void 0 ? void 0 : _a.length) > 0 && (index.h("div", { class: "feed-hashtags" }, configs.tags.map((a) => (a === null || a === void 0 ? void 0 : a.toLowerCase) && index.h("span", { class: "hashtag", innerHTML: `#${overlays.translateMulti(a.toUpperCase()).toLowerCase()} ` })))),
104
104
  configs.type && index.h("span", { class: "dark flex" },
105
105
  `${overlays.translate('YOOBICCATEGORY')}: `,
@@ -124,7 +124,7 @@ const YooDetailBarComponent = class {
124
124
  const havePoints = !!this.points && !!(this.points > 0);
125
125
  const COMPETENCY_MAX_LENGTH = 40;
126
126
  const translatedCompetencyTitle = overlays.translateMulti((_a = this.competency) === null || _a === void 0 ? void 0 : _a.title);
127
- return (index.h("div", { class: "section-container" }, index.h("div", { class: "section-title" }, overlays.translate('YOOBICINFO')), this.image && (index.h("div", { class: "sub-section" }, index.h("yoo-img", { class: "course", src: this.image }))), this.description && this.renderTruncateContent('DESCRIPTION', this.description), this.status && (index.h("div", { class: "sub-section" }, index.h("div", { class: "section-subtitle" }, overlays.translate('STATUS'), ":"), index.h("yoo-tag", { color: "text-color-10" }, this.status))), this.renderContent('ACTIVE', lodash.isBoolean(this.isActive) ? (this.isActive ? 'YES' : 'NO') : '-'), this.period && this.period !== '-' && this.renderContent('PERIOD', this.period), this.isFeatured !== null && this.renderContent('FEATURED', this.isFeatured ? 'YES' : 'NO'), this.progressiveLessons != null && this.renderContent('PROGRESSIVELESSONS', this.progressiveLessons ? 'Yes' : 'No'), this.category && this.renderContent('CATEGORY', this.category), havePoints &&
127
+ return (index.h("div", { class: "section-container" }, index.h("div", { class: "section-title" }, overlays.translate('YOOBICINFO')), this.image && (index.h("div", { class: "sub-section" }, index.h("yoo-img", { class: "course", src: this.image }))), this.description && this.renderTruncateContent('DESCRIPTION', this.description), this.status && (index.h("div", { class: "sub-section" }, index.h("div", { class: "section-subtitle" }, overlays.translate('STATUS'), ":"), index.h("yoo-tag", { color: "text-color-10" }, this.status))), this.renderContent('ACTIVE', lodash.isBoolean(this.isActive) ? (this.isActive ? 'YOOBICYES' : 'YOOBICNO') : '-'), this.period && this.period !== '-' && this.renderContent('PERIOD', this.period), this.isFeatured !== null && this.renderContent('FEATUREDCOURSE', this.isFeatured ? 'YOOBICYES' : 'YOOBICNO'), this.progressiveLessons != null && this.renderContent('PROGRESSIVELESSONS', this.progressiveLessons ? 'YOOBICYES' : 'YOOBICNO'), this.category && this.renderContent('CATEGORY', this.category), havePoints &&
128
128
  this.renderContent('POINTS', index.h("yoo-tag", { color: "app-color" }, index.h("yoo-icon", { slot: "start", size: "small", name: "star" }), this.points)), this.tags && this.getTags(), this.competency &&
129
129
  this.renderContent('COMPETENCY', index.h("yoo-tag", { class: "competency", color: "stable-alt-80", size: "small" }, index.h("yoo-icon", { slot: "start", size: "small", color: "dark", name: (this.competency.icon || 'medal') }), translatedCompetencyTitle.length > COMPETENCY_MAX_LENGTH ? (index.h("yoo-tooltip", { content: translatedCompetencyTitle }, translatedCompetencyTitle)) : translatedCompetencyTitle)), (this.assignedUsers || lodash.isNumber(this.nbAssignedUsers)) && this.renderContent('USERSASSIGNED', (this.assignedUsers ? (this.assignedUsers.length) : this.nbAssignedUsers).toString()), this.renderLanguage(), !this.hideTranslateButton && (index.h("yoo-button", { color: "light", size: "small", onClick: () => this.onTranslate() }, overlays.translate('GOOGLETRANSLATE'), index.h("yoo-icon", { slot: "start", name: "translate", size: "small" })))));
130
130
  }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-2e1afd31.js');
6
6
  require('./index-9dd76b79.js');
7
7
  const highcharts = require('./highcharts-874d9bd2.js');
8
- const formChoiceHelpers = require('./form-choice-helpers-b2ec494b.js');
8
+ const formChoiceHelpers = require('./form-choice-helpers-e28efa04.js');
9
9
  const overlays = require('./overlays-046b4f60.js');
10
10
  require('./lodash-72d493b9.js');
11
11
  require('./_commonjsHelpers-94df2ea7.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const formChoiceHelpers = require('./form-choice-helpers-b2ec494b.js');
5
+ const formChoiceHelpers = require('./form-choice-helpers-e28efa04.js');
6
6
  require('./index-9dd76b79.js');
7
7
  require('./overlays-046b4f60.js');
8
8
  require('./lodash-72d493b9.js');
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-2e1afd31.js');
6
6
  const index$1 = require('./index-f6133645.js');
7
7
  require('./index-9dd76b79.js');
8
- const formChoiceHelpers = require('./form-choice-helpers-b2ec494b.js');
8
+ const formChoiceHelpers = require('./form-choice-helpers-e28efa04.js');
9
9
  const overlays = require('./overlays-046b4f60.js');
10
10
  require('./lodash-72d493b9.js');
11
11
  require('./draggable-tags-helpers-078374f4.js');
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-2e1afd31.js');
6
6
  require('./index-9dd76b79.js');
7
7
  const commonHelpers = require('./common-helpers-bfdca115.js');
8
- const formChoiceHelpers = require('./form-choice-helpers-b2ec494b.js');
8
+ const formChoiceHelpers = require('./form-choice-helpers-e28efa04.js');
9
9
  const overlays = require('./overlays-046b4f60.js');
10
10
  require('./lodash-72d493b9.js');
11
11
  require('./draggable-tags-helpers-078374f4.js');
@@ -6,7 +6,7 @@ const index = require('./index-2e1afd31.js');
6
6
  require('./index-9dd76b79.js');
7
7
  const lodash = require('./lodash-72d493b9.js');
8
8
  const formInputHelpers = require('./form-input-helpers-651487c0.js');
9
- const formChoiceHelpers = require('./form-choice-helpers-b2ec494b.js');
9
+ const formChoiceHelpers = require('./form-choice-helpers-e28efa04.js');
10
10
  const overlays = require('./overlays-046b4f60.js');
11
11
  require('./index-f6133645.js');
12
12
  require('./common-helpers-bfdca115.js');
@@ -101,9 +101,10 @@ const YooFormConnectComponent = class {
101
101
  (_a = this.draggableElements) === null || _a === void 0 ? void 0 : _a.forEach(e => this.initDraggableActions(e));
102
102
  }
103
103
  async scrollToRevealGame() {
104
+ var _a;
104
105
  const GAP_PADDING = 8;
105
106
  const scrollElement = this.host.closest('yoo-ion-scroll');
106
- if (scrollElement && this.values.length === 2) {
107
+ if (scrollElement && ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) === 2) {
107
108
  const setScrollableHeight = () => {
108
109
  const getHeight = (el) => { var _a; return (_a = el === null || el === void 0 ? void 0 : el.getBoundingClientRect()) === null || _a === void 0 ? void 0 : _a.height; };
109
110
  const formHeight = getHeight(this.host.closest('yoo-form-input-container'));
@@ -3184,7 +3184,7 @@ const YooFormDynamicComponent = class {
3184
3184
  this.openPreview.emit('');
3185
3185
  }
3186
3186
  renderInput({ field, data, slideIndex, slideItems, inputIndex, readonly, cssClass, isHistory, previousField, slots }) {
3187
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
3187
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
3188
3188
  const fieldState = getFieldState(field, this.fieldsState);
3189
3189
  const required = formHelpers.isRequired(field, this.currentData, this.currentDataFlatten, fieldState.visible, this.suffix, this.session);
3190
3190
  const disabled = formHelpers.isDisabled(field, this.currentData, this.currentDataFlatten, this.suffix, this.session);
@@ -3208,6 +3208,7 @@ const YooFormDynamicComponent = class {
3208
3208
  readonly,
3209
3209
  required,
3210
3210
  disabled,
3211
+ shuffled: field.shuffled,
3211
3212
  clearable: !disabled,
3212
3213
  name: field.name,
3213
3214
  key: field.name,
@@ -3808,7 +3809,7 @@ const YooFormDynamicComponent = class {
3808
3809
  multiple,
3809
3810
  allowOther: field.allowOther,
3810
3811
  useTranslate: field.translate,
3811
- shuffled: this.formType === 'lesson',
3812
+ shuffled: (_k = field.shuffled) !== null && _k !== void 0 ? _k : this.formType === 'lesson',
3812
3813
  answer: field.answer,
3813
3814
  class: field.extraClass,
3814
3815
  description: field.description,
@@ -3818,7 +3819,7 @@ const YooFormDynamicComponent = class {
3818
3819
  }
3819
3820
  case index.FormFieldType.selectchat: {
3820
3821
  const multiple = field.multiple;
3821
- const values = field.values || ((_k = field.opValues) === null || _k === void 0 ? void 0 : _k.find((opValue) => opValue));
3822
+ const values = field.values || ((_l = field.opValues) === null || _l === void 0 ? void 0 : _l.find((opValue) => opValue));
3822
3823
  TagType = 'yoo-form-choice-chat';
3823
3824
  attrs = {
3824
3825
  ...attrs,
@@ -3839,7 +3840,7 @@ const YooFormDynamicComponent = class {
3839
3840
  }
3840
3841
  case index.FormFieldType.selectimage: {
3841
3842
  const multiple = field.multiple;
3842
- const values = field.values || ((_l = field.opValues) === null || _l === void 0 ? void 0 : _l.find((opValue) => opValue));
3843
+ const values = field.values || ((_m = field.opValues) === null || _m === void 0 ? void 0 : _m.find((opValue) => opValue));
3843
3844
  TagType = 'yoo-form-choice-image';
3844
3845
  attrs = {
3845
3846
  ...attrs,
@@ -3859,7 +3860,7 @@ const YooFormDynamicComponent = class {
3859
3860
  }
3860
3861
  case index.FormFieldType.selectcard: {
3861
3862
  const multiple = field.multiple;
3862
- const values = field.values || ((_m = field.opValues) === null || _m === void 0 ? void 0 : _m.find((opValue) => opValue));
3863
+ const values = field.values || ((_o = field.opValues) === null || _o === void 0 ? void 0 : _o.find((opValue) => opValue));
3863
3864
  TagType = 'yoo-form-choice-card';
3864
3865
  attrs = {
3865
3866
  ...attrs,
@@ -3937,7 +3938,7 @@ const YooFormDynamicComponent = class {
3937
3938
  collectionName: field.collectionName,
3938
3939
  entityType: field.entityType,
3939
3940
  iconPrefix: field.iconPrefix,
3940
- descriptionTemplate: data.isUnitCurrency && ((_o = data.currency) === null || _o === void 0 ? void 0 : _o.symbol) ? `${data.currency.symbol} {{text}}` : null,
3941
+ descriptionTemplate: data.isUnitCurrency && ((_p = data.currency) === null || _p === void 0 ? void 0 : _p.symbol) ? `${data.currency.symbol} {{text}}` : null,
3941
3942
  max: field.max,
3942
3943
  queryFields: field.queryFields,
3943
3944
  model: field.model,
@@ -3946,7 +3947,7 @@ const YooFormDynamicComponent = class {
3946
3947
  onFetchCustomData: (ev) => this.onFetchCustomData(field, ev),
3947
3948
  onFetchData: (ev) => this.onFetchData(field, ev)
3948
3949
  };
3949
- if (attrs.validators && ((_p = config === null || config === void 0 ? void 0 : config.validators) === null || _p === void 0 ? void 0 : _p.length)) {
3950
+ if (attrs.validators && ((_q = config === null || config === void 0 ? void 0 : config.validators) === null || _q === void 0 ? void 0 : _q.length)) {
3950
3951
  attrs.validators.push(...config.validators);
3951
3952
  }
3952
3953
  break;
@@ -4080,7 +4081,7 @@ const YooFormDynamicComponent = class {
4080
4081
  logo: field.logo,
4081
4082
  value: value || field.value,
4082
4083
  description: field.description,
4083
- whiteLabel: (_q = overlays.getSession().tenant) === null || _q === void 0 ? void 0 : _q.waitlistWhitelabel,
4084
+ whiteLabel: (_r = overlays.getSession().tenant) === null || _r === void 0 ? void 0 : _r.waitlistWhitelabel,
4084
4085
  showIllustration: field.showIllustration,
4085
4086
  showShareLink: field.showShareLink,
4086
4087
  showDownload: field.showDownload
@@ -4371,7 +4372,7 @@ const YooFormDynamicComponent = class {
4371
4372
  if (field.collapsible) {
4372
4373
  return (index$1.h("yoo-collapsible", { iconSize: "medium", class: "secondary", slotHeader: true }, index$1.h("span", { slot: "title" }, field.title), index$1.h("span", { innerHTML: markdown || value })));
4373
4374
  }
4374
- if (((_r = field.valuesIcon) === null || _r === void 0 ? void 0 : _r.length) > 0) {
4375
+ if (((_s = field.valuesIcon) === null || _s === void 0 ? void 0 : _s.length) > 0) {
4375
4376
  return [
4376
4377
  markdown && index$1.h("div", { class: "info-header" }, markdown),
4377
4378
  field.valuesIcon.map((item) => {
@@ -12,7 +12,7 @@ const formInputHelpers = require('./form-input-helpers-651487c0.js');
12
12
  const overlays = require('./overlays-046b4f60.js');
13
13
  require('./_commonjsHelpers-94df2ea7.js');
14
14
 
15
- const formSwipeCardsCss = ".accent{color:var(--accent, #276ef1);fill:var(--accent, #276ef1)}.app-color{color:var(--app-color, #5a30f4);fill:var(--app-color, #5a30f4)}.danger{color:var(--danger, #d44333);fill:var(--danger, #d44333)}.dark{color:var(--dark, #000000);fill:var(--dark, #000000)}.energized{color:var(--energized, #ffc043);fill:var(--energized, #ffc043)}.info{color:var(--info, #d84c96);fill:var(--info, #d84c96)}.light{color:var(--light, #ffffff);fill:var(--light, #ffffff)}.stable{color:var(--stable, #adadad);fill:var(--stable, #adadad)}.stable-alt{color:var(--stable-alt, #d0d0d0);fill:var(--stable-alt, #d0d0d0)}.stable-light{color:var(--stable-light, #f1f1f1);fill:var(--stable-light, #f1f1f1)}.stable-ultralight{color:var(--stable-ultralight, #fafafa);fill:var(--stable-ultralight, #fafafa)}.success{color:var(--success, #3aa76d);fill:var(--success, #3aa76d)}.text-color{color:var(--text-color, #807f83);fill:var(--text-color, #807f83)}.warning{color:var(--warning, #ed6e33);fill:var(--warning, #ed6e33)}.wood{color:var(--wood, #99644c);fill:var(--wood, #99644c)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.hidden{display:none !important}.flex{display:-ms-flexbox !important;display:flex !important}.block{display:block !important}:host{position:relative;display:block;height:100%}:host yoo-banner{height:0}:host #instructions{height:100%;-webkit-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out}:host #instructions #header{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host #instructions #header #title{font-weight:bold}:host #instructions #categories{display:inline-grid;grid-template-columns:1fr 0.5fr 1fr;width:100%;margin:var(--spacing-24, 1.5rem) 0;text-align:center}:host #instructions #categories .category{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;padding:0;color:var(--stable, #adadad)}:host #instructions #categories .category p{max-width:75%;margin:auto;padding:var(--spacing-16, 1rem) 0;font-weight:bold}:host #instructions #categories .category yoo-tag{margin:0 auto}:host #instructions yoo-button{position:absolute;right:0;bottom:0;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box}:host #instructions #document{background-color:var(--light, #ffffff)}:host #instructions #document .document-title{padding:0 var(--spacing-16, 1rem);font-size:var(--font-size-16, 1rem)}:host #instructions #document yoo-form-document{--outer-container-padding:cssvar(spacing-16) cssvar(spacing-16);width:calc(100% - var(--spacing-16, 1rem))}:host [direction].card{z-index:5;-webkit-transition:-webkit-transform 0.35s !important;transition:-webkit-transform 0.35s !important;transition:transform 0.35s !important;transition:transform 0.35s, -webkit-transform 0.35s !important;-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}:host [direction].card.current .content-category{color:var(--light, #ffffff);opacity:1 !important;-webkit-transition:opacity 0.35s linear;transition:opacity 0.35s linear}:host [direction].card.current.card+.card{-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}:host [direction].card.current.card+.card .content-image,:host [direction].card.current.card+.card .content-text{opacity:1 !important}:host [direction].card.current.card+.card+.card{-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1}:host [direction].card.current.card+.card+.card+.card{-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1}:host [direction=left]#game,:host [direction=left].current>.content-category{background-color:var(--app-color, #5a30f4) !important}:host [direction=left].current{-webkit-transform:translate(0%, 9%) scale(1) rotate(-3.5deg) !important;transform:translate(0%, 9%) scale(1) rotate(-3.5deg) !important}:host [direction=right]#game,:host [direction=right].current>.content-category{background-color:var(--warning, #ed6e33) !important}:host [direction=right].current{-webkit-transform:translate(0%, 9%) scale(1) rotate(3.5deg) !important;transform:translate(0%, 9%) scale(1) rotate(3.5deg) !important}:host #game{position:relative;width:100%;background-color:var(--dark, #000000);-webkit-transition:background-color 0.25s ease-in-out;transition:background-color 0.25s ease-in-out}:host #game #end-message{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:calc(100% - 4rem);max-width:25rem;color:var(--light, #ffffff);font-size:var(--font-size-18, 1.125rem);text-align:center;visibility:hidden;opacity:0;-webkit-transition:opacity 0.5s ease-in-out;transition:opacity 0.5s ease-in-out}:host #game #end-message.rtl{top:50%;right:50%;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}:host #game #end-message yoo-lottie{width:30%;margin:0 auto}:host #game #end-message div{padding:var(--spacing-16, 1rem) 0;font-weight:bold;font-size:var(--font-size-24, 1.5rem)}:host #game #end-message.active{visibility:visible;opacity:1}:host #game:after{display:block;height:0;padding-top:85%;content:\"\"}:host #cards{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:100%;width:65%;max-width:16rem;height:100%;margin-top:var(--spacing-16, 1rem)}:host #cards.rtl{top:50%;right:50%;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}:host #cards .card{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;max-width:16rem;height:100%;max-height:21.3333333333rem;margin:0 auto;overflow:hidden;color:var(--dark, #000000);font-size:var(--font-size-28, 1.75rem);text-align:center;background-color:var(--stable-light, #f1f1f1);border-radius:var(--border-radius-08, 0.5rem);-webkit-box-shadow:var(--shadow-05, -0.375rem -0.375rem 0.5rem 0 rgba(0, 0, 0, 0.1));box-shadow:var(--shadow-05, -0.375rem -0.375rem 0.5rem 0 rgba(0, 0, 0, 0.1));-webkit-transition:opacity 0.25s, background-color 0.25s, -webkit-transform 0.25s;transition:opacity 0.25s, background-color 0.25s, -webkit-transform 0.25s;transition:transform 0.25s, opacity 0.25s, background-color 0.25s;transition:transform 0.25s, opacity 0.25s, background-color 0.25s, -webkit-transform 0.25s;will-change:transform, opacity}:host #cards .card:not([direction]){-webkit-transform:translate(0, -5%) scale(0.85);transform:translate(0, -5%) scale(0.85);opacity:0}:host #cards .card.current{z-index:3}:host #cards .card.current:not(.revealing){-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1;-webkit-transition-delay:200ms;transition-delay:200ms}:host #cards .card.current.revealing{-webkit-animation:\"current\" 0.25s ease-in-out;animation:\"current\" 0.25s ease-in-out;-webkit-animation-delay:150ms;animation-delay:150ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes current{to{-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}}@keyframes current{to{-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}}:host #cards .card.second{z-index:2}:host #cards .card.second:not(.revealing){-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1;-webkit-transition-delay:400ms;transition-delay:400ms}:host #cards .card.second.revealing{-webkit-animation:\"second\" 0.25s ease-in-out;animation:\"second\" 0.25s ease-in-out;-webkit-animation-delay:300ms;animation-delay:300ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes second{to{-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1}}@keyframes second{to{-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1}}:host #cards .card.third{z-index:1}:host #cards .card.third:not(.revealing){-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1;-webkit-transition-delay:600ms;transition-delay:600ms}:host #cards .card.third.revealing{-webkit-animation:\"third\" 0.25s ease-in-out;animation:\"third\" 0.25s ease-in-out;-webkit-animation-delay:450ms;animation-delay:450ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes third{to{-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1}}@keyframes third{to{-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1}}:host #cards .card.current .content-image,:host #cards .card.current .content-text,:host #cards .card[direction] .content-image,:host #cards .card[direction] .content-text{opacity:1 !important}:host #cards .card[swiped]{-webkit-animation:fade-out 1s ease-out;animation:fade-out 1s ease-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host #cards .card[swiped=left]{-webkit-transform:translate(-100%, 15%) rotate(-15deg);transform:translate(-100%, 15%) rotate(-15deg)}:host #cards .card[swiped=right]{-webkit-transform:translate(100%, 15%) rotate(15deg);transform:translate(100%, 15%) rotate(15deg)}:host #cards .card [class^=content]{position:absolute;width:100%;height:100%;word-break:break-word;opacity:0}:host #cards .card .content-category,:host #cards .card .content-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:var(--spacing-16, 1rem)}:host #cards .card .content-image{-webkit-transition:opacity 0.25s linear;transition:opacity 0.25s linear}:host #cards .card[type=image] yoo-img{height:100%}:host #cards .card[type=textimage] .content-image{top:0;bottom:3.5rem}:host #cards .card[type=textimage] .content-image yoo-img{height:calc(100% - 3.5rem)}:host #cards .card[type=textimage] .content-text,:host #cards .card[type=textimage] .content-category{bottom:0;height:3.5rem}:host #actions{position:absolute;left:50%;z-index:1;display:inline-grid;grid-template-columns:1fr 1fr 1fr;width:100%;max-width:85%;line-height:2.5;-webkit-transform:translate(-50%, 80%);transform:translate(-50%, 80%)}:host #actions .action{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;text-align:center}:host([readonly]){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}:host([readonly]) .category-title{margin-bottom:var(--spacing-08, 0.5rem)}:host([readonly]) ul{display:grid;grid-gap:var(--spacing-16, 1rem);grid-template-columns:repeat(auto-fill, 6rem);margin:0;padding-left:0;list-style:none}:host([readonly]) ul+.category-title{margin-top:var(--spacing-16, 1rem)}:host([readonly]) ul li{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;height:8rem;overflow:hidden;border-style:solid;border-width:var(--border-width-01, 0.0625rem);border-radius:var(--border-radius-08, 0.5rem)}:host([readonly]) ul li.invalid{border-color:var(--danger, #d44333)}:host([readonly]) ul li.invalid yoo-img::before{position:absolute;width:100%;height:100%;background:var(--danger-20, rgba(212, 67, 51, 0.2));content:\"\"}:host([readonly]) ul li.invalid yoo-truncate{background:var(--danger, #d44333)}:host([readonly]) ul li.valid{border-color:var(--success, #3aa76d)}:host([readonly]) ul li.valid yoo-img::before{position:absolute;width:100%;height:100%;background:var(--success-20, rgba(58, 167, 109, 0.2));content:\"\"}:host([readonly]) ul li.valid yoo-truncate{background:var(--success, #3aa76d)}:host([readonly]) ul li yoo-img{position:relative;-ms-flex-positive:1;flex-grow:1}:host([readonly]) ul li yoo-truncate{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:var(--light, #ffffff);font-size:var(--font-size-14, 0.875rem)}:host([readonly]) ul li yoo-truncate:only-child{--max-lines:4;height:100%;padding:0 var(--spacing-08, 0.5rem)}:host([readonly]) ul li yoo-truncate:not(:only-child){--max-lines:1;height:2.125rem;padding:0 var(--spacing-04, 0.25rem)}:host([animated]) #game{-webkit-animation:show 0.5s ease-in-out forwards;animation:show 0.5s ease-in-out forwards}@-webkit-keyframes show{from{-webkit-transform:scale(0.85);transform:scale(0.85);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes show{from{-webkit-transform:scale(0.85);transform:scale(0.85);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}:host([animated]) .action.hide>*{-webkit-animation:fadeOut 0.75s ease-in-out forwards;animation:fadeOut 0.75s ease-in-out forwards}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}:host([animated]) .action:not(.hide)>*{-webkit-animation:fadeIn 0.75s ease-in-out forwards;animation:fadeIn 0.75s ease-in-out forwards}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}:host([animated]) .action yoo-button{-webkit-transition:-webkit-transform 0.8s linear;transition:-webkit-transform 0.8s linear;transition:transform 0.8s linear;transition:transform 0.8s linear, -webkit-transform 0.8s linear}:host([live-preview]),:host(.mobile){min-height:70vh}:host([live-preview]) #instructions #header,:host(.mobile) #instructions #header{padding:var(--spacing-16, 1rem);background:var(--dark, #000000);border-radius:var(--border-radius-04, 0.25rem)}:host([live-preview]) #instructions #header #title,:host(.mobile) #instructions #header #title{color:var(--light, #ffffff);font-weight:bold;font-size:var(--font-size-28, 1.75rem)}:host([live-preview]) #instructions yoo-button,:host(.mobile) #instructions yoo-button{position:absolute;bottom:0;width:-webkit-fill-available;width:-moz-available;width:stretch}:host(.web:not([live-preview])) #instructions{position:relative}:host(.web:not([live-preview])) #instructions yoo-icon[name=swipe-explanation]{width:5rem;height:5rem;margin:auto;--inner-width:5rem;--inner-height:5rem}:host(.web:not([live-preview])) #instructions yoo-button{position:fixed;right:var(--spacing-32, 2rem);bottom:var(--spacing-16, 1rem);z-index:1;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host(.web:not([live-preview])) #game{height:60%;max-height:21rem}:host(.web:not([live-preview])) #game #cards{top:5%;margin-top:unset;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}:host(.web:not([live-preview])) #actions{-ms-flex-align:start;align-items:start;max-width:unset;margin-top:2.5%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}:host(.web:not([live-preview])) #actions .action:nth-child(2){-ms-flex-item-align:end;align-self:end}:host(.web:not([live-preview])) #header{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:var(--spacing-08, 0.5rem) var(--spacing-16, 1rem);line-height:1.75;text-align:center;background-color:var(--stable-ultralight, #fafafa)}:host(.web:not([live-preview])) #header #title{color:var(--dark, #000000) !important;font-weight:bold;font-size:var(--font-size-28, 1.75rem)}";
15
+ const formSwipeCardsCss = ".accent{color:var(--accent, #276ef1);fill:var(--accent, #276ef1)}.app-color{color:var(--app-color, #5a30f4);fill:var(--app-color, #5a30f4)}.danger{color:var(--danger, #d44333);fill:var(--danger, #d44333)}.dark{color:var(--dark, #000000);fill:var(--dark, #000000)}.energized{color:var(--energized, #ffc043);fill:var(--energized, #ffc043)}.info{color:var(--info, #d84c96);fill:var(--info, #d84c96)}.light{color:var(--light, #ffffff);fill:var(--light, #ffffff)}.stable{color:var(--stable, #adadad);fill:var(--stable, #adadad)}.stable-alt{color:var(--stable-alt, #d0d0d0);fill:var(--stable-alt, #d0d0d0)}.stable-light{color:var(--stable-light, #f1f1f1);fill:var(--stable-light, #f1f1f1)}.stable-ultralight{color:var(--stable-ultralight, #fafafa);fill:var(--stable-ultralight, #fafafa)}.success{color:var(--success, #3aa76d);fill:var(--success, #3aa76d)}.text-color{color:var(--text-color, #807f83);fill:var(--text-color, #807f83)}.warning{color:var(--warning, #ed6e33);fill:var(--warning, #ed6e33)}.wood{color:var(--wood, #99644c);fill:var(--wood, #99644c)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.hidden{display:none !important}.flex{display:-ms-flexbox !important;display:flex !important}.block{display:block !important}:host{position:relative;display:block;height:100%}:host yoo-banner{height:0}:host #instructions{height:100%;-webkit-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out}:host #instructions #header{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host #instructions #header #title{font-weight:bold}:host #instructions #categories{display:inline-grid;grid-template-columns:1fr 0.5fr 1fr;width:100%;margin:var(--spacing-24, 1.5rem) 0;text-align:center}:host #instructions #categories .category{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;padding:0;color:var(--stable, #adadad)}:host #instructions #categories .category p{max-width:75%;margin:auto;padding:var(--spacing-16, 1rem) 0;font-weight:bold}:host #instructions #categories .category yoo-tag{margin:0 auto}:host #instructions yoo-button{position:absolute;right:0;bottom:0;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box}:host #instructions #document{background-color:var(--light, #ffffff)}:host #instructions #document .document-title{padding:0 var(--spacing-16, 1rem);font-size:var(--font-size-16, 1rem)}:host #instructions #document yoo-form-document{--outer-container-padding:cssvar(spacing-16) cssvar(spacing-16);width:calc(100% - var(--spacing-16, 1rem))}:host [direction].card{z-index:5;-webkit-transition:-webkit-transform 0.35s !important;transition:-webkit-transform 0.35s !important;transition:transform 0.35s !important;transition:transform 0.35s, -webkit-transform 0.35s !important;-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}:host [direction].card.current .content-category{color:var(--light, #ffffff);opacity:1 !important;-webkit-transition:opacity 0.35s linear;transition:opacity 0.35s linear}:host [direction].card.current.card+.card{-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}:host [direction].card.current.card+.card .content-image,:host [direction].card.current.card+.card .content-text{opacity:1 !important}:host [direction].card.current.card+.card+.card{-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1}:host [direction].card.current.card+.card+.card+.card{-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1}:host [direction=left]#game,:host [direction=left].current>.content-category{background-color:var(--app-color, #5a30f4) !important}:host [direction=left].current{-webkit-transform:translate(0%, 9%) scale(1) rotate(-3.5deg) !important;transform:translate(0%, 9%) scale(1) rotate(-3.5deg) !important}:host [direction=right]#game,:host [direction=right].current>.content-category{background-color:var(--warning, #ed6e33) !important}:host [direction=right].current{-webkit-transform:translate(0%, 9%) scale(1) rotate(3.5deg) !important;transform:translate(0%, 9%) scale(1) rotate(3.5deg) !important}:host #game{position:relative;width:100%;background-color:var(--dark, #000000);-webkit-transition:background-color 0.25s ease-in-out;transition:background-color 0.25s ease-in-out}:host #game #end-message{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:calc(100% - 4rem);max-width:25rem;color:var(--light, #ffffff);font-size:var(--font-size-18, 1.125rem);text-align:center;visibility:hidden;opacity:0;-webkit-transition:opacity 0.5s ease-in-out;transition:opacity 0.5s ease-in-out}:host #game #end-message.rtl{top:50%;right:50%;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}:host #game #end-message yoo-lottie{width:30%;margin:0 auto}:host #game #end-message div{padding:var(--spacing-16, 1rem) 0;font-weight:bold;font-size:var(--font-size-24, 1.5rem)}:host #game #end-message.active{visibility:visible;opacity:1}:host #game:after{display:block;height:0;padding-top:85%;content:\"\"}:host #cards{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:100%;width:65%;max-width:16rem;height:100%;margin-top:var(--spacing-16, 1rem)}:host #cards.rtl{top:50%;right:50%;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}:host #cards .card{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;max-width:16rem;height:100%;max-height:21.3333333333rem;margin:0 auto;overflow:hidden;color:var(--dark, #000000);font-size:var(--font-size-28, 1.75rem);text-align:center;background-color:var(--stable-light, #f1f1f1);border-radius:var(--border-radius-08, 0.5rem);-webkit-box-shadow:var(--shadow-05, -0.375rem -0.375rem 0.5rem 0 rgba(0, 0, 0, 0.1));box-shadow:var(--shadow-05, -0.375rem -0.375rem 0.5rem 0 rgba(0, 0, 0, 0.1));-webkit-transition:opacity 0.25s, background-color 0.25s, -webkit-transform 0.25s;transition:opacity 0.25s, background-color 0.25s, -webkit-transform 0.25s;transition:transform 0.25s, opacity 0.25s, background-color 0.25s;transition:transform 0.25s, opacity 0.25s, background-color 0.25s, -webkit-transform 0.25s;will-change:transform, opacity}:host #cards .card:not([direction]){-webkit-transform:translate(0, -5%) scale(0.85);transform:translate(0, -5%) scale(0.85);opacity:0}:host #cards .card.current{z-index:3}:host #cards .card.current:not(.revealing){-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1;-webkit-transition-delay:200ms;transition-delay:200ms}:host #cards .card.current.revealing{-webkit-animation:\"current\" 0.25s ease-in-out;animation:\"current\" 0.25s ease-in-out;-webkit-animation-delay:150ms;animation-delay:150ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes current{to{-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}}@keyframes current{to{-webkit-transform:translate(0%, 9%) scale(1);transform:translate(0%, 9%) scale(1);opacity:1}}:host #cards .card.second{z-index:2}:host #cards .card.second:not(.revealing){-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1;-webkit-transition-delay:400ms;transition-delay:400ms}:host #cards .card.second.revealing{-webkit-animation:\"second\" 0.25s ease-in-out;animation:\"second\" 0.25s ease-in-out;-webkit-animation-delay:300ms;animation-delay:300ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes second{to{-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1}}@keyframes second{to{-webkit-transform:translate(0%, 3.5%) scale(0.95);transform:translate(0%, 3.5%) scale(0.95);opacity:1}}:host #cards .card.third{z-index:1}:host #cards .card.third:not(.revealing){-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1;-webkit-transition-delay:600ms;transition-delay:600ms}:host #cards .card.third.revealing{-webkit-animation:\"third\" 0.25s ease-in-out;animation:\"third\" 0.25s ease-in-out;-webkit-animation-delay:450ms;animation-delay:450ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes third{to{-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1}}@keyframes third{to{-webkit-transform:translate(0%, -2%) scale(0.9);transform:translate(0%, -2%) scale(0.9);opacity:1}}:host #cards .card.current .content-image,:host #cards .card.current .content-text,:host #cards .card[direction] .content-image,:host #cards .card[direction] .content-text{opacity:1 !important}:host #cards .card[swiped]{-webkit-animation:fade-out 1s ease-out;animation:fade-out 1s ease-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}:host #cards .card[swiped=left]{-webkit-transform:translate(-100%, 15%) rotate(-15deg);transform:translate(-100%, 15%) rotate(-15deg)}:host #cards .card[swiped=right]{-webkit-transform:translate(100%, 15%) rotate(15deg);transform:translate(100%, 15%) rotate(15deg)}:host #cards .card [class^=content]{position:absolute;width:100%;height:100%;word-break:break-word;opacity:0}:host #cards .card .content-category,:host #cards .card .content-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:var(--spacing-16, 1rem)}:host #cards .card .content-image{-webkit-transition:opacity 0.25s linear;transition:opacity 0.25s linear}:host #cards .card[type=image] yoo-img{height:100%}:host #cards .card[type=textimage] .content-image{top:0;bottom:3.5rem}:host #cards .card[type=textimage] .content-image yoo-img{height:calc(100% - 3.5rem)}:host #cards .card[type=textimage] .content-text,:host #cards .card[type=textimage] .content-category{bottom:0;height:3.5rem}:host #actions{position:absolute;left:50%;z-index:1;display:inline-grid;grid-template-columns:1fr 1fr 1fr;width:100%;max-width:85%;line-height:2.5;-webkit-transform:translate(-50%, 80%);transform:translate(-50%, 80%)}:host #actions .action{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;text-align:center}:host([readonly]){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}:host([readonly]) .category-title{margin-bottom:var(--spacing-08, 0.5rem)}:host([readonly]) ul{display:grid;grid-gap:var(--spacing-16, 1rem);grid-template-columns:repeat(auto-fill, 6rem);margin:0;padding-left:0;list-style:none}:host([readonly]) ul+.category-title{margin-top:var(--spacing-16, 1rem)}:host([readonly]) ul li{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;height:8rem;overflow:hidden;border-style:solid;border-width:var(--border-width-01, 0.0625rem);border-radius:var(--border-radius-08, 0.5rem)}:host([readonly]) ul li.invalid{border-color:var(--danger, #d44333)}:host([readonly]) ul li.invalid yoo-img::before{position:absolute;width:100%;height:100%;background:var(--danger-20, rgba(212, 67, 51, 0.2));content:\"\"}:host([readonly]) ul li.invalid yoo-truncate{background:var(--danger, #d44333)}:host([readonly]) ul li.valid{border-color:var(--success, #3aa76d)}:host([readonly]) ul li.valid yoo-img::before{position:absolute;width:100%;height:100%;background:var(--success-20, rgba(58, 167, 109, 0.2));content:\"\"}:host([readonly]) ul li.valid yoo-truncate{background:var(--success, #3aa76d)}:host([readonly]) ul li yoo-img{position:relative;-ms-flex-positive:1;flex-grow:1}:host([readonly]) ul li yoo-truncate{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:var(--light, #ffffff);font-size:var(--font-size-14, 0.875rem)}:host([readonly]) ul li yoo-truncate:only-child{--max-lines:4;height:100%;padding:0 var(--spacing-08, 0.5rem)}:host([readonly]) ul li yoo-truncate:not(:only-child){--max-lines:1;height:2.125rem;padding:0 var(--spacing-04, 0.25rem)}:host([animated]) #game{-webkit-animation:show 0.5s ease-in-out forwards;animation:show 0.5s ease-in-out forwards}@-webkit-keyframes show{from{-webkit-transform:scale(0.85);transform:scale(0.85);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes show{from{-webkit-transform:scale(0.85);transform:scale(0.85);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}:host([animated]) .action.hide>*{-webkit-animation:fadeOut 0.75s ease-in-out forwards;animation:fadeOut 0.75s ease-in-out forwards}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}:host([animated]) .action:not(.hide)>*{-webkit-animation:fadeIn 0.75s ease-in-out forwards;animation:fadeIn 0.75s ease-in-out forwards}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}:host([animated]) .action yoo-button{-webkit-transition:-webkit-transform 0.8s linear;transition:-webkit-transform 0.8s linear;transition:transform 0.8s linear;transition:transform 0.8s linear, -webkit-transform 0.8s linear}:host([live-preview]),:host(.mobile){min-height:60vh}:host([live-preview]) #instructions #header,:host(.mobile) #instructions #header{padding:var(--spacing-16, 1rem);background:var(--dark, #000000);border-radius:var(--border-radius-04, 0.25rem)}:host([live-preview]) #instructions #header #title,:host(.mobile) #instructions #header #title{color:var(--light, #ffffff);font-weight:bold;font-size:var(--font-size-28, 1.75rem)}:host([live-preview]) #instructions yoo-button,:host(.mobile) #instructions yoo-button{position:absolute;bottom:0;width:-webkit-fill-available;width:-moz-available;width:stretch}:host(.web:not([live-preview])) #instructions{position:relative}:host(.web:not([live-preview])) #instructions yoo-icon[name=swipe-explanation]{width:5rem;height:5rem;margin:auto;--inner-width:5rem;--inner-height:5rem}:host(.web:not([live-preview])) #instructions yoo-button{position:fixed;right:var(--spacing-32, 2rem);bottom:var(--spacing-16, 1rem);z-index:1;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host(.web:not([live-preview])) #game{height:60%;max-height:21rem}:host(.web:not([live-preview])) #game #cards{top:5%;margin-top:unset;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}:host(.web:not([live-preview])) #actions{-ms-flex-align:start;align-items:start;max-width:unset;margin-top:2.5%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}:host(.web:not([live-preview])) #actions .action:nth-child(2){-ms-flex-item-align:end;align-self:end}:host(.web:not([live-preview])) #header{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:var(--spacing-08, 0.5rem) var(--spacing-16, 1rem);line-height:1.75;text-align:center;background-color:var(--stable-ultralight, #fafafa)}:host(.web:not([live-preview])) #header #title{color:var(--dark, #000000) !important;font-weight:bold;font-size:var(--font-size-28, 1.75rem)}";
16
16
 
17
17
  const YooFormSwipeCardsComponent = class {
18
18
  constructor(hostRef) {
@@ -20372,7 +20372,7 @@ NoWorkResult.default = NoWorkResult;
20372
20372
 
20373
20373
  class Processor {
20374
20374
  constructor(plugins = []) {
20375
- this.version = '8.4.13';
20375
+ this.version = '8.4.14';
20376
20376
  this.plugins = this.normalize(plugins);
20377
20377
  }
20378
20378
 
@@ -20515,25 +20515,27 @@ function postcss(...plugins) {
20515
20515
  }
20516
20516
 
20517
20517
  postcss.plugin = function plugin(name, initializer) {
20518
- // eslint-disable-next-line no-console
20519
- if (console && console.warn) {
20518
+ let warningPrinted = false;
20519
+ function creator(...args) {
20520
20520
  // eslint-disable-next-line no-console
20521
- console.warn(
20522
- name +
20523
- ': postcss.plugin was deprecated. Migration guide:\n' +
20524
- 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'
20525
- );
20526
- if (overlays.process_1.env.LANG && overlays.process_1.env.LANG.startsWith('cn')) {
20527
- /* c8 ignore next 7 */
20521
+ if (console && console.warn && !warningPrinted) {
20522
+ warningPrinted = true;
20528
20523
  // eslint-disable-next-line no-console
20529
20524
  console.warn(
20530
20525
  name +
20531
- ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +
20532
- 'https://www.w3ctech.com/topic/2226'
20526
+ ': postcss.plugin was deprecated. Migration guide:\n' +
20527
+ 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'
20533
20528
  );
20529
+ if (overlays.process_1.env.LANG && overlays.process_1.env.LANG.startsWith('cn')) {
20530
+ /* c8 ignore next 7 */
20531
+ // eslint-disable-next-line no-console
20532
+ console.warn(
20533
+ name +
20534
+ ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +
20535
+ 'https://www.w3ctech.com/topic/2226'
20536
+ );
20537
+ }
20534
20538
  }
20535
- }
20536
- function creator(...args) {
20537
20539
  let transformer = initializer(...args);
20538
20540
  transformer.postcssPlugin = name;
20539
20541
  transformer.postcssVersion = new processor().version;
@@ -20875,7 +20877,6 @@ function sanitizeHtml(html, options, _recursing) {
20875
20877
  delete frame.attribs[a];
20876
20878
  return;
20877
20879
  }
20878
- let parsed;
20879
20880
  // check allowedAttributesMap for the element and attribute and modify the value
20880
20881
  // as necessary if there are specific values defined.
20881
20882
  let passedAllowedAttributesMapCheck = false;
@@ -20923,14 +20924,14 @@ function sanitizeHtml(html, options, _recursing) {
20923
20924
  let allowed = true;
20924
20925
 
20925
20926
  try {
20926
- const parsed = new URL(value);
20927
+ const parsed = parseUrl(value);
20927
20928
 
20928
20929
  if (options.allowedScriptHostnames || options.allowedScriptDomains) {
20929
20930
  const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {
20930
- return hostname === parsed.hostname;
20931
+ return hostname === parsed.url.hostname;
20931
20932
  });
20932
20933
  const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {
20933
- return parsed.hostname === domain || parsed.hostname.endsWith(`.${domain}`);
20934
+ return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
20934
20935
  });
20935
20936
  allowed = allowedHostname || allowedDomain;
20936
20937
  }
@@ -20947,29 +20948,9 @@ function sanitizeHtml(html, options, _recursing) {
20947
20948
  if (name === 'iframe' && a === 'src') {
20948
20949
  let allowed = true;
20949
20950
  try {
20950
- // Chrome accepts \ as a substitute for / in the // at the
20951
- // start of a URL, so rewrite accordingly to prevent exploit.
20952
- // Also drop any whitespace at that point in the URL
20953
- value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, '$1//');
20954
- if (value.startsWith('relative:')) {
20955
- // An attempt to exploit our workaround for base URLs being
20956
- // mandatory for relative URL validation in the WHATWG
20957
- // URL parser, reject it
20958
- throw new Error('relative: exploit attempt');
20959
- }
20960
- // naughtyHref is in charge of whether protocol relative URLs
20961
- // are cool. Here we are concerned just with allowed hostnames and
20962
- // whether to allow relative URLs.
20963
- //
20964
- // Build a placeholder "base URL" against which any reasonable
20965
- // relative URL may be parsed successfully
20966
- let base = 'relative://relative-site';
20967
- for (let i = 0; (i < 100); i++) {
20968
- base += `/${i}`;
20969
- }
20970
- const parsed = new URL(value, base);
20971
- const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';
20972
- if (isRelativeUrl) {
20951
+ const parsed = parseUrl(value);
20952
+
20953
+ if (parsed.isRelativeUrl) {
20973
20954
  // default value of allowIframeRelativeUrls is true
20974
20955
  // unless allowedIframeHostnames or allowedIframeDomains specified
20975
20956
  allowed = has(options, 'allowIframeRelativeUrls')
@@ -20977,10 +20958,10 @@ function sanitizeHtml(html, options, _recursing) {
20977
20958
  : (!options.allowedIframeHostnames && !options.allowedIframeDomains);
20978
20959
  } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {
20979
20960
  const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {
20980
- return hostname === parsed.hostname;
20961
+ return hostname === parsed.url.hostname;
20981
20962
  });
20982
20963
  const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {
20983
- return parsed.hostname === domain || parsed.hostname.endsWith(`.${domain}`);
20964
+ return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);
20984
20965
  });
20985
20966
  allowed = allowedHostname || allowedDomain;
20986
20967
  }
@@ -20995,7 +20976,7 @@ function sanitizeHtml(html, options, _recursing) {
20995
20976
  }
20996
20977
  if (a === 'srcset') {
20997
20978
  try {
20998
- parsed = parseSrcset(value);
20979
+ let parsed = parseSrcset(value);
20999
20980
  parsed.forEach(function(value) {
21000
20981
  if (naughtyHref('srcset', value.url)) {
21001
20982
  value.evil = true;
@@ -21221,7 +21202,17 @@ function sanitizeHtml(html, options, _recursing) {
21221
21202
  // Clobber any comments in URLs, which the browser might
21222
21203
  // interpret inside an XML data island, allowing
21223
21204
  // a javascript: URL to be snuck through
21224
- href = href.replace(/<!--.*?-->/g, '');
21205
+ while (true) {
21206
+ const firstIndex = href.indexOf('<!--');
21207
+ if (firstIndex === -1) {
21208
+ break;
21209
+ }
21210
+ const lastIndex = href.indexOf('-->', firstIndex + 4);
21211
+ if (lastIndex === -1) {
21212
+ break;
21213
+ }
21214
+ href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);
21215
+ }
21225
21216
  // Case insensitive so we don't get faked out by JAVASCRIPT #1
21226
21217
  // Allow more characters after the first so we don't get faked
21227
21218
  // out by certain schemes browsers accept
@@ -21244,6 +21235,33 @@ function sanitizeHtml(html, options, _recursing) {
21244
21235
  return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;
21245
21236
  }
21246
21237
 
21238
+ function parseUrl(value) {
21239
+ value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, '$1//');
21240
+ if (value.startsWith('relative:')) {
21241
+ // An attempt to exploit our workaround for base URLs being
21242
+ // mandatory for relative URL validation in the WHATWG
21243
+ // URL parser, reject it
21244
+ throw new Error('relative: exploit attempt');
21245
+ }
21246
+ // naughtyHref is in charge of whether protocol relative URLs
21247
+ // are cool. Here we are concerned just with allowed hostnames and
21248
+ // whether to allow relative URLs.
21249
+ //
21250
+ // Build a placeholder "base URL" against which any reasonable
21251
+ // relative URL may be parsed successfully
21252
+ let base = 'relative://relative-site';
21253
+ for (let i = 0; (i < 100); i++) {
21254
+ base += `/${i}`;
21255
+ }
21256
+
21257
+ const parsed = new URL(value, base);
21258
+
21259
+ const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';
21260
+ return {
21261
+ isRelativeUrl,
21262
+ url: parsed
21263
+ };
21264
+ }
21247
21265
  /**
21248
21266
  * Filters user input css properties by allowlisted regex attributes.
21249
21267
  * Modifies the abstractSyntaxTree object.
@@ -111,9 +111,8 @@ const YooFormTodoTaskListComponent = class {
111
111
  return updated;
112
112
  }
113
113
  async deleteTask(index, withConfirmation = true) {
114
- var _a, _b;
115
114
  const result = withConfirmation
116
- ? await overlays.showAlert(overlays.translate('DELETETASK'), [overlays.translate('CANCEL'), { cssClass: 'danger', text: overlays.translate('DELETE') }], overlays.translate('CONFIRMDELETETASK', { title: ((_b = (_a = this.value.values[index]) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.value) || '' }))
115
+ ? await overlays.showAlert(overlays.translate('DELETETASK'), [overlays.translate('CANCEL'), { cssClass: 'danger', text: overlays.translate('DELETE') }], overlays.translate('CONFIRMDELETETASK'))
117
116
  : true;
118
117
  if (result) {
119
118
  this.updateValue({ ...this.value, values: [...this.value.values.slice(0, index), ...this.value.values.slice(index + 1)] });