@lavalogic/scoria 0.40.13 → 0.40.15

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 (143) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +35 -46
  3. package/dist/Components/AccordionGroupButton.svelte +68 -76
  4. package/dist/Components/Action.svelte +103 -135
  5. package/dist/Components/AlertModal.svelte +171 -190
  6. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +614 -697
  7. package/dist/Components/Base/BaseModal.svelte +90 -116
  8. package/dist/Components/Base/ContextWrapper.svelte +67 -72
  9. package/dist/Components/Base/Pagination.svelte +173 -196
  10. package/dist/Components/Base/Snippets.svelte +34 -36
  11. package/dist/Components/BigRadioSet.svelte +36 -38
  12. package/dist/Components/Bubble.svelte +78 -101
  13. package/dist/Components/Button.svelte +175 -208
  14. package/dist/Components/Checkbox.svelte +75 -86
  15. package/dist/Components/CollapsibleCard.svelte +72 -87
  16. package/dist/Components/CollapsibleMenuGroup.svelte +53 -57
  17. package/dist/Components/ConditionBuilder/ConditionBuilder.svelte +39 -64
  18. package/dist/Components/Contexts/ContextMenu.svelte +141 -156
  19. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
  20. package/dist/Components/Contexts/ContextMenuOption.svelte +53 -60
  21. package/dist/Components/Contexts/Toast.svelte +81 -86
  22. package/dist/Components/Contexts/ToastContainer.svelte +58 -62
  23. package/dist/Components/Contexts/Tooltip.svelte +36 -37
  24. package/dist/Components/DataMatrixIcon.svelte +95 -108
  25. package/dist/Components/DateInput.svelte +118 -146
  26. package/dist/Components/DatePicker.svelte +255 -294
  27. package/dist/Components/DesktopModal.svelte +70 -90
  28. package/dist/Components/Dial.svelte +167 -197
  29. package/dist/Components/DimensionInput.svelte +124 -169
  30. package/dist/Components/DragMenu/DragMenuHolder.svelte +98 -114
  31. package/dist/Components/DragMenu/DraggableCard.svelte +64 -76
  32. package/dist/Components/FileCard.svelte +21 -24
  33. package/dist/Components/FileUpload.svelte +190 -225
  34. package/dist/Components/GridInput.svelte +159 -196
  35. package/dist/Components/GridInputSet.svelte +24 -29
  36. package/dist/Components/HorizontalTabGroup.svelte +73 -89
  37. package/dist/Components/HorizontalTabGroupButton.svelte +40 -44
  38. package/dist/Components/Icon.svelte +99 -128
  39. package/dist/Components/Icons.js +357 -357
  40. package/dist/Components/InfoAlert.svelte +35 -38
  41. package/dist/Components/LoadingAnimation.svelte +691 -755
  42. package/dist/Components/LoadingModal.svelte +36 -44
  43. package/dist/Components/LoadingOverlay.svelte +22 -26
  44. package/dist/Components/Modal.svelte +204 -254
  45. package/dist/Components/MultiSelect.svelte +186 -216
  46. package/dist/Components/Nav/Nav.svelte +94 -110
  47. package/dist/Components/Nav/NavServiceMenuList.svelte +57 -61
  48. package/dist/Components/Nav/NavTab.svelte +58 -62
  49. package/dist/Components/Nav/ServiceMenuItem.svelte +103 -111
  50. package/dist/Components/Nav/ServicesNav.svelte +72 -79
  51. package/dist/Components/NumberInput.svelte +121 -155
  52. package/dist/Components/OptionCards.svelte +62 -73
  53. package/dist/Components/PageHeading.svelte +23 -25
  54. package/dist/Components/PasswordInput.svelte +69 -88
  55. package/dist/Components/PopoverButton.svelte +151 -0
  56. package/dist/Components/PopoverButton.svelte.d.ts +9 -0
  57. package/dist/Components/PopoverButtonProps.d.ts +21 -0
  58. package/dist/Components/PopoverButtonProps.js +1 -0
  59. package/dist/Components/Portal.svelte +29 -35
  60. package/dist/Components/ProgressBubble.svelte +91 -106
  61. package/dist/Components/QuerySelect.svelte +260 -346
  62. package/dist/Components/SidebarPanel.svelte +34 -36
  63. package/dist/Components/SingleSelect.svelte +196 -244
  64. package/dist/Components/StepButton.svelte +65 -70
  65. package/dist/Components/StepForm.svelte +115 -135
  66. package/dist/Components/Switch.svelte +57 -69
  67. package/dist/Components/Table/ARCHITECTURE.md +298 -298
  68. package/dist/Components/Table/Body/QuickSearchCell.svelte +578 -655
  69. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +42 -51
  70. package/dist/Components/Table/Body/Rows/ColumnList.svelte +42 -58
  71. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +403 -442
  72. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +51 -78
  73. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +165 -184
  74. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +110 -123
  75. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +134 -160
  76. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +190 -231
  77. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +82 -104
  78. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +52 -87
  79. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +122 -150
  80. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +132 -159
  81. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +190 -236
  82. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +173 -211
  83. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +204 -244
  84. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +140 -177
  85. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +188 -217
  86. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +173 -193
  87. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +166 -187
  88. package/dist/Components/Table/Body/Rows/TableRow.svelte +245 -288
  89. package/dist/Components/Table/Body/TableBody.svelte +141 -154
  90. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +35 -41
  91. package/dist/Components/Table/Headers/SelectAllHeader.svelte +24 -30
  92. package/dist/Components/Table/Headers/TableHead.svelte +348 -402
  93. package/dist/Components/Table/Misc/ColumnPanel.svelte +37 -39
  94. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +35 -39
  95. package/dist/Components/Table/Misc/FilterInput.svelte +556 -619
  96. package/dist/Components/Table/Misc/FilterPanel.svelte +170 -183
  97. package/dist/Components/Table/Misc/FilterPanelModal.svelte +25 -31
  98. package/dist/Components/Table/Misc/ShareViewModal.svelte +252 -281
  99. package/dist/Components/Table/Misc/SidePanel.svelte +32 -35
  100. package/dist/Components/Table/Misc/TableConfigurationModal.svelte +574 -629
  101. package/dist/Components/Table/Misc/TableFooter.svelte +326 -332
  102. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +134 -140
  103. package/dist/Components/Table/Misc/TableSidebar.svelte +183 -198
  104. package/dist/Components/Table/Misc/TableViewDropdown.svelte +83 -103
  105. package/dist/Components/Table/Misc/ToolboxPanel.svelte +83 -100
  106. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +88 -107
  107. package/dist/Components/Table/Misc/UpdateViewOptionsModal.svelte +163 -190
  108. package/dist/Components/Table/NestedTable.svelte +102 -128
  109. package/dist/Components/Table/Table.svelte +531 -663
  110. package/dist/Components/Test/TestContextConsumer.svelte +11 -13
  111. package/dist/Components/TextArea.svelte +95 -130
  112. package/dist/Components/TextInput.svelte +125 -176
  113. package/dist/Components/ThreeStateRadio.svelte +111 -130
  114. package/dist/Components/Touch/BoolCard.svelte +33 -45
  115. package/dist/Components/Touch/DateModal.svelte +164 -204
  116. package/dist/Components/Touch/EditCard.svelte +48 -59
  117. package/dist/Components/Touch/InfoCard.svelte +28 -31
  118. package/dist/Components/Touch/InfoTextCard.svelte +26 -28
  119. package/dist/Components/Touch/ModalExplanation.svelte +15 -17
  120. package/dist/Components/Touch/NumberKeyboard.svelte +181 -218
  121. package/dist/Components/Touch/NumberModal.svelte +59 -79
  122. package/dist/Components/Touch/PlusMinusCard.svelte +43 -46
  123. package/dist/Components/Touch/SelectModal.svelte +111 -126
  124. package/dist/Components/Touch/SummaryCard.svelte +80 -93
  125. package/dist/Components/Touch/TextAreaModal.svelte +72 -94
  126. package/dist/Components/Touch/TextModal.svelte +77 -105
  127. package/dist/Components/Touch/TouchCard.svelte +31 -33
  128. package/dist/Components/Touch/TouchModal.svelte +214 -270
  129. package/dist/Components/Touch/UtilityButton.svelte +88 -109
  130. package/dist/Components/VerticalTabGroup.svelte +60 -78
  131. package/dist/Components/VerticalTabGroupButton.svelte +54 -58
  132. package/dist/Helpers/Datamatrix.d.ts +19 -19
  133. package/dist/Helpers/Datamatrix.js +291 -291
  134. package/dist/Types/Examples/ExampleModal.svelte +31 -35
  135. package/dist/index.d.ts +2 -0
  136. package/dist/index.js +1 -0
  137. package/dist/scss/_basics.scss +12 -12
  138. package/dist/scss/_colours.scss +134 -134
  139. package/dist/scss/_mixins.scss +3392 -3392
  140. package/dist/scss/_motion.scss +57 -57
  141. package/dist/scss/_sizing.scss +85 -85
  142. package/dist/scss/_transitions.scss +8 -8
  143. package/package.json +1 -1
@@ -1,211 +1,171 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- module
6
- >
7
- import { devCatch, passthrough } from '../../Helpers/Helpers.svelte.js';
8
- import { ColourSet } from '../../scss/colours.js';
9
- import { InputVariant } from '../../Types/Internal/InputVariant.js';
10
- import { Size } from '../../Types/Internal/Size.js';
11
- import { tick } from 'svelte';
12
- import Action from '../Action.svelte';
13
- import DatePicker from '../DatePicker.svelte';
14
- import TextInput from '../TextInput.svelte';
15
- import type { DateModalProps } from './DateModalProps.js';
16
- import TouchModal from './TouchModal.svelte';
17
- </script>
18
-
19
- <script lang="ts">
20
- let {
21
- header,
22
- value,
23
- cancelEditing,
24
- confirm,
25
- namedMonths = false,
26
- validate,
27
- showScanner = false,
28
- scanValue = $bindable(''),
29
- overrideScanValue = $bindable(''),
30
- confirmScannedValue,
31
- inclusive = false,
32
- explanation,
33
- allowOverride = false,
34
- showTime = false,
35
- }: DateModalProps = $props();
36
-
37
- // Snapshot the incoming `value` into mutable working state. Reset via
38
- // the effect below when the parent hands us a new `value` reference;
39
- let tempValue: Date = $state(new Date());
40
- let overrideValue = $state(new Date());
41
- let isBeingEdited = $state(false);
42
- let inputRef: HTMLInputElement | undefined = $state();
43
- let overrideInputRef: HTMLInputElement | undefined = $state();
44
- const isValid = $derived(validate?.(tempValue) ?? true);
45
-
46
- export function resetIsBeingEdited() {
47
- isBeingEdited = false;
48
- }
49
-
50
- $effect(() => {
51
- // Reset edit state and working value when the caller hands us a new
52
- // `value` reference.
53
- void value;
54
- isBeingEdited = false;
55
- // eslint-disable-next-line svelte/prefer-svelte-reactivity
56
- tempValue = value ?? new Date();
57
- });
58
-
59
- $effect(() => {
60
- void isBeingEdited;
61
- void allowOverride;
62
- tick()
63
- .then(() => {
64
- if (isBeingEdited) {
65
- overrideInputRef?.focus();
66
- } else {
67
- inputRef?.focus();
68
- }
69
- })
70
- .catch(devCatch);
71
- });
72
-
73
- function onsubmit(e?: SubmitEvent) {
74
- e?.preventDefault();
75
-
76
- if (isValid) {
77
- // Confirm without mutating the bound state. If the caller asked for
78
- // an inclusive (end-of-day) reading, hand back a fresh copy with
79
- // 23:59:59 set rather than re-stamping `tempValue` in place.
80
- let outValue = tempValue;
81
- if (inclusive) {
82
- outValue = new Date(tempValue.getTime());
83
- outValue.setHours(23, 59, 59);
84
- }
85
-
86
- confirm(outValue, allowOverride && isBeingEdited ? overrideValue : undefined);
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ module
6
+ >import { devCatch, passthrough } from "../../Helpers/Helpers.svelte.js";
7
+ import { ColourSet } from "../../scss/colours.js";
8
+ import { InputVariant } from "../../Types/Internal/InputVariant.js";
9
+ import { Size } from "../../Types/Internal/Size.js";
10
+ import { tick } from "svelte";
11
+ import Action from "../Action.svelte";
12
+ import DatePicker from "../DatePicker.svelte";
13
+ import TextInput from "../TextInput.svelte";
14
+ import TouchModal from "./TouchModal.svelte";
15
+ </script>
16
+
17
+ <script lang="ts">let { header, value, cancelEditing, confirm, namedMonths = false, validate, showScanner = false, scanValue = $bindable(""), overrideScanValue = $bindable(""), confirmScannedValue, inclusive = false, explanation, allowOverride = false, showTime = false } = $props();
18
+ // Snapshot the incoming `value` into mutable working state. Reset via
19
+ // the effect below when the parent hands us a new `value` reference;
20
+ let tempValue = $state(new Date());
21
+ let overrideValue = $state(new Date());
22
+ let isBeingEdited = $state(false);
23
+ let inputRef = $state();
24
+ let overrideInputRef = $state();
25
+ const isValid = $derived(validate?.(tempValue) ?? true);
26
+ export function resetIsBeingEdited() {
27
+ isBeingEdited = false;
28
+ }
29
+ $effect(() => {
30
+ // Reset edit state and working value when the caller hands us a new
31
+ // `value` reference.
32
+ void value;
33
+ isBeingEdited = false;
34
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
35
+ tempValue = value ?? new Date();
36
+ });
37
+ $effect(() => {
38
+ void isBeingEdited;
39
+ void allowOverride;
40
+ tick().then(() => {
41
+ if (isBeingEdited) {
42
+ overrideInputRef?.focus();
43
+ } else {
44
+ inputRef?.focus();
87
45
  }
88
-
89
- scanValue = '';
46
+ }).catch(devCatch);
47
+ });
48
+ function onsubmit(e) {
49
+ e?.preventDefault();
50
+ if (isValid) {
51
+ // Confirm without mutating the bound state. If the caller asked for
52
+ // an inclusive (end-of-day) reading, hand back a fresh copy with
53
+ // 23:59:59 set rather than re-stamping `tempValue` in place.
54
+ let outValue = tempValue;
55
+ if (inclusive) {
56
+ outValue = new Date(tempValue.getTime());
57
+ outValue.setHours(23, 59, 59);
58
+ }
59
+ confirm(outValue, allowOverride && isBeingEdited ? overrideValue : undefined);
90
60
  }
91
-
92
- function submitOnEnter(e: KeyboardEvent) {
93
- if (e.key === 'Enter') {
94
- e.preventDefault();
95
- e.stopPropagation();
96
-
97
- if (!scanValue || (isBeingEdited && !overrideScanValue)) {
98
- if (
99
- allowOverride &&
100
- isBeingEdited &&
101
- !overrideScanValue &&
102
- document.activeElement != inputRef
103
- ) {
104
- overrideInputRef?.focus();
105
- } else {
106
- inputRef?.focus();
107
- }
108
-
109
- return;
61
+ scanValue = "";
62
+ }
63
+ function submitOnEnter(e) {
64
+ if (e.key === "Enter") {
65
+ e.preventDefault();
66
+ e.stopPropagation();
67
+ if (!scanValue || isBeingEdited && !overrideScanValue) {
68
+ if (allowOverride && isBeingEdited && !overrideScanValue && document.activeElement != inputRef) {
69
+ overrideInputRef?.focus();
70
+ } else {
71
+ inputRef?.focus();
110
72
  }
111
-
112
- confirmScannedValue?.(
113
- scanValue,
114
- allowOverride && isBeingEdited ? overrideScanValue : undefined
115
- );
116
- scanValue = '';
73
+ return;
117
74
  }
75
+ confirmScannedValue?.(scanValue, allowOverride && isBeingEdited ? overrideScanValue : undefined);
76
+ scanValue = "";
118
77
  }
119
- </script>
120
-
121
- <TouchModal
122
- onclose={() => {
123
- cancelEditing();
124
- }}
125
- {header}
126
- {onsubmit}
127
- {explanation}
128
- >
129
- {#if showScanner}
130
- <div class="inputs">
131
- {#if allowOverride}
132
- <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
133
- {@render overrideButton()}
134
- {/if}
135
- {#if isBeingEdited}
136
- <TextInput
137
- bind:inputRef={overrideInputRef}
138
- bind:value={overrideScanValue}
139
- variant={InputVariant.Modal}
140
- labelTop="Scan Barcode to Override"
141
- onkeydown={submitOnEnter}
142
- />
143
- {/if}
144
- <TextInput
145
- bind:inputRef
146
- bind:value={scanValue}
147
- variant={InputVariant.Modal}
148
- labelTop="Scan Barcode"
149
- onkeydown={submitOnEnter}
150
- />
151
- </div>
152
- {:else if allowOverride}
153
- <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
154
- {@render overrideButton()}
155
- {/if}
156
-
157
- <div class="inputs">
158
- {#if allowOverride && isBeingEdited}
159
- <DatePicker
160
- {showTime}
161
- {onsubmit}
162
- {namedMonths}
163
- bind:date={overrideValue}
164
- />
165
- {/if}
166
- <DatePicker
167
- {showTime}
168
- {onsubmit}
169
- {namedMonths}
170
- bind:date={tempValue}
171
- />
172
- </div>
173
-
174
- {#snippet footer()}
175
- <div class="modal-footer">
176
- <button
177
- onkeydown={passthrough}
178
- type="submit"
179
- disabled={!isValid}>Confirm</button
180
- >
181
- <button
182
- onkeydown={passthrough}
183
- type="button"
184
- onclick={() => {
185
- cancelEditing();
186
- }}>Cancel</button
187
- >
188
- </div>
189
- {/snippet}
190
- </TouchModal>
191
-
192
- {#snippet overrideButton()}
193
- <div>
194
- <Action
195
- icon={{ name: 'edit' }}
196
- size={Size.DoubleXLarge}
197
- colourSet={isBeingEdited ? ColourSet.Primary : ColourSet.Secondary}
198
- label={isBeingEdited ? 'Cancel override' : 'Override date'}
199
- onclick={() => {
200
- if (!allowOverride) {
201
- return;
202
- }
203
- isBeingEdited = !isBeingEdited;
204
- }}
205
- />
206
- </div>
207
- {/snippet}
208
-
78
+ }
79
+ </script>
80
+
81
+ <TouchModal
82
+ onclose={() => {
83
+ cancelEditing();
84
+ }}
85
+ {header}
86
+ {onsubmit}
87
+ {explanation}
88
+ >
89
+ {#if showScanner}
90
+ <div class="inputs">
91
+ {#if allowOverride}
92
+ <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
93
+ {@render overrideButton()}
94
+ {/if}
95
+ {#if isBeingEdited}
96
+ <TextInput
97
+ bind:inputRef={overrideInputRef}
98
+ bind:value={overrideScanValue}
99
+ variant={InputVariant.Modal}
100
+ labelTop="Scan Barcode to Override"
101
+ onkeydown={submitOnEnter}
102
+ />
103
+ {/if}
104
+ <TextInput
105
+ bind:inputRef
106
+ bind:value={scanValue}
107
+ variant={InputVariant.Modal}
108
+ labelTop="Scan Barcode"
109
+ onkeydown={submitOnEnter}
110
+ />
111
+ </div>
112
+ {:else if allowOverride}
113
+ <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
114
+ {@render overrideButton()}
115
+ {/if}
116
+
117
+ <div class="inputs">
118
+ {#if allowOverride && isBeingEdited}
119
+ <DatePicker
120
+ {showTime}
121
+ {onsubmit}
122
+ {namedMonths}
123
+ bind:date={overrideValue}
124
+ />
125
+ {/if}
126
+ <DatePicker
127
+ {showTime}
128
+ {onsubmit}
129
+ {namedMonths}
130
+ bind:date={tempValue}
131
+ />
132
+ </div>
133
+
134
+ {#snippet footer()}
135
+ <div class="modal-footer">
136
+ <button
137
+ onkeydown={passthrough}
138
+ type="submit"
139
+ disabled={!isValid}>Confirm</button
140
+ >
141
+ <button
142
+ onkeydown={passthrough}
143
+ type="button"
144
+ onclick={() => {
145
+ cancelEditing();
146
+ }}>Cancel</button
147
+ >
148
+ </div>
149
+ {/snippet}
150
+ </TouchModal>
151
+
152
+ {#snippet overrideButton()}
153
+ <div>
154
+ <Action
155
+ icon={{ name: 'edit' }}
156
+ size={Size.DoubleXLarge}
157
+ colourSet={isBeingEdited ? ColourSet.Primary : ColourSet.Secondary}
158
+ label={isBeingEdited ? 'Cancel override' : 'Override date'}
159
+ onclick={() => {
160
+ if (!allowOverride) {
161
+ return;
162
+ }
163
+ isBeingEdited = !isBeingEdited;
164
+ }}
165
+ />
166
+ </div>
167
+ {/snippet}
168
+
209
169
  <style>.modal-footer {
210
170
  bottom: 0;
211
171
  border-top: solid 1px #cbd4da;
@@ -264,4 +224,4 @@ div.inputs {
264
224
  flex-flow: row nowrap;
265
225
  gap: 1.5rem;
266
226
  justify-content: space-around;
267
- }</style>
227
+ }</style>
@@ -1,61 +1,50 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { passthrough } from '../../Helpers/Helpers.svelte.js';
5
- import { Size } from '../../Types/Internal/Size.js';
6
- import Icon from '../Icon.svelte';
7
- import type { EditCardProps } from './EditCardProps.js';
8
- const {
9
- noborder,
10
- label,
11
- desktop = false,
12
- iconName = 'edit',
13
- disabled = false,
14
- error = false,
15
- onclick,
16
- children,
17
- }: EditCardProps = $props();
18
- </script>
19
-
20
- <button
21
- type="button"
22
- class="card"
23
- class:desktop
24
- class:error
25
- class:noborder
26
- {disabled}
27
- aria-disabled={disabled}
28
- {onclick}
29
- onkeydown={passthrough}
30
- >
31
- <div class="left">
32
- {#if label}
33
- <div class="row">
34
- <span class="card-label label">{label}</span>
35
- {#if desktop}
36
- <span class="card-label border">{label}</span>
37
- {/if}
38
- </div>
39
- {/if}
40
- <div
41
- class="row"
42
- class:labelless={!label}
43
- >
44
- {#if children}
45
- <span class="value">{@render children()}</span>
46
- {/if}
47
- </div>
48
- </div>
49
- <div class="right">
50
- {#if iconName}
51
- <Icon
52
- name={iconName}
53
- size={desktop ? Size.Medium : Size.XLarge}
54
- />
55
- {/if}
56
- </div>
57
- </button>
58
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">import { passthrough } from "../../Helpers/Helpers.svelte.js";
4
+ import { Size } from "../../Types/Internal/Size.js";
5
+ import Icon from "../Icon.svelte";
6
+ const { noborder, label, desktop = false, iconName = "edit", disabled = false, error = false, onclick, children } = $props();
7
+ </script>
8
+
9
+ <button
10
+ type="button"
11
+ class="card"
12
+ class:desktop
13
+ class:error
14
+ class:noborder
15
+ {disabled}
16
+ aria-disabled={disabled}
17
+ {onclick}
18
+ onkeydown={passthrough}
19
+ >
20
+ <div class="left">
21
+ {#if label}
22
+ <div class="row">
23
+ <span class="card-label label">{label}</span>
24
+ {#if desktop}
25
+ <span class="card-label border">{label}</span>
26
+ {/if}
27
+ </div>
28
+ {/if}
29
+ <div
30
+ class="row"
31
+ class:labelless={!label}
32
+ >
33
+ {#if children}
34
+ <span class="value">{@render children()}</span>
35
+ {/if}
36
+ </div>
37
+ </div>
38
+ <div class="right">
39
+ {#if iconName}
40
+ <Icon
41
+ name={iconName}
42
+ size={desktop ? Size.Medium : Size.XLarge}
43
+ />
44
+ {/if}
45
+ </div>
46
+ </button>
47
+
59
48
  <style>.card {
60
49
  color: #3a4952;
61
50
  fill: #3a4952;
@@ -213,4 +202,4 @@
213
202
  }
214
203
  .card .labelless {
215
204
  padding: 0.75rem;
216
- }</style>
205
+ }</style>
@@ -1,33 +1,30 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { Size } from '../../Types/Internal/Size.js';
5
- import Icon from '../Icon.svelte';
6
- import type { InfoCardProps } from './InfoCardProps.js';
7
-
8
- const { noborder, label, iconName, children }: InfoCardProps = $props();
9
- </script>
10
-
11
- <div
12
- class="card"
13
- class:pad-vertical={!label}
14
- class:noborder
15
- >
16
- {#if label}
17
- <span class="card-label">{label}</span>
18
- {/if}
19
-
20
- <span class="value">{@render children()}</span>
21
- {#if iconName}
22
- <div class="icon">
23
- <Icon
24
- name={iconName}
25
- size={Size.Large}
26
- />
27
- </div>
28
- {/if}
29
- </div>
30
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">import { Size } from "../../Types/Internal/Size.js";
4
+ import Icon from "../Icon.svelte";
5
+ const { noborder, label, iconName, children } = $props();
6
+ </script>
7
+
8
+ <div
9
+ class="card"
10
+ class:pad-vertical={!label}
11
+ class:noborder
12
+ >
13
+ {#if label}
14
+ <span class="card-label">{label}</span>
15
+ {/if}
16
+
17
+ <span class="value">{@render children()}</span>
18
+ {#if iconName}
19
+ <div class="icon">
20
+ <Icon
21
+ name={iconName}
22
+ size={Size.Large}
23
+ />
24
+ </div>
25
+ {/if}
26
+ </div>
27
+
31
28
  <style>.card {
32
29
  color: #3a4952;
33
30
  fill: #3a4952;
@@ -77,4 +74,4 @@
77
74
  align-items: center;
78
75
  position: absolute;
79
76
  right: 0.75rem;
80
- }</style>
77
+ }</style>
@@ -1,30 +1,28 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { Colour } from '../../scss/colours.js';
5
- import { Size } from '../../Types/Internal/Size.js';
6
- import Icon from '../Icon.svelte';
7
- import type { InfoTextCardProps } from './InfoTextCardProps.js';
8
- let { label, iconName, children }: InfoTextCardProps = $props();
9
- </script>
10
-
11
- <div
12
- class="card"
13
- class:pad-vertical={!label}
14
- >
15
- {#if iconName}
16
- <div class="icon">
17
- <Icon
18
- name={iconName}
19
- size={Size.Large}
20
- colour={Colour['$brand-primary']}
21
- />
22
- </div>
23
- {/if}
24
-
25
- <span class="value">{@render children()}</span>
26
- </div>
27
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">import { Colour } from "../../scss/colours.js";
4
+ import { Size } from "../../Types/Internal/Size.js";
5
+ import Icon from "../Icon.svelte";
6
+ let { label, iconName, children } = $props();
7
+ </script>
8
+
9
+ <div
10
+ class="card"
11
+ class:pad-vertical={!label}
12
+ >
13
+ {#if iconName}
14
+ <div class="icon">
15
+ <Icon
16
+ name={iconName}
17
+ size={Size.Large}
18
+ colour={Colour['$brand-primary']}
19
+ />
20
+ </div>
21
+ {/if}
22
+
23
+ <span class="value">{@render children()}</span>
24
+ </div>
25
+
28
26
  <style>.card {
29
27
  color: #3a4952;
30
28
  fill: #3a4952;
@@ -50,4 +48,4 @@
50
48
  .card .value {
51
49
  padding: 0 0.25rem;
52
50
  color: #3a4952;
53
- }</style>
51
+ }</style>
@@ -1,19 +1,17 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import type { ModalExplanationProps } from './ModalExplanationProps.js';
5
-
6
- let { width, children, nowrap }: ModalExplanationProps = $props();
7
- </script>
8
-
9
- <p
10
- class:nowrap
11
- style:--width={width}
12
- style:--padding="0"
13
- >
14
- {@render children()}
15
- </p>
16
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">let { width, children, nowrap } = $props();
4
+ export {};
5
+ </script>
6
+
7
+ <p
8
+ class:nowrap
9
+ style:--width={width}
10
+ style:--padding="0"
11
+ >
12
+ {@render children()}
13
+ </p>
14
+
17
15
  <style>p {
18
16
  padding: var(--padding);
19
17
  color: #3a4952;
@@ -21,4 +19,4 @@
21
19
  }
22
20
  p.nowrap {
23
21
  white-space: pre-line;
24
- }</style>
22
+ }</style>