@streamscloud/kit 0.17.0 → 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 (86) 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 +7 -2
  69. package/dist/ui/tree/cmp.tree.svelte +9 -1
  70. package/dist/ui/tree/cmp.tree.svelte.d.ts +1 -1
  71. package/dist/ui/tree/tree-navigation.svelte.d.ts +2 -0
  72. package/dist/ui/tree/tree-navigation.svelte.js +3 -0
  73. package/package.json +1 -1
  74. package/dist/ui/page-toolbar/cmp.reorderable-toggle-list.svelte +0 -153
  75. package/dist/ui/page-toolbar/cmp.reorderable-toggle-list.svelte.d.ts +0 -20
  76. package/dist/ui/page-toolbar/cmp.toolbar-checkbox-item.svelte +0 -19
  77. package/dist/ui/page-toolbar/cmp.toolbar-checkbox-item.svelte.d.ts +0 -12
  78. package/dist/ui/page-toolbar/cmp.toolbar-panel-button.svelte +0 -42
  79. package/dist/ui/page-toolbar/cmp.toolbar-panel-button.svelte.d.ts +0 -20
  80. package/dist/ui/page-toolbar/cmp.toolbar-panel.svelte +0 -57
  81. package/dist/ui/page-toolbar/cmp.toolbar-panel.svelte.d.ts +0 -19
  82. package/dist/ui/page-toolbar/cmp.toolbar-toggle-item.svelte +0 -16
  83. package/dist/ui/page-toolbar/cmp.toolbar-toggle-item.svelte.d.ts +0 -12
  84. package/dist/ui/table/table-cells/table-select-cell.svelte +0 -28
  85. package/dist/ui/table/table-cells/table-text-input-cell.svelte +0 -69
  86. package/dist/ui/table/table-cells/table-text-input-cell.svelte.d.ts +0 -38
@@ -1,153 +0,0 @@
1
- <script lang="ts">import { Icon } from '../icon';
2
- import { Toggle } from '../toggle';
3
- import IconReorderDotsVertical from '@fluentui/svg-icons/icons/re_order_dots_vertical_20_regular.svg?raw';
4
- import { flip } from 'svelte/animate';
5
- import { dndzone } from 'svelte-dnd-action';
6
- let { items, on } = $props();
7
- const reorderableItems = $derived(items.filter((i) => !i.fixed));
8
- const fixedItems = $derived(items.filter((i) => i.fixed));
9
- let dndItems = $state.raw([]);
10
- $effect(() => {
11
- dndItems = reorderableItems.map(({ id, label, enabled }) => ({ id, label, enabled }));
12
- });
13
- const flipDurationMs = 200;
14
- const emitChange = (reordered) => {
15
- const merged = [
16
- ...fixedItems.map(({ id, label, enabled, fixed }) => ({ id, label, enabled, fixed })),
17
- ...reordered.map(({ id, label, enabled }) => ({ id, label, enabled }))
18
- ];
19
- on.change(merged);
20
- };
21
- const handleConsider = (e) => {
22
- dndItems = e.detail.items;
23
- };
24
- const handleFinalize = (e) => {
25
- emitChange(e.detail.items);
26
- };
27
- const handleToggle = (id, enabled) => {
28
- emitChange(dndItems.map((i) => (i.id === id ? { ...i, enabled } : i)));
29
- };
30
- const handleFixedToggle = (id, enabled) => {
31
- const updatedFixed = fixedItems.map(({ id: fId, label, enabled: fEnabled, fixed }) => ({
32
- id: fId,
33
- label,
34
- enabled: fId === id ? enabled : fEnabled,
35
- fixed
36
- }));
37
- on.change([...updatedFixed, ...dndItems.map(({ id, label, enabled }) => ({ id, label, enabled }))]);
38
- };
39
- </script>
40
-
41
- <div class="reorderable-toggle-list">
42
- {#each fixedItems as item (item.id)}
43
- <div class="reorderable-toggle-list__item">
44
- <div class="reorderable-toggle-list__drag-handle reorderable-toggle-list__drag-handle--hidden">
45
- <Icon src={IconReorderDotsVertical} />
46
- </div>
47
- <div class="reorderable-toggle-list__label">
48
- {item.label}
49
- </div>
50
- <div class="reorderable-toggle-list__toggle">
51
- <Toggle
52
- checked={item.enabled}
53
- on={{
54
- change: (value) => handleFixedToggle(item.id, value)
55
- }} />
56
- </div>
57
- </div>
58
- {/each}
59
- <div
60
- class="reorderable-toggle-list__dnd"
61
- use:dndzone={{
62
- items: dndItems,
63
- dropTargetStyle: {},
64
- flipDurationMs,
65
- morphDisabled: true
66
- }}
67
- onconsider={handleConsider}
68
- onfinalize={handleFinalize}>
69
- {#each dndItems as item (item.id)}
70
- <div class="reorderable-toggle-list__item" animate:flip={{ duration: flipDurationMs }}>
71
- <div class="reorderable-toggle-list__drag-handle">
72
- <Icon src={IconReorderDotsVertical} />
73
- </div>
74
- <div class="reorderable-toggle-list__label">
75
- {item.label}
76
- </div>
77
- <div class="reorderable-toggle-list__toggle">
78
- <Toggle
79
- checked={item.enabled}
80
- on={{
81
- change: (value) => handleToggle(item.id, value)
82
- }} />
83
- </div>
84
- </div>
85
- {/each}
86
- </div>
87
- </div>
88
-
89
- <!--
90
- @component
91
- A reorderable list of toggle items with drag-and-drop support. Fixed items appear above the reorderable zone.
92
-
93
- ### CSS Custom Properties
94
- | Property | Description | Default |
95
- |---|---|---|
96
- | `--sc-kit--reorderable-toggle-list--label--color` | Label text color | `var(--sc-kit--color--text--primary)` |
97
- | `--sc-kit--reorderable-toggle-list--handle--color` | Drag handle icon color | `var(--sc-kit--color--text--secondary)` |
98
- | `--sc-kit--reorderable-toggle-list--handle--background` | Drag handle background | `var(--sc-kit--color--bg--element)` |
99
- -->
100
-
101
- <style>.reorderable-toggle-list {
102
- --_reorderable-toggle-list--label--color: var(--sc-kit--reorderable-toggle-list--label--color, var(--sc-kit--color--text--primary));
103
- --_reorderable-toggle-list--handle--color: var(--sc-kit--reorderable-toggle-list--handle--color, var(--sc-kit--color--text--secondary));
104
- --_reorderable-toggle-list--handle--background: var(--sc-kit--reorderable-toggle-list--handle--background, var(--sc-kit--color--bg--element));
105
- display: flex;
106
- flex-direction: column;
107
- gap: var(--sc-kit--space--3);
108
- }
109
- .reorderable-toggle-list__dnd {
110
- display: flex;
111
- flex-direction: column;
112
- gap: var(--sc-kit--space--3);
113
- }
114
- .reorderable-toggle-list__item {
115
- display: flex;
116
- align-items: center;
117
- gap: var(--sc-kit--space--3);
118
- padding: var(--sc-kit--space--1) var(--sc-kit--space--2);
119
- }
120
- .reorderable-toggle-list__drag-handle {
121
- --sc-kit--icon--size: 1rem;
122
- --sc-kit--icon--color: var(--_reorderable-toggle-list--handle--color);
123
- display: flex;
124
- align-items: center;
125
- justify-content: center;
126
- height: 1.375rem;
127
- padding-inline: 0.1875rem;
128
- border-radius: var(--sc-kit--radius--sm) 0 0 var(--sc-kit--radius--sm);
129
- cursor: grab;
130
- background: var(--_reorderable-toggle-list--handle--background);
131
- }
132
- .reorderable-toggle-list__drag-handle:active {
133
- cursor: grabbing;
134
- }
135
- .reorderable-toggle-list__drag-handle--hidden {
136
- visibility: hidden;
137
- }
138
- .reorderable-toggle-list__label {
139
- flex: 1;
140
- min-width: 0;
141
- font-size: var(--sc-kit--font-size--md);
142
- font-weight: var(--sc-kit--font-weight--regular);
143
- line-height: var(--sc-kit--line-height--md);
144
- color: var(--_reorderable-toggle-list--label--color);
145
- text-overflow: ellipsis;
146
- max-width: 100%;
147
- white-space: nowrap;
148
- overflow: hidden;
149
- }
150
- .reorderable-toggle-list__toggle {
151
- flex-shrink: 0;
152
- margin-left: auto;
153
- }</style>
@@ -1,20 +0,0 @@
1
- import type { ReorderableToggleItem } from './types';
2
- type Props = {
3
- items: ReorderableToggleItem[];
4
- on: {
5
- change: (items: ReorderableToggleItem[]) => void;
6
- };
7
- };
8
- /**
9
- * A reorderable list of toggle items with drag-and-drop support. Fixed items appear above the reorderable zone.
10
- *
11
- * ### CSS Custom Properties
12
- * | Property | Description | Default |
13
- * |---|---|---|
14
- * | `--sc-kit--reorderable-toggle-list--label--color` | Label text color | `var(--sc-kit--color--text--primary)` |
15
- * | `--sc-kit--reorderable-toggle-list--handle--color` | Drag handle icon color | `var(--sc-kit--color--text--secondary)` |
16
- * | `--sc-kit--reorderable-toggle-list--handle--background` | Drag handle background | `var(--sc-kit--color--bg--element)` |
17
- */
18
- declare const Cmp: import("svelte").Component<Props, {}, "">;
19
- type Cmp = ReturnType<typeof Cmp>;
20
- export default Cmp;
@@ -1,19 +0,0 @@
1
- <script lang="ts">import { Checkbox } from '../checkbox';
2
- const { checked, children, on } = $props();
3
- </script>
4
-
5
- <div class="toolbar-checkbox-item">
6
- <Checkbox checked={checked} label={children} on={{ change: (value) => on?.change?.(value) }} />
7
- </div>
8
-
9
- <!--
10
- @component
11
- A checkbox item for toolbar panels. Wraps the kit Checkbox with toolbar-appropriate sizing.
12
- -->
13
-
14
- <style>.toolbar-checkbox-item {
15
- padding: var(--sc-kit--space--1) var(--sc-kit--space--2);
16
- overflow: hidden;
17
- --sc-kit--checkbox--gap: var(--sc-kit--space--5);
18
- --sc-kit--checkbox--icon--size: 1.125rem;
19
- }</style>
@@ -1,12 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- type Props = {
3
- checked: boolean;
4
- children: Snippet;
5
- on?: {
6
- change?: (value: boolean) => void;
7
- };
8
- };
9
- /** A checkbox item for toolbar panels. Wraps the kit Checkbox with toolbar-appropriate sizing. */
10
- declare const Cmp: import("svelte").Component<Props, {}, "">;
11
- type Cmp = ReturnType<typeof Cmp>;
12
- export default Cmp;
@@ -1,42 +0,0 @@
1
- <script lang="ts">const { children, on } = $props();
2
- export {};
3
- </script>
4
-
5
- <button type="button" class="toolbar-panel-button" onclick={() => on?.click?.()}>
6
- {@render children()}
7
- </button>
8
-
9
- <!--
10
- @component
11
- A text-row button for toolbar panels / popovers (rendered inside `<ToolbarPanel>` / `<ToolbarPopover>`).
12
- For the toolbar's primary action area use `<ToolbarButton>` instead.
13
-
14
- ### CSS Custom Properties
15
- | Property | Description | Default |
16
- |---|---|---|
17
- | `--sc-kit--toolbar-panel-button--color` | Text color | `var(--sc-kit--color--text--primary)` |
18
- | `--sc-kit--toolbar-panel-button--color-hover` | Text color on hover | `var(--sc-kit--color--accent)` |
19
- -->
20
-
21
- <style>.toolbar-panel-button {
22
- --_toolbar-panel-button--color: var(--sc-kit--toolbar-panel-button--color, var(--sc-kit--color--text--primary));
23
- --_toolbar-panel-button--color-hover: var(--sc-kit--toolbar-panel-button--color-hover, var(--sc-kit--color--accent));
24
- appearance: none;
25
- background: transparent;
26
- border: 0;
27
- text-align: inherit;
28
- cursor: pointer;
29
- font-size: var(--sc-kit--font-size--md);
30
- font-weight: var(--sc-kit--font-weight--regular);
31
- line-height: var(--sc-kit--line-height--md);
32
- color: var(--_toolbar-panel-button--color);
33
- padding: var(--sc-kit--space--1) var(--sc-kit--space--2);
34
- max-width: 100%;
35
- text-overflow: ellipsis;
36
- max-width: 100%;
37
- white-space: nowrap;
38
- overflow: hidden;
39
- }
40
- .toolbar-panel-button:hover {
41
- color: var(--_toolbar-panel-button--color-hover);
42
- }</style>
@@ -1,20 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- type Props = {
3
- children: Snippet;
4
- on?: {
5
- click?: () => void;
6
- };
7
- };
8
- /**
9
- * A text-row button for toolbar panels / popovers (rendered inside `<ToolbarPanel>` / `<ToolbarPopover>`).
10
- * For the toolbar's primary action area use `<ToolbarButton>` instead.
11
- *
12
- * ### CSS Custom Properties
13
- * | Property | Description | Default |
14
- * |---|---|---|
15
- * | `--sc-kit--toolbar-panel-button--color` | Text color | `var(--sc-kit--color--text--primary)` |
16
- * | `--sc-kit--toolbar-panel-button--color-hover` | Text color on hover | `var(--sc-kit--color--accent)` |
17
- */
18
- declare const Cmp: import("svelte").Component<Props, {}, "">;
19
- type Cmp = ReturnType<typeof Cmp>;
20
- export default Cmp;
@@ -1,57 +0,0 @@
1
- <script lang="ts">const { title, children, footer } = $props();
2
- export {};
3
- </script>
4
-
5
- <div class="toolbar-panel">
6
- <div class="toolbar-panel__title">{title}</div>
7
- <div class="toolbar-panel__body">
8
- {@render children()}
9
- {#if footer}
10
- <div class="toolbar-panel__divider"></div>
11
- {@render footer()}
12
- {/if}
13
- </div>
14
- </div>
15
-
16
- <!--
17
- @component
18
- A panel container used inside toolbar dropdowns. Provides a title, body area, and optional footer.
19
-
20
- ### CSS Custom Properties
21
- | Property | Description | Default |
22
- |---|---|---|
23
- | `--sc-kit--toolbar-panel--width` | Panel width | `21.875rem` |
24
- | `--sc-kit--toolbar-panel--title--color` | Title text color | `var(--sc-kit--color--text--primary)` |
25
- | `--sc-kit--toolbar-panel--divider--color` | Divider line color | `var(--sc-kit--color--border)` |
26
- -->
27
-
28
- <style>.toolbar-panel {
29
- --_toolbar-panel--width: var(--sc-kit--toolbar-panel--width, 21.875rem);
30
- --_toolbar-panel--title--color: var(--sc-kit--toolbar-panel--title--color, var(--sc-kit--color--text--primary));
31
- --_toolbar-panel--divider--color: var(--sc-kit--toolbar-panel--divider--color, var(--sc-kit--color--border));
32
- width: var(--_toolbar-panel--width);
33
- padding: var(--sc-kit--space--6);
34
- }
35
- .toolbar-panel__title {
36
- font-size: var(--sc-kit--font-size--md);
37
- font-weight: var(--sc-kit--font-weight--semibold);
38
- line-height: var(--sc-kit--line-height--md);
39
- color: var(--_toolbar-panel--title--color);
40
- margin-bottom: var(--sc-kit--space--2);
41
- min-width: 0;
42
- text-overflow: ellipsis;
43
- max-width: 100%;
44
- white-space: nowrap;
45
- overflow: hidden;
46
- }
47
- .toolbar-panel__body {
48
- display: flex;
49
- flex-direction: column;
50
- gap: var(--sc-kit--space--4);
51
- padding-block: var(--sc-kit--space--2);
52
- }
53
- .toolbar-panel__divider {
54
- height: 1px;
55
- background: var(--_toolbar-panel--divider--color);
56
- margin: var(--sc-kit--space--1) var(--sc-kit--space--2);
57
- }</style>
@@ -1,19 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- type Props = {
3
- title: string;
4
- children: Snippet;
5
- footer?: Snippet;
6
- };
7
- /**
8
- * A panel container used inside toolbar dropdowns. Provides a title, body area, and optional footer.
9
- *
10
- * ### CSS Custom Properties
11
- * | Property | Description | Default |
12
- * |---|---|---|
13
- * | `--sc-kit--toolbar-panel--width` | Panel width | `21.875rem` |
14
- * | `--sc-kit--toolbar-panel--title--color` | Title text color | `var(--sc-kit--color--text--primary)` |
15
- * | `--sc-kit--toolbar-panel--divider--color` | Divider line color | `var(--sc-kit--color--border)` |
16
- */
17
- declare const Cmp: import("svelte").Component<Props, {}, "">;
18
- type Cmp = ReturnType<typeof Cmp>;
19
- export default Cmp;
@@ -1,16 +0,0 @@
1
- <script lang="ts">import { Toggle } from '../toggle';
2
- const { checked, children, on } = $props();
3
- </script>
4
-
5
- <div class="toolbar-toggle-item">
6
- <Toggle checked={checked} label={children} layout="spread" on={{ change: (value) => on?.change?.(value) }} />
7
- </div>
8
-
9
- <!--
10
- @component
11
- A toggle item for toolbar panels. Wraps the kit Toggle with toolbar-appropriate padding.
12
- -->
13
-
14
- <style>.toolbar-toggle-item {
15
- padding: var(--sc-kit--space--1) var(--sc-kit--space--2);
16
- }</style>
@@ -1,12 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- type Props = {
3
- checked: boolean;
4
- children: Snippet;
5
- on?: {
6
- change?: (value: boolean) => void;
7
- };
8
- };
9
- /** A toggle item for toolbar panels. Wraps the kit Toggle with toolbar-appropriate padding. */
10
- declare const Cmp: import("svelte").Component<Props, {}, "">;
11
- type Cmp = ReturnType<typeof Cmp>;
12
- export default Cmp;
@@ -1,28 +0,0 @@
1
- <script lang="ts" generics="T extends {id: string}">import { Singleselect } from '../../select';
2
- let { item, column } = $props();
3
- const getValueForColumn = (column, item) => (column.valueFactory ? column.valueFactory(item) : item[column.id]);
4
- const onSelected = (value) => {
5
- column.onSelected(item, value);
6
- item = item;
7
- };
8
- </script>
9
-
10
- {#if !column.visibilityFactory || column.visibilityFactory(item)}
11
- {#if column.clearable}
12
- <Singleselect
13
- clearable
14
- placeholder={column.placeholder || ' '}
15
- value={getValueForColumn(column, item)}
16
- options={column.optionsFactory(item)}
17
- disabled={(column.disabledFactory && column.disabledFactory(item)) || false}
18
- on={{ change: (v) => onSelected(v) }} />
19
- {:else}
20
- <Singleselect
21
- clearable={false}
22
- placeholder={column.placeholder || ' '}
23
- value={getValueForColumn(column, item)}
24
- options={column.optionsFactory(item)}
25
- disabled={(column.disabledFactory && column.disabledFactory(item)) || false}
26
- on={{ change: (v) => onSelected(v) }} />
27
- {/if}
28
- {/if}
@@ -1,69 +0,0 @@
1
- <script lang="ts" generics="T extends {id: string}">import { Input } from '../../input';
2
- import { LineClamp } from '../../line-clamp';
3
- import { NumeralInput } from '../../numeral-input';
4
- import { untrack } from 'svelte';
5
- let { item, column } = $props();
6
- let errorText = $state('');
7
- const onInput = async (val) => {
8
- item[column.id] = val === null ? '' : String(val);
9
- await validate();
10
- if (column.onInput) {
11
- column.onInput(item, item[column.id]);
12
- }
13
- };
14
- const validate = async () => {
15
- if (!column.validationSchema) {
16
- return;
17
- }
18
- try {
19
- await column.validationSchema.validate(item[column.id]);
20
- errorText = '';
21
- }
22
- catch (error) {
23
- const err = error;
24
- if (err.name !== 'ValidationError') {
25
- throw error;
26
- }
27
- errorText = err.message;
28
- return;
29
- }
30
- finally {
31
- if (column.onValidated) {
32
- column.onValidated(item, errorText);
33
- }
34
- }
35
- };
36
- $effect(() => {
37
- untrack(() => void validate());
38
- });
39
- </script>
40
-
41
- <div class="table-text-input-cell" class:table-text-input-cell--errored={!!errorText}>
42
- {#if column.inputType === 'number'}
43
- <NumeralInput clearable value={item[column.id]} on={{ input: onInput }} />
44
- {:else}
45
- <Input value={item[column.id]} on={{ input: onInput }} />
46
- {/if}
47
- {#if errorText}
48
- <div class="table-text-input-cell__error">
49
- <LineClamp maxLines={2}>{errorText}</LineClamp>
50
- </div>
51
- {/if}
52
- </div>
53
-
54
- <style>.table-text-input-cell {
55
- position: relative;
56
- font-size: var(--_table--cell--font-size);
57
- padding-top: 1.5em;
58
- margin-bottom: 1.5em;
59
- }
60
- .table-text-input-cell__error {
61
- position: absolute;
62
- top: calc(100% + 0.1em);
63
- left: 0;
64
- right: 0;
65
- display: block;
66
- color: var(--sc-kit--color--danger);
67
- font-size: 0.6875rem;
68
- font-weight: 400;
69
- }</style>
@@ -1,38 +0,0 @@
1
- import type { ITableTextInputColumn } from '../types';
2
- declare function $$render<T extends {
3
- id: string;
4
- }>(): {
5
- props: {
6
- item: any;
7
- column: ITableTextInputColumn<T>;
8
- };
9
- exports: {};
10
- bindings: "";
11
- slots: {};
12
- events: {};
13
- };
14
- declare class __sveltets_Render<T extends {
15
- id: string;
16
- }> {
17
- props(): ReturnType<typeof $$render<T>>['props'];
18
- events(): ReturnType<typeof $$render<T>>['events'];
19
- slots(): ReturnType<typeof $$render<T>>['slots'];
20
- bindings(): "";
21
- exports(): {};
22
- }
23
- interface $$IsomorphicComponent {
24
- new <T extends {
25
- id: string;
26
- }>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
27
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
28
- } & ReturnType<__sveltets_Render<T>['exports']>;
29
- <T extends {
30
- id: string;
31
- }>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
32
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
33
- }
34
- declare const TableTextInputCell: $$IsomorphicComponent;
35
- type TableTextInputCell<T extends {
36
- id: string;
37
- }> = InstanceType<typeof TableTextInputCell<T>>;
38
- export default TableTextInputCell;