@lavalogic/scoria 0.40.32 → 0.40.33

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 (135) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +28 -28
  3. package/dist/Components/AccordionGroupButton.svelte +60 -60
  4. package/dist/Components/Action.svelte +48 -48
  5. package/dist/Components/AlertModal.svelte +102 -102
  6. package/dist/Components/Base/ContextWrapper.svelte +45 -45
  7. package/dist/Components/Base/Pagination.svelte +135 -135
  8. package/dist/Components/Base/Snippets.svelte +25 -25
  9. package/dist/Components/BigRadioSet.svelte +34 -34
  10. package/dist/Components/Bubble.svelte +38 -38
  11. package/dist/Components/Button.svelte +83 -83
  12. package/dist/Components/Checkbox.svelte +71 -71
  13. package/dist/Components/CollapsibleCard.svelte +59 -59
  14. package/dist/Components/CollapsibleMenuGroup.svelte +43 -43
  15. package/dist/Components/ConditionBuilder/ConditionBuilder.svelte +101 -101
  16. package/dist/Components/Contexts/ContextMenu.svelte +76 -76
  17. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
  18. package/dist/Components/Contexts/ContextMenuOption.svelte +38 -38
  19. package/dist/Components/Contexts/Toast.svelte +71 -71
  20. package/dist/Components/Contexts/ToastContainer.svelte +34 -34
  21. package/dist/Components/Contexts/Tooltip.svelte +32 -32
  22. package/dist/Components/DataMatrixIcon.svelte +37 -37
  23. package/dist/Components/DateInput.svelte +80 -80
  24. package/dist/Components/DatePicker.svelte +86 -86
  25. package/dist/Components/DesktopModal.svelte +65 -65
  26. package/dist/Components/Dial.svelte +35 -35
  27. package/dist/Components/DimensionInput.svelte +95 -95
  28. package/dist/Components/DragMenu/DragMenuHolder.svelte +53 -53
  29. package/dist/Components/DragMenu/DraggableCard.svelte +49 -49
  30. package/dist/Components/FileCard.svelte +18 -18
  31. package/dist/Components/FileUpload.svelte +115 -115
  32. package/dist/Components/GridInput.svelte +123 -123
  33. package/dist/Components/GridInputSet.svelte +21 -21
  34. package/dist/Components/HorizontalTabGroup.svelte +54 -54
  35. package/dist/Components/HorizontalTabGroupButton.svelte +32 -32
  36. package/dist/Components/Icon.svelte +68 -68
  37. package/dist/Components/InfoAlert.svelte +32 -32
  38. package/dist/Components/LoadingAnimation.svelte +228 -227
  39. package/dist/Components/LoadingModal.svelte +19 -19
  40. package/dist/Components/LoadingOverlay.svelte +20 -20
  41. package/dist/Components/Modal.svelte +127 -127
  42. package/dist/Components/MultiSelect.svelte +126 -126
  43. package/dist/Components/Nav/Nav.svelte +71 -71
  44. package/dist/Components/Nav/NavServiceMenuList.svelte +37 -37
  45. package/dist/Components/Nav/NavTab.svelte +46 -46
  46. package/dist/Components/Nav/ServiceMenuItem.svelte +62 -62
  47. package/dist/Components/Nav/ServicesNav.svelte +50 -50
  48. package/dist/Components/NumberInput.svelte +98 -98
  49. package/dist/Components/OptionCards.svelte +58 -58
  50. package/dist/Components/PageHeading.svelte +21 -21
  51. package/dist/Components/PasswordInput.svelte +61 -61
  52. package/dist/Components/PopoverButton.svelte +53 -53
  53. package/dist/Components/Portal.svelte +7 -7
  54. package/dist/Components/ProgressBubble.svelte +42 -42
  55. package/dist/Components/QuerySelect.svelte +102 -102
  56. package/dist/Components/ResourceCalendar/ResourceCalendar.svelte +241 -241
  57. package/dist/Components/SidebarPanel.svelte +32 -32
  58. package/dist/Components/SingleSelect.svelte +122 -122
  59. package/dist/Components/StepButton.svelte +48 -48
  60. package/dist/Components/StepForm.svelte +58 -58
  61. package/dist/Components/Switch.svelte +43 -43
  62. package/dist/Components/Table/ARCHITECTURE.md +298 -298
  63. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +30 -30
  64. package/dist/Components/Table/Body/Rows/ColumnList.svelte +24 -24
  65. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +165 -165
  66. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +13 -13
  67. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +120 -120
  68. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +81 -81
  69. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +92 -92
  70. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +110 -110
  71. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +54 -54
  72. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +35 -35
  73. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +64 -64
  74. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +82 -82
  75. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +88 -88
  76. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +90 -90
  77. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +96 -96
  78. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +71 -71
  79. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +124 -124
  80. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +91 -91
  81. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +88 -88
  82. package/dist/Components/Table/Body/Rows/TableRow.svelte +127 -127
  83. package/dist/Components/Table/Body/TableBody.svelte +92 -92
  84. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +25 -25
  85. package/dist/Components/Table/Headers/SelectAllHeader.svelte +20 -20
  86. package/dist/Components/Table/Headers/TableHead.svelte +175 -175
  87. package/dist/Components/Table/Misc/ColumnPanel.svelte +32 -32
  88. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +29 -29
  89. package/dist/Components/Table/Misc/FilterInput.svelte +326 -326
  90. package/dist/Components/Table/Misc/FilterPanel.svelte +79 -79
  91. package/dist/Components/Table/Misc/FilterPanelModal.svelte +21 -21
  92. package/dist/Components/Table/Misc/ShareViewModal.svelte +118 -118
  93. package/dist/Components/Table/Misc/SidePanel.svelte +24 -24
  94. package/dist/Components/Table/Misc/TableConfigurationModal.svelte +318 -318
  95. package/dist/Components/Table/Misc/TableFooter.svelte +201 -201
  96. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +112 -112
  97. package/dist/Components/Table/Misc/TableSidebar.svelte +116 -116
  98. package/dist/Components/Table/Misc/TableViewDropdown.svelte +25 -25
  99. package/dist/Components/Table/Misc/ToolboxPanel.svelte +60 -60
  100. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +63 -63
  101. package/dist/Components/Table/Misc/UpdateViewOptionsModal.svelte +101 -101
  102. package/dist/Components/Table/NestedTable.svelte +29 -29
  103. package/dist/Components/Table/Table.svelte +140 -140
  104. package/dist/Components/Test/TestContextConsumer.svelte +8 -8
  105. package/dist/Components/TextArea.svelte +92 -90
  106. package/dist/Components/TextInput.svelte +128 -117
  107. package/dist/Components/ThreeStateRadio.svelte +101 -101
  108. package/dist/Components/Touch/BoolCard.svelte +27 -27
  109. package/dist/Components/Touch/DateModal.svelte +98 -98
  110. package/dist/Components/Touch/EditCard.svelte +44 -44
  111. package/dist/Components/Touch/InfoCard.svelte +25 -25
  112. package/dist/Components/Touch/InfoTextCard.svelte +22 -22
  113. package/dist/Components/Touch/ModalExplanation.svelte +13 -13
  114. package/dist/Components/Touch/NumberKeyboard.svelte +81 -81
  115. package/dist/Components/Touch/NumberModal.svelte +49 -49
  116. package/dist/Components/Touch/PlusMinusCard.svelte +40 -40
  117. package/dist/Components/Touch/SelectModal.svelte +86 -86
  118. package/dist/Components/Touch/SummaryCard.svelte +74 -74
  119. package/dist/Components/Touch/TextAreaModal.svelte +53 -53
  120. package/dist/Components/Touch/TextModal.svelte +56 -56
  121. package/dist/Components/Touch/TouchCard.svelte +28 -28
  122. package/dist/Components/Touch/TouchModal.svelte +141 -141
  123. package/dist/Components/Touch/UtilityButton.svelte +63 -63
  124. package/dist/Components/VerticalTabGroup.svelte +38 -38
  125. package/dist/Components/VerticalTabGroupButton.svelte +46 -46
  126. package/dist/Helpers/Datamatrix.d.ts +19 -19
  127. package/dist/Helpers/Datamatrix.js +291 -291
  128. package/dist/Types/Examples/ExampleModal.svelte +27 -27
  129. package/dist/paraglide/README.md +1 -1
  130. package/dist/scss/_basics.scss +12 -12
  131. package/dist/scss/_colours.scss +140 -140
  132. package/dist/scss/_motion.scss +57 -57
  133. package/dist/scss/_sizing.scss +85 -85
  134. package/dist/scss/_transitions.scss +8 -8
  135. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- <svelte:options runes />
2
-
1
+ <svelte:options runes />
2
+
3
3
  <script lang="ts">import { useAsyncFlag } from "../Helpers/AsyncFlag.svelte.js";
4
4
  import { getCanvasContext } from "../Helpers/Helpers.svelte.js";
5
5
  const { value, colours } = $props();
@@ -50,45 +50,45 @@ const awaitedColours = $derived(awaitedColoursFlag.value);
50
50
  // note) so interpolation into `style="..."` is safe.
51
51
  const wrapperStyle = $derived(awaitedColours ? `--bar-background-colour: ${awaitedColours.backgroundColour}; --text-colour: ${awaitedColours.colour};` : "");
52
52
  const barStyle = $derived(`width: ${percent}%;`);
53
- </script>
54
-
55
- <div
56
- class="progress-wrapper"
57
- style={wrapperStyle}
58
- >
59
- <!--
60
- Native `<progress>` is kept as a fallback for assistive tech that
61
- ignores ARIA progressbar roles. Visually hidden rather than
62
- `display: none` so the element stays in the accessibility tree.
63
- -->
64
- <progress
65
- class="visually-hidden"
66
- value={current}
67
- max={total}>{progress}</progress
68
- >
69
-
70
- <div
71
- class="progress-background"
72
- role="progressbar"
73
- aria-valuenow={current}
74
- aria-valuemin={0}
75
- aria-valuemax={total}
76
- aria-valuetext={progress}
77
- >
78
- <div
79
- class:fits={fitsInProgressBar}
80
- class="progress-value"
81
- bind:this={progressBarRef}
82
- style={barStyle}
83
- >
84
- <span
85
- class:fits={fitsInProgressBar}
86
- class="progress-text">{progress}</span
87
- >
88
- </div>
89
- </div>
90
- </div>
91
-
53
+ </script>
54
+
55
+ <div
56
+ class="progress-wrapper"
57
+ style={wrapperStyle}
58
+ >
59
+ <!--
60
+ Native `<progress>` is kept as a fallback for assistive tech that
61
+ ignores ARIA progressbar roles. Visually hidden rather than
62
+ `display: none` so the element stays in the accessibility tree.
63
+ -->
64
+ <progress
65
+ class="visually-hidden"
66
+ value={current}
67
+ max={total}>{progress}</progress
68
+ >
69
+
70
+ <div
71
+ class="progress-background"
72
+ role="progressbar"
73
+ aria-valuenow={current}
74
+ aria-valuemin={0}
75
+ aria-valuemax={total}
76
+ aria-valuetext={progress}
77
+ >
78
+ <div
79
+ class:fits={fitsInProgressBar}
80
+ class="progress-value"
81
+ bind:this={progressBarRef}
82
+ style={barStyle}
83
+ >
84
+ <span
85
+ class:fits={fitsInProgressBar}
86
+ class="progress-text">{progress}</span
87
+ >
88
+ </div>
89
+ </div>
90
+ </div>
91
+
92
92
  <style>.progress-wrapper {
93
93
  width: 100%;
94
94
  height: 100%;
@@ -157,4 +157,4 @@ const barStyle = $derived(`width: ${percent}%;`);
157
157
  }
158
158
  .progress-text.fits {
159
159
  color: var(--text-colour, #3a4952);
160
- }</style>
160
+ }</style>
@@ -1,8 +1,8 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="V extends object, VP extends ValueProp<V>"
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="V extends object, VP extends ValueProp<V>"
6
6
  >import { m as i18n } from "../paraglide/messages.js";
7
7
  import { ToastContext } from "../Contexts/ToastContext.svelte.js";
8
8
  import { dev } from "$app/environment";
@@ -186,102 +186,102 @@ function onChange(newValue) {
186
186
  // translator owns the whole phrase and can drop or decline it per locale.
187
187
  const fallbackPlaceholder = $derived(name ? vowels.has(name.at(0)?.toLocaleLowerCase() ?? "") ? i18n["scoria.label.select_an_named"]({ name }) : i18n["scoria.label.select_a_named"]({ name }) : i18n["scoria.label.please_select"]());
188
188
  let isExpanded = $state(false);
189
- </script>
190
-
191
- <div
192
- class="select-wrapper"
193
- class:invalid={isInvalid}
194
- style={`${width ? `--input-width: ${width};` : ''}${height ? `--input-height: ${height};` : ''}`}
195
- >
196
- {#if label}
197
- <label for={inputId}>
198
- <span
199
- >{label}{#if !required}&nbsp;- <i>{i18n['scoria.label.optional']()}</i>{/if}</span
200
- >
201
- <span class="border"
202
- >{label}{#if !required}&nbsp;- <i>{i18n['scoria.label.optional']()}</i>{/if}</span
203
- >
204
- </label>
205
- {/if}
206
- <!-- strict mode is used to stop svelecte from rejecting perfectly valid values -->
207
- <Svelecte
208
- strictMode={false}
209
- keepCreated
210
- onFocus={(e: HTMLInputElement) => {
211
- registerInputListeners(e);
212
- forceShowDropdown(e);
213
- onfocus?.(e);
214
- }}
215
- placeholder={placeholder ?? fallbackPlaceholder}
216
- bind:this={ref}
217
- {inputId}
218
- {disabled}
219
- valueField={valueProp}
220
- labelField={labelProp}
221
- virtualList={false}
222
- searchable
223
- searchProps={{ keepSelectionInList: true }}
224
- lazyDropdown
225
- {valueAsObject}
226
- {options}
227
- value={selectedValue as Array<unknown>}
228
- {onChange}
229
- selectOnTab
230
- deselectMode={required && !clearable ? 'none' : 'toggle'}
231
- keepSelectionInList
232
- {name}
233
- selection={selection as (selectedOptions: Array<object>) => ReturnType<Snippet>}
234
- {append}
235
- >
236
- {#snippet toggleIcon()}
237
- <div class="nothing"></div>
238
- {/snippet}
239
- </Svelecte>
240
-
241
- {#snippet append()}
242
- <div class="icons">
243
- {#if clearable && selectedValue}
244
- <Action
245
- {disabled}
246
- noTabIndex
247
- colourSet={ColourSet.Auxiliary}
248
- size={Size.Small}
249
- onclick={(e: MouseEvent) => {
250
- if (isExpanded) {
251
- e.stopPropagation();
252
- }
253
-
254
- onChange(null);
255
- }}
256
- icon={{
257
- name: 'close-menu-cross',
258
- colour: Colour['$ui-blue-9'],
259
- }}
260
- />
261
- {/if}
262
-
263
- <Action
264
- {disabled}
265
- noTabIndex
266
- colourSet={ColourSet.Auxiliary}
267
- size={Size.Small}
268
- icon={{
269
- name: isExpanded ? 'chevron-up' : 'chevron-down',
270
- colour: Colour['$ui-blue-9'],
271
- }}
272
- />
273
- </div>
274
- {/snippet}
275
-
276
- {#snippet selection(selectedOptions: Array<V>)}
277
- {#if selectedOptions.length == 0}
278
- <span class="selection">{placeholder ?? fallbackPlaceholder}</span>
279
- {:else}
280
- <span class="selection">{selectedOptions[0][labelProp]}</span>
281
- {/if}
282
- {/snippet}
283
- </div>
284
-
189
+ </script>
190
+
191
+ <div
192
+ class="select-wrapper"
193
+ class:invalid={isInvalid}
194
+ style={`${width ? `--input-width: ${width};` : ''}${height ? `--input-height: ${height};` : ''}`}
195
+ >
196
+ {#if label}
197
+ <label for={inputId}>
198
+ <span
199
+ >{label}{#if !required}&nbsp;- <i>{i18n['scoria.label.optional']()}</i>{/if}</span
200
+ >
201
+ <span class="border"
202
+ >{label}{#if !required}&nbsp;- <i>{i18n['scoria.label.optional']()}</i>{/if}</span
203
+ >
204
+ </label>
205
+ {/if}
206
+ <!-- strict mode is used to stop svelecte from rejecting perfectly valid values -->
207
+ <Svelecte
208
+ strictMode={false}
209
+ keepCreated
210
+ onFocus={(e: HTMLInputElement) => {
211
+ registerInputListeners(e);
212
+ forceShowDropdown(e);
213
+ onfocus?.(e);
214
+ }}
215
+ placeholder={placeholder ?? fallbackPlaceholder}
216
+ bind:this={ref}
217
+ {inputId}
218
+ {disabled}
219
+ valueField={valueProp}
220
+ labelField={labelProp}
221
+ virtualList={false}
222
+ searchable
223
+ searchProps={{ keepSelectionInList: true }}
224
+ lazyDropdown
225
+ {valueAsObject}
226
+ {options}
227
+ value={selectedValue as Array<unknown>}
228
+ {onChange}
229
+ selectOnTab
230
+ deselectMode={required && !clearable ? 'none' : 'toggle'}
231
+ keepSelectionInList
232
+ {name}
233
+ selection={selection as (selectedOptions: Array<object>) => ReturnType<Snippet>}
234
+ {append}
235
+ >
236
+ {#snippet toggleIcon()}
237
+ <div class="nothing"></div>
238
+ {/snippet}
239
+ </Svelecte>
240
+
241
+ {#snippet append()}
242
+ <div class="icons">
243
+ {#if clearable && selectedValue}
244
+ <Action
245
+ {disabled}
246
+ noTabIndex
247
+ colourSet={ColourSet.Auxiliary}
248
+ size={Size.Small}
249
+ onclick={(e: MouseEvent) => {
250
+ if (isExpanded) {
251
+ e.stopPropagation();
252
+ }
253
+
254
+ onChange(null);
255
+ }}
256
+ icon={{
257
+ name: 'close-menu-cross',
258
+ colour: Colour['$ui-blue-9'],
259
+ }}
260
+ />
261
+ {/if}
262
+
263
+ <Action
264
+ {disabled}
265
+ noTabIndex
266
+ colourSet={ColourSet.Auxiliary}
267
+ size={Size.Small}
268
+ icon={{
269
+ name: isExpanded ? 'chevron-up' : 'chevron-down',
270
+ colour: Colour['$ui-blue-9'],
271
+ }}
272
+ />
273
+ </div>
274
+ {/snippet}
275
+
276
+ {#snippet selection(selectedOptions: Array<V>)}
277
+ {#if selectedOptions.length == 0}
278
+ <span class="selection">{placeholder ?? fallbackPlaceholder}</span>
279
+ {:else}
280
+ <span class="selection">{selectedOptions[0][labelProp]}</span>
281
+ {/if}
282
+ {/snippet}
283
+ </div>
284
+
285
285
  <style>.select-wrapper {
286
286
  min-width: var(--input-min-width, 12rem);
287
287
  width: var(--input-width, 100%);
@@ -456,4 +456,4 @@ div.icons {
456
456
  }
457
457
  :global(.dropdown-item) .toggle-icon.yes {
458
458
  opacity: 1;
459
- }</style>
459
+ }</style>