@lavalogic/scoria 0.40.14 → 0.40.16

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 (141) 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 -86
  16. package/dist/Components/CollapsibleMenuGroup.svelte +52 -56
  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 +69 -82
  56. package/dist/Components/Portal.svelte +29 -35
  57. package/dist/Components/ProgressBubble.svelte +91 -106
  58. package/dist/Components/QuerySelect.svelte +260 -346
  59. package/dist/Components/SidebarPanel.svelte +34 -36
  60. package/dist/Components/SingleSelect.svelte +196 -244
  61. package/dist/Components/StepButton.svelte +65 -70
  62. package/dist/Components/StepForm.svelte +115 -135
  63. package/dist/Components/Switch.svelte +57 -69
  64. package/dist/Components/Table/ARCHITECTURE.md +298 -298
  65. package/dist/Components/Table/Body/QuickSearchCell.svelte +578 -655
  66. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +42 -51
  67. package/dist/Components/Table/Body/Rows/ColumnList.svelte +42 -58
  68. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +403 -442
  69. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +51 -78
  70. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +165 -184
  71. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +110 -123
  72. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +134 -160
  73. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +190 -231
  74. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +82 -104
  75. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +52 -87
  76. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +122 -150
  77. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +132 -159
  78. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +190 -236
  79. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +173 -211
  80. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +204 -244
  81. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +140 -177
  82. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +188 -217
  83. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +173 -193
  84. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +166 -187
  85. package/dist/Components/Table/Body/Rows/TableRow.svelte +245 -288
  86. package/dist/Components/Table/Body/TableBody.svelte +141 -154
  87. package/dist/Components/Table/ColumnFactory.svelte.js +1 -0
  88. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +35 -41
  89. package/dist/Components/Table/Headers/SelectAllHeader.svelte +24 -30
  90. package/dist/Components/Table/Headers/TableHead.svelte +348 -402
  91. package/dist/Components/Table/Misc/ColumnPanel.svelte +37 -39
  92. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +35 -39
  93. package/dist/Components/Table/Misc/FilterInput.svelte +556 -619
  94. package/dist/Components/Table/Misc/FilterPanel.svelte +170 -183
  95. package/dist/Components/Table/Misc/FilterPanelModal.svelte +25 -31
  96. package/dist/Components/Table/Misc/ShareViewModal.svelte +252 -281
  97. package/dist/Components/Table/Misc/SidePanel.svelte +32 -35
  98. package/dist/Components/Table/Misc/TableConfigurationModal.svelte +574 -629
  99. package/dist/Components/Table/Misc/TableFooter.svelte +326 -332
  100. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +134 -140
  101. package/dist/Components/Table/Misc/TableSidebar.svelte +183 -198
  102. package/dist/Components/Table/Misc/TableViewDropdown.svelte +83 -103
  103. package/dist/Components/Table/Misc/ToolboxPanel.svelte +83 -100
  104. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +88 -107
  105. package/dist/Components/Table/Misc/UpdateViewOptionsModal.svelte +163 -190
  106. package/dist/Components/Table/NestedTable.svelte +102 -128
  107. package/dist/Components/Table/Table.svelte +531 -663
  108. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +8 -6
  109. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +3 -3
  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/scss/_basics.scss +12 -12
  136. package/dist/scss/_colours.scss +134 -134
  137. package/dist/scss/_mixins.scss +3392 -3392
  138. package/dist/scss/_motion.scss +57 -57
  139. package/dist/scss/_sizing.scss +85 -85
  140. package/dist/scss/_transitions.scss +8 -8
  141. package/package.json +1 -1
@@ -1,157 +1,144 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="T extends object, IdType extends Primitive"
6
- >
7
- import { getContext } from 'svelte';
8
- import { TableContext } from '../Types/Context/TableContext.svelte.js';
9
- import type { Primitive } from '../Types/Context/TableInitOptions.js';
10
- import QuickSearchCell from './QuickSearchCell.svelte';
11
- import TableRow from './Rows/TableRow.svelte';
12
- import type { TableBodyProps } from './TableBodyProps.js';
13
-
14
- const { oncontextmenu }: TableBodyProps = $props();
15
-
16
- const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
17
-
18
- // Visible columns split by pinning side, matching the cell-side
19
- // arrays used by `TableRow`. Each side is reactive on column
20
- // visibility and pinning state.
21
- const leftColumns = $derived(tableContext.table.getLeftVisibleLeafColumns());
22
- const centreColumns = $derived(tableContext.table.getCenterVisibleLeafColumns());
23
- const rightColumns = $derived(tableContext.table.getRightVisibleLeafColumns());
24
-
25
- const showHighlightColumn = $derived(
26
- leftColumns.length + centreColumns.length + rightColumns.length > 0
27
- );
28
-
29
- // Cumulative pinning offsets for the quick-filter row's sticky
30
- // cells. Reads rendered widths from `_columnRenderedWidths`
31
- // (populated by the ResizeObserver in TableHead) so filter inputs
32
- // for pinned columns stay aligned with their column even when the
33
- // column flexes wider than `columnDef.width`.
34
- function renderedColumnWidth(columnId: string, declared: number): number {
35
- return tableContext._columnRenderedWidths.get(columnId) ?? declared;
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >import { getContext } from "svelte";
7
+ import { TableContext } from "../Types/Context/TableContext.svelte.js";
8
+ import QuickSearchCell from "./QuickSearchCell.svelte";
9
+ import TableRow from "./Rows/TableRow.svelte";
10
+ const { oncontextmenu } = $props();
11
+ const tableContext = getContext(TableContext.identifier);
12
+ // Visible columns split by pinning side, matching the cell-side
13
+ // arrays used by `TableRow`. Each side is reactive on column
14
+ // visibility and pinning state.
15
+ const leftColumns = $derived(tableContext.table.getLeftVisibleLeafColumns());
16
+ const centreColumns = $derived(tableContext.table.getCenterVisibleLeafColumns());
17
+ const rightColumns = $derived(tableContext.table.getRightVisibleLeafColumns());
18
+ const showHighlightColumn = $derived(leftColumns.length + centreColumns.length + rightColumns.length > 0);
19
+ // Cumulative pinning offsets for the quick-filter row's sticky
20
+ // cells. Reads rendered widths from `_columnRenderedWidths`
21
+ // (populated by the ResizeObserver in TableHead) so filter inputs
22
+ // for pinned columns stay aligned with their column even when the
23
+ // column flexes wider than `columnDef.width`.
24
+ function renderedColumnWidth(columnId, declared) {
25
+ return tableContext._columnRenderedWidths.get(columnId) ?? declared;
26
+ }
27
+ const leftOffsets = $derived.by(() => {
28
+ void tableContext._columnRenderedWidths.size;
29
+ const offsets = [];
30
+ let cumulative = showHighlightColumn ? 20 : 0;
31
+ for (const col of leftColumns) {
32
+ offsets.push(cumulative);
33
+ cumulative += renderedColumnWidth(col.id, col.columnDef.width);
36
34
  }
37
-
38
- const leftOffsets: Array<number> = $derived.by(() => {
39
- void tableContext._columnRenderedWidths.size;
40
- const offsets: Array<number> = [];
41
- let cumulative = showHighlightColumn ? 20 : 0;
42
- for (const col of leftColumns) {
43
- offsets.push(cumulative);
44
- cumulative += renderedColumnWidth(col.id, col.columnDef.width);
45
- }
46
- return offsets;
47
- });
48
-
49
- const rightOffsets: Array<number> = $derived.by(() => {
50
- void tableContext._columnRenderedWidths.size;
51
- const offsets = new Array<number>(rightColumns.length).fill(0);
52
- let cumulative = 0;
53
- for (let i = rightColumns.length - 1; i >= 0; i--) {
54
- offsets[i] = cumulative;
55
- cumulative += renderedColumnWidth(rightColumns[i].id, rightColumns[i].columnDef.width);
56
- }
57
- return offsets;
58
- });
59
-
60
- // Row virtualisation. When the current row count is above the
61
- // `_virtualisation` threshold (100 rows by default), only rows in the
62
- // viewport plus an overscan band are rendered. Two spacer rows (top
63
- // and bottom) reserve the rest of the body height so the scrollbar
64
- // matches the un-virtualised length.
65
- const virtualisation = $derived(tableContext._virtualisation);
66
- const visibleRows = $derived(virtualisation.visibleRows);
67
- const topSpacerHeight = $derived(virtualisation.topSpacerHeight);
68
- const bottomSpacerHeight = $derived(virtualisation.bottomSpacerHeight);
69
- </script>
70
-
71
- <div
72
- role="rowgroup"
73
- class="datatable-body"
74
- {oncontextmenu}
75
- >
76
- {#if tableContext.allowQuickFiltering && tableContext.showQuickFiltering && showHighlightColumn}
77
- <div
78
- role="row"
79
- class="datatable-row quick-filter-row"
80
- >
81
- {#if showHighlightColumn}
82
- <div
83
- role="cell"
84
- class="cell highlight-dud pinned-left"
85
- style="left: 0px"
86
- aria-hidden="true"
87
- >
88
- &nbsp;
89
- </div>
90
- {/if}
91
- {#each leftColumns as column, index (column.id)}
92
- <div
93
- role="cell"
94
- class="cell pinned-left"
95
- style="left: {leftOffsets[index]}px"
96
- >
97
- <QuickSearchCell
98
- {column}
99
- customFilters={tableContext.remoteFilters}
100
- />
101
- </div>
102
- {/each}
103
- {#each centreColumns as column (column.id)}
104
- <div
105
- role="cell"
106
- class="cell"
107
- >
108
- <QuickSearchCell
109
- {column}
110
- customFilters={tableContext.remoteFilters}
111
- />
112
- </div>
113
- {/each}
114
- {#each rightColumns as column, index (column.id)}
115
- <div
116
- role="cell"
117
- class="cell pinned-right"
118
- style="right: {rightOffsets[index]}px"
119
- >
120
- <QuickSearchCell
121
- {column}
122
- customFilters={tableContext.remoteFilters}
123
- />
124
- </div>
125
- {/each}
126
- </div>
127
- {/if}
128
-
129
- {#if topSpacerHeight > 0}
130
- <div
131
- role="presentation"
132
- class="virtual-spacer"
133
- style="height: {topSpacerHeight}px;"
134
- ></div>
135
- {/if}
136
-
137
- {#each visibleRows as { row } (row.id)}
138
- {@const originalIndex = row.visibleIndex}
139
- <TableRow
140
- {row}
141
- odd={originalIndex % 2 == 1}
142
- includeHighlight={showHighlightColumn}
143
- />
144
- {/each}
145
-
146
- {#if bottomSpacerHeight > 0}
147
- <div
148
- role="presentation"
149
- class="virtual-spacer"
150
- style="height: {bottomSpacerHeight}px;"
151
- ></div>
152
- {/if}
153
- </div>
154
-
35
+ return offsets;
36
+ });
37
+ const rightOffsets = $derived.by(() => {
38
+ void tableContext._columnRenderedWidths.size;
39
+ const offsets = new Array(rightColumns.length).fill(0);
40
+ let cumulative = 0;
41
+ for (let i = rightColumns.length - 1; i >= 0; i--) {
42
+ offsets[i] = cumulative;
43
+ cumulative += renderedColumnWidth(rightColumns[i].id, rightColumns[i].columnDef.width);
44
+ }
45
+ return offsets;
46
+ });
47
+ // Row virtualisation. When the current row count is above the
48
+ // `_virtualisation` threshold (100 rows by default), only rows in the
49
+ // viewport plus an overscan band are rendered. Two spacer rows (top
50
+ // and bottom) reserve the rest of the body height so the scrollbar
51
+ // matches the un-virtualised length.
52
+ const virtualisation = $derived(tableContext._virtualisation);
53
+ const visibleRows = $derived(virtualisation.visibleRows);
54
+ const topSpacerHeight = $derived(virtualisation.topSpacerHeight);
55
+ const bottomSpacerHeight = $derived(virtualisation.bottomSpacerHeight);
56
+ </script>
57
+
58
+ <div
59
+ role="rowgroup"
60
+ class="datatable-body"
61
+ {oncontextmenu}
62
+ >
63
+ {#if tableContext.allowQuickFiltering && tableContext.showQuickFiltering && showHighlightColumn}
64
+ <div
65
+ role="row"
66
+ class="datatable-row quick-filter-row"
67
+ >
68
+ {#if showHighlightColumn}
69
+ <div
70
+ role="cell"
71
+ class="cell highlight-dud pinned-left"
72
+ style="left: 0px"
73
+ aria-hidden="true"
74
+ >
75
+ &nbsp;
76
+ </div>
77
+ {/if}
78
+ {#each leftColumns as column, index (column.id)}
79
+ <div
80
+ role="cell"
81
+ class="cell pinned-left"
82
+ style="left: {leftOffsets[index]}px"
83
+ >
84
+ <QuickSearchCell
85
+ {column}
86
+ customFilters={tableContext.remoteFilters}
87
+ />
88
+ </div>
89
+ {/each}
90
+ {#each centreColumns as column (column.id)}
91
+ <div
92
+ role="cell"
93
+ class="cell"
94
+ >
95
+ <QuickSearchCell
96
+ {column}
97
+ customFilters={tableContext.remoteFilters}
98
+ />
99
+ </div>
100
+ {/each}
101
+ {#each rightColumns as column, index (column.id)}
102
+ <div
103
+ role="cell"
104
+ class="cell pinned-right"
105
+ style="right: {rightOffsets[index]}px"
106
+ >
107
+ <QuickSearchCell
108
+ {column}
109
+ customFilters={tableContext.remoteFilters}
110
+ />
111
+ </div>
112
+ {/each}
113
+ </div>
114
+ {/if}
115
+
116
+ {#if topSpacerHeight > 0}
117
+ <div
118
+ role="presentation"
119
+ class="virtual-spacer"
120
+ style="height: {topSpacerHeight}px;"
121
+ ></div>
122
+ {/if}
123
+
124
+ {#each visibleRows as { row } (row.id)}
125
+ {@const originalIndex = row.visibleIndex}
126
+ <TableRow
127
+ {row}
128
+ odd={originalIndex % 2 == 1}
129
+ includeHighlight={showHighlightColumn}
130
+ />
131
+ {/each}
132
+
133
+ {#if bottomSpacerHeight > 0}
134
+ <div
135
+ role="presentation"
136
+ class="virtual-spacer"
137
+ style="height: {bottomSpacerHeight}px;"
138
+ ></div>
139
+ {/if}
140
+ </div>
141
+
155
142
  <style>.cell {
156
143
  display: block;
157
144
  position: relative;
@@ -213,4 +200,4 @@
213
200
  pointer-events: none;
214
201
  --row-stripe-height: var(--height, 3rem);
215
202
  background-image: repeating-linear-gradient(to bottom, #ffffff 0, #ffffff var(--row-stripe-height), #f4f7f9 var(--row-stripe-height), #f4f7f9 calc(2 * var(--row-stripe-height)));
216
- }</style>
203
+ }</style>
@@ -484,6 +484,7 @@ export function createColumnFactory() {
484
484
  actions: wrapped,
485
485
  isEnabled: isEnabledFn ? (item) => isEnabledFn(item) : undefined,
486
486
  id: mintId('actions'),
487
+ header: opts.header,
487
488
  });
488
489
  // Actions has no public width option — apply the per-kind default.
489
490
  def.width = KIND_DEFAULT_WIDTHS.actions;
@@ -1,43 +1,37 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="T extends object, IdType extends Primitive"
6
- >
7
- import { devCatch } from '../../../Helpers/Helpers.svelte.js';
8
- import { Colour } from '../../../scss/colours.js';
9
- import { Size } from '../../../Types/Internal/Size.js';
10
- import { getContext } from 'svelte';
11
- import Action from '../../Action.svelte';
12
- import { TableContext } from '../Types/Context/TableContext.svelte.js';
13
- import type { Primitive } from '../Types/Context/TableInitOptions.js';
14
-
15
- const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
16
-
17
- const backgroundColour = $derived.by(() => {
18
- return tableContext.sortedData.length > 0 && tableContext.allHighlighted
19
- ? Colour['$brand-primary']
20
- : Colour['$ui-white'];
21
- });
22
- </script>
23
-
24
- <div class="highlight-header">
25
- <div class="wrapper">
26
- <Action
27
- label="Highlight all rows"
28
- {backgroundColour}
29
- hoverBackgroundColour={Colour['$brand-dark']}
30
- size={Size.FillWidth}
31
- icon={{
32
- name: 'nothing',
33
- }}
34
- onclick={() => {
35
- tableContext.onHighlightAll()?.catch(devCatch);
36
- }}
37
- />
38
- </div>
39
- </div>
40
-
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >import { devCatch } from "../../../Helpers/Helpers.svelte.js";
7
+ import { Colour } from "../../../scss/colours.js";
8
+ import { Size } from "../../../Types/Internal/Size.js";
9
+ import { getContext } from "svelte";
10
+ import Action from "../../Action.svelte";
11
+ import { TableContext } from "../Types/Context/TableContext.svelte.js";
12
+ const tableContext = getContext(TableContext.identifier);
13
+ const backgroundColour = $derived.by(() => {
14
+ return tableContext.sortedData.length > 0 && tableContext.allHighlighted ? Colour["$brand-primary"] : Colour["$ui-white"];
15
+ });
16
+ </script>
17
+
18
+ <div class="highlight-header">
19
+ <div class="wrapper">
20
+ <Action
21
+ label="Highlight all rows"
22
+ {backgroundColour}
23
+ hoverBackgroundColour={Colour['$brand-dark']}
24
+ size={Size.FillWidth}
25
+ icon={{
26
+ name: 'nothing',
27
+ }}
28
+ onclick={() => {
29
+ tableContext.onHighlightAll()?.catch(devCatch);
30
+ }}
31
+ />
32
+ </div>
33
+ </div>
34
+
41
35
  <style>div.wrapper {
42
36
  position: absolute;
43
37
  top: 0;
@@ -47,4 +41,4 @@
47
41
  display: flex;
48
42
  align-items: stretch;
49
43
  justify-content: stretch;
50
- }</style>
44
+ }</style>
@@ -1,32 +1,26 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="T extends object, IdType extends Primitive"
6
- >
7
- import { getContext } from 'svelte';
8
- import { TableContext } from '../Types/Context/TableContext.svelte.js';
9
- import type { Primitive } from '../Types/Context/TableInitOptions.js';
10
-
11
- const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
12
-
13
- const checked: boolean = $derived(
14
- tableContext.dataRepo.data.length > 0 ? tableContext.allSelectedInCurrentPage : false
15
- );
16
- </script>
17
-
18
- <div class="checkbox-cell">
19
- <label aria-label="Select all rows on this page">
20
- <input
21
- aria-label="Select all rows on this page"
22
- onchange={tableContext.selectAllInCurrentPage}
23
- type="checkbox"
24
- {checked}
25
- disabled={tableContext.showSelectedOnly}
26
- />
27
- </label>
28
- </div>
29
-
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >import { getContext } from "svelte";
7
+ import { TableContext } from "../Types/Context/TableContext.svelte.js";
8
+ const tableContext = getContext(TableContext.identifier);
9
+ const checked = $derived(tableContext.dataRepo.data.length > 0 ? tableContext.allSelectedInCurrentPage : false);
10
+ </script>
11
+
12
+ <div class="checkbox-cell">
13
+ <label aria-label="Select all rows on this page">
14
+ <input
15
+ aria-label="Select all rows on this page"
16
+ onchange={tableContext.selectAllInCurrentPage}
17
+ type="checkbox"
18
+ {checked}
19
+ disabled={tableContext.showSelectedOnly}
20
+ />
21
+ </label>
22
+ </div>
23
+
30
24
  <style>input[type=checkbox] {
31
25
  height: var(--checkbox-height);
32
26
  padding: 1rem;
@@ -54,4 +48,4 @@ label {
54
48
 
55
49
  label {
56
50
  cursor: pointer;
57
- }</style>
51
+ }</style>