@lavalogic/scoria 0.37.44 → 0.37.46

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 (239) 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/ActionProps.d.ts +2 -6
  6. package/dist/Components/AlertModal.svelte +195 -183
  7. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +702 -702
  8. package/dist/Components/Base/BaseModal.svelte +125 -125
  9. package/dist/Components/Base/ContextWrapper.svelte +72 -72
  10. package/dist/Components/Base/Pagination.svelte +198 -198
  11. package/dist/Components/Base/Snippets.svelte +36 -36
  12. package/dist/Components/BigRadioSet.svelte +38 -38
  13. package/dist/Components/Bubble.svelte +101 -101
  14. package/dist/Components/Button.svelte +209 -209
  15. package/dist/Components/ButtonProps.d.ts +2 -6
  16. package/dist/Components/Checkbox.svelte +86 -86
  17. package/dist/Components/CollapsibleCard.svelte +78 -78
  18. package/dist/Components/Contexts/ContextMenu.svelte +164 -164
  19. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
  20. package/dist/Components/Contexts/ContextMenuOption.svelte +60 -60
  21. package/dist/Components/Contexts/Toast.svelte +86 -83
  22. package/dist/Components/Contexts/Toast.svelte.d.ts +8 -5
  23. package/dist/Components/Contexts/ToastContainer.svelte +65 -65
  24. package/dist/Components/Contexts/Tooltip.svelte +37 -37
  25. package/dist/Components/DataMatrixIcon.svelte +112 -112
  26. package/dist/Components/DataMatrixIconProps.d.ts +3 -13
  27. package/dist/Components/DateInput.svelte +148 -148
  28. package/dist/Components/DatePicker.svelte +300 -300
  29. package/dist/Components/DesktopModal.svelte +90 -90
  30. package/dist/Components/Dial.svelte +204 -204
  31. package/dist/Components/DialProps.d.ts +1 -18
  32. package/dist/Components/DimensionInput.svelte +170 -170
  33. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -119
  34. package/dist/Components/DragMenu/DraggableCard.svelte +77 -77
  35. package/dist/Components/FileCard.svelte +24 -24
  36. package/dist/Components/FileUpload.svelte +236 -236
  37. package/dist/Components/GridInput.svelte +196 -200
  38. package/dist/Components/GridInputSet.svelte +29 -29
  39. package/dist/Components/HorizontalTabGroup.svelte +82 -82
  40. package/dist/Components/HorizontalTabGroupButton.svelte +44 -44
  41. package/dist/Components/Icon.svelte +128 -128
  42. package/dist/Components/IconProps.d.ts +2 -7
  43. package/dist/Components/Icons.js +357 -357
  44. package/dist/Components/LoadingAnimation.svelte +29 -29
  45. package/dist/Components/LoadingModal.svelte +45 -45
  46. package/dist/Components/LoadingOverlay.svelte +25 -25
  47. package/dist/Components/LoadingOverlayProps.d.ts +3 -7
  48. package/dist/Components/Modal.svelte +258 -258
  49. package/dist/Components/ModalProps.d.ts +0 -3
  50. package/dist/Components/MultiSelect.svelte +220 -220
  51. package/dist/Components/MultiSelectCommonProps.d.ts +6 -17
  52. package/dist/Components/Nav/Nav.svelte +110 -99
  53. package/dist/Components/Nav/NavProps.d.ts +4 -11
  54. package/dist/Components/Nav/NavServiceMenuList.svelte +43 -43
  55. package/dist/Components/Nav/NavTab.svelte +62 -62
  56. package/dist/Components/Nav/ServiceMenuItem.svelte +100 -100
  57. package/dist/Components/Nav/ServicesNav.svelte +80 -80
  58. package/dist/Components/NumberInput.svelte +157 -157
  59. package/dist/Components/PageHeading.svelte +25 -25
  60. package/dist/Components/PasswordInput.svelte +88 -88
  61. package/dist/Components/Portal.svelte +36 -36
  62. package/dist/Components/ProgressBubble.svelte +107 -108
  63. package/dist/Components/ProgressBubbleProps.d.ts +3 -3
  64. package/dist/Components/QuerySelect.svelte +366 -366
  65. package/dist/Components/QuerySelectProps.d.ts +4 -14
  66. package/dist/Components/SingleSelect.svelte +250 -250
  67. package/dist/Components/SingleSelectCommonProps.d.ts +3 -19
  68. package/dist/Components/StepButton.svelte +70 -70
  69. package/dist/Components/StepForm.svelte +140 -140
  70. package/dist/Components/Switch.svelte +69 -69
  71. package/dist/Components/Table/ARCHITECTURE.md +298 -0
  72. package/dist/Components/Table/Body/QuickSearchCell.svelte +683 -694
  73. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +51 -51
  74. package/dist/Components/Table/Body/Rows/ColumnList.svelte +59 -59
  75. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +456 -478
  76. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -79
  77. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +185 -188
  78. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +124 -124
  79. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +120 -120
  80. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +230 -230
  81. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +105 -105
  82. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +12 -9
  83. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +5 -5
  84. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -87
  85. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +126 -126
  86. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -159
  87. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +246 -246
  88. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +4 -4
  89. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +216 -216
  90. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +6 -5
  91. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +7 -6
  92. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +252 -257
  93. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +179 -179
  94. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +221 -229
  95. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +11 -11
  96. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +197 -197
  97. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +190 -190
  98. package/dist/Components/Table/Body/Rows/TableRow.svelte +290 -290
  99. package/dist/Components/Table/Body/TableBody.svelte +155 -155
  100. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +2 -3
  101. package/dist/Components/Table/ColumnFactory.svelte.d.ts +9 -11
  102. package/dist/Components/Table/ColumnFactory.svelte.js +110 -143
  103. package/dist/Components/Table/ColumnKindRegistry.d.ts +112 -0
  104. package/dist/Components/Table/ColumnKindRegistry.js +63 -0
  105. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -41
  106. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -30
  107. package/dist/Components/Table/Headers/TableHead.svelte +415 -413
  108. package/dist/Components/Table/Misc/ColumnPanel.svelte +94 -94
  109. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -112
  110. package/dist/Components/Table/Misc/FilterInput.svelte +620 -644
  111. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
  112. package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
  113. package/dist/Components/Table/Misc/FilterPanel.svelte +257 -257
  114. package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -30
  115. package/dist/Components/Table/Misc/SidePanel.svelte +35 -35
  116. package/dist/Components/Table/Misc/TableFooter.svelte +311 -311
  117. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +125 -125
  118. package/dist/Components/Table/Misc/TableSidebar.svelte +157 -157
  119. package/dist/Components/Table/Misc/ToolboxPanel.svelte +100 -100
  120. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -107
  121. package/dist/Components/Table/NestedTable.svelte +130 -133
  122. package/dist/Components/Table/SubApis.svelte.d.ts +1 -5
  123. package/dist/Components/Table/SubApis.svelte.js +33 -32
  124. package/dist/Components/Table/Table.svelte +692 -745
  125. package/dist/Components/Table/TableHelpers.svelte.d.ts +6 -19
  126. package/dist/Components/Table/TableHelpers.svelte.js +6 -14
  127. package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
  128. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +3 -3
  129. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -7
  130. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +7 -8
  131. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +4 -5
  132. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +11 -14
  133. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +3 -4
  134. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +7 -11
  135. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +3 -3
  136. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +13 -18
  137. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +4 -5
  138. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +5 -5
  139. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +2 -2
  140. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +15 -12
  141. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +4 -5
  142. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +8 -12
  143. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +3 -3
  144. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +6 -6
  145. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +3 -3
  146. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +49 -16
  147. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +27 -5
  148. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +7 -7
  149. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +4 -4
  150. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -5
  151. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +2 -2
  152. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +5 -5
  153. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +2 -2
  154. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -5
  155. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +2 -2
  156. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +5 -5
  157. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +2 -2
  158. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +11 -19
  159. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +4 -8
  160. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +6 -7
  161. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +3 -4
  162. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +9 -9
  163. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +4 -4
  164. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +5 -5
  165. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +6 -6
  166. package/dist/Components/Table/Types/Columns/TableCell.d.ts +7 -6
  167. package/dist/Components/Table/Types/Context/ClipboardState.svelte.d.ts +98 -0
  168. package/dist/Components/Table/Types/Context/ClipboardState.svelte.js +290 -0
  169. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +17 -45
  170. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +17 -45
  171. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +9 -20
  172. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +9 -20
  173. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +23 -42
  174. package/dist/Components/Table/Types/Context/FocusState.svelte.js +32 -59
  175. package/dist/Components/Table/Types/Context/ITable.d.ts +5 -8
  176. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +29 -56
  177. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +28 -55
  178. package/dist/Components/Table/Types/Context/QueryValuesState.svelte.d.ts +50 -0
  179. package/dist/Components/Table/Types/Context/QueryValuesState.svelte.js +62 -0
  180. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +17 -28
  181. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +17 -28
  182. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +15 -29
  183. package/dist/Components/Table/Types/Context/SortingState.svelte.js +17 -31
  184. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +212 -325
  185. package/dist/Components/Table/Types/Context/TableContext.svelte.js +292 -706
  186. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +62 -79
  187. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +54 -73
  188. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +16 -27
  189. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +16 -27
  190. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +12 -15
  191. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +15 -30
  192. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +16 -28
  193. package/dist/Components/Table/Types/Header.d.ts +4 -4
  194. package/dist/Components/Table/Types/HeaderGroup.d.ts +5 -5
  195. package/dist/Components/Table/Types/Public/index.d.ts +2 -4
  196. package/dist/Components/Table/Types/Public/index.js +2 -4
  197. package/dist/Components/Table/clipboardEscape.d.ts +32 -0
  198. package/dist/Components/Table/clipboardEscape.js +45 -0
  199. package/dist/Components/Table/createTable.svelte.d.ts +8 -18
  200. package/dist/Components/Table/createTable.svelte.js +19 -47
  201. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  202. package/dist/Components/TextArea.svelte +130 -130
  203. package/dist/Components/TextInput.svelte +176 -176
  204. package/dist/Components/ThreeStateRadio.svelte +131 -131
  205. package/dist/Components/Touch/BoolCard.svelte +45 -45
  206. package/dist/Components/Touch/DateModal.svelte +209 -209
  207. package/dist/Components/Touch/EditCard.svelte +59 -59
  208. package/dist/Components/Touch/InfoCard.svelte +31 -31
  209. package/dist/Components/Touch/InfoTextCard.svelte +28 -28
  210. package/dist/Components/Touch/ModalExplanation.svelte +17 -17
  211. package/dist/Components/Touch/NumberKeyboard.svelte +225 -225
  212. package/dist/Components/Touch/NumberModal.svelte +79 -79
  213. package/dist/Components/Touch/PlusMinusCard.svelte +46 -46
  214. package/dist/Components/Touch/SelectModal.svelte +123 -123
  215. package/dist/Components/Touch/SummaryCard.svelte +93 -93
  216. package/dist/Components/Touch/TextAreaModal.svelte +95 -95
  217. package/dist/Components/Touch/TextModal.svelte +106 -106
  218. package/dist/Components/Touch/TouchCard.svelte +33 -33
  219. package/dist/Components/Touch/TouchModal.svelte +274 -274
  220. package/dist/Components/Touch/UtilityButton.svelte +109 -109
  221. package/dist/Components/VerticalTabGroup.svelte +79 -79
  222. package/dist/Components/VerticalTabGroupButton.svelte +58 -58
  223. package/dist/Contexts/ToastContext.svelte.js +3 -4
  224. package/dist/Helpers/Datamatrix.d.ts +19 -19
  225. package/dist/Helpers/Datamatrix.js +291 -291
  226. package/dist/Helpers/Helpers.svelte.d.ts +47 -4
  227. package/dist/Helpers/Helpers.svelte.js +97 -4
  228. package/dist/Helpers/dropdownPortal.d.ts +26 -41
  229. package/dist/Helpers/dropdownPortal.js +62 -116
  230. package/dist/Types/Examples/ExampleModal.svelte +35 -35
  231. package/dist/index.d.ts +1 -2
  232. package/dist/index.js +1 -1
  233. package/dist/scss/_basics.scss +12 -12
  234. package/dist/scss/_colours.scss +134 -134
  235. package/dist/scss/_mixins.scss +3358 -3360
  236. package/dist/scss/_motion.scss +57 -57
  237. package/dist/scss/_sizing.scss +85 -85
  238. package/dist/scss/_transitions.scss +8 -8
  239. package/package.json +8 -6
@@ -1,133 +1,133 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- module
6
- >
7
- import { Colour, ColourSet } from '../scss/colours.js';
8
- import { Ternary } from '../Types/Internal/Ternary.js';
9
- import Action from './Action.svelte';
10
- import type { ThreeStateRadioProps } from './ThreeStateRadioProps.js';
11
- </script>
12
-
13
- <script lang="ts">
14
- let {
15
- value = $bindable(Ternary.Neutral),
16
- label,
17
- disabled,
18
- isValid,
19
- onchange,
20
- noDisabled = false,
21
- yesDisabled = false,
22
- neutralDisabled = false,
23
- noLabel,
24
- yesLabel,
25
- neutralLabel,
26
- noIcon,
27
- yesIcon,
28
- neutralIcon,
29
- }: ThreeStateRadioProps = $props();
30
-
31
- function setValue(next: Ternary): void {
32
- if (next === value) {
33
- return;
34
- }
35
- value = next;
36
- void onchange?.(next);
37
- }
38
- </script>
39
-
40
- <div
41
- class="text-label"
42
- class:invalid={isValid === false}
43
- >
44
- {#if label != undefined}
45
- <span>{label}</span>
46
- {/if}
47
-
48
- <div
49
- class="radios"
50
- role="radiogroup"
51
- aria-label={label}
52
- >
53
- <label>
54
- <Action
55
- disabled={disabled || noDisabled}
56
- colourSet={value === Ternary.False ? ColourSet.Primary : ColourSet.Auxiliary}
57
- icon={{
58
- name: 'circle-cross',
59
- ...noIcon,
60
- colour: value === Ternary.False ? undefined : Colour['$ui-blue-5'],
61
- }}
62
- label={noLabel ?? 'No'}
63
- onclick={() => {
64
- setValue(Ternary.False);
65
- }}
66
- />
67
- <input
68
- disabled={disabled || noDisabled}
69
- type="radio"
70
- value="0"
71
- checked={value === Ternary.False}
72
- aria-label={noLabel ?? 'No'}
73
- onchange={() => {
74
- setValue(Ternary.False);
75
- }}
76
- />
77
- </label>
78
- <label>
79
- <Action
80
- disabled={disabled || neutralDisabled}
81
- colourSet={value === Ternary.Neutral ? ColourSet.Primary : ColourSet.Auxiliary}
82
- icon={{
83
- name: 'database',
84
- ...neutralIcon,
85
- colour: value === Ternary.Neutral ? undefined : Colour['$ui-blue-5'],
86
- }}
87
- label={neutralLabel ?? 'Allow system to decide'}
88
- onclick={() => {
89
- setValue(Ternary.Neutral);
90
- }}
91
- />
92
- <input
93
- disabled={disabled || neutralDisabled}
94
- type="radio"
95
- value="-1"
96
- checked={value === Ternary.Neutral}
97
- aria-label={neutralLabel ?? 'Allow system to decide'}
98
- onchange={() => {
99
- setValue(Ternary.Neutral);
100
- }}
101
- />
102
- </label>
103
- <label>
104
- <Action
105
- disabled={disabled || yesDisabled}
106
- colourSet={value === Ternary.True ? ColourSet.Primary : ColourSet.Auxiliary}
107
- icon={{
108
- name: 'circle-tick',
109
- ...yesIcon,
110
- colour: value === Ternary.True ? undefined : Colour['$ui-blue-5'],
111
- }}
112
- label={yesLabel ?? 'Yes'}
113
- onclick={() => {
114
- setValue(Ternary.True);
115
- }}
116
- />
117
- <input
118
- disabled={disabled || yesDisabled}
119
- type="radio"
120
- value="1"
121
- checked={value === Ternary.True}
122
- aria-label={yesLabel ?? 'Yes'}
123
- onchange={() => {
124
- setValue(Ternary.True);
125
- }}
126
- />
127
- </label>
128
- </div>
129
- </div>
130
-
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ module
6
+ >
7
+ import { Colour, ColourSet } from '../scss/colours.js';
8
+ import { Ternary } from '../Types/Internal/Ternary.js';
9
+ import Action from './Action.svelte';
10
+ import type { ThreeStateRadioProps } from './ThreeStateRadioProps.js';
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ let {
15
+ value = $bindable(Ternary.Neutral),
16
+ label,
17
+ disabled,
18
+ isValid,
19
+ onchange,
20
+ noDisabled = false,
21
+ yesDisabled = false,
22
+ neutralDisabled = false,
23
+ noLabel,
24
+ yesLabel,
25
+ neutralLabel,
26
+ noIcon,
27
+ yesIcon,
28
+ neutralIcon,
29
+ }: ThreeStateRadioProps = $props();
30
+
31
+ function setValue(next: Ternary): void {
32
+ if (next === value) {
33
+ return;
34
+ }
35
+ value = next;
36
+ void onchange?.(next);
37
+ }
38
+ </script>
39
+
40
+ <div
41
+ class="text-label"
42
+ class:invalid={isValid === false}
43
+ >
44
+ {#if label != undefined}
45
+ <span>{label}</span>
46
+ {/if}
47
+
48
+ <div
49
+ class="radios"
50
+ role="radiogroup"
51
+ aria-label={label}
52
+ >
53
+ <label>
54
+ <Action
55
+ disabled={disabled || noDisabled}
56
+ colourSet={value === Ternary.False ? ColourSet.Primary : ColourSet.Auxiliary}
57
+ icon={{
58
+ name: 'circle-cross',
59
+ ...noIcon,
60
+ colour: value === Ternary.False ? undefined : Colour['$ui-blue-5'],
61
+ }}
62
+ label={noLabel ?? 'No'}
63
+ onclick={() => {
64
+ setValue(Ternary.False);
65
+ }}
66
+ />
67
+ <input
68
+ disabled={disabled || noDisabled}
69
+ type="radio"
70
+ value="0"
71
+ checked={value === Ternary.False}
72
+ aria-label={noLabel ?? 'No'}
73
+ onchange={() => {
74
+ setValue(Ternary.False);
75
+ }}
76
+ />
77
+ </label>
78
+ <label>
79
+ <Action
80
+ disabled={disabled || neutralDisabled}
81
+ colourSet={value === Ternary.Neutral ? ColourSet.Primary : ColourSet.Auxiliary}
82
+ icon={{
83
+ name: 'database',
84
+ ...neutralIcon,
85
+ colour: value === Ternary.Neutral ? undefined : Colour['$ui-blue-5'],
86
+ }}
87
+ label={neutralLabel ?? 'Allow system to decide'}
88
+ onclick={() => {
89
+ setValue(Ternary.Neutral);
90
+ }}
91
+ />
92
+ <input
93
+ disabled={disabled || neutralDisabled}
94
+ type="radio"
95
+ value="-1"
96
+ checked={value === Ternary.Neutral}
97
+ aria-label={neutralLabel ?? 'Allow system to decide'}
98
+ onchange={() => {
99
+ setValue(Ternary.Neutral);
100
+ }}
101
+ />
102
+ </label>
103
+ <label>
104
+ <Action
105
+ disabled={disabled || yesDisabled}
106
+ colourSet={value === Ternary.True ? ColourSet.Primary : ColourSet.Auxiliary}
107
+ icon={{
108
+ name: 'circle-tick',
109
+ ...yesIcon,
110
+ colour: value === Ternary.True ? undefined : Colour['$ui-blue-5'],
111
+ }}
112
+ label={yesLabel ?? 'Yes'}
113
+ onclick={() => {
114
+ setValue(Ternary.True);
115
+ }}
116
+ />
117
+ <input
118
+ disabled={disabled || yesDisabled}
119
+ type="radio"
120
+ value="1"
121
+ checked={value === Ternary.True}
122
+ aria-label={yesLabel ?? 'Yes'}
123
+ onchange={() => {
124
+ setValue(Ternary.True);
125
+ }}
126
+ />
127
+ </label>
128
+ </div>
129
+ </div>
130
+
131
131
  <style>.text-label {
132
132
  box-sizing: border-box;
133
133
  height: max(var(--input-height, 3rem), 2rem);
@@ -198,4 +198,4 @@ input {
198
198
  clip-path: rect(0 0 0 0);
199
199
  white-space: nowrap;
200
200
  border: 0;
201
- }</style>
201
+ }</style>
@@ -1,47 +1,47 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { passthrough } from '../../Helpers/Helpers.svelte.js';
5
- import { Colour } from '../../scss/colours.js';
6
- import { Size } from '../../Types/Internal/Size.js';
7
- import Icon from '../Icon.svelte';
8
- import type { BoolCardProps } from './BoolCardProps.js';
9
- import type { IconProps } from '../IconProps.js';
10
-
11
- let {
12
- value = $bindable(false),
13
- disabled,
14
- onclick,
15
- children,
16
- nowidth,
17
- size = Size.Medium,
18
- }: BoolCardProps = $props();
19
-
20
- const iconName = $derived(value ? 'circle-tick' : ('circle' as IconProps['name']));
21
- </script>
22
-
23
- <button
24
- class:small={size == Size.Small}
25
- onkeydown={passthrough}
26
- disabled={disabled || undefined}
27
- aria-pressed={value}
28
- class:nowidth
29
- type="button"
30
- class="card"
31
- class:ticked={value}
32
- {onclick}
33
- >
34
- {#if children}
35
- <span
36
- class="value"
37
- class:small={size == Size.Small}>{@render children()}</span
38
- >{/if}<Icon
39
- name={iconName}
40
- size={Size.DoubleXLarge}
41
- colour={value ? Colour['$ui-white'] : undefined}
42
- />
43
- </button>
44
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">
4
+ import { passthrough } from '../../Helpers/Helpers.svelte.js';
5
+ import { Colour } from '../../scss/colours.js';
6
+ import { Size } from '../../Types/Internal/Size.js';
7
+ import Icon from '../Icon.svelte';
8
+ import type { BoolCardProps } from './BoolCardProps.js';
9
+ import type { IconProps } from '../IconProps.js';
10
+
11
+ let {
12
+ value = $bindable(false),
13
+ disabled,
14
+ onclick,
15
+ children,
16
+ nowidth,
17
+ size = Size.Medium,
18
+ }: BoolCardProps = $props();
19
+
20
+ const iconName = $derived(value ? 'circle-tick' : ('circle' as IconProps['name']));
21
+ </script>
22
+
23
+ <button
24
+ class:small={size == Size.Small}
25
+ onkeydown={passthrough}
26
+ disabled={disabled || undefined}
27
+ aria-pressed={value}
28
+ class:nowidth
29
+ type="button"
30
+ class="card"
31
+ class:ticked={value}
32
+ {onclick}
33
+ >
34
+ {#if children}
35
+ <span
36
+ class="value"
37
+ class:small={size == Size.Small}>{@render children()}</span
38
+ >{/if}<Icon
39
+ name={iconName}
40
+ size={Size.DoubleXLarge}
41
+ colour={value ? Colour['$ui-white'] : undefined}
42
+ />
43
+ </button>
44
+
45
45
  <style>button.card {
46
46
  color: #3a4952;
47
47
  fill: #3a4952;
@@ -171,4 +171,4 @@ button.card .value.small {
171
171
  font-size: 1.1875rem;
172
172
  font-weight: 600;
173
173
  padding: 0;
174
- }</style>
174
+ }</style>