@streamscloud/kit 0.16.2 → 0.18.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 (113) hide show
  1. package/dist/styles/_semantic.scss +3 -0
  2. package/dist/ui/badge/cmp.badge.svelte +4 -0
  3. package/dist/ui/badge/cmp.badge.svelte.d.ts +1 -0
  4. package/dist/ui/button/cmp.button.svelte +6 -2
  5. package/dist/ui/button/cmp.button.svelte.d.ts +1 -1
  6. package/dist/ui/date-picker/cmp.date-picker.svelte +21 -18
  7. package/dist/ui/date-picker/cmp.date-picker.svelte.d.ts +1 -1
  8. package/dist/ui/form-field/cmp.form-field-validatable.svelte +1 -1
  9. package/dist/ui/form-field/cmp.form-field-validatable.svelte.d.ts +1 -1
  10. package/dist/ui/input/cmp.input.svelte +21 -18
  11. package/dist/ui/input/cmp.input.svelte.d.ts +1 -1
  12. package/dist/ui/numeral-input/cmp.numeral-input.svelte +21 -18
  13. package/dist/ui/numeral-input/cmp.numeral-input.svelte.d.ts +1 -1
  14. package/dist/ui/page-toolbar/cmp.reorderable-checkbox-list.svelte +131 -0
  15. package/dist/ui/page-toolbar/cmp.reorderable-checkbox-list.svelte.d.ts +31 -0
  16. package/dist/ui/page-toolbar/cmp.toolbar-checkbox.svelte +14 -0
  17. package/dist/ui/page-toolbar/cmp.toolbar-checkbox.svelte.d.ts +19 -0
  18. package/dist/ui/page-toolbar/cmp.toolbar-divider.svelte +19 -0
  19. package/dist/ui/page-toolbar/cmp.toolbar-divider.svelte.d.ts +35 -0
  20. package/dist/ui/page-toolbar/cmp.toolbar-filter-select.svelte +143 -0
  21. package/dist/ui/page-toolbar/cmp.toolbar-filter-select.svelte.d.ts +68 -0
  22. package/dist/ui/page-toolbar/cmp.toolbar-icon-button.svelte +71 -0
  23. package/dist/ui/page-toolbar/cmp.toolbar-icon-button.svelte.d.ts +32 -0
  24. package/dist/ui/page-toolbar/cmp.toolbar-option.svelte +189 -0
  25. package/dist/ui/page-toolbar/cmp.toolbar-option.svelte.d.ts +47 -0
  26. package/dist/ui/page-toolbar/cmp.toolbar-popover.svelte +23 -8
  27. package/dist/ui/page-toolbar/cmp.toolbar-popover.svelte.d.ts +14 -6
  28. package/dist/ui/page-toolbar/cmp.toolbar-section-title.svelte +46 -0
  29. package/dist/ui/page-toolbar/cmp.toolbar-section-title.svelte.d.ts +24 -0
  30. package/dist/ui/page-toolbar/cmp.toolbar-sort-select.svelte +31 -0
  31. package/dist/ui/page-toolbar/cmp.toolbar-sort-select.svelte.d.ts +44 -0
  32. package/dist/ui/page-toolbar/{cmp.toolbar-switch-item.svelte → cmp.toolbar-switch.svelte} +10 -10
  33. package/dist/ui/page-toolbar/{cmp.toolbar-switch-item.svelte.d.ts → cmp.toolbar-switch.svelte.d.ts} +2 -2
  34. package/dist/ui/page-toolbar/cmp.toolbar-toggle.svelte +14 -0
  35. package/dist/ui/page-toolbar/cmp.toolbar-toggle.svelte.d.ts +19 -0
  36. package/dist/ui/page-toolbar/cmp.toolbar-value-stepper.svelte +4 -1
  37. package/dist/ui/page-toolbar/cmp.toolbar-view-controls.svelte +51 -0
  38. package/dist/ui/page-toolbar/cmp.toolbar-view-controls.svelte.d.ts +27 -0
  39. package/dist/ui/page-toolbar/index.d.ts +12 -7
  40. package/dist/ui/page-toolbar/index.js +11 -6
  41. package/dist/ui/page-toolbar/reorderable-checkbox-list-localization.d.ts +5 -0
  42. package/dist/ui/page-toolbar/reorderable-checkbox-list-localization.js +17 -0
  43. package/dist/ui/page-toolbar/toolbar-filter-select-localization.d.ts +5 -0
  44. package/dist/ui/page-toolbar/toolbar-filter-select-localization.js +20 -0
  45. package/dist/ui/page-toolbar/toolbar-sort-select-localization.d.ts +3 -0
  46. package/dist/ui/page-toolbar/toolbar-sort-select-localization.js +9 -0
  47. package/dist/ui/page-toolbar/toolbar-view-controls-localization.d.ts +5 -0
  48. package/dist/ui/page-toolbar/toolbar-view-controls-localization.js +17 -0
  49. package/dist/ui/page-toolbar/types.d.ts +1 -1
  50. package/dist/ui/rich-text-input/cmp.rich-text-input.svelte +9 -6
  51. package/dist/ui/rich-text-input/cmp.rich-text-input.svelte.d.ts +1 -1
  52. package/dist/ui/segmented-control/cmp.segmented-control.svelte +4 -2
  53. package/dist/ui/segmented-control/cmp.segmented-control.svelte.d.ts +1 -1
  54. package/dist/ui/select/_select-trigger.scss +20 -17
  55. package/dist/ui/select/cmp.singleselect-async.svelte +20 -17
  56. package/dist/ui/select/index.d.ts +1 -0
  57. package/dist/ui/select/index.js +1 -0
  58. package/dist/ui/select/multiselect-base.svelte +21 -18
  59. package/dist/ui/select/select-listbox.svelte +11 -5
  60. package/dist/ui/select/select-listbox.svelte.d.ts +1 -1
  61. package/dist/ui/table/_table-styles.scss +156 -0
  62. package/dist/ui/table/cmp.table-draggable.svelte +338 -0
  63. package/dist/ui/table/cmp.table-draggable.svelte.d.ts +79 -0
  64. package/dist/ui/table/cmp.table.svelte +96 -265
  65. package/dist/ui/table/cmp.table.svelte.d.ts +16 -8
  66. package/dist/ui/table/index.d.ts +1 -0
  67. package/dist/ui/table/index.js +1 -0
  68. package/dist/ui/table/table-cells/index.d.ts +1 -12
  69. package/dist/ui/table/table-cells/index.js +1 -12
  70. package/dist/ui/table/table-cells/table-cell.svelte +77 -0
  71. package/dist/ui/table/table-cells/{table-select-cell.svelte.d.ts → table-cell.svelte.d.ts} +12 -6
  72. package/dist/ui/table/table-column-models.svelte.d.ts +1 -2
  73. package/dist/ui/table/table-column-models.svelte.js +0 -1
  74. package/dist/ui/table/table-columns-manager/cmp.table-columns-manager.svelte +20 -47
  75. package/dist/ui/table/table-columns-manager/cmp.table-columns-manager.svelte.d.ts +3 -7
  76. package/dist/ui/table/table-columns-manager/table-columns-manager-localization.d.ts +1 -1
  77. package/dist/ui/table/table-columns-manager/table-columns-manager-localization.js +7 -7
  78. package/dist/ui/table/table-localization.d.ts +0 -2
  79. package/dist/ui/table/table-localization.js +0 -14
  80. package/dist/ui/table/table-model.svelte.d.ts +2 -3
  81. package/dist/ui/table/table-model.svelte.js +5 -35
  82. package/dist/ui/table/table-view.svelte.d.ts +14 -0
  83. package/dist/ui/table/table-view.svelte.js +32 -0
  84. package/dist/ui/table/types.d.ts +5 -28
  85. package/dist/ui/textarea/cmp.textarea.svelte +17 -14
  86. package/dist/ui/textarea/cmp.textarea.svelte.d.ts +1 -1
  87. package/dist/ui/toggle/cmp.toggle.svelte +32 -26
  88. package/dist/ui/toggle/cmp.toggle.svelte.d.ts +2 -0
  89. package/dist/ui/tree/cmp.tree-node-view.svelte +7 -2
  90. package/dist/ui/tree/cmp.tree.svelte +9 -1
  91. package/dist/ui/tree/cmp.tree.svelte.d.ts +1 -1
  92. package/dist/ui/tree/tree-navigation.svelte.d.ts +2 -0
  93. package/dist/ui/tree/tree-navigation.svelte.js +3 -0
  94. package/dist/ui/validatable/cmp.validatable.svelte +5 -5
  95. package/dist/ui/validatable/cmp.validatable.svelte.d.ts +2 -2
  96. package/dist/ui/validatable/cmp.validation-error.svelte +4 -4
  97. package/dist/ui/validatable/cmp.validation-error.svelte.d.ts +1 -1
  98. package/dist/ui/validatable/{cmp.field-error.svelte → field-frame.svelte} +6 -6
  99. package/dist/ui/validatable/{cmp.field-error.svelte.d.ts → field-frame.svelte.d.ts} +4 -4
  100. package/package.json +1 -1
  101. package/dist/ui/page-toolbar/cmp.reorderable-toggle-list.svelte +0 -153
  102. package/dist/ui/page-toolbar/cmp.reorderable-toggle-list.svelte.d.ts +0 -20
  103. package/dist/ui/page-toolbar/cmp.toolbar-checkbox-item.svelte +0 -19
  104. package/dist/ui/page-toolbar/cmp.toolbar-checkbox-item.svelte.d.ts +0 -12
  105. package/dist/ui/page-toolbar/cmp.toolbar-panel-button.svelte +0 -42
  106. package/dist/ui/page-toolbar/cmp.toolbar-panel-button.svelte.d.ts +0 -20
  107. package/dist/ui/page-toolbar/cmp.toolbar-panel.svelte +0 -57
  108. package/dist/ui/page-toolbar/cmp.toolbar-panel.svelte.d.ts +0 -19
  109. package/dist/ui/page-toolbar/cmp.toolbar-toggle-item.svelte +0 -16
  110. package/dist/ui/page-toolbar/cmp.toolbar-toggle-item.svelte.d.ts +0 -12
  111. package/dist/ui/table/table-cells/table-select-cell.svelte +0 -28
  112. package/dist/ui/table/table-cells/table-text-input-cell.svelte +0 -69
  113. package/dist/ui/table/table-cells/table-text-input-cell.svelte.d.ts +0 -38
@@ -44,7 +44,7 @@ Each segment carries an optional `disabled` flag (non-interactive) and an option
44
44
  | `--sc-kit--segmented-control--height` | Control height | per size (28 / 32 px) |
45
45
  | `--sc-kit--segmented-control--font-size` | Label font size | per size |
46
46
  | `--sc-kit--segmented-control--padding-inline` | Per-segment horizontal padding | per size (10 / 12 px) |
47
- | `--sc-kit--segmented-control--border-radius` | Outer radius (tray) / per-segment radius (outlined) | `--sc-kit--radius--md` |
47
+ | `--sc-kit--segmented-control--border-radius` | Outer radius (tray) / per-segment radius (outlined) | per size — `sm` 4px, `md` 6px |
48
48
  | `--sc-kit--segmented-control--color` | Default segment text color | `--sc-kit--color--text--secondary` |
49
49
  | `--sc-kit--segmented-control--color--hover` | Hover text color | `--sc-kit--color--text--primary` |
50
50
  | `--sc-kit--segmented-control--color--active` | Active segment text color | `--sc-kit--color--text--primary` |
@@ -62,7 +62,7 @@ Each segment carries an optional `disabled` flag (non-interactive) and an option
62
62
  --_sc--height: var(--sc-kit--segmented-control--height, var(--_sc--size-height));
63
63
  --_sc--font-size: var(--sc-kit--segmented-control--font-size, var(--_sc--size-font-size));
64
64
  --_sc--padding-inline: var(--sc-kit--segmented-control--padding-inline, var(--_sc--size-padding-inline));
65
- --_sc--radius: var(--sc-kit--segmented-control--border-radius, var(--sc-kit--radius--md));
65
+ --_sc--radius: var(--sc-kit--segmented-control--border-radius, var(--_sc--size-radius, var(--sc-kit--field--border-radius--md)));
66
66
  --_sc--color: var(--sc-kit--segmented-control--color, var(--sc-kit--color--text--muted));
67
67
  --_sc--color-hover: var(--sc-kit--segmented-control--color--hover, var(--sc-kit--color--text--primary));
68
68
  --_sc--color-active: var(--sc-kit--segmented-control--color--active, var(--sc-kit--color--text--primary));
@@ -86,11 +86,13 @@ Each segment carries an optional `disabled` flag (non-interactive) and an option
86
86
  --_sc--size-height: 1.75rem;
87
87
  --_sc--size-font-size: var(--sc-kit--font-size--sm);
88
88
  --_sc--size-padding-inline: 0.625rem;
89
+ --_sc--size-radius: var(--sc-kit--field--border-radius--sm);
89
90
  }
90
91
  .segmented-control--md {
91
92
  --_sc--size-height: 2rem;
92
93
  --_sc--size-font-size: var(--sc-kit--font-size--md);
93
94
  --_sc--size-padding-inline: 0.75rem;
95
+ --_sc--size-radius: var(--sc-kit--field--border-radius--md);
94
96
  }
95
97
  .segmented-control--tray {
96
98
  --_sc--background-active-default: var(--sc-kit--color--bg--panel);
@@ -56,7 +56,7 @@ interface $$IsomorphicComponent {
56
56
  * | `--sc-kit--segmented-control--height` | Control height | per size (28 / 32 px) |
57
57
  * | `--sc-kit--segmented-control--font-size` | Label font size | per size |
58
58
  * | `--sc-kit--segmented-control--padding-inline` | Per-segment horizontal padding | per size (10 / 12 px) |
59
- * | `--sc-kit--segmented-control--border-radius` | Outer radius (tray) / per-segment radius (outlined) | `--sc-kit--radius--md` |
59
+ * | `--sc-kit--segmented-control--border-radius` | Outer radius (tray) / per-segment radius (outlined) | per size — `sm` 4px, `md` 6px |
60
60
  * | `--sc-kit--segmented-control--color` | Default segment text color | `--sc-kit--color--text--secondary` |
61
61
  * | `--sc-kit--segmented-control--color--hover` | Hover text color | `--sc-kit--color--text--primary` |
62
62
  * | `--sc-kit--segmented-control--color--active` | Active segment text color | `--sc-kit--color--text--primary` |
@@ -7,21 +7,21 @@
7
7
  // Public CSS API lives under `--sc-kit--select--trigger--*` so consumers can override
8
8
  // once and have all select variants pick it up.
9
9
  @mixin select-trigger {
10
- --_sel--height: var(--sc-kit--select--trigger--height, var(--sc-kit--field--height--md));
11
- --_sel--padding-inline: var(--sc-kit--select--trigger--padding-inline, var(--sc-kit--field--padding-inline--md));
10
+ --_sel--height: var(--sc-kit--select--trigger--height, var(--_sel--size-height, var(--sc-kit--field--height--md)));
11
+ --_sel--padding-inline: var(--sc-kit--select--trigger--padding-inline, var(--_sel--size-padding-inline, var(--sc-kit--field--padding-inline--md)));
12
12
  --_sel--gap: var(--sc-kit--select--trigger--gap, var(--sc-kit--space--2));
13
13
  --_sel--background: var(--sc-kit--select--trigger--background, var(--sc-kit--color--bg--field));
14
14
  --_sel--background-disabled: var(--sc-kit--select--trigger--background--disabled, var(--sc-kit--color--bg--field-alt));
15
15
  --_sel--border-color: var(--sc-kit--select--trigger--border-color, var(--sc-kit--color--border--field));
16
16
  --_sel--border-color-hover: var(--sc-kit--select--trigger--border-color--hover, var(--sc-kit--color--border--strong));
17
17
  --_sel--border-color-error: var(--sc-kit--select--trigger--border-color--error, var(--sc-kit--color--danger));
18
- --_sel--border-radius: var(--sc-kit--select--trigger--border-radius, var(--sc-kit--radius--sm));
18
+ --_sel--border-radius: var(--sc-kit--select--trigger--border-radius, var(--_sel--size-border-radius, var(--sc-kit--field--border-radius--md)));
19
19
  --_sel--underline-color: var(--sc-kit--select--trigger--underline-color, transparent);
20
- --_sel--font-size: var(--sc-kit--select--trigger--font-size, var(--sc-kit--font-size--md));
20
+ --_sel--font-size: var(--sc-kit--select--trigger--font-size, var(--_sel--size-font-size, var(--sc-kit--font-size--md)));
21
21
  --_sel--color: var(--sc-kit--select--trigger--color, var(--sc-kit--color--text--primary));
22
22
  --_sel--placeholder-color: var(--sc-kit--select--trigger--placeholder--color, var(--sc-kit--color--text--placeholder));
23
23
  --_sel--icon-color: var(--sc-kit--select--trigger--icon--color, var(--sc-kit--color--text--muted));
24
- --_sel--icon-size: var(--sc-kit--select--trigger--icon--size, var(--sc-kit--field--icon--size--md));
24
+ --_sel--icon-size: var(--sc-kit--select--trigger--icon--size, var(--_sel--size-icon-size, var(--sc-kit--field--icon--size--md)));
25
25
 
26
26
  @include affordance.host;
27
27
 
@@ -45,22 +45,25 @@
45
45
  @include transitions.transition(background-color border-color color box-shadow);
46
46
 
47
47
  &--sm {
48
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--sm);
49
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--sm);
50
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--sm);
51
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--sm);
48
+ --_sel--size-height: var(--sc-kit--field--height--sm);
49
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--sm);
50
+ --_sel--size-font-size: var(--sc-kit--font-size--sm);
51
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--sm);
52
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--sm);
52
53
  }
53
54
  &--md {
54
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--md);
55
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--md);
56
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--md);
57
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--md);
55
+ --_sel--size-height: var(--sc-kit--field--height--md);
56
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--md);
57
+ --_sel--size-font-size: var(--sc-kit--font-size--md);
58
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--md);
59
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--md);
58
60
  }
59
61
  &--lg {
60
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--lg);
61
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--lg);
62
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--lg);
63
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--lg);
62
+ --_sel--size-height: var(--sc-kit--field--height--lg);
63
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--lg);
64
+ --_sel--size-font-size: var(--sc-kit--font-size--lg);
65
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--lg);
66
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--md);
64
67
  }
65
68
 
66
69
  &:where(:hover:not(:focus-within)) {
@@ -177,21 +177,21 @@ background--hover}`.
177
177
  -->
178
178
 
179
179
  <style>.singleselect {
180
- --_sel--height: var(--sc-kit--select--trigger--height, var(--sc-kit--field--height--md));
181
- --_sel--padding-inline: var(--sc-kit--select--trigger--padding-inline, var(--sc-kit--field--padding-inline--md));
180
+ --_sel--height: var(--sc-kit--select--trigger--height, var(--_sel--size-height, var(--sc-kit--field--height--md)));
181
+ --_sel--padding-inline: var(--sc-kit--select--trigger--padding-inline, var(--_sel--size-padding-inline, var(--sc-kit--field--padding-inline--md)));
182
182
  --_sel--gap: var(--sc-kit--select--trigger--gap, var(--sc-kit--space--2));
183
183
  --_sel--background: var(--sc-kit--select--trigger--background, var(--sc-kit--color--bg--field));
184
184
  --_sel--background-disabled: var(--sc-kit--select--trigger--background--disabled, var(--sc-kit--color--bg--field-alt));
185
185
  --_sel--border-color: var(--sc-kit--select--trigger--border-color, var(--sc-kit--color--border--field));
186
186
  --_sel--border-color-hover: var(--sc-kit--select--trigger--border-color--hover, var(--sc-kit--color--border--strong));
187
187
  --_sel--border-color-error: var(--sc-kit--select--trigger--border-color--error, var(--sc-kit--color--danger));
188
- --_sel--border-radius: var(--sc-kit--select--trigger--border-radius, var(--sc-kit--radius--sm));
188
+ --_sel--border-radius: var(--sc-kit--select--trigger--border-radius, var(--_sel--size-border-radius, var(--sc-kit--field--border-radius--md)));
189
189
  --_sel--underline-color: var(--sc-kit--select--trigger--underline-color, transparent);
190
- --_sel--font-size: var(--sc-kit--select--trigger--font-size, var(--sc-kit--font-size--md));
190
+ --_sel--font-size: var(--sc-kit--select--trigger--font-size, var(--_sel--size-font-size, var(--sc-kit--font-size--md)));
191
191
  --_sel--color: var(--sc-kit--select--trigger--color, var(--sc-kit--color--text--primary));
192
192
  --_sel--placeholder-color: var(--sc-kit--select--trigger--placeholder--color, var(--sc-kit--color--text--placeholder));
193
193
  --_sel--icon-color: var(--sc-kit--select--trigger--icon--color, var(--sc-kit--color--text--muted));
194
- --_sel--icon-size: var(--sc-kit--select--trigger--icon--size, var(--sc-kit--field--icon--size--md));
194
+ --_sel--icon-size: var(--sc-kit--select--trigger--icon--size, var(--_sel--size-icon-size, var(--sc-kit--field--icon--size--md)));
195
195
  --_--input-affordance--opacity: 0;
196
196
  --_--input-affordance--scale: 0;
197
197
  }
@@ -219,22 +219,25 @@ background--hover}`.
219
219
  transition: background-color var(--sc-kit--duration--base) var(--sc-kit--ease--default), border-color var(--sc-kit--duration--base) var(--sc-kit--ease--default), color var(--sc-kit--duration--base) var(--sc-kit--ease--default), box-shadow var(--sc-kit--duration--base) var(--sc-kit--ease--default);
220
220
  }
221
221
  .singleselect--sm {
222
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--sm);
223
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--sm);
224
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--sm);
225
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--sm);
222
+ --_sel--size-height: var(--sc-kit--field--height--sm);
223
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--sm);
224
+ --_sel--size-font-size: var(--sc-kit--font-size--sm);
225
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--sm);
226
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--sm);
226
227
  }
227
228
  .singleselect--md {
228
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--md);
229
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--md);
230
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--md);
231
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--md);
229
+ --_sel--size-height: var(--sc-kit--field--height--md);
230
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--md);
231
+ --_sel--size-font-size: var(--sc-kit--font-size--md);
232
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--md);
233
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--md);
232
234
  }
233
235
  .singleselect--lg {
234
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--lg);
235
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--lg);
236
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--lg);
237
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--lg);
236
+ --_sel--size-height: var(--sc-kit--field--height--lg);
237
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--lg);
238
+ --_sel--size-font-size: var(--sc-kit--font-size--lg);
239
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--lg);
240
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--md);
238
241
  }
239
242
  .singleselect:where(:hover:not(:focus-within)) {
240
243
  --sc-kit--select--trigger--border-color: var(--_sel--border-color-hover);
@@ -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';
@@ -393,21 +393,21 @@ padding-inline, font-size, gap, max-width, remove-color, remove-color--hover}`.
393
393
  }
394
394
 
395
395
  .multiselect-trigger {
396
- --_sel--height: var(--sc-kit--select--trigger--height, var(--sc-kit--field--height--md));
397
- --_sel--padding-inline: var(--sc-kit--select--trigger--padding-inline, var(--sc-kit--field--padding-inline--md));
396
+ --_sel--height: var(--sc-kit--select--trigger--height, var(--_sel--size-height, var(--sc-kit--field--height--md)));
397
+ --_sel--padding-inline: var(--sc-kit--select--trigger--padding-inline, var(--_sel--size-padding-inline, var(--sc-kit--field--padding-inline--md)));
398
398
  --_sel--gap: var(--sc-kit--select--trigger--gap, var(--sc-kit--space--2));
399
399
  --_sel--background: var(--sc-kit--select--trigger--background, var(--sc-kit--color--bg--field));
400
400
  --_sel--background-disabled: var(--sc-kit--select--trigger--background--disabled, var(--sc-kit--color--bg--field-alt));
401
401
  --_sel--border-color: var(--sc-kit--select--trigger--border-color, var(--sc-kit--color--border--field));
402
402
  --_sel--border-color-hover: var(--sc-kit--select--trigger--border-color--hover, var(--sc-kit--color--border--strong));
403
403
  --_sel--border-color-error: var(--sc-kit--select--trigger--border-color--error, var(--sc-kit--color--danger));
404
- --_sel--border-radius: var(--sc-kit--select--trigger--border-radius, var(--sc-kit--radius--sm));
404
+ --_sel--border-radius: var(--sc-kit--select--trigger--border-radius, var(--_sel--size-border-radius, var(--sc-kit--field--border-radius--md)));
405
405
  --_sel--underline-color: var(--sc-kit--select--trigger--underline-color, transparent);
406
- --_sel--font-size: var(--sc-kit--select--trigger--font-size, var(--sc-kit--font-size--md));
406
+ --_sel--font-size: var(--sc-kit--select--trigger--font-size, var(--_sel--size-font-size, var(--sc-kit--font-size--md)));
407
407
  --_sel--color: var(--sc-kit--select--trigger--color, var(--sc-kit--color--text--primary));
408
408
  --_sel--placeholder-color: var(--sc-kit--select--trigger--placeholder--color, var(--sc-kit--color--text--placeholder));
409
409
  --_sel--icon-color: var(--sc-kit--select--trigger--icon--color, var(--sc-kit--color--text--muted));
410
- --_sel--icon-size: var(--sc-kit--select--trigger--icon--size, var(--sc-kit--field--icon--size--md));
410
+ --_sel--icon-size: var(--sc-kit--select--trigger--icon--size, var(--_sel--size-icon-size, var(--sc-kit--field--icon--size--md)));
411
411
  --_--input-affordance--opacity: 0;
412
412
  --_--input-affordance--scale: 0;
413
413
  }
@@ -435,22 +435,25 @@ padding-inline, font-size, gap, max-width, remove-color, remove-color--hover}`.
435
435
  transition: background-color var(--sc-kit--duration--base) var(--sc-kit--ease--default), border-color var(--sc-kit--duration--base) var(--sc-kit--ease--default), color var(--sc-kit--duration--base) var(--sc-kit--ease--default), box-shadow var(--sc-kit--duration--base) var(--sc-kit--ease--default);
436
436
  }
437
437
  .multiselect-trigger--sm {
438
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--sm);
439
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--sm);
440
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--sm);
441
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--sm);
438
+ --_sel--size-height: var(--sc-kit--field--height--sm);
439
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--sm);
440
+ --_sel--size-font-size: var(--sc-kit--font-size--sm);
441
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--sm);
442
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--sm);
442
443
  }
443
444
  .multiselect-trigger--md {
444
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--md);
445
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--md);
446
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--md);
447
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--md);
445
+ --_sel--size-height: var(--sc-kit--field--height--md);
446
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--md);
447
+ --_sel--size-font-size: var(--sc-kit--font-size--md);
448
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--md);
449
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--md);
448
450
  }
449
451
  .multiselect-trigger--lg {
450
- --sc-kit--select--trigger--height: var(--sc-kit--field--height--lg);
451
- --sc-kit--select--trigger--padding-inline: var(--sc-kit--field--padding-inline--lg);
452
- --sc-kit--select--trigger--font-size: var(--sc-kit--font-size--lg);
453
- --sc-kit--select--trigger--icon--size: var(--sc-kit--field--icon--size--lg);
452
+ --_sel--size-height: var(--sc-kit--field--height--lg);
453
+ --_sel--size-padding-inline: var(--sc-kit--field--padding-inline--lg);
454
+ --_sel--size-font-size: var(--sc-kit--font-size--lg);
455
+ --_sel--size-icon-size: var(--sc-kit--field--icon--size--lg);
456
+ --_sel--size-border-radius: var(--sc-kit--field--border-radius--md);
454
457
  }
455
458
  .multiselect-trigger:where(:hover:not(:focus-within)) {
456
459
  --sc-kit--select--trigger--border-color: var(--_sel--border-color-hover);
@@ -570,7 +573,7 @@ padding-inline, font-size, gap, max-width, remove-color, remove-color--hover}`.
570
573
  .multiselect-trigger--multi .multiselect-trigger__spinner {
571
574
  position: absolute;
572
575
  inset-block-start: 50%;
573
- inset-inline-end: var(--sc-kit--select--trigger--padding-inline, var(--sc-kit--field--padding-inline--md));
576
+ inset-inline-end: var(--_sel--padding-inline);
574
577
  transform: translateY(-50%);
575
578
  margin: 0;
576
579
  }</style>
@@ -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
+ }