@invopop/popui 0.0.32 → 0.0.33
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.
- package/dist/BaseCounter.svelte +1 -1
- package/dist/BaseTable.svelte +40 -28
- package/dist/BaseTableCell.svelte +5 -5
- package/dist/BaseTableHeader.svelte +6 -5
- package/dist/BaseTableHeader.svelte.d.ts +1 -0
- package/dist/BaseTableRow.svelte +1 -1
- package/dist/InputCheckbox.svelte +1 -1
- package/dist/TagStatus.svelte +1 -1
- package/package.json +1 -1
package/dist/BaseCounter.svelte
CHANGED
|
@@ -10,7 +10,7 @@ $:
|
|
|
10
10
|
</script>
|
|
11
11
|
|
|
12
12
|
<div
|
|
13
|
-
class="{styles} inline-flex items-center justify-center rounded p-
|
|
13
|
+
class="{styles} inline-flex items-center justify-center rounded p-1 text-neutral-500 text-sm font-medium h-4 min-w-[16px] tracking-wide tabular-nums slashed-zero lining-nums box-border"
|
|
14
14
|
>
|
|
15
15
|
{content}
|
|
16
16
|
</div>
|
package/dist/BaseTable.svelte
CHANGED
|
@@ -198,37 +198,40 @@ function handleKeydown(event) {
|
|
|
198
198
|
<div class="w-full font-sans">
|
|
199
199
|
<table class="hidden md:table w-full">
|
|
200
200
|
<thead>
|
|
201
|
-
<tr class="
|
|
201
|
+
<tr class="relative">
|
|
202
202
|
{#if selectable}
|
|
203
203
|
<!-- if table is selectable we need to add an extra header with a checkbox -->
|
|
204
|
-
<th scope="col" class="bg-white sticky top-0 z-10
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
<
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
204
|
+
<th scope="col" class="bg-white sticky top-0 z-10 p-0">
|
|
205
|
+
<div class="border-b border-neutral-100">
|
|
206
|
+
{#if !hideSelectAll}
|
|
207
|
+
<button
|
|
208
|
+
class="px-5 h-[36px] flex items-center outline-none group cursor-default"
|
|
209
|
+
on:click|stopPropagation={() => {
|
|
210
|
+
toggleAllSelected(!selectedRows.length)
|
|
211
|
+
}}
|
|
212
|
+
>
|
|
213
|
+
<div class:invisible={!selectedRows.length} class="group-hover:visible">
|
|
214
|
+
<InputCheckbox
|
|
215
|
+
checked={allChecked}
|
|
216
|
+
{indeterminate}
|
|
217
|
+
on:change={(event) => {
|
|
218
|
+
toggleAllSelected(event.detail)
|
|
219
|
+
}}
|
|
220
|
+
/>
|
|
221
|
+
</div>
|
|
222
|
+
</button>
|
|
223
|
+
{/if}
|
|
224
|
+
</div>
|
|
223
225
|
</th>
|
|
224
226
|
{/if}
|
|
225
227
|
{#each fields as field, i (i)}
|
|
226
228
|
<BaseTableHeader
|
|
227
|
-
isFirst={i === 0
|
|
229
|
+
isFirst={i === 0}
|
|
228
230
|
isLast={!addExtraCell && i === fields.length - 1}
|
|
229
231
|
{sortBy}
|
|
230
232
|
{sortDirection}
|
|
231
233
|
{field}
|
|
234
|
+
{selectable}
|
|
232
235
|
on:orderBy
|
|
233
236
|
/>
|
|
234
237
|
{/each}
|
|
@@ -239,18 +242,25 @@ function handleKeydown(event) {
|
|
|
239
242
|
</tr>
|
|
240
243
|
</thead>
|
|
241
244
|
<tbody>
|
|
242
|
-
{#each groupedData as group}
|
|
245
|
+
{#each groupedData as group, i (i)}
|
|
243
246
|
{#if group.label}
|
|
244
247
|
<tr>
|
|
245
248
|
<th
|
|
246
249
|
scope="colgroup"
|
|
247
250
|
colspan={fields.length + (selectable ? 2 : 1)}
|
|
248
|
-
class="bg-
|
|
251
|
+
class="bg-white text-left text-sm font-medium text-neutral-500 sticky top-9 tracking-normal h-8"
|
|
249
252
|
>
|
|
250
|
-
<span
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
253
|
+
<span
|
|
254
|
+
class:border-t={i > 0}
|
|
255
|
+
class:pl-14={selectable}
|
|
256
|
+
class:pl-5={!selectable}
|
|
257
|
+
class="flex items-center space-x-1 box-border border-b border-neutral-100 h-8"
|
|
258
|
+
>
|
|
259
|
+
<span>{group.label}</span>
|
|
260
|
+
{#if !hideCounter}
|
|
261
|
+
<BaseCounter content={group.rows.length} />
|
|
262
|
+
{/if}
|
|
263
|
+
</span>
|
|
254
264
|
</th>
|
|
255
265
|
</tr>
|
|
256
266
|
{/if}
|
|
@@ -265,7 +275,9 @@ function handleKeydown(event) {
|
|
|
265
275
|
{selectedRows}
|
|
266
276
|
{selectedTrackedBy}
|
|
267
277
|
{selectionMode}
|
|
268
|
-
selected={
|
|
278
|
+
selected={selectable &&
|
|
279
|
+
lastSelected &&
|
|
280
|
+
row[selectedTrackedBy] === lastSelected[selectedTrackedBy]}
|
|
269
281
|
on:click={() => {
|
|
270
282
|
if (disableRowClick) return
|
|
271
283
|
|
|
@@ -17,6 +17,8 @@ export let freeWrap = false;
|
|
|
17
17
|
export let tag = "td";
|
|
18
18
|
export let selectable = false;
|
|
19
19
|
export let hasActions = false;
|
|
20
|
+
$:
|
|
21
|
+
isSelectableFirst = isFirst && selectable;
|
|
20
22
|
$:
|
|
21
23
|
cellStyles = clsx(
|
|
22
24
|
{ "tabular-nums slashed-zero lining-nums": field.monospacedNums },
|
|
@@ -25,13 +27,11 @@ $:
|
|
|
25
27
|
{ "text-neutral-800 md:text-neutral-500": !isFirst || field.grayed },
|
|
26
28
|
{ "md:text-right": field.rightAlign },
|
|
27
29
|
{ "md:w-full md:max-w-0": field.fullWidth },
|
|
28
|
-
{ "py-2 md:py-[11.25px]": badge },
|
|
29
|
-
{ "py-2 md:py-[11.75px]": !badge },
|
|
30
30
|
{ "pl-5": isFirst && !selectable },
|
|
31
|
-
{ "pl-3": !isFirst
|
|
31
|
+
{ "pl-3": !isFirst && !isSelectableFirst },
|
|
32
32
|
{ "pr-5": isLast && !hasActions },
|
|
33
33
|
{ "pr-3": !isLast || hasActions },
|
|
34
|
-
{ "px-3": !field.noPadding },
|
|
34
|
+
{ "px-3": (!isFirst || !selectable) && !field.noPadding },
|
|
35
35
|
{ "px-0": field.noPadding },
|
|
36
36
|
{ "whitespace-nowrap truncate": !freeWrap }
|
|
37
37
|
);
|
|
@@ -41,7 +41,7 @@ $:
|
|
|
41
41
|
|
|
42
42
|
<svelte:element
|
|
43
43
|
this={tag}
|
|
44
|
-
class="{cellStyles} text-base tracking-normal"
|
|
44
|
+
class="{cellStyles} text-base tracking-normal py-2"
|
|
45
45
|
style:min-width={field.width}
|
|
46
46
|
style:max-width={isMobile ? `${Viewport.Width}px` : field.width}
|
|
47
47
|
>
|
|
@@ -9,6 +9,7 @@ export let sortBy = "";
|
|
|
9
9
|
export let sortDirection;
|
|
10
10
|
export let isFirst = false;
|
|
11
11
|
export let isLast = false;
|
|
12
|
+
export let selectable = false;
|
|
12
13
|
$:
|
|
13
14
|
outerStyles = clsx({
|
|
14
15
|
"w-full": field.fullWidth
|
|
@@ -17,7 +18,7 @@ $:
|
|
|
17
18
|
headerStyles = clsx({
|
|
18
19
|
"justify-end": field.rightAlign,
|
|
19
20
|
"hover:bg-neutral-50 focus:bg-neutral-100": field.sortable,
|
|
20
|
-
"pl-5": isFirst,
|
|
21
|
+
"pl-5": isFirst && !selectable,
|
|
21
22
|
"pl-3": !isFirst,
|
|
22
23
|
"pr-5": isLast,
|
|
23
24
|
"pr-3": !isLast
|
|
@@ -31,16 +32,16 @@ function handleSortBy(event) {
|
|
|
31
32
|
|
|
32
33
|
<th
|
|
33
34
|
scope="col"
|
|
34
|
-
class="{outerStyles} bg-white text-neutral-500 group sticky z-10 top-0"
|
|
35
|
+
class="{outerStyles} bg-white text-neutral-500 group sticky z-10 top-0 h-9 box-border p-0"
|
|
35
36
|
style:min-width={field.width}
|
|
36
37
|
style:max-width={field.width}
|
|
37
38
|
>
|
|
38
|
-
<span class="flex">
|
|
39
|
+
<span class="flex border-b border-neutral-100">
|
|
39
40
|
{#if field.sortable}
|
|
40
41
|
<BaseDropdown bind:this={sortDropdown} fullWidth>
|
|
41
42
|
<span
|
|
42
43
|
slot="trigger"
|
|
43
|
-
class="{headerStyles} w-full py-
|
|
44
|
+
class="{headerStyles} w-full py-2 flex items-center justify-start space-x-1 text-left text-base tracking-normal whitespace-nowrap font-normal"
|
|
44
45
|
>
|
|
45
46
|
<span>{field.headerLabel}</span>
|
|
46
47
|
{#if sortBy === field.slug}
|
|
@@ -68,7 +69,7 @@ function handleSortBy(event) {
|
|
|
68
69
|
</BaseDropdown>
|
|
69
70
|
{:else}
|
|
70
71
|
<div
|
|
71
|
-
class="{headerStyles}
|
|
72
|
+
class="{headerStyles} py-2 text-left text-base font-normal tracking-normal whitespace-nowrap"
|
|
72
73
|
>
|
|
73
74
|
{field.headerLabel}
|
|
74
75
|
</div>
|
package/dist/BaseTableRow.svelte
CHANGED
|
@@ -56,7 +56,7 @@ function scrollIntoView() {
|
|
|
56
56
|
<td>
|
|
57
57
|
<button
|
|
58
58
|
bind:this={checkboxButton}
|
|
59
|
-
class="
|
|
59
|
+
class="px-5 h-[40px] flex items-center outline-none group cursor-default"
|
|
60
60
|
on:click|stopPropagation={() => {
|
|
61
61
|
dispatch('checked', checked)
|
|
62
62
|
}}
|
|
@@ -17,7 +17,7 @@ function updateInput(event) {
|
|
|
17
17
|
type="checkbox"
|
|
18
18
|
{checked}
|
|
19
19
|
{indeterminate}
|
|
20
|
-
class="form-checkbox w-4 h-4 text-workspace-accent focus:text-workspace-accent rounded border border-neutral-200 hover:border-neutral-300 focus:ring-0 focus:ring-offset-0"
|
|
20
|
+
class="form-checkbox w-4 h-4 text-workspace-accent focus:text-workspace-accent rounded border border-neutral-200 hover:border-neutral-300 group-hover:border-neutral-300 focus:ring-0 focus:ring-offset-0"
|
|
21
21
|
on:change={updateInput}
|
|
22
22
|
on:click|stopPropagation
|
|
23
23
|
/>
|
package/dist/TagStatus.svelte
CHANGED
|
@@ -36,7 +36,7 @@ $:
|
|
|
36
36
|
});
|
|
37
37
|
</script>
|
|
38
38
|
|
|
39
|
-
<span class="{tagStyles} rounded text-sm inline-flex items-center font-medium gap-1">
|
|
39
|
+
<span class="{tagStyles} rounded text-sm inline-flex items-center font-medium gap-1 box-border h-5">
|
|
40
40
|
{#if dot}
|
|
41
41
|
<span class="{dotStyles} w-2 h-2 rounded-sm" />
|
|
42
42
|
{/if}
|