@invopop/popui 0.1.82 → 0.1.84

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.
@@ -10,8 +10,10 @@
10
10
  'size-5 rounded-md': size === 'md',
11
11
  'bg-background-default-secondary border-border-default-secondary shadow-shortcut text-foreground-default-secondary':
12
12
  theme === 'light',
13
- 'bg-background-inverse-secondary border-border-inverse-secondary shadow-[0px_1px_0px_rgba(255,255,255,0.20)] text-foreground-inverse-secondary':
14
- theme === 'navigation'
13
+ 'border-border-inverse-secondary shadow-shortcut-inverse text-foreground-inverse-secondary':
14
+ theme === 'navigation' && size === 'sm',
15
+ 'bg-[rgba(255,255,255,0.05)] border-[rgba(255,255,255,0.1)] shadow-[0px_1px_0px_0px_rgba(255,255,255,0.15)] text-foreground-inverse-secondary':
16
+ theme === 'navigation' && size === 'md'
15
17
  })
16
18
  )
17
19
  </script>
@@ -8,3 +8,4 @@ export declare function shouldIgnoreKeyEvent(event: KeyboardEvent): boolean;
8
8
  export declare function handleArrowDown<TData>(currentIndex: number, rows: Row<TData>[], shiftKey: boolean, enableSelection: boolean, onScroll: () => void): number;
9
9
  export declare function handleArrowUp<TData>(currentIndex: number, rows: Row<TData>[], shiftKey: boolean, enableSelection: boolean, onScroll: () => void): number;
10
10
  export declare function handleSelectKey<TData>(currentIndex: number, rows: Row<TData>[], enableSelection: boolean): void;
11
+ export declare function handleEnterKey<TData>(currentIndex: number, rows: Row<TData>[], loading: boolean, onRowClick?: (row: TData) => void): void;
@@ -151,3 +151,10 @@ export function handleSelectKey(currentIndex, rows, enableSelection) {
151
151
  rows[currentIndex].toggleSelected();
152
152
  }
153
153
  }
154
+ export function handleEnterKey(currentIndex, rows, loading, onRowClick) {
155
+ if (loading || !onRowClick)
156
+ return;
157
+ if (currentIndex >= 0 && currentIndex < rows.length) {
158
+ onRowClick(rows[currentIndex].original);
159
+ }
160
+ }
@@ -9,35 +9,30 @@
9
9
  type SortingState,
10
10
  type VisibilityState
11
11
  } from '@tanstack/table-core'
12
- import { onMount, onDestroy } from 'svelte'
12
+ import { onMount, onDestroy, untrack } from 'svelte'
13
13
  import DataTableToolbar from './data-table-toolbar.svelte'
14
14
  import DataTablePagination from './data-table-pagination.svelte'
15
15
  import DataTableHeaderCell from './data-table-header-cell.svelte'
16
16
  import DataTableRow from './data-table-row.svelte'
17
- import FlexRender from './flex-render.svelte'
18
17
  import * as Table from '../table/index.js'
19
18
  import BaseTableActions from '../BaseTableActions.svelte'
20
19
  import BaseDropdown from '../BaseDropdown.svelte'
21
20
  import EmptyState from '../EmptyState.svelte'
22
- import Skeleton from '../skeleton/skeleton.svelte'
23
- import SkeletonAvatar from '../skeleton/skeleton-avatar.svelte'
24
21
  import { Search } from '@invopop/ui-icons'
25
22
  import { cn } from '../utils.js'
26
23
  import type { DataTableProps } from './data-table-types.js'
27
24
  import { calculateColumnSizing } from './column-sizing-helpers.js'
28
- import { getCellStyle, getCellClasses } from './table-styles.js'
29
25
  import { buildColumns, setupTable } from './table-setup.js'
30
26
  import {
31
27
  reorderFrozenColumn,
32
28
  reorderUnfrozenColumn,
33
- calculateFrozenOffset,
34
29
  handleScrollEvent,
35
30
  shouldIgnoreKeyEvent,
36
31
  handleArrowDown,
37
32
  handleArrowUp,
38
- handleSelectKey
33
+ handleSelectKey,
34
+ handleEnterKey
39
35
  } from './data-table-helpers.js'
40
- import clsx from 'clsx'
41
36
 
42
37
  let {
43
38
  data,
@@ -89,14 +84,18 @@
89
84
  const enablePagination = !disablePagination
90
85
 
91
86
  let rowSelection = $state<RowSelectionState>({})
92
- let columnVisibility = $state<VisibilityState>(initialColumnVisibility)
87
+ let columnVisibility = $state<VisibilityState>(untrack(() => initialColumnVisibility))
93
88
  let sorting = $state<SortingState>(
94
- initialSortColumn && initialSortDirection
95
- ? [{ id: initialSortColumn, desc: initialSortDirection === 'desc' }]
96
- : []
89
+ untrack(() =>
90
+ initialSortColumn && initialSortDirection
91
+ ? [{ id: initialSortColumn, desc: initialSortDirection === 'desc' }]
92
+ : []
93
+ )
94
+ )
95
+ let pagination = $state<PaginationState>(
96
+ untrack(() => ({ pageIndex: initialPage, pageSize: initialPageSize }))
97
97
  )
98
- let pagination = $state<PaginationState>({ pageIndex: initialPage, pageSize: initialPageSize })
99
- let columnSizing = $state<ColumnSizingState>(initialColumnSizing)
98
+ let columnSizing = $state<ColumnSizingState>(untrack(() => initialColumnSizing))
100
99
  let columnSizingInfo = $state<ColumnSizingInfoState>({
101
100
  columnSizingStart: [],
102
101
  deltaOffset: null,
@@ -105,10 +104,10 @@
105
104
  startOffset: null,
106
105
  startSize: null
107
106
  })
108
- let columnOrder = $state<ColumnOrderState>(initialColumnOrder)
107
+ let columnOrder = $state<ColumnOrderState>(untrack(() => initialColumnOrder))
109
108
  let containerRef = $state<HTMLDivElement | null>(null)
110
109
  let columnDropdowns = $state<Record<string, BaseDropdown>>({})
111
- let frozenColumns = $state<Set<string>>(new Set(initialFrozenColumns))
110
+ let frozenColumns = $state<Set<string>>(untrack(() => new Set(initialFrozenColumns)))
112
111
  let focusedRowIndex = $state<number>(-1)
113
112
  let tableBodyRef = $state<HTMLTableSectionElement | null>(null)
114
113
  let tableRenderKey = $state<number>(0) // Force re-render when visibility changes
@@ -259,10 +258,13 @@
259
258
  )
260
259
  break
261
260
  case ' ':
262
- case 'Enter':
263
261
  event.preventDefault()
264
262
  handleSelectKey(focusedRowIndex, rows, enableSelection)
265
263
  break
264
+ case 'Enter':
265
+ event.preventDefault()
266
+ handleEnterKey(focusedRowIndex, rows, loading, onRowClick)
267
+ break
266
268
  case 'Escape':
267
269
  focusedRowIndex = -1
268
270
  break
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@invopop/popui",
3
3
  "license": "MIT",
4
- "version": "0.1.82",
4
+ "version": "0.1.84",
5
5
  "repository": {
6
6
  "url": "https://github.com/invopop/popui"
7
7
  },
@@ -55,6 +55,7 @@
55
55
  "@tailwindcss/forms": "^0.5.9",
56
56
  "@tailwindcss/typography": "^0.5.15",
57
57
  "@types/lodash-es": "^4.17.12",
58
+ "@types/node": "^25.6.0",
58
59
  "@typescript-eslint/eslint-plugin": "^8.56.1",
59
60
  "@typescript-eslint/parser": "^8.56.1",
60
61
  "eslint": "^8.28.0",