@configura/web-ui 3.0.0-alpha.1 → 3.0.0-alpha.2

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.
@@ -6,7 +6,7 @@ export const Loading = (props) => {
6
6
  };
7
7
  const LoadingWithText = (props) => {
8
8
  return (React.createElement("div", { className: `cfgLoadingWithText ${props.className || ""}`, style: props.style },
9
- React.createElement(Loading, Object.assign({}, props)),
9
+ React.createElement(Loading, { ...props }),
10
10
  React.createElement("div", { className: "cfgLoadingWithText__text" }, "Loading")));
11
11
  };
12
12
  export const CenteredLoading = (props) => {
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  export const ResetButton = (props) => {
3
- var _a;
4
3
  const { callback, tooltip } = props;
5
- return (React.createElement("div", { className: `cfgReset ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
4
+ return (React.createElement("div", { className: `cfgReset ${props.className ?? ""}`, style: props.style },
6
5
  React.createElement("button", { title: tooltip, className: "cfgInput", onClick: callback }, "Reset")));
7
6
  };
@@ -2,11 +2,10 @@ import { CfgHistoryManager } from "@configura/web-api";
2
2
  import React, { useState } from "react";
3
3
  const shareLabel = "Share";
4
4
  export const ShareView = (props) => {
5
- var _a;
6
5
  const [value, setValue] = useState(shareLabel);
7
6
  // No need for a useMemo, this will always be the same instance
8
7
  const historyManager = CfgHistoryManager.instance;
9
- return (React.createElement("div", { className: `cfgShare ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
8
+ return (React.createElement("div", { className: `cfgShare ${props.className ?? ""}`, style: props.style },
10
9
  React.createElement("input", { title: "Click to copy a share-link to the clipboard", className: "cfgInput", readOnly: true, value: value, onBlur: () => setValue(shareLabel), onFocus: (event) => {
11
10
  const url = historyManager.getUrl();
12
11
  setValue(url);
@@ -6,12 +6,11 @@ import { DownloadIcon } from "./icons/DownloadIcon.js";
6
6
  import { ErrorIcon } from "./icons/ErrorIcon.js";
7
7
  import { Loading } from "./Loading.js";
8
8
  export const TaskListView = (props) => {
9
- var _a;
10
9
  const tasks = props.taskHandler.tasks;
11
10
  if (tasks.length === 0) {
12
11
  return null;
13
12
  }
14
- return (React.createElement("div", { className: `cfgTaskList ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
13
+ return (React.createElement("div", { className: `cfgTaskList ${props.className ?? ""}`, style: props.style },
15
14
  React.createElement("ul", null, tasks.map((task) => (React.createElement(TaskView, { task: task, key: task.uuid }))))));
16
15
  };
17
16
  const spinner = (React.createElement("span", { className: "cfgLoadingSizer" },
@@ -1,14 +1,13 @@
1
1
  import React, { useContext } from "react";
2
2
  import { ErrorContext } from "./ErrorContext.js";
3
3
  export const TaskStartView = (props) => {
4
- var _a, _b;
5
4
  const { taskHandler, product, renderTaskParams, getPreviewUrl } = props;
6
5
  const setError = useContext(ErrorContext);
7
- const formats = (_a = props.formats) !== null && _a !== void 0 ? _a : taskHandler.availableFormats;
6
+ const formats = props.formats ?? taskHandler.availableFormats;
8
7
  if (formats.length === 0) {
9
8
  return null;
10
9
  }
11
- return (React.createElement("div", { className: `cfgTaskStart ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`, style: props.style },
10
+ return (React.createElement("div", { className: `cfgTaskStart ${props.className ?? ""}`, style: props.style },
12
11
  React.createElement("div", { className: "cfgFormSelect" },
13
12
  React.createElement("select", { value: "", onChange: (event) => {
14
13
  const index = event.target.selectedIndex;
@@ -4,7 +4,6 @@ import { ExpandableHeadingRow, ExpandableHeadingRowSymbol } from "../ExpandableH
4
4
  import { forwardProps, } from "./CfgFeatureView.js";
5
5
  import { CfgProductConfigurationView } from "./CfgProductConfigurationView.js";
6
6
  export const CfgAdditionalProductView = React.memo((props) => {
7
- var _a;
8
7
  const { product, permanentlyExpandedLevels, startOpen } = props;
9
8
  const { partNumber, optional, selected, configuration, additionalProducts, preview, description, visible: configurationVisible, } = product;
10
9
  const setError = useContext(ErrorContext);
@@ -12,14 +11,14 @@ export const CfgAdditionalProductView = React.memo((props) => {
12
11
  if (!configurationVisible) {
13
12
  // Visibility of a Product should not affect its Additional Products.
14
13
  // (Those have their own visibility.)
15
- return (React.createElement(AdditionalProductsView, Object.assign({}, forwardProps(props), { additionalProducts: additionalProducts, permanentlyExpandedLevels: permanentlyExpandedLevels })));
14
+ return (React.createElement(AdditionalProductsView, { ...forwardProps(props), additionalProducts: additionalProducts, permanentlyExpandedLevels: permanentlyExpandedLevels }));
16
15
  }
17
16
  const openOrSelected = optional ? selected : open;
18
17
  const hasChildren = configuration.features.length !== 0 ||
19
18
  additionalProducts.length !== 0 ||
20
19
  product.notes.length !== 0 ||
21
20
  product.miscFiles.length !== 0;
22
- return (React.createElement("li", { className: `cfgFeatureItem cfgAdditionalProduct ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
21
+ return (React.createElement("li", { className: `cfgFeatureItem cfgAdditionalProduct ${props.className ?? ""}`, style: props.style },
23
22
  React.createElement(ExpandableHeadingRow, { heading: description || partNumber, expandable: optional || (hasChildren && permanentlyExpandedLevels <= 0), open: openOrSelected, onClick: () => {
24
23
  if (optional) {
25
24
  product.setSelected(!selected).catch((e) => {
@@ -35,12 +34,12 @@ export const CfgAdditionalProductView = React.memo((props) => {
35
34
  hasChildren &&
36
35
  (!optional || selected) &&
37
36
  (openOrSelected || 0 < permanentlyExpandedLevels) && (React.createElement("div", { className: "cfgFeatureItem__subTree" },
38
- React.createElement(CfgProductConfigurationView, Object.assign({}, forwardProps(props), { productOrConfiguration: configuration })),
37
+ React.createElement(CfgProductConfigurationView, { ...forwardProps(props), productOrConfiguration: configuration }),
39
38
  additionalProducts.length !== 0 && (React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel` },
40
- React.createElement(AdditionalProductsView, Object.assign({}, forwardProps(props), { additionalProducts: additionalProducts, permanentlyExpandedLevels: permanentlyExpandedLevels })))))),
39
+ React.createElement(AdditionalProductsView, { ...forwardProps(props), additionalProducts: additionalProducts, permanentlyExpandedLevels: permanentlyExpandedLevels }))))),
41
40
  React.createElement("hr", { className: "cfgFeatureItem__hr cfgHr" })));
42
41
  });
43
42
  const AdditionalProductsView = (props) => {
44
43
  const { additionalProducts, permanentlyExpandedLevels, additionalProductComponent: AdditionalProductComponent, } = props;
45
- return (React.createElement(React.Fragment, null, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, Object.assign({}, forwardProps(props), { key: additionalProduct.key, product: additionalProduct, permanentlyExpandedLevels: permanentlyExpandedLevels - 1 }))))));
44
+ return (React.createElement(React.Fragment, null, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, { ...forwardProps(props), key: additionalProduct.key, product: additionalProduct, permanentlyExpandedLevels: permanentlyExpandedLevels - 1 })))));
46
45
  };
@@ -1,7 +1,4 @@
1
1
  import React from "react";
2
2
  import { CfgOptionCommonView } from "./CfgOptionCommonView.js";
3
- export const CfgCheckboxView = (props) => {
4
- var _a;
5
- return (React.createElement(CfgOptionCommonView, Object.assign({}, props, { className: `cfgFeatureItem ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}` })));
6
- };
3
+ export const CfgCheckboxView = (props) => (React.createElement(CfgOptionCommonView, { ...props, className: `cfgFeatureItem ${props.className ?? ""}` }));
7
4
  export const CfgCheckboxViewMemo = React.memo(CfgCheckboxView);
@@ -3,7 +3,6 @@ import React from "react";
3
3
  import { CfgConfigurationCommonView } from "./CfgConfigurationCommonView.js";
4
4
  import { forwardProps } from "./CfgFeatureView.js";
5
5
  export const CfgCheckboxesView = (props) => {
6
- var _a;
7
6
  const { feature, optionSelectManyComponent: OptionComponent } = props;
8
7
  if (feature.selectionType !== SelectionType.SelectMany) {
9
8
  throw Error(`Unsupported selection type expected: ${SelectionType.SelectMany}, got: ${feature.selectionType}`);
@@ -12,9 +11,10 @@ export const CfgCheckboxesView = (props) => {
12
11
  if (options.length === 0) {
13
12
  return null;
14
13
  }
15
- return (React.createElement("li", { className: `cfgFeatureItem cfgFeatureItem--optional ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
14
+ return (React.createElement("li", { className: `cfgFeatureItem cfgFeatureItem--optional ${props.className ?? ""}`, style: props.style },
16
15
  React.createElement("h3", { className: "cfgFeatureItemOptional__header" }, description || code),
17
- React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(props), { notes: notes })),
18
- React.createElement("ul", { className: "cfgOptionTree" }, options.map((option) => (React.createElement(OptionComponent, Object.assign({ option: option, key: option.key }, forwardProps(props))))))));
16
+ React.createElement(CfgConfigurationCommonView, { ...forwardProps(props), notes: notes }),
17
+ React.createElement("ul", { className: "cfgOptionTree" }, options.map((option) => (React.createElement(OptionComponent, { option: option, key: option.key, ...forwardProps(props) })))),
18
+ React.createElement("span", { className: "cfgFeatureItemEmptyWarning" }, "No available options")));
19
19
  };
20
20
  export const CfgCheckboxesViewMemo = React.memo(CfgCheckboxesView);
@@ -3,6 +3,6 @@ import { forwardProps, } from "./CfgFeatureView.js";
3
3
  export const CfgConfigurationCommonView = (props) => {
4
4
  const { notesComponent: NotesComponent, miscFilesComponent: MiscFilesComponent, notes, miscFiles, } = props;
5
5
  return (React.createElement(React.Fragment, null,
6
- notes && notes.length !== 0 && (React.createElement(NotesComponent, Object.assign({}, forwardProps(props), { notes: notes }))),
7
- miscFiles && miscFiles.length !== 0 && (React.createElement(MiscFilesComponent, Object.assign({}, forwardProps(props), { miscFiles: miscFiles })))));
6
+ notes && notes.length !== 0 && (React.createElement(NotesComponent, { ...forwardProps(props), notes: notes })),
7
+ miscFiles && miscFiles.length !== 0 && (React.createElement(MiscFilesComponent, { ...forwardProps(props), miscFiles: miscFiles }))));
8
8
  };
@@ -2,7 +2,6 @@ import React, { useContext } from "react";
2
2
  import { ErrorContext } from "../ErrorContext.js";
3
3
  import { CfgOptionCommonView } from "./CfgOptionCommonView.js";
4
4
  export const CfgDropdownOptionView = (props) => {
5
- var _a;
6
5
  const { option } = props;
7
6
  const { selected } = option;
8
7
  const setError = useContext(ErrorContext);
@@ -18,6 +17,6 @@ export const CfgDropdownOptionView = (props) => {
18
17
  });
19
18
  }
20
19
  };
21
- return (React.createElement(CfgOptionCommonView, Object.assign({}, props, { className: `cfgFeatureItem cfgMb1 ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, labelClassName: selected ? "cfgFeatureItemOption--checked" : "", onClick: onClick })));
20
+ return (React.createElement(CfgOptionCommonView, { ...props, className: `cfgFeatureItem cfgMb1 ${props.className ?? ""}`, labelClassName: selected ? "cfgFeatureItemOption--checked" : "", onClick: onClick }));
22
21
  };
23
22
  export const CfgDropdownOptionViewMemo = React.memo(CfgDropdownOptionView);
@@ -4,20 +4,20 @@ import { ExpandableHeadingRow } from "../ExpandableHeadingRow.js";
4
4
  import { CfgConfigurationCommonView } from "./CfgConfigurationCommonView.js";
5
5
  import { forwardProps } from "./CfgFeatureView.js";
6
6
  export const CfgDropdownView = (props) => {
7
- var _a;
8
7
  const { feature, optionSelectOneComponent: OptionComponent, startOpen } = props;
9
8
  if (feature.selectionType !== SelectionType.SelectOne) {
10
9
  throw Error(`Unsupported selection type expected: ${SelectionType.SelectOne}, got: ${feature.selectionType}`);
11
10
  }
12
11
  const { description, preview, options, code, notes } = feature;
13
12
  const [open, setOpen] = useState(startOpen === true);
14
- return (React.createElement("li", { className: `cfgFeatureItem ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
13
+ return (React.createElement("li", { className: `cfgFeatureItem ${props.className ?? ""}`, style: props.style },
15
14
  React.createElement(ExpandableHeadingRow, { heading: description || code, open: open, onClick: () => setOpen((prev) => !prev) }, preview && (React.createElement("div", { className: "cfgThumbnailPlaceholder" },
16
15
  React.createElement("img", { alt: `Preview for ${description}`, className: "cfgThumbnailImage", src: preview })))),
17
16
  (options || notes.length !== 0) && (React.createElement("div", { className: "cfgFeatureItem__subTree" },
18
17
  open && (React.createElement(React.Fragment, null,
19
- React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(props), { notes: notes })),
20
- React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--subLevel ${preview ? "cfgOptionTree--compThumb" : ""}` }, options.map((option) => (React.createElement(OptionComponent, Object.assign({}, forwardProps(props), { key: option.key, option: option }))))))),
18
+ React.createElement(CfgConfigurationCommonView, { ...forwardProps(props), notes: notes }),
19
+ React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--subLevel ${preview ? "cfgOptionTree--compThumb" : ""}` }, options.map((option) => (React.createElement(OptionComponent, { ...forwardProps(props), key: option.key, option: option })))),
20
+ React.createElement("span", { className: "cfgFeatureItemEmptyWarning" }, "No available options"))),
21
21
  React.createElement("hr", { className: "cfgFeatureItem__hr cfgHr" })))));
22
22
  };
23
23
  export const CfgDropdownViewMemo = React.memo(CfgDropdownView);
@@ -10,10 +10,20 @@ import { CfgMiscFile } from "./CfgMiscFile.js";
10
10
  import { CfgMiscFiles } from "./CfgMiscFiles.js";
11
11
  import { CfgNote } from "./CfgNote.js";
12
12
  import { CfgNotes } from "./CfgNotes.js";
13
- export const completeWithDefaultProductConfigurationComponents = (incomplete) => {
14
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
15
- return (Object.assign(Object.assign({}, incomplete), { additionalProductComponent: (_a = incomplete.additionalProductComponent) !== null && _a !== void 0 ? _a : CfgAdditionalProductView, featureFlattenComponent: (_b = incomplete.featureFlattenComponent) !== null && _b !== void 0 ? _b : CfgGroupViewMemo, featureGroupComponent: (_c = incomplete.featureGroupComponent) !== null && _c !== void 0 ? _c : CfgGroupViewMemo, featureSelectManyComponent: (_d = incomplete.featureSelectManyComponent) !== null && _d !== void 0 ? _d : CfgCheckboxesViewMemo, optionSelectManyComponent: (_e = incomplete.optionSelectManyComponent) !== null && _e !== void 0 ? _e : CfgCheckboxViewMemo, featureSelectOneComponent: (_f = incomplete.featureSelectOneComponent) !== null && _f !== void 0 ? _f : CfgDropdownViewMemo, optionSelectOneComponent: (_g = incomplete.optionSelectOneComponent) !== null && _g !== void 0 ? _g : CfgDropdownOptionViewMemo, noteComponent: (_h = incomplete.noteComponent) !== null && _h !== void 0 ? _h : CfgNote, notesComponent: (_j = incomplete.notesComponent) !== null && _j !== void 0 ? _j : CfgNotes, miscFileComponent: (_k = incomplete.miscFileComponent) !== null && _k !== void 0 ? _k : CfgMiscFile, miscFilesComponent: (_l = incomplete.miscFilesComponent) !== null && _l !== void 0 ? _l : CfgMiscFiles }));
16
- };
13
+ export const completeWithDefaultProductConfigurationComponents = (incomplete) => ({
14
+ ...incomplete,
15
+ additionalProductComponent: incomplete.additionalProductComponent ?? CfgAdditionalProductView,
16
+ featureFlattenComponent: incomplete.featureFlattenComponent ?? CfgGroupViewMemo,
17
+ featureGroupComponent: incomplete.featureGroupComponent ?? CfgGroupViewMemo,
18
+ featureSelectManyComponent: incomplete.featureSelectManyComponent ?? CfgCheckboxesViewMemo,
19
+ optionSelectManyComponent: incomplete.optionSelectManyComponent ?? CfgCheckboxViewMemo,
20
+ featureSelectOneComponent: incomplete.featureSelectOneComponent ?? CfgDropdownViewMemo,
21
+ optionSelectOneComponent: incomplete.optionSelectOneComponent ?? CfgDropdownOptionViewMemo,
22
+ noteComponent: incomplete.noteComponent ?? CfgNote,
23
+ notesComponent: incomplete.notesComponent ?? CfgNotes,
24
+ miscFileComponent: incomplete.miscFileComponent ?? CfgMiscFile,
25
+ miscFilesComponent: incomplete.miscFilesComponent ?? CfgMiscFiles,
26
+ });
17
27
  export const useCompleteWithDefaultProductConfigurationComponents = (incomplete) => {
18
28
  const { additionalProductComponent, featureFlattenComponent, featureGroupComponent, featureSelectManyComponent, featureSelectOneComponent, optionSelectManyComponent, optionSelectOneComponent, noteComponent, notesComponent, miscFileComponent, miscFilesComponent, } = incomplete;
19
29
  return useMemo(() => completeWithDefaultProductConfigurationComponents({
@@ -61,15 +71,15 @@ export const forwardProps = (props) => ({
61
71
  export const CfgFeatureView = (props) => {
62
72
  const { feature, featureFlattenComponent: FlattenComponent, featureGroupComponent: GroupComponent, featureSelectManyComponent: SelectManyComponent, featureSelectOneComponent: SelectOneComponent, } = props;
63
73
  if (!feature.visible) {
64
- return React.createElement(FlattenComponent, Object.assign({}, props));
74
+ return React.createElement(FlattenComponent, { ...props });
65
75
  }
66
76
  switch (feature.selectionType) {
67
77
  case SelectionType.Group:
68
- return React.createElement(GroupComponent, Object.assign({}, props));
78
+ return React.createElement(GroupComponent, { ...props });
69
79
  case SelectionType.SelectMany:
70
- return React.createElement(SelectManyComponent, Object.assign({}, props));
80
+ return React.createElement(SelectManyComponent, { ...props });
71
81
  case SelectionType.SelectOne:
72
- return React.createElement(SelectOneComponent, Object.assign({}, props));
82
+ return React.createElement(SelectOneComponent, { ...props });
73
83
  default:
74
84
  throw Error("Unsupported viewType");
75
85
  }
@@ -2,6 +2,6 @@ import React from "react";
2
2
  import { CfgFeatureViewMemo, forwardProps } from "./CfgFeatureView.js";
3
3
  export const CfgGroupView = (props) => {
4
4
  const { feature } = props;
5
- return (React.createElement(React.Fragment, null, feature.selectedOptions.map((o) => o.features.map((f) => (React.createElement(CfgFeatureViewMemo, Object.assign({ key: f.key, feature: f }, forwardProps(props))))))));
5
+ return (React.createElement(React.Fragment, null, feature.selectedOptions.map((o) => o.features.map((f) => (React.createElement(CfgFeatureViewMemo, { key: f.key, feature: f, ...forwardProps(props) }))))));
6
6
  };
7
7
  export const CfgGroupViewMemo = React.memo(CfgGroupView);
@@ -8,9 +8,8 @@ import { CfgFeatureView, forwardProps } from "./CfgFeatureView.js";
8
8
  import { CfgOptionNumericView } from "./CfgOptionNumericView.js";
9
9
  import { CfgOptionPriceView } from "./CfgOptionPriceView.js";
10
10
  export const CfgOptionCommonView = (props) => {
11
- var _a;
12
11
  const { option, upchargeDisplayMode, onClick, labelClassName, hideDisabledOptions } = props;
13
- const { thumbnail, description, selected, code, selectedChangeInProgress, miscFiles, notes, disabled, } = option;
12
+ const { thumbnail, description, selected, code, selectedChangeInProgress, miscFiles, notes, disabled, unresolvable, } = option;
14
13
  const features = option.getFeaturesOutsideSync();
15
14
  const setError = useContext(ErrorContext);
16
15
  const uniqueId = useUuid();
@@ -29,12 +28,17 @@ export const CfgOptionCommonView = (props) => {
29
28
  default:
30
29
  throw new Error(`Unsupported selectionType ${selectionType}`);
31
30
  }
32
- if (hideDisabledOptions && disabled) {
31
+ // How CET displays constrained options:
32
+ // In dropdown: hidden
33
+ // In checkboxes: disabled
34
+ //
35
+ // Stage's defaults aim to copy CET behaviour, but the user can override the dropdown behaviour
36
+ if (hideDisabledOptions && disabled && inputType !== "checkbox") {
33
37
  return null;
34
38
  }
35
- const itemClasses = `${(_a = props.className) !== null && _a !== void 0 ? _a : ""}${disabled ? " disabled" : ""}`;
39
+ const itemClasses = `${props.className ?? ""}${disabled ? " disabled" : ""}${unresolvable ? " unresolvable" : ""}`;
36
40
  return (React.createElement("li", { className: itemClasses, style: props.style },
37
- React.createElement("label", { className: `cfgFeatureItem${typeClassNameFragment} ${labelClassName !== null && labelClassName !== void 0 ? labelClassName : ""}`, htmlFor: uniqueId },
41
+ React.createElement("label", { className: `cfgFeatureItem${typeClassNameFragment} ${labelClassName ?? ""}`, htmlFor: uniqueId },
38
42
  React.createElement("input", { checked: selected, className: "cfgFeatureItem__hiddenInput", id: uniqueId, name: uniqueId, onChange: () => {
39
43
  option.setSelected(!selected).catch((e) => {
40
44
  setError(e);
@@ -49,6 +53,6 @@ export const CfgOptionCommonView = (props) => {
49
53
  React.createElement(CfgOptionPriceView, { option: option, upchargeDisplayMode: upchargeDisplayMode })))),
50
54
  selected && (React.createElement(React.Fragment, null,
51
55
  React.createElement(CfgOptionNumericView, { option: option }),
52
- React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(props), { notes: notes, miscFiles: miscFiles })),
53
- features.length !== 0 && (React.createElement("ul", { className: "cfgOptionTree cfgOptionTree--subLevel cfgOptionTree--indent" }, features.map((f) => (React.createElement(CfgFeatureView, Object.assign({}, forwardProps(props), { feature: f, key: f.key }))))))))));
56
+ React.createElement(CfgConfigurationCommonView, { ...forwardProps(props), notes: notes, miscFiles: miscFiles }),
57
+ features.length !== 0 && (React.createElement("ul", { className: "cfgOptionTree cfgOptionTree--subLevel cfgOptionTree--indent" }, features.map((f) => (React.createElement(CfgFeatureView, { ...forwardProps(props), feature: f, key: f.key })))))))));
54
58
  };
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { NumericValueDiscrete, NumericValueRangeDefinition } from "@configura/web-api";
11
2
  import React, { useContext, useEffect, useState } from "react";
12
3
  import { useRerender } from "../../useRerender.js";
@@ -44,11 +35,9 @@ export const CfgOptionNumericView = (props) => {
44
35
  if (isSingleRange && ranges[0] instanceof NumericValueDiscrete) {
45
36
  return null;
46
37
  }
47
- return (React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--subLevel cfgOptionTree--indent ${props.className || ""}`, style: props.style }, ranges.map((range) => (React.createElement(NumericValueView, { currentValue: numericValue, unit: unit, range: range, key: range.first, hasNoSiblings: isSingleRange, updateValue: (value, commit) => __awaiter(void 0, void 0, void 0, function* () {
48
- return yield option.setNumericValue(value, commit).catch((e) => {
49
- setError(e);
50
- throw e;
51
- });
38
+ return (React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--subLevel cfgOptionTree--indent ${props.className || ""}`, style: props.style }, ranges.map((range) => (React.createElement(NumericValueView, { currentValue: numericValue, unit: unit, range: range, key: range.first, hasNoSiblings: isSingleRange, updateValue: async (value, commit) => await option.setNumericValue(value, commit).catch((e) => {
39
+ setError(e);
40
+ throw e;
52
41
  }) })))));
53
42
  };
54
43
  /**
@@ -80,7 +69,7 @@ export const NumericValueView = (props) => {
80
69
  React.createElement("div", { className: "cfgFeatureItem__radio" }, selected && React.createElement(Checkmark, null)),
81
70
  React.createElement("div", { className: "cfgFeatureItemOption__titleWrapper" },
82
71
  React.createElement("div", { className: "cfgFeatureItemOption__title" }, legend)))),
83
- selected && range instanceof NumericValueRangeDefinition && (React.createElement(RangeView, Object.assign({}, props, { className: hasNoSiblings ? undefined : "cfgOptionTree--indent", range: range, onChange: (val, instantUpdate) => {
72
+ selected && range instanceof NumericValueRangeDefinition && (React.createElement(RangeView, { ...props, className: hasNoSiblings ? undefined : "cfgOptionTree--indent", range: range, onChange: (val, instantUpdate) => {
84
73
  setInputValue(val);
85
74
  if (!isAcceptableValue(inputValue)) {
86
75
  return;
@@ -101,7 +90,7 @@ export const NumericValueView = (props) => {
101
90
  updateValue(inputValue, true);
102
91
  setShowRangeError(false);
103
92
  setInputCommited(true);
104
- }, inputValue: inputValue, showRangeError: showRangeError })))));
93
+ }, inputValue: inputValue, showRangeError: showRangeError }))));
105
94
  };
106
95
  export const RangeView = (props) => {
107
96
  const { currentValue, unit, inputValue, range, onChange, onCommit, showRangeError } = props;
@@ -122,9 +111,9 @@ export const RangeView = (props) => {
122
111
  };
123
112
  return (React.createElement("div", { className: `cfgRangeView cfgMt1 ${props.className || ""}`, style: props.style },
124
113
  React.createElement("div", { className: "cfgRangeView__inputs" },
125
- React.createElement("input", Object.assign({}, inputProps, { type: "number", value: isNaN(inputValue) ? "" : inputValue, onChange: getOnChange(false), className: "cfgInput cfgRangeView__number-input" })),
114
+ React.createElement("input", { ...inputProps, type: "number", value: isNaN(inputValue) ? "" : inputValue, onChange: getOnChange(false), className: "cfgInput cfgRangeView__number-input" }),
126
115
  React.createElement("span", { className: "cfgRangeView__unit-label" }, unit),
127
- React.createElement("input", Object.assign({}, inputProps, { type: "range", className: "cfgSlider cfgRangeView__slider-input", value: currentValue, onChange: getOnChange(true) }))),
116
+ React.createElement("input", { ...inputProps, type: "range", className: "cfgSlider cfgRangeView__slider-input", value: currentValue, onChange: getOnChange(true) })),
128
117
  showRangeError && (React.createElement("div", { className: "cfgRangeView__error" },
129
118
  React.createElement(ErrorIcon, null),
130
119
  " Value not allowed, allowed values are ",
@@ -10,7 +10,11 @@ export var UpchargeDisplayMode;
10
10
  UpchargeDisplayMode[UpchargeDisplayMode["Price"] = 2] = "Price";
11
11
  })(UpchargeDisplayMode || (UpchargeDisplayMode = {}));
12
12
  export const CfgProductConfigurationView = React.memo((props) => {
13
- const completedProps = Object.assign(Object.assign({}, props), useCompleteWithDefaultProductConfigurationComponents(props));
13
+ const completedProps = {
14
+ ...props,
15
+ ...useCompleteWithDefaultProductConfigurationComponents(props),
16
+ };
17
+ completedProps.hideDisabledOptions ??= true;
14
18
  const { productOrConfiguration, permanentlyExpandedAdditionalProductLevels, additionalProductComponent: AdditionalProductComponent, } = completedProps;
15
19
  const configuration = productOrConfiguration instanceof CfgProduct
16
20
  ? productOrConfiguration.configuration
@@ -44,7 +48,7 @@ export const CfgProductConfigurationView = React.memo((props) => {
44
48
  }, [configuration, rerender]);
45
49
  return (React.createElement(React.Fragment, null,
46
50
  configurationVisible && (React.createElement(React.Fragment, null,
47
- React.createElement(CfgConfigurationCommonView, Object.assign({}, forwardProps(completedProps), { notes: configuration.parentProduct.notes, miscFiles: configuration.parentProduct.miscFiles })),
48
- React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel ${props.className || ""}`, style: props.style }, features.map((f) => (React.createElement(CfgFeatureViewMemo, Object.assign({ feature: f, key: f.key }, forwardProps(completedProps)))))))),
49
- additionalProducts !== undefined && (React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel` }, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, Object.assign({ key: additionalProduct.key }, forwardProps(completedProps), { product: additionalProduct, permanentlyExpandedLevels: permanentlyExpandedAdditionalProductLevels !== null && permanentlyExpandedAdditionalProductLevels !== void 0 ? permanentlyExpandedAdditionalProductLevels : 0 }))))))));
51
+ React.createElement(CfgConfigurationCommonView, { ...forwardProps(completedProps), notes: configuration.parentProduct.notes, miscFiles: configuration.parentProduct.miscFiles }),
52
+ React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel ${props.className || ""}`, style: props.style }, features.map((f) => (React.createElement(CfgFeatureViewMemo, { feature: f, key: f.key, ...forwardProps(completedProps) })))))),
53
+ additionalProducts !== undefined && (React.createElement("ul", { className: `cfgOptionTree cfgOptionTree--topLevel` }, additionalProducts.map((additionalProduct) => (React.createElement(AdditionalProductComponent, { key: additionalProduct.key, ...forwardProps(completedProps), product: additionalProduct, permanentlyExpandedLevels: permanentlyExpandedAdditionalProductLevels ?? 0 })))))));
50
54
  });
@@ -1 +1 @@
1
- .cfgMl1{margin-left:1em}.cfgMt1{margin-top:1em}.cfgMb1{margin-bottom:1em}.cfgTextOverflow{overflow:hidden;text-overflow:ellipsis;white-space:pre-line;overflow-wrap:anywhere;text-align:start}a{color:#005cb3}.cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#333;border-radius:.3em;border:.1em solid #bababa;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton:after,.cfgButton:before{box-sizing:inherit}.cfgButton *{box-sizing:border-box}.cfgButton :after,.cfgButton :before{box-sizing:inherit}.cfgButton:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:grey;border-radius:.3em;border:.1em solid #c8c7cc;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton[disabled]:after,.cfgButton[disabled]:before{box-sizing:inherit}.cfgButton[disabled] *{box-sizing:border-box}.cfgButton[disabled] :after,.cfgButton[disabled] :before{box-sizing:inherit}.cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButtonRow{box-sizing:border-box}.cfgButtonRow:after,.cfgButtonRow:before{box-sizing:inherit}.cfgButtonRow *{box-sizing:border-box}.cfgButtonRow :after,.cfgButtonRow :before{box-sizing:inherit}.cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCheckmark:after,.cfgCheckmark:before{box-sizing:inherit}.cfgCheckmark *{box-sizing:border-box}.cfgCheckmark :after,.cfgCheckmark :before{box-sizing:inherit}.cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgCheckmark__line{stroke:#000;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgCheckmark__lineLeft{stroke:#000;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgCheckmark__lineRight{stroke:#000;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgCheckmark__border{border:.2em solid #c8c7cc;border-radius:.3em}.cfgCheckmark__border,.cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgCheckmark__border--active{border:.2em solid #000;border-radius:.3em}.cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgChevron:after,.cfgChevron:before{box-sizing:inherit}.cfgChevron *{box-sizing:border-box}.cfgChevron :after,.cfgChevron :before{box-sizing:inherit}.cfgChevron__container{transition:transform .4s}.cfgChevron__container--down{transform:translateY(13px)}.cfgChevron__container--up{transform:translateY(-13px)}.cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgChevron__lineLeft--active,.cfgChevron__lineRight--active{stroke:#000}.cfgChevron__lineLeft--passive,.cfgChevron__lineRight--passive{stroke:#bababa}.cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgChevron__lineLeft--up,.cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCircleXmarkIcon:after,.cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgCircleXmarkIcon *{box-sizing:border-box}.cfgCircleXmarkIcon :after,.cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgCircleXmarkIcon circle,.cfgCircleXmarkIcon path{stroke:#7c7986;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgConfiguratorWrapper{box-sizing:border-box;color:#333;display:flex;height:85vh;flex-direction:column}.cfgConfiguratorWrapper:after,.cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgConfiguratorWrapper *{box-sizing:border-box}.cfgConfiguratorWrapper :after,.cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfiguratorWrapper{flex-direction:row}}.cfgConfiguratorWrapper .cfgReset,.cfgConfiguratorWrapper .cfgShare,.cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgConfiguratorWrapper .cfgShare button,.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgInput{appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;line-height:inherit;outline:none}.cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgConfiguratorWrapper .cfgShare__grayed{color:grey}.cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgCanvasWrapper:after,.cfgCanvasWrapper:before{box-sizing:inherit}.cfgCanvasWrapper *{box-sizing:border-box}.cfgCanvasWrapper :after,.cfgCanvasWrapper :before{box-sizing:inherit}.cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#333;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:hidden;position:relative}.cfgConfigurator:after,.cfgConfigurator:before{box-sizing:inherit}.cfgConfigurator *{box-sizing:border-box}.cfgConfigurator :after,.cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfigurator{height:100%;flex:0 1 40%}}.cfgConfigurator>.cfgConfiguratorTree>.cfgMiscFiles,.cfgConfigurator>.cfgConfiguratorTree>.cfgNotes{padding-left:1.7em}.cfgConfiguratorHeader{border-bottom:.1em solid #c8c7cc;padding:1.7em 1.7em 1.9em;position:relative}.cfgConfiguratorHeader__actions{margin-top:1em}.cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch}.cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDownloadIcon:after,.cfgDownloadIcon:before{box-sizing:inherit}.cfgDownloadIcon *{box-sizing:border-box}.cfgDownloadIcon :after,.cfgDownloadIcon :before{box-sizing:inherit}.cfgDownloadIcon circle,.cfgDownloadIcon path{stroke:#005cb3;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgExpandableHeadingRow{box-sizing:border-box;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;align-items:stretch;display:flex;outline:0;position:relative;width:100%;min-height:3.9em;padding:.6em 0}.cfgExpandableHeadingRow:after,.cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgExpandableHeadingRow *{box-sizing:border-box}.cfgExpandableHeadingRow :after,.cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start;overflow:hidden}.cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgErrorIcon:after,.cfgErrorIcon:before{box-sizing:inherit}.cfgErrorIcon *{box-sizing:border-box}.cfgErrorIcon :after,.cfgErrorIcon :before{box-sizing:inherit}.cfgErrorIcon circle,.cfgErrorIcon path{stroke:#b4361d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgFeatureItem{box-sizing:border-box;color:#333}.cfgFeatureItem:after,.cfgFeatureItem:before{box-sizing:inherit}.cfgFeatureItem *{box-sizing:border-box}.cfgFeatureItem :after,.cfgFeatureItem :before{box-sizing:inherit}.cfgFeatureItem__dropdown{appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgFeatureItem--optional{margin-top:1em}.cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgFeatureItem__radio{border:.2em solid #c8c7cc;border-radius:50%}.cfgFeatureItem__checkbox,.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__checkbox{border:.2em solid #c8c7cc;border-radius:.3em}.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #000;border-radius:50%}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #000;border-radius:.3em}.cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#bababa}.cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgFeatureItem>.cfgMiscFiles,.cfgFeatureItem>.cfgNotes{margin-left:3.2em}.cfgFeatureItem.disabled{opacity:.2}.cfgFeatureItemOption__titleWrapper,.cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgFeatureItemOption__title,.cfgFeatureItemOptional__title{font-size:1.5em}.cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:grey}.cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgFeatureItemOption,.cfgFeatureItemOptional{align-items:center;display:flex}.cfgFeatureItemOptional{justify-content:center;margin-top:.5em}.cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgFormSelect,.cfgInput{border:.1em solid #bababa;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgFormSelect{cursor:pointer;position:relative}.cfgFormSelect select{appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#bababa;clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #c8c7cc;padding:0;margin:0}.cfgHr:after,.cfgHr:before{box-sizing:inherit}.cfgHr *{box-sizing:border-box}.cfgHr :after,.cfgHr :before{box-sizing:inherit}.cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgCenteredLoading:after,.cfgCenteredLoading:before{box-sizing:inherit}.cfgCenteredLoading *{box-sizing:border-box}.cfgCenteredLoading :after,.cfgCenteredLoading :before{box-sizing:inherit}.cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgOverlayLoading:after,.cfgOverlayLoading:before{box-sizing:inherit}.cfgOverlayLoading *{box-sizing:border-box}.cfgOverlayLoading :after,.cfgOverlayLoading :before{box-sizing:inherit}.cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#fff;opacity:.8;border:.1em solid rgba(0,0,0,.15)}.cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgLoadingWithText:after,.cfgLoadingWithText:before{box-sizing:inherit}.cfgLoadingWithText *{box-sizing:border-box}.cfgLoadingWithText :after,.cfgLoadingWithText :before{box-sizing:inherit}.cfgLoadingWithText__text{color:#000;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid rgba(0,0,0,.15);border-bottom-color:#000;display:inline-block;height:3em;width:3em}.cfgLoading:after,.cfgLoading:before{box-sizing:inherit}.cfgLoading *{box-sizing:border-box}.cfgLoading :after,.cfgLoading :before{box-sizing:inherit}.cfgLoading--small{border-width:.4em;height:2em;width:2em}.cfgMiscFiles,.cfgNotes{list-style:none;margin:0;padding:0}.cfgMiscFiles__item{display:flex;align-items:center;margin-top:1em;margin-bottom:1em}.cfgMiscFiles__link{display:block;color:#005cb3;font-size:1.4em;font-weight:600}.cfgNotes__item:not(:last-child){margin-bottom:-.5em}.cfgNotes__body{white-space:pre-wrap;overflow:hidden;color:grey;font-size:1.5em;margin-bottom:1em;margin-right:3em}.cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgOptionTree:after,.cfgOptionTree:before{box-sizing:inherit}.cfgOptionTree *{box-sizing:border-box}.cfgOptionTree :after,.cfgOptionTree :before{box-sizing:inherit}.cfgOptionTree--topLevel{padding-left:1.7em}.cfgOptionTree--indent{margin-left:3.2em}.cfgOptionTree--compThumb{margin-left:4.2em}.cfgProductInfo{box-sizing:border-box;color:#333;display:flex;flex-direction:column}.cfgProductInfo:after,.cfgProductInfo:before{box-sizing:inherit}.cfgProductInfo *{box-sizing:border-box}.cfgProductInfo :after,.cfgProductInfo :before{box-sizing:inherit}.cfgProductInfo__top{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;overflow:hidden}.cfgProductInfo__top--description{display:flex;justify-content:space-between}.cfgProductInfo__bottom{display:flex;flex-direction:row;flex:1 0 auto;align-items:center;justify-content:flex-end;max-width:.333333333;min-width:0}.cfgProductInfo__name,.cfgProductInfo__price{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgProductInfo__taskbar{display:flex;gap:5px}.cfgRangeView__inputs{display:flex;align-items:center}.cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#b4361d}.cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgSlider:after,.cfgSlider:before{box-sizing:inherit}.cfgSlider *{box-sizing:border-box}.cfgSlider :after,.cfgSlider :before{box-sizing:inherit}.cfgSlider,.cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-tooltip{display:none}.cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #c8c7cc}.cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgTaskList__preview{border:.1em solid #c8c7cc;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgTaskList__abort,.cfgTaskList__restart{appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgTaskList__restart{color:inherit;text-decoration:underline;color:#005cb3}.cfgDarkTheme a{color:#70baff}.cfgDarkTheme .cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#d6d6d6;border-radius:.3em;border:.1em solid #6a6a6a;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton:after,.cfgDarkTheme .cfgButton:before{box-sizing:inherit}.cfgDarkTheme .cfgButton *{box-sizing:border-box}.cfgDarkTheme .cfgButton :after,.cfgDarkTheme .cfgButton :before{box-sizing:inherit}.cfgDarkTheme .cfgButton:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:#999;border-radius:.3em;border:.1em solid #5b5963;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton[disabled]:after,.cfgDarkTheme .cfgButton[disabled]:before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled] *{box-sizing:border-box}.cfgDarkTheme .cfgButton[disabled] :after,.cfgDarkTheme .cfgButton[disabled] :before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButtonRow{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow:after,.cfgDarkTheme .cfgButtonRow:before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow *{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow :after,.cfgDarkTheme .cfgButtonRow :before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgDarkTheme .cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCheckmark:after,.cfgDarkTheme .cfgCheckmark:before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark *{box-sizing:border-box}.cfgDarkTheme .cfgCheckmark :after,.cfgDarkTheme .cfgCheckmark :before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgDarkTheme .cfgCheckmark__line{stroke:#fff;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgCheckmark__lineLeft{stroke:#fff;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgDarkTheme .cfgCheckmark__lineRight{stroke:#fff;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgDarkTheme .cfgCheckmark__border{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgCheckmark__border,.cfgDarkTheme .cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgCheckmark__border--active{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgDarkTheme .cfgChevron:after,.cfgDarkTheme .cfgChevron:before{box-sizing:inherit}.cfgDarkTheme .cfgChevron *{box-sizing:border-box}.cfgDarkTheme .cfgChevron :after,.cfgDarkTheme .cfgChevron :before{box-sizing:inherit}.cfgDarkTheme .cfgChevron__container{transition:transform .4s}.cfgDarkTheme .cfgChevron__container--down{transform:translateY(13px)}.cfgDarkTheme .cfgChevron__container--up{transform:translateY(-13px)}.cfgDarkTheme .cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgChevron__lineLeft--active,.cfgDarkTheme .cfgChevron__lineRight--active{stroke:#fff}.cfgDarkTheme .cfgChevron__lineLeft--passive,.cfgDarkTheme .cfgChevron__lineRight--passive{stroke:#6a6a6a}.cfgDarkTheme .cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgDarkTheme .cfgChevron__lineLeft--up,.cfgDarkTheme .cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgDarkTheme .cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgDarkTheme .cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCircleXmarkIcon:after,.cfgDarkTheme .cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon *{box-sizing:border-box}.cfgDarkTheme .cfgCircleXmarkIcon :after,.cfgDarkTheme .cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon circle,.cfgDarkTheme .cfgCircleXmarkIcon path{stroke:#96949e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgConfiguratorWrapper{box-sizing:border-box;color:#d6d6d6;display:flex;height:85vh;flex-direction:column}.cfgDarkTheme .cfgConfiguratorWrapper:after,.cfgDarkTheme .cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgConfiguratorWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgConfiguratorWrapper :after,.cfgDarkTheme .cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfiguratorWrapper{flex-direction:row}}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput{appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;line-height:inherit;outline:none}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__grayed{color:#999}.cfgDarkTheme .cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgDarkTheme .cfgCanvasWrapper:after,.cfgDarkTheme .cfgCanvasWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgCanvasWrapper :after,.cfgDarkTheme .cfgCanvasWrapper :before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgDarkTheme .cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgDarkTheme .cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#d6d6d6;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:hidden;position:relative}.cfgDarkTheme .cfgConfigurator:after,.cfgDarkTheme .cfgConfigurator:before{box-sizing:inherit}.cfgDarkTheme .cfgConfigurator *{box-sizing:border-box}.cfgDarkTheme .cfgConfigurator :after,.cfgDarkTheme .cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfigurator{height:100%;flex:0 1 40%}}.cfgDarkTheme .cfgConfigurator>.cfgConfiguratorTree>.cfgMiscFiles,.cfgDarkTheme .cfgConfigurator>.cfgConfiguratorTree>.cfgNotes{padding-left:1.7em}.cfgDarkTheme .cfgConfiguratorHeader{border-bottom:.1em solid #5b5963;padding:1.7em 1.7em 1.9em;position:relative}.cfgDarkTheme .cfgConfiguratorHeader__actions{margin-top:1em}.cfgDarkTheme .cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch}.cfgDarkTheme .cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgDownloadIcon:after,.cfgDarkTheme .cfgDownloadIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon *{box-sizing:border-box}.cfgDarkTheme .cfgDownloadIcon :after,.cfgDarkTheme .cfgDownloadIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon circle,.cfgDarkTheme .cfgDownloadIcon path{stroke:#70baff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgExpandableHeadingRow{box-sizing:border-box;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;align-items:stretch;display:flex;outline:0;position:relative;width:100%;min-height:3.9em;padding:.6em 0}.cfgDarkTheme .cfgExpandableHeadingRow:after,.cfgDarkTheme .cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow *{box-sizing:border-box}.cfgDarkTheme .cfgExpandableHeadingRow :after,.cfgDarkTheme .cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgDarkTheme .cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start;overflow:hidden}.cfgDarkTheme .cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgDarkTheme .cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgErrorIcon:after,.cfgDarkTheme .cfgErrorIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon *{box-sizing:border-box}.cfgDarkTheme .cfgErrorIcon :after,.cfgDarkTheme .cfgErrorIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon circle,.cfgDarkTheme .cfgErrorIcon path{stroke:#e8836f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgDarkTheme .cfgFeatureItem{box-sizing:border-box;color:#d6d6d6}.cfgDarkTheme .cfgFeatureItem:after,.cfgDarkTheme .cfgFeatureItem:before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem *{box-sizing:border-box}.cfgDarkTheme .cfgFeatureItem :after,.cfgDarkTheme .cfgFeatureItem :before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem__dropdown{appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgDarkTheme .cfgFeatureItem--optional{margin-top:1em}.cfgDarkTheme .cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgDarkTheme .cfgFeatureItem__radio{border:.2em solid #5b5963;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__checkbox{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #fff;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#6a6a6a}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgDarkTheme .cfgFeatureItem>.cfgMiscFiles,.cfgDarkTheme .cfgFeatureItem>.cfgNotes{margin-left:3.2em}.cfgDarkTheme .cfgFeatureItem.disabled{opacity:.2}.cfgDarkTheme .cfgFeatureItemOption__titleWrapper,.cfgDarkTheme .cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgDarkTheme .cfgFeatureItemOption__title,.cfgDarkTheme .cfgFeatureItemOptional__title{font-size:1.5em}.cfgDarkTheme .cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:#999}.cfgDarkTheme .cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgDarkTheme .cfgFeatureItemOption{align-items:center;display:flex}.cfgDarkTheme .cfgFeatureItemOptional{align-items:center;display:flex;justify-content:center;margin-top:.5em}.cfgDarkTheme .cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgDarkTheme .cfgFormSelect,.cfgDarkTheme .cfgInput{border:.1em solid #6a6a6a;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgDarkTheme .cfgFormSelect{cursor:pointer;position:relative}.cfgDarkTheme .cfgFormSelect select{appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgDarkTheme .cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#6a6a6a;clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgDarkTheme .cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #5b5963;padding:0;margin:0}.cfgDarkTheme .cfgHr:after,.cfgDarkTheme .cfgHr:before{box-sizing:inherit}.cfgDarkTheme .cfgHr *{box-sizing:border-box}.cfgDarkTheme .cfgHr :after,.cfgDarkTheme .cfgHr :before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgDarkTheme .cfgCenteredLoading:after,.cfgDarkTheme .cfgCenteredLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading *{box-sizing:border-box}.cfgDarkTheme .cfgCenteredLoading :after,.cfgDarkTheme .cfgCenteredLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#333;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgDarkTheme .cfgOverlayLoading:after,.cfgDarkTheme .cfgOverlayLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading *{box-sizing:border-box}.cfgDarkTheme .cfgOverlayLoading :after,.cfgDarkTheme .cfgOverlayLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgDarkTheme .cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#333;opacity:.8;border:.1em solid hsla(0,0%,100%,.15)}.cfgDarkTheme .cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgDarkTheme .cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgDarkTheme .cfgLoadingWithText:after,.cfgDarkTheme .cfgLoadingWithText:before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText *{box-sizing:border-box}.cfgDarkTheme .cfgLoadingWithText :after,.cfgDarkTheme .cfgLoadingWithText :before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText__text{color:#fff;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgDarkTheme .cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid hsla(0,0%,100%,.15);border-bottom-color:#fff;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgLoading:after,.cfgDarkTheme .cfgLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgLoading *{box-sizing:border-box}.cfgDarkTheme .cfgLoading :after,.cfgDarkTheme .cfgLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgLoading--small{border-width:.4em;height:2em;width:2em}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.cfgDarkTheme .cfgMiscFiles,.cfgDarkTheme .cfgNotes{list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgMiscFiles__item{display:flex;align-items:center;margin-top:1em;margin-bottom:1em}.cfgDarkTheme .cfgMiscFiles__link{display:block;color:#70baff;font-size:1.4em;font-weight:600}.cfgDarkTheme .cfgNotes__item:not(:last-child){margin-bottom:-.5em}.cfgDarkTheme .cfgNotes__body{white-space:pre-wrap;overflow:hidden;color:#999;font-size:1.5em;margin-bottom:1em;margin-right:3em}.cfgDarkTheme .cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgOptionTree:after,.cfgDarkTheme .cfgOptionTree:before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree *{box-sizing:border-box}.cfgDarkTheme .cfgOptionTree :after,.cfgDarkTheme .cfgOptionTree :before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree--topLevel{padding-left:1.7em}.cfgDarkTheme .cfgOptionTree--indent{margin-left:3.2em}.cfgDarkTheme .cfgOptionTree--compThumb{margin-left:4.2em}.cfgDarkTheme .cfgProductInfo{box-sizing:border-box;color:#d6d6d6;display:flex;flex-direction:column}.cfgDarkTheme .cfgProductInfo:after,.cfgDarkTheme .cfgProductInfo:before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo *{box-sizing:border-box}.cfgDarkTheme .cfgProductInfo :after,.cfgDarkTheme .cfgProductInfo :before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo__top{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;overflow:hidden}.cfgDarkTheme .cfgProductInfo__top--description{display:flex;justify-content:space-between}.cfgDarkTheme .cfgProductInfo__bottom{display:flex;flex-direction:row;flex:1 0 auto;align-items:center;justify-content:flex-end;max-width:.333333333;min-width:0}.cfgDarkTheme .cfgProductInfo__name,.cfgDarkTheme .cfgProductInfo__price{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgDarkTheme .cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgDarkTheme .cfgProductInfo__taskbar{display:flex;gap:5px}.cfgDarkTheme .cfgRangeView__inputs{display:flex;align-items:center}.cfgDarkTheme .cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgDarkTheme .cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgDarkTheme .cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgDarkTheme .cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#e8836f}.cfgDarkTheme .cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgDarkTheme .cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgDarkTheme .cfgSlider:after,.cfgDarkTheme .cfgSlider:before{box-sizing:inherit}.cfgDarkTheme .cfgSlider *{box-sizing:border-box}.cfgDarkTheme .cfgSlider :after,.cfgDarkTheme .cfgSlider :before{box-sizing:inherit}.cfgDarkTheme .cfgSlider,.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgDarkTheme .cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-tooltip{display:none}.cfgDarkTheme .cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #5b5963}.cfgDarkTheme .cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgDarkTheme .cfgTaskList__preview{border:.1em solid #5b5963;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgDarkTheme .cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgDarkTheme .cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgDarkTheme .cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgDarkTheme .cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__abort,.cfgDarkTheme .cfgTaskList__restart{appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgDarkTheme .cfgTaskList__restart{color:inherit;text-decoration:underline;color:#70baff}
1
+ .cfgMl1{margin-left:1em}.cfgMt1{margin-top:1em}.cfgMb1{margin-bottom:1em}.cfgTextOverflow{overflow:hidden;text-overflow:ellipsis;white-space:pre-line;overflow-wrap:anywhere;text-align:start}a{color:#005cb3}.cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#333;border-radius:.3em;border:.1em solid #bababa;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton:after,.cfgButton:before{box-sizing:inherit}.cfgButton *{box-sizing:border-box}.cfgButton :after,.cfgButton :before{box-sizing:inherit}.cfgButton:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:grey;border-radius:.3em;border:.1em solid #c8c7cc;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgButton[disabled]:after,.cfgButton[disabled]:before{box-sizing:inherit}.cfgButton[disabled] *{box-sizing:border-box}.cfgButton[disabled] :after,.cfgButton[disabled] :before{box-sizing:inherit}.cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgButtonRow{box-sizing:border-box}.cfgButtonRow:after,.cfgButtonRow:before{box-sizing:inherit}.cfgButtonRow *{box-sizing:border-box}.cfgButtonRow :after,.cfgButtonRow :before{box-sizing:inherit}.cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCheckmark:after,.cfgCheckmark:before{box-sizing:inherit}.cfgCheckmark *{box-sizing:border-box}.cfgCheckmark :after,.cfgCheckmark :before{box-sizing:inherit}.cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgCheckmark__line{stroke:#000;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgCheckmark__lineLeft{stroke:#000;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgCheckmark__lineRight{stroke:#000;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgCheckmark__border{border:.2em solid #c8c7cc;border-radius:.3em}.cfgCheckmark__border,.cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgCheckmark__border--active{border:.2em solid #000;border-radius:.3em}.cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgChevron:after,.cfgChevron:before{box-sizing:inherit}.cfgChevron *{box-sizing:border-box}.cfgChevron :after,.cfgChevron :before{box-sizing:inherit}.cfgChevron__container{transition:transform .4s}.cfgChevron__container--down{transform:translateY(13px)}.cfgChevron__container--up{transform:translateY(-13px)}.cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgChevron__lineLeft--active,.cfgChevron__lineRight--active{stroke:#000}.cfgChevron__lineLeft--passive,.cfgChevron__lineRight--passive{stroke:#bababa}.cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgChevron__lineLeft--up,.cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgCircleXmarkIcon:after,.cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgCircleXmarkIcon *{box-sizing:border-box}.cfgCircleXmarkIcon :after,.cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgCircleXmarkIcon circle,.cfgCircleXmarkIcon path{stroke:#7c7986;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgConfiguratorWrapper{box-sizing:border-box;color:#333;display:flex;height:85vh;flex-direction:column}.cfgConfiguratorWrapper:after,.cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgConfiguratorWrapper *{box-sizing:border-box}.cfgConfiguratorWrapper :after,.cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfiguratorWrapper{flex-direction:row}}.cfgConfiguratorWrapper .cfgReset,.cfgConfiguratorWrapper .cfgShare,.cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgConfiguratorWrapper .cfgShare button,.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgConfiguratorWrapper .cfgReset button,.cfgConfiguratorWrapper .cfgShare .cfgInput{appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;line-height:inherit;outline:none}.cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgConfiguratorWrapper .cfgShare__grayed{color:grey}.cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgCanvasWrapper:after,.cfgCanvasWrapper:before{box-sizing:inherit}.cfgCanvasWrapper *{box-sizing:border-box}.cfgCanvasWrapper :after,.cfgCanvasWrapper :before{box-sizing:inherit}.cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#333;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:hidden;position:relative}.cfgConfigurator:after,.cfgConfigurator:before{box-sizing:inherit}.cfgConfigurator *{box-sizing:border-box}.cfgConfigurator :after,.cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgConfigurator{height:100%;flex:0 1 40%}}.cfgConfigurator>.cfgConfiguratorTree>.cfgMiscFiles,.cfgConfigurator>.cfgConfiguratorTree>.cfgNotes{padding-left:1.7em}.cfgConfiguratorHeader{border-bottom:.1em solid #c8c7cc;padding:1.7em 1.7em 1.9em;position:relative}.cfgConfiguratorHeader__actions{margin-top:1em}.cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch}.cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDownloadIcon:after,.cfgDownloadIcon:before{box-sizing:inherit}.cfgDownloadIcon *{box-sizing:border-box}.cfgDownloadIcon :after,.cfgDownloadIcon :before{box-sizing:inherit}.cfgDownloadIcon circle,.cfgDownloadIcon path{stroke:#005cb3;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgExpandableHeadingRow{box-sizing:border-box;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;align-items:stretch;display:flex;outline:0;position:relative;width:100%;min-height:3.9em;padding:.6em 0}.cfgExpandableHeadingRow:after,.cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgExpandableHeadingRow *{box-sizing:border-box}.cfgExpandableHeadingRow :after,.cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start;overflow:hidden}.cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgErrorIcon:after,.cfgErrorIcon:before{box-sizing:inherit}.cfgErrorIcon *{box-sizing:border-box}.cfgErrorIcon :after,.cfgErrorIcon :before{box-sizing:inherit}.cfgErrorIcon circle,.cfgErrorIcon path{stroke:#b4361d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgFeatureItem{box-sizing:border-box;color:#333}.cfgFeatureItem:after,.cfgFeatureItem:before{box-sizing:inherit}.cfgFeatureItem *{box-sizing:border-box}.cfgFeatureItem :after,.cfgFeatureItem :before{box-sizing:inherit}.cfgFeatureItem__dropdown{appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgFeatureItem--optional{margin-top:1em}.cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgFeatureItem__radio{border:.2em solid #c8c7cc;border-radius:50%}.cfgFeatureItem__checkbox,.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__checkbox{border:.2em solid #c8c7cc;border-radius:.3em}.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #fff,0 0 0 .2em #333}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #000;border-radius:50%}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #000;border-radius:.3em}.cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#bababa}.cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgFeatureItem>.cfgMiscFiles,.cfgFeatureItem>.cfgNotes{margin-left:3.2em}.cfgFeatureItem.disabled>*>.cfgFeatureItem__checkbox,.cfgFeatureItem.disabled>*>.cfgFeatureItem__radio,.cfgFeatureItem.disabled>*>.cfgFeatureItemOption__titleWrapper,.cfgFeatureItem.disabled>*>.cfgFeatureItemOptional__titleWrapper,.cfgFeatureItem.disabled>*>.cfgThumbnailImage{opacity:.2}.cfgFeatureItem.unresolvable>*>.cfgFeatureItemOption__titleWrapper,.cfgFeatureItem.unresolvable>*>.cfgFeatureItemOptional__titleWrapper{color:red;opacity:1}.cfgFeatureItemOption__titleWrapper,.cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgFeatureItemOption__title,.cfgFeatureItemOptional__title{font-size:1.5em}.cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:grey}.cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgFeatureItemOption,.cfgFeatureItemOptional{align-items:center;display:flex}.cfgFeatureItemOptional{justify-content:center;margin-top:.5em}.cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgFeatureItemEmptyWarning{display:none}ul.cfgOptionTree:empty+.cfgFeatureItemEmptyWarning{color:red;display:inherit;font-size:1.5em;margin-bottom:1em}.cfgFormSelect,.cfgInput{border:.1em solid #bababa;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgFormSelect{cursor:pointer;position:relative}.cfgFormSelect select{appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#bababa;clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #c8c7cc;padding:0;margin:0}.cfgHr:after,.cfgHr:before{box-sizing:inherit}.cfgHr *{box-sizing:border-box}.cfgHr :after,.cfgHr :before{box-sizing:inherit}.cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgCenteredLoading:after,.cfgCenteredLoading:before{box-sizing:inherit}.cfgCenteredLoading *{box-sizing:border-box}.cfgCenteredLoading :after,.cfgCenteredLoading :before{box-sizing:inherit}.cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgOverlayLoading:after,.cfgOverlayLoading:before{box-sizing:inherit}.cfgOverlayLoading *{box-sizing:border-box}.cfgOverlayLoading :after,.cfgOverlayLoading :before{box-sizing:inherit}.cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#fff;opacity:.8;border:.1em solid rgba(0,0,0,.15)}.cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgLoadingWithText:after,.cfgLoadingWithText:before{box-sizing:inherit}.cfgLoadingWithText *{box-sizing:border-box}.cfgLoadingWithText :after,.cfgLoadingWithText :before{box-sizing:inherit}.cfgLoadingWithText__text{color:#000;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid rgba(0,0,0,.15);border-bottom-color:#000;display:inline-block;height:3em;width:3em}.cfgLoading:after,.cfgLoading:before{box-sizing:inherit}.cfgLoading *{box-sizing:border-box}.cfgLoading :after,.cfgLoading :before{box-sizing:inherit}.cfgLoading--small{border-width:.4em;height:2em;width:2em}.cfgMiscFiles,.cfgNotes{list-style:none;margin:0;padding:0}.cfgMiscFiles__item{display:flex;align-items:center;margin-top:1em;margin-bottom:1em}.cfgMiscFiles__link{display:block;color:#005cb3;font-size:1.4em;font-weight:600}.cfgNotes__item:not(:last-child){margin-bottom:-.5em}.cfgNotes__body{white-space:pre-wrap;overflow:hidden;color:grey;font-size:1.5em;margin-bottom:1em;margin-right:3em}.cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgOptionTree:after,.cfgOptionTree:before{box-sizing:inherit}.cfgOptionTree *{box-sizing:border-box}.cfgOptionTree :after,.cfgOptionTree :before{box-sizing:inherit}.cfgOptionTree--topLevel{padding-left:1.7em}.cfgOptionTree--indent{margin-left:3.2em}.cfgOptionTree--compThumb{margin-left:4.2em}.cfgProductInfo{box-sizing:border-box;color:#333;display:flex;flex-direction:column}.cfgProductInfo:after,.cfgProductInfo:before{box-sizing:inherit}.cfgProductInfo *{box-sizing:border-box}.cfgProductInfo :after,.cfgProductInfo :before{box-sizing:inherit}.cfgProductInfo__top{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;overflow:hidden}.cfgProductInfo__top--description{display:flex;justify-content:space-between}.cfgProductInfo__bottom{display:flex;flex-direction:row;flex:1 0 auto;align-items:center;justify-content:flex-end;max-width:.333333333;min-width:0}.cfgProductInfo__name,.cfgProductInfo__price{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgProductInfo__taskbar{display:flex;gap:5px}.cfgRangeView__inputs{display:flex;align-items:center}.cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#b4361d}.cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgSlider:after,.cfgSlider:before{box-sizing:inherit}.cfgSlider *{box-sizing:border-box}.cfgSlider :after,.cfgSlider :before{box-sizing:inherit}.cfgSlider,.cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#666}.cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#fff;box-shadow:0 .15em .45em .05em #666}.cfgSlider::-ms-tooltip{display:none}.cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #c8c7cc}.cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgTaskList__preview{border:.1em solid #c8c7cc;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgTaskList__abort,.cfgTaskList__restart{appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgTaskList__restart{color:inherit;text-decoration:underline;color:#005cb3}.cfgDarkTheme a{color:#70baff}.cfgDarkTheme .cfgButton{box-sizing:border-box;display:inline-block;background-color:transparent;color:#d6d6d6;border-radius:.3em;border:.1em solid #6a6a6a;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton:after,.cfgDarkTheme .cfgButton:before{box-sizing:inherit}.cfgDarkTheme .cfgButton *{box-sizing:border-box}.cfgDarkTheme .cfgButton :after,.cfgDarkTheme .cfgButton :before{box-sizing:inherit}.cfgDarkTheme .cfgButton:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButton[disabled]{box-sizing:border-box;display:inline-block;background-color:transparent;color:#999;border-radius:.3em;border:.1em solid #5b5963;font-size:1.3em;font-weight:500;outline:none;padding:.4em .8em}.cfgDarkTheme .cfgButton[disabled]:after,.cfgDarkTheme .cfgButton[disabled]:before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled] *{box-sizing:border-box}.cfgDarkTheme .cfgButton[disabled] :after,.cfgDarkTheme .cfgButton[disabled] :before{box-sizing:inherit}.cfgDarkTheme .cfgButton[disabled]:focus{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgButtonRow{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow:after,.cfgDarkTheme .cfgButtonRow:before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow *{box-sizing:border-box}.cfgDarkTheme .cfgButtonRow :after,.cfgDarkTheme .cfgButtonRow :before{box-sizing:inherit}.cfgDarkTheme .cfgButtonRow__button:nth-child(n+2){margin-left:1em}.cfgDarkTheme .cfgCheckmark{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCheckmark:after,.cfgDarkTheme .cfgCheckmark:before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark *{box-sizing:border-box}.cfgDarkTheme .cfgCheckmark :after,.cfgDarkTheme .cfgCheckmark :before{box-sizing:inherit}.cfgDarkTheme .cfgCheckmark__container{transition:transform .4s;transform:translateY(17px)}.cfgDarkTheme .cfgCheckmark__line{stroke:#fff;stroke-linecap:round;stroke-width:12;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgCheckmark__lineLeft{stroke:#fff;transform:rotate(40deg) translateY(24px) translateX(18px)}.cfgDarkTheme .cfgCheckmark__lineRight{stroke:#fff;transform:rotate(-50deg) translateY(-2px) translateX(-3px)}.cfgDarkTheme .cfgCheckmark__border{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgCheckmark__border,.cfgDarkTheme .cfgCheckmark__border--active{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgCheckmark__border--active{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgChevron{box-sizing:border-box;display:inline-block;width:100%}.cfgDarkTheme .cfgChevron:after,.cfgDarkTheme .cfgChevron:before{box-sizing:inherit}.cfgDarkTheme .cfgChevron *{box-sizing:border-box}.cfgDarkTheme .cfgChevron :after,.cfgDarkTheme .cfgChevron :before{box-sizing:inherit}.cfgDarkTheme .cfgChevron__container{transition:transform .4s}.cfgDarkTheme .cfgChevron__container--down{transform:translateY(13px)}.cfgDarkTheme .cfgChevron__container--up{transform:translateY(-13px)}.cfgDarkTheme .cfgChevron__line{stroke-linecap:round;stroke-width:10;transform-origin:50px 50px;transition:transform .4s,stroke .4s}.cfgDarkTheme .cfgChevron__lineLeft--active,.cfgDarkTheme .cfgChevron__lineRight--active{stroke:#fff}.cfgDarkTheme .cfgChevron__lineLeft--passive,.cfgDarkTheme .cfgChevron__lineRight--passive{stroke:#6a6a6a}.cfgDarkTheme .cfgChevron__lineLeft--down{transform:rotate(40deg)}.cfgDarkTheme .cfgChevron__lineLeft--up,.cfgDarkTheme .cfgChevron__lineRight--down{transform:rotate(-40deg)}.cfgDarkTheme .cfgChevron__lineRight--up{transform:rotate(40deg)}.cfgDarkTheme .cfgCircleXmarkIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgCircleXmarkIcon:after,.cfgDarkTheme .cfgCircleXmarkIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon *{box-sizing:border-box}.cfgDarkTheme .cfgCircleXmarkIcon :after,.cfgDarkTheme .cfgCircleXmarkIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgCircleXmarkIcon circle,.cfgDarkTheme .cfgCircleXmarkIcon path{stroke:#96949e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgConfiguratorWrapper{box-sizing:border-box;color:#d6d6d6;display:flex;height:85vh;flex-direction:column}.cfgDarkTheme .cfgConfiguratorWrapper:after,.cfgDarkTheme .cfgConfiguratorWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgConfiguratorWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgConfiguratorWrapper :after,.cfgDarkTheme .cfgConfiguratorWrapper :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfiguratorWrapper{flex-direction:row}}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart{margin-top:.5em;font-size:1.2em;font-weight:500}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgInput,.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart button{padding:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgTaskStart .cfgFormSelect:after{right:.5em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgReset button,.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare .cfgInput{appearance:none;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;line-height:inherit;outline:none}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error{display:inline-block}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__error .cfgErrorIcon{padding-left:.25em;margin-right:.75em;width:1.25em;height:1em}.cfgDarkTheme .cfgConfiguratorWrapper .cfgShare__grayed{color:#999}.cfgDarkTheme .cfgCanvasWrapper{box-sizing:border-box;position:relative;height:50rem;-webkit-user-select:none;user-select:none;flex:1 1 auto;overflow:hidden}.cfgDarkTheme .cfgCanvasWrapper:after,.cfgDarkTheme .cfgCanvasWrapper:before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper *{box-sizing:border-box}.cfgDarkTheme .cfgCanvasWrapper :after,.cfgDarkTheme .cfgCanvasWrapper :before{box-sizing:inherit}.cfgDarkTheme .cfgCanvasWrapper canvas{outline:none}@media screen and (orientation:landscape){.cfgDarkTheme .cfgCanvasWrapper{height:100%;flex:0 1 60%}}.cfgDarkTheme .cfgConfigurator{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:10px;color:#d6d6d6;min-width:0;height:100%;display:flex;flex-direction:column;flex:0 0 50%;overflow:hidden;position:relative}.cfgDarkTheme .cfgConfigurator:after,.cfgDarkTheme .cfgConfigurator:before{box-sizing:inherit}.cfgDarkTheme .cfgConfigurator *{box-sizing:border-box}.cfgDarkTheme .cfgConfigurator :after,.cfgDarkTheme .cfgConfigurator :before{box-sizing:inherit}@media screen and (orientation:landscape){.cfgDarkTheme .cfgConfigurator{height:100%;flex:0 1 40%}}.cfgDarkTheme .cfgConfigurator>.cfgConfiguratorTree>.cfgMiscFiles,.cfgDarkTheme .cfgConfigurator>.cfgConfiguratorTree>.cfgNotes{padding-left:1.7em}.cfgDarkTheme .cfgConfiguratorHeader{border-bottom:.1em solid #5b5963;padding:1.7em 1.7em 1.9em;position:relative}.cfgDarkTheme .cfgConfiguratorHeader__actions{margin-top:1em}.cfgDarkTheme .cfgConfiguratorTree{padding-top:.5em;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch}.cfgDarkTheme .cfgDownloadIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgDownloadIcon:after,.cfgDarkTheme .cfgDownloadIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon *{box-sizing:border-box}.cfgDarkTheme .cfgDownloadIcon :after,.cfgDarkTheme .cfgDownloadIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgDownloadIcon circle,.cfgDarkTheme .cfgDownloadIcon path{stroke:#70baff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgExpandableHeadingRow{box-sizing:border-box;appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;align-items:stretch;display:flex;outline:0;position:relative;width:100%;min-height:3.9em;padding:.6em 0}.cfgDarkTheme .cfgExpandableHeadingRow:after,.cfgDarkTheme .cfgExpandableHeadingRow:before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow *{box-sizing:border-box}.cfgDarkTheme .cfgExpandableHeadingRow :after,.cfgDarkTheme .cfgExpandableHeadingRow :before{box-sizing:inherit}.cfgDarkTheme .cfgExpandableHeadingRow--expandable{cursor:pointer}.cfgDarkTheme .cfgExpandableHeadingRow__title{align-items:center;display:flex;flex:1 1 auto;font-size:1.5em;font-weight:500;justify-content:flex-start;overflow:hidden}.cfgDarkTheme .cfgExpandableHeadingRow__icon{align-items:center;display:flex;flex:0 0 5em;justify-content:center;padding:0 1.5em}.cfgDarkTheme .cfgErrorIcon{box-sizing:border-box;display:inline-block;width:100%;height:100%}.cfgDarkTheme .cfgErrorIcon:after,.cfgDarkTheme .cfgErrorIcon:before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon *{box-sizing:border-box}.cfgDarkTheme .cfgErrorIcon :after,.cfgDarkTheme .cfgErrorIcon :before{box-sizing:inherit}.cfgDarkTheme .cfgErrorIcon circle,.cfgDarkTheme .cfgErrorIcon path{stroke:#e8836f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.cfgDarkTheme .cfgThumbnailImage{border-radius:.7em;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgThumbnailPlaceholder{align-items:center;display:flex;flex:0 0 4.2em;justify-content:flex-start}.cfgDarkTheme .cfgFeatureItem{box-sizing:border-box;color:#d6d6d6}.cfgDarkTheme .cfgFeatureItem:after,.cfgDarkTheme .cfgFeatureItem:before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem *{box-sizing:border-box}.cfgDarkTheme .cfgFeatureItem :after,.cfgDarkTheme .cfgFeatureItem :before{box-sizing:inherit}.cfgDarkTheme .cfgFeatureItem__dropdown{appearance:none;font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;align-items:stretch;display:flex;height:3.9em;outline:0;position:relative;width:100%;cursor:pointer}.cfgDarkTheme .cfgFeatureItem--optional{margin-top:1em}.cfgDarkTheme .cfgFeatureItem__hiddenInput{left:-99999px;opacity:0;position:absolute;z-index:-1}.cfgDarkTheme .cfgFeatureItem__radio{border:.2em solid #5b5963;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__checkbox{border:.2em solid #5b5963;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:focus~.cfgFeatureItem__radio{box-shadow:0 0 0 .075em #333,0 0 0 .2em #d6d6d6}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{border:.2em solid #fff;border-radius:50%}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__radio{align-items:center;display:flex;flex:0 0 auto;height:2.2em;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:2.2em}.cfgDarkTheme .cfgFeatureItem__hiddenInput:checked~.cfgFeatureItem__checkbox{border:.2em solid #fff;border-radius:.3em}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgExpandableHeadingRow>.cfgExpandableHeadingRow__title{font-weight:600}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct>.cfgFeatureItem__hr{border-bottom-color:#6a6a6a}.cfgDarkTheme .cfgFeatureItem.cfgAdditionalProduct .cfgFeatureItem:last-child .cfgFeatureItem__hr{margin-bottom:-.1em}.cfgDarkTheme .cfgFeatureItem>.cfgMiscFiles,.cfgDarkTheme .cfgFeatureItem>.cfgNotes{margin-left:3.2em}.cfgDarkTheme .cfgFeatureItem.disabled>*>.cfgFeatureItem__checkbox,.cfgDarkTheme .cfgFeatureItem.disabled>*>.cfgFeatureItem__radio,.cfgDarkTheme .cfgFeatureItem.disabled>*>.cfgFeatureItemOption__titleWrapper,.cfgDarkTheme .cfgFeatureItem.disabled>*>.cfgFeatureItemOptional__titleWrapper,.cfgDarkTheme .cfgFeatureItem.disabled>*>.cfgThumbnailImage{opacity:.2}.cfgDarkTheme .cfgFeatureItem.unresolvable>*>.cfgFeatureItemOption__titleWrapper,.cfgDarkTheme .cfgFeatureItem.unresolvable>*>.cfgFeatureItemOptional__titleWrapper{color:red;opacity:1}.cfgDarkTheme .cfgFeatureItemOption__titleWrapper,.cfgDarkTheme .cfgFeatureItemOptional__titleWrapper{flex:1 1 auto;margin-left:1em}.cfgDarkTheme .cfgFeatureItemOption__title,.cfgDarkTheme .cfgFeatureItemOptional__title{font-size:1.5em}.cfgDarkTheme .cfgFeatureItemOption__price{font-weight:600;font-size:.75em;color:#999}.cfgDarkTheme .cfgOptionTree--subLevel .cfgFeatureItem__hr{display:none}.cfgDarkTheme .cfgFeatureItemOption{align-items:center;display:flex}.cfgDarkTheme .cfgFeatureItemOptional{align-items:center;display:flex;justify-content:center;margin-top:.5em}.cfgDarkTheme .cfgFeatureItemOptional__header{font-size:1.2em;font-weight:600;margin:0 0 .3em;padding:0;text-transform:uppercase}.cfgDarkTheme .cfgFeatureItemEmptyWarning{display:none}.cfgDarkTheme ul.cfgOptionTree:empty+.cfgFeatureItemEmptyWarning{color:red;display:inherit;font-size:1.5em;margin-bottom:1em}.cfgDarkTheme .cfgFormSelect,.cfgDarkTheme .cfgInput{border:.1em solid #6a6a6a;padding:.3em .4em;border-radius:.3em;color:inherit}.cfgDarkTheme .cfgFormSelect{cursor:pointer;position:relative}.cfgDarkTheme .cfgFormSelect select{appearance:none;padding:0 1em 0 0;margin:0;width:100%;background-color:transparent;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:inherit;line-height:inherit;outline:none;border:none}.cfgDarkTheme .cfgFormSelect:after{position:absolute;right:.35em;top:50%;margin-top:-.55em;content:"";width:1em;height:1em;background-color:#6a6a6a;clip-path:polygon(50% 80%,90% 40%,100% 50%,50% 100%,0 50%,10% 40%);justify-self:end}.cfgDarkTheme .cfgHr{box-sizing:border-box;border:0;border-bottom:.1em solid #5b5963;padding:0;margin:0}.cfgDarkTheme .cfgHr:after,.cfgDarkTheme .cfgHr:before{box-sizing:inherit}.cfgDarkTheme .cfgHr *{box-sizing:border-box}.cfgDarkTheme .cfgHr :after,.cfgDarkTheme .cfgHr :before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading{box-sizing:border-box;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.cfgDarkTheme .cfgCenteredLoading:after,.cfgDarkTheme .cfgCenteredLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgCenteredLoading *{box-sizing:border-box}.cfgDarkTheme .cfgCenteredLoading :after,.cfgDarkTheme .cfgCenteredLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading{box-sizing:border-box;align-items:center;background-color:#333;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.cfgDarkTheme .cfgOverlayLoading:after,.cfgDarkTheme .cfgOverlayLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading *{box-sizing:border-box}.cfgDarkTheme .cfgOverlayLoading :after,.cfgDarkTheme .cfgOverlayLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgOverlayLoading--clickThrough{background-color:transparent;pointer-events:none}.cfgDarkTheme .cfgOverlayLoading--clickThrough .cfgLoadingWithText{padding:2em 2em 1.8em;border-radius:.8em;background-color:#333;opacity:.8;border:.1em solid hsla(0,0%,100%,.15)}.cfgDarkTheme .cfgOverlayLoading--fullWindow{position:fixed;z-index:1001}.cfgDarkTheme .cfgLoadingWithText{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center}.cfgDarkTheme .cfgLoadingWithText:after,.cfgDarkTheme .cfgLoadingWithText:before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText *{box-sizing:border-box}.cfgDarkTheme .cfgLoadingWithText :after,.cfgDarkTheme .cfgLoadingWithText :before{box-sizing:inherit}.cfgDarkTheme .cfgLoadingWithText__text{color:#fff;font-weight:600;margin-top:.5em;font-size:1.6em}.cfgDarkTheme .cfgLoading{box-sizing:border-box;animation:rotate 1.1s linear 0s infinite;border-radius:100%;border:.5em solid hsla(0,0%,100%,.15);border-bottom-color:#fff;display:inline-block;height:3em;width:3em}.cfgDarkTheme .cfgLoading:after,.cfgDarkTheme .cfgLoading:before{box-sizing:inherit}.cfgDarkTheme .cfgLoading *{box-sizing:border-box}.cfgDarkTheme .cfgLoading :after,.cfgDarkTheme .cfgLoading :before{box-sizing:inherit}.cfgDarkTheme .cfgLoading--small{border-width:.4em;height:2em;width:2em}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.cfgDarkTheme .cfgMiscFiles,.cfgDarkTheme .cfgNotes{list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgMiscFiles__item{display:flex;align-items:center;margin-top:1em;margin-bottom:1em}.cfgDarkTheme .cfgMiscFiles__link{display:block;color:#70baff;font-size:1.4em;font-weight:600}.cfgDarkTheme .cfgNotes__item:not(:last-child){margin-bottom:-.5em}.cfgDarkTheme .cfgNotes__body{white-space:pre-wrap;overflow:hidden;color:#999;font-size:1.5em;margin-bottom:1em;margin-right:3em}.cfgDarkTheme .cfgOptionTree{box-sizing:border-box;list-style:none;margin:0;padding:0}.cfgDarkTheme .cfgOptionTree:after,.cfgDarkTheme .cfgOptionTree:before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree *{box-sizing:border-box}.cfgDarkTheme .cfgOptionTree :after,.cfgDarkTheme .cfgOptionTree :before{box-sizing:inherit}.cfgDarkTheme .cfgOptionTree--topLevel{padding-left:1.7em}.cfgDarkTheme .cfgOptionTree--indent{margin-left:3.2em}.cfgDarkTheme .cfgOptionTree--compThumb{margin-left:4.2em}.cfgDarkTheme .cfgProductInfo{box-sizing:border-box;color:#d6d6d6;display:flex;flex-direction:column}.cfgDarkTheme .cfgProductInfo:after,.cfgDarkTheme .cfgProductInfo:before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo *{box-sizing:border-box}.cfgDarkTheme .cfgProductInfo :after,.cfgDarkTheme .cfgProductInfo :before{box-sizing:inherit}.cfgDarkTheme .cfgProductInfo__top{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;overflow:hidden}.cfgDarkTheme .cfgProductInfo__top--description{display:flex;justify-content:space-between}.cfgDarkTheme .cfgProductInfo__bottom{display:flex;flex-direction:row;flex:1 0 auto;align-items:center;justify-content:flex-end;max-width:.333333333;min-width:0}.cfgDarkTheme .cfgProductInfo__name,.cfgDarkTheme .cfgProductInfo__price{display:block;font-size:1.6em;font-weight:600;line-height:1.33;margin:0}.cfgDarkTheme .cfgProductInfo__number{font-size:1.3em;font-weight:400;line-height:1.38;margin:0}.cfgDarkTheme .cfgProductInfo__taskbar{display:flex;gap:5px}.cfgDarkTheme .cfgRangeView__inputs{display:flex;align-items:center}.cfgDarkTheme .cfgRangeView__number-input{font-size:1.5em;flex-grow:1;text-align:right}.cfgDarkTheme .cfgRangeView__unit-label{font-size:1.5em;margin-left:.3em}.cfgDarkTheme .cfgRangeView__slider-input.cfgSlider{margin-left:1em;flex-grow:3}.cfgDarkTheme .cfgRangeView__error{display:flex;align-items:center;margin-top:1em;font-size:1.5em;color:#e8836f}.cfgDarkTheme .cfgRangeView__error .cfgErrorIcon{padding-right:.25em;width:1.25em;height:1em}.cfgDarkTheme .cfgSlider{box-sizing:border-box;flex:1;margin:0;padding:0;min-height:2.8em;background:transparent;font:inherit}.cfgDarkTheme .cfgSlider:after,.cfgDarkTheme .cfgSlider:before{box-sizing:inherit}.cfgDarkTheme .cfgSlider *{box-sizing:border-box}.cfgDarkTheme .cfgSlider :after,.cfgDarkTheme .cfgSlider :before{box-sizing:inherit}.cfgDarkTheme .cfgSlider,.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{-webkit-appearance:none}.cfgDarkTheme .cfgSlider::-webkit-slider-runnable-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-moz-range-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-ms-track{box-sizing:border-box;border:none;height:.2em;background:#adadad}.cfgDarkTheme .cfgSlider::-webkit-slider-thumb{margin-top:-1.3em;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-moz-range-thumb{box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-thumb{margin-top:0;box-sizing:border-box;border:none;width:2.8em;height:2.8em;border-radius:50%;background:#333;box-shadow:0 .15em .45em .05em #adadad}.cfgDarkTheme .cfgSlider::-ms-tooltip{display:none}.cfgDarkTheme .cfgTaskList ul{list-style-type:none;padding:0;margin:1em 0 0;border-bottom:.1em solid #5b5963}.cfgDarkTheme .cfgTaskList__item{padding:0 1.5em 0 1.7em;margin-bottom:1em;display:flex;align-items:center}.cfgDarkTheme .cfgTaskList__preview{border:.1em solid #5b5963;border-radius:10%;width:4.8em;height:4.8em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__preview img{object-fit:cover;position:relative;left:.38em;top:.38em;width:3.84em;height:3.84em}.cfgDarkTheme .cfgTaskList__icon{flex-shrink:0;width:4em;height:2em;padding-left:1em;padding-right:1em}.cfgDarkTheme .cfgTaskList__icon .cfgLoadingSizer{font-size:.75em}.cfgDarkTheme .cfgTaskList__status{flex-grow:1;font-size:1.5em}.cfgDarkTheme .cfgTaskList__abort{color:inherit;width:2em;height:2em;flex-shrink:0}.cfgDarkTheme .cfgTaskList__abort,.cfgDarkTheme .cfgTaskList__restart{appearance:none;font-family:inherit;font-size:inherit;background:none;border:none;padding:0;cursor:pointer}.cfgDarkTheme .cfgTaskList__restart{color:inherit;text-decoration:underline;color:#70baff}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/scss/_utilities.scss","../../src/scss/web-ui.scss","../../src/scss/_themed.scss","../../src/scss/_button.scss","../../src/scss/_mixins.scss","../../src/scss/icons/_checkmark.scss","../../src/scss/icons/_chevron.scss","../../src/scss/icons/_circle-xmark-icon.scss","../../src/scss/_configurator.scss","../../src/scss/_variables.scss","../../src/scss/icons/_download-icon.scss","../../src/scss/_expandable.scss","../../src/scss/icons/_error-icon.scss","../../src/scss/_feature-item.scss","../../src/scss/_forms.scss","../../src/scss/_hr.scss","../../src/scss/_loading.scss","../../src/scss/_misc-file-and-note.scss","../../src/scss/_option-tree.scss","../../src/scss/_product-information.scss","../../src/scss/_range-view.scss","../../src/scss/_slider.scss","../../src/scss/_tasks.scss"],"names":[],"mappings":"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D,CG7nCC,uEAEC,kBH8nCF,CElmCG,mDACC,eFomCJ,CIhpCC,4BDYA,qBAAA,CCNC,oBAAA,CACA,UAAA,CACA,WJgpCF,CG3oCC,qEAEC,kBH4oCF,CGroCC,8BAVA,qBHkpCD,CGjpCC,uEAEC,kBHkpCF,CIvpCE,uCACC,wBAAA,CACA,0BJypCH,CItpCE,kCACC,WH8FD,CG7FC,oBAAA,CACA,eAAA,CACA,0BAAA,CACA,mCJwpCH,CIrpCE,sCACC,WHsFD,CGrFC,yDJupCH,CIppCE,uCACC,WHiFD,CGhFC,0DJspCH,CIjpCE,oCDDD,yBAAA,CAYA,kBHkpCD,CI3pCG,gFDJF,kBAAA,CAEA,YAAA,CACA,aAAA,CACA,YAAA,CACA,sBAAA,CACA,mBAAA,CACA,wBAAA,CAAA,gBAAA,CACA,WHmqCD,CIvqCG,4CDHF,sBAAA,CAYA,kBH8pCD,CK5sCC,0BFYA,qBAAA,CENC,oBAAA,CACA,UL4sCF,CGtsCC,iEAEC,kBHusCF,CGhsCC,4BAVA,qBH6sCD,CG5sCC,mEAEC,kBH6sCF,CKntCE,qCACC,wBLqtCH,CKntCG,2CACC,0BLqtCJ,CKltCG,yCACC,2BLotCJ,CKhtCE,gCACC,oBAAA,CACA,eAAA,CACA,0BAAA,CACA,mCLktCH,CK7sCG,yFACC,WL+sCJ,CK7sCG,2FACC,cL+sCJ,CK1sCG,0CACC,uBL4sCJ,CKrsCG,mFACC,wBL0sCJ,CKvsCG,yCACC,uBLysCJ,CM7vCC,kCHYA,qBAAA,CGNC,oBAAA,CACA,UAAA,CACA,WN6vCF,CGxvCC,iFAEC,kBHyvCF,CGlvCC,oCAVA,qBH+vCD,CG9vCC,mFAEC,kBH+vCF,CMpwCE,gFAEC,cLsGiC,CKrGjC,oBAAA,CACA,qBAAA,CACA,gBNswCH,COjxCC,sCJQA,qBAAA,CINC,aN+GA,CM9GA,YAAA,CACA,WAAA,CACA,qBPmxCF,CG/wCC,yFAEC,kBHgxCF,CGzwCC,wCAVA,qBHsxCD,CGrxCC,2FAEC,kBHsxCF,CO1xCE,0CAPD,sCAQE,kBP6xCD,CACF,CO3xCE,oJAGC,eAAA,CACA,eAAA,CACA,eP6xCH,CO3xCG,4hBAGC,Y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","file":"web-ui.css","sourcesContent":["/**\n * Web UI Utilities\n */\n\n.cfgMl1 {\n\tmargin-left: 1em;\n}\n\n.cfgMt1 {\n\tmargin-top: 1em;\n}\n\n.cfgMb1 {\n\tmargin-bottom: 1em;\n}\n\n.cfgTextOverflow {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: pre-line;\n\toverflow-wrap: anywhere;\n\ttext-align: start;\n}\n","/**\n* Web UI Styling\n*/\n\n@use \"themed\";\n\n@include themed.themed(themed.$lightTheme);\n\n.cfgDarkTheme {\n\t@include themed.themed(themed.$darkTheme);\n}\n","@use \"sass:map\";\n@use \"sass:color\";\n\n@use \"variables\" as v;\n\n// Components\n@use \"button\";\n@use \"forms\";\n\n@use \"configurator\";\n@use \"expandable\";\n@use \"feature-item\";\n@use \"hr\";\n@use \"loading\";\n@use \"misc-file-and-note\";\n@use \"option-tree\";\n@use \"product-information\";\n@use \"range-view\";\n@use \"slider\";\n@use \"tasks\";\n\n// Icons\n@use \"icons/checkmark\";\n@use \"icons/chevron\";\n@use \"icons/circle-xmark-icon\";\n@use \"icons/download-icon\";\n@use \"icons/error-icon\";\n\n// Utilities\n@use \"utilities\";\n\n/* Colors */\n\n$black: hsl(0, 0%, 0%) !default;\n$white: hsl(0, 0%, 100%) !default;\n$darkGrey: hsl(0, 0%, 15%) !default;\n\n/* Specific colors */\n\n$border: hsl(252, 5%, 79%) !default;\n$borderDark: hsl(0, 0%, 73%) !default;\n$icon: hsl(252, 5%, 50%) !default;\n$focusOutlineOuter: hsl(0, 0%, 13%) !default;\n$sliderTrack: #666 !default;\n$spinner2: hsla(0, 0%, 0%, 0.15);\n$grayText: hsl(0, 0%, 50%) !default;\n$text: hsl(0, 0%, 20%) !default;\n$link: hsl(209, 100%, 35%) !default;\n$error: hsl(10, 72%, 41%) !default;\n\n/* As convention we assume the default theme when naming colors,\n as attempts at generic naming often leads to confusion */\n$lightTheme: (\n\t\"black\": $black,\n\t\"border\": $border,\n\t\"borderDark\": $borderDark,\n\t\"checkButtonChecked\": $black,\n\t\"checkButtonUnchecked\": $border,\n\t\"chevronActive\": $black,\n\t\"chevronPassive\": $borderDark,\n\t\"divider\": $border,\n\t\"dividerDark\": $borderDark,\n\t\"error\": $error,\n\t\"focusOutlineInner\": $white,\n\t\"focusOutlineOuter\": $text,\n\t\"grayText\": $grayText,\n\t\"icon\": $icon,\n\t\"link\": $link,\n\t\"overlayBackground\": $white,\n\t\"sliderThumb\": $white,\n\t\"sliderThumbShadow\": $sliderTrack,\n\t\"sliderTrack\": $sliderTrack,\n\t\"spinner1\": $black,\n\t\"spinner2\": $spinner2,\n\t\"text\": $text,\n\t\"white\": $white,\n) !default;\n\n@function invertLightness($color) {\n\t@return color.change(\n\t\t$color,\n\t\t$lightness: 100 - color.lightness($color) * 0.8\n\t); // We scale with 80% to have a bit more contrast\n}\n\n@function invertLightnessList($list) {\n\t@each $key, $color in $list {\n\t\t$list: map.set($list, $key, invertLightness($color));\n\t}\n\t@return $list;\n}\n\n$darkTheme: invertLightnessList($lightTheme);\n\n$themes: (\n\t\"light\": $lightTheme,\n\t\"dark\": $darkTheme,\n);\n\n@mixin themed($ct, $baseFontSize: v.$baseFontSize, $overlayingZIndex: v.$overlayingZIndex) {\n\ta {\n\t\tcolor: map.get($ct, \"link\");\n\t}\n\n\t@include button.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"borderDark\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"border\")\n\t);\n\t@include checkmark.classes(\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\")\n\t);\n\t@include chevron.classes(map.get($ct, \"chevronActive\"), map.get($ct, \"chevronPassive\"));\n\t@include circle-xmark-icon.classes(map.get($ct, \"icon\"));\n\t@include configurator.classes(\n\t\t$baseFontSize,\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"divider\")\n\t);\n\t@include download-icon.classes(map.get($ct, \"link\"));\n\t@include expandable.classes;\n\t@include error-icon.classes(map.get($ct, \"error\"));\n\t@include feature-item.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\"),\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"dividerDark\")\n\t);\n\t@include forms.classes(map.get($ct, \"borderDark\"));\n\t@include hr.classes(map.get($ct, \"divider\"));\n\t@include loading.classes(\n\t\tmap.get($ct, \"black\"),\n\t\tmap.get($ct, \"spinner1\"),\n\t\tmap.get($ct, \"spinner2\"),\n\t\tmap.get($ct, \"overlayBackground\"),\n\t\t$overlayingZIndex\n\t);\n\t@include misc-file-and-note.classes(map.get($ct, \"grayText\"), map.get($ct, \"link\"));\n\t@include option-tree.classes;\n\t@include product-information.classes(map.get($ct, \"text\"));\n\t@include range-view.classes(map.get($ct, \"error\"));\n\t@include slider.classes(\n\t\tmap.get($ct, \"sliderTrack\"),\n\t\tmap.get($ct, \"sliderThumb\"),\n\t\tmap.get($ct, \"sliderThumbShadow\")\n\t);\n\t@include tasks.classes(map.get($ct, \"border\"), map.get($ct, \"link\"));\n}\n","/**\n * Web UI Product information\n */\n@use \"mixins\";\n\n@mixin styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor) {\n\t@include mixins.cfgRootStyles;\n\tdisplay: inline-block;\n\tbackground-color: transparent;\n\tcolor: $textColor;\n\tborder-radius: 0.3em;\n\tborder: 0.1em solid $borderColor;\n\tfont-size: 1.3em;\n\tfont-weight: 500;\n\toutline: none;\n\tpadding: 0.4em 0.8em;\n\n\t&:focus {\n\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t}\n}\n\n@mixin classes(\n\t$textColor,\n\t$borderColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$disabledTextColor,\n\t$disabledBorderColor\n) {\n\t.cfgButton {\n\t\t@include styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor);\n\n\t\t&[disabled] {\n\t\t\t@include styles(\n\t\t\t\t$disabledTextColor,\n\t\t\t\t$disabledBorderColor,\n\t\t\t\t$focusOutlineInnerColor,\n\t\t\t\t$focusOutlineOuterColor\n\t\t\t);\n\t\t}\n\t}\n\n\t.cfgButtonRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t&__button {\n\t\t\t&:nth-child(n + 2) {\n\t\t\t\tmargin-left: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@mixin noButtonLook {\n\tappearance: none;\n\tfont-family: inherit;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tbackground: none;\n\tborder: none;\n\tpadding: 0;\n}\n\n@mixin focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor) {\n\tbox-shadow: 0 0 0 0.075em $focusOutlineInnerColor, 0 0 0 0.2em $focusOutlineOuterColor;\n}\n\n@mixin borderBox {\n\tbox-sizing: border-box;\n\t&:before,\n\t&:after {\n\t\tbox-sizing: inherit;\n\t}\n}\n\n@mixin cfgRootStyles {\n\t@include borderBox;\n\n\t* {\n\t\t@include borderBox;\n\t}\n}\n\n@mixin cfgDefaultFont {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif,\n\t\t\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n@mixin cfgCheckAndRadio($color) {\n\talign-items: center;\n\tborder: 0.2em solid $color;\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\theight: 2.2em;\n\tjustify-content: center;\n\tpointer-events: none;\n\tuser-select: none;\n\twidth: 2.2em;\n}\n\n@mixin cfgCheckbox($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 0.3em;\n}\n\n@mixin cfgRadio($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 50%;\n}\n","@use \"../mixins\";\n\n@mixin classes($colorActive, $colorPassive) {\n\t.cfgCheckmark {\n\t\t/* The distance-units inside the checkmark are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\t\t\ttransform: translateY(17px);\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke: $colorActive;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 12;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(40deg) translateY(24px) translateX(18px);\n\t\t}\n\n\t\t&__lineRight {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(-50deg) translateY(-2px) translateX(-3px);\n\t\t}\n\n\t\t@content;\n\n\t\t&__border {\n\t\t\t@include mixins.cfgCheckbox($colorPassive);\n\t\t\t&--active {\n\t\t\t\t@include mixins.cfgCheckbox($colorActive);\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($activeColor, $passiveColor) {\n\t.cfgChevron {\n\t\t/* The distance-units inside the chevron are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\n\t\t\t&--down {\n\t\t\t\ttransform: translateY(13px);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: translateY(-13px);\n\t\t\t}\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 10;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft,\n\t\t&__lineRight {\n\t\t\t&--active {\n\t\t\t\tstroke: $activeColor;\n\t\t\t}\n\t\t\t&--passive {\n\t\t\t\tstroke: $passiveColor;\n\t\t\t}\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\t\t}\n\t\t&__lineRight {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgCircleXmarkIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Configurator\n */\n\n@use \"mixins\";\n\n@mixin classes($fontSize, $textColor, $grayTextColor, $headerUnderlineColor) {\n\t.cfgConfiguratorWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tcolor: $textColor;\n\t\tdisplay: flex;\n\t\theight: 85vh;\n\t\tflex-direction: column;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\tflex-direction: row;\n\t\t}\n\n\t\t.cfgTaskStart,\n\t\t.cfgShare,\n\t\t.cfgReset {\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 500;\n\n\t\t\t.cfgInput,\n\t\t\t.cfgFormSelect,\n\t\t\tbutton {\n\t\t\t\tpadding: 0.5em;\n\t\t\t}\n\t\t}\n\n\t\t.cfgTaskStart {\n\t\t\t.cfgFormSelect {\n\t\t\t\t&::after {\n\t\t\t\t\tright: 0.5em;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.cfgShare .cfgInput,\n\t\t.cfgReset button {\n\t\t\tappearance: none;\n\t\t\tmargin: 0;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcursor: pointer;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t}\n\n\t\t.cfgShare {\n\t\t\t&__error {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\t.cfgErrorIcon {\n\t\t\t\t\tpadding-left: 0.25em;\n\t\t\t\t\tmargin-right: 0.75em;\n\t\t\t\t\twidth: 1.25em;\n\t\t\t\t\theight: 1em;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__grayed {\n\t\t\t\tcolor: $grayTextColor;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgCanvasWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tposition: relative;\n\t\theight: 50rem;\n\t\tuser-select: none;\n\n\t\tflex: 1 1 auto;\n\t\toverflow: hidden;\n\n\t\t& canvas {\n\t\t\toutline: none;\n\t\t}\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 60%;\n\t\t}\n\t}\n\n\t.cfgConfigurator {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\t\tfont-size: $fontSize;\n\t\tcolor: $textColor;\n\t\tmin-width: 0;\n\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex: 0 0 50%;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 40%;\n\t\t}\n\n\t\t& > .cfgConfiguratorTree {\n\t\t\t& > .cfgMiscFiles,\n\t\t\t& > .cfgNotes {\n\t\t\t\tpadding-left: 1.7em;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgConfiguratorHeader {\n\t\tborder-bottom: 0.1em solid $headerUnderlineColor;\n\t\tpadding: 1.7em 1.7em 1.9em;\n\t\tposition: relative;\n\n\t\t&__actions {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t}\n\n\t.cfgConfiguratorTree {\n\t\tpadding-top: 1em;\n\t\tpadding-top: 0.5em;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t\t-webkit-overflow-scrolling: touch;\n\t}\n}\n","/**\n * Web UI Variables\n */\n\t\n$baseFontSize: 10px !default; // We use 10px for easy em conversion\n$overlayingZIndex: 1000 !default;\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgDownloadIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes {\n\t.cfgExpandableHeadingRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.noButtonLook;\n\t\talign-items: stretch;\n\t\tdisplay: flex;\n\t\toutline: 0;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tmin-height: 3.9em;\n\t\tpadding: 0.6em 0;\n\n\t\t&--expandable {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&__title {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\tfont-size: 1.5em;\n\t\t\tfont-weight: 500;\n\t\t\tjustify-content: flex-start;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t&__icon {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 0 0 5em;\n\t\t\tjustify-content: center;\n\t\t\tpadding: 0 1.5em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgErrorIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Feature item\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$grayTextColor,\n\t$checkButtonUncheckedColor,\n\t$checkButtonCheckedColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$dividerDark\n) {\n\t.cfgThumbnailImage {\n\t\tborder-radius: 0.7em;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\t}\n\n\t.cfgThumbnailPlaceholder {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex: 0 0 4.2em;\n\t\tjustify-content: flex-start;\n\t}\n\n\t.cfgFeatureItem {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\t&__dropdown {\n\t\t\t@include mixins.noButtonLook;\n\t\t\talign-items: stretch;\n\t\t\tdisplay: flex;\n\t\t\theight: 3.9em;\n\t\t\toutline: 0;\n\t\t\tposition: relative;\n\t\t\twidth: 100%;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&--optional {\n\t\t\tmargin-top: 1em;\n\t\t}\n\n\t\t&__hiddenInput {\n\t\t\tleft: -99999px;\n\t\t\topacity: 0;\n\t\t\tposition: absolute;\n\t\t\tz-index: -1;\n\t\t}\n\n\t\t&__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonUncheckedColor);\n\t\t}\n\n\t\t&__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonUncheckedColor);\n\t\t}\n\n\t\t/* The &-syntax brings in the entire path, so the second part of this rule must be explicit */\n\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__radio,\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t\t}\n\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonCheckedColor);\n\t\t}\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonCheckedColor);\n\t\t}\n\n\t\t&.cfgAdditionalProduct {\n\t\t\t> .cfgExpandableHeadingRow {\n\t\t\t\t> .cfgExpandableHeadingRow__title {\n\t\t\t\t\tfont-weight: 600;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t> .cfgFeatureItem__hr {\n\t\t\t\tborder-bottom-color: $dividerDark;\n\t\t\t}\n\n\t\t\t/* The last themathic break (hr) we move under the next thematic break so it appears as one */\n\t\t\t.cfgFeatureItem:last-child .cfgFeatureItem__hr {\n\t\t\t\tmargin-bottom: -0.1em;\n\t\t\t}\n\t\t}\n\n\t\t& > .cfgNotes,\n\t\t& > .cfgMiscFiles {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\n\t\t&.disabled {\n\t\t\topacity: 0.2;\n\t\t}\n\t}\n\n\t.cfgFeatureItemOptional__titleWrapper,\n\t.cfgFeatureItemOption__titleWrapper {\n\t\tflex: 1 1 auto;\n\t\tmargin-left: 1em;\n\t}\n\n\t.cfgFeatureItemOptional__title,\n\t.cfgFeatureItemOption__title {\n\t\tfont-size: 1.5em;\n\t}\n\n\t.cfgFeatureItemOption__price {\n\t\tfont-weight: 600;\n\t\tfont-size: 0.75em;\n\t\tcolor: $grayTextColor;\n\t}\n\n\t.cfgOptionTree--subLevel .cfgFeatureItem__hr {\n\t\tdisplay: none;\n\t}\n\n\t.cfgFeatureItemOption {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t}\n\n\t.cfgFeatureItemOptional {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin-top: 0.5em;\n\n\t\t&__header {\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 600;\n\t\t\tmargin: 0 0 0.3em 0;\n\t\t\tpadding: 0;\n\t\t\ttext-transform: uppercase;\n\t\t}\n\t}\n}\n","@mixin classes($borderColor) {\n\t.cfgInput,\n\t.cfgFormSelect {\n\t\tborder: 0.1em solid $borderColor;\n\t\tpadding: 0.3em 0.4em;\n\t\tborder-radius: 0.3em;\n\t\tcolor: inherit;\n\t}\n\n\t.cfgFormSelect {\n\t\tselect {\n\t\t\tappearance: none;\n\t\t\tpadding: 0 1em 0 0;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcolor: inherit;\n\t\t\tcursor: inherit;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t\tborder: none;\n\t\t}\n\n\t\tcursor: pointer;\n\t\tposition: relative;\n\n\t\t&::after {\n\t\t\tposition: absolute;\n\t\t\tright: 0.35em;\n\t\t\ttop: 50%;\n\t\t\tmargin-top: -0.55em;\n\t\t\tcontent: \"\";\n\t\t\twidth: 1em;\n\t\t\theight: 1em;\n\t\t\tbackground-color: $borderColor;\n\t\t\tclip-path: polygon(50% 80%, 90% 40%, 100% 50%, 50% 100%, 0 50%, 10% 40%);\n\t\t\tjustify-self: end;\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin styles($color) {\n\t@include mixins.cfgRootStyles;\n\tborder: 0;\n\tborder-bottom: 0.1em solid $color;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n@mixin classes($color) {\n\t.cfgHr {\n\t\t@include styles($color);\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Loading\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$spinnerColor1,\n\t$spinnerColor2,\n\t$overlayBackgroundColor,\n\t$overlayingZIndex\n) {\n\t.cfgCenteredLoading {\n\t\t@include mixins.cfgRootStyles;\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t.cfgOverlayLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\talign-items: center;\n\t\tbackground-color: $overlayBackgroundColor;\n\t\tbottom: 0;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tz-index: $overlayingZIndex;\n\n\t\t&--clickThrough {\n\t\t\tbackground-color: transparent;\n\t\t\tpointer-events: none;\n\n\t\t\t.cfgLoadingWithText {\n\t\t\t\tpadding: 2em 2em 1.8em;\n\t\t\t\tborder-radius: 0.8em;\n\t\t\t\tbackground-color: $overlayBackgroundColor;\n\t\t\t\topacity: 0.8;\n\t\t\t\tborder: 0.1em solid $spinnerColor2;\n\t\t\t}\n\t\t}\n\n\t\t&--fullWindow {\n\t\t\tposition: fixed;\n\t\t\tz-index: #{$overlayingZIndex + 1};\n\t\t}\n\t}\n\n\t.cfgLoadingWithText {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\n\t\ttext-align: center;\n\n\t\t&__text {\n\t\t\tcolor: $textColor;\n\t\t\tfont-weight: 600;\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.6em;\n\t\t}\n\t}\n\n\t.cfgLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tanimation: rotate 1.1s linear 0s infinite;\n\t\tborder-radius: 100%;\n\t\tborder: 0.5em solid $spinnerColor2;\n\t\tborder-bottom-color: $spinnerColor1;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\n\t\t&--small {\n\t\t\tborder-width: 0.4em;\n\t\t\theight: 2em;\n\t\t\twidth: 2em;\n\t\t}\n\t}\n\n\t@keyframes rotate {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($grayTextColor, $linkColor) {\n\t.cfgMiscFiles,\n\t.cfgNotes {\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.cfgMiscFiles {\n\t\t&__item {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-top: 1em;\n\t\t\tmargin-bottom: 1em;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: block;\n\n\t\t\tcolor: $linkColor;\n\t\t\tfont-size: 1.4em;\n\t\t\tfont-weight: 600;\n\t\t}\n\t}\n\n\t.cfgNotes {\n\t\t&__item:not(:last-child) {\n\t\t\tmargin-bottom: -0.5em;\n\t\t}\n\n\t\t&__body {\n\t\t\twhite-space: pre-wrap;\n\t\t\toverflow: hidden;\n\n\t\t\tcolor: $grayTextColor;\n\t\t\tfont-size: 1.5em;\n\n\t\t\tmargin-bottom: 1em;\n\t\t\tmargin-right: 3em;\n\t\t}\n\t}\n}\n","/**\n * Web UI Option tree\n */\n\n@use \"mixins\";\n\n@mixin classes {\n\t.cfgOptionTree {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\t&--topLevel {\n\t\t\tpadding-left: 1.7em;\n\t\t}\n\n\t\t&--indent {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\n\t\t&--compThumb {\n\t\t\tmargin-left: 4.2em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Product information\n */\n\n@use \"sass:math\";\n@use \"mixins\";\n\n@mixin classes($textColor) {\n\t.cfgProductInfo {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\t&__top {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t\toverflow: hidden;\n\n\t\t\t&--description {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: space-between;\n\t\t\t}\n\t\t}\n\n\t\t&__bottom {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tflex: 1 0 auto;\n\t\t\talign-items: center;\n\t\t\tjustify-content: flex-end;\n\t\t\tmax-width: 0.333333333;\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t&__name,\n\t\t&__price {\n\t\t\tdisplay: block;\n\t\t\tfont-size: 1.6em;\n\t\t\tfont-weight: 600;\n\t\t\tline-height: 1.33;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__number {\n\t\t\tfont-size: 1.3em;\n\t\t\tfont-weight: 400;\n\t\t\tline-height: 1.38;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__taskbar {\n\t\t\tdisplay: flex;\n\t\t\tgap: 5px;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@mixin classes($errorColor) {\n\t.cfgRangeView {\n\t\t&__inputs {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__number-input {\n\t\t\tfont-size: 1.5em;\n\t\t\tflex-grow: 1;\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t&__unit-label {\n\t\t\tfont-size: 1.5em;\n\t\t\tmargin-left: 0.3em;\n\t\t}\n\n\t\t&__slider-input.cfgSlider {\n\t\t\tmargin-left: 1em;\n\t\t\tflex-grow: 3;\n\t\t}\n\n\t\t&__error {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\tmargin-top: 1em;\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: $errorColor;\n\n\t\t\t.cfgErrorIcon {\n\t\t\t\tpadding-right: 0.25em;\n\t\t\t\twidth: 1.25em;\n\t\t\t\theight: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n// The origins of this SCSS file is here:\n// https://css-tricks.com/sliding-nightmare-understanding-range-input/\n\n$trackHeight: 0.2em !default;\n$thumbDiameter: 2.8em !default;\n\n@mixin track($trackColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\theight: $trackHeight;\n\tbackground: $trackColor;\n}\n\n@mixin thumb($thumbColor, $thumbShadowColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\twidth: $thumbDiameter;\n\theight: $thumbDiameter;\n\tborder-radius: 50%;\n\tbackground: $thumbColor;\n\tbox-shadow: 0 0.15em 0.45em 0.05em $thumbShadowColor;\n}\n\n@mixin classes($trackColor, $thumbColor, $thumbShadowColor) {\n\t.cfgSlider {\n\t\t@include mixins.cfgRootStyles;\n\n\t\t&,\n\t\t&::-webkit-slider-thumb {\n\t\t\t-webkit-appearance: none;\n\t\t}\n\n\t\tflex: 1;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmin-height: $thumbDiameter;\n\t\tbackground: transparent;\n\t\tfont: inherit;\n\n\t\t&::-webkit-slider-runnable-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-moz-range-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-ms-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\n\t\t&::-webkit-slider-thumb {\n\t\t\tmargin-top: 0.5 * ($trackHeight - $thumbDiameter);\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-moz-range-thumb {\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-ms-thumb {\n\t\t\tmargin-top: 0;\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\n\t\t&::-ms-tooltip {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($borderColor, $linkColor) {\n\t$preview-size: 4.8em;\n\t$line-width: 0.1em;\n\t$icon-size: 2em;\n\n\t.cfgTaskList {\n\t\tul {\n\t\t\tlist-style-type: none;\n\t\t\tpadding: 0;\n\t\t\tmargin: 1em 0 0 0;\n\t\t\tborder-bottom: 0.1em solid $borderColor;\n\t\t}\n\n\t\t&__item {\n\t\t\tpadding: 0 1.5em 0 1.7em;\n\t\t\tmargin-bottom: 1em;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__preview {\n\t\t\tborder: 0.1em solid $borderColor;\n\t\t\tborder-radius: 10%;\n\t\t\twidth: $preview-size;\n\t\t\theight: $preview-size;\n\t\t\tflex-shrink: 0;\n\n\t\t\timg {\n\t\t\t\tobject-fit: cover;\n\t\t\t\tposition: relative;\n\t\t\t\tleft: 0.1 * $preview-size - $line-width;\n\t\t\t\ttop: 0.1 * $preview-size - $line-width;\n\t\t\t\twidth: 0.8 * $preview-size;\n\t\t\t\theight: 0.8 * $preview-size;\n\t\t\t}\n\t\t}\n\n\t\t&__icon {\n\t\t\tflex-shrink: 0;\n\t\t\twidth: $icon-size + 2em;\n\t\t\theight: $icon-size;\n\t\t\tpadding-left: 1em;\n\t\t\tpadding-right: 1em;\n\n\t\t\t.cfgLoadingSizer {\n\t\t\t\tfont-size: 0.75em;\n\t\t\t}\n\t\t}\n\n\t\t&__status {\n\t\t\tflex-grow: 1;\n\t\t\tfont-size: 1.5em;\n\t\t}\n\n\t\t&__abort {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tflex-shrink: 0;\n\t\t}\n\n\t\t&__restart {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\ttext-decoration: underline;\n\t\t\tcolor: $linkColor;\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../src/scss/_utilities.scss","../../src/scss/web-ui.scss","../../src/scss/_themed.scss","../../src/scss/_button.scss","../../src/scss/_mixins.scss","../../src/scss/icons/_checkmark.scss","../../src/scss/icons/_chevron.scss","../../src/scss/icons/_circle-xmark-icon.scss","../../src/scss/_configurator.scss","../../src/scss/_variables.scss","../../src/scss/icons/_download-icon.scss","../../src/scss/_expandable.scss","../../src/scss/icons/_error-icon.scss","../../src/scss/_feature-item.scss","../../src/scss/_forms.scss","../../src/scss/_hr.scss","../../src/scss/_loading.scss","../../src/scss/_misc-file-and-note.scss","../../src/scss/_option-tree.scss","../../src/scss/_product-information.scss","../../src/scss/_range-view.scss","../../src/scss/_slider.scss","../../src/scss/_tasks.scss"],"names":[],"mappings":"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nCF,CE/nCC,yCCNA,+CHwoCD,CExmCC,4BC5BA,qBHuoCD,CGtoCC,qEAEC,kBHuoCF,CGhoCC,8BAVA,qBH6oCD,CG5oCC,uEAEC,kBH6oCF,CEjnCG,mDACC,eFmnCJ,CI/pCC,4BDYA,qBAAA,CCNC,oBAAA,CACA,UAAA,CACA,WJ+pCF,CG1pCC,qEAEC,kBH2pCF,CGppCC,8BAVA,qBHiqCD,CGhqCC,uEAEC,kBHiqCF,CItqCE,uCACC,wBAAA,CACA,0BJwqCH,CIrqCE,kCACC,WH8FD,CG7FC,oBAAA,CACA,eAAA,CACA,0BAAA,CACA,mCJuqCH,CIpqCE,sCACC,WHsFD,CGrFC,yDJsqCH,CInqCE,uCACC,WHiFD,CGhFC,0DJqqCH,CIhqCE,oCDDD,yBAAA,CAYA,kBHiqCD,CI1qCG,gFDJF,kBAAA,CAEA,YAAA,CACA,aAAA,CACA,YAAA,CACA,sBAAA,CACA,mBAAA,CACA,wBAAA,CAAA,gBAAA,CACA,WHkrCD,CItrCG,4CDHF,sBAAA,CAYA,kBH6qCD,CK3tCC,0BFYA,qBAAA,CENC,oBAAA,CACA,UL2tCF,CGrtCC,iEAEC,kBHstCF,CG/sCC,4BAVA,qBH4tCD,CG3tCC,mEAEC,kBH4tCF,CKluCE,qCACC,wBLouCH,CKluCG,2CACC,0BLouCJ,CKjuCG,yCACC,2BLmuCJ,CK/tCE,gCACC,oBAAA,CACA,eAAA,CACA,0BAAA,CACA,mCLiuCH,CK5tCG,yFACC,WL8tCJ,CK5tCG,2FACC,cL8tCJ,CKztCG,0CACC,uBL2tCJ,CKptCG,mFACC,wBLytCJ,CKttCG,yCACC,uBLwtCJ,CM5wCC,kCHYA,qBAAA,CGNC,oBAAA,CACA,UAAA,CACA,WN4wCF,CGvwCC,iFAEC,kBHwwCF,CGjwCC,oCAVA,qBH8wCD,CG7wCC,mFAEC,kBH8wCF,CMnxCE,gFAEC,cLsGiC,CKrGjC,oBAAA,CACA,qBAAA,CACA,gBNqxCH,COhyCC,sCJQA,qBAAA,CINC,aN+GA,CM9GA,YAAA,CACA,WAAA,CACA,qBPkyCF,CG9xCC,yFAEC,kBH+xCF,CGxxCC,wCAVA,qBHqyCD,CGpyCC,2FAEC,kBHqyCF,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","file":"web-ui.css","sourcesContent":["/**\n * Web UI Utilities\n */\n\n.cfgMl1 {\n\tmargin-left: 1em;\n}\n\n.cfgMt1 {\n\tmargin-top: 1em;\n}\n\n.cfgMb1 {\n\tmargin-bottom: 1em;\n}\n\n.cfgTextOverflow {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: pre-line;\n\toverflow-wrap: anywhere;\n\ttext-align: start;\n}\n","/**\n* Web UI Styling\n*/\n\n@use \"themed\";\n\n@include themed.themed(themed.$lightTheme);\n\n.cfgDarkTheme {\n\t@include themed.themed(themed.$darkTheme);\n}\n","@use \"sass:map\";\n@use \"sass:color\";\n\n@use \"variables\" as v;\n\n// Components\n@use \"button\";\n@use \"forms\";\n\n@use \"configurator\";\n@use \"expandable\";\n@use \"feature-item\";\n@use \"hr\";\n@use \"loading\";\n@use \"misc-file-and-note\";\n@use \"option-tree\";\n@use \"product-information\";\n@use \"range-view\";\n@use \"slider\";\n@use \"tasks\";\n\n// Icons\n@use \"icons/checkmark\";\n@use \"icons/chevron\";\n@use \"icons/circle-xmark-icon\";\n@use \"icons/download-icon\";\n@use \"icons/error-icon\";\n\n// Utilities\n@use \"utilities\";\n\n/* Colors */\n\n$black: hsl(0, 0%, 0%) !default;\n$white: hsl(0, 0%, 100%) !default;\n$darkGrey: hsl(0, 0%, 15%) !default;\n\n/* Specific colors */\n\n$border: hsl(252, 5%, 79%) !default;\n$borderDark: hsl(0, 0%, 73%) !default;\n$icon: hsl(252, 5%, 50%) !default;\n$focusOutlineOuter: hsl(0, 0%, 13%) !default;\n$sliderTrack: #666 !default;\n$spinner2: hsla(0, 0%, 0%, 0.15);\n$grayText: hsl(0, 0%, 50%) !default;\n$text: hsl(0, 0%, 20%) !default;\n$link: hsl(209, 100%, 35%) !default;\n$error: hsl(10, 72%, 41%) !default;\n\n/* As convention we assume the default theme when naming colors,\n as attempts at generic naming often leads to confusion */\n$lightTheme: (\n\t\"black\": $black,\n\t\"border\": $border,\n\t\"borderDark\": $borderDark,\n\t\"checkButtonChecked\": $black,\n\t\"checkButtonUnchecked\": $border,\n\t\"chevronActive\": $black,\n\t\"chevronPassive\": $borderDark,\n\t\"divider\": $border,\n\t\"dividerDark\": $borderDark,\n\t\"error\": $error,\n\t\"focusOutlineInner\": $white,\n\t\"focusOutlineOuter\": $text,\n\t\"grayText\": $grayText,\n\t\"icon\": $icon,\n\t\"link\": $link,\n\t\"overlayBackground\": $white,\n\t\"sliderThumb\": $white,\n\t\"sliderThumbShadow\": $sliderTrack,\n\t\"sliderTrack\": $sliderTrack,\n\t\"spinner1\": $black,\n\t\"spinner2\": $spinner2,\n\t\"text\": $text,\n\t\"white\": $white,\n) !default;\n\n@function invertLightness($color) {\n\t@return color.change(\n\t\t$color,\n\t\t$lightness: 100 - color.lightness($color) * 0.8\n\t); // We scale with 80% to have a bit more contrast\n}\n\n@function invertLightnessList($list) {\n\t@each $key, $color in $list {\n\t\t$list: map.set($list, $key, invertLightness($color));\n\t}\n\t@return $list;\n}\n\n$darkTheme: invertLightnessList($lightTheme);\n\n$themes: (\n\t\"light\": $lightTheme,\n\t\"dark\": $darkTheme,\n);\n\n@mixin themed($ct, $baseFontSize: v.$baseFontSize, $overlayingZIndex: v.$overlayingZIndex) {\n\ta {\n\t\tcolor: map.get($ct, \"link\");\n\t}\n\n\t@include button.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"borderDark\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"border\")\n\t);\n\t@include checkmark.classes(\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\")\n\t);\n\t@include chevron.classes(map.get($ct, \"chevronActive\"), map.get($ct, \"chevronPassive\"));\n\t@include circle-xmark-icon.classes(map.get($ct, \"icon\"));\n\t@include configurator.classes(\n\t\t$baseFontSize,\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"divider\")\n\t);\n\t@include download-icon.classes(map.get($ct, \"link\"));\n\t@include expandable.classes;\n\t@include error-icon.classes(map.get($ct, \"error\"));\n\t@include feature-item.classes(\n\t\tmap.get($ct, \"text\"),\n\t\tmap.get($ct, \"grayText\"),\n\t\tmap.get($ct, \"checkButtonUnchecked\"),\n\t\tmap.get($ct, \"checkButtonChecked\"),\n\t\tmap.get($ct, \"focusOutlineInner\"),\n\t\tmap.get($ct, \"focusOutlineOuter\"),\n\t\tmap.get($ct, \"dividerDark\")\n\t);\n\t@include forms.classes(map.get($ct, \"borderDark\"));\n\t@include hr.classes(map.get($ct, \"divider\"));\n\t@include loading.classes(\n\t\tmap.get($ct, \"black\"),\n\t\tmap.get($ct, \"spinner1\"),\n\t\tmap.get($ct, \"spinner2\"),\n\t\tmap.get($ct, \"overlayBackground\"),\n\t\t$overlayingZIndex\n\t);\n\t@include misc-file-and-note.classes(map.get($ct, \"grayText\"), map.get($ct, \"link\"));\n\t@include option-tree.classes;\n\t@include product-information.classes(map.get($ct, \"text\"));\n\t@include range-view.classes(map.get($ct, \"error\"));\n\t@include slider.classes(\n\t\tmap.get($ct, \"sliderTrack\"),\n\t\tmap.get($ct, \"sliderThumb\"),\n\t\tmap.get($ct, \"sliderThumbShadow\")\n\t);\n\t@include tasks.classes(map.get($ct, \"border\"), map.get($ct, \"link\"));\n}\n","/**\n * Web UI Product information\n */\n@use \"mixins\";\n\n@mixin styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor) {\n\t@include mixins.cfgRootStyles;\n\tdisplay: inline-block;\n\tbackground-color: transparent;\n\tcolor: $textColor;\n\tborder-radius: 0.3em;\n\tborder: 0.1em solid $borderColor;\n\tfont-size: 1.3em;\n\tfont-weight: 500;\n\toutline: none;\n\tpadding: 0.4em 0.8em;\n\n\t&:focus {\n\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t}\n}\n\n@mixin classes(\n\t$textColor,\n\t$borderColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$disabledTextColor,\n\t$disabledBorderColor\n) {\n\t.cfgButton {\n\t\t@include styles($textColor, $borderColor, $focusOutlineInnerColor, $focusOutlineOuterColor);\n\n\t\t&[disabled] {\n\t\t\t@include styles(\n\t\t\t\t$disabledTextColor,\n\t\t\t\t$disabledBorderColor,\n\t\t\t\t$focusOutlineInnerColor,\n\t\t\t\t$focusOutlineOuterColor\n\t\t\t);\n\t\t}\n\t}\n\n\t.cfgButtonRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t&__button {\n\t\t\t&:nth-child(n + 2) {\n\t\t\t\tmargin-left: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@mixin noButtonLook {\n\tappearance: none;\n\tfont-family: inherit;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tbackground: none;\n\tborder: none;\n\tpadding: 0;\n}\n\n@mixin focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor) {\n\tbox-shadow: 0 0 0 0.075em $focusOutlineInnerColor, 0 0 0 0.2em $focusOutlineOuterColor;\n}\n\n@mixin borderBox {\n\tbox-sizing: border-box;\n\t&:before,\n\t&:after {\n\t\tbox-sizing: inherit;\n\t}\n}\n\n@mixin cfgRootStyles {\n\t@include borderBox;\n\n\t* {\n\t\t@include borderBox;\n\t}\n}\n\n@mixin cfgDefaultFont {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif,\n\t\t\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n@mixin cfgCheckAndRadio($color) {\n\talign-items: center;\n\tborder: 0.2em solid $color;\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\theight: 2.2em;\n\tjustify-content: center;\n\tpointer-events: none;\n\tuser-select: none;\n\twidth: 2.2em;\n}\n\n@mixin cfgCheckbox($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 0.3em;\n}\n\n@mixin cfgRadio($color) {\n\t@include cfgCheckAndRadio($color);\n\tborder-radius: 50%;\n}\n","@use \"../mixins\";\n\n@mixin classes($colorActive, $colorPassive) {\n\t.cfgCheckmark {\n\t\t/* The distance-units inside the checkmark are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\t\t\ttransform: translateY(17px);\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke: $colorActive;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 12;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(40deg) translateY(24px) translateX(18px);\n\t\t}\n\n\t\t&__lineRight {\n\t\t\tstroke: $colorActive;\n\t\t\ttransform: rotate(-50deg) translateY(-2px) translateX(-3px);\n\t\t}\n\n\t\t@content;\n\n\t\t&__border {\n\t\t\t@include mixins.cfgCheckbox($colorPassive);\n\t\t\t&--active {\n\t\t\t\t@include mixins.cfgCheckbox($colorActive);\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($activeColor, $passiveColor) {\n\t.cfgChevron {\n\t\t/* The distance-units inside the chevron are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&__container {\n\t\t\ttransition: transform 0.4s;\n\n\t\t\t&--down {\n\t\t\t\ttransform: translateY(13px);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: translateY(-13px);\n\t\t\t}\n\t\t}\n\n\t\t&__line {\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-width: 10;\n\t\t\ttransform-origin: 50px 50px;\n\t\t\ttransition: transform 0.4s, stroke 0.4s;\n\t\t}\n\n\t\t&__lineLeft,\n\t\t&__lineRight {\n\t\t\t&--active {\n\t\t\t\tstroke: $activeColor;\n\t\t\t}\n\t\t\t&--passive {\n\t\t\t\tstroke: $passiveColor;\n\t\t\t}\n\t\t}\n\n\t\t&__lineLeft {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\t\t}\n\t\t&__lineRight {\n\t\t\t&--down {\n\t\t\t\ttransform: rotate(-40deg);\n\t\t\t}\n\n\t\t\t&--up {\n\t\t\t\ttransform: rotate(40deg);\n\t\t\t}\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgCircleXmarkIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Configurator\n */\n\n@use \"mixins\";\n\n@mixin classes($fontSize, $textColor, $grayTextColor, $headerUnderlineColor) {\n\t.cfgConfiguratorWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tcolor: $textColor;\n\t\tdisplay: flex;\n\t\theight: 85vh;\n\t\tflex-direction: column;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\tflex-direction: row;\n\t\t}\n\n\t\t.cfgTaskStart,\n\t\t.cfgShare,\n\t\t.cfgReset {\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 500;\n\n\t\t\t.cfgInput,\n\t\t\t.cfgFormSelect,\n\t\t\tbutton {\n\t\t\t\tpadding: 0.5em;\n\t\t\t}\n\t\t}\n\n\t\t.cfgTaskStart {\n\t\t\t.cfgFormSelect {\n\t\t\t\t&::after {\n\t\t\t\t\tright: 0.5em;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.cfgShare .cfgInput,\n\t\t.cfgReset button {\n\t\t\tappearance: none;\n\t\t\tmargin: 0;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcursor: pointer;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t}\n\n\t\t.cfgShare {\n\t\t\t&__error {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\t.cfgErrorIcon {\n\t\t\t\t\tpadding-left: 0.25em;\n\t\t\t\t\tmargin-right: 0.75em;\n\t\t\t\t\twidth: 1.25em;\n\t\t\t\t\theight: 1em;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__grayed {\n\t\t\t\tcolor: $grayTextColor;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgCanvasWrapper {\n\t\t@include mixins.cfgRootStyles;\n\t\tposition: relative;\n\t\theight: 50rem;\n\t\tuser-select: none;\n\n\t\tflex: 1 1 auto;\n\t\toverflow: hidden;\n\n\t\t& canvas {\n\t\t\toutline: none;\n\t\t}\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 60%;\n\t\t}\n\t}\n\n\t.cfgConfigurator {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\t\tfont-size: $fontSize;\n\t\tcolor: $textColor;\n\t\tmin-width: 0;\n\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex: 0 0 50%;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\n\t\t@media screen and (orientation: landscape) {\n\t\t\theight: 100%;\n\t\t\tflex: 0 1 40%;\n\t\t}\n\n\t\t& > .cfgConfiguratorTree {\n\t\t\t& > .cfgMiscFiles,\n\t\t\t& > .cfgNotes {\n\t\t\t\tpadding-left: 1.7em;\n\t\t\t}\n\t\t}\n\t}\n\n\t.cfgConfiguratorHeader {\n\t\tborder-bottom: 0.1em solid $headerUnderlineColor;\n\t\tpadding: 1.7em 1.7em 1.9em;\n\t\tposition: relative;\n\n\t\t&__actions {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t}\n\n\t.cfgConfiguratorTree {\n\t\tpadding-top: 1em;\n\t\tpadding-top: 0.5em;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t\t-webkit-overflow-scrolling: touch;\n\t}\n}\n","/**\n * Web UI Variables\n */\n\t\n$baseFontSize: 10px !default; // We use 10px for easy em conversion\n$overlayingZIndex: 1000 !default;\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgDownloadIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes {\n\t.cfgExpandableHeadingRow {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.noButtonLook;\n\t\talign-items: stretch;\n\t\tdisplay: flex;\n\t\toutline: 0;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tmin-height: 3.9em;\n\t\tpadding: 0.6em 0;\n\n\t\t&--expandable {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&__title {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\tfont-size: 1.5em;\n\t\t\tfont-weight: 500;\n\t\t\tjustify-content: flex-start;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t&__icon {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex: 0 0 5em;\n\t\t\tjustify-content: center;\n\t\t\tpadding: 0 1.5em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"../mixins\";\n\n@mixin classes($color) {\n\t.cfgErrorIcon {\n\t\t/* The distance-units inside the icon are px even though everything\n\t\t else is relative units. The SVG has its own coordinate space. */\n\n\t\t@include mixins.cfgRootStyles;\n\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\tpath,\n\t\tcircle {\n\t\t\tstroke: $color;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Feature item\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$grayTextColor,\n\t$checkButtonUncheckedColor,\n\t$checkButtonCheckedColor,\n\t$focusOutlineInnerColor,\n\t$focusOutlineOuterColor,\n\t$dividerDark\n) {\n\t.cfgThumbnailImage {\n\t\tborder-radius: 0.7em;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\t}\n\n\t.cfgThumbnailPlaceholder {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex: 0 0 4.2em;\n\t\tjustify-content: flex-start;\n\t}\n\n\t.cfgFeatureItem {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\t&__dropdown {\n\t\t\t@include mixins.noButtonLook;\n\t\t\talign-items: stretch;\n\t\t\tdisplay: flex;\n\t\t\theight: 3.9em;\n\t\t\toutline: 0;\n\t\t\tposition: relative;\n\t\t\twidth: 100%;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&--optional {\n\t\t\tmargin-top: 1em;\n\t\t}\n\n\t\t&__hiddenInput {\n\t\t\tleft: -99999px;\n\t\t\topacity: 0;\n\t\t\tposition: absolute;\n\t\t\tz-index: -1;\n\t\t}\n\n\t\t&__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonUncheckedColor);\n\t\t}\n\n\t\t&__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonUncheckedColor);\n\t\t}\n\n\t\t/* The &-syntax brings in the entire path, so the second part of this rule must be explicit */\n\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__radio,\n\t\t&__hiddenInput:focus ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.focusOutline($focusOutlineInnerColor, $focusOutlineOuterColor);\n\t\t}\n\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__radio {\n\t\t\t@include mixins.cfgRadio($checkButtonCheckedColor);\n\t\t}\n\t\t&__hiddenInput:checked ~ .cfgFeatureItem__checkbox {\n\t\t\t@include mixins.cfgCheckbox($checkButtonCheckedColor);\n\t\t}\n\n\t\t&.cfgAdditionalProduct {\n\t\t\t> .cfgExpandableHeadingRow {\n\t\t\t\t> .cfgExpandableHeadingRow__title {\n\t\t\t\t\tfont-weight: 600;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t> .cfgFeatureItem__hr {\n\t\t\t\tborder-bottom-color: $dividerDark;\n\t\t\t}\n\n\t\t\t/* The last themathic break (hr) we move under the next thematic break so it appears as one */\n\t\t\t.cfgFeatureItem:last-child .cfgFeatureItem__hr {\n\t\t\t\tmargin-bottom: -0.1em;\n\t\t\t}\n\t\t}\n\n\t\t& > .cfgNotes,\n\t\t& > .cfgMiscFiles {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\n\t\t&.disabled > * > .cfgFeatureItem__checkbox,\n\t\t&.disabled > * > .cfgFeatureItem__radio,\n\t\t&.disabled > * > .cfgThumbnailImage,\n\t\t&.disabled > * > .cfgFeatureItemOptional__titleWrapper,\n\t\t&.disabled > * > .cfgFeatureItemOption__titleWrapper {\n\t\t\topacity: 0.2;\n\t\t}\n\n\t\t&.unresolvable > * > .cfgFeatureItemOptional__titleWrapper,\n\t\t&.unresolvable > * > .cfgFeatureItemOption__titleWrapper {\n\t\t\tcolor: red;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t.cfgFeatureItemOptional__titleWrapper,\n\t.cfgFeatureItemOption__titleWrapper {\n\t\tflex: 1 1 auto;\n\t\tmargin-left: 1em;\n\t}\n\n\t.cfgFeatureItemOptional__title,\n\t.cfgFeatureItemOption__title {\n\t\tfont-size: 1.5em;\n\t}\n\n\t.cfgFeatureItemOption__price {\n\t\tfont-weight: 600;\n\t\tfont-size: 0.75em;\n\t\tcolor: $grayTextColor;\n\t}\n\n\t.cfgOptionTree--subLevel .cfgFeatureItem__hr {\n\t\tdisplay: none;\n\t}\n\n\t.cfgFeatureItemOption {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t}\n\n\t.cfgFeatureItemOptional {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin-top: 0.5em;\n\n\t\t&__header {\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 600;\n\t\t\tmargin: 0 0 0.3em 0;\n\t\t\tpadding: 0;\n\t\t\ttext-transform: uppercase;\n\t\t}\n\t}\n\n\t.cfgFeatureItemEmptyWarning {\n\t\tdisplay: none;\n\t}\n\n\tul.cfgOptionTree:empty + .cfgFeatureItemEmptyWarning {\n\t\tcolor: red;\n\t\tdisplay: inherit;\n\t\tfont-size: 1.5em;\n\t\tmargin-bottom: 1em;\n\t}\n}\n","@mixin classes($borderColor) {\n\t.cfgInput,\n\t.cfgFormSelect {\n\t\tborder: 0.1em solid $borderColor;\n\t\tpadding: 0.3em 0.4em;\n\t\tborder-radius: 0.3em;\n\t\tcolor: inherit;\n\t}\n\n\t.cfgFormSelect {\n\t\tselect {\n\t\t\tappearance: none;\n\t\t\tpadding: 0 1em 0 0;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\n\t\t\tbackground-color: transparent;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-weight: inherit;\n\t\t\tcolor: inherit;\n\t\t\tcursor: inherit;\n\t\t\tline-height: inherit;\n\t\t\toutline: none;\n\t\t\tborder: none;\n\t\t}\n\n\t\tcursor: pointer;\n\t\tposition: relative;\n\n\t\t&::after {\n\t\t\tposition: absolute;\n\t\t\tright: 0.35em;\n\t\t\ttop: 50%;\n\t\t\tmargin-top: -0.55em;\n\t\t\tcontent: \"\";\n\t\t\twidth: 1em;\n\t\t\theight: 1em;\n\t\t\tbackground-color: $borderColor;\n\t\t\tclip-path: polygon(50% 80%, 90% 40%, 100% 50%, 50% 100%, 0 50%, 10% 40%);\n\t\t\tjustify-self: end;\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin styles($color) {\n\t@include mixins.cfgRootStyles;\n\tborder: 0;\n\tborder-bottom: 0.1em solid $color;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n@mixin classes($color) {\n\t.cfgHr {\n\t\t@include styles($color);\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Loading\n */\n\n@use \"mixins\";\n\n@mixin classes(\n\t$textColor,\n\t$spinnerColor1,\n\t$spinnerColor2,\n\t$overlayBackgroundColor,\n\t$overlayingZIndex\n) {\n\t.cfgCenteredLoading {\n\t\t@include mixins.cfgRootStyles;\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\theight: 100%;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t.cfgOverlayLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\talign-items: center;\n\t\tbackground-color: $overlayBackgroundColor;\n\t\tbottom: 0;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tz-index: $overlayingZIndex;\n\n\t\t&--clickThrough {\n\t\t\tbackground-color: transparent;\n\t\t\tpointer-events: none;\n\n\t\t\t.cfgLoadingWithText {\n\t\t\t\tpadding: 2em 2em 1.8em;\n\t\t\t\tborder-radius: 0.8em;\n\t\t\t\tbackground-color: $overlayBackgroundColor;\n\t\t\t\topacity: 0.8;\n\t\t\t\tborder: 0.1em solid $spinnerColor2;\n\t\t\t}\n\t\t}\n\n\t\t&--fullWindow {\n\t\t\tposition: fixed;\n\t\t\tz-index: #{$overlayingZIndex + 1};\n\t\t}\n\t}\n\n\t.cfgLoadingWithText {\n\t\t@include mixins.cfgRootStyles;\n\t\t@include mixins.cfgDefaultFont;\n\n\t\ttext-align: center;\n\n\t\t&__text {\n\t\t\tcolor: $textColor;\n\t\t\tfont-weight: 600;\n\t\t\tmargin-top: 0.5em;\n\t\t\tfont-size: 1.6em;\n\t\t}\n\t}\n\n\t.cfgLoading {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tanimation: rotate 1.1s linear 0s infinite;\n\t\tborder-radius: 100%;\n\t\tborder: 0.5em solid $spinnerColor2;\n\t\tborder-bottom-color: $spinnerColor1;\n\t\tdisplay: inline-block;\n\t\theight: 3em;\n\t\twidth: 3em;\n\n\t\t&--small {\n\t\t\tborder-width: 0.4em;\n\t\t\theight: 2em;\n\t\t\twidth: 2em;\n\t\t}\n\t}\n\n\t@keyframes rotate {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($grayTextColor, $linkColor) {\n\t.cfgMiscFiles,\n\t.cfgNotes {\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.cfgMiscFiles {\n\t\t&__item {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-top: 1em;\n\t\t\tmargin-bottom: 1em;\n\t\t}\n\n\t\t&__link {\n\t\t\tdisplay: block;\n\n\t\t\tcolor: $linkColor;\n\t\t\tfont-size: 1.4em;\n\t\t\tfont-weight: 600;\n\t\t}\n\t}\n\n\t.cfgNotes {\n\t\t&__item:not(:last-child) {\n\t\t\tmargin-bottom: -0.5em;\n\t\t}\n\n\t\t&__body {\n\t\t\twhite-space: pre-wrap;\n\t\t\toverflow: hidden;\n\n\t\t\tcolor: $grayTextColor;\n\t\t\tfont-size: 1.5em;\n\n\t\t\tmargin-bottom: 1em;\n\t\t\tmargin-right: 3em;\n\t\t}\n\t}\n}\n","/**\n * Web UI Option tree\n */\n\n@use \"mixins\";\n\n@mixin classes {\n\t.cfgOptionTree {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\t&--topLevel {\n\t\t\tpadding-left: 1.7em;\n\t\t}\n\n\t\t&--indent {\n\t\t\tmargin-left: 3.2em;\n\t\t}\n\n\t\t&--compThumb {\n\t\t\tmargin-left: 4.2em;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","/**\n * Web UI Product information\n */\n\n@use \"sass:math\";\n@use \"mixins\";\n\n@mixin classes($textColor) {\n\t.cfgProductInfo {\n\t\t@include mixins.cfgRootStyles;\n\n\t\tcolor: $textColor;\n\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\t&__top {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t\toverflow: hidden;\n\n\t\t\t&--description {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: space-between;\n\t\t\t}\n\t\t}\n\n\t\t&__bottom {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tflex: 1 0 auto;\n\t\t\talign-items: center;\n\t\t\tjustify-content: flex-end;\n\t\t\tmax-width: 0.333333333;\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t&__name,\n\t\t&__price {\n\t\t\tdisplay: block;\n\t\t\tfont-size: 1.6em;\n\t\t\tfont-weight: 600;\n\t\t\tline-height: 1.33;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__number {\n\t\t\tfont-size: 1.3em;\n\t\t\tfont-weight: 400;\n\t\t\tline-height: 1.38;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&__taskbar {\n\t\t\tdisplay: flex;\n\t\t\tgap: 5px;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@mixin classes($errorColor) {\n\t.cfgRangeView {\n\t\t&__inputs {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__number-input {\n\t\t\tfont-size: 1.5em;\n\t\t\tflex-grow: 1;\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t&__unit-label {\n\t\t\tfont-size: 1.5em;\n\t\t\tmargin-left: 0.3em;\n\t\t}\n\n\t\t&__slider-input.cfgSlider {\n\t\t\tmargin-left: 1em;\n\t\t\tflex-grow: 3;\n\t\t}\n\n\t\t&__error {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\tmargin-top: 1em;\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: $errorColor;\n\n\t\t\t.cfgErrorIcon {\n\t\t\t\tpadding-right: 0.25em;\n\t\t\t\twidth: 1.25em;\n\t\t\t\theight: 1em;\n\t\t\t}\n\t\t}\n\t}\n}\n","@use \"mixins\";\n\n// The origins of this SCSS file is here:\n// https://css-tricks.com/sliding-nightmare-understanding-range-input/\n\n$trackHeight: 0.2em !default;\n$thumbDiameter: 2.8em !default;\n\n@mixin track($trackColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\theight: $trackHeight;\n\tbackground: $trackColor;\n}\n\n@mixin thumb($thumbColor, $thumbShadowColor) {\n\tbox-sizing: border-box;\n\tborder: none;\n\twidth: $thumbDiameter;\n\theight: $thumbDiameter;\n\tborder-radius: 50%;\n\tbackground: $thumbColor;\n\tbox-shadow: 0 0.15em 0.45em 0.05em $thumbShadowColor;\n}\n\n@mixin classes($trackColor, $thumbColor, $thumbShadowColor) {\n\t.cfgSlider {\n\t\t@include mixins.cfgRootStyles;\n\n\t\t&,\n\t\t&::-webkit-slider-thumb {\n\t\t\t-webkit-appearance: none;\n\t\t}\n\n\t\tflex: 1;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmin-height: $thumbDiameter;\n\t\tbackground: transparent;\n\t\tfont: inherit;\n\n\t\t&::-webkit-slider-runnable-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-moz-range-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\t\t&::-ms-track {\n\t\t\t@include track($trackColor);\n\t\t}\n\n\t\t&::-webkit-slider-thumb {\n\t\t\tmargin-top: 0.5 * ($trackHeight - $thumbDiameter);\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-moz-range-thumb {\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\t\t&::-ms-thumb {\n\t\t\tmargin-top: 0;\n\t\t\t@include thumb($thumbColor, $thumbShadowColor);\n\t\t}\n\n\t\t&::-ms-tooltip {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t@content;\n\t}\n}\n","@use \"mixins\";\n\n@mixin classes($borderColor, $linkColor) {\n\t$preview-size: 4.8em;\n\t$line-width: 0.1em;\n\t$icon-size: 2em;\n\n\t.cfgTaskList {\n\t\tul {\n\t\t\tlist-style-type: none;\n\t\t\tpadding: 0;\n\t\t\tmargin: 1em 0 0 0;\n\t\t\tborder-bottom: 0.1em solid $borderColor;\n\t\t}\n\n\t\t&__item {\n\t\t\tpadding: 0 1.5em 0 1.7em;\n\t\t\tmargin-bottom: 1em;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__preview {\n\t\t\tborder: 0.1em solid $borderColor;\n\t\t\tborder-radius: 10%;\n\t\t\twidth: $preview-size;\n\t\t\theight: $preview-size;\n\t\t\tflex-shrink: 0;\n\n\t\t\timg {\n\t\t\t\tobject-fit: cover;\n\t\t\t\tposition: relative;\n\t\t\t\tleft: 0.1 * $preview-size - $line-width;\n\t\t\t\ttop: 0.1 * $preview-size - $line-width;\n\t\t\t\twidth: 0.8 * $preview-size;\n\t\t\t\theight: 0.8 * $preview-size;\n\t\t\t}\n\t\t}\n\n\t\t&__icon {\n\t\t\tflex-shrink: 0;\n\t\t\twidth: $icon-size + 2em;\n\t\t\theight: $icon-size;\n\t\t\tpadding-left: 1em;\n\t\t\tpadding-right: 1em;\n\n\t\t\t.cfgLoadingSizer {\n\t\t\t\tfont-size: 0.75em;\n\t\t\t}\n\t\t}\n\n\t\t&__status {\n\t\t\tflex-grow: 1;\n\t\t\tfont-size: 1.5em;\n\t\t}\n\n\t\t&__abort {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t\tflex-shrink: 0;\n\t\t}\n\n\t\t&__restart {\n\t\t\t@include mixins.noButtonLook;\n\t\t\tcursor: pointer;\n\t\t\ttext-decoration: underline;\n\t\t\tcolor: $linkColor;\n\t\t}\n\t}\n}\n"]}
@@ -98,9 +98,19 @@
98
98
  margin-left: 3.2em;
99
99
  }
100
100
 
101
- &.disabled {
101
+ &.disabled > * > .cfgFeatureItem__checkbox,
102
+ &.disabled > * > .cfgFeatureItem__radio,
103
+ &.disabled > * > .cfgThumbnailImage,
104
+ &.disabled > * > .cfgFeatureItemOptional__titleWrapper,
105
+ &.disabled > * > .cfgFeatureItemOption__titleWrapper {
102
106
  opacity: 0.2;
103
107
  }
108
+
109
+ &.unresolvable > * > .cfgFeatureItemOptional__titleWrapper,
110
+ &.unresolvable > * > .cfgFeatureItemOption__titleWrapper {
111
+ color: red;
112
+ opacity: 1;
113
+ }
104
114
  }
105
115
 
106
116
  .cfgFeatureItemOptional__titleWrapper,
@@ -143,4 +153,15 @@
143
153
  text-transform: uppercase;
144
154
  }
145
155
  }
156
+
157
+ .cfgFeatureItemEmptyWarning {
158
+ display: none;
159
+ }
160
+
161
+ ul.cfgOptionTree:empty + .cfgFeatureItemEmptyWarning {
162
+ color: red;
163
+ display: inherit;
164
+ font-size: 1.5em;
165
+ margin-bottom: 1em;
166
+ }
146
167
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@configura/web-ui",
3
- "version": "3.0.0-alpha.1",
3
+ "version": "3.0.0-alpha.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,7 +32,7 @@
32
32
  ]
33
33
  },
34
34
  "dependencies": {
35
- "@configura/web-api": "3.0.0-alpha.1",
35
+ "@configura/web-api": "3.0.0-alpha.2",
36
36
  "uuid": "^8.3.2"
37
37
  },
38
38
  "devDependencies": {
@@ -64,5 +64,5 @@
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "gitHead": "0d18e1a05f913a1367cba0293ee61c5a3320a509"
67
+ "gitHead": "5b72d2813b949b3ccef8f1864382b9153593962b"
68
68
  }