jsl-ui 10.0.3 → 10.0.5
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.
- package/docs/GridComponent.md +28 -11
- package/examples/showcase/grids.ts +3 -3
- package/lib/components/tabs/TabsStyle.scss +2 -2
- package/lib/grid.css +0 -9
- package/lib/index.css +0 -2
- package/lib/index.css.map +1 -1
- package/lib/ui/button.css +1 -1
- package/package.json +1 -1
package/docs/GridComponent.md
CHANGED
|
@@ -1,19 +1,36 @@
|
|
|
1
1
|
# GridComponent
|
|
2
2
|
|
|
3
|
+
`GridComponent<T>` wraps the grid for use in a JSL render tree. It accepts an array or promise of rows, column definitions, grid options, and an optional height.
|
|
4
|
+
|
|
3
5
|
```ts
|
|
4
6
|
import { GridComponent, NumericFormatter } from "jsl-ui";
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
interface Request { Id: number; Name: string; Amount: number; }
|
|
9
|
+
|
|
10
|
+
const grid = new GridComponent<Request>(
|
|
11
|
+
[{ Id: 1, Name: "Office supplies", Amount: 1250.5 }],
|
|
12
|
+
[
|
|
13
|
+
{ id: "Name", field: "Name", name: "Request", width: 180, sortable: true },
|
|
14
|
+
{ id: "Amount", field: "Amount", name: "Amount", width: 140,
|
|
15
|
+
sortable: true, formatter: NumericFormatter, headerCssClass: "right" }
|
|
16
|
+
],
|
|
17
|
+
{ primaryKey: "Id", showHeaderMenu: true, saveColumnsKey: "requests-grid" },
|
|
18
|
+
"360px"
|
|
11
19
|
);
|
|
12
|
-
grid.initEvents(g => { /* subscribe to grid events here */ });
|
|
13
20
|
```
|
|
14
21
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
22
|
+
## Patterns and features
|
|
23
|
+
|
|
24
|
+
- **Identity and lifecycle:** Use a unique, stable `primaryKey` and keep the component instance stable across parent renders. Register setup and event handlers with `initEvents()`; `getRef()` resolves after the grid mounts. A stable `saveColumnsKey` preserves column settings.
|
|
25
|
+
- **Columns and editing:** Set formatters, editors, widths, `sortable`, and `filterable` per column. Enable `editable` in grid options to edit cells; the demos show text, number, date, time, boolean, lookup, and custom editors. Use grid events such as `onBeforeEditCell` and `onAfterEdit` for application rules.
|
|
26
|
+
- **Derived and grouped data:** Use `addFormula(field, calculate, dependencies)` for calculated values, then `triggerAllFormulas()` for initial values. The grid's DataView supports filters, grouping, expand/collapse, and aggregators for group summaries.
|
|
27
|
+
- **Sorting and layout:** `multiColumnSort` and `numberedMultiColumnSort` support prioritized sorts. `frozenColumn`, `rowHeight`/`autoHeight`, `showColumnGroups` with each column's `columnGroup`, and footer rows cover wide or structured grids.
|
|
28
|
+
- **Interaction and rendering:** Examples include row and cell selection, manual row reordering (`allowRowMove`), custom cell formatters, rendered JSL components, asynchronous cell rendering, variable row heights, column spans, and undo/redo. Disable sorting when manual row order should remain authoritative.
|
|
29
|
+
- **Styling:** `NumericFormatter` aligns cell values; set `headerCssClass: "right"` or `"center"` explicitly to align headers. Keep `content-box` sizing on cells and headers so padding and borders do not disrupt grid measurements.
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
- [GridComponent showcase](../examples/showcase/grids.ts): sorting, editing, formatters, grouping, frozen columns, formulas, totals, and row reordering.
|
|
34
|
+
- [Focused grid demos](../examples/grid/g-01-basic.html): [large-data grouping and filters](../examples/grid/g-02-grouping.html), [custom formatters and editors](../examples/grid/g-03-customformatter-forcefit.html), [JSL cell components](../examples/grid/g-06-cellcomponents.html), [async rendering](../examples/grid/g-07-asyncrender.html), [selection](../examples/grid/g-10-selection.html), [column spans](../examples/grid/g-11-colspan.html), [undo/redo](../examples/grid/g-12-undo-redo.html), [filter row](../examples/grid/g-13-filterrow.html), and [row reordering](../examples/grid/g-14-reorder.html).
|
|
35
|
+
|
|
36
|
+
The focused demos mostly use `createJSLGrid` directly and show the underlying grid APIs; use the showcase for `GridComponent` patterns.
|
|
@@ -104,7 +104,7 @@ const editorSampleColumns: ISlickColumn[] = [
|
|
|
104
104
|
const editorCatalog = new GridComponent(editorSamples, editorSampleColumns, {
|
|
105
105
|
primaryKey: "id", editable: true, autoEdit: false, rowHeight: 38
|
|
106
106
|
}, "340px");
|
|
107
|
-
const editorCatalogStatus: IJSLVNode = { tag: "p", content: "Double-click a cell
|
|
107
|
+
const editorCatalogStatus: IJSLVNode = { tag: "p", content: "Double-click a cell to edit. Enter commits; Escape cancels.", attr: { role: "status", class: "sample-status" } };
|
|
108
108
|
editorCatalog.initEvents(grid => grid.onAfterEdit.subscribe((_event, args) => {
|
|
109
109
|
editorCatalogStatus.content = "Updated " + args.column.name + " for sample " + args.item.id + ".";
|
|
110
110
|
JSLRender.lastCreatedRenderer?.refresh();
|
|
@@ -192,7 +192,7 @@ export const gridShowcase: IJSLVNode = {
|
|
|
192
192
|
] },
|
|
193
193
|
{ tag: "div", attr: { class: "grid-samples" }, children: [
|
|
194
194
|
card("grid-basic", "Browse and sort", "30 projects. Click a heading to sort, then Shift-click other headings to add sort levels. Numbers show sorting priority. Select rows and resize or reorder columns.", basic),
|
|
195
|
-
card("grid-editable", "Edit in place", "Double-click an editable cell
|
|
195
|
+
card("grid-editable", "Edit in place", "Double-click an editable cell. Enter commits and Escape cancels. Editors retain their existing behavior and styling in this step.", editable, [edits]),
|
|
196
196
|
card("grid-editors-formatters", "Formatters and editors", "Try text, multiline, numeric, date, time, boolean, lookup, multi-lookup, and autosuggest editors. The adjacent columns demonstrate the matching display formatters; TimeFormatter displays a Date value, while TimeEditor edits a time string.", editorCatalog, [editorCatalogStatus]),
|
|
197
197
|
card("grid-grouped", "Grouped projects", "45 projects grouped by team. Expand and collapse groups independently.", grouped, [
|
|
198
198
|
{ tag: "div", attr: { class: "sample-row" }, children: [
|
|
@@ -213,4 +213,4 @@ export const gridShowcase: IJSLVNode = {
|
|
|
213
213
|
text("p", "These examples use the existing GridComponent constructor, column definitions, editors, and DataView APIs. The default row height is 40 px; rowHeight can retain a different density. Column headers fit up to two lines. Core presentation follows the shared theme and inherits the host's typography. Filter dialogs, menus, and lifecycle behavior are reserved for later steps.")
|
|
214
214
|
] }
|
|
215
215
|
]
|
|
216
|
-
};
|
|
216
|
+
};
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
background: transparent;
|
|
64
64
|
color: inherit;
|
|
65
65
|
font: inherit;
|
|
66
|
-
font-size: 0.875rem;
|
|
66
|
+
// font-size: 0.875rem;
|
|
67
67
|
font-weight: 500;
|
|
68
68
|
line-height: 1.5;
|
|
69
69
|
text-align: start;
|
|
@@ -136,4 +136,4 @@
|
|
|
136
136
|
&.tab-hidden,
|
|
137
137
|
&[hidden] { display: none; }
|
|
138
138
|
}
|
|
139
|
-
}
|
|
139
|
+
}
|
package/lib/grid.css
CHANGED
|
@@ -356,7 +356,6 @@ div.jsl-fill {
|
|
|
356
356
|
align-items: center;
|
|
357
357
|
gap: .5rem;
|
|
358
358
|
margin: 0;
|
|
359
|
-
font-size: .875rem;
|
|
360
359
|
font-weight: 500;
|
|
361
360
|
line-height: 1.25;
|
|
362
361
|
text-decoration: none;
|
|
@@ -1543,7 +1542,6 @@ input.editor-text, textarea.editor-text {
|
|
|
1543
1542
|
min-height: 2.5rem;
|
|
1544
1543
|
color: var(--jsl-color-text);
|
|
1545
1544
|
font: inherit;
|
|
1546
|
-
font-size: .875rem;
|
|
1547
1545
|
display: inline-flex;
|
|
1548
1546
|
position: relative;
|
|
1549
1547
|
}
|
|
@@ -1712,7 +1710,6 @@ input.editor-text, textarea.editor-text {
|
|
|
1712
1710
|
font: inherit;
|
|
1713
1711
|
border-radius: .625rem;
|
|
1714
1712
|
padding: 4px;
|
|
1715
|
-
font-size: .875rem;
|
|
1716
1713
|
position: absolute;
|
|
1717
1714
|
overflow: hidden;
|
|
1718
1715
|
box-shadow: 0 12px 32px #0000001f, 0 2px 6px #0000000f;
|
|
@@ -1978,7 +1975,6 @@ input.editor-text, textarea.editor-text {
|
|
|
1978
1975
|
font: inherit;
|
|
1979
1976
|
border-radius: .5rem;
|
|
1980
1977
|
padding: .5rem .75rem;
|
|
1981
|
-
font-size: .875rem;
|
|
1982
1978
|
line-height: 1.4;
|
|
1983
1979
|
transition: border-color .15s;
|
|
1984
1980
|
}
|
|
@@ -2088,7 +2084,6 @@ textarea.jsl-input {
|
|
|
2088
2084
|
color: var(--jsl-color-text);
|
|
2089
2085
|
font: inherit;
|
|
2090
2086
|
border-radius: .625rem;
|
|
2091
|
-
font-size: .875rem;
|
|
2092
2087
|
line-height: 1.5;
|
|
2093
2088
|
}
|
|
2094
2089
|
|
|
@@ -2276,7 +2271,6 @@ textarea.jsl-input {
|
|
|
2276
2271
|
flex-direction: column;
|
|
2277
2272
|
gap: .375rem;
|
|
2278
2273
|
margin: 0 0 1rem;
|
|
2279
|
-
font-size: .875rem;
|
|
2280
2274
|
display: flex;
|
|
2281
2275
|
position: relative;
|
|
2282
2276
|
}
|
|
@@ -2352,7 +2346,6 @@ textarea.jsl-input {
|
|
|
2352
2346
|
.treeview-comp {
|
|
2353
2347
|
color: var(--jsl-color-text);
|
|
2354
2348
|
font: inherit;
|
|
2355
|
-
font-size: .875rem;
|
|
2356
2349
|
line-height: 1.5;
|
|
2357
2350
|
}
|
|
2358
2351
|
|
|
@@ -2478,7 +2471,6 @@ textarea.jsl-input {
|
|
|
2478
2471
|
gap: .5rem;
|
|
2479
2472
|
margin: 0;
|
|
2480
2473
|
padding: .625rem .875rem;
|
|
2481
|
-
font-size: .875rem;
|
|
2482
2474
|
font-weight: 500;
|
|
2483
2475
|
line-height: 1.5;
|
|
2484
2476
|
text-decoration: none;
|
|
@@ -2575,7 +2567,6 @@ textarea.jsl-input {
|
|
|
2575
2567
|
vertical-align: middle;
|
|
2576
2568
|
align-items: flex-start;
|
|
2577
2569
|
gap: .625rem;
|
|
2578
|
-
font-size: .875rem;
|
|
2579
2570
|
line-height: 1.5;
|
|
2580
2571
|
display: inline-flex;
|
|
2581
2572
|
}
|
package/lib/index.css
CHANGED
|
@@ -356,7 +356,6 @@ div.jsl-fill {
|
|
|
356
356
|
align-items: center;
|
|
357
357
|
gap: .5rem;
|
|
358
358
|
margin: 0;
|
|
359
|
-
font-size: .875rem;
|
|
360
359
|
font-weight: 500;
|
|
361
360
|
line-height: 1.25;
|
|
362
361
|
text-decoration: none;
|
|
@@ -2472,7 +2471,6 @@ textarea.jsl-input {
|
|
|
2472
2471
|
gap: .5rem;
|
|
2473
2472
|
margin: 0;
|
|
2474
2473
|
padding: .625rem .875rem;
|
|
2475
|
-
font-size: .875rem;
|
|
2476
2474
|
font-weight: 500;
|
|
2477
2475
|
line-height: 1.5;
|
|
2478
2476
|
text-decoration: none;
|
package/lib/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AC+IA;EACI;;;;;AC5IJ;;;;;AAOA;;;;;;AAOA;;;;;AAMA;;;;AAKA;;;;;;;AAQA;;;;AAKA;;;;AAKA;;;;;;;AAQA;;;;AAKA;;;;AAMA;;;;;AAAA;;;;;AAAA;;;;;AAAA;;;;;AAMA;;;;AAAA;;;;AAAA;;;;AAAA;;;;AAKA;;;;AAcA;;;;AAIA;;;;AAIA;;;;;;ACnGA;;;;AAIA;;;;;;;;;;;AAWA;;;;;;;;;;;AAWA;;;;;;;;ACxBA;;;;;;;;AAOA;;;;AACA;;;;;;;;;;;AAUA;;;;;;AACA;;;;;;;;;;AASA;;;;;AACA;;;;;AACA;;;;;;;;;;;;;;AAaA;;;;AACA;;;;;;;AAMA;;;;;;AAKA;;;;;;;;AAOA;;;;AACA;;;;;;AACA;;;;;;;AAMA;;;;;;;;AAOA;;;;;;;;AAOA;;;;AACA;;;;AACA;;;;;;AAKA;;;;;;;;;;;AAUA;;;;;;;;AAOA;;;;;AACA;;;;;;;;;AAQA;;;;;AACA;;;;;;;;AACA;;;;;;AACA;EACE;;;;;AHtHF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA;;;;AAMA;;;;AAKA;;;;;AAMA;;;;;;AAMA;;;;;AAKA;;;;;AAMA;;;;;;;AAQA;;;;;AAKA;;;;;;;AAOA;;;;;;AAMA;;;;;;AAMA;;;;;;;;;;;AAWA;;;;;;;AAQA;;;;;;;;;;;;AAYA;;;;;;;;AAUA;EACI;;;;;AI9IJ;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;AAsBA;;;;AACA;;;;AACA;;;;;AAEA;;;;;;;;;;;;;;;AAeA;;;;;;AACA;;;;;AAEA;;;;;;;;;;;;;;;;;;;AAmBA;;;;;;;;;;AAUA;;;;AACA;;;;;AACA;;;;;AAEA;;;;;;;;;;;AAWA;;;;;;;;;;AAUA;;;;;;;;AAQA;;;;AACA;;;;AACA;;;;AAEA;;;;;;;;;;AASA;;;;;;;;;;;AAWA;EACI;;;;;EACA;;;;EACA;;;;EACA;;;;;AC/IJ;;;;ACEA;;;;;;;;;;;;;;;;;;;AAmBA;;;;;;AACA;;;;;;;;;;;;;;;;;;;;;;AAqBA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;;;;;;;;AAcA;;;;AACA;;;;;AACA;;;;;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;AAiBA;;;;AACA;;;;;;;;;;AASA;;;;;;;AAMA;;;;;AACA;;;;;AACA;;;;;;;;;;;;AACA;EAA0C;;;;;AC/F1C;;;;;;;;AAQA;;;;AAIA;;;;AAAA;;;;AAAA;;;;AAIA;;;;;;;AAOA;;;;;;;;;;;;;;;;AAmBA;;;;;AAKA;;;;;;;;;;;;;;;;;AAkBA;;;;AAIA;;;;AAIA;;;;;;;;AASA;;;;;;;;;;;;AAuCA;;;;;AAKA;;;;;;AAMA;;;;;;;;;;;;;;;AAkBiB;;;;AAGjB;;;;AAIA;;;;AAIA;;;;;;AASA;;;;AAIA;;;;;AAQA;;;;AAIA;;;;;;;;AAQA;;;;;;;;AAQA;;;;;;AAMA;;;;;;;AAOA;;;;AAIA;;;;;AAKA;;;;AAIA;;;;;;;AAOA;;;;AAKA;;;;;;;;;;;AAWA;;;;;AAQA;;;;AAIA;;;;;;AAMA;;;;;;AAMA;;;;;;;;AAQA;;;;AAIA;;;;;AAKA;;;;;AAKA;;;;AAQA;;;;AAIA;;;;;AAiBA;;;;;ACrUA;;;;;AAKA;;;;;;AAMA;;;;;AAMA;;;;AAIA;;;;AAIA;;;;;;AAUA;;;;;;;;;AAUA;;;;;AAKA;;;;;;AAQA;;;;;;;AAOA;;;;;;;AAOA;;;;;AAKA;;;;;AAKA;;;;AAIA;;;;;;AAMA;;;;;;;;AAQA;;;;;AAIA;;;;;AAIA;;;;;AAKA;;;;;;;AAOA;;;;AAIA;;;;;AAKA;;;;AAIA;;;;AAIA;;;;AAIA;;;;;AAKA;;;;;;AAUA;;;;;;;;;;AAsBA;;;;;AAKA;;;;;;AAKA;;;;AAKA;;;;AACA;;;;AACA;;;;AAGA;;;;;;;;;;;;;AAYA;;;;AACA;;;;;;;;;;;AAWA;;;;AACA;;;;;;AAEA;;;;;;;;;;;AAUA;;;;AACA;;;;AACA;;;;;;AACA;;;;;AAGA;;;;;;;;;;;;;ACxPA;;;;;;;;;;;;;;AAeA;;;;AAIA;;;;AAMA;;;;;;;;AAUA;;;;;;;AAOA;;;;;;;;;;AAUA;;;;;AAOA;;;;AAKA;;;;;;;;;;AASA;;;;AAIA;;;;;;;;AASA;;;;;AAKA;;;;;AAKA;;;;;ACjGA;;;;;;AAWA;;;;;;;;;;;;AAkBA;;;;;AAQA;;;;ACrCA;;;;ACAA;;;;;;;ACCA;;;;AAIA;;;;;;;AAQA;;;;;;;;;;;AAWA;;;;;ACtBA;;;;;;;;;;;;;AAaA;;;;AACA;;;;;;;;;;;;;;;;;;;;AAmBA;;;;AACA;;;;AACA;;;;AACA;;;;;AAIA;;;;;;;;AAOA;;;;AACA;;;;;;AACA;;;;;;;;;;AASA;;;;AACA;;;;;AACA;;;;;;;;;;;;;;;;;;;;;AAoBA;;;;;AACA;;;;AACA;;;;;;AAKA;;;;;AACA;;;;AAEA;;;;;;;AACA;;;;;AACA;;;;;;;;;;;;;;;AAcA;;;;;AACA;;;;;;;;;;;;;;AAcA;;;;;;;AACA;;;;;AACA;;;;AACA;;;;;;;;;;;;;;;;;AAgBA;;;;AACA;;;;;AACA;;;;;;;AACA;;;;;AACA;;;;;;;;;;;;;;;AAcA;;;;AACA;;;;AACA;;;;;AACA;;;;;;;;;;;AAUA;;;;;AACA;;;;;;;;;;;AAUA;;;;;AACA;;;;;;;;AACA;;;;;;;;AAOA;;;;;;;AACA;;;;AACA;;;;AACA;;;;;;;;;;AACA;EACI;;;;EACA;;;;;AAEJ;EACI;;;;;EACA;;;;;ACzMJ;;;;;;;;;;;;;;;;;;AAiBA;;;;;;;;;;;AAUA;;;;;AACA;;;;ACIA;EAA0C;;;;;ACjC1C;;;;;;;;AACA;;;;AACA;;;;;;AACA;;;;;;;;;;ADFA;;;;;;;;;;;;;;;;AAgBA;;;;AACA;;;;;;AAKA;;;;;AACA;;;;;;AAKA;;;;AACA;;;;;;AACA;;;;;;AACA;;;;AACA;EAA0C;;;;;AEhC1C;;;;;AACA;;;;;;;AAMA;;;;AACA;;;;;ACRA;;;;;AACA;;;;ACHA;;;;;;;;AAOA;;;;AACA;;;;AACA;;;;ACPA;;;;;;;;;;;AAWA;;;;;;;;;AAQA;;;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;AAiBA;;;;AACA;;;;;AACA;;;;;;;AACA;;;;;AACA;;;;;AACA;;;;;;;;;AAQA;;;;AACA;;;;;;AACA;;;;AACA;;;;AACA;;;;;;AACA;;;;;AACA;;;;;;;;;;AACA;EAA0C;;;;;AC1D1C;;;;;;;;;;;AACA;;;;;;;;;AACA;;;;;;;;;;;;AAWA;;;;;AACA;;;;;;;;;;;;AACA;;;;;;AACA;EAA0C;;;;;AChB1C;;;;;;;;;;;;AAYA;;;;;;;;AACA;;;;AACA;;;;AACA;;;;;;;;AACA;;;;AAEA;;;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;;;AASA;;;;AClCA;;;;;;AAGA;;;;;;AACA;;;;;;AACA;;;;AACA;;;;;;;;;;AACA;;;;AACA;;;;AACA;;;;;AACA;;;;;;;;;;AACA;;;;AACA;;;;ACXA;;;;;;AAKI;;;;;;;;;;;AAWA;;;;;;;;;;;;;;;AAcI;;;;;AAKA;;;;;AAKA;;;;;;;AAQJ;;;;;;;;;;;;;;;;;;;;;;;AAuBA;;;;AACA;;;;;AAOA;;;;;;;AAOA;;;;;;;;;;;;;;;;;;AAiBI;;;;;;;;;;AAUA;;;;AACA;;;;;AACA;;;;;;AAGJ;;;;;AAKA;;;;;;;;;;AASI;;;;;AACA;;;;ACrIR;;;;;;;;;;;AAWA;;;;;;;;;;;;;;;;;;;AAmBA;;;;;;;;;;;AAUA;;;;;AAIA;;;;AACA;;;;;;;;AAOA;;;;;AACA;;;;AACA;;;;;AAKA;;;;AACA;;;;;;AACA;;;;;;;;AACA;;;;AACA;;;;;;AACA;;;;;;;AACA;;;;;AACA;EAA0C;;;;;AAC1C;EACI;;;;EACA;;;;;ACtEJ;;;;;;;AACA;;;;;AACA;;;;AACA;;;;AACA;;;;;;AACA;EACI;;;;EACA;;;;;EACA;;;;;ACRJ;;;;;;;;;;;AACA;;;;;;;AACA;;;;AACA;;;;;;;;;AACA;;;;AACA;;;;;;;;;AACA;;;;AACA;;;;ACRA;;;;;;;AAMA;;;;;;;AAMA;;;;AACA;;;;;;;;;AAQA;;;;AACA;;;;;AACA;;;;AACA;;;;;;;;;AAQA;EACI;;;;EACA;;;;;;;;;AC3BJ;;;;;;;;;;AAaA;;;;AAGA;;;;;;;AASA;;;;;AAIA;;;;;;;;;;;AAaA;;;;;AAIA;;;;;AAMA;;;;;AAOA;;;;AAGA;;;;AAGA;;;;;AAKA;;;;;AAIA;;;;AAKA;;;;AAKA;;;;AAGA;;;;;;;AAMA;;;;AAGA;;;;;;;AAMA;;;;;AAOA;;;;;;;AAMA;;;;AAGA;;;;AAKA;;;;AAGA;;;;AAGA;;;;;;;;AAOA;;;;AAKA;;;;AAGA;;;;AAQA;;;;AAKA;;;;;AAOA;;;;;;AAKA;;;;;AAOA;;;;;AAIA;;;;AASA;;;;;;;;AAOA;;;;AAIA;;;;AAIA;;;;;;AAKA;;;;AAGA;;;;AAMA;;;;;;;AAMA;;;;;AAKA;;;;AAIA;;;;;;AAKA;;;;AAGA;;;;AAGA;;;;;;;;;;;;AAWA;;;;;;AAMA;;;;;;AAMA;;;;;;AAMA;;;;;;AAQA;;;;;;;AACA;;;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;AACA;;;;;AACA;;;;;;;ACvSA;;;;;;;;;AAUA;;;;;;AAMA;;;;;ACdA;;;;;;;;;;;;AAGI;;;;AACA;;;;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEJ;;;;;;;;;;AACA;;;;;;;;;;;;AACA;;;;;;AACA;;;;;;;;AACA;;;;AACA;;;;;AACA;;;;;;AACA;;;;;;;;;;;;;;;;AAKA;;;;;;;;AACA;;;;;AACA;;;;AACA;;;;;AACA;;;;AACA;;;;;AACA;;;;;;;AACA;;;;;;;;;;AACA;;;;AACA;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;;;AACA;;;;;AACA;;;;;;;AACA;;;;;;;;AACA;;;;;;;AACA;;;;AACA;;;;AACA;;;;;AACA;;;;;AAUA;EAPI;;;;EACA;;;;EACA;;;;;;;;;;EACA;;;;EACA;;;;EACA;;;;;;;;;;;;;;;AAGJ;EARI;;;;EACA;;;;EACA;;;;;;;;;;EACA;;;;EACA;;;;EACA;;;;;;;;;;;;;;;ACzDJ;;;;;;;;;;;;;;AACA;;;;;;;;;AACA;;;;;AACA;;;;;;;;AACA;;;;;;ACFA;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;;;;;;;;;;;;;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;;AACA;;;;;;;AACA;;;;;;;AACA;;;;;;AACA;;;;;AACA;;;;;;;;;;;;;;;AACA;;;;;AACA;;;;;AACA;;;;AACA;;;;AACA;;;;;;AACA;;;;;;AACA;EAA0C","sources":["d22a53f1230b93fd","ui/button.css","ui/base.css","interaction/resizable.css","ui/date.picker/css/tiny-date-picker.css","ui/dialog.css","ui/number.input.css","components/notification/Notification.scss","grid/slick.grid.css","grid/slick-default-theme.css","grid/plugins/slick.headermenu.css","grid/plugins/slick.headerbuttons.css","components/virtual-render/VirtualRenderStyle.scss","grid/plugins/slick.rowmovemanager.css","grid/plugins/ext.overlay.css","components/select/SelectStyle.scss","ui/auto.suggest.css","ui/input.css","components/progress/ProgressStyle.scss","ui/date-input.css","components/time/TimeComponent.scss","components/date-time/DateTimeStyle.scss","components/expander/ExpanderStyle.scss","components/loading/LoadingStyle.css","components/form-field/FormFieldStyle.scss","components/tree-view/TreeViewStyle.scss","components/tabs/TabsStyle.scss","components/checkbox/CheckBoxStyle.scss","components/stack-panel/StackPanelStyle.scss","components/stack-panel/SplitterStyle.scss","components/date-range/DateRangeStyle.scss","components/slider/nouislider.css","grid/slick.tree.css","components/navigation/NavigationStyle.scss","components/ribbon-menu/RibbonMenuStyle.scss","ui/theme.css","components/overlay/overlay.css"],"sourcesContent":["@import \"e16a212e80fd4ff5\";\n@import \"6e953617ad2919d0\";\n@import \"3f9425748b62f903\";\n@import \"155ecbc209f78c3a\";\n@import \"832c8c23bb08fb7e\";\n@import \"d7bc4616686d5346\";\n@import \"173f96014972390c\";\n@import \"2f7e6d939cbb7c9f\";\n@import \"1b912c1b6ddd56ae\";\n@import \"3da3f80f93c57757\";\n@import \"0f415a6d1b73f253\";\n@import \"4602bf96ce909f51\";\n@import \"9fa920eb23d3eb99\";\n@import \"f1c4cfde611f7d73\";\n@import \"749bffc8dd935f0b\";\n@import \"43f39180a39af74f\";\n@import \"6083aae1e468db03\";\n@import \"8d28f990853a7ca3\";\n@import \"5b450a3ee9e5ef31\";\n@import \"17b6bae7507b6596\";\n@import \"dc0e935f30eeb1c2\";\n@import \"c2e0d971d37e8dbc\";\n@import \"fcc834650d910688\";\n@import \"daaf2302c4fba847\";\n@import \"e6d604ce93ac26ae\";\n@import \"4bbc6de33d20d085\";\n@import \"2d962d8828ea317e\";\n@import \"d83402cfcb3109fb\";\n@import \"955408ff01c48cd4\";\n@import \"c08391d63f8bc5bd\";\n@import \"8f913806dd34cce7\";\n@import \"9ebbe8329f06efe7\";\n@import \"6aadc2cc16e17a8b\";\n@import \"7a8ed48922c21ae2\";\n@import \"ed9e5da5f9b98312\";\n","@import \"./theme.css\";\n\n/* Shared by ButtonComponent and manual buttons/links using .jsl-button.\n Include link states so generic a:hover/a:visited rules cannot replace the text styling.\n Override --jsl-button-* variables on a container or individual button. */\n.jsl-button,\n.jsl-button:any-link {\n --jsl-button-height: 2rem;\n --jsl-button-padding: 0.875rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n position: relative;\n box-sizing: border-box;\n height: var(--jsl-button-height);\n margin: 0;\n padding: 0 var(--jsl-button-padding);\n vertical-align: middle;\n border: 1px solid transparent;\n border-radius: var(--jsl-button-radius, 0.375rem);\n background: var(--jsl-button-primary, var(--jsl-color-accent));\n color: var(--jsl-button-on-primary, var(--jsl-color-on-accent));\n font: inherit;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.25;\n letter-spacing: normal;\n text-align: center;\n text-decoration: none;\n text-transform: none;\n white-space: nowrap;\n cursor: pointer;\n transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;\n}\n\n.jsl-button,\nbutton.jsl-button[type] {\n -webkit-appearance: none;\n appearance: none;\n}\n\n.jsl-button:where(:hover),\n.jsl-button:any-link:where(:hover) {\n background: var(--jsl-button-primary-hover, var(--jsl-color-accent-hover));\n}\n\n.jsl-button:where(:active, .active, [aria-pressed=\"true\"]),\n.jsl-button:any-link:where(:active, .active, [aria-pressed=\"true\"]) {\n background: var(--jsl-button-primary-active, var(--jsl-color-accent-active));\n box-shadow: inset 0 0 0 1px currentColor;\n}\n\n.jsl-button.jsl-button-outline {\n border-color: var(--jsl-button-border, var(--jsl-color-border));\n background: var(--jsl-button-surface, var(--jsl-color-surface));\n color: var(--jsl-button-text, var(--jsl-color-text));\n}\n\n.jsl-button.jsl-button-ghost {\n background: transparent;\n color: var(--jsl-button-text, var(--jsl-color-text));\n}\n\n.jsl-button.jsl-button-outline:where(:hover),\n.jsl-button.jsl-button-ghost:where(:hover) {\n background: var(--jsl-button-hover-surface, var(--jsl-color-surface-hover));\n border-color: var(--jsl-button-border, var(--jsl-color-border));\n}\n\n.jsl-button.jsl-button-outline:where(:active, .active, [aria-pressed=\"true\"]),\n.jsl-button.jsl-button-ghost:where(:active, .active, [aria-pressed=\"true\"]) {\n background: var(--jsl-button-selected-surface, var(--jsl-color-surface-selected));\n border-color: var(--jsl-button-primary, var(--jsl-color-accent));\n color: var(--jsl-button-selected-text, var(--jsl-color-text));\n box-shadow: none;\n}\n\n.jsl-button:focus-visible {\n outline: 2px solid var(--jsl-button-focus, var(--jsl-color-focus));\n outline-offset: 3px;\n}\n\n.jsl-button.jsl-button-small {\n --jsl-button-height: 1.75rem;\n --jsl-button-padding: 0.625rem;\n gap: 0.375rem;\n font-size: 0.8125rem;\n}\n\n.jsl-button.jsl-button-large {\n --jsl-button-height: 2.5rem;\n --jsl-button-padding: 1rem;\n font-size: 0.9375rem;\n}\n\n.jsl-button.jsl-button-icon-only {\n width: var(--jsl-button-height);\n padding: 0;\n flex-shrink: 0;\n}\n\n.jsl-button-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 1.125em;\n height: 1.125em;\n line-height: 1;\n pointer-events: none;\n}\n\n.jsl-button-icon > img,\n.jsl-button-icon > svg {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.jsl-button-label-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n.jsl-button:disabled,\n.jsl-button.disabled,\n.jsl-button[aria-disabled=\"true\"] {\n background: var(--jsl-button-disabled-surface, var(--jsl-color-disabled-surface));\n border-color: var(--jsl-button-disabled-border, var(--jsl-color-border-subtle));\n color: var(--jsl-button-disabled-text, var(--jsl-color-disabled-text));\n box-shadow: none;\n cursor: not-allowed;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .jsl-button { transition: none; }\n}\n\n","@import \"./button.css\";\r\n\r\n/* reset some browser inconsistencies */\r\n\r\nhtml\r\n{\r\n\t/* line-height:1.15; */\r\n\t-ms-text-size-adjust:100%;\r\n\t-webkit-text-size-adjust:100%\r\n}\r\n\r\nhr\r\n{\r\n\tbox-sizing:content-box;\r\n\theight:0;\r\n\toverflow:visible\r\n}\r\n\r\npre,code\r\n{\r\n\tfont-family:monospace,monospace;\r\n\tfont-size:1em\r\n}\r\n\r\na\r\n{\r\n\t-webkit-text-decoration-skip:objects\r\n}\r\n\r\nsub,sup\r\n{\r\n\tfont-size:75%;\r\n\tline-height:0;\r\n\tposition:relative;\r\n\tvertical-align:baseline\r\n}\r\n\r\nsub\r\n{\r\n\tbottom:-.25em\r\n}\r\n\r\nsup\r\n{\r\n\ttop:-.5em\r\n}\r\n\r\ninput,optgroup,select,textarea\r\n{\r\n\tfont-size:100%;\r\n\tline-height:1.15;\r\n\tmargin:0;\r\n\ttext-transform:none;\r\n}\r\n\r\nbutton,input\r\n{\r\n\toverflow:visible\r\n}\r\n\r\nbutton,html [type=\"button\"],\r\n[type=\"reset\"],[type=\"submit\"]\r\n{\r\n\t-webkit-appearance:button\r\n}\r\n\r\nbutton::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner\r\n{\r\n\tborder-style:none;\r\n\tpadding:0\r\n}\r\n\r\nbutton:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring\r\n{\r\n\toutline:1px dotted ButtonText\r\n}\r\n\r\ntextarea\r\n{\r\n\toverflow:auto\r\n}\r\n\r\n/* \r\nhtml {\r\n color: #393939;\r\n} */\r\n\r\n/* html,input,textarea,button,optgroup,select {\r\n\tfont-family: Tahoma;\r\n} */\r\n\r\n.right {\r\n\ttext-align: right;\r\n}\r\n\r\n.center {\r\n\ttext-align: center;\r\n}\r\n\r\ndiv.jsl-fill {\r\n\theight: 100%;\r\n\tbox-sizing: border-box;\r\n\tposition: relative;\r\n}\r\n",".resizable {\r\n position: relative;\r\n}\r\n\r\n.resizable > .rs-r {\r\n position: absolute;\r\n top:0;\r\n bottom:0;\r\n right:0;\r\n width:0.5rem;\r\n box-sizing:border-box;\r\n background:rgba(20,20,20,0.2);\r\n cursor: w-resize;\r\n}\r\n\r\n.resizable > .rs-b {\r\n position: absolute;\r\n left:0;\r\n bottom:0;\r\n right:0;\r\n height:0.5rem;\r\n box-sizing:border-box;\r\n background:rgba(20,20,20,0.2);\r\n cursor: n-resize;\r\n}\r\n\r\n.resizable > .rs-r.rs-b {\r\n top: initial;\r\n left: initial;\r\n right: 0;\r\n bottom: 0;\r\n cursor: nw-resize;\r\n}","@import \"../../theme.css\";\n\n.dp-below, .dp-modal, .dp-permanent {\n box-sizing: border-box;\n color: var(--jsl-color-text);\n font: inherit;\n font-size: .875rem;\n line-height: 1.4;\n}\n.dp-below *, .dp-modal *, .dp-permanent * { box-sizing: border-box; }\n.dp {\n width: 19rem;\n max-width: calc(100vw - 1rem);\n border: 1px solid var(--jsl-color-border);\n border-radius: .875rem;\n background: var(--jsl-color-surface);\n box-shadow: 0 12px 32px rgba(0, 0, 0, .14), 0 2px 6px rgba(0, 0, 0, .06);\n overflow: auto;\n max-height: calc(100dvh - 1rem);\n}\n.dp-below { position: fixed; z-index: 2200; width: max-content; }\n.dp-modal {\n position: fixed;\n inset: 0;\n z-index: 2300;\n display: grid;\n place-items: center;\n padding: .5rem;\n background: var(--jsl-color-overlay);\n}\n.dp-permanent { display: inline-block; max-width: 100%; }\n.dp-permanent .dp { box-shadow: none; max-width: 100%; }\n.dp button {\n appearance: none;\n border: 0;\n background: transparent;\n color: inherit;\n border-radius: .4rem;\n padding: .5rem;\n font: inherit;\n line-height: 1.4;\n cursor: pointer;\n text-align: center;\n margin: 0;\n}\n.dp button:hover:not(:disabled) { background: var(--jsl-color-surface-hover); }\n.dp button:focus-visible {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: -2px;\n position: relative;\n z-index: 1;\n}\n.dp button:disabled {\n color: var(--jsl-color-disabled-text);\n cursor: not-allowed;\n opacity: .4;\n}\n.dp-cal-header {\n display: grid;\n grid-template-columns: 2rem 1fr auto 2rem;\n align-items: center;\n gap: .125rem;\n padding: .75rem .625rem .5rem;\n}\n.dp-cal-header button { font-weight: 600; }\n.dp .dp-prev, .dp .dp-next { font-size: 1.375rem; line-height: 1; padding: .35rem; }\n.dp-days {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: .125rem;\n padding: 0 .625rem .625rem;\n}\n.dp-col-header {\n color: var(--jsl-color-text-muted);\n text-align: center;\n font-size: .6875rem;\n font-weight: 500;\n padding: .5rem 0;\n}\n.dp .dp-day {\n position: relative;\n padding: .45rem 0;\n min-height: 2.125rem;\n font-size: .8125rem;\n font-variant-numeric: tabular-nums;\n}\n.dp .dp-edge-day { color: var(--jsl-color-text-muted); }\n.dp .dp-current:not(.dp-selected) { background: var(--jsl-color-surface-selected); }\n.dp .dp-selected, .dp .dp-selected:hover:not(:disabled) {\n background: var(--jsl-color-accent);\n color: var(--jsl-color-on-accent);\n font-weight: 600;\n}\n.dp-day-today::after {\n content: \"\";\n position: absolute;\n width: 3px;\n height: 3px;\n bottom: 3px;\n left: calc(50% - 1.5px);\n border-radius: 50%;\n background: currentColor;\n}\n.dp-cal-footer {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: .25rem;\n border-top: 1px solid var(--jsl-color-border-subtle);\n padding: .5rem .625rem;\n}\n.dp-cal-footer button { font-size: .75rem; font-weight: 500; }\n.dp-months {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: .375rem;\n padding: .75rem;\n min-height: 15rem;\n align-content: center;\n}\n.dp-months button { font-size: .75rem; padding: .875rem .25rem; }\n.dp-years { padding: .75rem; height: 19rem; overflow-y: auto; display: grid; gap: .25rem; }\n.dp-years button { display: block; width: 100%; padding: .625rem; }\n@media (forced-colors: active) {\n .dp .dp-selected { outline: 2px solid Highlight; }\n}\r\n","@import \"./button.css\";\n\n.jsl-dialog-overlay {\n position: fixed;\n inset: 0;\n z-index: var(--jsl-dialog-z-index, 2001);\n background: var(--jsl-dialog-backdrop, var(--jsl-color-overlay));\n}\n\n.jsl-dialog {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n width: 32rem;\n max-width: calc(100% - 2rem);\n max-height: calc(100% - 2rem);\n border: 1px solid var(--jsl-dialog-border, var(--jsl-color-border-subtle));\n border-radius: var(--jsl-dialog-radius, 0.75rem);\n background: var(--jsl-dialog-surface, var(--jsl-color-surface));\n color: var(--jsl-color-text);\n box-shadow: var(--jsl-dialog-shadow, var(--jsl-shadow-dialog));\n font: inherit;\n line-height: 1.5;\n pointer-events: auto;\n isolation: isolate;\n}\n\n.jsl-dialog:focus { outline: none; }\n.jsl-dialog.resizable { position: absolute; }\n.jsl-dialog:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }\n\n.jsl-dialog > .dlg-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex: 0 0 auto;\n box-sizing: border-box;\n min-width: 0;\n padding: 1.125rem 1.5rem;\n border-bottom: 1px solid var(--jsl-color-border-subtle);\n border-radius: var(--jsl-dialog-radius, 0.75rem) var(--jsl-dialog-radius, 0.75rem) 0 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5;\n}\n\n.jsl-dialog .dlg-title { flex: 1; min-width: 0; overflow-wrap: anywhere; }\n.jsl-dialog-moveable > .dlg-header { cursor: move; touch-action: none; }\n\n.jsl-dialog .dlg-close-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 2rem;\n height: 2rem;\n margin: -0.25rem -0.5rem -0.25rem auto;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 0.375rem;\n background: transparent;\n color: var(--jsl-color-text-secondary);\n font: inherit;\n cursor: pointer;\n}\n\n.jsl-dialog .dlg-close-btn::before,\n.jsl-dialog .dlg-close-btn::after {\n content: \"\";\n position: absolute;\n width: 0.875rem;\n height: 1.5px;\n border-radius: 1px;\n background: currentColor;\n transform: rotate(45deg);\n}\n.jsl-dialog .dlg-close-btn::after { transform: rotate(-45deg); }\n.jsl-dialog .dlg-close-btn:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.jsl-dialog .dlg-close-btn:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n\n.jsl-dialog > .dlg-body {\n flex: 1 1 auto;\n box-sizing: border-box;\n min-height: 0;\n min-width: 0;\n padding: 1.5rem;\n overflow: auto;\n overflow-wrap: anywhere;\n overscroll-behavior: contain;\n}\n\n.jsl-dialog > .dlg-footer {\n flex: 0 0 auto;\n box-sizing: border-box;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--jsl-color-border-subtle);\n border-radius: 0 0 var(--jsl-dialog-radius, 0.75rem) var(--jsl-dialog-radius, 0.75rem);\n background: var(--jsl-color-surface-subtle);\n text-align: end;\n}\n\n.jsl-dialog > .dlg-footer > div,\n.jsl-dialog > .dlg-footer > form {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.jsl-dialog > .dlg-footer > button + button { margin-inline-start: 0.5rem; }\n.jsl-dialog > .dlg-header[hidden], .jsl-dialog > .dlg-footer[hidden] { display: none; }\n.jsl-dialog .slickgrid { border-radius: 0; }\n\n.jsl-dialog.resizable > .dlg-res-handle.rs-r.rs-b {\n width: 1rem;\n height: 1rem;\n right: 0.125rem;\n bottom: 0.125rem;\n background: transparent;\n cursor: nwse-resize;\n touch-action: none;\n}\n.jsl-dialog .dlg-res-handle::after {\n content: \"\";\n position: absolute;\n right: 0.2rem;\n bottom: 0.2rem;\n width: 0.4rem;\n height: 0.4rem;\n border-right: 1px solid var(--jsl-color-text-muted);\n border-bottom: 1px solid var(--jsl-color-text-muted);\n}\n\n@media (max-width: 480px) {\n .jsl-dialog { max-width: calc(100% - 1.5rem); max-height: calc(100% - 1.5rem); }\n .jsl-dialog > .dlg-header { padding: 1rem 1.125rem; }\n .jsl-dialog > .dlg-body { padding: 1.125rem; }\n .jsl-dialog > .dlg-footer { padding: 0.875rem 1.125rem; }\n}\r\n",".jsl-number {\r\n text-align: right;\r\n}","@import \"../../ui/theme.css\";\n\n.jsl-notification-container {\n position: fixed;\n top: 0;\n right: 0;\n width: 25rem;\n max-width: 100vw;\n max-height: 100dvh;\n overflow-y: auto;\n z-index: 3020;\n // Leave space for individual shadows so scrolling doesn't crop them into a rectangle.\n box-sizing: border-box;\n padding: 1rem;\n background: transparent;\n border: 0;\n border-radius: 1.75rem;\n box-shadow: none;\n pointer-events: none;\n scrollbar-width: thin;\n}\n.jsl-notification-container > div { display: flex; flex-direction: column; gap: .75rem; }\n.jsl-notification {\n position: relative;\n --jsl-notification-tone: var(--jsl-color-text-secondary);\n display: grid;\n grid-template-columns: 1.25rem minmax(0, 1fr) auto;\n align-items: start;\n gap: .75rem;\n box-sizing: border-box;\n width: 100%;\n padding: 1rem;\n border: 1px solid var(--jsl-color-border);\n border-radius: .75rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n font-size: .8125rem;\n line-height: 1.5;\n box-shadow: 0 8px 24px rgba(0,0,0,.1), 0 1px 4px rgba(0,0,0,.04);\n pointer-events: auto;\n animation: jsl-notification-appear .16s ease-out;\n}\n.jsl-notification[hidden] { display: none; }\n.jsl-notification--info { --jsl-notification-tone: var(--jsl-color-info); }\n.jsl-notification--success { --jsl-notification-tone: var(--jsl-color-success); }\n.jsl-notification--warning { --jsl-notification-tone: var(--jsl-color-warning); }\n.jsl-notification--error { --jsl-notification-tone: var(--jsl-color-danger); }\n.jsl-notification-icon {\n display: grid;\n place-items: center;\n box-sizing: border-box;\n width: 1.125rem;\n height: 1.125rem;\n margin-top: .125rem;\n border: 1.5px solid currentColor;\n border-radius: 50%;\n color: var(--jsl-notification-tone);\n font-size: .6875rem;\n font-weight: 700;\n line-height: 1;\n}\n.jsl-notification--success .jsl-notification-icon { font-size: .75rem; }\n.jsl-notification-copy { min-width: 0; overflow-wrap: anywhere; }\n.jsl-notification-title { margin-bottom: .25rem; font-weight: 600; color: var(--jsl-color-text); }\n.jsl-notification-title[hidden] { display: none; }\n.jsl-notification-close {\n appearance: none;\n display: grid;\n place-items: center;\n width: 1.5rem;\n height: 1.5rem;\n margin: -.125rem -.25rem 0 0;\n padding: 0;\n border: 0;\n border-radius: .25rem;\n background: transparent;\n color: var(--jsl-color-text-muted);\n font: inherit;\n font-size: 1.125rem;\n line-height: 1;\n cursor: pointer;\n}\n.jsl-notification-close[hidden] { display: none; }\n.jsl-notification-progress {\n position: absolute;\n inset: auto 1rem .375rem;\n height: 3px;\n border-radius: 999px;\n overflow: hidden;\n background: var(--jsl-color-border-subtle);\n pointer-events: none;\n}\n.jsl-notification-progress-fill {\n display: block;\n height: 100%;\n background: var(--jsl-color-accent);\n transform-origin: left;\n}\n.jsl-notification-close:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.jsl-notification-close:focus-visible, .jsl-notification:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n@keyframes jsl-notification-appear { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }\n@media (prefers-reduced-motion: reduce) { .jsl-notification { animation: none; } }\r\n","/*\r\nIMPORTANT:\r\nIn order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.\r\nNo built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS\r\nclasses should alter those!\r\n*/\r\n\r\n.slick-header.ui-state-default, .slick-headerrow.ui-state-default, .slick-footerrow.ui-state-default, .slick-top-panel-scroller.ui-state-default, .slick-group-header.ui-state-default {\r\n width: 100%;\r\n overflow: auto;\r\n position: relative;\r\n border-left: 0px !important;\r\n background: var(--jsl-color-surface);\r\n}\r\n\r\n.slick-header.ui-state-default {\r\n overflow: inherit;\r\n}\r\n\r\n.slick-header::-webkit-scrollbar, .slick-headerrow::-webkit-scrollbar, .slick-footerrow::-webkit-scrollbar {\r\n display: none\r\n}\r\n\r\n.slick-header-columns, .slick-headerrow-columns, .slick-footerrow-columns, .slick-group-header-columns {\r\n position: relative;\r\n white-space: nowrap;\r\n cursor: default;\r\n overflow: hidden;\r\n}\r\n\r\n.slick-header-column.ui-state-default, .slick-group-header-column.ui-state-default {\r\n position: relative;\r\n /* display: inline-block; */\r\n box-sizing: content-box !important; /* this here only for Firefox! */ \r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n height: 20px;\r\n line-height: 20px;\r\n margin: 0;\r\n padding: 4px;\r\n border-right: 1px solid var(--jsl-color-border-subtle);\r\n border-left: 0px !important;\r\n border-top: 1px solid var(--jsl-color-border-subtle);\r\n border-bottom: 0px !important;\r\n float: left;\r\n}\r\n\r\n/* Column headers fit up to two lines; grouped headers retain their existing size. */\r\n.slick-header-column.ui-state-default {\r\n height: var(--jsl-grid-header-height, 40px);\r\n line-height: var(--jsl-grid-header-height, 40px);\r\n}\r\n\r\n.slick-footerrow-column.ui-state-default {\r\n top: 0;\r\n bottom: 0;\r\n height: auto;\r\n align-content: center;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n margin: 0;\r\n padding: 4px;\r\n border-right: 1px solid var(--jsl-color-border-subtle);\r\n border-left: 0px;\r\n border-top: 0px;\r\n border-bottom: 0px;\r\n float: left;\r\n line-height: 20px;\r\n vertical-align: middle;\r\n}\r\n\r\n.slick-headerrow-column.ui-state-default, .slick-footerrow-column.ui-state-default {\r\n padding: 4px;\r\n}\r\n\r\n.slick-header-column-sorted {\r\n font-style: inherit;\r\n}\r\n\r\n.slick-sort-indicator {\r\n /* display: inline-block; */\r\n width: 8px;\r\n height: 5px;\r\n margin-left: 4px;\r\n margin-top: 6px;\r\n float: left;\r\n}\r\n\r\n.slick-sort-indicator-numbered {\r\n /* display: inline-block; */\r\n width: 8px;\r\n height: 5px;\r\n margin-left: 4px;\r\n margin-top: 0;\r\n line-height: 20px;\r\n float: left;\r\n font-style: normal;\r\n font-weight: bold;\r\n color: var(--jsl-color-text-secondary);\r\n}\r\n\r\n\r\n/* TODO TODOFIX */\r\n/* .slick-sort-indicator-desc {\r\n background: url(images/sort-desc.gif);\r\n}\r\n\r\n.slick-sort-indicator-asc {\r\n background: url(images/sort-asc.gif);\r\n} */\r\n\r\n/* .slick-resizable-handle {\r\n position: absolute;\r\n font-size: 0.1px;\r\n display: block;\r\n cursor: col-resize;\r\n width: 9px;\r\n right: -5px;\r\n top: 0;\r\n height: 100%;\r\n z-index: 1;\r\n} */\r\n\r\n.slick-sortable-placeholder {\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.grid-canvas {\r\n position: relative;\r\n outline: 0;\r\n}\r\n\r\n.slick-row.ui-widget-content, .slick-row.ui-state-active {\r\n position: absolute;\r\n border: 0px;\r\n width: 100%;\r\n}\r\n\r\n.slick-cell, .slick-headerrow-column , .slick-footerrow-column{\r\n /* SlickGrid measures content dimensions; host border-box resets must not apply. */\r\n box-sizing: content-box !important;\r\n position: absolute;\r\n border: 1px solid transparent;\r\n /*border-right: 1px dotted var(--jsl-color-border-subtle);\r\n border-bottom-color: var(--jsl-color-border-subtle); */\r\n border-right: 1px dotted var(--jsl-color-border-subtle);\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n vertical-align: middle;\r\n z-index: 1;\r\n padding: 1px 2px 1px 1px;\r\n margin: 0;\r\n white-space: nowrap;\r\n cursor: default;\r\n}\r\n/*.slick-cell, */.slick-headerrow-column{\r\n border-bottom-color: var(--jsl-color-border-subtle);\r\n}\r\n.slick-footerrow-column {\r\n border-top-color: var(--jsl-color-border-subtle);\r\n}\r\n\r\n.slick-group-toggle {\r\n display: inline-block;\r\n}\r\n\r\n.slick-cell.highlighted {\r\n\r\n background: var(--jsl-color-surface-selected);\r\n -webkit-transition: all 0.5s;\r\n -moz-transition: all 0.5s;\r\n -o-transition: all 0.5s;\r\n transition: all 0.5s;\r\n}\r\n\r\n.slick-cell.flashing {\r\n border: 1px solid var(--jsl-color-danger) !important;\r\n}\r\n\r\n.slick-cell.editable {\r\n z-index: 11;\r\n overflow: visible;\r\n /* background: var(--jsl-color-surface);\r\n border-color: black;\r\n border-style: solid; */\r\n}\r\n\r\n.slick-cell:focus {\r\n outline: none;\r\n}\r\n\r\n.slick-reorder-proxy {\r\n display: inline-block;\r\n background: var(--jsl-color-accent);\r\n opacity: 0.15;\r\n filter: alpha(opacity = 15);\r\n cursor: move;\r\n}\r\n\r\n.slick-reorder-guide {\r\n display: inline-block;\r\n height: 2px;\r\n background: var(--jsl-color-accent);\r\n opacity: 0.7;\r\n filter: alpha(opacity = 70);\r\n}\r\n\r\n.slick-selection {\r\n z-index: 10;\r\n position: absolute;\r\n border: 2px dashed var(--jsl-color-focus);\r\n}\r\n\r\n.slick-pane {\r\n position: absolute;\r\n outline: 0;\r\n overflow: hidden;\r\n width: 100%;\r\n}\r\n\r\n.slick-pane-header {\r\n display: block;\r\n}\r\n\r\n.slick-header, .slick-headerrow, .slick-top-panel-scroller {\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.slick-top-panel {\r\n width: 10000px\r\n}\r\n\r\n.slick-viewport {\r\n position: relative;\r\n outline: 0;\r\n width: 100%;\r\n background: var(--jsl-color-surface);\r\n}\r\n\r\n.slick-wrap {\r\n white-space: normal;\r\n}\r\n\r\n/* Slick.Editors.Text, Slick.Editors.Date */\r\ninput.editor-text, textarea.editor-text {\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\r\n margin: 0;\r\n background: transparent;\r\n outline: 0;\r\n padding: 0;\r\n resize: none;\r\n}\r\n\r\n.slick-cell .jsl-container {\r\n position: absolute;\r\n left:0;\r\n right:0;\r\n bottom:0;\r\n top:0;\r\n}\r\n\r\n.slick-cell .jsl-container .jsl-selected {\r\n padding: 0;\r\n}\r\n\r\n.slickgrid {\r\n box-sizing: border-box;\r\n border: solid 1px var(--jsl-color-border);\r\n border-radius: 3px;\r\n}\r\n\r\n.slick-col-ghost {\r\n box-sizing: content-box;\r\n position: absolute;\r\n pointer-events: none;\r\n}\r\n\r\n.slick-ghost-content {\r\n border: solid 2px var(--jsl-color-border);\r\n background: var(--jsl-color-surface-selected);\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.editor-text {\r\n font-size: 100%;\r\n}\r\n\r\n.slick-filtered-header {\r\n color: var(--jsl-color-accent);\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-preheader-panel .slick-column-name {\r\n text-align: center;\r\n float: none;\r\n}\r\n\r\n.slick-header-column.resizable > .rs-r {\r\n background: none;\r\n}\r\n\r\n/* .slick-header-column:hover.resizable > .rs-r {\r\n background: rgba(20,20,20,0.3);\r\n} */\r\n\r\n.js-touch .slick-header-column > .slick-header-menubutton {\r\n display: inline-block;\r\n}\r\n\r\n.js-touch .slick-header-column.resizable>.rs-r {\r\n /* background: rgba(20,20,20,.3);\r\n background-size: 0.9em 0.5em;\r\n background-position: center center; */\r\n\r\n background: rgba(0,0,0,0.04);\r\n background-size: 0.5em 0.3em;\r\n background-position: right center;\r\n\r\n background: transparent;\r\n background-size: 0.5em 0.3em;\r\n background-position: right center;\r\n\r\n width: 1.2rem;\r\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAMNSURBVEhLxVY7i1NBGM3NwzyMINiIjSKoC9tIBEG02FgkIeSxpJBlS7sV1s5fIRZqYWFhtYssEggJ5IEaFxERYdXWam1EkQVh82Lz8pzJl3jvzb1JjK8DA/lOZuacO/PNN+Po9/tT29LSktuKt2vov4B2xeo/c3M6piASiawHg8G9eDweEmoi2A/936G9wNg1oW2h0YUdKB4IBO45nU5Ht9s9ACLFYnFb/h4DxT0ez2uXy3WIca/XczQajZuVSuW+6mABWwPRaPSa3+9/DHFNKEe73a7XarWj1Wq1I5QByWQyBwMpCRVoAubL4K9ns9nPQo9guQVW4pwIK7BuJ05AZK3T6exIqMDVAx8Fn89kMieEHmHMQCwWuwrxTbM4l7JcLj8SyhL8QrfbncRKbXGMHuBDMLFtNmHYAor7fL4KxF1CKWDCcj6fj0k4EyR/7uo/hICJXZi5PNyO0Qowgbxeb8ksjgEfuH8SzgwmXrPZXMFKGJIM4qeQE+/T6fRJxmoFwuHwcRybjxA6onoJzG7ngeQTt9TwYcin3Xq9fkZLJBLnEL+C02MQG/wLaJr2HYMWf0d8CJyON5jrooQK/HC0r1oqlarh3B4W/p/D+T/Fiaml+G9jZIB7guwctT8NzNnTz48E5/Het80BZOnbQqFgSJx5wMIDsWdI8AWhFCiOsn6WK7AIR3sD+icwIIQjlJFwLoh43iyOE9eFgWWU9S/OXC73CdwFmPg2+HsAnluc3yc8x0L9MiBymx8ioQLFW61WpFQqPWescoAmsA3nWXgYDwETGi8lllWhZgbfAphzVUIFVkVUx9WhOGG4C2TJXsL1aaEUMJCJs4lKeWuWwmRzm1J8BRfallAKY+8B3b6NvYDA74BPTjKBCy2OC61gEudtegP3wwOhRhirA5ycIrwBOVAPmgL/UEJLYJU2LMT5KhoTJywLEU3w+uVAvQn8ZvbekdASWKVlbNeBhNy68qQnmaWBITiQJiBK4Y4+e+3ANyP6XkLbR3s69SqXW2li4xN71mf2sKG/z4o3tr7jB/mDdb4DhXtsAAAAAElFTkSuQmCC');\r\n background-repeat: no-repeat;\r\n}\r\n.js-touch .slick-header-menubutton.resize-offset {\r\n right: 1.2rem;\r\n width: 1.2rem;\r\n}\r\n","@import \"../ui/theme.css\";\r\n/*\r\nIMPORTANT:\r\nIn order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.\r\nNo built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS\r\nclasses should alter those!\r\n*/\r\n\r\n.slick-header-columns {\r\n border-bottom: 2px solid var(--jsl-color-border-subtle);\r\n background: var(--jsl-color-surface-subtle);\r\n}\r\n\r\n.slick-header-column {\r\n border-right: 1px solid var(--jsl-color-border-subtle);\r\n text-align: inherit;\r\n font-weight: 600;\r\n}\r\n\r\n.slick-header-column:hover, .slick-header-column-active {\r\n background: var(--jsl-color-surface-hover);\r\n color: var(--jsl-color-text);\r\n}\r\n\r\n\r\n.slick-header-column > .slick-header-menubutton:hover {\r\n background-color: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-headerrow {\r\n background: var(--jsl-color-surface-subtle);\r\n}\r\n\r\n.slick-headerrow-column {\r\n background: var(--jsl-color-surface-subtle);\r\n border-bottom: 0;\r\n height: 100%;\r\n}\r\n\r\n.slick-row.ui-state-active {\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-row {\r\n display: flex;\r\n align-items: center;\r\n position: absolute;\r\n background: var(--jsl-color-surface);\r\n border: 0px;\r\n line-height: inherit;\r\n}\r\n\r\n/* what is this used for ? */\r\n.slick-row.selected {\r\n z-index: 10;\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-cell {\r\n align-content: center;\r\n padding-left: 4px;\r\n padding-right: 4px;\r\n}\r\n\r\n/* The themed Select control has a comfortable form-field minimum height.\r\n In a grid editor it must fit the row instead of imposing that height. */\r\n.slick-cell.editable .select-comp {\r\n display: flex;\r\n height: 100%;\r\n min-height: 0;\r\n max-width: none;\r\n}\r\n\r\n.slick-cell.editable .select-comp > .sel-expander {\r\n height: 100%;\r\n min-height: 0;\r\n padding: 0 0.5rem;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.slick-cell.editable .select-comp.multiple > .sel-expander {\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n}\r\n\r\n.slick-cell.editable .select-comp .sel-chip {\r\n padding: 0.0625rem 0.375rem;\r\n font-size: 0.6875rem;\r\n}\r\n\r\n.slick-group {\r\n border-bottom: 2px solid var(--jsl-color-border-subtle);\r\n}\r\n\r\n.slick-group .slick-cell {\r\n display: flex;\r\n align-items: center;\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-group-toggle {\r\n flex-shrink: 0;\r\n width: 20px;\r\n height: 20px;\r\n vertical-align: middle;\r\n margin-right: 5px;\r\n}\r\n\r\n.slick-group-toggle.expanded {\r\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 122.88 119.8'%3E%3Cpath d='M23.59,0h75.7a23.63,23.63,0,0,1,23.59,23.59V96.21A23.64,23.64,0,0,1,99.29,119.8H23.59a23.53,23.53,0,0,1-16.67-6.93l-.38-.42A23.49,23.49,0,0,1,0,96.21V23.59A23.63,23.63,0,0,1,23.59,0Zm59.7,53.51a6.39,6.39,0,1,1,0,12.77H39.59a6.39,6.39,0,1,1,0-12.77Zm16-40.74H23.59A10.86,10.86,0,0,0,12.77,23.59V96.21a10.77,10.77,0,0,0,2.9,7.37l.28.26A10.76,10.76,0,0,0,23.59,107h75.7a10.87,10.87,0,0,0,10.82-10.82V23.59A10.86,10.86,0,0,0,99.29,12.77Z'/%3E%3C/svg%3E\") no-repeat center center; mask-size: contain; background-color: currentColor;\r\n}\r\n\r\n.slick-group-toggle.collapsed { \r\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 122.88 119.72' style='enable-background:new 0 0 122.88 119.72' xml:space='preserve'%3E%3Cg%3E%3Cpath d='M22.72,0h77.45c6.25,0,11.93,2.56,16.05,6.67c4.11,4.11,6.67,9.79,6.67,16.05v74.29c0,6.25-2.56,11.93-6.67,16.05 l-0.32,0.29c-4.09,3.94-9.64,6.38-15.73,6.38H22.72c-6.25,0-11.93-2.56-16.05-6.67l-0.3-0.32C2.43,108.64,0,103.09,0,97.01V22.71 c0-6.25,2.55-11.93,6.67-16.05C10.78,2.55,16.46,0,22.72,0L22.72,0z M55.47,38.34c0-3.3,2.67-5.97,5.97-5.97 c3.3,0,5.97,2.67,5.97,5.97v15.55h15.55c3.3,0,5.97,2.67,5.97,5.97c0,3.3-2.67,5.97-5.97,5.97H67.41v15.55 c0,3.3-2.67,5.97-5.97,5.97c-3.3,0-5.97-2.67-5.97-5.97V65.83H39.91c-3.3,0-5.97-2.67-5.97-5.97c0-3.3,2.67-5.97,5.97-5.97h15.55 V38.34L55.47,38.34z M100.16,10.24H22.72c-3.43,0-6.54,1.41-8.81,3.67c-2.26,2.26-3.67,5.38-3.67,8.81v74.29 c0,3.33,1.31,6.35,3.43,8.59l0.24,0.22c2.26,2.26,5.38,3.67,8.81,3.67h77.45c3.32,0,6.35-1.31,8.59-3.44l0.21-0.23 c2.26-2.26,3.67-5.38,3.67-8.81V22.71c0-3.42-1.41-6.54-3.67-8.81C106.71,11.65,103.59,10.24,100.16,10.24L100.16,10.24z'/%3E%3C/g%3E%3C/svg%3E\") no-repeat center center; mask-size: contain; background-color: currentColor;\r\n}\r\n\r\n.slick-group-totals {\r\n color: var(--jsl-color-text-secondary);\r\n background: var(--jsl-color-surface);\r\n}\r\n\r\n.slick-group-select-checkbox {\r\n width: 13px;\r\n height: 13px;\r\n margin: 3px 10px 0 0;\r\n display: inline-block;\r\n}\r\n\r\n.slick-cell.selected {\r\n background-color: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-cell.active {\r\n border-color: var(--jsl-color-focus);\r\n border-style: solid;\r\n}\r\n\r\n.slick-sortable-placeholder {\r\n background: var(--jsl-color-surface-selected) !important;\r\n}\r\n\r\n.slick-row.odd {\r\n background: var(--jsl-color-surface-subtle);\r\n}\r\n\r\n.slick-row.ui-state-active {\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-row.loading {\r\n opacity: 0.5;\r\n filter: alpha(opacity = 50);\r\n}\r\n\r\n.slick-cell.invalid {\r\n border-color: var(--jsl-color-danger);\r\n animation-duration: 0.2s;\r\n -moz-animation-duration: 0.2s;\r\n -webkit-animation-duration: 0.2s;\r\n animation-name: slickgrid-invalid-hilite;\r\n -moz-animation-name: slickgrid-invalid-hilite;\r\n -webkit-animation-name: slickgrid-invalid-hilite; \r\n}\r\n\r\n@keyframes slickgrid-invalid-hilite {\r\n from { box-shadow: 0 0 6px var(--jsl-color-danger); }\r\n to { box-shadow: none; }\r\n}\r\n\r\n@-moz-keyframes slickgrid-invalid-hilite {\r\n from { box-shadow: 0 0 6px var(--jsl-color-danger); }\r\n to { box-shadow: none; }\r\n}\r\n\r\n@-webkit-keyframes slickgrid-invalid-hilite {\r\n from { box-shadow: 0 0 6px var(--jsl-color-danger); }\r\n to { box-shadow: none; }\r\n}\r\n\r\n/* .slick-grid {\r\n background: var(--jsl-color-surface);\r\n outline: 0;\r\n border: 1px solid #a0a0a0;\r\n border-radius: 3px;\r\n} */\r\n\r\n.new-row .slick-cell {\r\n border-top: solid 1px var(--jsl-color-border);\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slickgrid { font: inherit; color: var(--jsl-color-text); background: var(--jsl-color-surface); }\r\n\n/* Presentation only: preserve all measured cell and header dimensions. */\n\n\n.slick-row:not(.slick-group):not(.slick-group-totals) > .slick-cell:not(.active):not(.invalid):not(.flashing) { border-right-color: transparent; }\r\n\n\n\n/* These utilities also work when importing the standalone grid entry point. */\n.slickgrid .right { text-align: right; }\n.slickgrid .center { text-align: center; }\n.slickgrid .tabular-nums { font-variant-numeric: tabular-nums; }\n\n/* Override the legacy float rules that otherwise defeat header text alignment. */\n.slick-header-column .slick-column-name {\n float: none;\n margin-bottom: 0;\n display: inline-block;\n max-width: 100%;\n max-height: 2.4em;\r\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\r\n line-height: 1.2;\r\n vertical-align: middle;\r\n}\n.slick-header-sortable .slick-column-name { max-width: calc(100% - 1.25rem); }\n.slick-header-column .slick-sort-indicator,\n.slick-header-column .slick-sort-indicator-numbered {\n display: inline-block;\n float: none;\n position: relative;\n vertical-align: top;\r\n margin: 0 0 0 .375rem;\n height: var(--jsl-grid-header-height, 40px);\r\n line-height: var(--jsl-grid-header-height, 40px);\r\n color: var(--jsl-color-accent);\n}\n.slick-header-column .slick-sort-indicator { width: .65rem; }\n.slick-header-column.right .slick-sort-indicator,\r\n.slick-header-column.right .slick-sort-indicator-numbered { float: left; margin-left: 0; margin-right: .375rem; }\r\n.slick-sort-indicator-asc::before, .slick-sort-indicator-desc::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 8px;\n height: 5px;\n background: currentColor;\n}\n.slick-sort-indicator-asc::before { clip-path: polygon(50% 0, 100% 100%, 0 100%); }\n.slick-sort-indicator-desc::before { clip-path: polygon(0 0, 100% 0, 50% 100%); }\n.slick-header-column .slick-sort-indicator-numbered { width: auto; min-width: .65rem; font-size: .8em; }\r\n.slick-header-column .slick-sort-indicator.slick-sort-indicator-numbered { min-width: 1.5rem; padding-left: .75rem; }\n\n/* Draw inside frozen panes without changing widths or intercepting resize/scroll gestures. */\n.slickgrid:has(.slick-header-column.frozen) > .slick-pane-left::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: 1px;\n background: var(--jsl-color-border);\n box-shadow: -2px 0 4px rgba(0, 0, 0, .08);\n pointer-events: none;\n z-index: 20;\n}\r\n","/* Menu button */\r\n.slick-header-menubutton {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 14px;\r\n background-repeat: no-repeat;\r\n background-position: left center;\r\n background-image: url('data:image/gif;base64,R0lGODlhDgAOAIABADtKYwAAACH5BAEAAAEALAAAAAAOAA4AAAISjI+py+0PHZgUsGobhTn6DxoFADs=');\r\n cursor: pointer;\r\n\r\n display: none;\r\n border-left: thin ridge silver;\r\n}\r\n\r\n.slick-header-menubutton.resize-offset {\r\n right: 0.5rem;\r\n}\r\n\r\n.slick-header-column:hover > .slick-header-menubutton,\r\n.slick-header-column-active .slick-header-menubutton {\r\n display: inline-block;\r\n}\r\n\r\n/* Menu */\r\n.slick-header-menu {\r\n position: absolute;\r\n display: inline-block;\r\n margin: 0;\r\n padding: 2px;\r\n cursor: default;\r\n}\r\n\r\n\r\n/* Menu items */\r\n.slick-header-menuitem {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n cursor: pointer;\r\n}\r\n\r\n.slick-header-menuicon {\r\n display: inline-block;\r\n width: 16px;\r\n height: 16px;\r\n vertical-align: middle;\r\n margin-right: 4px;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n}\r\n\r\n.slick-header-menucontent {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n/* Disabled */\r\n.slick-header-menuitem-disabled {\r\n color: silver;\r\n}\r\n\r\n/* Divider */\r\n.slick-header-menuitem.slick-header-menuitem-divider {\r\n cursor: default;\r\n border: none;\r\n overflow: hidden;\r\n padding: 0;\r\n height: 1px;\r\n margin: 8px 2px;\r\n background-color: #cecece;\r\n}\r\n.slick-header-menuitem-divider.slick-header-menuitem:hover {\r\n background-color: #cecece;\r\n}\r\n\r\n.slick-header-menu {\r\n border: 1px solid #bebebe;\r\n background: #ffffff;\r\n padding: 2px;\r\n box-shadow: 2px 2px 2px silver;\r\n z-index: 20;\r\n}\r\n\r\n\r\n.slick-header-menuitem {\r\n padding: 2px 4px;\r\n border-radius: 3px;\r\n}\r\n\r\n.slick-header-menuitem:hover {\r\n background: #3B99FF;\r\n color:white;\r\n}\r\n\r\n.slick-header-menuitem-disabled {\r\n border-color: transparent !important;\r\n background: inherit !important;\r\n}",".slick-column-name,\r\n.slick-sort-indicator {\r\n /**\r\n * This makes all \"float:right\" elements after it that spill over to the next line\r\n * display way below the lower boundary of the column thus hiding them.\r\n */\r\n display: inline-block;\r\n float: left;\r\n margin-bottom: 100px;\r\n}\r\n\r\n.slick-header-button {\r\n display: inline-block;\r\n float: right;\r\n vertical-align: top;\r\n margin: 1px;\r\n margin-right: 2rem;\r\n /**\r\n * This makes all \"float:right\" elements after it that spill over to the next line\r\n * display way below the lower boundary of the column thus hiding them.\r\n */\r\n margin-bottom: 100px;\r\n height: 15px;\r\n width: 15px;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n cursor: pointer;\r\n}\r\n\r\n.slick-header-button-hidden {\r\n width: 0;\r\n\r\n -webkit-transition: 0.2s width;\r\n -ms-transition: 0.2s width;\r\n transition: 0.2s width;\r\n}\r\n\r\n.slick-header-column:hover > .slick-header-button {\r\n width: 15px;\r\n}",".v-r-comp {\r\n\r\n height:100%;\r\n\r\n .v-r-child > * {\r\n height: 100%;\r\n }\r\n\r\n}",".cell-reorder {\r\n cursor: move;\r\n /* background: red; */\r\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAADAFBMVEUAAACWlpbY2NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmpIfcAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAAABlJREFUCNdj+I8EGFA5jHAA5DDBAW2VIQEAmyRUB6U7kZIAAAAASUVORK5CYII=);\r\n background-repeat: no-repeat;\r\n background-position-x: center;\r\n background-position-y: center;\r\n}","\r\n.header-overlay {\r\n background-color: #217346;\r\n}\r\n\r\n.cell-overlay,\r\n.selection-cell-overlay {\r\n display: block;\r\n position: absolute;\r\n z-index: 20;\r\n background-color: #217346;\r\n}\r\n\r\n.handle-overlay {\r\n border: 1px solid white;\r\n padding: 3px;\r\n background-color: #217346;\r\n position: absolute;\r\n width: 2px;\r\n height: 2px;\r\n z-index: 20;\r\n cursor: crosshair;\r\n}\r\n\r\n.overlay-handle-decorator {\r\n border: 2px solid #217346;\r\n z-index: 20;\r\n}\r\n","@import \"../../ui/theme.css\";\n\n.select-comp {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n width: 14rem;\n max-width: 100%;\n min-width: 0;\n min-height: 2.5rem;\n vertical-align: middle;\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n}\n.select-comp *, .sel-comp-dd * { box-sizing: border-box; }\n.select-comp .sel-expander {\n appearance: none;\n display: flex;\n align-items: center;\n gap: .625rem;\n width: 100%;\n min-width: 0;\n min-height: inherit;\n padding: .5rem .75rem;\n border: 1px solid var(--jsl-color-border);\n border-radius: .5rem;\n background: var(--jsl-color-surface);\n color: inherit;\n font: inherit;\n line-height: 1.4;\n text-align: left;\n cursor: pointer;\n transition: border-color .15s;\n}\n.select-comp:has(.clear-btn:not([hidden])) .sel-expander { padding-right: 3.5rem; }\n.select-comp .sel-expander:hover:not(:disabled) { border-color: var(--jsl-color-text-muted); }\n.select-comp.expanded .sel-expander { border-color: var(--jsl-color-accent); }\n.select-comp .sel-expander:focus-visible, .select-comp .clear-btn:focus-visible {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: 2px;\n}\n.select-comp .sel-result {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.select-comp .sel-placeholder { color: var(--jsl-color-text-muted); }\n.select-comp .sel-result > .sel-dd-item { display: block; overflow: hidden; text-overflow: ellipsis; }\n.select-comp .sel-chevron {\n flex: 0 0 7px;\n width: 7px;\n height: 7px;\n border: solid var(--jsl-color-text-muted);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg) translateY(-2px);\n margin-left: auto;\n}\n.select-comp.expanded .sel-chevron { transform: rotate(225deg) translate(-2px, -1px); }\n.select-comp:has(.clear-btn:not([hidden])) .sel-chevron { position: absolute; right: .875rem; }\n.select-comp .clear-btn {\n appearance: none;\n display: grid;\n place-items: center;\n position: absolute;\n right: 1.875rem;\n top: 50%;\n transform: translateY(-50%);\n width: 1.5rem;\n height: 1.5rem;\n border: 0;\n border-radius: .25rem;\n padding: 0;\n font: inherit;\n font-size: 1.125rem;\n line-height: 1;\n background: transparent;\n color: var(--jsl-color-text-muted);\n cursor: pointer;\n}\n.select-comp .clear-btn:hover:not(:disabled) { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.select-comp .clear-btn[hidden] { display: none; }\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-expander {\n background: var(--jsl-color-disabled-surface);\n color: var(--jsl-color-disabled-text);\n cursor: not-allowed;\n}\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .clear-btn { color: var(--jsl-color-disabled-text); cursor: not-allowed; }\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-result,\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-chevron { opacity: .65; }\n.select-comp.multiple .sel-result:not(.sel-placeholder) { display: flex; flex-wrap: wrap; gap: .25rem; white-space: normal; }\n.select-comp.multiple .sel-expander { padding-top: .375rem; padding-bottom: .375rem; }\n.sel-chip {\n display: inline-block;\n min-width: 0;\n max-width: 100%;\n padding: .125rem .4375rem;\n border-radius: .25rem;\n background: var(--jsl-color-surface-selected);\n color: var(--jsl-color-text-secondary);\n font-size: .75rem;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.sel-chip-count { color: var(--jsl-color-text-muted); background: var(--jsl-color-surface-hover); }\n.sel-comp-dd {\n position: absolute;\n z-index: 2200;\n box-sizing: border-box;\n overflow: hidden;\n padding: 4px;\n border: 1px solid var(--jsl-color-border);\n border-radius: .625rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n box-shadow: 0 12px 32px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .06);\n}\n.sel-dd-panel { height: 100%; display: flex; flex-direction: column; min-height: 0; }\n.sel-search { flex: 0 0 44px; padding: 3px 4px 7px; }\n.sel-search[hidden] { display: none; }\n.sel-search input {\n appearance: none;\n width: 100%;\n height: 34px;\n border: 1px solid var(--jsl-color-border-subtle);\n border-radius: .375rem;\n background: var(--jsl-color-surface-subtle);\n color: var(--jsl-color-text);\n padding: .375rem .625rem .375rem 2rem;\n font: inherit;\n font-size: .8125rem;\n line-height: 1.4;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717a' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cpath d='m10.5 10.5 3 3'/%3E%3C/svg%3E\");\n background-position: .625rem center;\n background-repeat: no-repeat;\n}\n.sel-search input::placeholder { color: var(--jsl-color-text-muted); }\n.sel-search input:focus { outline: 0; border-color: var(--jsl-color-focus); }\n.sel-listbox { position: relative; min-height: 0; flex: 1; outline: none; }\n.sel-comp-dd .sel-dd-items { overscroll-behavior: contain; scrollbar-width: thin; }\n.sel-comp-dd .sel-dd-item {\n position: relative;\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 2rem 0 .625rem;\n border-radius: .375rem;\n font-size: .8125rem;\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n}\n.sel-comp-dd .sel-dd-item:hover:not(.sel-dd-group) { background: var(--jsl-color-surface-hover); }\n.sel-comp-dd .sel-dd-item.selected { background: var(--jsl-color-surface-selected); }\n.sel-comp-dd .sel-dd-item.focused { outline: 1px solid var(--jsl-color-focus); outline-offset: -2px; }\n.sel-comp-dd .sel-dd-item.selected::after {\n content: \"\";\n position: absolute;\n right: .875rem;\n width: 5px;\n height: 9px;\n border: solid var(--jsl-color-text);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg) translateY(-2px);\n}\n.sel-comp-dd .multiple .sel-dd-item:not(.sel-dd-group) { padding-left: 2rem; padding-right: .625rem; }\n.sel-comp-dd .multiple .sel-dd-item:not(.sel-dd-group)::before {\n content: \"\";\n position: absolute;\n left: .625rem;\n width: 14px;\n height: 14px;\n border: 1px solid var(--jsl-color-border);\n border-radius: .25rem;\n background: var(--jsl-color-surface);\n}\n.sel-comp-dd .multiple .sel-dd-item.selected::before { border-color: var(--jsl-color-accent); background: var(--jsl-color-accent); }\n.sel-comp-dd .multiple .sel-dd-item.selected::after { left: .875rem; right: auto; width: 4px; height: 7px; border-color: var(--jsl-color-on-accent); }\n.sel-comp-dd .sel-dd-group {\n padding: 0 .625rem;\n color: var(--jsl-color-text-muted);\n font-size: .6875rem;\n font-weight: 600;\n cursor: default;\n}\n.sel-empty { padding: 1.25rem .625rem; color: var(--jsl-color-text-muted); font-size: .8125rem; text-align: center; }\n.sel-empty[hidden] { display: none; }\n.sel-dd-animate { animation: jsl-select-appear .12s ease-out; }\n@keyframes jsl-select-appear { from { opacity: 0; } to { opacity: 1; } }\n@media (prefers-reduced-motion: reduce) {\n .sel-dd-animate { animation: none; }\n .select-comp .sel-expander { transition: none; }\n}\n@media (forced-colors: active) {\n .sel-comp-dd .sel-dd-item.selected { outline: 2px solid Highlight; outline-offset: -2px; }\n .sel-chip { border: 1px solid ButtonText; }\n}\n","@import \"./theme.css\";\n\n.autocomplete-suggestions {\n display: none;\n position: absolute;\n z-index: 2200;\n max-height: min(16rem, calc(100dvh - 1rem));\n overflow-y: auto;\n box-sizing: border-box;\n padding: 4px;\n border: 1px solid var(--jsl-color-border);\n border-radius: .625rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n font-size: .8125rem;\n text-align: left;\n box-shadow: 0 12px 32px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.06);\n}\n.autocomplete-suggestion {\n position: relative;\n padding: .5rem .625rem;\n border-radius: .375rem;\n line-height: 1.4;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n.autocomplete-suggestion b { color: inherit; font-weight: 600; }\n.autocomplete-suggestion.selected, .autocomplete-suggestion:hover { background: var(--jsl-color-surface-selected); }\r\n","@import \"./theme.css\";\n\n.jsl-input, .jsl-date-input {\n box-sizing: border-box;\n width: 14rem;\n max-width: 100%;\n min-width: 0;\n height: 2.5rem;\n padding: .5rem .75rem;\n border: 1px solid var(--jsl-color-border);\n border-radius: .5rem;\n background-color: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n /* font-size: .875rem; */\n line-height: 1.4;\n transition: border-color .15s;\n}\n.jsl-input:hover:not(:disabled), .jsl-date-input:hover:not(:disabled) { border-color: var(--jsl-color-text-muted); }\n.jsl-input:focus, .jsl-date-input:focus {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: 2px;\n border-color: var(--jsl-color-accent);\n}\n.jsl-input::placeholder, .jsl-date-input::placeholder { color: var(--jsl-color-text-muted); opacity: 1; }\n.jsl-input:disabled, .jsl-date-input:disabled {\n cursor: not-allowed;\n background-color: var(--jsl-color-disabled-surface);\n color: var(--jsl-color-disabled-text);\n}\n.jsl-input[aria-invalid=\"true\"] { border-color: var(--jsl-color-danger); }\ntextarea.jsl-input { min-height: 6rem; height: auto; resize: vertical; }\n.jsl-input[type=\"color\"] { width: 4rem; padding: .25rem; cursor: pointer; }\n.jsl-input[type=\"number\"], .jsl-input.jsl-number { font-variant-numeric: tabular-nums; }\n@media (prefers-reduced-motion: reduce) { .jsl-input, .jsl-date-input { transition: none; } }\n","@import \"../../ui/theme.css\";\n.progress-comp { position: relative; background: var(--jsl-color-border-subtle); height: .5rem; border-radius: 999px; overflow: hidden; }\n.progress-comp.has-label { height: 1.25rem; }\n.progress-comp .bar { background: var(--jsl-color-accent); height: 100%; border-radius: inherit; }\n.progress-comp .progress-label { position: absolute; inset: 0; display: grid; place-items: center; color: var(--jsl-color-text); font: 600 .75rem/1.25rem sans-serif; text-shadow: 0 0 3px var(--jsl-color-surface); }\r\n","@import \"./input.css\";\n\n.jsl-date-input { width: 11rem; font-variant-numeric: tabular-nums; }\n.date-comp {\n padding-right: 2.4rem;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2371717a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4' width='13' height='12' rx='2'/%3E%3Cpath d='M6 2v4M12 2v4M3 8h12'/%3E%3C/svg%3E\");\n background-position: right .7rem center;\n background-repeat: no-repeat;\n}\n.jsl-date-input:disabled { opacity: .75; }\n.jsl-date-input[aria-invalid=\"true\"] { border-style: dashed; border-width: 2px; }\r\n","@import \"../../ui/date-input.css\";\n\n.time-comp { width: 6rem; text-align: center; }\n.time-comp-seconds { width: 7.5rem; }\r\n",".date-time-comp {\n display: inline-flex;\n align-items: center;\n flex-wrap: wrap;\n gap: .5rem;\n max-width: 100%;\n}\n.date-time-comp .date-comp { flex: 1 1 10rem; }\n.date-time-comp .time-comp { flex: 0 0 6rem; }\n.date-time-comp .time-comp-seconds { flex-basis: 7.5rem; }\r\n","@import \"../../ui/theme.css\";\n\n.expander-comp {\n box-sizing: border-box;\n max-width: 100%;\n border: 1px solid var(--jsl-color-border-subtle);\n border-radius: .625rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n line-height: 1.5;\n}\n.expander-comp > .header {\n display: flex;\n align-items: center;\n gap: .5rem;\n min-height: 3rem;\n padding: .5rem .875rem .5rem .625rem;\n border-radius: inherit;\n}\n.expander-comp.toggle-on-header > .header { cursor: pointer; }\n.expander-comp.toggle-on-header:not(.disabled) > .header:hover { background: var(--jsl-color-surface-hover); }\n.expander-comp > .header > .toggler {\n appearance: none;\n display: inline-grid;\n place-items: center;\n flex: 0 0 auto;\n min-width: 2rem;\n min-height: 2rem;\n padding: .25rem;\n margin: 0;\n border: 0;\n border-radius: .375rem;\n background: transparent;\n color: var(--jsl-color-text-secondary);\n font: inherit;\n line-height: 1;\n cursor: pointer;\n}\n.expander-comp > .header > .toggler:hover:not(:disabled) { background: var(--jsl-color-surface-selected); }\n.expander-comp > .header > .toggler:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n.expander-comp > .header > .content { flex: 1; min-width: 0; font-weight: 500; overflow-wrap: anywhere; }\n.expander-icon, .expand-collapse-icon { display: inline-grid; place-items: center; }\n.expand-collapse-icon { width: 1rem; height: 1rem; }\n.expander-chevron {\n display: block;\n width: 37.5%;\n height: 37.5%;\n border: solid currentColor;\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(-45deg);\n}\n.expand-collapse-icon.is-expanded .expander-chevron { transform: rotate(45deg) translate(-1px, -1px); }\n.expander-comp > .body { border-top: 1px solid var(--jsl-color-border-subtle); padding: 1rem 1.125rem; overflow-wrap: anywhere; }\n.expander-comp > .body[hidden] { display: none; }\n.expander-comp.expanded > .body { animation: jsl-expander-appear .14s ease-out; }\n.expander-comp.disabled > .header { color: var(--jsl-color-disabled-text); cursor: default; background: var(--jsl-color-disabled-surface); }\n.expander-comp > .header > .toggler:disabled { color: var(--jsl-color-disabled-text); cursor: not-allowed; }\n@keyframes jsl-expander-appear { from { opacity: 0; } to { opacity: 1; } }\n@media (prefers-reduced-motion: reduce) { .expander-comp.expanded > .body { animation: none; } }\n","@import \"../../ui/theme.css\";\n\n.jsl-loading { display: inline-flex; align-items: center; justify-content: center; gap: .625rem; max-width: 100%; color: var(--jsl-color-text-secondary); font: inherit; vertical-align: middle; }\n.lds-dual-ring { display: inline-block; position: relative; flex-shrink: 0; width: var(--jsl-loading-size, 1em); height: var(--jsl-loading-size, 1em); max-width: 100%; }\n.lds-dual-ring::after {\n content: \"\";\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n border: max(2px, calc(var(--jsl-loading-size, 1em) * .08)) solid var(--jsl-color-border-subtle);\n border-top-color: var(--jsl-loading-color, var(--jsl-color-accent));\n border-right-color: var(--jsl-loading-color, var(--jsl-color-accent));\n border-radius: 50%;\n animation: jsl-loading-spin .85s linear infinite;\n}\n.jsl-loading-label { font-size: .8125rem; line-height: 1.5; }\n.jsl-loading-label-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }\n@keyframes jsl-loading-spin { to { transform: rotate(360deg); } }\n@media (prefers-reduced-motion: reduce) { .lds-dual-ring::after { animation: none; } }\r\n","@import \"../../ui/theme.css\";\n\n.form-field {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: .375rem;\n min-width: 0;\n max-width: 100%;\n margin: 0 0 1rem;\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n}\n.form-field__label { display: block; color: var(--jsl-color-text-secondary); font-size: .75rem; font-weight: 500; line-height: 1.5; }\n.form-field__required { color: var(--jsl-color-text-muted); }\n.form-field__required[hidden] { display: none; }\n.form-field__control { display: block; min-width: 0; border: 0; margin: 0; padding: 0; }\n.form-field__control > .jsl-input, .form-field__control > .jsl-date-input,\n.form-field__control > .select-comp, .form-field__control > .date-time-comp { width: 100%; }\n.form-field__description, .form-field__error { color: var(--jsl-color-text-muted); font-size: .75rem; line-height: 1.5; }\n.form-field__error { color: var(--jsl-color-danger); }\n.form-field__description[hidden], .form-field__error[hidden] { display: none; }\n.form-field--invalid > .form-field__label { color: var(--jsl-color-danger); }\n.form-field--invalid > .form-field__control .sel-expander { border-color: var(--jsl-color-danger); }\n.form-field--floating { padding-top: .5rem; }\n.form-field--floating > .form-field__label {\n position: absolute;\n top: 0;\n left: .625rem;\n z-index: 1;\n max-width: calc(100% - 1.25rem);\n padding: 0 .25rem;\n background: var(--jsl-color-surface);\n}\n.form-field:has(.form-field__control:disabled) > .form-field__label { color: var(--jsl-color-disabled-text); }\n","@import \"../../ui/theme.css\";\n.treeview-comp { color: var(--jsl-color-text); font: inherit; \n // font-size: .875rem;\n line-height: 1.5; }\n.treeview-comp .tv-ul { list-style: none; padding: 0; margin: 0; }\n.treeview-comp .tv-ul .tv-ul { margin-left: 1rem; padding-left: .5rem; border-left: 1px solid var(--jsl-color-border-subtle); }\n.treeview-comp [hidden] { display: none; }\n.tv-row { display: flex; align-items: center; gap: .625rem; padding: .375rem .625rem; border-radius: .375rem; cursor: pointer; overflow-wrap: anywhere; }\n.tv-row:hover { background: var(--jsl-color-surface-hover); }\n.tv-row.is-selected { background: var(--jsl-color-surface-selected); }\n.tv-row:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: -2px; }\n.tv-chevron { flex: 0 0 .375rem; width: .375rem; height: .375rem; border-right: 1.5px solid var(--jsl-color-text-muted); border-bottom: 1.5px solid var(--jsl-color-text-muted); transform: rotate(-45deg); margin-right: .25rem; }\n.tv-row[aria-expanded=true] > .tv-chevron { transform: translateY(-.125rem) rotate(45deg); }\n.tv-leaf { border-color: transparent; }\n","@import \"../../ui/theme.css\";\n\n.stabcomponent {\n min-width: 0;\n max-width: 100%;\n color: var(--jsl-color-text);\n\n > .tab-header-row {\n display: flex;\n align-items: stretch;\n gap: 0.25rem;\n min-width: 0;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n scrollbar-width: thin;\n border-bottom: 1px solid var(--jsl-tabs-border, var(--jsl-color-border-subtle));\n }\n\n > .tab-header-row > .tab-item {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n gap: 0.125rem;\n position: relative;\n margin: 0;\n padding: 0;\n border: 0;\n border-bottom: 2px solid transparent;\n border-radius: 0.375rem 0.375rem 0 0;\n background: transparent;\n color: var(--jsl-tabs-text, var(--jsl-color-text-secondary));\n\n &:hover {\n background: var(--jsl-tabs-hover-surface, var(--jsl-color-surface-hover));\n color: var(--jsl-color-text);\n }\n\n &.active {\n border-bottom-color: var(--jsl-tabs-accent, var(--jsl-color-accent));\n color: var(--jsl-tabs-active-text, var(--jsl-color-text));\n }\n\n &.disabled {\n border-bottom-color: transparent;\n background: transparent;\n color: var(--jsl-color-disabled-text);\n cursor: not-allowed;\n }\n }\n\n .tab-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n box-sizing: border-box;\n min-height: 2.5rem;\n min-width: 0;\n padding: 0.625rem 0.875rem;\n margin: 0;\n border: 0;\n border-radius: 0.375rem;\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.5;\n text-align: start;\n text-decoration: none;\n cursor: pointer;\n }\n\n .tab-trigger:disabled { cursor: not-allowed; }\n .tab-trigger:focus-visible,\n > .tab-header-row > .tab-item > .close-button:focus-visible,\n > .tab-header-row:focus-visible {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: -3px;\n }\n\n .tab-label {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n white-space: nowrap;\n }\n\n > .tab-header-row > .tab-item > .close-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n margin: 0 0.5rem 0 -0.375rem;\n border: 0;\n border-radius: 0.25rem;\n background: transparent;\n color: var(--jsl-color-text-muted);\n cursor: pointer;\n\n &::before,\n &::after {\n content: \"\";\n position: absolute;\n width: 0.625rem;\n height: 1.5px;\n border-radius: 1px;\n background: currentColor;\n transform: rotate(45deg);\n }\n &::after { transform: rotate(-45deg); }\n &:hover { background: var(--jsl-color-surface-selected); color: var(--jsl-color-text); }\n &:disabled { color: var(--jsl-color-disabled-text); background: transparent; cursor: not-allowed; }\n }\n\n > .tab-panels {\n min-width: 0;\n background: var(--jsl-tabs-surface, var(--jsl-color-surface));\n }\n\n > .tab-panels > .tab-content {\n box-sizing: border-box;\n min-width: 0;\n padding: 1rem;\n overflow: auto;\n overflow-wrap: anywhere;\n overscroll-behavior: contain;\n line-height: 1.6;\n\n &:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: -2px; }\n &.tab-hidden,\n &[hidden] { display: none; }\n }\n}\r\n","@import \"../../ui/theme.css\";\n\n.jsl-checkbox {\n display: inline-flex;\n align-items: flex-start;\n gap: .625rem;\n max-width: 100%;\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n line-height: 1.5;\n vertical-align: middle;\n}\n.checkbox-comp {\n appearance: none;\n -webkit-appearance: none;\n box-sizing: border-box;\n position: relative;\n display: inline-grid;\n place-content: center;\n flex: 0 0 1.125rem;\n width: 1.125rem;\n height: 1.125rem;\n margin: calc((1.5em - 1.125rem) / 2) 0 0;\n border: 1px solid var(--jsl-color-border);\n border-radius: .25rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-on-accent);\n font: inherit;\n cursor: pointer;\n transition: background-color .12s, border-color .12s;\n}\n.checkbox-comp::after {\n content: \"\";\n width: 4px;\n height: 8px;\n margin-top: -2px;\n border: solid currentColor;\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n opacity: 0;\n}\n.checkbox-comp:checked, .checkbox-comp:indeterminate {\n border-color: var(--jsl-color-accent);\n background: var(--jsl-color-accent);\n}\n.checkbox-comp:checked::after, .checkbox-comp:indeterminate::after { opacity: 1; }\n.checkbox-comp:indeterminate::after {\n width: 8px;\n height: 0;\n margin-top: 0;\n border-width: 0 0 2px;\n transform: none;\n}\n.checkbox-comp:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }\n.jsl-checkbox:has(.checkbox-comp:not(:disabled)):hover .checkbox-comp { border-color: var(--jsl-color-text-muted); }\n.jsl-checkbox:has(.checkbox-comp:checked:not(:disabled)):hover .checkbox-comp,\n.jsl-checkbox:has(.checkbox-comp:indeterminate:not(:disabled)):hover .checkbox-comp {\n border-color: var(--jsl-color-accent-hover);\n background: var(--jsl-color-accent-hover);\n}\n.checkbox-copy { min-width: 0; }\n.checkbox-label { display: block; cursor: pointer; overflow-wrap: anywhere; }\n.checkbox-description { display: block; margin-top: .1875rem; color: var(--jsl-color-text-muted); font-size: .75rem; line-height: 1.5; }\n.checkbox-description[hidden] { display: none; }\n.checkbox-comp:disabled { background: var(--jsl-color-disabled-surface); border-color: var(--jsl-color-border-subtle); cursor: not-allowed; }\n.checkbox-comp:disabled:checked, .checkbox-comp:disabled:indeterminate { background: var(--jsl-color-disabled-text); border-color: var(--jsl-color-disabled-text); color: var(--jsl-color-disabled-surface); opacity: .65; }\n.jsl-checkbox.disabled .checkbox-label { color: var(--jsl-color-disabled-text); cursor: not-allowed; }\n@media (prefers-reduced-motion: reduce) { .checkbox-comp { transition: none; } }\n@media (forced-colors: active) {\n .checkbox-comp { appearance: auto; }\n .checkbox-comp::after { display: none; }\n}\n","@import \"../../ui/theme.css\";\n.stackpanel-comp { display: flex; min-width: 0; min-height: 0; box-sizing: border-box; }\n.stackpanel-comp.hstackpanel { flex-direction: row; width: 100%; }\n.stackpanel-comp.vstackpanel { flex-direction: column; }\n.stackpanel-comp.wrap { flex-wrap: wrap; }\n.stackpanel-comp > div:not(.split-comp) { min-width: 0; min-height: 0; box-sizing: border-box; }\n@media (max-width: 70em) {\n .stackpanel-comp.hstackpanel.responsive { flex-direction: column; }\n .stackpanel-comp.hstackpanel.responsive > div:not(.split-comp) { width: auto !important; flex: 0 0 auto !important; }\n .stackpanel-comp.hstackpanel.responsive > .split-comp { display: none; }\n}\r\n","@import \"../../ui/theme.css\";\n.stackpanel-comp > .split-comp { position: relative; flex: 0 0 12px; align-self: stretch; background: var(--jsl-color-surface-subtle); touch-action: none; user-select: none; outline-offset: -2px; }\n.split-comp::before { content: \"\"; position: absolute; border-radius: 999px; background: var(--jsl-color-border); }\n.hstackpanel > .split-comp { cursor: col-resize; }\n.hstackpanel > .split-comp::before { width: 3px; height: 32px; max-height: 80%; top: 50%; left: 50%; transform: translate(-50%,-50%); }\n.vstackpanel > .split-comp { cursor: row-resize; }\n.vstackpanel > .split-comp::before { height: 3px; width: 32px; max-width: 80%; top: 50%; left: 50%; transform: translate(-50%,-50%); }\n.split-comp:hover::before, .split-comp:focus-visible::before { background: var(--jsl-color-accent); }\n.split-comp:focus-visible { outline: 2px solid var(--jsl-color-focus); }\r\n",".date-range-comp {\n display: inline-block;\n width: 25rem;\n max-width: 100%;\n color: var(--jsl-color-text);\n}\n.date-range-fields {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n align-items: end;\n gap: .625rem;\n}\n.date-range-field { min-width: 0; }\n.date-range-field label {\n display: block;\n margin-bottom: .375rem;\n color: var(--jsl-color-text-secondary);\n font: inherit;\n font-size: .75rem;\n font-weight: 500;\n}\n.date-range-field input { width: 100%; }\n.date-range-separator { line-height: 2.5rem; color: var(--jsl-color-text-muted); }\n.date-range-track { padding: 1.5rem .625rem .875rem; }\n.date-range-limits {\n display: flex;\n justify-content: space-between;\n gap: .5rem;\n color: var(--jsl-color-text-muted);\n font-size: .6875rem;\n font-variant-numeric: tabular-nums;\n}\n@media (max-width: 380px) {\n .date-range-fields { gap: .375rem; }\n .date-range-field input { font-size: .75rem; padding-left: .5rem; padding-right: 1.75rem; background-position: right .3rem center; background-size: 15px; }\n}\r\n","@import \"../../ui/theme.css\";\n\n/*! nouislider - 14.6.0 - 6/27/2020 */\r\n/* Functional styling;\r\n * These styles are required for noUiSlider to function.\r\n * You don't need to change these rules to apply your design.\r\n */\r\n.noUi-target,\r\n.noUi-target * {\r\n -webkit-touch-callout: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n -webkit-user-select: none;\r\n -ms-touch-action: none;\r\n touch-action: none;\r\n -ms-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.noUi-target {\r\n position: relative;\r\n}\r\n.noUi-base,\r\n.noUi-connects {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n z-index: 1;\r\n}\r\n/* Wrapper for all connect elements.\r\n */\r\n.noUi-connects {\r\n overflow: hidden;\r\n z-index: 0;\r\n}\r\n.noUi-connect,\r\n.noUi-origin {\r\n will-change: transform;\r\n position: absolute;\r\n z-index: 1;\r\n top: 0;\r\n right: 0;\r\n -ms-transform-origin: 0 0;\r\n -webkit-transform-origin: 0 0;\r\n -webkit-transform-style: preserve-3d;\r\n transform-origin: 0 0;\r\n transform-style: flat;\r\n}\r\n.noUi-connect {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n.noUi-origin {\r\n height: 10%;\r\n width: 10%;\r\n}\r\n/* Offset direction\r\n */\r\n.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {\r\n left: 0;\r\n right: auto;\r\n}\r\n/* Give origins 0 height/width so they don't interfere with clicking the\r\n * connect elements.\r\n */\r\n.noUi-vertical .noUi-origin {\r\n width: 0;\r\n}\r\n.noUi-horizontal .noUi-origin {\r\n height: 0;\r\n}\r\n.noUi-handle {\r\n -webkit-backface-visibility: hidden;\r\n backface-visibility: hidden;\r\n position: absolute;\r\n}\r\n.noUi-touch-area {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n.noUi-state-tap .noUi-connect,\r\n.noUi-state-tap .noUi-origin {\r\n -webkit-transition: transform 0.3s;\r\n transition: transform 0.3s;\r\n}\r\n.noUi-state-drag * {\r\n cursor: inherit !important;\r\n}\r\n/* Slider size and handle placement;\r\n */\r\n.noUi-horizontal {\r\n height: 6px;\r\n}\r\n.noUi-horizontal .noUi-handle {\r\n width: 18px;\r\n height: 18px;\r\n right: -9px;\r\n top: -6px;\r\n}\r\n.noUi-vertical {\r\n width: 6px;\n}\r\n.noUi-vertical .noUi-handle {\r\n width: 18px;\r\n height: 18px;\r\n right: -6px;\r\n top: -9px;\r\n}\r\n.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {\r\n left: -9px;\r\n right: auto;\r\n}\r\n/* Styling;\r\n * Giving the connect element a border radius causes issues with using transform: scale\r\n */\r\n.noUi-target {\r\n background: var(--jsl-slider-track, var(--jsl-color-border-subtle));\r\n border-radius: 999px;\r\n border: 0;\r\n box-shadow: none;\r\n}\r\n.noUi-connects {\r\n border-radius: 3px;\r\n}\r\n.noUi-connect {\r\n background: var(--jsl-slider-connect, var(--jsl-color-accent));\r\n}\r\n/* Handles and cursors;\r\n */\r\n.noUi-draggable {\r\n cursor: ew-resize;\r\n}\r\n.noUi-vertical .noUi-draggable {\r\n cursor: ns-resize;\r\n}\r\n.noUi-handle {\r\n border: 2px solid var(--jsl-color-accent);\n border-radius: 50%;\n background: var(--jsl-color-surface);\r\n cursor: default;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16);\r\n}\r\n.noUi-active {\r\n border-color: var(--jsl-color-accent);\r\n}\r\n/* Disabled state;\r\n */\r\n[disabled] .noUi-connect {\r\n background: var(--jsl-color-disabled-text);\r\n}\r\n[disabled].noUi-target,\r\n[disabled].noUi-handle,\r\n[disabled] .noUi-handle {\r\n cursor: not-allowed;\r\n}\r\n/* Base;\r\n *\r\n */\r\n.noUi-pips,\r\n.noUi-pips * {\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.noUi-pips {\r\n position: absolute;\r\n color: var(--jsl-color-text-muted);\r\n}\r\n/* Values;\r\n *\r\n */\r\n.noUi-value {\r\n position: absolute;\r\n white-space: nowrap;\r\n text-align: center;\r\n}\r\n.noUi-value-sub {\r\n color: var(--jsl-color-text-muted);\r\n font-size: 10px;\r\n}\r\n/* Markings;\r\n *\r\n */\r\n.noUi-marker {\r\n position: absolute;\r\n background: var(--jsl-color-border);\r\n}\r\n.noUi-marker-sub {\r\n background: var(--jsl-color-border);\r\n}\r\n.noUi-marker-large {\r\n background: var(--jsl-color-border);\r\n}\r\n/* Horizontal layout;\r\n *\r\n */\r\n.noUi-pips-horizontal {\r\n padding: 10px 0;\r\n height: 80px;\r\n top: 100%;\r\n left: 0;\r\n width: 100%;\r\n}\r\n.noUi-value-horizontal {\r\n -webkit-transform: translate(-50%, 50%);\r\n transform: translate(-50%, 50%);\r\n}\r\n.noUi-rtl .noUi-value-horizontal {\r\n -webkit-transform: translate(50%, 50%);\r\n transform: translate(50%, 50%);\r\n}\r\n.noUi-marker-horizontal.noUi-marker {\r\n margin-left: -1px;\r\n width: 2px;\r\n height: 5px;\r\n}\r\n.noUi-marker-horizontal.noUi-marker-sub {\r\n height: 10px;\r\n}\r\n.noUi-marker-horizontal.noUi-marker-large {\r\n height: 15px;\r\n}\r\n/* Vertical layout;\r\n *\r\n */\r\n.noUi-pips-vertical {\r\n padding: 0 10px;\r\n height: 100%;\r\n top: 0;\r\n left: 100%;\r\n}\r\n.noUi-value-vertical {\r\n -webkit-transform: translate(0, -50%);\r\n transform: translate(0, -50%);\r\n padding-left: 25px;\r\n}\r\n.noUi-rtl .noUi-value-vertical {\r\n -webkit-transform: translate(0, 50%);\r\n transform: translate(0, 50%);\r\n}\r\n.noUi-marker-vertical.noUi-marker {\r\n width: 5px;\r\n height: 2px;\r\n margin-top: -1px;\r\n}\r\n.noUi-marker-vertical.noUi-marker-sub {\r\n width: 10px;\r\n}\r\n.noUi-marker-vertical.noUi-marker-large {\r\n width: 15px;\r\n}\r\n.noUi-tooltip {\r\n display: block;\r\n position: absolute;\r\n border: 1px solid var(--jsl-color-border);\r\n border-radius: 3px;\r\n background: var(--jsl-color-surface);\r\n color: var(--jsl-color-text);\r\n padding: 5px;\r\n text-align: center;\r\n white-space: nowrap;\r\n}\r\n.noUi-horizontal .noUi-tooltip {\r\n -webkit-transform: translate(-50%, 0);\r\n transform: translate(-50%, 0);\r\n left: 50%;\r\n bottom: 120%;\r\n}\r\n.noUi-vertical .noUi-tooltip {\r\n -webkit-transform: translate(0, -50%);\r\n transform: translate(0, -50%);\r\n top: 50%;\r\n right: 120%;\r\n}\r\n.noUi-horizontal .noUi-origin > .noUi-tooltip {\r\n -webkit-transform: translate(50%, 0);\r\n transform: translate(50%, 0);\r\n left: auto;\r\n bottom: 10px;\r\n}\r\n.noUi-vertical .noUi-origin > .noUi-tooltip {\r\n -webkit-transform: translate(0, -18px);\r\n transform: translate(0, -18px);\r\n top: auto;\r\n right: 28px;\r\n}\r\n\n/* Larger interaction targets without changing slider geometry. */\n.noUi-touch-area { position: absolute; inset: -6px; width: auto; height: auto; }\n.noUi-base::before { content: \"\"; position: absolute; inset: -10px 0; }\n.noUi-vertical .noUi-base::before { inset: 0 -10px; }\n.noUi-handle { cursor: grab; }\n.noUi-handle:active { cursor: grabbing; }\n.noUi-handle:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }\n[disabled] .noUi-handle, .noUi-handle[disabled] { border-color: var(--jsl-color-disabled-text); background: var(--jsl-color-disabled-surface); }\n.noUi-tooltip { font: inherit; font-size: 0.75rem; border-radius: 0.375rem; padding: 4px 8px; }\n",".slick-cell .jsl-toggle {\r\n color: #888888;\r\n /* font-size: 0.8em; */\r\n width: 1.2em;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n cursor: pointer;\r\n height: 100%;\r\n}\r\n\r\n.slick-cell .jsl-toggle-spacer {\r\n min-width: 1.2em;\r\n display: inline-block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.slick-cell .jsl-indent {\r\n display: inline-block;\r\n position: relative;\r\n}","@import \"../../ui/theme.css\";\n\n.jsl-navigation {\n position: relative; width: 100%; color: var(--jsl-color-text); background: var(--jsl-color-surface);\n border-block: 1px solid var(--jsl-color-border-subtle); box-sizing: border-box; font: inherit; font-size: .875rem; line-height: 1.4;\n *, *::before, *::after { box-sizing: border-box; }\n &--fixed, &--fixed-bottom { position: fixed; inset-inline: 0; z-index: 1010; box-shadow: 0 2px 8px #0000000a; }\n &--fixed { top: 0; }\n &--fixed-bottom { bottom: 0; }\n [hidden] { display: none !important; }\n button, a { -webkit-tap-highlight-color: transparent; }\n button { font: inherit; }\n button:focus-visible, a:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; z-index: 1; }\n}\n.jsl-nav-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; padding: .625rem 1rem; min-height: 3.5rem; container-type: inline-size; }\n.jsl-nav-brand { display: flex; align-items: center; gap: .5rem; color: inherit; text-decoration: none; font-weight: 650; font-size: 1rem; min-width: 0; overflow-wrap: anywhere; }\n.jsl-nav-items, .jsl-nav-submenu { list-style: none; padding: 0; margin: 0; }\n.jsl-nav-items { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem; min-width: 0; }\n.jsl-nav-bar--right > .jsl-nav-items { margin-inline-start: auto; }\n.jsl-nav-item { position: relative; min-width: 0; }\n.jsl-nav-row { display: flex; align-items: stretch; border-radius: .375rem; }\n.jsl-nav-link, .jsl-nav-submenu-toggle, .jsl-nav-toggle {\n border: 0; background: transparent; color: var(--jsl-color-text-secondary); cursor: pointer; text-decoration: none;\n display: inline-flex; align-items: center; justify-content: center; gap: .625rem; padding: .5rem .75rem;\n border-radius: .375rem; min-height: 2.25rem; line-height: 1.4;\n}\n.jsl-nav-link { flex: 1; justify-content: flex-start; text-align: start; min-width: 0; overflow-wrap: anywhere; }\n.jsl-nav-link > img, .jsl-nav-brand img { max-height: 1.5rem; width: auto; }\n.jsl-nav-submenu-toggle { padding-inline: .5rem; }\n.jsl-nav-link:hover, .jsl-nav-submenu-toggle:hover, .jsl-nav-toggle:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.jsl-nav-item.is-active > .jsl-nav-row { background: var(--jsl-color-surface-selected); }\n.jsl-nav-item.is-active > .jsl-nav-row > .jsl-nav-link { color: var(--jsl-color-text); font-weight: 600; }\n.jsl-navigation :disabled, .jsl-navigation [aria-disabled=true] { color: var(--jsl-color-disabled-text); cursor: default; opacity: .6; background: transparent; }\n.jsl-nav-chevron { width: .4rem; height: .4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.1rem) rotate(45deg); flex-shrink: 0; margin: .125rem; }\n[aria-expanded=true] > .jsl-nav-chevron { transform: translateY(.1rem) rotate(225deg); }\n.jsl-nav-submenu {\n position: absolute; top: calc(100% + .375rem); inset-inline-end: 0; z-index: 1020; min-width: 12rem; width: max-content;\n max-width: min(22rem, calc(100vw - 2rem)); padding: .375rem; background: var(--jsl-color-surface);\n border: 1px solid var(--jsl-color-border-subtle); border-radius: .625rem; box-shadow: 0 8px 24px #0000001a;\n max-height: min(28rem, 65dvh); overflow: auto;\n}\n// Nested disclosures remain inside the popup to avoid off-screen flyouts.\n.jsl-nav-submenu .jsl-nav-submenu { position: static; width: auto; min-width: 0; max-height: none; border: 0; border-inline-start: 1px solid var(--jsl-color-border); border-radius: 0; box-shadow: none; margin: .25rem .5rem .375rem .75rem; padding: 0 0 0 .5rem; }\n.jsl-navigation--fixed-bottom > .jsl-nav-bar > .jsl-nav-items > li > .jsl-nav-submenu { top: auto; bottom: calc(100% + .375rem); }\n.jsl-nav-toggle { display: none; margin-inline-start: auto; width: 2.25rem; padding: .5rem; }\n.jsl-nav-menu-icon, .jsl-nav-menu-icon::before, .jsl-nav-menu-icon::after { width: 1rem; height: 1.5px; background: currentColor; position: relative; display: block; }\n.jsl-nav-menu-icon::before, .jsl-nav-menu-icon::after { content: \"\"; position: absolute; left: 0; top: -.3125rem; }\n.jsl-nav-menu-icon::after { top: .3125rem; }\n.is-open > .jsl-nav-toggle .jsl-nav-menu-icon { background: transparent; }\n.is-open > .jsl-nav-toggle .jsl-nav-menu-icon::before { top: 0; transform: rotate(45deg); }\n.is-open > .jsl-nav-toggle .jsl-nav-menu-icon::after { top: 0; transform: rotate(-45deg); }\n\n@mixin compact-navigation {\n .jsl-nav-toggle { display: inline-flex; }\n .jsl-nav-brand { max-width: calc(100% - 4rem); }\n .jsl-nav-items { display: none; width: 100%; margin-inline-start: 0; padding-top: .5rem; border-top: 1px solid var(--jsl-color-border-subtle); max-height: 65dvh; overflow: auto; }\n .is-open > .jsl-nav-items { display: block; }\n .jsl-nav-item + .jsl-nav-item { margin-top: .125rem; }\n .jsl-nav-items .jsl-nav-submenu { position: static; width: auto; min-width: 0; max-width: none; max-height: none; border: 0; border-inline-start: 1px solid var(--jsl-color-border); border-radius: 0; box-shadow: none; margin: .25rem .5rem .375rem .75rem; padding: 0 0 0 .5rem; }\n}\n@container (max-width: 40rem) { @include compact-navigation; }\n@media (max-width: 767px) { @include compact-navigation; }\r\n","@import \"../../ui/theme.css\";\n.ribbon-menu-comp { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin: 0; padding: .75rem; background: var(--jsl-color-surface-subtle); color: var(--jsl-color-text); border: 1px solid var(--jsl-color-border-subtle); border-radius: 0; box-sizing: border-box; }\n.ribbon-menu-comp .ribbon-group { display: flex; flex-direction: column; gap: .5rem; padding-inline-end: .75rem; border-inline-end: 1px solid var(--jsl-color-border-subtle); min-width: 0; }\n.ribbon-menu-comp .ribbon-group:last-child { border-inline-end: 0; padding-inline-end: 0; }\n.ribbon-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .375rem; flex: 1; }\n.ribbon-menu-comp .ribbon-legend { font-size: .6875rem; color: var(--jsl-color-text-muted); text-align: center; }\r\n","/* Neutral base palette shared by redesigned components.\n Override --jsl-color-* on :root or a container to theme an application.\n These tokens do not change the host application's typography or background. */\n:where(:root) {\n --jsl-color-canvas: #f7f7f8;\n --jsl-color-surface: #ffffff;\n --jsl-color-surface-subtle: #fafafa;\n --jsl-color-surface-hover: #f0f0f2;\n --jsl-color-surface-selected: #e8e8eb;\n --jsl-color-border: #d4d4d8;\n --jsl-color-border-subtle: #e4e4e7;\n --jsl-color-text: #27272a;\n --jsl-color-text-secondary: #52525b;\n --jsl-color-text-muted: #71717a;\n --jsl-color-accent: #3f3f46;\n --jsl-color-accent-hover: #27272a;\n --jsl-color-accent-active: #18181b;\n --jsl-color-on-accent: #ffffff;\n --jsl-color-focus: #52525b;\n --jsl-color-danger: #b42318;\n --jsl-color-success: #15803d;\n --jsl-color-warning: #b45309;\n --jsl-color-info: #2563eb;\n --jsl-color-disabled-surface: #f4f4f5;\n --jsl-color-disabled-text: #71717a;\n --jsl-color-overlay: rgba(24, 24, 27, 0.45);\n --jsl-shadow-dialog: 0 24px 64px rgba(0, 0, 0, 0.18), 0 4px 16px rgba(0, 0, 0, 0.08);\n}\n","@import \"../../ui/theme.css\";\n.jsl-overlay-overlay { position: fixed; inset: 0; margin: 0; padding: 0; border: 0; background: transparent; color: var(--jsl-color-text); max-width: 100vw; max-height: 100dvh; overflow: visible; width: fit-content; height: fit-content; font: inherit; }\n.jsl-overlay-overlay:has(.overl-body-top) { width: 100%; }\n.jsl-overlay-overlay::backdrop { background: var(--jsl-color-overlay); }\n.jsl-overlay-overlay[hidden] { display: none; }\n.overl-body { box-sizing: border-box; display: flex; flex-direction: column; overflow: auto; background: var(--jsl-color-surface); box-shadow: var(--jsl-shadow-dialog); }\n.overl-body-left { width: var(--jsl-overlay-size); max-width: 100vw; height: 100dvh; border-radius: 0 .75rem .75rem 0; }\n.overl-body-top { height: var(--jsl-overlay-size); max-height: 100dvh; width: 100vw; border-radius: 0 0 .75rem .75rem; }\n.overl-header { display: flex; justify-content: flex-end; padding: .75rem .75rem 0; }\n.overl-content { padding: 1.25rem; overflow: auto; }\n.overl-close-btn { display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 0; border-radius: .375rem; background: transparent; color: var(--jsl-color-text-muted); font: inherit; font-size: 1.5rem; cursor: pointer; }\n.overl-close-btn:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.overl-close-btn:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n.overl-body-left.overl-animate { animation: jsl-panel-left .18s ease-out; }\n.overl-body-top.overl-animate { animation: jsl-panel-top .18s ease-out; }\n@keyframes jsl-panel-left { from { transform: translateX(-100%); } }\n@keyframes jsl-panel-top { from { transform: translateY(-100%); } }\n@media (prefers-reduced-motion: reduce) { .overl-animate { animation: none !important; } }\r\n"],"names":[],"version":3,"file":"index.css.map"}
|
|
1
|
+
{"mappings":"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","sources":["d22a53f1230b93fd","ui/button.css","ui/base.css","interaction/resizable.css","ui/date.picker/css/tiny-date-picker.css","ui/dialog.css","ui/number.input.css","components/notification/Notification.scss","grid/slick.grid.css","grid/slick-default-theme.css","grid/plugins/slick.headermenu.css","grid/plugins/slick.headerbuttons.css","components/virtual-render/VirtualRenderStyle.scss","grid/plugins/slick.rowmovemanager.css","grid/plugins/ext.overlay.css","components/select/SelectStyle.scss","ui/auto.suggest.css","ui/input.css","components/progress/ProgressStyle.scss","ui/date-input.css","components/time/TimeComponent.scss","components/date-time/DateTimeStyle.scss","components/expander/ExpanderStyle.scss","components/loading/LoadingStyle.css","components/form-field/FormFieldStyle.scss","components/tree-view/TreeViewStyle.scss","components/tabs/TabsStyle.scss","components/checkbox/CheckBoxStyle.scss","components/stack-panel/StackPanelStyle.scss","components/stack-panel/SplitterStyle.scss","components/date-range/DateRangeStyle.scss","components/slider/nouislider.css","grid/slick.tree.css","components/navigation/NavigationStyle.scss","components/ribbon-menu/RibbonMenuStyle.scss","ui/theme.css","components/overlay/overlay.css"],"sourcesContent":["@import \"e16a212e80fd4ff5\";\n@import \"6e953617ad2919d0\";\n@import \"3f9425748b62f903\";\n@import \"155ecbc209f78c3a\";\n@import \"832c8c23bb08fb7e\";\n@import \"d7bc4616686d5346\";\n@import \"173f96014972390c\";\n@import \"2f7e6d939cbb7c9f\";\n@import \"1b912c1b6ddd56ae\";\n@import \"3da3f80f93c57757\";\n@import \"0f415a6d1b73f253\";\n@import \"4602bf96ce909f51\";\n@import \"9fa920eb23d3eb99\";\n@import \"f1c4cfde611f7d73\";\n@import \"749bffc8dd935f0b\";\n@import \"43f39180a39af74f\";\n@import \"6083aae1e468db03\";\n@import \"8d28f990853a7ca3\";\n@import \"5b450a3ee9e5ef31\";\n@import \"17b6bae7507b6596\";\n@import \"dc0e935f30eeb1c2\";\n@import \"c2e0d971d37e8dbc\";\n@import \"fcc834650d910688\";\n@import \"daaf2302c4fba847\";\n@import \"e6d604ce93ac26ae\";\n@import \"4bbc6de33d20d085\";\n@import \"2d962d8828ea317e\";\n@import \"d83402cfcb3109fb\";\n@import \"955408ff01c48cd4\";\n@import \"c08391d63f8bc5bd\";\n@import \"8f913806dd34cce7\";\n@import \"9ebbe8329f06efe7\";\n@import \"6aadc2cc16e17a8b\";\n@import \"7a8ed48922c21ae2\";\n@import \"ed9e5da5f9b98312\";\n","@import \"./theme.css\";\n\n/* Shared by ButtonComponent and manual buttons/links using .jsl-button.\n Include link states so generic a:hover/a:visited rules cannot replace the text styling.\n Override --jsl-button-* variables on a container or individual button. */\n.jsl-button,\n.jsl-button:any-link {\n --jsl-button-height: 2rem;\n --jsl-button-padding: 0.875rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n position: relative;\n box-sizing: border-box;\n height: var(--jsl-button-height);\n margin: 0;\n padding: 0 var(--jsl-button-padding);\n vertical-align: middle;\n border: 1px solid transparent;\n border-radius: var(--jsl-button-radius, 0.375rem);\n background: var(--jsl-button-primary, var(--jsl-color-accent));\n color: var(--jsl-button-on-primary, var(--jsl-color-on-accent));\n font: inherit;\n /* font-size: 0.875rem; */\n font-weight: 500;\n line-height: 1.25;\n letter-spacing: normal;\n text-align: center;\n text-decoration: none;\n text-transform: none;\n white-space: nowrap;\n cursor: pointer;\n transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;\n}\n\n.jsl-button,\nbutton.jsl-button[type] {\n -webkit-appearance: none;\n appearance: none;\n}\n\n.jsl-button:where(:hover),\n.jsl-button:any-link:where(:hover) {\n background: var(--jsl-button-primary-hover, var(--jsl-color-accent-hover));\n}\n\n.jsl-button:where(:active, .active, [aria-pressed=\"true\"]),\n.jsl-button:any-link:where(:active, .active, [aria-pressed=\"true\"]) {\n background: var(--jsl-button-primary-active, var(--jsl-color-accent-active));\n box-shadow: inset 0 0 0 1px currentColor;\n}\n\n.jsl-button.jsl-button-outline {\n border-color: var(--jsl-button-border, var(--jsl-color-border));\n background: var(--jsl-button-surface, var(--jsl-color-surface));\n color: var(--jsl-button-text, var(--jsl-color-text));\n}\n\n.jsl-button.jsl-button-ghost {\n background: transparent;\n color: var(--jsl-button-text, var(--jsl-color-text));\n}\n\n.jsl-button.jsl-button-outline:where(:hover),\n.jsl-button.jsl-button-ghost:where(:hover) {\n background: var(--jsl-button-hover-surface, var(--jsl-color-surface-hover));\n border-color: var(--jsl-button-border, var(--jsl-color-border));\n}\n\n.jsl-button.jsl-button-outline:where(:active, .active, [aria-pressed=\"true\"]),\n.jsl-button.jsl-button-ghost:where(:active, .active, [aria-pressed=\"true\"]) {\n background: var(--jsl-button-selected-surface, var(--jsl-color-surface-selected));\n border-color: var(--jsl-button-primary, var(--jsl-color-accent));\n color: var(--jsl-button-selected-text, var(--jsl-color-text));\n box-shadow: none;\n}\n\n.jsl-button:focus-visible {\n outline: 2px solid var(--jsl-button-focus, var(--jsl-color-focus));\n outline-offset: 3px;\n}\n\n.jsl-button.jsl-button-small {\n --jsl-button-height: 1.75rem;\n --jsl-button-padding: 0.625rem;\n gap: 0.375rem;\n font-size: 0.8125rem;\n}\n\n.jsl-button.jsl-button-large {\n --jsl-button-height: 2.5rem;\n --jsl-button-padding: 1rem;\n font-size: 0.9375rem;\n}\n\n.jsl-button.jsl-button-icon-only {\n width: var(--jsl-button-height);\n padding: 0;\n flex-shrink: 0;\n}\n\n.jsl-button-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 1.125em;\n height: 1.125em;\n line-height: 1;\n pointer-events: none;\n}\n\n.jsl-button-icon > img,\n.jsl-button-icon > svg {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.jsl-button-label-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n.jsl-button:disabled,\n.jsl-button.disabled,\n.jsl-button[aria-disabled=\"true\"] {\n background: var(--jsl-button-disabled-surface, var(--jsl-color-disabled-surface));\n border-color: var(--jsl-button-disabled-border, var(--jsl-color-border-subtle));\n color: var(--jsl-button-disabled-text, var(--jsl-color-disabled-text));\n box-shadow: none;\n cursor: not-allowed;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .jsl-button { transition: none; }\n}\n\n","@import \"./button.css\";\r\n\r\n/* reset some browser inconsistencies */\r\n\r\nhtml\r\n{\r\n\t/* line-height:1.15; */\r\n\t-ms-text-size-adjust:100%;\r\n\t-webkit-text-size-adjust:100%\r\n}\r\n\r\nhr\r\n{\r\n\tbox-sizing:content-box;\r\n\theight:0;\r\n\toverflow:visible\r\n}\r\n\r\npre,code\r\n{\r\n\tfont-family:monospace,monospace;\r\n\tfont-size:1em\r\n}\r\n\r\na\r\n{\r\n\t-webkit-text-decoration-skip:objects\r\n}\r\n\r\nsub,sup\r\n{\r\n\tfont-size:75%;\r\n\tline-height:0;\r\n\tposition:relative;\r\n\tvertical-align:baseline\r\n}\r\n\r\nsub\r\n{\r\n\tbottom:-.25em\r\n}\r\n\r\nsup\r\n{\r\n\ttop:-.5em\r\n}\r\n\r\ninput,optgroup,select,textarea\r\n{\r\n\tfont-size:100%;\r\n\tline-height:1.15;\r\n\tmargin:0;\r\n\ttext-transform:none;\r\n}\r\n\r\nbutton,input\r\n{\r\n\toverflow:visible\r\n}\r\n\r\nbutton,html [type=\"button\"],\r\n[type=\"reset\"],[type=\"submit\"]\r\n{\r\n\t-webkit-appearance:button\r\n}\r\n\r\nbutton::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner\r\n{\r\n\tborder-style:none;\r\n\tpadding:0\r\n}\r\n\r\nbutton:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring\r\n{\r\n\toutline:1px dotted ButtonText\r\n}\r\n\r\ntextarea\r\n{\r\n\toverflow:auto\r\n}\r\n\r\n/* \r\nhtml {\r\n color: #393939;\r\n} */\r\n\r\n/* html,input,textarea,button,optgroup,select {\r\n\tfont-family: Tahoma;\r\n} */\r\n\r\n.right {\r\n\ttext-align: right;\r\n}\r\n\r\n.center {\r\n\ttext-align: center;\r\n}\r\n\r\ndiv.jsl-fill {\r\n\theight: 100%;\r\n\tbox-sizing: border-box;\r\n\tposition: relative;\r\n}\r\n",".resizable {\r\n position: relative;\r\n}\r\n\r\n.resizable > .rs-r {\r\n position: absolute;\r\n top:0;\r\n bottom:0;\r\n right:0;\r\n width:0.5rem;\r\n box-sizing:border-box;\r\n background:rgba(20,20,20,0.2);\r\n cursor: w-resize;\r\n}\r\n\r\n.resizable > .rs-b {\r\n position: absolute;\r\n left:0;\r\n bottom:0;\r\n right:0;\r\n height:0.5rem;\r\n box-sizing:border-box;\r\n background:rgba(20,20,20,0.2);\r\n cursor: n-resize;\r\n}\r\n\r\n.resizable > .rs-r.rs-b {\r\n top: initial;\r\n left: initial;\r\n right: 0;\r\n bottom: 0;\r\n cursor: nw-resize;\r\n}","@import \"../../theme.css\";\n\n.dp-below, .dp-modal, .dp-permanent {\n box-sizing: border-box;\n color: var(--jsl-color-text);\n font: inherit;\n font-size: .875rem;\n line-height: 1.4;\n}\n.dp-below *, .dp-modal *, .dp-permanent * { box-sizing: border-box; }\n.dp {\n width: 19rem;\n max-width: calc(100vw - 1rem);\n border: 1px solid var(--jsl-color-border);\n border-radius: .875rem;\n background: var(--jsl-color-surface);\n box-shadow: 0 12px 32px rgba(0, 0, 0, .14), 0 2px 6px rgba(0, 0, 0, .06);\n overflow: auto;\n max-height: calc(100dvh - 1rem);\n}\n.dp-below { position: fixed; z-index: 2200; width: max-content; }\n.dp-modal {\n position: fixed;\n inset: 0;\n z-index: 2300;\n display: grid;\n place-items: center;\n padding: .5rem;\n background: var(--jsl-color-overlay);\n}\n.dp-permanent { display: inline-block; max-width: 100%; }\n.dp-permanent .dp { box-shadow: none; max-width: 100%; }\n.dp button {\n appearance: none;\n border: 0;\n background: transparent;\n color: inherit;\n border-radius: .4rem;\n padding: .5rem;\n font: inherit;\n line-height: 1.4;\n cursor: pointer;\n text-align: center;\n margin: 0;\n}\n.dp button:hover:not(:disabled) { background: var(--jsl-color-surface-hover); }\n.dp button:focus-visible {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: -2px;\n position: relative;\n z-index: 1;\n}\n.dp button:disabled {\n color: var(--jsl-color-disabled-text);\n cursor: not-allowed;\n opacity: .4;\n}\n.dp-cal-header {\n display: grid;\n grid-template-columns: 2rem 1fr auto 2rem;\n align-items: center;\n gap: .125rem;\n padding: .75rem .625rem .5rem;\n}\n.dp-cal-header button { font-weight: 600; }\n.dp .dp-prev, .dp .dp-next { font-size: 1.375rem; line-height: 1; padding: .35rem; }\n.dp-days {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: .125rem;\n padding: 0 .625rem .625rem;\n}\n.dp-col-header {\n color: var(--jsl-color-text-muted);\n text-align: center;\n font-size: .6875rem;\n font-weight: 500;\n padding: .5rem 0;\n}\n.dp .dp-day {\n position: relative;\n padding: .45rem 0;\n min-height: 2.125rem;\n font-size: .8125rem;\n font-variant-numeric: tabular-nums;\n}\n.dp .dp-edge-day { color: var(--jsl-color-text-muted); }\n.dp .dp-current:not(.dp-selected) { background: var(--jsl-color-surface-selected); }\n.dp .dp-selected, .dp .dp-selected:hover:not(:disabled) {\n background: var(--jsl-color-accent);\n color: var(--jsl-color-on-accent);\n font-weight: 600;\n}\n.dp-day-today::after {\n content: \"\";\n position: absolute;\n width: 3px;\n height: 3px;\n bottom: 3px;\n left: calc(50% - 1.5px);\n border-radius: 50%;\n background: currentColor;\n}\n.dp-cal-footer {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: .25rem;\n border-top: 1px solid var(--jsl-color-border-subtle);\n padding: .5rem .625rem;\n}\n.dp-cal-footer button { font-size: .75rem; font-weight: 500; }\n.dp-months {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: .375rem;\n padding: .75rem;\n min-height: 15rem;\n align-content: center;\n}\n.dp-months button { font-size: .75rem; padding: .875rem .25rem; }\n.dp-years { padding: .75rem; height: 19rem; overflow-y: auto; display: grid; gap: .25rem; }\n.dp-years button { display: block; width: 100%; padding: .625rem; }\n@media (forced-colors: active) {\n .dp .dp-selected { outline: 2px solid Highlight; }\n}\r\n","@import \"./button.css\";\n\n.jsl-dialog-overlay {\n position: fixed;\n inset: 0;\n z-index: var(--jsl-dialog-z-index, 2001);\n background: var(--jsl-dialog-backdrop, var(--jsl-color-overlay));\n}\n\n.jsl-dialog {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n width: 32rem;\n max-width: calc(100% - 2rem);\n max-height: calc(100% - 2rem);\n border: 1px solid var(--jsl-dialog-border, var(--jsl-color-border-subtle));\n border-radius: var(--jsl-dialog-radius, 0.75rem);\n background: var(--jsl-dialog-surface, var(--jsl-color-surface));\n color: var(--jsl-color-text);\n box-shadow: var(--jsl-dialog-shadow, var(--jsl-shadow-dialog));\n font: inherit;\n line-height: 1.5;\n pointer-events: auto;\n isolation: isolate;\n}\n\n.jsl-dialog:focus { outline: none; }\n.jsl-dialog.resizable { position: absolute; }\n.jsl-dialog:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }\n\n.jsl-dialog > .dlg-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex: 0 0 auto;\n box-sizing: border-box;\n min-width: 0;\n padding: 1.125rem 1.5rem;\n border-bottom: 1px solid var(--jsl-color-border-subtle);\n border-radius: var(--jsl-dialog-radius, 0.75rem) var(--jsl-dialog-radius, 0.75rem) 0 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5;\n}\n\n.jsl-dialog .dlg-title { flex: 1; min-width: 0; overflow-wrap: anywhere; }\n.jsl-dialog-moveable > .dlg-header { cursor: move; touch-action: none; }\n\n.jsl-dialog .dlg-close-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 2rem;\n height: 2rem;\n margin: -0.25rem -0.5rem -0.25rem auto;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 0.375rem;\n background: transparent;\n color: var(--jsl-color-text-secondary);\n font: inherit;\n cursor: pointer;\n}\n\n.jsl-dialog .dlg-close-btn::before,\n.jsl-dialog .dlg-close-btn::after {\n content: \"\";\n position: absolute;\n width: 0.875rem;\n height: 1.5px;\n border-radius: 1px;\n background: currentColor;\n transform: rotate(45deg);\n}\n.jsl-dialog .dlg-close-btn::after { transform: rotate(-45deg); }\n.jsl-dialog .dlg-close-btn:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.jsl-dialog .dlg-close-btn:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n\n.jsl-dialog > .dlg-body {\n flex: 1 1 auto;\n box-sizing: border-box;\n min-height: 0;\n min-width: 0;\n padding: 1.5rem;\n overflow: auto;\n overflow-wrap: anywhere;\n overscroll-behavior: contain;\n}\n\n.jsl-dialog > .dlg-footer {\n flex: 0 0 auto;\n box-sizing: border-box;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--jsl-color-border-subtle);\n border-radius: 0 0 var(--jsl-dialog-radius, 0.75rem) var(--jsl-dialog-radius, 0.75rem);\n background: var(--jsl-color-surface-subtle);\n text-align: end;\n}\n\n.jsl-dialog > .dlg-footer > div,\n.jsl-dialog > .dlg-footer > form {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.jsl-dialog > .dlg-footer > button + button { margin-inline-start: 0.5rem; }\n.jsl-dialog > .dlg-header[hidden], .jsl-dialog > .dlg-footer[hidden] { display: none; }\n.jsl-dialog .slickgrid { border-radius: 0; }\n\n.jsl-dialog.resizable > .dlg-res-handle.rs-r.rs-b {\n width: 1rem;\n height: 1rem;\n right: 0.125rem;\n bottom: 0.125rem;\n background: transparent;\n cursor: nwse-resize;\n touch-action: none;\n}\n.jsl-dialog .dlg-res-handle::after {\n content: \"\";\n position: absolute;\n right: 0.2rem;\n bottom: 0.2rem;\n width: 0.4rem;\n height: 0.4rem;\n border-right: 1px solid var(--jsl-color-text-muted);\n border-bottom: 1px solid var(--jsl-color-text-muted);\n}\n\n@media (max-width: 480px) {\n .jsl-dialog { max-width: calc(100% - 1.5rem); max-height: calc(100% - 1.5rem); }\n .jsl-dialog > .dlg-header { padding: 1rem 1.125rem; }\n .jsl-dialog > .dlg-body { padding: 1.125rem; }\n .jsl-dialog > .dlg-footer { padding: 0.875rem 1.125rem; }\n}\r\n",".jsl-number {\r\n text-align: right;\r\n}","@import \"../../ui/theme.css\";\n\n.jsl-notification-container {\n position: fixed;\n top: 0;\n right: 0;\n width: 25rem;\n max-width: 100vw;\n max-height: 100dvh;\n overflow-y: auto;\n z-index: 3020;\n // Leave space for individual shadows so scrolling doesn't crop them into a rectangle.\n box-sizing: border-box;\n padding: 1rem;\n background: transparent;\n border: 0;\n border-radius: 1.75rem;\n box-shadow: none;\n pointer-events: none;\n scrollbar-width: thin;\n}\n.jsl-notification-container > div { display: flex; flex-direction: column; gap: .75rem; }\n.jsl-notification {\n position: relative;\n --jsl-notification-tone: var(--jsl-color-text-secondary);\n display: grid;\n grid-template-columns: 1.25rem minmax(0, 1fr) auto;\n align-items: start;\n gap: .75rem;\n box-sizing: border-box;\n width: 100%;\n padding: 1rem;\n border: 1px solid var(--jsl-color-border);\n border-radius: .75rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n font-size: .8125rem;\n line-height: 1.5;\n box-shadow: 0 8px 24px rgba(0,0,0,.1), 0 1px 4px rgba(0,0,0,.04);\n pointer-events: auto;\n animation: jsl-notification-appear .16s ease-out;\n}\n.jsl-notification[hidden] { display: none; }\n.jsl-notification--info { --jsl-notification-tone: var(--jsl-color-info); }\n.jsl-notification--success { --jsl-notification-tone: var(--jsl-color-success); }\n.jsl-notification--warning { --jsl-notification-tone: var(--jsl-color-warning); }\n.jsl-notification--error { --jsl-notification-tone: var(--jsl-color-danger); }\n.jsl-notification-icon {\n display: grid;\n place-items: center;\n box-sizing: border-box;\n width: 1.125rem;\n height: 1.125rem;\n margin-top: .125rem;\n border: 1.5px solid currentColor;\n border-radius: 50%;\n color: var(--jsl-notification-tone);\n font-size: .6875rem;\n font-weight: 700;\n line-height: 1;\n}\n.jsl-notification--success .jsl-notification-icon { font-size: .75rem; }\n.jsl-notification-copy { min-width: 0; overflow-wrap: anywhere; }\n.jsl-notification-title { margin-bottom: .25rem; font-weight: 600; color: var(--jsl-color-text); }\n.jsl-notification-title[hidden] { display: none; }\n.jsl-notification-close {\n appearance: none;\n display: grid;\n place-items: center;\n width: 1.5rem;\n height: 1.5rem;\n margin: -.125rem -.25rem 0 0;\n padding: 0;\n border: 0;\n border-radius: .25rem;\n background: transparent;\n color: var(--jsl-color-text-muted);\n font: inherit;\n font-size: 1.125rem;\n line-height: 1;\n cursor: pointer;\n}\n.jsl-notification-close[hidden] { display: none; }\n.jsl-notification-progress {\n position: absolute;\n inset: auto 1rem .375rem;\n height: 3px;\n border-radius: 999px;\n overflow: hidden;\n background: var(--jsl-color-border-subtle);\n pointer-events: none;\n}\n.jsl-notification-progress-fill {\n display: block;\n height: 100%;\n background: var(--jsl-color-accent);\n transform-origin: left;\n}\n.jsl-notification-close:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.jsl-notification-close:focus-visible, .jsl-notification:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n@keyframes jsl-notification-appear { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }\n@media (prefers-reduced-motion: reduce) { .jsl-notification { animation: none; } }\r\n","/*\r\nIMPORTANT:\r\nIn order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.\r\nNo built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS\r\nclasses should alter those!\r\n*/\r\n\r\n.slick-header.ui-state-default, .slick-headerrow.ui-state-default, .slick-footerrow.ui-state-default, .slick-top-panel-scroller.ui-state-default, .slick-group-header.ui-state-default {\r\n width: 100%;\r\n overflow: auto;\r\n position: relative;\r\n border-left: 0px !important;\r\n background: var(--jsl-color-surface);\r\n}\r\n\r\n.slick-header.ui-state-default {\r\n overflow: inherit;\r\n}\r\n\r\n.slick-header::-webkit-scrollbar, .slick-headerrow::-webkit-scrollbar, .slick-footerrow::-webkit-scrollbar {\r\n display: none\r\n}\r\n\r\n.slick-header-columns, .slick-headerrow-columns, .slick-footerrow-columns, .slick-group-header-columns {\r\n position: relative;\r\n white-space: nowrap;\r\n cursor: default;\r\n overflow: hidden;\r\n}\r\n\r\n.slick-header-column.ui-state-default, .slick-group-header-column.ui-state-default {\r\n position: relative;\r\n /* display: inline-block; */\r\n box-sizing: content-box !important; /* this here only for Firefox! */ \r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n height: 20px;\r\n line-height: 20px;\r\n margin: 0;\r\n padding: 4px;\r\n border-right: 1px solid var(--jsl-color-border-subtle);\r\n border-left: 0px !important;\r\n border-top: 1px solid var(--jsl-color-border-subtle);\r\n border-bottom: 0px !important;\r\n float: left;\r\n}\r\n\r\n/* Column headers fit up to two lines; grouped headers retain their existing size. */\r\n.slick-header-column.ui-state-default {\r\n height: var(--jsl-grid-header-height, 40px);\r\n line-height: var(--jsl-grid-header-height, 40px);\r\n}\r\n\r\n.slick-footerrow-column.ui-state-default {\r\n top: 0;\r\n bottom: 0;\r\n height: auto;\r\n align-content: center;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n margin: 0;\r\n padding: 4px;\r\n border-right: 1px solid var(--jsl-color-border-subtle);\r\n border-left: 0px;\r\n border-top: 0px;\r\n border-bottom: 0px;\r\n float: left;\r\n line-height: 20px;\r\n vertical-align: middle;\r\n}\r\n\r\n.slick-headerrow-column.ui-state-default, .slick-footerrow-column.ui-state-default {\r\n padding: 4px;\r\n}\r\n\r\n.slick-header-column-sorted {\r\n font-style: inherit;\r\n}\r\n\r\n.slick-sort-indicator {\r\n /* display: inline-block; */\r\n width: 8px;\r\n height: 5px;\r\n margin-left: 4px;\r\n margin-top: 6px;\r\n float: left;\r\n}\r\n\r\n.slick-sort-indicator-numbered {\r\n /* display: inline-block; */\r\n width: 8px;\r\n height: 5px;\r\n margin-left: 4px;\r\n margin-top: 0;\r\n line-height: 20px;\r\n float: left;\r\n font-style: normal;\r\n font-weight: bold;\r\n color: var(--jsl-color-text-secondary);\r\n}\r\n\r\n\r\n/* TODO TODOFIX */\r\n/* .slick-sort-indicator-desc {\r\n background: url(images/sort-desc.gif);\r\n}\r\n\r\n.slick-sort-indicator-asc {\r\n background: url(images/sort-asc.gif);\r\n} */\r\n\r\n/* .slick-resizable-handle {\r\n position: absolute;\r\n font-size: 0.1px;\r\n display: block;\r\n cursor: col-resize;\r\n width: 9px;\r\n right: -5px;\r\n top: 0;\r\n height: 100%;\r\n z-index: 1;\r\n} */\r\n\r\n.slick-sortable-placeholder {\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.grid-canvas {\r\n position: relative;\r\n outline: 0;\r\n}\r\n\r\n.slick-row.ui-widget-content, .slick-row.ui-state-active {\r\n position: absolute;\r\n border: 0px;\r\n width: 100%;\r\n}\r\n\r\n.slick-cell, .slick-headerrow-column , .slick-footerrow-column{\r\n /* SlickGrid measures content dimensions; host border-box resets must not apply. */\r\n box-sizing: content-box !important;\r\n position: absolute;\r\n border: 1px solid transparent;\r\n /*border-right: 1px dotted var(--jsl-color-border-subtle);\r\n border-bottom-color: var(--jsl-color-border-subtle); */\r\n border-right: 1px dotted var(--jsl-color-border-subtle);\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n vertical-align: middle;\r\n z-index: 1;\r\n padding: 1px 2px 1px 1px;\r\n margin: 0;\r\n white-space: nowrap;\r\n cursor: default;\r\n}\r\n/*.slick-cell, */.slick-headerrow-column{\r\n border-bottom-color: var(--jsl-color-border-subtle);\r\n}\r\n.slick-footerrow-column {\r\n border-top-color: var(--jsl-color-border-subtle);\r\n}\r\n\r\n.slick-group-toggle {\r\n display: inline-block;\r\n}\r\n\r\n.slick-cell.highlighted {\r\n\r\n background: var(--jsl-color-surface-selected);\r\n -webkit-transition: all 0.5s;\r\n -moz-transition: all 0.5s;\r\n -o-transition: all 0.5s;\r\n transition: all 0.5s;\r\n}\r\n\r\n.slick-cell.flashing {\r\n border: 1px solid var(--jsl-color-danger) !important;\r\n}\r\n\r\n.slick-cell.editable {\r\n z-index: 11;\r\n overflow: visible;\r\n /* background: var(--jsl-color-surface);\r\n border-color: black;\r\n border-style: solid; */\r\n}\r\n\r\n.slick-cell:focus {\r\n outline: none;\r\n}\r\n\r\n.slick-reorder-proxy {\r\n display: inline-block;\r\n background: var(--jsl-color-accent);\r\n opacity: 0.15;\r\n filter: alpha(opacity = 15);\r\n cursor: move;\r\n}\r\n\r\n.slick-reorder-guide {\r\n display: inline-block;\r\n height: 2px;\r\n background: var(--jsl-color-accent);\r\n opacity: 0.7;\r\n filter: alpha(opacity = 70);\r\n}\r\n\r\n.slick-selection {\r\n z-index: 10;\r\n position: absolute;\r\n border: 2px dashed var(--jsl-color-focus);\r\n}\r\n\r\n.slick-pane {\r\n position: absolute;\r\n outline: 0;\r\n overflow: hidden;\r\n width: 100%;\r\n}\r\n\r\n.slick-pane-header {\r\n display: block;\r\n}\r\n\r\n.slick-header, .slick-headerrow, .slick-top-panel-scroller {\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.slick-top-panel {\r\n width: 10000px\r\n}\r\n\r\n.slick-viewport {\r\n position: relative;\r\n outline: 0;\r\n width: 100%;\r\n background: var(--jsl-color-surface);\r\n}\r\n\r\n.slick-wrap {\r\n white-space: normal;\r\n}\r\n\r\n/* Slick.Editors.Text, Slick.Editors.Date */\r\ninput.editor-text, textarea.editor-text {\r\n width: 100%;\r\n height: 100%;\r\n border: 0;\r\n margin: 0;\r\n background: transparent;\r\n outline: 0;\r\n padding: 0;\r\n resize: none;\r\n}\r\n\r\n.slick-cell .jsl-container {\r\n position: absolute;\r\n left:0;\r\n right:0;\r\n bottom:0;\r\n top:0;\r\n}\r\n\r\n.slick-cell .jsl-container .jsl-selected {\r\n padding: 0;\r\n}\r\n\r\n.slickgrid {\r\n box-sizing: border-box;\r\n border: solid 1px var(--jsl-color-border);\r\n border-radius: 3px;\r\n}\r\n\r\n.slick-col-ghost {\r\n box-sizing: content-box;\r\n position: absolute;\r\n pointer-events: none;\r\n}\r\n\r\n.slick-ghost-content {\r\n border: solid 2px var(--jsl-color-border);\r\n background: var(--jsl-color-surface-selected);\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.editor-text {\r\n font-size: 100%;\r\n}\r\n\r\n.slick-filtered-header {\r\n color: var(--jsl-color-accent);\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-preheader-panel .slick-column-name {\r\n text-align: center;\r\n float: none;\r\n}\r\n\r\n.slick-header-column.resizable > .rs-r {\r\n background: none;\r\n}\r\n\r\n/* .slick-header-column:hover.resizable > .rs-r {\r\n background: rgba(20,20,20,0.3);\r\n} */\r\n\r\n.js-touch .slick-header-column > .slick-header-menubutton {\r\n display: inline-block;\r\n}\r\n\r\n.js-touch .slick-header-column.resizable>.rs-r {\r\n /* background: rgba(20,20,20,.3);\r\n background-size: 0.9em 0.5em;\r\n background-position: center center; */\r\n\r\n background: rgba(0,0,0,0.04);\r\n background-size: 0.5em 0.3em;\r\n background-position: right center;\r\n\r\n background: transparent;\r\n background-size: 0.5em 0.3em;\r\n background-position: right center;\r\n\r\n width: 1.2rem;\r\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAMNSURBVEhLxVY7i1NBGM3NwzyMINiIjSKoC9tIBEG02FgkIeSxpJBlS7sV1s5fIRZqYWFhtYssEggJ5IEaFxERYdXWam1EkQVh82Lz8pzJl3jvzb1JjK8DA/lOZuacO/PNN+Po9/tT29LSktuKt2vov4B2xeo/c3M6piASiawHg8G9eDweEmoi2A/936G9wNg1oW2h0YUdKB4IBO45nU5Ht9s9ACLFYnFb/h4DxT0ez2uXy3WIca/XczQajZuVSuW+6mABWwPRaPSa3+9/DHFNKEe73a7XarWj1Wq1I5QByWQyBwMpCRVoAubL4K9ns9nPQo9guQVW4pwIK7BuJ05AZK3T6exIqMDVAx8Fn89kMieEHmHMQCwWuwrxTbM4l7JcLj8SyhL8QrfbncRKbXGMHuBDMLFtNmHYAor7fL4KxF1CKWDCcj6fj0k4EyR/7uo/hICJXZi5PNyO0Qowgbxeb8ksjgEfuH8SzgwmXrPZXMFKGJIM4qeQE+/T6fRJxmoFwuHwcRybjxA6onoJzG7ngeQTt9TwYcin3Xq9fkZLJBLnEL+C02MQG/wLaJr2HYMWf0d8CJyON5jrooQK/HC0r1oqlarh3B4W/p/D+T/Fiaml+G9jZIB7guwctT8NzNnTz48E5/Het80BZOnbQqFgSJx5wMIDsWdI8AWhFCiOsn6WK7AIR3sD+icwIIQjlJFwLoh43iyOE9eFgWWU9S/OXC73CdwFmPg2+HsAnluc3yc8x0L9MiBymx8ioQLFW61WpFQqPWescoAmsA3nWXgYDwETGi8lllWhZgbfAphzVUIFVkVUx9WhOGG4C2TJXsL1aaEUMJCJs4lKeWuWwmRzm1J8BRfallAKY+8B3b6NvYDA74BPTjKBCy2OC61gEudtegP3wwOhRhirA5ycIrwBOVAPmgL/UEJLYJU2LMT5KhoTJywLEU3w+uVAvQn8ZvbekdASWKVlbNeBhNy68qQnmaWBITiQJiBK4Y4+e+3ANyP6XkLbR3s69SqXW2li4xN71mf2sKG/z4o3tr7jB/mDdb4DhXtsAAAAAElFTkSuQmCC');\r\n background-repeat: no-repeat;\r\n}\r\n.js-touch .slick-header-menubutton.resize-offset {\r\n right: 1.2rem;\r\n width: 1.2rem;\r\n}\r\n","@import \"../ui/theme.css\";\r\n/*\r\nIMPORTANT:\r\nIn order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.\r\nNo built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS\r\nclasses should alter those!\r\n*/\r\n\r\n.slick-header-columns {\r\n border-bottom: 2px solid var(--jsl-color-border-subtle);\r\n background: var(--jsl-color-surface-subtle);\r\n}\r\n\r\n.slick-header-column {\r\n border-right: 1px solid var(--jsl-color-border-subtle);\r\n text-align: inherit;\r\n font-weight: 600;\r\n}\r\n\r\n.slick-header-column:hover, .slick-header-column-active {\r\n background: var(--jsl-color-surface-hover);\r\n color: var(--jsl-color-text);\r\n}\r\n\r\n\r\n.slick-header-column > .slick-header-menubutton:hover {\r\n background-color: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-headerrow {\r\n background: var(--jsl-color-surface-subtle);\r\n}\r\n\r\n.slick-headerrow-column {\r\n background: var(--jsl-color-surface-subtle);\r\n border-bottom: 0;\r\n height: 100%;\r\n}\r\n\r\n.slick-row.ui-state-active {\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-row {\r\n display: flex;\r\n align-items: center;\r\n position: absolute;\r\n background: var(--jsl-color-surface);\r\n border: 0px;\r\n line-height: inherit;\r\n}\r\n\r\n/* what is this used for ? */\r\n.slick-row.selected {\r\n z-index: 10;\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-cell {\r\n align-content: center;\r\n padding-left: 4px;\r\n padding-right: 4px;\r\n}\r\n\r\n/* The themed Select control has a comfortable form-field minimum height.\r\n In a grid editor it must fit the row instead of imposing that height. */\r\n.slick-cell.editable .select-comp {\r\n display: flex;\r\n height: 100%;\r\n min-height: 0;\r\n max-width: none;\r\n}\r\n\r\n.slick-cell.editable .select-comp > .sel-expander {\r\n height: 100%;\r\n min-height: 0;\r\n padding: 0 0.5rem;\r\n border-radius: 0.25rem;\r\n}\r\n\r\n.slick-cell.editable .select-comp.multiple > .sel-expander {\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n}\r\n\r\n.slick-cell.editable .select-comp .sel-chip {\r\n padding: 0.0625rem 0.375rem;\r\n font-size: 0.6875rem;\r\n}\r\n\r\n.slick-group {\r\n border-bottom: 2px solid var(--jsl-color-border-subtle);\r\n}\r\n\r\n.slick-group .slick-cell {\r\n display: flex;\r\n align-items: center;\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-group-toggle {\r\n flex-shrink: 0;\r\n width: 20px;\r\n height: 20px;\r\n vertical-align: middle;\r\n margin-right: 5px;\r\n}\r\n\r\n.slick-group-toggle.expanded {\r\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 122.88 119.8'%3E%3Cpath d='M23.59,0h75.7a23.63,23.63,0,0,1,23.59,23.59V96.21A23.64,23.64,0,0,1,99.29,119.8H23.59a23.53,23.53,0,0,1-16.67-6.93l-.38-.42A23.49,23.49,0,0,1,0,96.21V23.59A23.63,23.63,0,0,1,23.59,0Zm59.7,53.51a6.39,6.39,0,1,1,0,12.77H39.59a6.39,6.39,0,1,1,0-12.77Zm16-40.74H23.59A10.86,10.86,0,0,0,12.77,23.59V96.21a10.77,10.77,0,0,0,2.9,7.37l.28.26A10.76,10.76,0,0,0,23.59,107h75.7a10.87,10.87,0,0,0,10.82-10.82V23.59A10.86,10.86,0,0,0,99.29,12.77Z'/%3E%3C/svg%3E\") no-repeat center center; mask-size: contain; background-color: currentColor;\r\n}\r\n\r\n.slick-group-toggle.collapsed { \r\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 122.88 119.72' style='enable-background:new 0 0 122.88 119.72' xml:space='preserve'%3E%3Cg%3E%3Cpath d='M22.72,0h77.45c6.25,0,11.93,2.56,16.05,6.67c4.11,4.11,6.67,9.79,6.67,16.05v74.29c0,6.25-2.56,11.93-6.67,16.05 l-0.32,0.29c-4.09,3.94-9.64,6.38-15.73,6.38H22.72c-6.25,0-11.93-2.56-16.05-6.67l-0.3-0.32C2.43,108.64,0,103.09,0,97.01V22.71 c0-6.25,2.55-11.93,6.67-16.05C10.78,2.55,16.46,0,22.72,0L22.72,0z M55.47,38.34c0-3.3,2.67-5.97,5.97-5.97 c3.3,0,5.97,2.67,5.97,5.97v15.55h15.55c3.3,0,5.97,2.67,5.97,5.97c0,3.3-2.67,5.97-5.97,5.97H67.41v15.55 c0,3.3-2.67,5.97-5.97,5.97c-3.3,0-5.97-2.67-5.97-5.97V65.83H39.91c-3.3,0-5.97-2.67-5.97-5.97c0-3.3,2.67-5.97,5.97-5.97h15.55 V38.34L55.47,38.34z M100.16,10.24H22.72c-3.43,0-6.54,1.41-8.81,3.67c-2.26,2.26-3.67,5.38-3.67,8.81v74.29 c0,3.33,1.31,6.35,3.43,8.59l0.24,0.22c2.26,2.26,5.38,3.67,8.81,3.67h77.45c3.32,0,6.35-1.31,8.59-3.44l0.21-0.23 c2.26-2.26,3.67-5.38,3.67-8.81V22.71c0-3.42-1.41-6.54-3.67-8.81C106.71,11.65,103.59,10.24,100.16,10.24L100.16,10.24z'/%3E%3C/g%3E%3C/svg%3E\") no-repeat center center; mask-size: contain; background-color: currentColor;\r\n}\r\n\r\n.slick-group-totals {\r\n color: var(--jsl-color-text-secondary);\r\n background: var(--jsl-color-surface);\r\n}\r\n\r\n.slick-group-select-checkbox {\r\n width: 13px;\r\n height: 13px;\r\n margin: 3px 10px 0 0;\r\n display: inline-block;\r\n}\r\n\r\n.slick-cell.selected {\r\n background-color: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-cell.active {\r\n border-color: var(--jsl-color-focus);\r\n border-style: solid;\r\n}\r\n\r\n.slick-sortable-placeholder {\r\n background: var(--jsl-color-surface-selected) !important;\r\n}\r\n\r\n.slick-row.odd {\r\n background: var(--jsl-color-surface-subtle);\r\n}\r\n\r\n.slick-row.ui-state-active {\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slick-row.loading {\r\n opacity: 0.5;\r\n filter: alpha(opacity = 50);\r\n}\r\n\r\n.slick-cell.invalid {\r\n border-color: var(--jsl-color-danger);\r\n animation-duration: 0.2s;\r\n -moz-animation-duration: 0.2s;\r\n -webkit-animation-duration: 0.2s;\r\n animation-name: slickgrid-invalid-hilite;\r\n -moz-animation-name: slickgrid-invalid-hilite;\r\n -webkit-animation-name: slickgrid-invalid-hilite; \r\n}\r\n\r\n@keyframes slickgrid-invalid-hilite {\r\n from { box-shadow: 0 0 6px var(--jsl-color-danger); }\r\n to { box-shadow: none; }\r\n}\r\n\r\n@-moz-keyframes slickgrid-invalid-hilite {\r\n from { box-shadow: 0 0 6px var(--jsl-color-danger); }\r\n to { box-shadow: none; }\r\n}\r\n\r\n@-webkit-keyframes slickgrid-invalid-hilite {\r\n from { box-shadow: 0 0 6px var(--jsl-color-danger); }\r\n to { box-shadow: none; }\r\n}\r\n\r\n/* .slick-grid {\r\n background: var(--jsl-color-surface);\r\n outline: 0;\r\n border: 1px solid #a0a0a0;\r\n border-radius: 3px;\r\n} */\r\n\r\n.new-row .slick-cell {\r\n border-top: solid 1px var(--jsl-color-border);\r\n background: var(--jsl-color-surface-selected);\r\n}\r\n\r\n.slickgrid { font: inherit; color: var(--jsl-color-text); background: var(--jsl-color-surface); }\r\n\n/* Presentation only: preserve all measured cell and header dimensions. */\n\n\n.slick-row:not(.slick-group):not(.slick-group-totals) > .slick-cell:not(.active):not(.invalid):not(.flashing) { border-right-color: transparent; }\r\n\n\n\n/* These utilities also work when importing the standalone grid entry point. */\n.slickgrid .right { text-align: right; }\n.slickgrid .center { text-align: center; }\n.slickgrid .tabular-nums { font-variant-numeric: tabular-nums; }\n\n/* Override the legacy float rules that otherwise defeat header text alignment. */\n.slick-header-column .slick-column-name {\n float: none;\n margin-bottom: 0;\n display: inline-block;\n max-width: 100%;\n max-height: 2.4em;\r\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\r\n line-height: 1.2;\r\n vertical-align: middle;\r\n}\n.slick-header-sortable .slick-column-name { max-width: calc(100% - 1.25rem); }\n.slick-header-column .slick-sort-indicator,\n.slick-header-column .slick-sort-indicator-numbered {\n display: inline-block;\n float: none;\n position: relative;\n vertical-align: top;\r\n margin: 0 0 0 .375rem;\n height: var(--jsl-grid-header-height, 40px);\r\n line-height: var(--jsl-grid-header-height, 40px);\r\n color: var(--jsl-color-accent);\n}\n.slick-header-column .slick-sort-indicator { width: .65rem; }\n.slick-header-column.right .slick-sort-indicator,\r\n.slick-header-column.right .slick-sort-indicator-numbered { float: left; margin-left: 0; margin-right: .375rem; }\r\n.slick-sort-indicator-asc::before, .slick-sort-indicator-desc::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 8px;\n height: 5px;\n background: currentColor;\n}\n.slick-sort-indicator-asc::before { clip-path: polygon(50% 0, 100% 100%, 0 100%); }\n.slick-sort-indicator-desc::before { clip-path: polygon(0 0, 100% 0, 50% 100%); }\n.slick-header-column .slick-sort-indicator-numbered { width: auto; min-width: .65rem; font-size: .8em; }\r\n.slick-header-column .slick-sort-indicator.slick-sort-indicator-numbered { min-width: 1.5rem; padding-left: .75rem; }\n\n/* Draw inside frozen panes without changing widths or intercepting resize/scroll gestures. */\n.slickgrid:has(.slick-header-column.frozen) > .slick-pane-left::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: 1px;\n background: var(--jsl-color-border);\n box-shadow: -2px 0 4px rgba(0, 0, 0, .08);\n pointer-events: none;\n z-index: 20;\n}\r\n","/* Menu button */\r\n.slick-header-menubutton {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 14px;\r\n background-repeat: no-repeat;\r\n background-position: left center;\r\n background-image: url('data:image/gif;base64,R0lGODlhDgAOAIABADtKYwAAACH5BAEAAAEALAAAAAAOAA4AAAISjI+py+0PHZgUsGobhTn6DxoFADs=');\r\n cursor: pointer;\r\n\r\n display: none;\r\n border-left: thin ridge silver;\r\n}\r\n\r\n.slick-header-menubutton.resize-offset {\r\n right: 0.5rem;\r\n}\r\n\r\n.slick-header-column:hover > .slick-header-menubutton,\r\n.slick-header-column-active .slick-header-menubutton {\r\n display: inline-block;\r\n}\r\n\r\n/* Menu */\r\n.slick-header-menu {\r\n position: absolute;\r\n display: inline-block;\r\n margin: 0;\r\n padding: 2px;\r\n cursor: default;\r\n}\r\n\r\n\r\n/* Menu items */\r\n.slick-header-menuitem {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n cursor: pointer;\r\n}\r\n\r\n.slick-header-menuicon {\r\n display: inline-block;\r\n width: 16px;\r\n height: 16px;\r\n vertical-align: middle;\r\n margin-right: 4px;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n}\r\n\r\n.slick-header-menucontent {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n/* Disabled */\r\n.slick-header-menuitem-disabled {\r\n color: silver;\r\n}\r\n\r\n/* Divider */\r\n.slick-header-menuitem.slick-header-menuitem-divider {\r\n cursor: default;\r\n border: none;\r\n overflow: hidden;\r\n padding: 0;\r\n height: 1px;\r\n margin: 8px 2px;\r\n background-color: #cecece;\r\n}\r\n.slick-header-menuitem-divider.slick-header-menuitem:hover {\r\n background-color: #cecece;\r\n}\r\n\r\n.slick-header-menu {\r\n border: 1px solid #bebebe;\r\n background: #ffffff;\r\n padding: 2px;\r\n box-shadow: 2px 2px 2px silver;\r\n z-index: 20;\r\n}\r\n\r\n\r\n.slick-header-menuitem {\r\n padding: 2px 4px;\r\n border-radius: 3px;\r\n}\r\n\r\n.slick-header-menuitem:hover {\r\n background: #3B99FF;\r\n color:white;\r\n}\r\n\r\n.slick-header-menuitem-disabled {\r\n border-color: transparent !important;\r\n background: inherit !important;\r\n}",".slick-column-name,\r\n.slick-sort-indicator {\r\n /**\r\n * This makes all \"float:right\" elements after it that spill over to the next line\r\n * display way below the lower boundary of the column thus hiding them.\r\n */\r\n display: inline-block;\r\n float: left;\r\n margin-bottom: 100px;\r\n}\r\n\r\n.slick-header-button {\r\n display: inline-block;\r\n float: right;\r\n vertical-align: top;\r\n margin: 1px;\r\n margin-right: 2rem;\r\n /**\r\n * This makes all \"float:right\" elements after it that spill over to the next line\r\n * display way below the lower boundary of the column thus hiding them.\r\n */\r\n margin-bottom: 100px;\r\n height: 15px;\r\n width: 15px;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n cursor: pointer;\r\n}\r\n\r\n.slick-header-button-hidden {\r\n width: 0;\r\n\r\n -webkit-transition: 0.2s width;\r\n -ms-transition: 0.2s width;\r\n transition: 0.2s width;\r\n}\r\n\r\n.slick-header-column:hover > .slick-header-button {\r\n width: 15px;\r\n}",".v-r-comp {\r\n\r\n height:100%;\r\n\r\n .v-r-child > * {\r\n height: 100%;\r\n }\r\n\r\n}",".cell-reorder {\r\n cursor: move;\r\n /* background: red; */\r\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAADAFBMVEUAAACWlpbY2NgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmpIfcAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAAABlJREFUCNdj+I8EGFA5jHAA5DDBAW2VIQEAmyRUB6U7kZIAAAAASUVORK5CYII=);\r\n background-repeat: no-repeat;\r\n background-position-x: center;\r\n background-position-y: center;\r\n}","\r\n.header-overlay {\r\n background-color: #217346;\r\n}\r\n\r\n.cell-overlay,\r\n.selection-cell-overlay {\r\n display: block;\r\n position: absolute;\r\n z-index: 20;\r\n background-color: #217346;\r\n}\r\n\r\n.handle-overlay {\r\n border: 1px solid white;\r\n padding: 3px;\r\n background-color: #217346;\r\n position: absolute;\r\n width: 2px;\r\n height: 2px;\r\n z-index: 20;\r\n cursor: crosshair;\r\n}\r\n\r\n.overlay-handle-decorator {\r\n border: 2px solid #217346;\r\n z-index: 20;\r\n}\r\n","@import \"../../ui/theme.css\";\n\n.select-comp {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n width: 14rem;\n max-width: 100%;\n min-width: 0;\n min-height: 2.5rem;\n vertical-align: middle;\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n}\n.select-comp *, .sel-comp-dd * { box-sizing: border-box; }\n.select-comp .sel-expander {\n appearance: none;\n display: flex;\n align-items: center;\n gap: .625rem;\n width: 100%;\n min-width: 0;\n min-height: inherit;\n padding: .5rem .75rem;\n border: 1px solid var(--jsl-color-border);\n border-radius: .5rem;\n background: var(--jsl-color-surface);\n color: inherit;\n font: inherit;\n line-height: 1.4;\n text-align: left;\n cursor: pointer;\n transition: border-color .15s;\n}\n.select-comp:has(.clear-btn:not([hidden])) .sel-expander { padding-right: 3.5rem; }\n.select-comp .sel-expander:hover:not(:disabled) { border-color: var(--jsl-color-text-muted); }\n.select-comp.expanded .sel-expander { border-color: var(--jsl-color-accent); }\n.select-comp .sel-expander:focus-visible, .select-comp .clear-btn:focus-visible {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: 2px;\n}\n.select-comp .sel-result {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.select-comp .sel-placeholder { color: var(--jsl-color-text-muted); }\n.select-comp .sel-result > .sel-dd-item { display: block; overflow: hidden; text-overflow: ellipsis; }\n.select-comp .sel-chevron {\n flex: 0 0 7px;\n width: 7px;\n height: 7px;\n border: solid var(--jsl-color-text-muted);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg) translateY(-2px);\n margin-left: auto;\n}\n.select-comp.expanded .sel-chevron { transform: rotate(225deg) translate(-2px, -1px); }\n.select-comp:has(.clear-btn:not([hidden])) .sel-chevron { position: absolute; right: .875rem; }\n.select-comp .clear-btn {\n appearance: none;\n display: grid;\n place-items: center;\n position: absolute;\n right: 1.875rem;\n top: 50%;\n transform: translateY(-50%);\n width: 1.5rem;\n height: 1.5rem;\n border: 0;\n border-radius: .25rem;\n padding: 0;\n font: inherit;\n font-size: 1.125rem;\n line-height: 1;\n background: transparent;\n color: var(--jsl-color-text-muted);\n cursor: pointer;\n}\n.select-comp .clear-btn:hover:not(:disabled) { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.select-comp .clear-btn[hidden] { display: none; }\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-expander {\n background: var(--jsl-color-disabled-surface);\n color: var(--jsl-color-disabled-text);\n cursor: not-allowed;\n}\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .clear-btn { color: var(--jsl-color-disabled-text); cursor: not-allowed; }\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-result,\n.select-comp:is(.disabled, :has(> .sel-expander:disabled)) .sel-chevron { opacity: .65; }\n.select-comp.multiple .sel-result:not(.sel-placeholder) { display: flex; flex-wrap: wrap; gap: .25rem; white-space: normal; }\n.select-comp.multiple .sel-expander { padding-top: .375rem; padding-bottom: .375rem; }\n.sel-chip {\n display: inline-block;\n min-width: 0;\n max-width: 100%;\n padding: .125rem .4375rem;\n border-radius: .25rem;\n background: var(--jsl-color-surface-selected);\n color: var(--jsl-color-text-secondary);\n font-size: .75rem;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.sel-chip-count { color: var(--jsl-color-text-muted); background: var(--jsl-color-surface-hover); }\n.sel-comp-dd {\n position: absolute;\n z-index: 2200;\n box-sizing: border-box;\n overflow: hidden;\n padding: 4px;\n border: 1px solid var(--jsl-color-border);\n border-radius: .625rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n box-shadow: 0 12px 32px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .06);\n}\n.sel-dd-panel { height: 100%; display: flex; flex-direction: column; min-height: 0; }\n.sel-search { flex: 0 0 44px; padding: 3px 4px 7px; }\n.sel-search[hidden] { display: none; }\n.sel-search input {\n appearance: none;\n width: 100%;\n height: 34px;\n border: 1px solid var(--jsl-color-border-subtle);\n border-radius: .375rem;\n background: var(--jsl-color-surface-subtle);\n color: var(--jsl-color-text);\n padding: .375rem .625rem .375rem 2rem;\n font: inherit;\n font-size: .8125rem;\n line-height: 1.4;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717a' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cpath d='m10.5 10.5 3 3'/%3E%3C/svg%3E\");\n background-position: .625rem center;\n background-repeat: no-repeat;\n}\n.sel-search input::placeholder { color: var(--jsl-color-text-muted); }\n.sel-search input:focus { outline: 0; border-color: var(--jsl-color-focus); }\n.sel-listbox { position: relative; min-height: 0; flex: 1; outline: none; }\n.sel-comp-dd .sel-dd-items { overscroll-behavior: contain; scrollbar-width: thin; }\n.sel-comp-dd .sel-dd-item {\n position: relative;\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 2rem 0 .625rem;\n border-radius: .375rem;\n font-size: .8125rem;\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n}\n.sel-comp-dd .sel-dd-item:hover:not(.sel-dd-group) { background: var(--jsl-color-surface-hover); }\n.sel-comp-dd .sel-dd-item.selected { background: var(--jsl-color-surface-selected); }\n.sel-comp-dd .sel-dd-item.focused { outline: 1px solid var(--jsl-color-focus); outline-offset: -2px; }\n.sel-comp-dd .sel-dd-item.selected::after {\n content: \"\";\n position: absolute;\n right: .875rem;\n width: 5px;\n height: 9px;\n border: solid var(--jsl-color-text);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg) translateY(-2px);\n}\n.sel-comp-dd .multiple .sel-dd-item:not(.sel-dd-group) { padding-left: 2rem; padding-right: .625rem; }\n.sel-comp-dd .multiple .sel-dd-item:not(.sel-dd-group)::before {\n content: \"\";\n position: absolute;\n left: .625rem;\n width: 14px;\n height: 14px;\n border: 1px solid var(--jsl-color-border);\n border-radius: .25rem;\n background: var(--jsl-color-surface);\n}\n.sel-comp-dd .multiple .sel-dd-item.selected::before { border-color: var(--jsl-color-accent); background: var(--jsl-color-accent); }\n.sel-comp-dd .multiple .sel-dd-item.selected::after { left: .875rem; right: auto; width: 4px; height: 7px; border-color: var(--jsl-color-on-accent); }\n.sel-comp-dd .sel-dd-group {\n padding: 0 .625rem;\n color: var(--jsl-color-text-muted);\n font-size: .6875rem;\n font-weight: 600;\n cursor: default;\n}\n.sel-empty { padding: 1.25rem .625rem; color: var(--jsl-color-text-muted); font-size: .8125rem; text-align: center; }\n.sel-empty[hidden] { display: none; }\n.sel-dd-animate { animation: jsl-select-appear .12s ease-out; }\n@keyframes jsl-select-appear { from { opacity: 0; } to { opacity: 1; } }\n@media (prefers-reduced-motion: reduce) {\n .sel-dd-animate { animation: none; }\n .select-comp .sel-expander { transition: none; }\n}\n@media (forced-colors: active) {\n .sel-comp-dd .sel-dd-item.selected { outline: 2px solid Highlight; outline-offset: -2px; }\n .sel-chip { border: 1px solid ButtonText; }\n}\n","@import \"./theme.css\";\n\n.autocomplete-suggestions {\n display: none;\n position: absolute;\n z-index: 2200;\n max-height: min(16rem, calc(100dvh - 1rem));\n overflow-y: auto;\n box-sizing: border-box;\n padding: 4px;\n border: 1px solid var(--jsl-color-border);\n border-radius: .625rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n font-size: .8125rem;\n text-align: left;\n box-shadow: 0 12px 32px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.06);\n}\n.autocomplete-suggestion {\n position: relative;\n padding: .5rem .625rem;\n border-radius: .375rem;\n line-height: 1.4;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n.autocomplete-suggestion b { color: inherit; font-weight: 600; }\n.autocomplete-suggestion.selected, .autocomplete-suggestion:hover { background: var(--jsl-color-surface-selected); }\r\n","@import \"./theme.css\";\n\n.jsl-input, .jsl-date-input {\n box-sizing: border-box;\n width: 14rem;\n max-width: 100%;\n min-width: 0;\n height: 2.5rem;\n padding: .5rem .75rem;\n border: 1px solid var(--jsl-color-border);\n border-radius: .5rem;\n background-color: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n /* font-size: .875rem; */\n line-height: 1.4;\n transition: border-color .15s;\n}\n.jsl-input:hover:not(:disabled), .jsl-date-input:hover:not(:disabled) { border-color: var(--jsl-color-text-muted); }\n.jsl-input:focus, .jsl-date-input:focus {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: 2px;\n border-color: var(--jsl-color-accent);\n}\n.jsl-input::placeholder, .jsl-date-input::placeholder { color: var(--jsl-color-text-muted); opacity: 1; }\n.jsl-input:disabled, .jsl-date-input:disabled {\n cursor: not-allowed;\n background-color: var(--jsl-color-disabled-surface);\n color: var(--jsl-color-disabled-text);\n}\n.jsl-input[aria-invalid=\"true\"] { border-color: var(--jsl-color-danger); }\ntextarea.jsl-input { min-height: 6rem; height: auto; resize: vertical; }\n.jsl-input[type=\"color\"] { width: 4rem; padding: .25rem; cursor: pointer; }\n.jsl-input[type=\"number\"], .jsl-input.jsl-number { font-variant-numeric: tabular-nums; }\n@media (prefers-reduced-motion: reduce) { .jsl-input, .jsl-date-input { transition: none; } }\n","@import \"../../ui/theme.css\";\n.progress-comp { position: relative; background: var(--jsl-color-border-subtle); height: .5rem; border-radius: 999px; overflow: hidden; }\n.progress-comp.has-label { height: 1.25rem; }\n.progress-comp .bar { background: var(--jsl-color-accent); height: 100%; border-radius: inherit; }\n.progress-comp .progress-label { position: absolute; inset: 0; display: grid; place-items: center; color: var(--jsl-color-text); font: 600 .75rem/1.25rem sans-serif; text-shadow: 0 0 3px var(--jsl-color-surface); }\r\n","@import \"./input.css\";\n\n.jsl-date-input { width: 11rem; font-variant-numeric: tabular-nums; }\n.date-comp {\n padding-right: 2.4rem;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2371717a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4' width='13' height='12' rx='2'/%3E%3Cpath d='M6 2v4M12 2v4M3 8h12'/%3E%3C/svg%3E\");\n background-position: right .7rem center;\n background-repeat: no-repeat;\n}\n.jsl-date-input:disabled { opacity: .75; }\n.jsl-date-input[aria-invalid=\"true\"] { border-style: dashed; border-width: 2px; }\r\n","@import \"../../ui/date-input.css\";\n\n.time-comp { width: 6rem; text-align: center; }\n.time-comp-seconds { width: 7.5rem; }\r\n",".date-time-comp {\n display: inline-flex;\n align-items: center;\n flex-wrap: wrap;\n gap: .5rem;\n max-width: 100%;\n}\n.date-time-comp .date-comp { flex: 1 1 10rem; }\n.date-time-comp .time-comp { flex: 0 0 6rem; }\n.date-time-comp .time-comp-seconds { flex-basis: 7.5rem; }\r\n","@import \"../../ui/theme.css\";\n\n.expander-comp {\n box-sizing: border-box;\n max-width: 100%;\n border: 1px solid var(--jsl-color-border-subtle);\n border-radius: .625rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n line-height: 1.5;\n}\n.expander-comp > .header {\n display: flex;\n align-items: center;\n gap: .5rem;\n min-height: 3rem;\n padding: .5rem .875rem .5rem .625rem;\n border-radius: inherit;\n}\n.expander-comp.toggle-on-header > .header { cursor: pointer; }\n.expander-comp.toggle-on-header:not(.disabled) > .header:hover { background: var(--jsl-color-surface-hover); }\n.expander-comp > .header > .toggler {\n appearance: none;\n display: inline-grid;\n place-items: center;\n flex: 0 0 auto;\n min-width: 2rem;\n min-height: 2rem;\n padding: .25rem;\n margin: 0;\n border: 0;\n border-radius: .375rem;\n background: transparent;\n color: var(--jsl-color-text-secondary);\n font: inherit;\n line-height: 1;\n cursor: pointer;\n}\n.expander-comp > .header > .toggler:hover:not(:disabled) { background: var(--jsl-color-surface-selected); }\n.expander-comp > .header > .toggler:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n.expander-comp > .header > .content { flex: 1; min-width: 0; font-weight: 500; overflow-wrap: anywhere; }\n.expander-icon, .expand-collapse-icon { display: inline-grid; place-items: center; }\n.expand-collapse-icon { width: 1rem; height: 1rem; }\n.expander-chevron {\n display: block;\n width: 37.5%;\n height: 37.5%;\n border: solid currentColor;\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(-45deg);\n}\n.expand-collapse-icon.is-expanded .expander-chevron { transform: rotate(45deg) translate(-1px, -1px); }\n.expander-comp > .body { border-top: 1px solid var(--jsl-color-border-subtle); padding: 1rem 1.125rem; overflow-wrap: anywhere; }\n.expander-comp > .body[hidden] { display: none; }\n.expander-comp.expanded > .body { animation: jsl-expander-appear .14s ease-out; }\n.expander-comp.disabled > .header { color: var(--jsl-color-disabled-text); cursor: default; background: var(--jsl-color-disabled-surface); }\n.expander-comp > .header > .toggler:disabled { color: var(--jsl-color-disabled-text); cursor: not-allowed; }\n@keyframes jsl-expander-appear { from { opacity: 0; } to { opacity: 1; } }\n@media (prefers-reduced-motion: reduce) { .expander-comp.expanded > .body { animation: none; } }\n","@import \"../../ui/theme.css\";\n\n.jsl-loading { display: inline-flex; align-items: center; justify-content: center; gap: .625rem; max-width: 100%; color: var(--jsl-color-text-secondary); font: inherit; vertical-align: middle; }\n.lds-dual-ring { display: inline-block; position: relative; flex-shrink: 0; width: var(--jsl-loading-size, 1em); height: var(--jsl-loading-size, 1em); max-width: 100%; }\n.lds-dual-ring::after {\n content: \"\";\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n border: max(2px, calc(var(--jsl-loading-size, 1em) * .08)) solid var(--jsl-color-border-subtle);\n border-top-color: var(--jsl-loading-color, var(--jsl-color-accent));\n border-right-color: var(--jsl-loading-color, var(--jsl-color-accent));\n border-radius: 50%;\n animation: jsl-loading-spin .85s linear infinite;\n}\n.jsl-loading-label { font-size: .8125rem; line-height: 1.5; }\n.jsl-loading-label-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }\n@keyframes jsl-loading-spin { to { transform: rotate(360deg); } }\n@media (prefers-reduced-motion: reduce) { .lds-dual-ring::after { animation: none; } }\r\n","@import \"../../ui/theme.css\";\n\n.form-field {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: .375rem;\n min-width: 0;\n max-width: 100%;\n margin: 0 0 1rem;\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n}\n.form-field__label { display: block; color: var(--jsl-color-text-secondary); font-size: .75rem; font-weight: 500; line-height: 1.5; }\n.form-field__required { color: var(--jsl-color-text-muted); }\n.form-field__required[hidden] { display: none; }\n.form-field__control { display: block; min-width: 0; border: 0; margin: 0; padding: 0; }\n.form-field__control > .jsl-input, .form-field__control > .jsl-date-input,\n.form-field__control > .select-comp, .form-field__control > .date-time-comp { width: 100%; }\n.form-field__description, .form-field__error { color: var(--jsl-color-text-muted); font-size: .75rem; line-height: 1.5; }\n.form-field__error { color: var(--jsl-color-danger); }\n.form-field__description[hidden], .form-field__error[hidden] { display: none; }\n.form-field--invalid > .form-field__label { color: var(--jsl-color-danger); }\n.form-field--invalid > .form-field__control .sel-expander { border-color: var(--jsl-color-danger); }\n.form-field--floating { padding-top: .5rem; }\n.form-field--floating > .form-field__label {\n position: absolute;\n top: 0;\n left: .625rem;\n z-index: 1;\n max-width: calc(100% - 1.25rem);\n padding: 0 .25rem;\n background: var(--jsl-color-surface);\n}\n.form-field:has(.form-field__control:disabled) > .form-field__label { color: var(--jsl-color-disabled-text); }\n","@import \"../../ui/theme.css\";\n.treeview-comp { color: var(--jsl-color-text); font: inherit; \n // font-size: .875rem;\n line-height: 1.5; }\n.treeview-comp .tv-ul { list-style: none; padding: 0; margin: 0; }\n.treeview-comp .tv-ul .tv-ul { margin-left: 1rem; padding-left: .5rem; border-left: 1px solid var(--jsl-color-border-subtle); }\n.treeview-comp [hidden] { display: none; }\n.tv-row { display: flex; align-items: center; gap: .625rem; padding: .375rem .625rem; border-radius: .375rem; cursor: pointer; overflow-wrap: anywhere; }\n.tv-row:hover { background: var(--jsl-color-surface-hover); }\n.tv-row.is-selected { background: var(--jsl-color-surface-selected); }\n.tv-row:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: -2px; }\n.tv-chevron { flex: 0 0 .375rem; width: .375rem; height: .375rem; border-right: 1.5px solid var(--jsl-color-text-muted); border-bottom: 1.5px solid var(--jsl-color-text-muted); transform: rotate(-45deg); margin-right: .25rem; }\n.tv-row[aria-expanded=true] > .tv-chevron { transform: translateY(-.125rem) rotate(45deg); }\n.tv-leaf { border-color: transparent; }\n","@import \"../../ui/theme.css\";\n\n.stabcomponent {\n min-width: 0;\n max-width: 100%;\n color: var(--jsl-color-text);\n\n > .tab-header-row {\n display: flex;\n align-items: stretch;\n gap: 0.25rem;\n min-width: 0;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n scrollbar-width: thin;\n border-bottom: 1px solid var(--jsl-tabs-border, var(--jsl-color-border-subtle));\n }\n\n > .tab-header-row > .tab-item {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n gap: 0.125rem;\n position: relative;\n margin: 0;\n padding: 0;\n border: 0;\n border-bottom: 2px solid transparent;\n border-radius: 0.375rem 0.375rem 0 0;\n background: transparent;\n color: var(--jsl-tabs-text, var(--jsl-color-text-secondary));\n\n &:hover {\n background: var(--jsl-tabs-hover-surface, var(--jsl-color-surface-hover));\n color: var(--jsl-color-text);\n }\n\n &.active {\n border-bottom-color: var(--jsl-tabs-accent, var(--jsl-color-accent));\n color: var(--jsl-tabs-active-text, var(--jsl-color-text));\n }\n\n &.disabled {\n border-bottom-color: transparent;\n background: transparent;\n color: var(--jsl-color-disabled-text);\n cursor: not-allowed;\n }\n }\n\n .tab-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n box-sizing: border-box;\n min-height: 2.5rem;\n min-width: 0;\n padding: 0.625rem 0.875rem;\n margin: 0;\n border: 0;\n border-radius: 0.375rem;\n background: transparent;\n color: inherit;\n font: inherit;\n // font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.5;\n text-align: start;\n text-decoration: none;\n cursor: pointer;\n }\n\n .tab-trigger:disabled { cursor: not-allowed; }\n .tab-trigger:focus-visible,\n > .tab-header-row > .tab-item > .close-button:focus-visible,\n > .tab-header-row:focus-visible {\n outline: 2px solid var(--jsl-color-focus);\n outline-offset: -3px;\n }\n\n .tab-label {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n white-space: nowrap;\n }\n\n > .tab-header-row > .tab-item > .close-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n margin: 0 0.5rem 0 -0.375rem;\n border: 0;\n border-radius: 0.25rem;\n background: transparent;\n color: var(--jsl-color-text-muted);\n cursor: pointer;\n\n &::before,\n &::after {\n content: \"\";\n position: absolute;\n width: 0.625rem;\n height: 1.5px;\n border-radius: 1px;\n background: currentColor;\n transform: rotate(45deg);\n }\n &::after { transform: rotate(-45deg); }\n &:hover { background: var(--jsl-color-surface-selected); color: var(--jsl-color-text); }\n &:disabled { color: var(--jsl-color-disabled-text); background: transparent; cursor: not-allowed; }\n }\n\n > .tab-panels {\n min-width: 0;\n background: var(--jsl-tabs-surface, var(--jsl-color-surface));\n }\n\n > .tab-panels > .tab-content {\n box-sizing: border-box;\n min-width: 0;\n padding: 1rem;\n overflow: auto;\n overflow-wrap: anywhere;\n overscroll-behavior: contain;\n line-height: 1.6;\n\n &:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: -2px; }\n &.tab-hidden,\n &[hidden] { display: none; }\n }\n}\n","@import \"../../ui/theme.css\";\n\n.jsl-checkbox {\n display: inline-flex;\n align-items: flex-start;\n gap: .625rem;\n max-width: 100%;\n color: var(--jsl-color-text);\n font: inherit;\n // font-size: .875rem;\n line-height: 1.5;\n vertical-align: middle;\n}\n.checkbox-comp {\n appearance: none;\n -webkit-appearance: none;\n box-sizing: border-box;\n position: relative;\n display: inline-grid;\n place-content: center;\n flex: 0 0 1.125rem;\n width: 1.125rem;\n height: 1.125rem;\n margin: calc((1.5em - 1.125rem) / 2) 0 0;\n border: 1px solid var(--jsl-color-border);\n border-radius: .25rem;\n background: var(--jsl-color-surface);\n color: var(--jsl-color-on-accent);\n font: inherit;\n cursor: pointer;\n transition: background-color .12s, border-color .12s;\n}\n.checkbox-comp::after {\n content: \"\";\n width: 4px;\n height: 8px;\n margin-top: -2px;\n border: solid currentColor;\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n opacity: 0;\n}\n.checkbox-comp:checked, .checkbox-comp:indeterminate {\n border-color: var(--jsl-color-accent);\n background: var(--jsl-color-accent);\n}\n.checkbox-comp:checked::after, .checkbox-comp:indeterminate::after { opacity: 1; }\n.checkbox-comp:indeterminate::after {\n width: 8px;\n height: 0;\n margin-top: 0;\n border-width: 0 0 2px;\n transform: none;\n}\n.checkbox-comp:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }\n.jsl-checkbox:has(.checkbox-comp:not(:disabled)):hover .checkbox-comp { border-color: var(--jsl-color-text-muted); }\n.jsl-checkbox:has(.checkbox-comp:checked:not(:disabled)):hover .checkbox-comp,\n.jsl-checkbox:has(.checkbox-comp:indeterminate:not(:disabled)):hover .checkbox-comp {\n border-color: var(--jsl-color-accent-hover);\n background: var(--jsl-color-accent-hover);\n}\n.checkbox-copy { min-width: 0; }\n.checkbox-label { display: block; cursor: pointer; overflow-wrap: anywhere; }\n.checkbox-description { display: block; margin-top: .1875rem; color: var(--jsl-color-text-muted); font-size: .75rem; line-height: 1.5; }\n.checkbox-description[hidden] { display: none; }\n.checkbox-comp:disabled { background: var(--jsl-color-disabled-surface); border-color: var(--jsl-color-border-subtle); cursor: not-allowed; }\n.checkbox-comp:disabled:checked, .checkbox-comp:disabled:indeterminate { background: var(--jsl-color-disabled-text); border-color: var(--jsl-color-disabled-text); color: var(--jsl-color-disabled-surface); opacity: .65; }\n.jsl-checkbox.disabled .checkbox-label { color: var(--jsl-color-disabled-text); cursor: not-allowed; }\n@media (prefers-reduced-motion: reduce) { .checkbox-comp { transition: none; } }\n@media (forced-colors: active) {\n .checkbox-comp { appearance: auto; }\n .checkbox-comp::after { display: none; }\n}\n","@import \"../../ui/theme.css\";\n.stackpanel-comp { display: flex; min-width: 0; min-height: 0; box-sizing: border-box; }\n.stackpanel-comp.hstackpanel { flex-direction: row; width: 100%; }\n.stackpanel-comp.vstackpanel { flex-direction: column; }\n.stackpanel-comp.wrap { flex-wrap: wrap; }\n.stackpanel-comp > div:not(.split-comp) { min-width: 0; min-height: 0; box-sizing: border-box; }\n@media (max-width: 70em) {\n .stackpanel-comp.hstackpanel.responsive { flex-direction: column; }\n .stackpanel-comp.hstackpanel.responsive > div:not(.split-comp) { width: auto !important; flex: 0 0 auto !important; }\n .stackpanel-comp.hstackpanel.responsive > .split-comp { display: none; }\n}\r\n","@import \"../../ui/theme.css\";\n.stackpanel-comp > .split-comp { position: relative; flex: 0 0 12px; align-self: stretch; background: var(--jsl-color-surface-subtle); touch-action: none; user-select: none; outline-offset: -2px; }\n.split-comp::before { content: \"\"; position: absolute; border-radius: 999px; background: var(--jsl-color-border); }\n.hstackpanel > .split-comp { cursor: col-resize; }\n.hstackpanel > .split-comp::before { width: 3px; height: 32px; max-height: 80%; top: 50%; left: 50%; transform: translate(-50%,-50%); }\n.vstackpanel > .split-comp { cursor: row-resize; }\n.vstackpanel > .split-comp::before { height: 3px; width: 32px; max-width: 80%; top: 50%; left: 50%; transform: translate(-50%,-50%); }\n.split-comp:hover::before, .split-comp:focus-visible::before { background: var(--jsl-color-accent); }\n.split-comp:focus-visible { outline: 2px solid var(--jsl-color-focus); }\r\n",".date-range-comp {\n display: inline-block;\n width: 25rem;\n max-width: 100%;\n color: var(--jsl-color-text);\n}\n.date-range-fields {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n align-items: end;\n gap: .625rem;\n}\n.date-range-field { min-width: 0; }\n.date-range-field label {\n display: block;\n margin-bottom: .375rem;\n color: var(--jsl-color-text-secondary);\n font: inherit;\n font-size: .75rem;\n font-weight: 500;\n}\n.date-range-field input { width: 100%; }\n.date-range-separator { line-height: 2.5rem; color: var(--jsl-color-text-muted); }\n.date-range-track { padding: 1.5rem .625rem .875rem; }\n.date-range-limits {\n display: flex;\n justify-content: space-between;\n gap: .5rem;\n color: var(--jsl-color-text-muted);\n font-size: .6875rem;\n font-variant-numeric: tabular-nums;\n}\n@media (max-width: 380px) {\n .date-range-fields { gap: .375rem; }\n .date-range-field input { font-size: .75rem; padding-left: .5rem; padding-right: 1.75rem; background-position: right .3rem center; background-size: 15px; }\n}\r\n","@import \"../../ui/theme.css\";\n\n/*! nouislider - 14.6.0 - 6/27/2020 */\r\n/* Functional styling;\r\n * These styles are required for noUiSlider to function.\r\n * You don't need to change these rules to apply your design.\r\n */\r\n.noUi-target,\r\n.noUi-target * {\r\n -webkit-touch-callout: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n -webkit-user-select: none;\r\n -ms-touch-action: none;\r\n touch-action: none;\r\n -ms-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.noUi-target {\r\n position: relative;\r\n}\r\n.noUi-base,\r\n.noUi-connects {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n z-index: 1;\r\n}\r\n/* Wrapper for all connect elements.\r\n */\r\n.noUi-connects {\r\n overflow: hidden;\r\n z-index: 0;\r\n}\r\n.noUi-connect,\r\n.noUi-origin {\r\n will-change: transform;\r\n position: absolute;\r\n z-index: 1;\r\n top: 0;\r\n right: 0;\r\n -ms-transform-origin: 0 0;\r\n -webkit-transform-origin: 0 0;\r\n -webkit-transform-style: preserve-3d;\r\n transform-origin: 0 0;\r\n transform-style: flat;\r\n}\r\n.noUi-connect {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n.noUi-origin {\r\n height: 10%;\r\n width: 10%;\r\n}\r\n/* Offset direction\r\n */\r\n.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {\r\n left: 0;\r\n right: auto;\r\n}\r\n/* Give origins 0 height/width so they don't interfere with clicking the\r\n * connect elements.\r\n */\r\n.noUi-vertical .noUi-origin {\r\n width: 0;\r\n}\r\n.noUi-horizontal .noUi-origin {\r\n height: 0;\r\n}\r\n.noUi-handle {\r\n -webkit-backface-visibility: hidden;\r\n backface-visibility: hidden;\r\n position: absolute;\r\n}\r\n.noUi-touch-area {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n.noUi-state-tap .noUi-connect,\r\n.noUi-state-tap .noUi-origin {\r\n -webkit-transition: transform 0.3s;\r\n transition: transform 0.3s;\r\n}\r\n.noUi-state-drag * {\r\n cursor: inherit !important;\r\n}\r\n/* Slider size and handle placement;\r\n */\r\n.noUi-horizontal {\r\n height: 6px;\r\n}\r\n.noUi-horizontal .noUi-handle {\r\n width: 18px;\r\n height: 18px;\r\n right: -9px;\r\n top: -6px;\r\n}\r\n.noUi-vertical {\r\n width: 6px;\n}\r\n.noUi-vertical .noUi-handle {\r\n width: 18px;\r\n height: 18px;\r\n right: -6px;\r\n top: -9px;\r\n}\r\n.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {\r\n left: -9px;\r\n right: auto;\r\n}\r\n/* Styling;\r\n * Giving the connect element a border radius causes issues with using transform: scale\r\n */\r\n.noUi-target {\r\n background: var(--jsl-slider-track, var(--jsl-color-border-subtle));\r\n border-radius: 999px;\r\n border: 0;\r\n box-shadow: none;\r\n}\r\n.noUi-connects {\r\n border-radius: 3px;\r\n}\r\n.noUi-connect {\r\n background: var(--jsl-slider-connect, var(--jsl-color-accent));\r\n}\r\n/* Handles and cursors;\r\n */\r\n.noUi-draggable {\r\n cursor: ew-resize;\r\n}\r\n.noUi-vertical .noUi-draggable {\r\n cursor: ns-resize;\r\n}\r\n.noUi-handle {\r\n border: 2px solid var(--jsl-color-accent);\n border-radius: 50%;\n background: var(--jsl-color-surface);\r\n cursor: default;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.16);\r\n}\r\n.noUi-active {\r\n border-color: var(--jsl-color-accent);\r\n}\r\n/* Disabled state;\r\n */\r\n[disabled] .noUi-connect {\r\n background: var(--jsl-color-disabled-text);\r\n}\r\n[disabled].noUi-target,\r\n[disabled].noUi-handle,\r\n[disabled] .noUi-handle {\r\n cursor: not-allowed;\r\n}\r\n/* Base;\r\n *\r\n */\r\n.noUi-pips,\r\n.noUi-pips * {\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.noUi-pips {\r\n position: absolute;\r\n color: var(--jsl-color-text-muted);\r\n}\r\n/* Values;\r\n *\r\n */\r\n.noUi-value {\r\n position: absolute;\r\n white-space: nowrap;\r\n text-align: center;\r\n}\r\n.noUi-value-sub {\r\n color: var(--jsl-color-text-muted);\r\n font-size: 10px;\r\n}\r\n/* Markings;\r\n *\r\n */\r\n.noUi-marker {\r\n position: absolute;\r\n background: var(--jsl-color-border);\r\n}\r\n.noUi-marker-sub {\r\n background: var(--jsl-color-border);\r\n}\r\n.noUi-marker-large {\r\n background: var(--jsl-color-border);\r\n}\r\n/* Horizontal layout;\r\n *\r\n */\r\n.noUi-pips-horizontal {\r\n padding: 10px 0;\r\n height: 80px;\r\n top: 100%;\r\n left: 0;\r\n width: 100%;\r\n}\r\n.noUi-value-horizontal {\r\n -webkit-transform: translate(-50%, 50%);\r\n transform: translate(-50%, 50%);\r\n}\r\n.noUi-rtl .noUi-value-horizontal {\r\n -webkit-transform: translate(50%, 50%);\r\n transform: translate(50%, 50%);\r\n}\r\n.noUi-marker-horizontal.noUi-marker {\r\n margin-left: -1px;\r\n width: 2px;\r\n height: 5px;\r\n}\r\n.noUi-marker-horizontal.noUi-marker-sub {\r\n height: 10px;\r\n}\r\n.noUi-marker-horizontal.noUi-marker-large {\r\n height: 15px;\r\n}\r\n/* Vertical layout;\r\n *\r\n */\r\n.noUi-pips-vertical {\r\n padding: 0 10px;\r\n height: 100%;\r\n top: 0;\r\n left: 100%;\r\n}\r\n.noUi-value-vertical {\r\n -webkit-transform: translate(0, -50%);\r\n transform: translate(0, -50%);\r\n padding-left: 25px;\r\n}\r\n.noUi-rtl .noUi-value-vertical {\r\n -webkit-transform: translate(0, 50%);\r\n transform: translate(0, 50%);\r\n}\r\n.noUi-marker-vertical.noUi-marker {\r\n width: 5px;\r\n height: 2px;\r\n margin-top: -1px;\r\n}\r\n.noUi-marker-vertical.noUi-marker-sub {\r\n width: 10px;\r\n}\r\n.noUi-marker-vertical.noUi-marker-large {\r\n width: 15px;\r\n}\r\n.noUi-tooltip {\r\n display: block;\r\n position: absolute;\r\n border: 1px solid var(--jsl-color-border);\r\n border-radius: 3px;\r\n background: var(--jsl-color-surface);\r\n color: var(--jsl-color-text);\r\n padding: 5px;\r\n text-align: center;\r\n white-space: nowrap;\r\n}\r\n.noUi-horizontal .noUi-tooltip {\r\n -webkit-transform: translate(-50%, 0);\r\n transform: translate(-50%, 0);\r\n left: 50%;\r\n bottom: 120%;\r\n}\r\n.noUi-vertical .noUi-tooltip {\r\n -webkit-transform: translate(0, -50%);\r\n transform: translate(0, -50%);\r\n top: 50%;\r\n right: 120%;\r\n}\r\n.noUi-horizontal .noUi-origin > .noUi-tooltip {\r\n -webkit-transform: translate(50%, 0);\r\n transform: translate(50%, 0);\r\n left: auto;\r\n bottom: 10px;\r\n}\r\n.noUi-vertical .noUi-origin > .noUi-tooltip {\r\n -webkit-transform: translate(0, -18px);\r\n transform: translate(0, -18px);\r\n top: auto;\r\n right: 28px;\r\n}\r\n\n/* Larger interaction targets without changing slider geometry. */\n.noUi-touch-area { position: absolute; inset: -6px; width: auto; height: auto; }\n.noUi-base::before { content: \"\"; position: absolute; inset: -10px 0; }\n.noUi-vertical .noUi-base::before { inset: 0 -10px; }\n.noUi-handle { cursor: grab; }\n.noUi-handle:active { cursor: grabbing; }\n.noUi-handle:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 3px; }\n[disabled] .noUi-handle, .noUi-handle[disabled] { border-color: var(--jsl-color-disabled-text); background: var(--jsl-color-disabled-surface); }\n.noUi-tooltip { font: inherit; font-size: 0.75rem; border-radius: 0.375rem; padding: 4px 8px; }\n",".slick-cell .jsl-toggle {\r\n color: #888888;\r\n /* font-size: 0.8em; */\r\n width: 1.2em;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n cursor: pointer;\r\n height: 100%;\r\n}\r\n\r\n.slick-cell .jsl-toggle-spacer {\r\n min-width: 1.2em;\r\n display: inline-block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.slick-cell .jsl-indent {\r\n display: inline-block;\r\n position: relative;\r\n}","@import \"../../ui/theme.css\";\n\n.jsl-navigation {\n position: relative; width: 100%; color: var(--jsl-color-text); background: var(--jsl-color-surface);\n border-block: 1px solid var(--jsl-color-border-subtle); box-sizing: border-box; font: inherit; font-size: .875rem; line-height: 1.4;\n *, *::before, *::after { box-sizing: border-box; }\n &--fixed, &--fixed-bottom { position: fixed; inset-inline: 0; z-index: 1010; box-shadow: 0 2px 8px #0000000a; }\n &--fixed { top: 0; }\n &--fixed-bottom { bottom: 0; }\n [hidden] { display: none !important; }\n button, a { -webkit-tap-highlight-color: transparent; }\n button { font: inherit; }\n button:focus-visible, a:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; z-index: 1; }\n}\n.jsl-nav-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; padding: .625rem 1rem; min-height: 3.5rem; container-type: inline-size; }\n.jsl-nav-brand { display: flex; align-items: center; gap: .5rem; color: inherit; text-decoration: none; font-weight: 650; font-size: 1rem; min-width: 0; overflow-wrap: anywhere; }\n.jsl-nav-items, .jsl-nav-submenu { list-style: none; padding: 0; margin: 0; }\n.jsl-nav-items { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem; min-width: 0; }\n.jsl-nav-bar--right > .jsl-nav-items { margin-inline-start: auto; }\n.jsl-nav-item { position: relative; min-width: 0; }\n.jsl-nav-row { display: flex; align-items: stretch; border-radius: .375rem; }\n.jsl-nav-link, .jsl-nav-submenu-toggle, .jsl-nav-toggle {\n border: 0; background: transparent; color: var(--jsl-color-text-secondary); cursor: pointer; text-decoration: none;\n display: inline-flex; align-items: center; justify-content: center; gap: .625rem; padding: .5rem .75rem;\n border-radius: .375rem; min-height: 2.25rem; line-height: 1.4;\n}\n.jsl-nav-link { flex: 1; justify-content: flex-start; text-align: start; min-width: 0; overflow-wrap: anywhere; }\n.jsl-nav-link > img, .jsl-nav-brand img { max-height: 1.5rem; width: auto; }\n.jsl-nav-submenu-toggle { padding-inline: .5rem; }\n.jsl-nav-link:hover, .jsl-nav-submenu-toggle:hover, .jsl-nav-toggle:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.jsl-nav-item.is-active > .jsl-nav-row { background: var(--jsl-color-surface-selected); }\n.jsl-nav-item.is-active > .jsl-nav-row > .jsl-nav-link { color: var(--jsl-color-text); font-weight: 600; }\n.jsl-navigation :disabled, .jsl-navigation [aria-disabled=true] { color: var(--jsl-color-disabled-text); cursor: default; opacity: .6; background: transparent; }\n.jsl-nav-chevron { width: .4rem; height: .4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.1rem) rotate(45deg); flex-shrink: 0; margin: .125rem; }\n[aria-expanded=true] > .jsl-nav-chevron { transform: translateY(.1rem) rotate(225deg); }\n.jsl-nav-submenu {\n position: absolute; top: calc(100% + .375rem); inset-inline-end: 0; z-index: 1020; min-width: 12rem; width: max-content;\n max-width: min(22rem, calc(100vw - 2rem)); padding: .375rem; background: var(--jsl-color-surface);\n border: 1px solid var(--jsl-color-border-subtle); border-radius: .625rem; box-shadow: 0 8px 24px #0000001a;\n max-height: min(28rem, 65dvh); overflow: auto;\n}\n// Nested disclosures remain inside the popup to avoid off-screen flyouts.\n.jsl-nav-submenu .jsl-nav-submenu { position: static; width: auto; min-width: 0; max-height: none; border: 0; border-inline-start: 1px solid var(--jsl-color-border); border-radius: 0; box-shadow: none; margin: .25rem .5rem .375rem .75rem; padding: 0 0 0 .5rem; }\n.jsl-navigation--fixed-bottom > .jsl-nav-bar > .jsl-nav-items > li > .jsl-nav-submenu { top: auto; bottom: calc(100% + .375rem); }\n.jsl-nav-toggle { display: none; margin-inline-start: auto; width: 2.25rem; padding: .5rem; }\n.jsl-nav-menu-icon, .jsl-nav-menu-icon::before, .jsl-nav-menu-icon::after { width: 1rem; height: 1.5px; background: currentColor; position: relative; display: block; }\n.jsl-nav-menu-icon::before, .jsl-nav-menu-icon::after { content: \"\"; position: absolute; left: 0; top: -.3125rem; }\n.jsl-nav-menu-icon::after { top: .3125rem; }\n.is-open > .jsl-nav-toggle .jsl-nav-menu-icon { background: transparent; }\n.is-open > .jsl-nav-toggle .jsl-nav-menu-icon::before { top: 0; transform: rotate(45deg); }\n.is-open > .jsl-nav-toggle .jsl-nav-menu-icon::after { top: 0; transform: rotate(-45deg); }\n\n@mixin compact-navigation {\n .jsl-nav-toggle { display: inline-flex; }\n .jsl-nav-brand { max-width: calc(100% - 4rem); }\n .jsl-nav-items { display: none; width: 100%; margin-inline-start: 0; padding-top: .5rem; border-top: 1px solid var(--jsl-color-border-subtle); max-height: 65dvh; overflow: auto; }\n .is-open > .jsl-nav-items { display: block; }\n .jsl-nav-item + .jsl-nav-item { margin-top: .125rem; }\n .jsl-nav-items .jsl-nav-submenu { position: static; width: auto; min-width: 0; max-width: none; max-height: none; border: 0; border-inline-start: 1px solid var(--jsl-color-border); border-radius: 0; box-shadow: none; margin: .25rem .5rem .375rem .75rem; padding: 0 0 0 .5rem; }\n}\n@container (max-width: 40rem) { @include compact-navigation; }\n@media (max-width: 767px) { @include compact-navigation; }\r\n","@import \"../../ui/theme.css\";\n.ribbon-menu-comp { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin: 0; padding: .75rem; background: var(--jsl-color-surface-subtle); color: var(--jsl-color-text); border: 1px solid var(--jsl-color-border-subtle); border-radius: 0; box-sizing: border-box; }\n.ribbon-menu-comp .ribbon-group { display: flex; flex-direction: column; gap: .5rem; padding-inline-end: .75rem; border-inline-end: 1px solid var(--jsl-color-border-subtle); min-width: 0; }\n.ribbon-menu-comp .ribbon-group:last-child { border-inline-end: 0; padding-inline-end: 0; }\n.ribbon-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .375rem; flex: 1; }\n.ribbon-menu-comp .ribbon-legend { font-size: .6875rem; color: var(--jsl-color-text-muted); text-align: center; }\r\n","/* Neutral base palette shared by redesigned components.\n Override --jsl-color-* on :root or a container to theme an application.\n These tokens do not change the host application's typography or background. */\n:where(:root) {\n --jsl-color-canvas: #f7f7f8;\n --jsl-color-surface: #ffffff;\n --jsl-color-surface-subtle: #fafafa;\n --jsl-color-surface-hover: #f0f0f2;\n --jsl-color-surface-selected: #e8e8eb;\n --jsl-color-border: #d4d4d8;\n --jsl-color-border-subtle: #e4e4e7;\n --jsl-color-text: #27272a;\n --jsl-color-text-secondary: #52525b;\n --jsl-color-text-muted: #71717a;\n --jsl-color-accent: #3f3f46;\n --jsl-color-accent-hover: #27272a;\n --jsl-color-accent-active: #18181b;\n --jsl-color-on-accent: #ffffff;\n --jsl-color-focus: #52525b;\n --jsl-color-danger: #b42318;\n --jsl-color-success: #15803d;\n --jsl-color-warning: #b45309;\n --jsl-color-info: #2563eb;\n --jsl-color-disabled-surface: #f4f4f5;\n --jsl-color-disabled-text: #71717a;\n --jsl-color-overlay: rgba(24, 24, 27, 0.45);\n --jsl-shadow-dialog: 0 24px 64px rgba(0, 0, 0, 0.18), 0 4px 16px rgba(0, 0, 0, 0.08);\n}\n","@import \"../../ui/theme.css\";\n.jsl-overlay-overlay { position: fixed; inset: 0; margin: 0; padding: 0; border: 0; background: transparent; color: var(--jsl-color-text); max-width: 100vw; max-height: 100dvh; overflow: visible; width: fit-content; height: fit-content; font: inherit; }\n.jsl-overlay-overlay:has(.overl-body-top) { width: 100%; }\n.jsl-overlay-overlay::backdrop { background: var(--jsl-color-overlay); }\n.jsl-overlay-overlay[hidden] { display: none; }\n.overl-body { box-sizing: border-box; display: flex; flex-direction: column; overflow: auto; background: var(--jsl-color-surface); box-shadow: var(--jsl-shadow-dialog); }\n.overl-body-left { width: var(--jsl-overlay-size); max-width: 100vw; height: 100dvh; border-radius: 0 .75rem .75rem 0; }\n.overl-body-top { height: var(--jsl-overlay-size); max-height: 100dvh; width: 100vw; border-radius: 0 0 .75rem .75rem; }\n.overl-header { display: flex; justify-content: flex-end; padding: .75rem .75rem 0; }\n.overl-content { padding: 1.25rem; overflow: auto; }\n.overl-close-btn { display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 0; border-radius: .375rem; background: transparent; color: var(--jsl-color-text-muted); font: inherit; font-size: 1.5rem; cursor: pointer; }\n.overl-close-btn:hover { background: var(--jsl-color-surface-hover); color: var(--jsl-color-text); }\n.overl-close-btn:focus-visible { outline: 2px solid var(--jsl-color-focus); outline-offset: 2px; }\n.overl-body-left.overl-animate { animation: jsl-panel-left .18s ease-out; }\n.overl-body-top.overl-animate { animation: jsl-panel-top .18s ease-out; }\n@keyframes jsl-panel-left { from { transform: translateX(-100%); } }\n@keyframes jsl-panel-top { from { transform: translateY(-100%); } }\n@media (prefers-reduced-motion: reduce) { .overl-animate { animation: none !important; } }\r\n"],"names":[],"version":3,"file":"index.css.map"}
|
package/lib/ui/button.css
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
background: var(--jsl-button-primary, var(--jsl-color-accent));
|
|
23
23
|
color: var(--jsl-button-on-primary, var(--jsl-color-on-accent));
|
|
24
24
|
font: inherit;
|
|
25
|
-
font-size: 0.875rem;
|
|
25
|
+
/* font-size: 0.875rem; */
|
|
26
26
|
font-weight: 500;
|
|
27
27
|
line-height: 1.25;
|
|
28
28
|
letter-spacing: normal;
|