@lavalogic/scoria 0.38.11 → 0.38.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +46 -46
  3. package/dist/Components/AccordionGroupButton.svelte +76 -76
  4. package/dist/Components/Action.svelte +136 -136
  5. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +702 -702
  6. package/dist/Components/Base/BaseModal.svelte +125 -125
  7. package/dist/Components/Base/ContextWrapper.svelte +72 -72
  8. package/dist/Components/Base/Pagination.svelte +198 -198
  9. package/dist/Components/Base/Snippets.svelte +36 -36
  10. package/dist/Components/BigRadioSet.svelte +38 -38
  11. package/dist/Components/Bubble.svelte +101 -101
  12. package/dist/Components/Button.svelte +209 -209
  13. package/dist/Components/Checkbox.svelte +86 -86
  14. package/dist/Components/Contexts/ContextMenu.svelte +164 -164
  15. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
  16. package/dist/Components/Contexts/ContextMenuOption.svelte +60 -60
  17. package/dist/Components/Contexts/ToastContainer.svelte +65 -65
  18. package/dist/Components/Contexts/Tooltip.svelte +37 -37
  19. package/dist/Components/DataMatrixIcon.svelte +112 -112
  20. package/dist/Components/DateInput.svelte +148 -148
  21. package/dist/Components/DatePicker.svelte +300 -300
  22. package/dist/Components/DesktopModal.svelte +90 -90
  23. package/dist/Components/Dial.svelte +204 -204
  24. package/dist/Components/DimensionInput.svelte +170 -170
  25. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -119
  26. package/dist/Components/DragMenu/DraggableCard.svelte +77 -77
  27. package/dist/Components/FileCard.svelte +24 -24
  28. package/dist/Components/FileUpload.svelte +236 -236
  29. package/dist/Components/GridInputSet.svelte +29 -29
  30. package/dist/Components/HorizontalTabGroup.svelte +82 -82
  31. package/dist/Components/HorizontalTabGroupButton.svelte +44 -44
  32. package/dist/Components/Icon.svelte +128 -128
  33. package/dist/Components/Icons.js +357 -357
  34. package/dist/Components/LoadingAnimation.svelte +29 -29
  35. package/dist/Components/LoadingModal.svelte +45 -45
  36. package/dist/Components/LoadingOverlay.svelte +25 -25
  37. package/dist/Components/Modal.svelte +258 -258
  38. package/dist/Components/MultiSelect.svelte +220 -220
  39. package/dist/Components/Nav/NavServiceMenuList.svelte +43 -43
  40. package/dist/Components/Nav/NavTab.svelte +62 -62
  41. package/dist/Components/Nav/ServicesNav.svelte +80 -80
  42. package/dist/Components/NumberInput.svelte +157 -157
  43. package/dist/Components/PageHeading.svelte +25 -25
  44. package/dist/Components/PasswordInput.svelte +88 -88
  45. package/dist/Components/Portal.svelte +36 -36
  46. package/dist/Components/QuerySelect.svelte +366 -366
  47. package/dist/Components/SingleSelect.svelte +250 -250
  48. package/dist/Components/StepButton.svelte +70 -70
  49. package/dist/Components/StepForm.svelte +140 -140
  50. package/dist/Components/Switch.svelte +69 -69
  51. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +51 -51
  52. package/dist/Components/Table/Body/Rows/ColumnList.svelte +59 -59
  53. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -79
  54. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +120 -120
  55. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +105 -105
  56. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -87
  57. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +126 -126
  58. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -159
  59. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +246 -246
  60. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +216 -216
  61. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +179 -179
  62. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +197 -197
  63. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +190 -190
  64. package/dist/Components/Table/Body/Rows/TableRow.svelte +290 -290
  65. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -41
  66. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -30
  67. package/dist/Components/Table/Misc/FilterInput.svelte +37 -16
  68. package/dist/Components/Table/Misc/SidePanel.svelte +35 -35
  69. package/dist/Components/Table/Misc/ToolboxPanel.svelte +100 -100
  70. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -107
  71. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  72. package/dist/Components/TextArea.svelte +130 -130
  73. package/dist/Components/TextInput.svelte +176 -176
  74. package/dist/Components/ThreeStateRadio.svelte +131 -131
  75. package/dist/Components/Touch/BoolCard.svelte +45 -45
  76. package/dist/Components/Touch/DateModal.svelte +209 -209
  77. package/dist/Components/Touch/EditCard.svelte +59 -59
  78. package/dist/Components/Touch/InfoCard.svelte +31 -31
  79. package/dist/Components/Touch/InfoTextCard.svelte +28 -28
  80. package/dist/Components/Touch/ModalExplanation.svelte +17 -17
  81. package/dist/Components/Touch/NumberKeyboard.svelte +225 -225
  82. package/dist/Components/Touch/NumberModal.svelte +79 -79
  83. package/dist/Components/Touch/PlusMinusCard.svelte +46 -46
  84. package/dist/Components/Touch/SummaryCard.svelte +93 -93
  85. package/dist/Components/Touch/TextAreaModal.svelte +95 -95
  86. package/dist/Components/Touch/TextModal.svelte +106 -106
  87. package/dist/Components/Touch/TouchCard.svelte +33 -33
  88. package/dist/Components/Touch/TouchModal.svelte +274 -274
  89. package/dist/Components/Touch/UtilityButton.svelte +109 -109
  90. package/dist/Components/VerticalTabGroup.svelte +79 -79
  91. package/dist/Components/VerticalTabGroupButton.svelte +58 -58
  92. package/dist/Helpers/Datamatrix.d.ts +19 -19
  93. package/dist/Helpers/Datamatrix.js +291 -291
  94. package/dist/Types/Examples/ExampleModal.svelte +35 -35
  95. package/dist/scss/_basics.scss +12 -12
  96. package/dist/scss/_colours.scss +134 -134
  97. package/dist/scss/_motion.scss +57 -57
  98. package/dist/scss/_sizing.scss +85 -85
  99. package/dist/scss/_transitions.scss +8 -8
  100. package/package.json +1 -1
@@ -1,238 +1,238 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { cssLength } from '../Helpers/Helpers.svelte.js';
5
- import { Colour, ColourSet } from '../scss/colours.js';
6
- import { InputVariant } from '../Types/Internal/InputVariant.js';
7
- import { Size } from '../Types/Internal/Size.js';
8
- import Action from './Action.svelte';
9
- import FileCard from './FileCard.svelte';
10
- import type { FileRejection, FileUploadProps } from './FileUploadProps.js';
11
- import Icon from './Icon.svelte';
12
-
13
- let {
14
- accept,
15
- files = $bindable([]),
16
- multiple = false,
17
- labelTop,
18
- labelRight,
19
- placeholder,
20
- required = false,
21
- variant = InputVariant.Default,
22
- disabled,
23
- optional = false,
24
- leftIcon,
25
- rightIcon,
26
- onLeftIconClick,
27
- onRightIconClick,
28
-
29
- inputRef = $bindable(),
30
- onblur,
31
- onfocus,
32
- onchange,
33
- onreject,
34
- maxSize,
35
- allowedMimeTypes,
36
- allowedExtensions,
37
- }: FileUploadProps = $props();
38
-
39
- function reasonToReject(file: File): FileRejection['reason'] | null {
40
- if (maxSize != undefined && file.size > maxSize) {
41
- return 'size';
42
- }
43
- if (allowedMimeTypes && allowedMimeTypes.length > 0) {
44
- if (!allowedMimeTypes.includes(file.type)) {
45
- return 'mime';
46
- }
47
- }
48
- if (allowedExtensions && allowedExtensions.length > 0) {
49
- const lower = file.name.toLocaleLowerCase();
50
- const matched = allowedExtensions.some((ext) => lower.endsWith(ext.toLocaleLowerCase()));
51
- if (!matched) {
52
- return 'extension';
53
- }
54
- }
55
- return null;
56
- }
57
-
58
- function partition(candidates: ArrayLike<File>): {
59
- accepted: ReadonlyArray<File>;
60
- rejected: ReadonlyArray<FileRejection>;
61
- } {
62
- const accepted: Array<File> = [];
63
- const rejected: Array<FileRejection> = [];
64
- for (let i = 0; i < candidates.length; i++) {
65
- const file = candidates[i];
66
- const reason = reasonToReject(file);
67
- if (reason == null) {
68
- accepted.push(file);
69
- } else {
70
- rejected.push({ file, reason });
71
- }
72
- }
73
- return { accepted, rejected };
74
- }
75
-
76
- function commit(accepted: ReadonlyArray<File>) {
77
- if (accepted.length === 0) {
78
- return;
79
- }
80
- files = [...files, ...accepted];
81
- onchange?.(files);
82
- }
83
-
84
- function onPickerChange(e: Event & { currentTarget: EventTarget & HTMLInputElement }) {
85
- const markedFiles = e.currentTarget.files ?? [];
86
- const { accepted, rejected } = partition(markedFiles);
87
- if (rejected.length > 0) {
88
- onreject?.(rejected);
89
- }
90
- commit(accepted);
91
- }
92
-
93
- function openPicker() {
94
- inputRef?.showPicker();
95
- }
96
-
97
- let dragover = $state(false);
98
-
99
- function ondrop(e: DragEvent) {
100
- e.stopPropagation();
101
- e.preventDefault();
102
- dragover = false;
103
-
104
- if (!e.dataTransfer?.files) {
105
- return;
106
- }
107
-
108
- const { accepted, rejected } = partition(e.dataTransfer.files);
109
- if (rejected.length > 0) {
110
- onreject?.(rejected);
111
- }
112
- commit(accepted);
113
- }
114
-
115
- function ondragover(e: DragEvent) {
116
- e.preventDefault();
117
- dragover = true;
118
- }
119
-
120
- function ondragleave(e: DragEvent) {
121
- e.preventDefault();
122
- dragover = false;
123
- }
124
- </script>
125
-
126
- <label
127
- class:dragover
128
- class:for-modal={variant === InputVariant.Modal}
129
- {ondrop}
130
- {ondragover}
131
- {ondragleave}
132
- >
133
- {#if labelTop && variant !== InputVariant.Modal}
134
- <span
135
- class="top-label"
136
- class:for-default={variant === InputVariant.Default}
137
- >{labelTop}{#if optional}<i>&nbsp;- optional</i>{/if}</span
138
- >
139
- {#if variant === InputVariant.Default}
140
- <span class="border"
141
- >{labelTop}{#if optional}<i>&nbsp;- optional</i>{/if}</span
142
- >
143
- {/if}
144
- {/if}
145
- <div
146
- class="icon-container"
147
- class:for-modal={variant == InputVariant.Modal}
148
- >
149
- {#if leftIcon}
150
- <Icon
151
- name={leftIcon.name}
152
- size={leftIcon.size ?? Size.Medium}
153
- colour={leftIcon.colour}
154
- float
155
- left={cssLength('0.75rem')}
156
- top={cssLength('50%')}
157
- anchorX={cssLength('0')}
158
- anchorY={cssLength('-50%')}
159
- clickable={!!onLeftIconClick}
160
- onclick={onLeftIconClick}
161
- />
162
- {/if}
163
- <input
164
- hidden
165
- class:left-pad={leftIcon != undefined}
166
- class:right-pad={rightIcon != undefined}
167
- class:for-modal={variant == InputVariant.Modal}
168
- {onblur}
169
- {accept}
170
- {onfocus}
171
- type="file"
172
- bind:this={inputRef}
173
- {placeholder}
174
- {required}
175
- {disabled}
176
- {multiple}
177
- onchange={onPickerChange}
178
- />
179
-
180
- <div
181
- class="file-list"
182
- role="list"
183
- aria-label="Selected files"
184
- >
185
- {#if files.length}
186
- {#each files as file, index (file)}
187
- <FileCard
188
- {file}
189
- ondelete={() => {
190
- files = files.toSpliced(index, 1);
191
- onchange?.(files);
192
- }}
193
- />
194
- {/each}
195
- {:else}
196
- <p>
197
- Drag and Drop or Click to Upload {#if multiple}multiple documents{:else}a document{/if}
198
- </p>
199
- {/if}
200
- </div>
201
- <div class="side">
202
- <Action
203
- colourSet={ColourSet.Secondary}
204
- backgroundColour={Colour['$transparent-0']}
205
- icon={{ name: 'upload' }}
206
- label="Upload"
207
- size={Size.Medium}
208
- onclick={() => {
209
- openPicker();
210
- }}
211
- />
212
- </div>
213
- {#if rightIcon}
214
- <Icon
215
- name={rightIcon.name}
216
- size={rightIcon.size ?? Size.Medium}
217
- colour={rightIcon.colour}
218
- float
219
- right={cssLength(variant == InputVariant.Modal ? '1rem' : '0.5rem')}
220
- top={cssLength('50%')}
221
- anchorX={cssLength('0')}
222
- anchorY={cssLength('-50%')}
223
- clickable={!!onRightIconClick}
224
- onclick={onRightIconClick}
225
- />
226
- {/if}
227
- {#if labelRight}
228
- <span
229
- class="right-label"
230
- class:for-modal={variant == InputVariant.Modal}>{labelRight}</span
231
- >
232
- {/if}
233
- </div>
234
- </label>
235
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">
4
+ import { cssLength } from '../Helpers/Helpers.svelte.js';
5
+ import { Colour, ColourSet } from '../scss/colours.js';
6
+ import { InputVariant } from '../Types/Internal/InputVariant.js';
7
+ import { Size } from '../Types/Internal/Size.js';
8
+ import Action from './Action.svelte';
9
+ import FileCard from './FileCard.svelte';
10
+ import type { FileRejection, FileUploadProps } from './FileUploadProps.js';
11
+ import Icon from './Icon.svelte';
12
+
13
+ let {
14
+ accept,
15
+ files = $bindable([]),
16
+ multiple = false,
17
+ labelTop,
18
+ labelRight,
19
+ placeholder,
20
+ required = false,
21
+ variant = InputVariant.Default,
22
+ disabled,
23
+ optional = false,
24
+ leftIcon,
25
+ rightIcon,
26
+ onLeftIconClick,
27
+ onRightIconClick,
28
+
29
+ inputRef = $bindable(),
30
+ onblur,
31
+ onfocus,
32
+ onchange,
33
+ onreject,
34
+ maxSize,
35
+ allowedMimeTypes,
36
+ allowedExtensions,
37
+ }: FileUploadProps = $props();
38
+
39
+ function reasonToReject(file: File): FileRejection['reason'] | null {
40
+ if (maxSize != undefined && file.size > maxSize) {
41
+ return 'size';
42
+ }
43
+ if (allowedMimeTypes && allowedMimeTypes.length > 0) {
44
+ if (!allowedMimeTypes.includes(file.type)) {
45
+ return 'mime';
46
+ }
47
+ }
48
+ if (allowedExtensions && allowedExtensions.length > 0) {
49
+ const lower = file.name.toLocaleLowerCase();
50
+ const matched = allowedExtensions.some((ext) => lower.endsWith(ext.toLocaleLowerCase()));
51
+ if (!matched) {
52
+ return 'extension';
53
+ }
54
+ }
55
+ return null;
56
+ }
57
+
58
+ function partition(candidates: ArrayLike<File>): {
59
+ accepted: ReadonlyArray<File>;
60
+ rejected: ReadonlyArray<FileRejection>;
61
+ } {
62
+ const accepted: Array<File> = [];
63
+ const rejected: Array<FileRejection> = [];
64
+ for (let i = 0; i < candidates.length; i++) {
65
+ const file = candidates[i];
66
+ const reason = reasonToReject(file);
67
+ if (reason == null) {
68
+ accepted.push(file);
69
+ } else {
70
+ rejected.push({ file, reason });
71
+ }
72
+ }
73
+ return { accepted, rejected };
74
+ }
75
+
76
+ function commit(accepted: ReadonlyArray<File>) {
77
+ if (accepted.length === 0) {
78
+ return;
79
+ }
80
+ files = [...files, ...accepted];
81
+ onchange?.(files);
82
+ }
83
+
84
+ function onPickerChange(e: Event & { currentTarget: EventTarget & HTMLInputElement }) {
85
+ const markedFiles = e.currentTarget.files ?? [];
86
+ const { accepted, rejected } = partition(markedFiles);
87
+ if (rejected.length > 0) {
88
+ onreject?.(rejected);
89
+ }
90
+ commit(accepted);
91
+ }
92
+
93
+ function openPicker() {
94
+ inputRef?.showPicker();
95
+ }
96
+
97
+ let dragover = $state(false);
98
+
99
+ function ondrop(e: DragEvent) {
100
+ e.stopPropagation();
101
+ e.preventDefault();
102
+ dragover = false;
103
+
104
+ if (!e.dataTransfer?.files) {
105
+ return;
106
+ }
107
+
108
+ const { accepted, rejected } = partition(e.dataTransfer.files);
109
+ if (rejected.length > 0) {
110
+ onreject?.(rejected);
111
+ }
112
+ commit(accepted);
113
+ }
114
+
115
+ function ondragover(e: DragEvent) {
116
+ e.preventDefault();
117
+ dragover = true;
118
+ }
119
+
120
+ function ondragleave(e: DragEvent) {
121
+ e.preventDefault();
122
+ dragover = false;
123
+ }
124
+ </script>
125
+
126
+ <label
127
+ class:dragover
128
+ class:for-modal={variant === InputVariant.Modal}
129
+ {ondrop}
130
+ {ondragover}
131
+ {ondragleave}
132
+ >
133
+ {#if labelTop && variant !== InputVariant.Modal}
134
+ <span
135
+ class="top-label"
136
+ class:for-default={variant === InputVariant.Default}
137
+ >{labelTop}{#if optional}<i>&nbsp;- optional</i>{/if}</span
138
+ >
139
+ {#if variant === InputVariant.Default}
140
+ <span class="border"
141
+ >{labelTop}{#if optional}<i>&nbsp;- optional</i>{/if}</span
142
+ >
143
+ {/if}
144
+ {/if}
145
+ <div
146
+ class="icon-container"
147
+ class:for-modal={variant == InputVariant.Modal}
148
+ >
149
+ {#if leftIcon}
150
+ <Icon
151
+ name={leftIcon.name}
152
+ size={leftIcon.size ?? Size.Medium}
153
+ colour={leftIcon.colour}
154
+ float
155
+ left={cssLength('0.75rem')}
156
+ top={cssLength('50%')}
157
+ anchorX={cssLength('0')}
158
+ anchorY={cssLength('-50%')}
159
+ clickable={!!onLeftIconClick}
160
+ onclick={onLeftIconClick}
161
+ />
162
+ {/if}
163
+ <input
164
+ hidden
165
+ class:left-pad={leftIcon != undefined}
166
+ class:right-pad={rightIcon != undefined}
167
+ class:for-modal={variant == InputVariant.Modal}
168
+ {onblur}
169
+ {accept}
170
+ {onfocus}
171
+ type="file"
172
+ bind:this={inputRef}
173
+ {placeholder}
174
+ {required}
175
+ {disabled}
176
+ {multiple}
177
+ onchange={onPickerChange}
178
+ />
179
+
180
+ <div
181
+ class="file-list"
182
+ role="list"
183
+ aria-label="Selected files"
184
+ >
185
+ {#if files.length}
186
+ {#each files as file, index (file)}
187
+ <FileCard
188
+ {file}
189
+ ondelete={() => {
190
+ files = files.toSpliced(index, 1);
191
+ onchange?.(files);
192
+ }}
193
+ />
194
+ {/each}
195
+ {:else}
196
+ <p>
197
+ Drag and Drop or Click to Upload {#if multiple}multiple documents{:else}a document{/if}
198
+ </p>
199
+ {/if}
200
+ </div>
201
+ <div class="side">
202
+ <Action
203
+ colourSet={ColourSet.Secondary}
204
+ backgroundColour={Colour['$transparent-0']}
205
+ icon={{ name: 'upload' }}
206
+ label="Upload"
207
+ size={Size.Medium}
208
+ onclick={() => {
209
+ openPicker();
210
+ }}
211
+ />
212
+ </div>
213
+ {#if rightIcon}
214
+ <Icon
215
+ name={rightIcon.name}
216
+ size={rightIcon.size ?? Size.Medium}
217
+ colour={rightIcon.colour}
218
+ float
219
+ right={cssLength(variant == InputVariant.Modal ? '1rem' : '0.5rem')}
220
+ top={cssLength('50%')}
221
+ anchorX={cssLength('0')}
222
+ anchorY={cssLength('-50%')}
223
+ clickable={!!onRightIconClick}
224
+ onclick={onRightIconClick}
225
+ />
226
+ {/if}
227
+ {#if labelRight}
228
+ <span
229
+ class="right-label"
230
+ class:for-modal={variant == InputVariant.Modal}>{labelRight}</span
231
+ >
232
+ {/if}
233
+ </div>
234
+ </label>
235
+
236
236
  <style>input {
237
237
  box-sizing: border-box;
238
238
  height: 100%;
@@ -438,4 +438,4 @@ label {
438
438
 
439
439
  .dragover {
440
440
  background-color: rgba(31, 129, 160, 0.4);
441
- }</style>
441
+ }</style>
@@ -1,31 +1,31 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="V extends Record<string, unknown>,VP extends ValueProp<V>"
6
- >
7
- import type { ValueProp } from '../Types/Internal/Misc.js';
8
- import GridInput from './GridInput.svelte';
9
- import type { GridInputSetProps } from './GridInputSetProps.js';
10
-
11
- const { items, header }: GridInputSetProps<V, VP> = $props();
12
-
13
- const lastIndex = $derived(items.length - 1);
14
- </script>
15
-
16
- <div class="grid">
17
- {#if header}
18
- {@render header()}
19
- {/if}
20
- {#each items as item, index (item.label)}
21
- <GridInput
22
- {item}
23
- first={index == 0}
24
- last={index == lastIndex}
25
- />
26
- {/each}
27
- </div>
28
-
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="V extends Record<string, unknown>,VP extends ValueProp<V>"
6
+ >
7
+ import type { ValueProp } from '../Types/Internal/Misc.js';
8
+ import GridInput from './GridInput.svelte';
9
+ import type { GridInputSetProps } from './GridInputSetProps.js';
10
+
11
+ const { items, header }: GridInputSetProps<V, VP> = $props();
12
+
13
+ const lastIndex = $derived(items.length - 1);
14
+ </script>
15
+
16
+ <div class="grid">
17
+ {#if header}
18
+ {@render header()}
19
+ {/if}
20
+ {#each items as item, index (item.label)}
21
+ <GridInput
22
+ {item}
23
+ first={index == 0}
24
+ last={index == lastIndex}
25
+ />
26
+ {/each}
27
+ </div>
28
+
29
29
  <style>.grid {
30
30
  display: grid;
31
31
  grid-template-columns: [label] 16rem [value] 1fr;
@@ -33,4 +33,4 @@
33
33
  border: solid 1px #dae0e5;
34
34
  border-radius: 4px;
35
35
  background-color: #dae0e5;
36
- }</style>
36
+ }</style>