@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,8 +1,8 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- module
5
- lang="ts"
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ module
5
+ lang="ts"
6
6
  >import Icon from "../../Icon.svelte";
7
7
  import { m as i18n } from "../../../paraglide/messages.js";
8
8
  import { TooltipContext } from "../../../Contexts/TooltipContext.svelte.js";
@@ -50,11 +50,11 @@ function debouncedSortToggle(columnRef, handler) {
50
50
  }
51
51
  }, SORT_DEBOUNCE_MS);
52
52
  }
53
- </script>
54
-
55
- <script
56
- lang="ts"
57
- generics="T extends object, IdType extends Primitive"
53
+ </script>
54
+
55
+ <script
56
+ lang="ts"
57
+ generics="T extends object, IdType extends Primitive"
58
58
  >const { oncontextmenu } = $props();
59
59
  const tableContext = getContext(TableContext.identifier);
60
60
  const tooltipContext = getContext(TooltipContext.identifier);
@@ -195,170 +195,170 @@ function setDragTarget(def) {
195
195
  tableContext.dragTarget = def;
196
196
  }
197
197
  const currentDropTargetId = $derived(currentDropTarget?.closest("[role=\"columnheader\"]")?.id);
198
- </script>
199
-
200
- <div
201
- role="rowgroup"
202
- class="datatable-header"
203
- {oncontextmenu}
204
- >
205
- <div
206
- role="row"
207
- class="datatable-row header-row"
208
- >
209
- {#if showHighlightColumn}
210
- <div
211
- role="columnheader"
212
- id="highlight-header"
213
- class="cell header highlight-column pinned-left"
214
- style="left: 0px"
215
- >
216
- <div class="th">
217
- <HighlightAllHeader />
218
- </div>
219
- </div>
220
- {/if}
221
-
222
- {#each leftHeaders as header, index (header.id)}
223
- <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
224
- {@render headerCell(header, 'left', leftOffsets[index])}
225
- {/each}
226
- {#each centreHeaders as header (header.id)}
227
- <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
228
- {@render headerCell(header, undefined, 0)}
229
- {/each}
230
- {#each rightHeaders as header, index (header.id)}
231
- <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
232
- {@render headerCell(header, 'right', rightOffsets[index])}
233
- {/each}
234
- </div>
235
- </div>
236
-
237
- {#snippet headerCell(header: AnyHeader<T>, side: 'left' | 'right' | undefined, offset: number)}
238
- {@const headerId = `${tableContext.tableName}-header-${header.id}`}
239
- <!-- svelte-ignore a11y_interactive_supports_focus -->
240
- <div
241
- role="columnheader"
242
- id={headerId}
243
- {@attach (node: HTMLElement) => observeHeader(node, header.column.id)}
244
- draggable={tableContext.allowColumnReordering}
245
- class="cell header"
246
- class:pinned-left={side === 'left'}
247
- class:pinned-right={side === 'right'}
248
- class:action-column={!header.column.getCanSort()}
249
- class:targeted={currentDropTargetId === headerId}
250
- style:left={side === 'left' ? `${offset}px` : null}
251
- style:right={side === 'right' ? `${offset}px` : null}
252
- aria-sort={header.column.getCanSort() ? ariaSort(header.column.getIsSorted()) : undefined}
253
- ondragstart={() => {
254
- setDragTarget(header.column.columnDef);
255
- }}
256
- ondragover={(e) => {
257
- e.preventDefault();
258
- if (tableContext.dragTarget?.id !== header.id) {
259
- setCurrentDropTarget(e.target);
260
- } else {
261
- setCurrentDropTarget(null);
262
- }
263
- }}
264
- ondrop={onDrop}
265
- >
266
- {#if !header.isPlaceholder}
267
- <div class="margin-inline-end">
268
- {#if header.column.getCanSort()}
269
- <button
270
- onmouseenter={(e) => {
271
- showtooltip(e, header.column.columnDef);
272
- }}
273
- onmouseleave={() => {
274
- hideTooltip(header.column.columnDef);
275
- }}
276
- class="contents"
277
- onclick={() => debouncedSortToggle(header.column, header.column.getToggleSortingHandler())}
278
- >
279
- <div class="th cursor-pointer select-none">
280
- <div class="header-text-wrapper">
281
- {#if header.column.columnDef instanceof RowSelectionDef}
282
- <SelectAllHeader />
283
- {:else}
284
- {#if header.column.columnDef instanceof ExpandDef}
285
- <Icon
286
- name={header.column.columnDef.headerIcon}
287
- colour={Colour['$font-primary']}
288
- />
289
- {:else if typeof header.column.columnDef.header == 'string'}
290
- {header.column.columnDef.header}
291
- {:else}
292
- {@render header.column.columnDef.header()}
293
- {/if}
294
- <Icon
295
- variant={Variant.HeaderIcon}
296
- size={Size.Medium}
297
- name={iconNames[header.column.getIsSorted()]}
298
- />
299
- {/if}
300
- </div>
301
- </div>
302
- </button>
303
- {:else}
304
- {@const isRowSelect = header.column.columnDef instanceof RowSelectionDef}
305
- <!-- svelte-ignore a11y_no_static_element_interactions -->
306
- <div
307
- onmouseenter={(e) => {
308
- showtooltip(e, header.column.columnDef);
309
- }}
310
- onmouseleave={() => {
311
- hideTooltip(header.column.columnDef);
312
- }}
313
- class="contents"
314
- >
315
- <div
316
- class="th"
317
- class:nopadding={isRowSelect}
318
- >
319
- <div class="header-text-wrapper no-sort cursor-pointer select-none">
320
- {#if isRowSelect}
321
- <SelectAllHeader />
322
- {:else if header.column.columnDef instanceof ExpandDef}
323
- <Icon
324
- name={header.column.columnDef.headerIcon}
325
- colour={Colour['$font-primary']}
326
- />
327
- {:else if typeof header.column.columnDef.header == 'string'}
328
- {header.column.columnDef.header}
329
- {:else}
330
- {@render header.column.columnDef.header()}
331
- {/if}
332
- </div>
333
- </div>
334
- </div>
335
- {/if}
336
-
337
- {#if tableContext.enableResize}
338
- <!-- svelte-ignore a11y_no_static_element_interactions -->
339
- <div
340
- onmousedown={(e) => {
341
- e.preventDefault();
342
- e.stopImmediatePropagation();
343
- const handler = header.getResizeHandler();
344
- handler(e);
345
- }}
346
- ondblclick={() => {
347
- // Reset the column to its factory-default width and
348
- // clear the user-resized flag so the grid track
349
- // returns to its original `minmax(W, 1fr)` or
350
- // fixed-`${W}px` branch.
351
- header.column.columnDef.resetWidth();
352
- }}
353
- class="resizer right"
354
- class:isResizing={header.column.getIsResizing()}
355
- ></div>
356
- {/if}
357
- </div>
358
- {/if}
359
- </div>
360
- {/snippet}
361
-
198
+ </script>
199
+
200
+ <div
201
+ role="rowgroup"
202
+ class="datatable-header"
203
+ {oncontextmenu}
204
+ >
205
+ <div
206
+ role="row"
207
+ class="datatable-row header-row"
208
+ >
209
+ {#if showHighlightColumn}
210
+ <div
211
+ role="columnheader"
212
+ id="highlight-header"
213
+ class="cell header highlight-column pinned-left"
214
+ style="left: 0px"
215
+ >
216
+ <div class="th">
217
+ <HighlightAllHeader />
218
+ </div>
219
+ </div>
220
+ {/if}
221
+
222
+ {#each leftHeaders as header, index (header.id)}
223
+ <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
224
+ {@render headerCell(header, 'left', leftOffsets[index])}
225
+ {/each}
226
+ {#each centreHeaders as header (header.id)}
227
+ <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
228
+ {@render headerCell(header, undefined, 0)}
229
+ {/each}
230
+ {#each rightHeaders as header, index (header.id)}
231
+ <!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
232
+ {@render headerCell(header, 'right', rightOffsets[index])}
233
+ {/each}
234
+ </div>
235
+ </div>
236
+
237
+ {#snippet headerCell(header: AnyHeader<T>, side: 'left' | 'right' | undefined, offset: number)}
238
+ {@const headerId = `${tableContext.tableName}-header-${header.id}`}
239
+ <!-- svelte-ignore a11y_interactive_supports_focus -->
240
+ <div
241
+ role="columnheader"
242
+ id={headerId}
243
+ {@attach (node: HTMLElement) => observeHeader(node, header.column.id)}
244
+ draggable={tableContext.allowColumnReordering}
245
+ class="cell header"
246
+ class:pinned-left={side === 'left'}
247
+ class:pinned-right={side === 'right'}
248
+ class:action-column={!header.column.getCanSort()}
249
+ class:targeted={currentDropTargetId === headerId}
250
+ style:left={side === 'left' ? `${offset}px` : null}
251
+ style:right={side === 'right' ? `${offset}px` : null}
252
+ aria-sort={header.column.getCanSort() ? ariaSort(header.column.getIsSorted()) : undefined}
253
+ ondragstart={() => {
254
+ setDragTarget(header.column.columnDef);
255
+ }}
256
+ ondragover={(e) => {
257
+ e.preventDefault();
258
+ if (tableContext.dragTarget?.id !== header.id) {
259
+ setCurrentDropTarget(e.target);
260
+ } else {
261
+ setCurrentDropTarget(null);
262
+ }
263
+ }}
264
+ ondrop={onDrop}
265
+ >
266
+ {#if !header.isPlaceholder}
267
+ <div class="margin-inline-end">
268
+ {#if header.column.getCanSort()}
269
+ <button
270
+ onmouseenter={(e) => {
271
+ showtooltip(e, header.column.columnDef);
272
+ }}
273
+ onmouseleave={() => {
274
+ hideTooltip(header.column.columnDef);
275
+ }}
276
+ class="contents"
277
+ onclick={() => debouncedSortToggle(header.column, header.column.getToggleSortingHandler())}
278
+ >
279
+ <div class="th cursor-pointer select-none">
280
+ <div class="header-text-wrapper">
281
+ {#if header.column.columnDef instanceof RowSelectionDef}
282
+ <SelectAllHeader />
283
+ {:else}
284
+ {#if header.column.columnDef instanceof ExpandDef}
285
+ <Icon
286
+ name={header.column.columnDef.headerIcon}
287
+ colour={Colour['$font-primary']}
288
+ />
289
+ {:else if typeof header.column.columnDef.header == 'string'}
290
+ {header.column.columnDef.header}
291
+ {:else}
292
+ {@render header.column.columnDef.header()}
293
+ {/if}
294
+ <Icon
295
+ variant={Variant.HeaderIcon}
296
+ size={Size.Medium}
297
+ name={iconNames[header.column.getIsSorted()]}
298
+ />
299
+ {/if}
300
+ </div>
301
+ </div>
302
+ </button>
303
+ {:else}
304
+ {@const isRowSelect = header.column.columnDef instanceof RowSelectionDef}
305
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
306
+ <div
307
+ onmouseenter={(e) => {
308
+ showtooltip(e, header.column.columnDef);
309
+ }}
310
+ onmouseleave={() => {
311
+ hideTooltip(header.column.columnDef);
312
+ }}
313
+ class="contents"
314
+ >
315
+ <div
316
+ class="th"
317
+ class:nopadding={isRowSelect}
318
+ >
319
+ <div class="header-text-wrapper no-sort cursor-pointer select-none">
320
+ {#if isRowSelect}
321
+ <SelectAllHeader />
322
+ {:else if header.column.columnDef instanceof ExpandDef}
323
+ <Icon
324
+ name={header.column.columnDef.headerIcon}
325
+ colour={Colour['$font-primary']}
326
+ />
327
+ {:else if typeof header.column.columnDef.header == 'string'}
328
+ {header.column.columnDef.header}
329
+ {:else}
330
+ {@render header.column.columnDef.header()}
331
+ {/if}
332
+ </div>
333
+ </div>
334
+ </div>
335
+ {/if}
336
+
337
+ {#if tableContext.enableResize}
338
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
339
+ <div
340
+ onmousedown={(e) => {
341
+ e.preventDefault();
342
+ e.stopImmediatePropagation();
343
+ const handler = header.getResizeHandler();
344
+ handler(e);
345
+ }}
346
+ ondblclick={() => {
347
+ // Reset the column to its factory-default width and
348
+ // clear the user-resized flag so the grid track
349
+ // returns to its original `minmax(W, 1fr)` or
350
+ // fixed-`${W}px` branch.
351
+ header.column.columnDef.resetWidth();
352
+ }}
353
+ class="resizer right"
354
+ class:isResizing={header.column.getIsResizing()}
355
+ ></div>
356
+ {/if}
357
+ </div>
358
+ {/if}
359
+ </div>
360
+ {/snippet}
361
+
362
362
  <style>.cell.header {
363
363
  position: relative;
364
364
  min-width: 0;
@@ -509,4 +509,4 @@ div.th::after {
509
509
  width: 20px;
510
510
  overflow: hidden;
511
511
  border-inline-end: solid 1px #cbd4da;
512
- }</style>
512
+ }</style>
@@ -1,40 +1,40 @@
1
- <svelte:options runes />
2
-
1
+ <svelte:options runes />
2
+
3
3
  <script lang="ts">import { m as i18n } from "../../../paraglide/messages.js";
4
4
  import ColumnList from "../Body/Rows/ColumnList.svelte";
5
5
  import TextInput from "../../TextInput.svelte";
6
6
  import { Size } from "../../../Types/Internal/Size.js";
7
7
  import TableViewDropdown from "./TableViewDropdown.svelte";
8
8
  let searchValue = $state("");
9
- </script>
10
-
11
- <section class="side-panel-section">
12
- <header class="side-panel-header">
13
- <h2>{i18n['scoria.action.modify_columns']()}</h2>
14
- </header>
15
-
16
- <div class="toolbar">
17
- <!-- Quick-switch dropdown for saved column layouts. Sits above the
18
- search box; saving a layout is done from the Table
19
- Configuration modal's "Save a new Layout" tab. -->
20
- <TableViewDropdown kind="layout" />
21
- <TextInput
22
- bind:value={searchValue}
23
- leftIcon={{ name: 'search', size: Size.Medium }}
24
- placeholder={i18n['scoria.label.search_columns']()}
25
- onkeydown={() => {
26
- // Override the TextInput default `passthrough` keydown so the
27
- // input does not blur on every alphanumeric keystroke (which
28
- // is the barcode-scanner default; see `Helpers.svelte.ts`).
29
- }}
30
- />
31
- </div>
32
-
33
- <div class="column-list-wrapper">
34
- <ColumnList {searchValue} />
35
- </div>
36
- </section>
37
-
9
+ </script>
10
+
11
+ <section class="side-panel-section">
12
+ <header class="side-panel-header">
13
+ <h2>{i18n['scoria.action.modify_columns']()}</h2>
14
+ </header>
15
+
16
+ <div class="toolbar">
17
+ <!-- Quick-switch dropdown for saved column layouts. Sits above the
18
+ search box; saving a layout is done from the Table
19
+ Configuration modal's "Save a new Layout" tab. -->
20
+ <TableViewDropdown kind="layout" />
21
+ <TextInput
22
+ bind:value={searchValue}
23
+ leftIcon={{ name: 'search', size: Size.Medium }}
24
+ placeholder={i18n['scoria.label.search_columns']()}
25
+ onkeydown={() => {
26
+ // Override the TextInput default `passthrough` keydown so the
27
+ // input does not blur on every alphanumeric keystroke (which
28
+ // is the barcode-scanner default; see `Helpers.svelte.ts`).
29
+ }}
30
+ />
31
+ </div>
32
+
33
+ <div class="column-list-wrapper">
34
+ <ColumnList {searchValue} />
35
+ </div>
36
+ </section>
37
+
38
38
  <style>.side-panel-section {
39
39
  display: flex;
40
40
  flex-flow: column nowrap;
@@ -117,4 +117,4 @@ let searchValue = $state("");
117
117
  the toolbar above and the footer below). */
118
118
  padding: 0 1.25rem;
119
119
  box-sizing: border-box;
120
- }</style>
120
+ }</style>
@@ -1,5 +1,5 @@
1
- <svelte:options runes />
2
-
1
+ <svelte:options runes />
2
+
3
3
  <script lang="ts">import { m as i18n } from "../../../paraglide/messages.js";
4
4
  import DesktopModal from "../../DesktopModal.svelte";
5
5
  import ColumnList from "../Body/Rows/ColumnList.svelte";
@@ -7,32 +7,32 @@ import TextInput from "../../TextInput.svelte";
7
7
  import { Size } from "../../../Types/Internal/Size.js";
8
8
  const { onclose } = $props();
9
9
  let searchValue = $state("");
10
- </script>
11
-
12
- <DesktopModal
13
- headerLabel={i18n['scoria.action.modify_columns']()}
14
- onclose={() => onclose?.()}
15
- buttons={[{ label: i18n['scoria.action.close'](), callback: () => onclose?.() }]}
16
- >
17
- <div class="flex">
18
- <div class="column-panel top">
19
- <TextInput
20
- bind:value={searchValue}
21
- leftIcon={{ name: 'search', size: Size.Medium }}
22
- placeholder={i18n['scoria.label.search_columns']()}
23
- onkeydown={() => {
24
- // Override the TextInput default `passthrough` keydown so
25
- // the input does not blur on every alphanumeric keystroke
26
- // (the barcode-scanner default; see `Helpers.svelte.ts`).
27
- }}
28
- />
29
- </div>
30
- <div class="scrollable">
31
- <ColumnList {searchValue} />
32
- </div>
33
- </div>
34
- </DesktopModal>
35
-
10
+ </script>
11
+
12
+ <DesktopModal
13
+ headerLabel={i18n['scoria.action.modify_columns']()}
14
+ onclose={() => onclose?.()}
15
+ buttons={[{ label: i18n['scoria.action.close'](), callback: () => onclose?.() }]}
16
+ >
17
+ <div class="flex">
18
+ <div class="column-panel top">
19
+ <TextInput
20
+ bind:value={searchValue}
21
+ leftIcon={{ name: 'search', size: Size.Medium }}
22
+ placeholder={i18n['scoria.label.search_columns']()}
23
+ onkeydown={() => {
24
+ // Override the TextInput default `passthrough` keydown so
25
+ // the input does not blur on every alphanumeric keystroke
26
+ // (the barcode-scanner default; see `Helpers.svelte.ts`).
27
+ }}
28
+ />
29
+ </div>
30
+ <div class="scrollable">
31
+ <ColumnList {searchValue} />
32
+ </div>
33
+ </div>
34
+ </DesktopModal>
35
+
36
36
  <style>.flex {
37
37
  display: flex;
38
38
  flex-flow: column nowrap;
@@ -57,4 +57,4 @@ let searchValue = $state("");
57
57
  row-gap: 0.5rem;
58
58
  padding: 0.5rem;
59
59
  flex-basis: min-content;
60
- }</style>
60
+ }</style>