webcake-ui-kit 1.2.0 → 1.2.1

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 (67) hide show
  1. package/package.json +8 -2
  2. package/src/components/checkbox/Checkbox.vue +1 -1
  3. package/src/components/drawer/Drawer.vue +261 -0
  4. package/src/components/drawer/drawer.css +162 -0
  5. package/src/components/dropdown/Dropdown.vue +15 -9
  6. package/src/components/hover-card/HoverCard.vue +159 -0
  7. package/src/components/hover-card/hover-card.css +10 -0
  8. package/src/components/input-counter/InputCounter.vue +250 -0
  9. package/src/components/input-counter/input-counter.css +209 -0
  10. package/src/components/menu/Menu.vue +4 -2
  11. package/src/components/popover/Popover.vue +144 -0
  12. package/src/components/popover/popover.css +3 -0
  13. package/src/components/table-v2/ColumnDragHandle.vue +103 -0
  14. package/src/components/table-v2/Table.vue +299 -0
  15. package/src/components/table-v2/TableColGroup.vue +55 -0
  16. package/src/components/table-v2/TableEmpty.vue +10 -0
  17. package/src/components/table-v2/TableLoading.vue +25 -0
  18. package/src/components/table-v2/TableResizeObserver.vue +93 -0
  19. package/src/components/table-v2/TableWrapper.vue +193 -0
  20. package/src/components/table-v2/body/DragPreview.vue +65 -0
  21. package/src/components/table-v2/body/MeasureCell.vue +42 -0
  22. package/src/components/table-v2/body/TableBody.vue +126 -0
  23. package/src/components/table-v2/body/TableCell.vue +108 -0
  24. package/src/components/table-v2/body/TableRow.vue +73 -0
  25. package/src/components/table-v2/composables/useColumns.js +19 -0
  26. package/src/components/table-v2/composables/useSorter.js +12 -0
  27. package/src/components/table-v2/composables/useSticky.js +31 -0
  28. package/src/components/table-v2/constants.js +2 -0
  29. package/src/components/table-v2/context/createTableContext.js +79 -0
  30. package/src/components/table-v2/header/TableHeader.vue +15 -0
  31. package/src/components/table-v2/header/TableHeaderCell.vue +89 -0
  32. package/src/components/table-v2/header/TableHeaderRow.vue +107 -0
  33. package/src/components/table-v2/style/table-body.css +0 -0
  34. package/src/components/table-v2/style/table-header.css +0 -0
  35. package/src/components/table-v2/style/table-loading.css +19 -0
  36. package/src/components/table-v2/style/table-wrapper.css +287 -0
  37. package/src/components/table-v2/style/table.css +5 -0
  38. package/src/icons/BoxShadow.vue +35 -0
  39. package/src/icons/Carousel.vue +34 -0
  40. package/src/icons/CloudSync2.vue +42 -0
  41. package/src/icons/CornerBottomLeft.vue +26 -0
  42. package/src/icons/CornerBottomRight.vue +26 -0
  43. package/src/icons/CornerTopLeft.vue +26 -0
  44. package/src/icons/CornerTopRight.vue +26 -0
  45. package/src/icons/DistanceRight.vue +30 -0
  46. package/src/icons/DistanceTop.vue +30 -0
  47. package/src/icons/DropShadow.vue +35 -0
  48. package/src/icons/Fire.vue +26 -0
  49. package/src/icons/GlobeAccess.vue +32 -0
  50. package/src/icons/InnerShadow.vue +33 -0
  51. package/src/icons/Livestream.vue +54 -0
  52. package/src/icons/PaddingBottom.vue +30 -0
  53. package/src/icons/PaddingLeft.vue +30 -0
  54. package/src/icons/PaddingRight.vue +30 -0
  55. package/src/icons/PaddingTop.vue +30 -0
  56. package/src/icons/SkewHeight.vue +32 -0
  57. package/src/icons/SkewWidth.vue +32 -0
  58. package/src/icons/SquareDashedBottomSolid.vue +26 -0
  59. package/src/icons/SquareDashedLeftSolid.vue +26 -0
  60. package/src/icons/SquareDashedRightSolid.vue +26 -0
  61. package/src/icons/StrokeLine.vue +23 -0
  62. package/src/icons/Topline.vue +26 -0
  63. package/src/icons/index.js +25 -0
  64. package/src/index.js +5 -0
  65. package/src/styles/.omc/state/agent-replay-645326b7-372b-463d-ab45-0adaafe31a51.jsonl +2 -0
  66. package/src/styles/.omc/state/subagent-tracking.json +7 -0
  67. package/src/utils/common.js +34 -0
@@ -0,0 +1,79 @@
1
+ export function createTableContext() {
2
+ return {
3
+ columns: {
4
+ flat: [],
5
+ leaf: []
6
+ },
7
+
8
+ rows: {
9
+ customRow: () => {},
10
+ customHeaderRow: () => {}
11
+ },
12
+
13
+ data: {
14
+ source: [],
15
+ display: [],
16
+ loading: false,
17
+ emptyText: ''
18
+ },
19
+
20
+ layout: {
21
+ bordered: false,
22
+ size: 'md',
23
+ tableLayout: 'auto',
24
+ scroll: null,
25
+ rowKey: 'key',
26
+ scrollBarWidth: 0,
27
+ containerWidth: 0,
28
+ columnWidths: new Map(),
29
+ rowHeight: 50,
30
+ headerHeight: 36
31
+ },
32
+
33
+ sort: {
34
+ columnKey: null,
35
+ order: null
36
+ },
37
+
38
+ selection: {
39
+ selectedRowKeys: [],
40
+ hideSelectAll: false,
41
+ columnWidth: 0,
42
+ type: '',
43
+ checkAll: false,
44
+ onChange: (selectedRowKeys, selectedRows) => {},
45
+ onSelect: (ecord, selected, selectedRows, nativeEvent) => {},
46
+ onSelectAll: (selected, selectedRows, changeRows) => {},
47
+ onSelectNone: () => {}
48
+ },
49
+
50
+ draggable: {
51
+ enabled: false,
52
+ enableAnimationFlip: false,
53
+ columnWidth: 0,
54
+ handleReorder: (fromIndex, toIndex, dataSource) => {},
55
+ draggingRecord: null,
56
+ getPreviewEl: null
57
+ },
58
+
59
+ sticky: {
60
+ leftOffsets: {},
61
+ rightOffsets: {}
62
+ },
63
+
64
+ virtual: {
65
+ enabled: false,
66
+ startIndex: 0,
67
+ endIndex: 0,
68
+ offsetY: 0
69
+ },
70
+
71
+ actions: {
72
+ sort: null,
73
+ select: null,
74
+ resize: null,
75
+ expand: null,
76
+ reorder: null
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <thead class="ui-table-v2__header">
3
+ <TableHeaderRow />
4
+ </thead>
5
+ </template>
6
+
7
+ <script>
8
+ import TableHeaderRow from './TableHeaderRow.vue'
9
+
10
+ export default {
11
+ name: 'TableV2Header',
12
+ components: { TableHeaderRow },
13
+ inject: ['tableContext']
14
+ }
15
+ </script>
@@ -0,0 +1,89 @@
1
+ <template>
2
+ <th
3
+ :class="[
4
+ 'ui-table-v2__header-cell',
5
+ isSelectionCol && 'ui-table-v2__header-cell--selection',
6
+ isLastItem && 'ui-table-v2__header-cell--last',
7
+ isSelectionCol && !isHideSelectAll && 'ui-table-v2__header-cell--selection',
8
+ column.fixed && `ui-table-v2__cell--fixed-${column.fixed}`,
9
+ isLastFixedLeft && 'ui-table-v2__cell--fixed-left__last',
10
+ isFirstFixedRight && 'ui-table-v2__cell--fixed-right__first'
11
+ ]"
12
+ :style="cellStyle"
13
+ >
14
+ <div v-if="isSelectionCol && !isHideSelectAll" class="wrapper-option">
15
+ <Checkbox :checked="tableContext.selection.checkAll" @change="onCheckAll" />
16
+ </div>
17
+
18
+ <span v-else :class="[column.ellipsis && 'ui-table-v2__header-cell--ellipsis']">{{ column.title }}</span>
19
+
20
+ <slot name="drag-handle"></slot>
21
+ </th>
22
+ </template>
23
+
24
+ <script>
25
+ import Checkbox from '../../checkbox/Checkbox.vue'
26
+ import { SELECTION_COLUMN } from '../constants.js'
27
+ import { toCssSize } from '../../../utils/common.js'
28
+
29
+ export default {
30
+ name: 'TableV2HeaderCell',
31
+ components: { Checkbox },
32
+ inject: ['tableContext'],
33
+ props: {
34
+ column: { type: Object, required: true },
35
+ isLastItem: { type: Boolean, default: false },
36
+ offset: { type: [Number, String], default: 0 }
37
+ },
38
+ computed: {
39
+ isHideSelectAll() {
40
+ return this.tableContext.selection.hideSelectAll
41
+ },
42
+ isSelectionCol: function () {
43
+ return this.column.type === SELECTION_COLUMN
44
+ },
45
+ isLastFixedLeft: function () {
46
+ if (this.column.fixed !== 'left') return false
47
+ const cols = this.tableContext.columns.flat
48
+ let lastKey = null
49
+ for (let i = 0; i < cols.length; i++) {
50
+ if (cols[i].fixed === 'left') lastKey = cols[i].key
51
+ }
52
+ return lastKey === this.column.key
53
+ },
54
+ isFirstFixedRight: function () {
55
+ if (this.column.fixed !== 'right') return false
56
+ const cols = this.tableContext.columns.flat
57
+ for (let i = 0; i < cols.length; i++) {
58
+ if (cols[i].fixed === 'right') return cols[i].key === this.column.key
59
+ }
60
+ return false
61
+ },
62
+ cellStyle: function () {
63
+ const res = { textAlign: this.column.align }
64
+ if (this.column.fixed) {
65
+ if (this.column.fixed === 'left') {
66
+ res.left = toCssSize(this.offset)
67
+ } else if (this.column.fixed === 'right') {
68
+ res.right = toCssSize(this.offset)
69
+ }
70
+ res.position = 'sticky'
71
+ }
72
+ return res
73
+ }
74
+ },
75
+ methods: {
76
+ onCheckAll: function (checked) {
77
+ const key = this.tableContext.layout.rowKey
78
+ const allKeys = this.tableContext.data.display.map(function (r) {
79
+ return r[key]
80
+ })
81
+
82
+ this.tableContext.actions.select(checked ? allKeys : [], {
83
+ type: checked ? 'all' : 'none',
84
+ selected: checked
85
+ })
86
+ }
87
+ }
88
+ }
89
+ </script>
@@ -0,0 +1,107 @@
1
+ <template>
2
+ <tr
3
+ v-bind="customAttrs"
4
+ v-on="customListeners"
5
+ :class="['ui-table-v2__header-row', customAttrs.class]"
6
+ :style="rowStyle"
7
+ >
8
+ <TableHeaderCell
9
+ v-for="(column, index) in tableContext.columns.flat"
10
+ :key="column.key"
11
+ :column="column"
12
+ :is-last-item="index === tableContext.columns.flat.length - 1"
13
+ :offset="column.fixed === 'left' ? leftStickyOffsets[column.key] : rightStickyOffsets[column.key]"
14
+ >
15
+ <template v-if="column.resizable && !isEmpty" #drag-handle>
16
+ <ColumnDragHandle
17
+ :column="column"
18
+ :width="columnWidths.get(column.key)"
19
+ :min-width="column.minWidth"
20
+ :max-width="column.maxWidth"
21
+ @resize="hanldeResize"
22
+ />
23
+ </template>
24
+ </TableHeaderCell>
25
+ <th v-if="hasScrollBar" class="ui-table-v2__scrollbar-cell" aria-hidden="true" :style="styleFakeScrollbar" />
26
+ </tr>
27
+ </template>
28
+
29
+ <script>
30
+ import TableHeaderCell from './TableHeaderCell.vue'
31
+ import { splitProps } from '../../../utils/common.js'
32
+ import ColumnDragHandle from '../ColumnDragHandle.vue'
33
+
34
+ export default {
35
+ name: 'TableV2HeaderRow',
36
+ components: {
37
+ TableHeaderCell,
38
+ ColumnDragHandle
39
+ },
40
+ inject: ['tableContext'],
41
+
42
+ computed: {
43
+ rowStyle() {
44
+ return { height: this.tableContext.layout.headerHeight + 'px' }
45
+ },
46
+
47
+ hasScrollBar: function () {
48
+ const w = parseFloat(this.tableContext.layout.scrollBarWidth)
49
+ return !!w
50
+ },
51
+
52
+ columnWidths() {
53
+ return this.tableContext.layout.columnWidths
54
+ },
55
+
56
+ leftStickyOffsets() {
57
+ return this.tableContext.sticky.leftOffsets
58
+ },
59
+
60
+ rightStickyOffsets() {
61
+ const scrollBarWidth = parseFloat(this.tableContext.layout.scrollBarWidth) || 0
62
+ const rightOffsets = Object.fromEntries(
63
+ Object.entries(this.tableContext.sticky.rightOffsets).map(([key, value]) => [key, value + scrollBarWidth])
64
+ )
65
+
66
+ return rightOffsets
67
+ },
68
+
69
+ hasFixedRight: function () {
70
+ return Object.keys(this.rightStickyOffsets).length > 0
71
+ },
72
+
73
+ styleFakeScrollbar: function () {
74
+ if (this.hasFixedRight) {
75
+ return {
76
+ position: 'sticky',
77
+ right: '0'
78
+ }
79
+ }
80
+ return {}
81
+ },
82
+
83
+ customProps: function () {
84
+ var fn = this.tableContext.rows.customHeaderRow
85
+ return typeof fn === 'function' ? fn(this.tableContext.columns.flat, 0) || {} : {}
86
+ },
87
+
88
+ customAttrs: function () {
89
+ return splitProps(this.customProps).attrs
90
+ },
91
+
92
+ customListeners: function () {
93
+ return splitProps(this.customProps).listeners
94
+ },
95
+
96
+ isEmpty: function () {
97
+ return this.tableContext.data.display.length === 0
98
+ }
99
+ },
100
+
101
+ methods: {
102
+ hanldeResize(width, column) {
103
+ this.tableContext.actions.resize(column.key, width)
104
+ }
105
+ }
106
+ }
107
+ </script>
File without changes
File without changes
@@ -0,0 +1,19 @@
1
+ .ui-table-v2__loading-wrap {
2
+ position: relative;
3
+ }
4
+
5
+ .ui-table-v2__loading-overlay {
6
+ position: absolute;
7
+ inset: 0;
8
+ z-index: 10;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ background: rgba(255, 255, 255, 0.6);
13
+ border-radius: inherit;
14
+ }
15
+
16
+ .ui-table-v2__loading-wrap--loading > :not(.ui-table-v2__loading-overlay) {
17
+ pointer-events: none;
18
+ user-select: none;
19
+ }
@@ -0,0 +1,287 @@
1
+ .ui-table-v2__wrapper {
2
+ overflow: hidden;
3
+ border-radius: var(--rounded-2xl);
4
+ border-inline-end: 1px solid var(--border-primary);
5
+ border-inline-start: 1px solid var(--border-primary);
6
+ }
7
+
8
+ .ui-table-v2__wrapper table {
9
+ width: 100%;
10
+ text-align: start;
11
+ border-radius: 8px 8px 0 0;
12
+ border-collapse: separate;
13
+ border-spacing: 0;
14
+ }
15
+
16
+ .ui-table-v2__wrapper .ui-table-v2__content {
17
+ border-top: 1px solid var(--border-primary);
18
+ border-bottom: 1px solid var(--border-primary);
19
+ }
20
+
21
+ .ui-table-v2__wrapper .ui-table-v2__header-hold {
22
+ border-top: 1px solid var(--border-primary);
23
+ }
24
+
25
+ .ui-table-v2__wrapper .ui-table-v2__body-hold {
26
+ border-bottom: 1px solid var(--border-primary);
27
+ }
28
+
29
+ /* Common betwenn Header and Body */
30
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__header > tr > th,
31
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body > tr > td {
32
+ color: var(--primary-fg);
33
+ font-size: var(--paragraph-small-font-size);
34
+ line-height: var(--paragraph-small-line-height);
35
+ letter-spacing: var(--paragraph-small-letter-spacing);
36
+ border-bottom: 1px solid var(--border-primary);
37
+ }
38
+
39
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body > tr:last-child td {
40
+ border-bottom: none;
41
+ }
42
+
43
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__table--bordered .ui-table-v2__header > tr > th:not(:last-child),
44
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__table--bordered .ui-table-v2__body > tr > td:not(:last-child) {
45
+ border-inline-end: 1px solid var(--border-primary);
46
+ }
47
+
48
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__table--bordered .ui-table-v2__header .ui-table-v2__header-cell--last {
49
+ border-inline-end: 1px solid transparent !important;
50
+ }
51
+
52
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__header-cell--ellipsis,
53
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell--ellipsis {
54
+ overflow: hidden;
55
+ white-space: nowrap;
56
+ text-overflow: ellipsis;
57
+ word-break: keep-all;
58
+ min-width: 0;
59
+ display: block;
60
+ }
61
+
62
+ .ui-table-v2__wrapper ::v-deep .wrapper-option {
63
+ height: 100%;
64
+ width: 100%;
65
+ display: flex;
66
+ justify-content: center;
67
+ align-items: center;
68
+ }
69
+
70
+ .ui-table-v2__wrapper ::v-deep .wrapper-option .ui-checkbox {
71
+ margin: auto;
72
+ }
73
+
74
+ .ui-table-v2__wrapper ::v-deep .wrapper-option .drag-handle {
75
+ cursor: grab;
76
+ }
77
+
78
+ .ui-table-v2__wrapper--ping-left ::v-deep .ui-table-v2__cell--fixed-left__last {
79
+ box-shadow: var(--shadow-fixed-column-left);
80
+ border-inline-end: none !important;
81
+ }
82
+
83
+ .ui-table-v2__wrapper--ping-right ::v-deep .ui-table-v2__cell--fixed-right__first {
84
+ box-shadow: var(--shadow-fixed-column-right);
85
+ }
86
+
87
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell--fixed-left,
88
+ .ui-table-v2__wrapper::v-deep .ui-table-v2__cell--fixed-right {
89
+ background: var(--primary-bg);
90
+ z-index: 2;
91
+ }
92
+
93
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell--fixed-left__last::after {
94
+ position: absolute;
95
+ top: 0;
96
+ right: 0;
97
+ bottom: -1px;
98
+ width: 30px;
99
+ transform: translateX(100%);
100
+ transition: box-shadow 0.3s;
101
+ content: '';
102
+ pointer-events: none;
103
+ }
104
+
105
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell--fixed-right__first::before {
106
+ position: absolute;
107
+ top: 0;
108
+ bottom: -1px;
109
+ left: 0;
110
+ width: 30px;
111
+ transform: translateX(-100%);
112
+ transition: box-shadow 0.3s;
113
+ content: '';
114
+ pointer-events: none;
115
+ }
116
+
117
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell-resize-handle {
118
+ position: absolute;
119
+ top: 0;
120
+ height: 100% !important;
121
+ bottom: 0;
122
+ left: auto;
123
+ right: -8px;
124
+ cursor: col-resize;
125
+ touch-action: none;
126
+ -webkit-user-select: none;
127
+ -moz-user-select: none;
128
+ user-select: none;
129
+ width: 16px;
130
+ z-index: 1;
131
+ display: flex;
132
+ align-items: center;
133
+ }
134
+
135
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell-resize-handle .ui-table-v2__cell-resize-line {
136
+ display: block;
137
+ width: 2px;
138
+ margin-left: 7px;
139
+ height: 1.6em;
140
+ background: var(--border-focus);
141
+ }
142
+
143
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell-resize-handle.reversed {
144
+ right: auto;
145
+ left: -8px;
146
+ }
147
+
148
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell-resize-handle:hover .ui-table-v2__cell-resize-line,
149
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__cell-resize-handle.dragging .ui-table-v2__cell-resize-line {
150
+ opacity: 1;
151
+ background-color: #1677ff;
152
+ height: 100% !important;
153
+ }
154
+
155
+ /* Header */
156
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__header > tr > th {
157
+ background: var(--secondary-bg);
158
+ padding: var(--spacing-xs);
159
+ font-weight: 500;
160
+ text-align: start;
161
+ position: relative;
162
+ }
163
+
164
+ /* Body */
165
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body .ui-table-v2__row {
166
+ height: 50px;
167
+ }
168
+
169
+ .ui-table-v2__wrapper ::v-deep .drag-handle {
170
+ cursor: grab;
171
+ display: flex;
172
+ align-items: center;
173
+ color: var(--secondary-fg, #999);
174
+ }
175
+
176
+ .ui-table-v2__wrapper ::v-deep .drag-handle:active {
177
+ cursor: grabbing;
178
+ }
179
+
180
+ .ui-table-v2__wrapper ::v-deep .sortable-chosen > td {
181
+ background: var(--accent-1);
182
+ opacity: 0.8;
183
+ }
184
+
185
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body > tr > td {
186
+ padding: var(--spacing-xs);
187
+ font-weight: 400;
188
+ }
189
+
190
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body > .ui-table-v2__row:hover > td {
191
+ background: var(--accent-1);
192
+ }
193
+
194
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body .ui-table-v2__row--selected > td {
195
+ background: var(--accent-1);
196
+ }
197
+
198
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__drag-preview .ui-table-v2__body > tr > td {
199
+ background: var(--primary-bg);
200
+ position: unset;
201
+ }
202
+
203
+ /* Empty */
204
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__body > tr > td:has(.ui-table-v2__row-empty):hover {
205
+ background: transparent;
206
+ }
207
+
208
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__row-empty {
209
+ min-height: 300px;
210
+ display: flex;
211
+ flex-direction: column;
212
+ align-items: center;
213
+ justify-content: center;
214
+ }
215
+
216
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__row-empty .wrapper-img {
217
+ width: 120px;
218
+ height: 120px;
219
+ user-select: none;
220
+ }
221
+
222
+ .ui-table-v2__wrapper ::v-deep .ui-table-v2__row-empty .wrapper-img img {
223
+ width: 100%;
224
+ height: 100%;
225
+ object-fit: cover;
226
+ }
227
+
228
+ /* Scrollbar */
229
+ .ui-table-v2__body-hold::-webkit-scrollbar {
230
+ width: 10px;
231
+ height: 10px;
232
+ }
233
+
234
+ .ui-table-v2__body-hold::-webkit-scrollbar-track:vertical {
235
+ border-left: 1px solid var(--border-primary);
236
+ }
237
+
238
+ .ui-table-v2__body-hold::-webkit-scrollbar-track:horizontal {
239
+ border-top: 1px solid var(--border-primary);
240
+ }
241
+
242
+ .ui-table-v2__body-hold::-webkit-scrollbar-thumb {
243
+ background: var(--border-primary);
244
+ border-radius: 3px;
245
+ }
246
+
247
+ .ui-table-v2__body-hold::-webkit-scrollbar-thumb:vertical {
248
+ border-left: 2px solid transparent;
249
+ border-right: 1px solid transparent;
250
+ background-clip: content-box;
251
+ }
252
+
253
+ .ui-table-v2__body-hold::-webkit-scrollbar-thumb:horizontal {
254
+ border-top: 2px solid transparent;
255
+ border-bottom: 1px solid transparent;
256
+ background-clip: content-box;
257
+ }
258
+
259
+ .ui-table-v2__content::-webkit-scrollbar {
260
+ width: 10px;
261
+ height: 10px;
262
+ }
263
+
264
+ .ui-table-v2__content::-webkit-scrollbar-track:vertical {
265
+ border-left: 1px solid var(--border-primary);
266
+ }
267
+
268
+ .ui-table-v2__content::-webkit-scrollbar-track:horizontal {
269
+ border-top: 1px solid var(--border-primary);
270
+ }
271
+
272
+ .ui-table-v2__content::-webkit-scrollbar-thumb {
273
+ background: var(--border-primary);
274
+ border-radius: 3px;
275
+ }
276
+
277
+ .ui-table-v2__content::-webkit-scrollbar-thumb:vertical {
278
+ border-left: 2px solid transparent;
279
+ border-right: 1px solid transparent;
280
+ background-clip: content-box;
281
+ }
282
+
283
+ .ui-table-v2__content::-webkit-scrollbar-thumb:horizontal {
284
+ border-top: 2px solid transparent;
285
+ border-bottom: 1px solid transparent;
286
+ background-clip: content-box;
287
+ }
@@ -0,0 +1,5 @@
1
+ .ui-table-v2 {
2
+ width: 100%;
3
+ font-family: var(--font-family-body);
4
+ color: var(--primary-fg);
5
+ }
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <BaseIcon v-bind="$attrs" v-on="listeners">
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
4
+ <path
5
+ fill-rule="evenodd"
6
+ clip-rule="evenodd"
7
+ d="M20.8188 19.0986C20.936 18.7828 21 18.4411 21 18.0845V5.91549C21 4.30531 19.6947 3 18.0845 3H5.91549C4.30531 3 3 4.30531 3 5.91549V18.0845C3 18.4411 3.06402 18.7828 3.1812 19.0986C3.59313 20.2088 4.66192 21 5.91549 21H18.0845C19.3381 21 20.4069 20.2088 20.8188 19.0986ZM19.2254 5.91549C19.2254 5.28542 18.7146 4.77465 18.0845 4.77465H5.91549C5.28542 4.77465 4.77465 5.28542 4.77465 5.91549V17.4288V18.0845C4.77465 18.7146 5.28542 19.2254 5.91549 19.2254H18.0845C18.7146 19.2254 19.2254 18.7146 19.2254 18.0845V17.4288V5.91549Z"
8
+ fill="currentColor"
9
+ />
10
+ <path
11
+ opacity="0.3"
12
+ fill-rule="evenodd"
13
+ clip-rule="evenodd"
14
+ d="M5 20.8534V21C5 22.1046 5.89543 23 7 23H21C22.1046 23 23 22.1046 23 21V6C23 4.89543 22.1046 4 21 4H20.2825C20.7294 4.51231 21 5.1823 21 5.9155V18.0845C21 18.4411 20.936 18.7828 20.8188 19.0986C20.4069 20.2088 19.3381 21 18.0845 21H5.9155C5.59569 21 5.28792 20.9485 5 20.8534Z"
15
+ fill="currentColor"
16
+ />
17
+ </svg>
18
+ </BaseIcon>
19
+ </template>
20
+
21
+ <script>
22
+ import BaseIcon from './BaseIcon.vue'
23
+
24
+ export default {
25
+ name: 'BoxShadow',
26
+ components: { BaseIcon },
27
+ inheritAttrs: false,
28
+ emits: [],
29
+ computed: {
30
+ listeners() {
31
+ return this.$listeners || {}
32
+ }
33
+ }
34
+ }
35
+ </script>
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <BaseIcon v-bind="$attrs" v-on="listeners">
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
4
+ <path
5
+ d="M1.8045 6.90671V17.053C1.8047 18.3081 2.82214 19.3255 4.07721 19.3257H6.42169C6.78413 19.3257 7.07794 19.0318 7.07794 18.6694C7.07794 18.307 6.78413 18.0132 6.42169 18.0132H4.07721C3.547 18.013 3.1172 17.5832 3.117 17.053V6.90671C3.11718 6.37646 3.54698 5.9467 4.07721 5.94651H6.50299C6.86533 5.94641 7.15922 5.65261 7.15924 5.29026C7.15924 4.92788 6.86534 4.63411 6.50299 4.63401H4.07721C2.82213 4.6342 1.80468 5.65156 1.8045 6.90671Z"
6
+ fill="currentColor"
7
+ />
8
+ <path
9
+ d="M20.8833 6.90667V17.0529C20.8831 17.5833 20.4527 18.0131 19.9224 18.0131H17.5779C17.2155 18.0132 16.9216 18.307 16.9216 18.6694C16.9216 19.0318 17.2155 19.3255 17.5779 19.3256H19.9224C21.1776 19.3256 22.1956 18.3082 22.1958 17.0529V6.90667C22.1956 5.6514 21.1776 4.63397 19.9224 4.63397H17.5376C17.1752 4.63397 16.8814 4.92778 16.8814 5.29022C16.8814 5.65263 17.1752 5.94647 17.5376 5.94647H19.9224C20.4528 5.94647 20.8831 6.3763 20.8833 6.90667Z"
10
+ fill="currentColor"
11
+ />
12
+ <path
13
+ d="M16.8409 19.9228C16.8407 20.4531 16.4104 20.883 15.88 20.883H8.11926C7.58905 20.8828 7.15925 20.453 7.15906 19.9228V4.07758C7.15906 3.54718 7.58893 3.11757 8.11926 3.11737H15.88C16.4105 3.11737 16.8409 3.54706 16.8409 4.07758V19.9228ZM18.1534 4.07758C18.1534 2.82216 17.1354 1.80487 15.88 1.80487H8.11926C6.86407 1.80507 5.84656 2.82228 5.84656 4.07758V19.9228C5.84675 21.1779 6.8642 22.1953 8.11926 22.1955H15.88C17.1352 22.1955 18.1532 21.178 18.1534 19.9228V4.07758Z"
14
+ fill="currentColor"
15
+ />
16
+ </svg>
17
+ </BaseIcon>
18
+ </template>
19
+
20
+ <script>
21
+ import BaseIcon from './BaseIcon.vue'
22
+
23
+ export default {
24
+ name: 'Carousel',
25
+ components: { BaseIcon },
26
+ inheritAttrs: false,
27
+ emits: [],
28
+ computed: {
29
+ listeners() {
30
+ return this.$listeners || {}
31
+ }
32
+ }
33
+ }
34
+ </script>