@lavalogic/scoria 0.40.13 → 0.40.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +35 -46
  3. package/dist/Components/AccordionGroupButton.svelte +68 -76
  4. package/dist/Components/Action.svelte +103 -135
  5. package/dist/Components/AlertModal.svelte +171 -190
  6. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +614 -697
  7. package/dist/Components/Base/BaseModal.svelte +90 -116
  8. package/dist/Components/Base/ContextWrapper.svelte +67 -72
  9. package/dist/Components/Base/Pagination.svelte +173 -196
  10. package/dist/Components/Base/Snippets.svelte +34 -36
  11. package/dist/Components/BigRadioSet.svelte +36 -38
  12. package/dist/Components/Bubble.svelte +78 -101
  13. package/dist/Components/Button.svelte +175 -208
  14. package/dist/Components/Checkbox.svelte +75 -86
  15. package/dist/Components/CollapsibleCard.svelte +72 -87
  16. package/dist/Components/CollapsibleMenuGroup.svelte +53 -57
  17. package/dist/Components/ConditionBuilder/ConditionBuilder.svelte +39 -64
  18. package/dist/Components/Contexts/ContextMenu.svelte +141 -156
  19. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
  20. package/dist/Components/Contexts/ContextMenuOption.svelte +53 -60
  21. package/dist/Components/Contexts/Toast.svelte +81 -86
  22. package/dist/Components/Contexts/ToastContainer.svelte +58 -62
  23. package/dist/Components/Contexts/Tooltip.svelte +36 -37
  24. package/dist/Components/DataMatrixIcon.svelte +95 -108
  25. package/dist/Components/DateInput.svelte +118 -146
  26. package/dist/Components/DatePicker.svelte +255 -294
  27. package/dist/Components/DesktopModal.svelte +70 -90
  28. package/dist/Components/Dial.svelte +167 -197
  29. package/dist/Components/DimensionInput.svelte +124 -169
  30. package/dist/Components/DragMenu/DragMenuHolder.svelte +98 -114
  31. package/dist/Components/DragMenu/DraggableCard.svelte +64 -76
  32. package/dist/Components/FileCard.svelte +21 -24
  33. package/dist/Components/FileUpload.svelte +190 -225
  34. package/dist/Components/GridInput.svelte +159 -196
  35. package/dist/Components/GridInputSet.svelte +24 -29
  36. package/dist/Components/HorizontalTabGroup.svelte +73 -89
  37. package/dist/Components/HorizontalTabGroupButton.svelte +40 -44
  38. package/dist/Components/Icon.svelte +99 -128
  39. package/dist/Components/Icons.js +357 -357
  40. package/dist/Components/InfoAlert.svelte +35 -38
  41. package/dist/Components/LoadingAnimation.svelte +691 -755
  42. package/dist/Components/LoadingModal.svelte +36 -44
  43. package/dist/Components/LoadingOverlay.svelte +22 -26
  44. package/dist/Components/Modal.svelte +204 -254
  45. package/dist/Components/MultiSelect.svelte +186 -216
  46. package/dist/Components/Nav/Nav.svelte +94 -110
  47. package/dist/Components/Nav/NavServiceMenuList.svelte +57 -61
  48. package/dist/Components/Nav/NavTab.svelte +58 -62
  49. package/dist/Components/Nav/ServiceMenuItem.svelte +103 -111
  50. package/dist/Components/Nav/ServicesNav.svelte +72 -79
  51. package/dist/Components/NumberInput.svelte +121 -155
  52. package/dist/Components/OptionCards.svelte +62 -73
  53. package/dist/Components/PageHeading.svelte +23 -25
  54. package/dist/Components/PasswordInput.svelte +69 -88
  55. package/dist/Components/PopoverButton.svelte +151 -0
  56. package/dist/Components/PopoverButton.svelte.d.ts +9 -0
  57. package/dist/Components/PopoverButtonProps.d.ts +21 -0
  58. package/dist/Components/PopoverButtonProps.js +1 -0
  59. package/dist/Components/Portal.svelte +29 -35
  60. package/dist/Components/ProgressBubble.svelte +91 -106
  61. package/dist/Components/QuerySelect.svelte +260 -346
  62. package/dist/Components/SidebarPanel.svelte +34 -36
  63. package/dist/Components/SingleSelect.svelte +196 -244
  64. package/dist/Components/StepButton.svelte +65 -70
  65. package/dist/Components/StepForm.svelte +115 -135
  66. package/dist/Components/Switch.svelte +57 -69
  67. package/dist/Components/Table/ARCHITECTURE.md +298 -298
  68. package/dist/Components/Table/Body/QuickSearchCell.svelte +578 -655
  69. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +42 -51
  70. package/dist/Components/Table/Body/Rows/ColumnList.svelte +42 -58
  71. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +403 -442
  72. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +51 -78
  73. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +165 -184
  74. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +110 -123
  75. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +134 -160
  76. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +190 -231
  77. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +82 -104
  78. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +52 -87
  79. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +122 -150
  80. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +132 -159
  81. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +190 -236
  82. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +173 -211
  83. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +204 -244
  84. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +140 -177
  85. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +188 -217
  86. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +173 -193
  87. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +166 -187
  88. package/dist/Components/Table/Body/Rows/TableRow.svelte +245 -288
  89. package/dist/Components/Table/Body/TableBody.svelte +141 -154
  90. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +35 -41
  91. package/dist/Components/Table/Headers/SelectAllHeader.svelte +24 -30
  92. package/dist/Components/Table/Headers/TableHead.svelte +348 -402
  93. package/dist/Components/Table/Misc/ColumnPanel.svelte +37 -39
  94. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +35 -39
  95. package/dist/Components/Table/Misc/FilterInput.svelte +556 -619
  96. package/dist/Components/Table/Misc/FilterPanel.svelte +170 -183
  97. package/dist/Components/Table/Misc/FilterPanelModal.svelte +25 -31
  98. package/dist/Components/Table/Misc/ShareViewModal.svelte +252 -281
  99. package/dist/Components/Table/Misc/SidePanel.svelte +32 -35
  100. package/dist/Components/Table/Misc/TableConfigurationModal.svelte +574 -629
  101. package/dist/Components/Table/Misc/TableFooter.svelte +326 -332
  102. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +134 -140
  103. package/dist/Components/Table/Misc/TableSidebar.svelte +183 -198
  104. package/dist/Components/Table/Misc/TableViewDropdown.svelte +83 -103
  105. package/dist/Components/Table/Misc/ToolboxPanel.svelte +83 -100
  106. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +88 -107
  107. package/dist/Components/Table/Misc/UpdateViewOptionsModal.svelte +163 -190
  108. package/dist/Components/Table/NestedTable.svelte +102 -128
  109. package/dist/Components/Table/Table.svelte +531 -663
  110. package/dist/Components/Test/TestContextConsumer.svelte +11 -13
  111. package/dist/Components/TextArea.svelte +95 -130
  112. package/dist/Components/TextInput.svelte +125 -176
  113. package/dist/Components/ThreeStateRadio.svelte +111 -130
  114. package/dist/Components/Touch/BoolCard.svelte +33 -45
  115. package/dist/Components/Touch/DateModal.svelte +164 -204
  116. package/dist/Components/Touch/EditCard.svelte +48 -59
  117. package/dist/Components/Touch/InfoCard.svelte +28 -31
  118. package/dist/Components/Touch/InfoTextCard.svelte +26 -28
  119. package/dist/Components/Touch/ModalExplanation.svelte +15 -17
  120. package/dist/Components/Touch/NumberKeyboard.svelte +181 -218
  121. package/dist/Components/Touch/NumberModal.svelte +59 -79
  122. package/dist/Components/Touch/PlusMinusCard.svelte +43 -46
  123. package/dist/Components/Touch/SelectModal.svelte +111 -126
  124. package/dist/Components/Touch/SummaryCard.svelte +80 -93
  125. package/dist/Components/Touch/TextAreaModal.svelte +72 -94
  126. package/dist/Components/Touch/TextModal.svelte +77 -105
  127. package/dist/Components/Touch/TouchCard.svelte +31 -33
  128. package/dist/Components/Touch/TouchModal.svelte +214 -270
  129. package/dist/Components/Touch/UtilityButton.svelte +88 -109
  130. package/dist/Components/VerticalTabGroup.svelte +60 -78
  131. package/dist/Components/VerticalTabGroupButton.svelte +54 -58
  132. package/dist/Helpers/Datamatrix.d.ts +19 -19
  133. package/dist/Helpers/Datamatrix.js +291 -291
  134. package/dist/Types/Examples/ExampleModal.svelte +31 -35
  135. package/dist/index.d.ts +2 -0
  136. package/dist/index.js +1 -0
  137. package/dist/scss/_basics.scss +12 -12
  138. package/dist/scss/_colours.scss +134 -134
  139. package/dist/scss/_mixins.scss +3392 -3392
  140. package/dist/scss/_motion.scss +57 -57
  141. package/dist/scss/_sizing.scss +85 -85
  142. package/dist/scss/_transitions.scss +8 -8
  143. package/package.json +1 -1
@@ -1,192 +1,179 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="T extends object, IdType extends Primitive"
6
- >
7
- import Action from '../../Action.svelte';
8
- import TextInput from '../../TextInput.svelte';
9
- import { Colour, ColourSet } from '../../../scss/colours.js';
10
- import { Size } from '../../../Types/Internal/Size.js';
11
- import { SvelteSet } from 'svelte/reactivity';
12
- import { getContext } from 'svelte';
13
- import type { Primitive } from '../Types/Context/TableInitOptions.js';
14
- import type { ColumnDef } from '../Types/Columns/Definitions/ColumnDef.svelte.js';
15
- import { TableContext } from '../Types/Context/TableContext.svelte.js';
16
- import FilterInput from './FilterInput.svelte';
17
- import TableViewDropdown from './TableViewDropdown.svelte';
18
-
19
- const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
20
-
21
- /** Fallback group label used for any filterable column whose
22
- * `filterGroup` is undefined. Picked up by the same grouping +
23
- * collapse machinery as user-declared groups. */
24
- const FALLBACK_GROUP = 'Other';
25
-
26
- const defs = $derived(tableContext.columnDefs as Array<ColumnDef<T, unknown>>);
27
- const filterableDefs = $derived(defs.filter((d) => d.allowFiltering));
28
-
29
- /** User-typed substring filter for the column-header text. Empty
30
- * string is the "no filter" state. */
31
- let quickFindValue: string = $state('');
32
-
33
- /** Names of currently-collapsed groups. A name absent from this
34
- * set is rendered expanded. Reactive via `SvelteSet` so the panel
35
- * re-renders on toggle without manually re-assigning. */
36
- const collapsedGroups = new SvelteSet<string>();
37
-
38
- /** Filters the column-def list against `quickFindValue`. The match
39
- * is case-insensitive against the header text (for string
40
- * headers) and the column id as a fallback for Snippet headers. */
41
- const matchingDefs: Array<ColumnDef<T, unknown>> = $derived.by(() => {
42
- const q = quickFindValue.trim().toLowerCase();
43
- if (q.length === 0) {
44
- return filterableDefs;
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >import Action from "../../Action.svelte";
7
+ import TextInput from "../../TextInput.svelte";
8
+ import { Colour, ColourSet } from "../../../scss/colours.js";
9
+ import { Size } from "../../../Types/Internal/Size.js";
10
+ import { SvelteSet } from "svelte/reactivity";
11
+ import { getContext } from "svelte";
12
+ import { TableContext } from "../Types/Context/TableContext.svelte.js";
13
+ import FilterInput from "./FilterInput.svelte";
14
+ import TableViewDropdown from "./TableViewDropdown.svelte";
15
+ const tableContext = getContext(TableContext.identifier);
16
+ /** Fallback group label used for any filterable column whose
17
+ * `filterGroup` is undefined. Picked up by the same grouping +
18
+ * collapse machinery as user-declared groups. */
19
+ const FALLBACK_GROUP = "Other";
20
+ const defs = $derived(tableContext.columnDefs);
21
+ const filterableDefs = $derived(defs.filter((d) => d.allowFiltering));
22
+ /** User-typed substring filter for the column-header text. Empty
23
+ * string is the "no filter" state. */
24
+ let quickFindValue = $state("");
25
+ /** Names of currently-collapsed groups. A name absent from this
26
+ * set is rendered expanded. Reactive via `SvelteSet` so the panel
27
+ * re-renders on toggle without manually re-assigning. */
28
+ const collapsedGroups = new SvelteSet();
29
+ /** Filters the column-def list against `quickFindValue`. The match
30
+ * is case-insensitive against the header text (for string
31
+ * headers) and the column id as a fallback for Snippet headers. */
32
+ const matchingDefs = $derived.by(() => {
33
+ const q = quickFindValue.trim().toLowerCase();
34
+ if (q.length === 0) {
35
+ return filterableDefs;
36
+ }
37
+ return filterableDefs.filter((d) => {
38
+ if (typeof d.header === "string" && d.header.toLowerCase().includes(q)) {
39
+ return true;
45
40
  }
46
- return filterableDefs.filter((d) => {
47
- if (typeof d.header === 'string' && d.header.toLowerCase().includes(q)) {
48
- return true;
49
- }
50
- return d.id.toLowerCase().includes(q);
51
- });
41
+ return d.id.toLowerCase().includes(q);
52
42
  });
53
-
54
- /** Ordered list of group names. The first column-def each group
55
- * is seen on determines its position so groups appear in the
56
- * source-declaration order. The fallback "Other" group is
57
- * appended last so explicitly-named groups always lead. */
58
- const orderedGroupNames: Array<string> = $derived.by(() => {
59
- const seen = new Set<string>();
60
- const out: Array<string> = [];
61
- let sawFallback = false;
62
- for (const def of matchingDefs) {
63
- const name = def.filterGroup ?? FALLBACK_GROUP;
64
- if (name === FALLBACK_GROUP) {
65
- sawFallback = true;
66
- continue;
67
- }
68
- if (!seen.has(name)) {
69
- seen.add(name);
70
- out.push(name);
71
- }
43
+ });
44
+ /** Ordered list of group names. The first column-def each group
45
+ * is seen on determines its position so groups appear in the
46
+ * source-declaration order. The fallback "Other" group is
47
+ * appended last so explicitly-named groups always lead. */
48
+ const orderedGroupNames = $derived.by(() => {
49
+ const seen = new Set();
50
+ const out = [];
51
+ let sawFallback = false;
52
+ for (const def of matchingDefs) {
53
+ const name = def.filterGroup ?? FALLBACK_GROUP;
54
+ if (name === FALLBACK_GROUP) {
55
+ sawFallback = true;
56
+ continue;
72
57
  }
73
- if (sawFallback) {
74
- out.push(FALLBACK_GROUP);
75
- }
76
- return out;
77
- });
78
-
79
- /** Group name -> column-defs in that group, preserving declaration
80
- * order within the group. */
81
- const groupedDefs: Map<string, Array<ColumnDef<T, unknown>>> = $derived.by(() => {
82
- const map = new Map<string, Array<ColumnDef<T, unknown>>>();
83
- for (const def of matchingDefs) {
84
- const name = def.filterGroup ?? FALLBACK_GROUP;
85
- let bucket = map.get(name);
86
- if (!bucket) {
87
- bucket = [];
88
- map.set(name, bucket);
89
- }
90
- bucket.push(def);
58
+ if (!seen.has(name)) {
59
+ seen.add(name);
60
+ out.push(name);
91
61
  }
92
- return map;
93
- });
94
-
95
- function toggleGroup(name: string): void {
96
- if (collapsedGroups.has(name)) {
97
- collapsedGroups.delete(name);
98
- } else {
99
- collapsedGroups.add(name);
62
+ }
63
+ if (sawFallback) {
64
+ out.push(FALLBACK_GROUP);
65
+ }
66
+ return out;
67
+ });
68
+ /** Group name -> column-defs in that group, preserving declaration
69
+ * order within the group. */
70
+ const groupedDefs = $derived.by(() => {
71
+ const map = new Map();
72
+ for (const def of matchingDefs) {
73
+ const name = def.filterGroup ?? FALLBACK_GROUP;
74
+ let bucket = map.get(name);
75
+ if (!bucket) {
76
+ bucket = [];
77
+ map.set(name, bucket);
100
78
  }
79
+ bucket.push(def);
101
80
  }
102
-
103
- /**
104
- * No-op keydown handler used to override `TextInput`'s default
105
- * `passthrough` keydown (defined in `Helpers.svelte.ts`), which
106
- * blurs the focused input on every alphanumeric keypress so that
107
- * barcode-scanner buffers can flow into `UntypedInputContext`
108
- * instead. For a plain quick-find search field we want every key
109
- * to land in the input rather than the input blurring after the
110
- * first character. Returns immediately and lets the keystroke
111
- * continue to bubble so the side-panel's window-level Escape
112
- * handler still closes the panel.
113
- */
114
- function noopKeydown(_e: KeyboardEvent): void {
115
- // intentionally empty
81
+ return map;
82
+ });
83
+ function toggleGroup(name) {
84
+ if (collapsedGroups.has(name)) {
85
+ collapsedGroups.delete(name);
86
+ } else {
87
+ collapsedGroups.add(name);
116
88
  }
117
- </script>
118
-
119
- <section class="side-panel-section">
120
- <header class="side-panel-header">
121
- <h2>Advanced Filter</h2>
122
- </header>
123
-
124
- <div class="toolbar">
125
- <!-- Quick-switch dropdown for saved filter sets. Sits above the
126
- search box; saving a filter is done from the Table
127
- Configuration modal's "Save a new Filter" tab. -->
128
- <TableViewDropdown kind="filter" />
129
- <div class="quick-find">
130
- <TextInput
131
- labelTop="Quick Find a Filter"
132
- placeholder="Filter…"
133
- bind:value={quickFindValue}
134
- rightIcon={{ name: 'search', size: Size.Medium }}
135
- onkeydown={noopKeydown}
136
- />
137
- </div>
138
- </div>
139
-
140
- <div class="side-panel-body">
141
- {#if filterableDefs.length === 0}
142
- <p class="empty">No filterable columns.</p>
143
- {:else if matchingDefs.length === 0}
144
- <p class="empty">
145
- No filters match &ldquo;{quickFindValue}&rdquo;.
146
- </p>
147
- {:else}
148
- <div class="groups">
149
- {#each orderedGroupNames as groupName (groupName)}
150
- {@const defsInGroup = groupedDefs.get(groupName) ?? []}
151
- {@const isCollapsed = collapsedGroups.has(groupName)}
152
- {#if defsInGroup.length > 0}
153
- <section
154
- class="group"
155
- class:collapsed={isCollapsed}
156
- >
157
- <header class="group-header">
158
- <h3>{groupName}</h3>
159
- <Action
160
- label={isCollapsed ? `Expand ${groupName}` : `Collapse ${groupName}`}
161
- colourSet={ColourSet.Auxiliary}
162
- icon={{
163
- name: isCollapsed ? 'circle-plus' : 'circle-minus',
164
- size: Size.Medium,
165
- colour: Colour['$ui-blue-9'],
166
- }}
167
- onclick={() => {
168
- toggleGroup(groupName);
169
- }}
170
- />
171
- </header>
172
- {#if !isCollapsed}
173
- <div class="group-body">
174
- {#each defsInGroup as def (def.id)}
175
- <FilterInput
176
- {def}
177
- customFilters={tableContext.remoteFilters}
178
- />
179
- {/each}
180
- </div>
181
- {/if}
182
- </section>
183
- {/if}
184
- {/each}
185
- </div>
186
- {/if}
187
- </div>
188
- </section>
189
-
89
+ }
90
+ /**
91
+ * No-op keydown handler used to override `TextInput`'s default
92
+ * `passthrough` keydown (defined in `Helpers.svelte.ts`), which
93
+ * blurs the focused input on every alphanumeric keypress so that
94
+ * barcode-scanner buffers can flow into `UntypedInputContext`
95
+ * instead. For a plain quick-find search field we want every key
96
+ * to land in the input rather than the input blurring after the
97
+ * first character. Returns immediately and lets the keystroke
98
+ * continue to bubble so the side-panel's window-level Escape
99
+ * handler still closes the panel.
100
+ */
101
+ function noopKeydown(_e) {
102
+ // intentionally empty
103
+ }
104
+ </script>
105
+
106
+ <section class="side-panel-section">
107
+ <header class="side-panel-header">
108
+ <h2>Advanced Filter</h2>
109
+ </header>
110
+
111
+ <div class="toolbar">
112
+ <!-- Quick-switch dropdown for saved filter sets. Sits above the
113
+ search box; saving a filter is done from the Table
114
+ Configuration modal's "Save a new Filter" tab. -->
115
+ <TableViewDropdown kind="filter" />
116
+ <div class="quick-find">
117
+ <TextInput
118
+ labelTop="Quick Find a Filter"
119
+ placeholder="Filter…"
120
+ bind:value={quickFindValue}
121
+ rightIcon={{ name: 'search', size: Size.Medium }}
122
+ onkeydown={noopKeydown}
123
+ />
124
+ </div>
125
+ </div>
126
+
127
+ <div class="side-panel-body">
128
+ {#if filterableDefs.length === 0}
129
+ <p class="empty">No filterable columns.</p>
130
+ {:else if matchingDefs.length === 0}
131
+ <p class="empty">
132
+ No filters match &ldquo;{quickFindValue}&rdquo;.
133
+ </p>
134
+ {:else}
135
+ <div class="groups">
136
+ {#each orderedGroupNames as groupName (groupName)}
137
+ {@const defsInGroup = groupedDefs.get(groupName) ?? []}
138
+ {@const isCollapsed = collapsedGroups.has(groupName)}
139
+ {#if defsInGroup.length > 0}
140
+ <section
141
+ class="group"
142
+ class:collapsed={isCollapsed}
143
+ >
144
+ <header class="group-header">
145
+ <h3>{groupName}</h3>
146
+ <Action
147
+ label={isCollapsed ? `Expand ${groupName}` : `Collapse ${groupName}`}
148
+ colourSet={ColourSet.Auxiliary}
149
+ icon={{
150
+ name: isCollapsed ? 'circle-plus' : 'circle-minus',
151
+ size: Size.Medium,
152
+ colour: Colour['$ui-blue-9'],
153
+ }}
154
+ onclick={() => {
155
+ toggleGroup(groupName);
156
+ }}
157
+ />
158
+ </header>
159
+ {#if !isCollapsed}
160
+ <div class="group-body">
161
+ {#each defsInGroup as def (def.id)}
162
+ <FilterInput
163
+ {def}
164
+ customFilters={tableContext.remoteFilters}
165
+ />
166
+ {/each}
167
+ </div>
168
+ {/if}
169
+ </section>
170
+ {/if}
171
+ {/each}
172
+ </div>
173
+ {/if}
174
+ </div>
175
+ </section>
176
+
190
177
  <style>.side-panel-section {
191
178
  display: flex;
192
179
  flex-flow: column nowrap;
@@ -325,4 +312,4 @@ p.empty {
325
312
  display: flex;
326
313
  flex-flow: column nowrap;
327
314
  gap: 0.5rem;
328
- }</style>
315
+ }</style>
@@ -1,33 +1,27 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- module
6
- >
7
- import DesktopModal from '../../DesktopModal.svelte';
8
- import { cssLength } from '../../../Helpers/Helpers.svelte.js';
9
- import FilterPanel from './FilterPanel.svelte';
10
-
11
- export interface FilterPanelModalProps {
12
- onclose?: () => void;
13
- }
14
- </script>
15
-
16
- <script lang="ts">
17
- const { onclose }: FilterPanelModalProps = $props();
18
- </script>
19
-
20
- <DesktopModal
21
- width={cssLength('800px')}
22
- headerLabel="Filter by"
23
- onclose={() => onclose?.()}
24
- buttons={[{ label: 'Close', callback: () => onclose?.() }]}
25
- >
26
- <div class="flex">
27
- <FilterPanel />
28
- </div>
29
- </DesktopModal>
30
-
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ module
6
+ >import DesktopModal from "../../DesktopModal.svelte";
7
+ import { cssLength } from "../../../Helpers/Helpers.svelte.js";
8
+ import FilterPanel from "./FilterPanel.svelte";
9
+ </script>
10
+
11
+ <script lang="ts">const { onclose } = $props();
12
+ </script>
13
+
14
+ <DesktopModal
15
+ width={cssLength('800px')}
16
+ headerLabel="Filter by"
17
+ onclose={() => onclose?.()}
18
+ buttons={[{ label: 'Close', callback: () => onclose?.() }]}
19
+ >
20
+ <div class="flex">
21
+ <FilterPanel />
22
+ </div>
23
+ </DesktopModal>
24
+
31
25
  <style>.flex {
32
26
  display: flex;
33
27
  flex-flow: column nowrap;
@@ -35,4 +29,4 @@
35
29
  width: 100%;
36
30
  flex: 1;
37
31
  overflow: hidden;
38
- }</style>
32
+ }</style>