@streamscloud/kit 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/ui/badge/cmp.badge.svelte +4 -0
  2. package/dist/ui/badge/cmp.badge.svelte.d.ts +1 -0
  3. package/dist/ui/page-toolbar/cmp.reorderable-checkbox-list.svelte +131 -0
  4. package/dist/ui/page-toolbar/cmp.reorderable-checkbox-list.svelte.d.ts +31 -0
  5. package/dist/ui/page-toolbar/cmp.toolbar-checkbox.svelte +14 -0
  6. package/dist/ui/page-toolbar/cmp.toolbar-checkbox.svelte.d.ts +19 -0
  7. package/dist/ui/page-toolbar/cmp.toolbar-divider.svelte +19 -0
  8. package/dist/ui/page-toolbar/cmp.toolbar-divider.svelte.d.ts +35 -0
  9. package/dist/ui/page-toolbar/cmp.toolbar-filter-select.svelte +143 -0
  10. package/dist/ui/page-toolbar/cmp.toolbar-filter-select.svelte.d.ts +68 -0
  11. package/dist/ui/page-toolbar/cmp.toolbar-icon-button.svelte +71 -0
  12. package/dist/ui/page-toolbar/cmp.toolbar-icon-button.svelte.d.ts +32 -0
  13. package/dist/ui/page-toolbar/cmp.toolbar-option.svelte +189 -0
  14. package/dist/ui/page-toolbar/cmp.toolbar-option.svelte.d.ts +47 -0
  15. package/dist/ui/page-toolbar/cmp.toolbar-popover.svelte +23 -8
  16. package/dist/ui/page-toolbar/cmp.toolbar-popover.svelte.d.ts +14 -6
  17. package/dist/ui/page-toolbar/cmp.toolbar-section-title.svelte +46 -0
  18. package/dist/ui/page-toolbar/cmp.toolbar-section-title.svelte.d.ts +24 -0
  19. package/dist/ui/page-toolbar/cmp.toolbar-sort-select.svelte +31 -0
  20. package/dist/ui/page-toolbar/cmp.toolbar-sort-select.svelte.d.ts +44 -0
  21. package/dist/ui/page-toolbar/{cmp.toolbar-switch-item.svelte → cmp.toolbar-switch.svelte} +10 -10
  22. package/dist/ui/page-toolbar/{cmp.toolbar-switch-item.svelte.d.ts → cmp.toolbar-switch.svelte.d.ts} +2 -2
  23. package/dist/ui/page-toolbar/cmp.toolbar-toggle.svelte +14 -0
  24. package/dist/ui/page-toolbar/cmp.toolbar-toggle.svelte.d.ts +19 -0
  25. package/dist/ui/page-toolbar/cmp.toolbar-view-controls.svelte +51 -0
  26. package/dist/ui/page-toolbar/cmp.toolbar-view-controls.svelte.d.ts +27 -0
  27. package/dist/ui/page-toolbar/index.d.ts +12 -7
  28. package/dist/ui/page-toolbar/index.js +11 -6
  29. package/dist/ui/page-toolbar/reorderable-checkbox-list-localization.d.ts +5 -0
  30. package/dist/ui/page-toolbar/reorderable-checkbox-list-localization.js +17 -0
  31. package/dist/ui/page-toolbar/toolbar-filter-select-localization.d.ts +5 -0
  32. package/dist/ui/page-toolbar/toolbar-filter-select-localization.js +20 -0
  33. package/dist/ui/page-toolbar/toolbar-sort-select-localization.d.ts +3 -0
  34. package/dist/ui/page-toolbar/toolbar-sort-select-localization.js +9 -0
  35. package/dist/ui/page-toolbar/toolbar-view-controls-localization.d.ts +5 -0
  36. package/dist/ui/page-toolbar/toolbar-view-controls-localization.js +17 -0
  37. package/dist/ui/page-toolbar/types.d.ts +1 -1
  38. package/dist/ui/select/index.d.ts +1 -0
  39. package/dist/ui/select/index.js +1 -0
  40. package/dist/ui/select/select-listbox.svelte +11 -5
  41. package/dist/ui/select/select-listbox.svelte.d.ts +1 -1
  42. package/dist/ui/table/_table-styles.scss +156 -0
  43. package/dist/ui/table/cmp.table-draggable.svelte +338 -0
  44. package/dist/ui/table/cmp.table-draggable.svelte.d.ts +79 -0
  45. package/dist/ui/table/cmp.table.svelte +96 -265
  46. package/dist/ui/table/cmp.table.svelte.d.ts +16 -8
  47. package/dist/ui/table/index.d.ts +1 -0
  48. package/dist/ui/table/index.js +1 -0
  49. package/dist/ui/table/table-cells/index.d.ts +1 -12
  50. package/dist/ui/table/table-cells/index.js +1 -12
  51. package/dist/ui/table/table-cells/table-cell.svelte +77 -0
  52. package/dist/ui/table/table-cells/{table-select-cell.svelte.d.ts → table-cell.svelte.d.ts} +12 -6
  53. package/dist/ui/table/table-column-models.svelte.d.ts +1 -2
  54. package/dist/ui/table/table-column-models.svelte.js +0 -1
  55. package/dist/ui/table/table-columns-manager/cmp.table-columns-manager.svelte +20 -47
  56. package/dist/ui/table/table-columns-manager/cmp.table-columns-manager.svelte.d.ts +3 -7
  57. package/dist/ui/table/table-columns-manager/table-columns-manager-localization.d.ts +1 -1
  58. package/dist/ui/table/table-columns-manager/table-columns-manager-localization.js +7 -7
  59. package/dist/ui/table/table-localization.d.ts +0 -2
  60. package/dist/ui/table/table-localization.js +0 -14
  61. package/dist/ui/table/table-model.svelte.d.ts +2 -3
  62. package/dist/ui/table/table-model.svelte.js +5 -35
  63. package/dist/ui/table/table-view.svelte.d.ts +14 -0
  64. package/dist/ui/table/table-view.svelte.js +32 -0
  65. package/dist/ui/table/types.d.ts +5 -28
  66. package/dist/ui/toggle/cmp.toggle.svelte +32 -26
  67. package/dist/ui/toggle/cmp.toggle.svelte.d.ts +2 -0
  68. package/dist/ui/tree/cmp.tree-node-view.svelte +16 -10
  69. package/dist/ui/tree/cmp.tree-node-view.svelte.d.ts +2 -2
  70. package/dist/ui/tree/cmp.tree.svelte +14 -30
  71. package/dist/ui/tree/cmp.tree.svelte.d.ts +5 -5
  72. package/dist/ui/tree/tree-keyboard.svelte.d.ts +9 -0
  73. package/dist/ui/tree/tree-keyboard.svelte.js +107 -0
  74. package/dist/ui/tree/tree-node.svelte.d.ts +7 -3
  75. package/dist/ui/tree/tree-node.svelte.js +32 -16
  76. package/package.json +1 -1
  77. package/dist/ui/page-toolbar/cmp.reorderable-toggle-list.svelte +0 -153
  78. package/dist/ui/page-toolbar/cmp.reorderable-toggle-list.svelte.d.ts +0 -20
  79. package/dist/ui/page-toolbar/cmp.toolbar-checkbox-item.svelte +0 -19
  80. package/dist/ui/page-toolbar/cmp.toolbar-checkbox-item.svelte.d.ts +0 -12
  81. package/dist/ui/page-toolbar/cmp.toolbar-panel-button.svelte +0 -42
  82. package/dist/ui/page-toolbar/cmp.toolbar-panel-button.svelte.d.ts +0 -20
  83. package/dist/ui/page-toolbar/cmp.toolbar-panel.svelte +0 -57
  84. package/dist/ui/page-toolbar/cmp.toolbar-panel.svelte.d.ts +0 -19
  85. package/dist/ui/page-toolbar/cmp.toolbar-toggle-item.svelte +0 -16
  86. package/dist/ui/page-toolbar/cmp.toolbar-toggle-item.svelte.d.ts +0 -12
  87. package/dist/ui/table/table-cells/table-select-cell.svelte +0 -28
  88. package/dist/ui/table/table-cells/table-text-input-cell.svelte +0 -69
  89. package/dist/ui/table/table-cells/table-text-input-cell.svelte.d.ts +0 -38
  90. package/dist/ui/tree/tree-navigation.svelte.d.ts +0 -14
  91. package/dist/ui/tree/tree-navigation.svelte.js +0 -99
@@ -0,0 +1,27 @@
1
+ import type { Snippet } from 'svelte';
2
+ type ViewMode = 'list' | 'grid';
3
+ type Props = {
4
+ view: ViewMode;
5
+ /** Button size preset — sm = 28px, md = 32px. @default 'sm' */
6
+ size?: 'sm' | 'md';
7
+ /** Persist the view mode under this localStorage key. */
8
+ viewStorageKey?: string;
9
+ /** Leading content before the view toggle — e.g. a composed `ToolbarSortSelect`. */
10
+ prepend?: Snippet;
11
+ on?: {
12
+ viewChange?: (view: ViewMode) => void;
13
+ };
14
+ };
15
+ /**
16
+ * A toolbar view switcher: a `list` / `grid` toggle built on the shared `ToolbarIconButton` (flat, 28px at
17
+ * `sm` / 32px at `md`, 20px glyph). Pass `viewStorageKey` to persist the view across reloads, and compose a
18
+ * leading control — e.g. `ToolbarSortSelect` — through the `prepend` snippet.
19
+ *
20
+ * ### CSS Custom Properties
21
+ * | Property | Description | Default |
22
+ * |---|---|---|
23
+ * | `--sc-kit--toolbar-view-controls--gap` | Gap between the controls | `var(--sc-kit--space--3)` |
24
+ */
25
+ declare const Cmp: import("svelte").Component<Props, {}, "">;
26
+ type Cmp = ReturnType<typeof Cmp>;
27
+ export default Cmp;
@@ -1,11 +1,16 @@
1
- export { default as ReorderableToggleList } from './cmp.reorderable-toggle-list.svelte';
2
- export { default as ToolbarCheckboxItem } from './cmp.toolbar-checkbox-item.svelte';
3
- export { default as ToolbarPanel } from './cmp.toolbar-panel.svelte';
4
- export { default as ToolbarPanelButton } from './cmp.toolbar-panel-button.svelte';
1
+ export { default as ReorderableCheckboxList } from './cmp.reorderable-checkbox-list.svelte';
2
+ export { default as ToolbarCheckbox } from './cmp.toolbar-checkbox.svelte';
3
+ export { default as ToolbarDivider } from './cmp.toolbar-divider.svelte';
4
+ export { default as ToolbarFilterSelect } from './cmp.toolbar-filter-select.svelte';
5
+ export { default as ToolbarIconButton } from './cmp.toolbar-icon-button.svelte';
6
+ export { default as ToolbarOption } from './cmp.toolbar-option.svelte';
5
7
  export { default as ToolbarPopover } from './cmp.toolbar-popover.svelte';
6
8
  export { default as ToolbarSearchInput } from './cmp.toolbar-search-input.svelte';
9
+ export { default as ToolbarSectionTitle } from './cmp.toolbar-section-title.svelte';
7
10
  export { default as ToolbarSegmentedControl } from './cmp.toolbar-segmented-control.svelte';
8
- export { default as ToolbarSwitchItem } from './cmp.toolbar-switch-item.svelte';
9
- export { default as ToolbarToggleItem } from './cmp.toolbar-toggle-item.svelte';
11
+ export { default as ToolbarSortSelect } from './cmp.toolbar-sort-select.svelte';
12
+ export { default as ToolbarSwitch } from './cmp.toolbar-switch.svelte';
13
+ export { default as ToolbarToggle } from './cmp.toolbar-toggle.svelte';
10
14
  export { default as ToolbarValueStepper } from './cmp.toolbar-value-stepper.svelte';
11
- export type { ReorderableToggleItem } from './types';
15
+ export { default as ToolbarViewControls } from './cmp.toolbar-view-controls.svelte';
16
+ export type { ReorderableCheckboxItem } from './types';
@@ -1,10 +1,15 @@
1
- export { default as ReorderableToggleList } from './cmp.reorderable-toggle-list.svelte';
2
- export { default as ToolbarCheckboxItem } from './cmp.toolbar-checkbox-item.svelte';
3
- export { default as ToolbarPanel } from './cmp.toolbar-panel.svelte';
4
- export { default as ToolbarPanelButton } from './cmp.toolbar-panel-button.svelte';
1
+ export { default as ReorderableCheckboxList } from './cmp.reorderable-checkbox-list.svelte';
2
+ export { default as ToolbarCheckbox } from './cmp.toolbar-checkbox.svelte';
3
+ export { default as ToolbarDivider } from './cmp.toolbar-divider.svelte';
4
+ export { default as ToolbarFilterSelect } from './cmp.toolbar-filter-select.svelte';
5
+ export { default as ToolbarIconButton } from './cmp.toolbar-icon-button.svelte';
6
+ export { default as ToolbarOption } from './cmp.toolbar-option.svelte';
5
7
  export { default as ToolbarPopover } from './cmp.toolbar-popover.svelte';
6
8
  export { default as ToolbarSearchInput } from './cmp.toolbar-search-input.svelte';
9
+ export { default as ToolbarSectionTitle } from './cmp.toolbar-section-title.svelte';
7
10
  export { default as ToolbarSegmentedControl } from './cmp.toolbar-segmented-control.svelte';
8
- export { default as ToolbarSwitchItem } from './cmp.toolbar-switch-item.svelte';
9
- export { default as ToolbarToggleItem } from './cmp.toolbar-toggle-item.svelte';
11
+ export { default as ToolbarSortSelect } from './cmp.toolbar-sort-select.svelte';
12
+ export { default as ToolbarSwitch } from './cmp.toolbar-switch.svelte';
13
+ export { default as ToolbarToggle } from './cmp.toolbar-toggle.svelte';
10
14
  export { default as ToolbarValueStepper } from './cmp.toolbar-value-stepper.svelte';
15
+ export { default as ToolbarViewControls } from './cmp.toolbar-view-controls.svelte';
@@ -0,0 +1,5 @@
1
+ export declare class ReorderableCheckboxListLocalization {
2
+ get clearAll(): string;
3
+ get standard(): string;
4
+ get allFields(): string;
5
+ }
@@ -0,0 +1,17 @@
1
+ import { AppLocale } from '../../core/locale';
2
+ const loc = {
3
+ clearAll: { en: 'Clear all', no: 'Tøm alt' },
4
+ standard: { en: 'Standard', no: 'Standard' },
5
+ allFields: { en: 'All fields', no: 'Alle felter' }
6
+ };
7
+ export class ReorderableCheckboxListLocalization {
8
+ get clearAll() {
9
+ return loc.clearAll[AppLocale.current];
10
+ }
11
+ get standard() {
12
+ return loc.standard[AppLocale.current];
13
+ }
14
+ get allFields() {
15
+ return loc.allFields[AppLocale.current];
16
+ }
17
+ }
@@ -0,0 +1,5 @@
1
+ export declare class ToolbarFilterSelectLocalization {
2
+ get selectedCount(): (count: number) => string;
3
+ get clearAll(): string;
4
+ get clear(): string;
5
+ }
@@ -0,0 +1,20 @@
1
+ import { AppLocale } from '../../core/locale';
2
+ const loc = {
3
+ selectedCount: {
4
+ en: (count) => `${count} selected`,
5
+ no: (count) => `${count} valgt`
6
+ },
7
+ clearAll: { en: 'Clear all', no: 'Tøm alt' },
8
+ clear: { en: 'Clear', no: 'Tøm' }
9
+ };
10
+ export class ToolbarFilterSelectLocalization {
11
+ get selectedCount() {
12
+ return loc.selectedCount[AppLocale.current];
13
+ }
14
+ get clearAll() {
15
+ return loc.clearAll[AppLocale.current];
16
+ }
17
+ get clear() {
18
+ return loc.clear[AppLocale.current];
19
+ }
20
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ToolbarSortSelectLocalization {
2
+ get orderBy(): string;
3
+ }
@@ -0,0 +1,9 @@
1
+ import { AppLocale } from '../../core/locale';
2
+ const loc = {
3
+ orderBy: { en: 'Order by', no: 'Sorter etter' }
4
+ };
5
+ export class ToolbarSortSelectLocalization {
6
+ get orderBy() {
7
+ return loc.orderBy[AppLocale.current];
8
+ }
9
+ }
@@ -0,0 +1,5 @@
1
+ export declare class ToolbarViewControlsLocalization {
2
+ get label(): string;
3
+ get listView(): string;
4
+ get gridView(): string;
5
+ }
@@ -0,0 +1,17 @@
1
+ import { AppLocale } from '../../core/locale';
2
+ const loc = {
3
+ label: { en: 'View options', no: 'Visningsalternativer' },
4
+ listView: { en: 'List view', no: 'Listevisning' },
5
+ gridView: { en: 'Grid view', no: 'Rutenettvisning' }
6
+ };
7
+ export class ToolbarViewControlsLocalization {
8
+ get label() {
9
+ return loc.label[AppLocale.current];
10
+ }
11
+ get listView() {
12
+ return loc.listView[AppLocale.current];
13
+ }
14
+ get gridView() {
15
+ return loc.gridView[AppLocale.current];
16
+ }
17
+ }
@@ -1,4 +1,4 @@
1
- export type ReorderableToggleItem = {
1
+ export type ReorderableCheckboxItem = {
2
2
  id: string;
3
3
  label: string;
4
4
  enabled: boolean;
@@ -8,4 +8,5 @@ export { default as MultiselectAsync } from './cmp.multiselect-async.svelte';
8
8
  export type { MultiselectAsyncInstance } from './cmp.multiselect-async.svelte';
9
9
  export { default as MultiselectTree } from './cmp.multiselect-tree.svelte';
10
10
  export type { MultiselectTreeInstance } from './cmp.multiselect-tree.svelte';
11
+ export { isSelectGroup } from './types';
11
12
  export type { SelectItem, SelectOption, SelectOptionGroup } from './types';
@@ -3,3 +3,4 @@ export { default as SingleselectAsync } from './cmp.singleselect-async.svelte';
3
3
  export { default as Multiselect } from './cmp.multiselect.svelte';
4
4
  export { default as MultiselectAsync } from './cmp.multiselect-async.svelte';
5
5
  export { default as MultiselectTree } from './cmp.multiselect-tree.svelte';
6
+ export { isSelectGroup } from './types';
@@ -234,7 +234,7 @@ dismiss events upward. Floating UI handles placement with autoUpdate on scroll/r
234
234
  | `--sc-kit--select--panel--box-shadow` | Panel shadow | `var(--sc-kit--shadow--lg)` |
235
235
  | `--sc-kit--select--panel--max-height` | Panel max height | `18rem` |
236
236
  | `--sc-kit--select--panel--padding` | Panel inner padding | `var(--sc-kit--space--1)` |
237
- | `--sc-kit--select--option--padding-block` | Option vertical padding | `var(--sc-kit--space--2)` |
237
+ | `--sc-kit--select--option--height` | Option row height | `var(--sc-kit--field--height--md)` (32px) |
238
238
  | `--sc-kit--select--option--padding-inline` | Option horizontal padding | `var(--sc-kit--space--3)` |
239
239
  | `--sc-kit--select--option--background--active` | Active / focused row background | `var(--sc-kit--color--accent--softer)` |
240
240
  | `--sc-kit--select--option--color` | Row text color | `var(--sc-kit--color--text--primary)` |
@@ -251,7 +251,7 @@ dismiss events upward. Floating UI handles placement with autoUpdate on scroll/r
251
251
  --_lb--box-shadow: var(--sc-kit--select--panel--box-shadow, var(--sc-kit--shadow--lg));
252
252
  --_lb--max-height: var(--sc-kit--select--panel--max-height, 18rem);
253
253
  --_lb--padding: var(--sc-kit--select--panel--padding, var(--sc-kit--space--1));
254
- --_lb--row-padding-block: var(--sc-kit--select--option--padding-block, var(--sc-kit--space--2));
254
+ --_lb--row-height: var(--sc-kit--select--option--height, var(--sc-kit--field--height--md));
255
255
  --_lb--row-padding-inline: var(--sc-kit--select--option--padding-inline, var(--sc-kit--space--3));
256
256
  --_lb--row-background-active: var(--sc-kit--select--option--background--active, var(--sc-kit--color--accent--softer));
257
257
  --_lb--row-color: var(--sc-kit--select--option--color, var(--sc-kit--color--text--primary));
@@ -297,7 +297,9 @@ dismiss events upward. Floating UI handles placement with autoUpdate on scroll/r
297
297
  align-items: center;
298
298
  gap: var(--sc-kit--space--2);
299
299
  width: 100%;
300
- padding: var(--_lb--row-padding-block) var(--_lb--row-padding-inline);
300
+ flex-shrink: 0;
301
+ block-size: var(--_lb--row-height);
302
+ padding: 0 var(--_lb--row-padding-inline);
301
303
  border-radius: var(--sc-kit--radius--sm);
302
304
  cursor: pointer;
303
305
  user-select: none;
@@ -378,8 +380,12 @@ dismiss events upward. Floating UI handles placement with autoUpdate on scroll/r
378
380
  margin-block-end: var(--sc-kit--space--1);
379
381
  }
380
382
  .select-listbox__empty {
381
- padding: var(--_lb--row-padding-block) var(--_lb--row-padding-inline);
383
+ display: flex;
384
+ align-items: center;
385
+ justify-content: center;
386
+ flex-shrink: 0;
387
+ block-size: var(--_lb--row-height);
388
+ padding-inline: var(--_lb--row-padding-inline);
382
389
  color: var(--_lb--empty-color);
383
390
  font-size: var(--sc-kit--font-size--sm);
384
- text-align: center;
385
391
  }</style>
@@ -79,7 +79,7 @@ interface $$IsomorphicComponent {
79
79
  * | `--sc-kit--select--panel--box-shadow` | Panel shadow | `var(--sc-kit--shadow--lg)` |
80
80
  * | `--sc-kit--select--panel--max-height` | Panel max height | `18rem` |
81
81
  * | `--sc-kit--select--panel--padding` | Panel inner padding | `var(--sc-kit--space--1)` |
82
- * | `--sc-kit--select--option--padding-block` | Option vertical padding | `var(--sc-kit--space--2)` |
82
+ * | `--sc-kit--select--option--height` | Option row height | `var(--sc-kit--field--height--md)` (32px) |
83
83
  * | `--sc-kit--select--option--padding-inline` | Option horizontal padding | `var(--sc-kit--space--3)` |
84
84
  * | `--sc-kit--select--option--background--active` | Active / focused row background | `var(--sc-kit--color--accent--softer)` |
85
85
  * | `--sc-kit--select--option--color` | Row text color | `var(--sc-kit--color--text--primary)` |
@@ -0,0 +1,156 @@
1
+ @use 'styles/mixins';
2
+ @use 'styles/functions';
3
+
4
+ @mixin base {
5
+ .alternative-view {
6
+ &__placeholder {
7
+ width: 100%;
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ font-size: 80%;
12
+ user-select: none;
13
+ }
14
+ }
15
+
16
+ .table-container {
17
+ --_table--row--height: var(--sc-kit--table--row--height, var(--_table--size-row-height));
18
+ --_table--cell--font-size: var(--sc-kit--table--cell--font-size, var(--_table--size-cell-font-size));
19
+ --_table--cell--horizontal-padding: var(--sc-kit--table--cell--horizontal-padding, var(--_table--size-cell-padding));
20
+ --_table--head--height: var(--sc-kit--table--head--height, var(--_table--size-head-height, var(--_table--row--height)));
21
+
22
+ --_table--head--background-color: var(--sc-kit--table--head--background-color, var(--sc-kit--color--bg--field-alt));
23
+ --_table--head--color: var(--sc-kit--table--head--color, var(--sc-kit--color--text--secondary));
24
+ --_table--border-color: var(--sc-kit--table--border-color, var(--sc-kit--color--border));
25
+ --_table--row--color: var(--sc-kit--table--row--color, transparent);
26
+ --_table--row--alternative-color: var(--sc-kit--table--row--alternative-color, var(--sc-kit--color--bg--hover));
27
+ --_table--zebra--color: var(--sc-kit--table--zebra--color, light-dark(#fcfcfd, #232323));
28
+ --_table--selected--color: var(--sc-kit--table--selected--color, var(--sc-kit--color--accent--softer));
29
+ --_table--selected--color-hover: var(--sc-kit--table--selected--color--hover, var(--sc-kit--color--accent--soft));
30
+
31
+ --_table--card--background: var(--sc-kit--table--card--background, var(--sc-kit--color--bg--panel));
32
+ --_table--card--border-color: var(--sc-kit--table--card--border-color, var(--sc-kit--color--border));
33
+ --_table--card--border-radius: var(--sc-kit--table--card--border-radius, var(--sc-kit--radius--lg));
34
+
35
+ display: flex;
36
+ overflow-x: auto;
37
+ height: 100%;
38
+
39
+ @include mixins.scrollbar();
40
+
41
+ &--md {
42
+ --_table--size-row-height: #{functions.to-rem(44)};
43
+ --_table--size-head-height: #{functions.to-rem(40)};
44
+ --_table--size-cell-font-size: var(--sc-kit--font-size--md);
45
+ --_table--size-cell-padding: var(--sc-kit--space--4);
46
+ }
47
+
48
+ &--sm {
49
+ --_table--size-row-height: #{functions.to-rem(36)};
50
+ --_table--size-head-height: #{functions.to-rem(32)};
51
+ --_table--size-cell-font-size: var(--sc-kit--font-size--sm);
52
+ --_table--size-cell-padding: var(--sc-kit--space--3);
53
+ }
54
+
55
+ &--card {
56
+ background: var(--_table--card--background);
57
+ border: 1px solid var(--_table--card--border-color);
58
+ border-radius: var(--_table--card--border-radius);
59
+ overflow: hidden;
60
+ }
61
+ }
62
+
63
+ .table {
64
+ width: 100%;
65
+ table-layout: auto;
66
+ height: fit-content;
67
+ border-collapse: separate;
68
+ border-spacing: 0;
69
+
70
+ &__head {
71
+ height: var(--_table--head--height);
72
+ max-height: var(--_table--head--height);
73
+ background: var(--_table--head--background-color);
74
+ color: var(--_table--head--color);
75
+ font-size: var(--sc-kit--table--head--font-size, var(--sc-kit--font-size--sm));
76
+ font-weight: var(--sc-kit--font-weight--semibold);
77
+ }
78
+
79
+ &__th {
80
+ padding: 0 var(--_table--cell--horizontal-padding);
81
+ text-align: left;
82
+ vertical-align: middle;
83
+ border-bottom: 1px solid var(--_table--border-color);
84
+ @include mixins.no-select;
85
+
86
+ &--centered {
87
+ text-align: center;
88
+ --_table-header--justify-content: center;
89
+ }
90
+ }
91
+
92
+ &__tr {
93
+ height: var(--_table--row--height);
94
+ max-height: var(--_table--row--height);
95
+ background: var(--_table--row--color);
96
+
97
+ &--zebra {
98
+ background: var(--_table--zebra--color);
99
+ }
100
+
101
+ &:hover,
102
+ &--highlighted {
103
+ background: var(--_table--row--alternative-color);
104
+ --_table--move-row-cell-opacity: 1;
105
+ }
106
+
107
+ &--selected {
108
+ background: var(--_table--selected--color);
109
+ }
110
+
111
+ &--selected:hover {
112
+ background: var(--_table--selected--color-hover);
113
+ }
114
+
115
+ &--placeholder {
116
+ background: var(--_table--row--color) !important;
117
+ }
118
+ }
119
+
120
+ &__td {
121
+ padding: 0 var(--_table--cell--horizontal-padding);
122
+ border-bottom: 1px solid var(--_table--border-color);
123
+ font-size: var(--_table--cell--font-size);
124
+ color: var(--sc-kit--color--text--primary);
125
+ vertical-align: middle;
126
+
127
+ &--centered {
128
+ text-align: center;
129
+ }
130
+
131
+ &--clickable {
132
+ cursor: pointer;
133
+ }
134
+
135
+ &--flush {
136
+ border-bottom: none;
137
+ }
138
+ }
139
+
140
+ &__placeholder {
141
+ display: flex;
142
+ align-items: center;
143
+ justify-content: center;
144
+ font-size: 80%;
145
+ user-select: none;
146
+ }
147
+
148
+ &--sticky-header {
149
+ thead {
150
+ position: sticky;
151
+ top: 0;
152
+ z-index: 1;
153
+ }
154
+ }
155
+ }
156
+ }