@uibit/table 0.1.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.
@@ -0,0 +1,978 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/index.ts",
8
+ "declarations": [],
9
+ "exports": [
10
+ {
11
+ "kind": "js",
12
+ "name": "default",
13
+ "declaration": {
14
+ "name": "default",
15
+ "module": "./table"
16
+ }
17
+ },
18
+ {
19
+ "kind": "js",
20
+ "name": "Table",
21
+ "declaration": {
22
+ "name": "Table",
23
+ "module": "./table"
24
+ }
25
+ },
26
+ {
27
+ "kind": "js",
28
+ "name": "*",
29
+ "declaration": {
30
+ "name": "*",
31
+ "module": "src/types"
32
+ }
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "kind": "javascript-module",
38
+ "path": "src/styles.ts",
39
+ "declarations": [
40
+ {
41
+ "kind": "variable",
42
+ "name": "styles",
43
+ "default": "css` :host { display: block; font-size: var(--uibit-table-font-size, var(--uibit-font-size-sm, calc(0.875rem * var(--uibit-font-scale-factor, 1)))); font-family: var(--uibit-table-font-family, inherit); color: var(--uibit-table-color, var(--uibit-text-primary, #111827)); --uibit-table-bg: var(--uibit-bg-surface, #ffffff); --uibit-table-border-color: var(--uibit-border-color, #e5e7eb); --uibit-table-head-bg: var(--uibit-bg-subtle, #f9fafb); --uibit-table-head-color: var(--uibit-text-muted, #6b7280); --uibit-table-hover-bg: var(--uibit-bg-subtle, #f9fafb); --uibit-table-stripe-bg: var(--uibit-stripe-bg, #f9fafb); --uibit-table-selected-bg: var(--uibit-selected-bg, #eff6ff); --uibit-table-selected-hover-bg: var(--uibit-selected-hover-bg, #dbeafe); --uibit-table-focus-color: var(--uibit-focus-color, #6b7280); --uibit-table-radius: var(--uibit-radius-lg, 0.375rem); --uibit-table-cell-padding: var(--uibit-spacing-2, 0.5rem) var(--uibit-spacing-3, 0.75rem); } /* ── Toolbar ─────────────────────────────────────────────── */ .toolbar { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.75rem; } .search-wrap { position: relative; flex: 1 1 12rem; } .search-icon { position: absolute; left: 0.625rem; top: 50%; transform: translateY(-50%); width: 0.875rem; height: 0.875rem; color: var(--uibit-text-muted, #9ca3af); pointer-events: none; } .search { width: 100%; padding: 0.375rem 0.625rem 0.375rem 2rem; border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: var(--uibit-table-radius, 0.375rem); font: inherit; font-size: var(--uibit-font-size-xs, 0.8125rem); background: var(--uibit-table-bg, #ffffff); color: inherit; outline: none; transition: border-color 0.15s; } .search:focus { border-color: var(--uibit-table-focus-color, #6b7280); } .search::placeholder { color: var(--uibit-text-muted, #9ca3af); } .controls { display: flex; align-items: center; gap: 0.375rem; flex-shrink: 0; flex-wrap: wrap; } .toolbar-label { font-size: var(--uibit-font-size-xs, 0.75rem); color: var(--uibit-text-muted, #6b7280); white-space: nowrap; } .ctrl-select { padding: 0.3rem 0.5rem; border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: var(--uibit-table-radius, 0.375rem); font: inherit; font-size: var(--uibit-font-size-xs, 0.8125rem); background: var(--uibit-table-bg, #ffffff); color: inherit; cursor: pointer; outline: none; } .ctrl-select:focus { border-color: var(--uibit-table-focus-color, #6b7280); } .ctrl-btn { padding: 0.35rem 0.75rem; border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: var(--uibit-table-radius, 0.375rem); font: inherit; font-size: var(--uibit-font-size-xs, 0.8125rem); background: var(--uibit-table-bg, #ffffff); color: inherit; cursor: pointer; white-space: nowrap; transition: background 0.12s, border-color 0.12s, opacity 0.1s ease, box-shadow 0.1s ease; display: inline-flex; align-items: center; gap: 0.3rem; } .ctrl-btn:hover { background: var(--uibit-table-hover-bg, #f9fafb); border-color: var(--uibit-table-border-color, #d1d5db); } .ctrl-btn:active { box-shadow: inset 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.1); opacity: 0.8; } .ctrl-btn:focus-visible { outline: 0.125rem solid var(--uibit-table-focus-color, currentColor); outline-offset: 0.125rem; } .ctrl-btn .chevron { font-size: 0.625rem; opacity: 0.6; } /* ── Column menu ─────────────────────────────────────────── */ .col-menu-wrap { position: relative; } .col-dropdown { position: absolute; right: 0; top: calc(100% + 0.25rem); z-index: 20; background: var(--uibit-table-bg, #ffffff); border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: var(--uibit-table-radius, 0.375rem); padding: 0.375rem; min-width: 10rem; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.08), 0 2px 4px -2px rgba(0,0,0,0.06); } .col-dropdown-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.3rem 0.5rem; border-radius: 0.25rem; cursor: pointer; font-size: var(--uibit-font-size-xs, 0.8125rem); white-space: nowrap; user-select: none; } .col-dropdown-item:hover { background: var(--uibit-bg-subtle, #f3f4f6); } .col-dropdown-item input[type=\"checkbox\"] { width: 0.875rem; height: 0.875rem; cursor: pointer; flex-shrink: 0; margin: 0; accent-color: var(--uibit-focus-color, #111827); } /* Consolidated Options dropdown styles */ .options-dropdown { min-width: 12rem; } .dropdown-section-title { font-size: var(--uibit-font-size-xs, 0.6875rem); font-weight: var(--uibit-font-weight-bold, 700); text-transform: uppercase; letter-spacing: var(--uibit-letter-spacing-wide, 0.05em); color: var(--uibit-text-muted, #6b7280); padding: 0.375rem 0.5rem 0.25rem; } .dropdown-divider { height: 1px; background: var(--uibit-table-border-color, #e5e7eb); margin: 0.375rem 0; } .dropdown-btn { display: block; width: 100%; text-align: left; background: none; border: none; padding: 0.375rem 0.5rem; font: inherit; font-size: var(--uibit-font-size-xs, 0.8125rem); color: var(--uibit-text-primary, #111827); border-radius: 0.25rem; cursor: pointer; } .dropdown-btn:hover { background: var(--uibit-bg-subtle, #f3f4f6); } .dropdown-btn-danger { color: #b91c1c; } .dropdown-btn-danger:hover { background: #fef2f2; } /* ── Selection banner ────────────────────────────────────── */ .sel-banner { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; padding: 0.5rem 0.875rem; margin-bottom: 0.5rem; background: var(--uibit-selected-bg, #eff6ff); border: 1px solid var(--uibit-border-color, #bfdbfe); border-radius: var(--uibit-table-radius, 0.375rem); font-size: var(--uibit-font-size-xs, 0.8125rem); color: var(--uibit-text-primary, #1e40af); } .sel-banner-count { font-weight: 600; } .sel-banner-btn { background: none; border: none; padding: 0; font: inherit; font-size: var(--uibit-font-size-xs, 0.8125rem); color: var(--uibit-focus-color, #1d4ed8); cursor: pointer; text-decoration: underline; text-underline-offset: 0.15em; } .sel-banner-btn:focus-visible { outline: 0.125rem solid var(--uibit-focus-color, currentColor); outline-offset: 0.125rem; border-radius: 0.125rem; } .sel-banner-sep { color: var(--uibit-border-color, #93c5fd); } /* ── Table wrapper ───────────────────────────────────────── */ .table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: var(--uibit-table-radius, 0.375rem); } :host([sticky-header]) .table-wrap { max-height: var(--uibit-table-max-height, 24rem); overflow-y: auto; } table { width: 100%; border-collapse: collapse; table-layout: auto; } /* ── Head ────────────────────────────────────────────────── */ thead { background: var(--uibit-table-head-bg, #f9fafb); } :host([sticky-header]) thead th { position: sticky; top: 0; z-index: 2; background: var(--uibit-table-head-bg, #f9fafb); } th { padding: var(--uibit-table-cell-padding, 0.5rem 0.75rem); text-align: left; font-weight: var(--uibit-font-weight-semibold, 600); font-size: var(--uibit-font-size-xs, 0.75rem); text-transform: uppercase; letter-spacing: var(--uibit-letter-spacing-wide, 0.04em); color: var(--uibit-table-head-color, #6b7280); border-bottom: 1px solid var(--uibit-table-border-color, #e5e7eb); user-select: none; position: relative; white-space: nowrap; } th.sortable { cursor: pointer; } th.sortable:hover { color: var(--uibit-table-color, #111827); } .th-inner { display: inline-flex; align-items: center; gap: 0.25rem; } /* ── Sort icon ───────────────────────────────────────────── */ .sort-icon { width: 0.75rem; height: 0.75rem; flex-shrink: 0; opacity: 0.35; } th.sort-asc .sort-icon, th.sort-desc .sort-icon { opacity: 1; } .sort-badge { display: inline-flex; align-items: center; justify-content: center; width: 1rem; width: 1rem; height: 1rem; border-radius: 50%; background: var(--uibit-focus-color, #374151); color: var(--uibit-bg-surface, #fff); font-size: var(--uibit-font-size-xs, 0.625rem); font-weight: var(--uibit-font-weight-bold, 700); line-height: 1; flex-shrink: 0; } /* ── Resize handle ───────────────────────────────────────── */ .resize-handle { position: absolute; right: 0; top: 0; bottom: 0; width: 5px; cursor: col-resize; z-index: 1; } .resize-handle::after { content: ''; position: absolute; right: 1px; top: 20%; bottom: 20%; width: 2px; background: transparent; border-radius: 1px; transition: background 0.15s; } .resize-handle:hover::after, .resizing .resize-handle::after { background: var(--uibit-table-focus-color, #6b7280); } /* ── Filter row ──────────────────────────────────────────── */ .filter-row th { padding: 0.3rem 0.5rem; background: var(--uibit-table-head-bg, #f9fafb); border-bottom: 1px solid var(--uibit-table-border-color, #e5e7eb); text-transform: none; letter-spacing: 0; font-weight: 400; } :host([sticky-header]) .filter-row th { position: sticky; top: var(--uibit-table-header-height, 2.5rem); z-index: 2; background: var(--uibit-table-head-bg, #f9fafb); } .filter-input { width: 100%; padding: 0.2rem 0.375rem; border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: 0.25rem; font: inherit; font-size: var(--uibit-font-size-xs, 0.75rem); background: var(--uibit-table-bg, #ffffff); color: inherit; outline: none; min-width: 0; box-sizing: border-box; } .filter-input:focus { border-color: var(--uibit-table-focus-color, #6b7280); } .filter-input::placeholder { color: var(--uibit-text-muted, #d1d5db); } .filter-input.active { border-color: var(--uibit-table-focus-color, #6b7280); background: var(--uibit-bg-subtle, #fafafa); } /* ── Checkbox column ─────────────────────────────────────── */ .col-check { width: 2.75rem; text-align: center; padding-left: 0.875rem; padding-right: 0; } td.col-check { padding-left: 0.875rem; padding-right: 0; } input[type=\"checkbox\"] { width: 0.875rem; height: 0.875rem; cursor: pointer; margin: 0; vertical-align: middle; accent-color: var(--uibit-focus-color, #111827); } /* ── Body rows ───────────────────────────────────────────── */ td { padding: var(--uibit-table-cell-padding, 0.5rem 0.75rem); border-bottom: 1px solid var(--uibit-table-border-color, #e5e7eb); color: var(--uibit-table-color, #111827); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 20rem; } tr:last-child td { border-bottom: none; } tbody tr { transition: background 0.1s; } tbody tr:hover { background: var(--uibit-table-hover-bg, #f9fafb); } tbody tr.row-selected td { background: var(--uibit-table-selected-bg, #eff6ff); } tbody tr.row-selected:hover td { background: #dbeafe; } :host([striped]) tbody tr:nth-child(even):not(.row-selected) td { background: var(--uibit-table-stripe-bg, #f9fafb); } /* ── Misc ────────────────────────────────────────────────── */ .empty { padding: 2.5rem; text-align: center; color: var(--uibit-text-muted, #9ca3af); font-size: var(--uibit-font-size-sm, 0.875rem); } .highlight { background: var(--uibit-highlight-bg, #fef9c3); color: var(--uibit-highlight-text, #000000); border-radius: 0.125rem; padding: 0 0.1em; } .filter-highlight { background: var(--uibit-filter-highlight-bg, #dcfce7); color: var(--uibit-filter-highlight-text, #000000); border-radius: 0.125rem; padding: 0 0.1em; } /* ── Footer ──────────────────────────────────────────────── */ .footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; font-size: var(--uibit-font-size-xs, 0.75rem); color: #6b7280; } .footer-left { display: flex; align-items: center; gap: 0.5rem; } .footer-sep { color: var(--uibit-table-border-color, #e5e7eb); } .footer-label { color: var(--uibit-text-muted, #6b7280); } .footer-select { padding: 0.15rem 0.35rem; font-size: var(--uibit-font-size-xs, 0.75rem); } .pagination { display: flex; align-items: center; gap: 0.25rem; } .page-btn { min-width: 1.75rem; height: 1.75rem; padding: 0 0.375rem; border: 1px solid var(--uibit-table-border-color, #e5e7eb); border-radius: 0.25rem; font: inherit; font-size: var(--uibit-font-size-xs, 0.75rem); background: var(--uibit-table-bg, #ffffff); color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background 0.12s, box-shadow 0.1s ease, opacity 0.1s ease; } .page-btn:hover:not(:disabled) { background: var(--uibit-bg-subtle, #f3f4f6); } .page-btn:active:not(:disabled) { box-shadow: inset 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.12); opacity: 0.8; } .page-btn.active { background: var(--uibit-focus-color, #111827); color: var(--uibit-bg-surface, #fff); border-color: var(--uibit-focus-color, #111827); font-weight: 600; } .page-btn:disabled { opacity: 0.4; cursor: default; } .page-btn:focus-visible { outline: 0.125rem solid var(--uibit-focus-color, currentColor); outline-offset: 0.125rem; } /* Loading Spinner */ .loading-spinner { font-size: var(--uibit-font-size-xs, 0.75rem); color: var(--uibit-text-muted, #6b7280); display: inline-flex; align-items: center; gap: 0.375rem; } .loading-spinner::before { content: ''; width: 0.75rem; height: 0.75rem; border: 1.5px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: uibit-spin 0.6s linear infinite; } @keyframes uibit-spin { to { transform: rotate(360deg); } } slot { display: none; } `"
44
+ }
45
+ ],
46
+ "exports": [
47
+ {
48
+ "kind": "js",
49
+ "name": "styles",
50
+ "declaration": {
51
+ "name": "styles",
52
+ "module": "src/styles.ts"
53
+ }
54
+ }
55
+ ]
56
+ },
57
+ {
58
+ "kind": "javascript-module",
59
+ "path": "src/table.ts",
60
+ "declarations": [
61
+ {
62
+ "kind": "class",
63
+ "description": "",
64
+ "name": "Table",
65
+ "members": [
66
+ {
67
+ "kind": "field",
68
+ "name": "searchable",
69
+ "type": {
70
+ "text": "boolean"
71
+ },
72
+ "default": "true",
73
+ "description": "Show the global search input.",
74
+ "attribute": "searchable"
75
+ },
76
+ {
77
+ "kind": "field",
78
+ "name": "paginated",
79
+ "type": {
80
+ "text": "boolean"
81
+ },
82
+ "default": "true",
83
+ "description": "Show pagination controls and per-page selector.",
84
+ "attribute": "paginated"
85
+ },
86
+ {
87
+ "kind": "field",
88
+ "name": "exportable",
89
+ "type": {
90
+ "text": "boolean"
91
+ },
92
+ "default": "true",
93
+ "description": "Show CSV export button.",
94
+ "attribute": "exportable"
95
+ },
96
+ {
97
+ "kind": "field",
98
+ "name": "selectable",
99
+ "type": {
100
+ "text": "boolean"
101
+ },
102
+ "default": "false",
103
+ "description": "Enable row-selection checkboxes.",
104
+ "attribute": "selectable"
105
+ },
106
+ {
107
+ "kind": "field",
108
+ "name": "filterable",
109
+ "type": {
110
+ "text": "boolean"
111
+ },
112
+ "default": "false",
113
+ "description": "Show per-column filter row below the header.",
114
+ "attribute": "filterable"
115
+ },
116
+ {
117
+ "kind": "field",
118
+ "name": "resizable",
119
+ "type": {
120
+ "text": "boolean"
121
+ },
122
+ "default": "false",
123
+ "description": "Enable drag-to-resize column handles.",
124
+ "attribute": "resizable"
125
+ },
126
+ {
127
+ "kind": "field",
128
+ "name": "columnChooser",
129
+ "type": {
130
+ "text": "boolean"
131
+ },
132
+ "default": "false",
133
+ "description": "Show column visibility toggle in the toolbar.",
134
+ "attribute": "column-chooser"
135
+ },
136
+ {
137
+ "kind": "field",
138
+ "name": "striped",
139
+ "type": {
140
+ "text": "boolean"
141
+ },
142
+ "default": "false",
143
+ "description": "Alternating row background.",
144
+ "attribute": "striped",
145
+ "reflects": true
146
+ },
147
+ {
148
+ "kind": "field",
149
+ "name": "stickyHeader",
150
+ "type": {
151
+ "text": "boolean"
152
+ },
153
+ "default": "false",
154
+ "description": "Stick the header row when the table overflows vertically.",
155
+ "attribute": "sticky-header",
156
+ "reflects": true
157
+ },
158
+ {
159
+ "kind": "field",
160
+ "name": "pageSizes",
161
+ "type": {
162
+ "text": "string"
163
+ },
164
+ "default": "'10,25,50,100'",
165
+ "description": "Comma-separated rows-per-page options.",
166
+ "attribute": "page-sizes"
167
+ },
168
+ {
169
+ "kind": "field",
170
+ "name": "controlsLayout",
171
+ "type": {
172
+ "text": "'inline' | 'menu'"
173
+ },
174
+ "default": "'inline'",
175
+ "description": "Controls layout: 'inline' or consolidated 'menu' under a dropdown.",
176
+ "attribute": "controls-layout"
177
+ },
178
+ {
179
+ "kind": "field",
180
+ "name": "infiniteScroll",
181
+ "type": {
182
+ "text": "boolean"
183
+ },
184
+ "default": "false",
185
+ "description": "Enable infinite scroll behavior instead of page pagination.",
186
+ "attribute": "infinite-scroll"
187
+ },
188
+ {
189
+ "kind": "field",
190
+ "name": "loading",
191
+ "type": {
192
+ "text": "boolean"
193
+ },
194
+ "default": "false",
195
+ "description": "Indicates the table is loading more items in infinite scroll mode.",
196
+ "attribute": "loading"
197
+ },
198
+ {
199
+ "kind": "field",
200
+ "name": "_cols",
201
+ "type": {
202
+ "text": "Col[]"
203
+ },
204
+ "privacy": "private",
205
+ "default": "[]"
206
+ },
207
+ {
208
+ "kind": "field",
209
+ "name": "_rows",
210
+ "type": {
211
+ "text": "string[][]"
212
+ },
213
+ "privacy": "private",
214
+ "default": "[]"
215
+ },
216
+ {
217
+ "kind": "field",
218
+ "name": "_query",
219
+ "type": {
220
+ "text": "string"
221
+ },
222
+ "privacy": "private",
223
+ "default": "''"
224
+ },
225
+ {
226
+ "kind": "field",
227
+ "name": "_sorts",
228
+ "type": {
229
+ "text": "SortEntry[]"
230
+ },
231
+ "privacy": "private",
232
+ "default": "[]"
233
+ },
234
+ {
235
+ "kind": "field",
236
+ "name": "_page",
237
+ "type": {
238
+ "text": "number"
239
+ },
240
+ "privacy": "private",
241
+ "default": "1"
242
+ },
243
+ {
244
+ "kind": "field",
245
+ "name": "_perPage",
246
+ "type": {
247
+ "text": "number"
248
+ },
249
+ "privacy": "private",
250
+ "default": "10"
251
+ },
252
+ {
253
+ "kind": "field",
254
+ "name": "_selected",
255
+ "privacy": "private",
256
+ "default": "new Set<number>()"
257
+ },
258
+ {
259
+ "kind": "field",
260
+ "name": "_hiddenCols",
261
+ "privacy": "private",
262
+ "default": "new Set<string>()"
263
+ },
264
+ {
265
+ "kind": "field",
266
+ "name": "_colFilters",
267
+ "privacy": "private",
268
+ "default": "new Map<string, string>()"
269
+ },
270
+ {
271
+ "kind": "field",
272
+ "name": "_colMenuOpen",
273
+ "type": {
274
+ "text": "boolean"
275
+ },
276
+ "privacy": "private",
277
+ "default": "false"
278
+ },
279
+ {
280
+ "kind": "field",
281
+ "name": "_optionsMenuOpen",
282
+ "type": {
283
+ "text": "boolean"
284
+ },
285
+ "privacy": "private",
286
+ "default": "false"
287
+ },
288
+ {
289
+ "kind": "field",
290
+ "name": "_allFilteredSelected",
291
+ "type": {
292
+ "text": "boolean"
293
+ },
294
+ "privacy": "private",
295
+ "default": "false"
296
+ },
297
+ {
298
+ "kind": "field",
299
+ "name": "_searchPlaceholderText",
300
+ "type": {
301
+ "text": "string"
302
+ },
303
+ "privacy": "private",
304
+ "default": "''"
305
+ },
306
+ {
307
+ "kind": "field",
308
+ "name": "_colWidths",
309
+ "privacy": "private",
310
+ "default": "new Map<string, number>()"
311
+ },
312
+ {
313
+ "kind": "field",
314
+ "name": "_resizing",
315
+ "type": {
316
+ "text": "{ key: string; startX: number; startW: number } | null"
317
+ },
318
+ "privacy": "private",
319
+ "default": "null"
320
+ },
321
+ {
322
+ "kind": "field",
323
+ "name": "_rafId",
324
+ "type": {
325
+ "text": "number"
326
+ },
327
+ "privacy": "private",
328
+ "default": "0"
329
+ },
330
+ {
331
+ "kind": "field",
332
+ "name": "_closeMenuHandler",
333
+ "type": {
334
+ "text": "(e: MouseEvent) => void | undefined"
335
+ },
336
+ "privacy": "private"
337
+ },
338
+ {
339
+ "kind": "field",
340
+ "name": "_escMenuHandler",
341
+ "type": {
342
+ "text": "(e: KeyboardEvent) => void | undefined"
343
+ },
344
+ "privacy": "private"
345
+ },
346
+ {
347
+ "kind": "field",
348
+ "name": "_pageSizeOptions",
349
+ "type": {
350
+ "text": "number[]"
351
+ },
352
+ "privacy": "private",
353
+ "readonly": true
354
+ },
355
+ {
356
+ "kind": "field",
357
+ "name": "_visibleCols",
358
+ "type": {
359
+ "text": "Col[]"
360
+ },
361
+ "privacy": "private",
362
+ "readonly": true
363
+ },
364
+ {
365
+ "kind": "field",
366
+ "name": "_indexed",
367
+ "type": {
368
+ "text": "IndexedRow[]"
369
+ },
370
+ "privacy": "private",
371
+ "readonly": true
372
+ },
373
+ {
374
+ "kind": "field",
375
+ "name": "_colFiltered",
376
+ "type": {
377
+ "text": "IndexedRow[]"
378
+ },
379
+ "privacy": "private",
380
+ "readonly": true
381
+ },
382
+ {
383
+ "kind": "field",
384
+ "name": "_searched",
385
+ "type": {
386
+ "text": "IndexedRow[]"
387
+ },
388
+ "privacy": "private",
389
+ "readonly": true
390
+ },
391
+ {
392
+ "kind": "field",
393
+ "name": "_sortedRows",
394
+ "type": {
395
+ "text": "IndexedRow[]"
396
+ },
397
+ "privacy": "private",
398
+ "readonly": true
399
+ },
400
+ {
401
+ "kind": "field",
402
+ "name": "_pageRows",
403
+ "type": {
404
+ "text": "IndexedRow[]"
405
+ },
406
+ "privacy": "private",
407
+ "readonly": true
408
+ },
409
+ {
410
+ "kind": "field",
411
+ "name": "_totalPages",
412
+ "type": {
413
+ "text": "number"
414
+ },
415
+ "privacy": "private",
416
+ "readonly": true
417
+ },
418
+ {
419
+ "kind": "field",
420
+ "name": "_allPageSelected",
421
+ "type": {
422
+ "text": "boolean"
423
+ },
424
+ "privacy": "private",
425
+ "readonly": true
426
+ },
427
+ {
428
+ "kind": "field",
429
+ "name": "_somePageSelected",
430
+ "type": {
431
+ "text": "boolean"
432
+ },
433
+ "privacy": "private",
434
+ "readonly": true
435
+ },
436
+ {
437
+ "kind": "field",
438
+ "name": "_resizeHandler",
439
+ "privacy": "private"
440
+ },
441
+ {
442
+ "kind": "method",
443
+ "name": "_updateHeaderHeight",
444
+ "privacy": "private"
445
+ },
446
+ {
447
+ "kind": "method",
448
+ "name": "_onSlotChange",
449
+ "privacy": "private",
450
+ "parameters": [
451
+ {
452
+ "name": "e",
453
+ "type": {
454
+ "text": "Event"
455
+ }
456
+ }
457
+ ]
458
+ },
459
+ {
460
+ "kind": "method",
461
+ "name": "_onSearchPlaceholderChange",
462
+ "privacy": "private",
463
+ "parameters": [
464
+ {
465
+ "name": "e",
466
+ "type": {
467
+ "text": "Event"
468
+ }
469
+ }
470
+ ]
471
+ },
472
+ {
473
+ "kind": "method",
474
+ "name": "_onSearch",
475
+ "privacy": "private",
476
+ "parameters": [
477
+ {
478
+ "name": "e",
479
+ "type": {
480
+ "text": "Event"
481
+ }
482
+ }
483
+ ]
484
+ },
485
+ {
486
+ "kind": "method",
487
+ "name": "_onSort",
488
+ "privacy": "private",
489
+ "parameters": [
490
+ {
491
+ "name": "col",
492
+ "type": {
493
+ "text": "Col"
494
+ }
495
+ },
496
+ {
497
+ "name": "e",
498
+ "type": {
499
+ "text": "MouseEvent"
500
+ }
501
+ }
502
+ ]
503
+ },
504
+ {
505
+ "kind": "method",
506
+ "name": "_onPerPage",
507
+ "privacy": "private",
508
+ "parameters": [
509
+ {
510
+ "name": "e",
511
+ "type": {
512
+ "text": "Event"
513
+ }
514
+ }
515
+ ]
516
+ },
517
+ {
518
+ "kind": "method",
519
+ "name": "_onColFilter",
520
+ "privacy": "private",
521
+ "parameters": [
522
+ {
523
+ "name": "col",
524
+ "type": {
525
+ "text": "Col"
526
+ }
527
+ },
528
+ {
529
+ "name": "e",
530
+ "type": {
531
+ "text": "Event"
532
+ }
533
+ }
534
+ ]
535
+ },
536
+ {
537
+ "kind": "method",
538
+ "name": "_onSelectRow",
539
+ "privacy": "private",
540
+ "parameters": [
541
+ {
542
+ "name": "i",
543
+ "type": {
544
+ "text": "number"
545
+ }
546
+ }
547
+ ]
548
+ },
549
+ {
550
+ "kind": "method",
551
+ "name": "_onSelectAllPage",
552
+ "privacy": "private",
553
+ "parameters": [
554
+ {
555
+ "name": "checked",
556
+ "type": {
557
+ "text": "boolean"
558
+ }
559
+ }
560
+ ]
561
+ },
562
+ {
563
+ "kind": "method",
564
+ "name": "_onTableClick",
565
+ "privacy": "private",
566
+ "parameters": [
567
+ {
568
+ "name": "e",
569
+ "type": {
570
+ "text": "Event"
571
+ }
572
+ }
573
+ ]
574
+ },
575
+ {
576
+ "kind": "method",
577
+ "name": "_onTableChange",
578
+ "privacy": "private",
579
+ "parameters": [
580
+ {
581
+ "name": "e",
582
+ "type": {
583
+ "text": "Event"
584
+ }
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "kind": "method",
590
+ "name": "_onSelectAllFiltered",
591
+ "privacy": "private"
592
+ },
593
+ {
594
+ "kind": "method",
595
+ "name": "_clearSelection",
596
+ "privacy": "private"
597
+ },
598
+ {
599
+ "kind": "method",
600
+ "name": "_emitSelect",
601
+ "privacy": "private"
602
+ },
603
+ {
604
+ "kind": "method",
605
+ "name": "_onToggleCol",
606
+ "privacy": "private",
607
+ "parameters": [
608
+ {
609
+ "name": "col",
610
+ "type": {
611
+ "text": "Col"
612
+ }
613
+ }
614
+ ]
615
+ },
616
+ {
617
+ "kind": "method",
618
+ "name": "_openColMenu",
619
+ "privacy": "private"
620
+ },
621
+ {
622
+ "kind": "method",
623
+ "name": "_openOptionsMenu",
624
+ "privacy": "private"
625
+ },
626
+ {
627
+ "kind": "method",
628
+ "name": "_removeMenuListener",
629
+ "privacy": "private"
630
+ },
631
+ {
632
+ "kind": "method",
633
+ "name": "_onScroll",
634
+ "privacy": "private",
635
+ "parameters": [
636
+ {
637
+ "name": "e",
638
+ "type": {
639
+ "text": "Event"
640
+ }
641
+ }
642
+ ]
643
+ },
644
+ {
645
+ "kind": "method",
646
+ "name": "_onResizeStart",
647
+ "privacy": "private",
648
+ "parameters": [
649
+ {
650
+ "name": "e",
651
+ "type": {
652
+ "text": "MouseEvent"
653
+ }
654
+ },
655
+ {
656
+ "name": "col",
657
+ "type": {
658
+ "text": "Col"
659
+ }
660
+ }
661
+ ]
662
+ },
663
+ {
664
+ "kind": "field",
665
+ "name": "_cleanupResizeListeners",
666
+ "type": {
667
+ "text": "() => void"
668
+ },
669
+ "privacy": "private"
670
+ },
671
+ {
672
+ "kind": "method",
673
+ "name": "_exportCsv",
674
+ "privacy": "private"
675
+ },
676
+ {
677
+ "kind": "method",
678
+ "name": "_highlight",
679
+ "privacy": "private",
680
+ "return": {
681
+ "type": {
682
+ "text": "unknown"
683
+ }
684
+ },
685
+ "parameters": [
686
+ {
687
+ "name": "text",
688
+ "type": {
689
+ "text": "string"
690
+ }
691
+ },
692
+ {
693
+ "name": "colKey",
694
+ "type": {
695
+ "text": "string"
696
+ }
697
+ }
698
+ ]
699
+ },
700
+ {
701
+ "kind": "method",
702
+ "name": "_applyHighlight",
703
+ "privacy": "private",
704
+ "return": {
705
+ "type": {
706
+ "text": "TemplateResult | string"
707
+ }
708
+ },
709
+ "parameters": [
710
+ {
711
+ "name": "text",
712
+ "type": {
713
+ "text": "string"
714
+ }
715
+ },
716
+ {
717
+ "name": "term",
718
+ "type": {
719
+ "text": "string"
720
+ }
721
+ },
722
+ {
723
+ "name": "cls",
724
+ "type": {
725
+ "text": "string"
726
+ }
727
+ }
728
+ ]
729
+ },
730
+ {
731
+ "kind": "method",
732
+ "name": "_colStyle",
733
+ "privacy": "private",
734
+ "return": {
735
+ "type": {
736
+ "text": "string"
737
+ }
738
+ },
739
+ "parameters": [
740
+ {
741
+ "name": "col",
742
+ "type": {
743
+ "text": "Col"
744
+ }
745
+ }
746
+ ]
747
+ },
748
+ {
749
+ "kind": "method",
750
+ "name": "_renderSortIcon",
751
+ "privacy": "private",
752
+ "return": {
753
+ "type": {
754
+ "text": "TemplateResult | typeof nothing"
755
+ }
756
+ },
757
+ "parameters": [
758
+ {
759
+ "name": "col",
760
+ "type": {
761
+ "text": "Col"
762
+ }
763
+ }
764
+ ]
765
+ },
766
+ {
767
+ "kind": "method",
768
+ "name": "_renderPagination",
769
+ "privacy": "private",
770
+ "return": {
771
+ "type": {
772
+ "text": "TemplateResult | typeof nothing"
773
+ }
774
+ }
775
+ },
776
+ {
777
+ "kind": "method",
778
+ "name": "_renderSelectionBanner",
779
+ "privacy": "private",
780
+ "return": {
781
+ "type": {
782
+ "text": "TemplateResult | typeof nothing"
783
+ }
784
+ }
785
+ },
786
+ {
787
+ "kind": "method",
788
+ "name": "_renderColMenu",
789
+ "privacy": "private",
790
+ "return": {
791
+ "type": {
792
+ "text": "TemplateResult | typeof nothing"
793
+ }
794
+ }
795
+ },
796
+ {
797
+ "kind": "method",
798
+ "name": "_renderOptionsMenu",
799
+ "privacy": "private",
800
+ "return": {
801
+ "type": {
802
+ "text": "TemplateResult | typeof nothing"
803
+ }
804
+ }
805
+ },
806
+ {
807
+ "kind": "method",
808
+ "name": "_renderFilterRow",
809
+ "privacy": "private",
810
+ "return": {
811
+ "type": {
812
+ "text": "TemplateResult | typeof nothing"
813
+ }
814
+ }
815
+ }
816
+ ],
817
+ "attributes": [
818
+ {
819
+ "name": "searchable",
820
+ "type": {
821
+ "text": "boolean"
822
+ },
823
+ "default": "true",
824
+ "description": "Show the global search input.",
825
+ "fieldName": "searchable"
826
+ },
827
+ {
828
+ "name": "paginated",
829
+ "type": {
830
+ "text": "boolean"
831
+ },
832
+ "default": "true",
833
+ "description": "Show pagination controls and per-page selector.",
834
+ "fieldName": "paginated"
835
+ },
836
+ {
837
+ "name": "exportable",
838
+ "type": {
839
+ "text": "boolean"
840
+ },
841
+ "default": "true",
842
+ "description": "Show CSV export button.",
843
+ "fieldName": "exportable"
844
+ },
845
+ {
846
+ "name": "selectable",
847
+ "type": {
848
+ "text": "boolean"
849
+ },
850
+ "default": "false",
851
+ "description": "Enable row-selection checkboxes.",
852
+ "fieldName": "selectable"
853
+ },
854
+ {
855
+ "name": "filterable",
856
+ "type": {
857
+ "text": "boolean"
858
+ },
859
+ "default": "false",
860
+ "description": "Show per-column filter row below the header.",
861
+ "fieldName": "filterable"
862
+ },
863
+ {
864
+ "name": "resizable",
865
+ "type": {
866
+ "text": "boolean"
867
+ },
868
+ "default": "false",
869
+ "description": "Enable drag-to-resize column handles.",
870
+ "fieldName": "resizable"
871
+ },
872
+ {
873
+ "name": "column-chooser",
874
+ "type": {
875
+ "text": "boolean"
876
+ },
877
+ "default": "false",
878
+ "description": "Show column visibility toggle in the toolbar.",
879
+ "fieldName": "columnChooser"
880
+ },
881
+ {
882
+ "name": "striped",
883
+ "type": {
884
+ "text": "boolean"
885
+ },
886
+ "default": "false",
887
+ "description": "Alternating row background.",
888
+ "fieldName": "striped"
889
+ },
890
+ {
891
+ "name": "sticky-header",
892
+ "type": {
893
+ "text": "boolean"
894
+ },
895
+ "default": "false",
896
+ "description": "Stick the header row when the table overflows vertically.",
897
+ "fieldName": "stickyHeader"
898
+ },
899
+ {
900
+ "name": "page-sizes",
901
+ "type": {
902
+ "text": "string"
903
+ },
904
+ "default": "'10,25,50,100'",
905
+ "description": "Comma-separated rows-per-page options.",
906
+ "fieldName": "pageSizes"
907
+ },
908
+ {
909
+ "name": "controls-layout",
910
+ "type": {
911
+ "text": "'inline' | 'menu'"
912
+ },
913
+ "default": "'inline'",
914
+ "description": "Controls layout: 'inline' or consolidated 'menu' under a dropdown.",
915
+ "fieldName": "controlsLayout"
916
+ },
917
+ {
918
+ "name": "infinite-scroll",
919
+ "type": {
920
+ "text": "boolean"
921
+ },
922
+ "default": "false",
923
+ "description": "Enable infinite scroll behavior instead of page pagination.",
924
+ "fieldName": "infiniteScroll"
925
+ },
926
+ {
927
+ "name": "loading",
928
+ "type": {
929
+ "text": "boolean"
930
+ },
931
+ "default": "false",
932
+ "description": "Indicates the table is loading more items in infinite scroll mode.",
933
+ "fieldName": "loading"
934
+ }
935
+ ],
936
+ "superclass": {
937
+ "name": "UIBitElement",
938
+ "package": "@uibit/core"
939
+ },
940
+ "tagName": "uibit-table",
941
+ "customElement": true
942
+ }
943
+ ],
944
+ "exports": [
945
+ {
946
+ "kind": "js",
947
+ "name": "Table",
948
+ "declaration": {
949
+ "name": "Table",
950
+ "module": "src/table.ts"
951
+ }
952
+ },
953
+ {
954
+ "kind": "custom-element-definition",
955
+ "name": "uibit-table",
956
+ "declaration": {
957
+ "name": "Table",
958
+ "module": "src/table.ts"
959
+ }
960
+ },
961
+ {
962
+ "kind": "js",
963
+ "name": "default",
964
+ "declaration": {
965
+ "name": "Table",
966
+ "module": "src/table.ts"
967
+ }
968
+ }
969
+ ]
970
+ },
971
+ {
972
+ "kind": "javascript-module",
973
+ "path": "src/types.ts",
974
+ "declarations": [],
975
+ "exports": []
976
+ }
977
+ ]
978
+ }