simplesvelte 2.4.12 → 2.5.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.
- package/README.md +214 -214
- package/dist/Grid.svelte +44 -5
- package/dist/Grid.svelte.d.ts +9 -2
- package/dist/Input.svelte +145 -145
- package/dist/Label.svelte +43 -43
- package/dist/Modal.svelte +39 -39
- package/dist/Select.svelte +696 -694
- package/dist/Select.svelte.d.ts +1 -0
- package/dist/ag-grid-refactored.d.ts +70 -0
- package/dist/ag-grid-refactored.js +95 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/styles.css +15 -15
- package/package.json +69 -69
package/dist/Select.svelte.d.ts
CHANGED
|
@@ -496,6 +496,32 @@ export type AGGridQueryConfig<TRecord = any> = {
|
|
|
496
496
|
* ```
|
|
497
497
|
*/
|
|
498
498
|
disableCaseInsensitive?: boolean;
|
|
499
|
+
/**
|
|
500
|
+
* Optional: Explicit field type declarations for correct filter coercion.
|
|
501
|
+
*
|
|
502
|
+
* Fixes cases where AG Grid sends numeric FK values or booleans as strings inside
|
|
503
|
+
* set/text filters, which Prisma then rejects or silently mismatches.
|
|
504
|
+
*
|
|
505
|
+
* Keys are column IDs exactly as used in AG Grid column definitions (dot-notation supported).
|
|
506
|
+
*
|
|
507
|
+
* Supported types:
|
|
508
|
+
* - `'number'` — coerces set-filter values via `Number()` and text-filter equals to `{ equals: Number(v) }`
|
|
509
|
+
* - `'boolean'` — forces the boolean path in set filters regardless of value shape
|
|
510
|
+
* - `'string'` — no-op (default behaviour, useful for explicit documentation)
|
|
511
|
+
*
|
|
512
|
+
* @example Eliminate numeric-FK transformWhere workarounds
|
|
513
|
+
* ```typescript
|
|
514
|
+
* // Before:
|
|
515
|
+
* transformWhere: (where) => {
|
|
516
|
+
* if (where.locationId?.in) where.locationId = { in: where.locationId.in.map(Number) }
|
|
517
|
+
* return where
|
|
518
|
+
* }
|
|
519
|
+
*
|
|
520
|
+
* // After:
|
|
521
|
+
* fieldTypes: { locationId: 'number', clientId: 'number', isActive: 'boolean' }
|
|
522
|
+
* ```
|
|
523
|
+
*/
|
|
524
|
+
fieldTypes?: Record<string, 'number' | 'boolean' | 'string'>;
|
|
499
525
|
};
|
|
500
526
|
/**
|
|
501
527
|
* Creates an AG Grid query handler for server-side data fetching
|
|
@@ -707,4 +733,48 @@ export declare const filterConfigs: {
|
|
|
707
733
|
};
|
|
708
734
|
};
|
|
709
735
|
};
|
|
736
|
+
/**
|
|
737
|
+
* Creates merged GridOptions for a server-side row model grid.
|
|
738
|
+
*
|
|
739
|
+
* Combines `defaultSSRMGridOptions` + `defaultSSRMColDef` + datasource creation into one call.
|
|
740
|
+
* User overrides are merged on top of defaults; `defaultColDef` is deep-merged so individual
|
|
741
|
+
* column definition properties can be overridden without replacing the entire object.
|
|
742
|
+
*
|
|
743
|
+
* @param fetcher - Remote query function (or custom wrapper function for additional filters)
|
|
744
|
+
* @param overrides - GridOptions merged on top of defaults (columnDefs, callbacks, etc.)
|
|
745
|
+
* @param datasourceOptions - Optional options forwarded to `createAGGridDatasource` (onError, debug, etc.)
|
|
746
|
+
* @returns Merged GridOptions ready to pass to `<Grid {gridOptions} />`
|
|
747
|
+
*
|
|
748
|
+
* @example Basic usage
|
|
749
|
+
* ```svelte
|
|
750
|
+
* <script lang="ts">
|
|
751
|
+
* import { createSSRMOptions, Grid } from 'simplesvelte'
|
|
752
|
+
* import { getUsersGrid } from './user.remote'
|
|
753
|
+
* import type { GridApi } from 'ag-grid-enterprise'
|
|
754
|
+
*
|
|
755
|
+
* let gridApi = $state<GridApi>()
|
|
756
|
+
*
|
|
757
|
+
* const gridOptions = $derived(createSSRMOptions(getUsersGrid, {
|
|
758
|
+
* columnDefs: [
|
|
759
|
+
* { field: 'id' },
|
|
760
|
+
* { field: 'name', filter: 'agTextColumnFilter' },
|
|
761
|
+
* { field: 'department.name', headerName: 'Department', filter: 'agTextColumnFilter' },
|
|
762
|
+
* ],
|
|
763
|
+
* onRowClicked: (e) => { if (!e.node.group) console.log(e.data) },
|
|
764
|
+
* }))
|
|
765
|
+
* </script>
|
|
766
|
+
*
|
|
767
|
+
* <Grid {gridOptions} bind:gridApi stateKey="users-grid" />
|
|
768
|
+
* ```
|
|
769
|
+
*
|
|
770
|
+
* @example With a custom fetcher wrapper (additional filters)
|
|
771
|
+
* ```svelte
|
|
772
|
+
* <script lang="ts">
|
|
773
|
+
* let workOrderId = $props()
|
|
774
|
+
* const fetcher = (req: any) => getNotesByWorkOrderIdGrid({ ...req, workOrderId })
|
|
775
|
+
* const gridOptions = $derived(createSSRMOptions(fetcher, { columnDefs: [...] }))
|
|
776
|
+
* </script>
|
|
777
|
+
* ```
|
|
778
|
+
*/
|
|
779
|
+
export declare function createSSRMOptions(fetcher: Parameters<typeof createAGGridDatasource>[0], overrides?: import('ag-grid-community').GridOptions, datasourceOptions?: Parameters<typeof createAGGridDatasource>[1]): import('ag-grid-community').GridOptions;
|
|
710
780
|
export {};
|
|
@@ -357,9 +357,28 @@ function transformForPrisma(input) {
|
|
|
357
357
|
/**
|
|
358
358
|
* Handles text filters (contains, equals, startsWith, endsWith, etc.)
|
|
359
359
|
*/
|
|
360
|
-
function applyTextFilter(where, field, filter, disableCaseInsensitive) {
|
|
360
|
+
function applyTextFilter(where, field, filter, disableCaseInsensitive, fieldType) {
|
|
361
361
|
const type = filter.type;
|
|
362
362
|
const value = filter.filter;
|
|
363
|
+
// When the field is declared as a number, coerce all text-filter values to numbers.
|
|
364
|
+
// Text filters don't make semantic sense on numeric fields; treat as equality.
|
|
365
|
+
if (fieldType === 'number') {
|
|
366
|
+
switch (type) {
|
|
367
|
+
case 'blank':
|
|
368
|
+
case 'empty':
|
|
369
|
+
where[field] = null;
|
|
370
|
+
return;
|
|
371
|
+
case 'notBlank':
|
|
372
|
+
where[field] = { not: null };
|
|
373
|
+
return;
|
|
374
|
+
case 'notEqual':
|
|
375
|
+
where[field] = { not: Number(value) };
|
|
376
|
+
return;
|
|
377
|
+
default:
|
|
378
|
+
where[field] = { equals: Number(value) };
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
363
382
|
switch (type) {
|
|
364
383
|
case 'equals':
|
|
365
384
|
where[field] = value;
|
|
@@ -504,7 +523,7 @@ function applyDateFilter(where, field, filter) {
|
|
|
504
523
|
/**
|
|
505
524
|
* Handles set filters (multi-select)
|
|
506
525
|
*/
|
|
507
|
-
function applySetFilter(where, field, filter) {
|
|
526
|
+
function applySetFilter(where, field, filter, fieldType) {
|
|
508
527
|
const values = filter.values;
|
|
509
528
|
// If values array doesn't exist, skip this filter entirely (no filter applied)
|
|
510
529
|
if (!values)
|
|
@@ -514,9 +533,22 @@ function applySetFilter(where, field, filter) {
|
|
|
514
533
|
where[field] = { in: [] };
|
|
515
534
|
return;
|
|
516
535
|
}
|
|
517
|
-
//
|
|
536
|
+
// When fieldType is 'number', coerce all values to numbers before the `in` query.
|
|
537
|
+
// AG Grid sends numeric FK values as strings inside set filters.
|
|
538
|
+
if (fieldType === 'number') {
|
|
539
|
+
const converted = values.map(Number);
|
|
540
|
+
if (converted.length === 1) {
|
|
541
|
+
where[field] = converted[0];
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
where[field] = { in: converted };
|
|
545
|
+
}
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
// Check if this is a boolean filter.
|
|
549
|
+
// fieldType === 'boolean' forces the boolean path regardless of value shape.
|
|
518
550
|
const booleanValues = new Set(['Yes', 'No', 'true', 'false', true, false]);
|
|
519
|
-
const isBooleanFilter = values.every((v) => booleanValues.has(v));
|
|
551
|
+
const isBooleanFilter = fieldType === 'boolean' || values.every((v) => booleanValues.has(v));
|
|
520
552
|
if (isBooleanFilter) {
|
|
521
553
|
// Convert to boolean
|
|
522
554
|
const converted = values.map((v) => v === 'Yes' || v === 'true' || v === true);
|
|
@@ -536,7 +568,7 @@ function applySetFilter(where, field, filter) {
|
|
|
536
568
|
* Applies a filter to a field (main entry point)
|
|
537
569
|
* Determines filterType first, then dispatches to appropriate handler
|
|
538
570
|
*/
|
|
539
|
-
function applyFilterToField(where, field, filterValue, disableCaseInsensitive) {
|
|
571
|
+
function applyFilterToField(where, field, filterValue, disableCaseInsensitive, fieldType) {
|
|
540
572
|
if (!filterValue || typeof filterValue !== 'object')
|
|
541
573
|
return;
|
|
542
574
|
const filter = filterValue;
|
|
@@ -544,7 +576,7 @@ function applyFilterToField(where, field, filterValue, disableCaseInsensitive) {
|
|
|
544
576
|
const filterType = filter.filterType;
|
|
545
577
|
switch (filterType) {
|
|
546
578
|
case 'text':
|
|
547
|
-
applyTextFilter(where, field, filter, disableCaseInsensitive);
|
|
579
|
+
applyTextFilter(where, field, filter, disableCaseInsensitive, fieldType);
|
|
548
580
|
break;
|
|
549
581
|
case 'number':
|
|
550
582
|
applyNumberFilter(where, field, filter);
|
|
@@ -553,7 +585,7 @@ function applyFilterToField(where, field, filterValue, disableCaseInsensitive) {
|
|
|
553
585
|
applyDateFilter(where, field, filter);
|
|
554
586
|
break;
|
|
555
587
|
case 'set':
|
|
556
|
-
applySetFilter(where, field, filter);
|
|
588
|
+
applySetFilter(where, field, filter, fieldType);
|
|
557
589
|
break;
|
|
558
590
|
default:
|
|
559
591
|
console.warn('Unknown filter type:', filterType, 'for field:', field, 'filter:', filter);
|
|
@@ -665,7 +697,7 @@ function buildWhereClause(request, config, groupKeys, rowGroupCols) {
|
|
|
665
697
|
mergeWhereConditions(where, transformed);
|
|
666
698
|
}
|
|
667
699
|
else {
|
|
668
|
-
applyFilterToField(where, columnId, filterValue, config.disableCaseInsensitive);
|
|
700
|
+
applyFilterToField(where, columnId, filterValue, config.disableCaseInsensitive, config.fieldTypes?.[columnId]);
|
|
669
701
|
}
|
|
670
702
|
}
|
|
671
703
|
}
|
|
@@ -1140,3 +1172,58 @@ export const filterConfigs = {
|
|
|
1140
1172
|
},
|
|
1141
1173
|
},
|
|
1142
1174
|
};
|
|
1175
|
+
// ============================================================================
|
|
1176
|
+
// Composite Grid Options Helper
|
|
1177
|
+
// ============================================================================
|
|
1178
|
+
/**
|
|
1179
|
+
* Creates merged GridOptions for a server-side row model grid.
|
|
1180
|
+
*
|
|
1181
|
+
* Combines `defaultSSRMGridOptions` + `defaultSSRMColDef` + datasource creation into one call.
|
|
1182
|
+
* User overrides are merged on top of defaults; `defaultColDef` is deep-merged so individual
|
|
1183
|
+
* column definition properties can be overridden without replacing the entire object.
|
|
1184
|
+
*
|
|
1185
|
+
* @param fetcher - Remote query function (or custom wrapper function for additional filters)
|
|
1186
|
+
* @param overrides - GridOptions merged on top of defaults (columnDefs, callbacks, etc.)
|
|
1187
|
+
* @param datasourceOptions - Optional options forwarded to `createAGGridDatasource` (onError, debug, etc.)
|
|
1188
|
+
* @returns Merged GridOptions ready to pass to `<Grid {gridOptions} />`
|
|
1189
|
+
*
|
|
1190
|
+
* @example Basic usage
|
|
1191
|
+
* ```svelte
|
|
1192
|
+
* <script lang="ts">
|
|
1193
|
+
* import { createSSRMOptions, Grid } from 'simplesvelte'
|
|
1194
|
+
* import { getUsersGrid } from './user.remote'
|
|
1195
|
+
* import type { GridApi } from 'ag-grid-enterprise'
|
|
1196
|
+
*
|
|
1197
|
+
* let gridApi = $state<GridApi>()
|
|
1198
|
+
*
|
|
1199
|
+
* const gridOptions = $derived(createSSRMOptions(getUsersGrid, {
|
|
1200
|
+
* columnDefs: [
|
|
1201
|
+
* { field: 'id' },
|
|
1202
|
+
* { field: 'name', filter: 'agTextColumnFilter' },
|
|
1203
|
+
* { field: 'department.name', headerName: 'Department', filter: 'agTextColumnFilter' },
|
|
1204
|
+
* ],
|
|
1205
|
+
* onRowClicked: (e) => { if (!e.node.group) console.log(e.data) },
|
|
1206
|
+
* }))
|
|
1207
|
+
* </script>
|
|
1208
|
+
*
|
|
1209
|
+
* <Grid {gridOptions} bind:gridApi stateKey="users-grid" />
|
|
1210
|
+
* ```
|
|
1211
|
+
*
|
|
1212
|
+
* @example With a custom fetcher wrapper (additional filters)
|
|
1213
|
+
* ```svelte
|
|
1214
|
+
* <script lang="ts">
|
|
1215
|
+
* let workOrderId = $props()
|
|
1216
|
+
* const fetcher = (req: any) => getNotesByWorkOrderIdGrid({ ...req, workOrderId })
|
|
1217
|
+
* const gridOptions = $derived(createSSRMOptions(fetcher, { columnDefs: [...] }))
|
|
1218
|
+
* </script>
|
|
1219
|
+
* ```
|
|
1220
|
+
*/
|
|
1221
|
+
export function createSSRMOptions(fetcher, overrides, datasourceOptions) {
|
|
1222
|
+
const { defaultColDef: overrideColDef, ...restOverrides } = overrides ?? {};
|
|
1223
|
+
return {
|
|
1224
|
+
serverSideDatasource: createAGGridDatasource(fetcher, datasourceOptions),
|
|
1225
|
+
...defaultSSRMGridOptions,
|
|
1226
|
+
defaultColDef: { ...defaultSSRMColDef, ...overrideColDef },
|
|
1227
|
+
...restOverrides,
|
|
1228
|
+
};
|
|
1229
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { default as Modal } from './Modal.svelte';
|
|
|
6
6
|
export { default as Grid } from './Grid.svelte';
|
|
7
7
|
export { Pop } from './pop.js';
|
|
8
8
|
export { clickOutside, FormHelper, RoleHelper as roleHelper, formatDate } from './utils.js';
|
|
9
|
-
export { createAGGridQuery, createAGGridDatasource, saveParams, fetchParams, type AGGridRequest, type AGGridResponse, type ComputedField, type AGGridQueryConfig, agGridRequestSchema, defaultAGGridRequest, defaultSSRMColDef, defaultSSRMGridOptions, filterConfigs, } from './ag-grid-refactored.js';
|
|
9
|
+
export { createAGGridQuery, createAGGridDatasource, createSSRMOptions, saveParams, fetchParams, type AGGridRequest, type AGGridResponse, type ComputedField, type AGGridQueryConfig, agGridRequestSchema, defaultAGGridRequest, defaultSSRMColDef, defaultSSRMGridOptions, filterConfigs, } from './ag-grid-refactored.js';
|
|
10
10
|
import './styles.css';
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ export { clickOutside, FormHelper, RoleHelper as roleHelper, formatDate } from '
|
|
|
9
9
|
// AG Grid Server-Side Row Model API
|
|
10
10
|
export {
|
|
11
11
|
// Main functions
|
|
12
|
-
createAGGridQuery, createAGGridDatasource,
|
|
12
|
+
createAGGridQuery, createAGGridDatasource, createSSRMOptions,
|
|
13
13
|
// Parameter persistence functions
|
|
14
14
|
saveParams, fetchParams,
|
|
15
15
|
// Zod schema
|
package/dist/styles.css
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
@import 'tailwindcss';
|
|
2
|
-
@plugin "daisyui";
|
|
3
|
-
|
|
4
|
-
html,
|
|
5
|
-
body {
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: column;
|
|
8
|
-
height: 100%;
|
|
9
|
-
background-color: var(--color-base-200);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/* Ensure popover elements are hidden by default - use !important to override menu display:flex */
|
|
13
|
-
[popover]:not(:popover-open) {
|
|
14
|
-
display: none !important;
|
|
15
|
-
}
|
|
1
|
+
@import 'tailwindcss';
|
|
2
|
+
@plugin "daisyui";
|
|
3
|
+
|
|
4
|
+
html,
|
|
5
|
+
body {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
height: 100%;
|
|
9
|
+
background-color: var(--color-base-200);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Ensure popover elements are hidden by default - use !important to override menu display:flex */
|
|
13
|
+
[popover]:not(:popover-open) {
|
|
14
|
+
display: none !important;
|
|
15
|
+
}
|
package/package.json
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "simplesvelte",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"scripts": {
|
|
5
|
-
"dev": "bun vite dev",
|
|
6
|
-
"build": "bun vite build && bun run prepack",
|
|
7
|
-
"preview": "bun vite preview",
|
|
8
|
-
"prepare": "bun svelte-kit sync || echo ''",
|
|
9
|
-
"prepack": "bun svelte-kit sync && bun svelte-package && bun publint",
|
|
10
|
-
"check": "bun svelte-kit sync && bun svelte-check --tsconfig ./tsconfig.json",
|
|
11
|
-
"check:watch": "bun svelte-kit sync && bun svelte-check --tsconfig ./tsconfig.json --watch",
|
|
12
|
-
"format": "bun prettier --write .",
|
|
13
|
-
"lint": "bun prettier --check . && bun eslint ."
|
|
14
|
-
},
|
|
15
|
-
"files": [
|
|
16
|
-
"dist",
|
|
17
|
-
"!dist/**/*.test.*",
|
|
18
|
-
"!dist/**/*.spec.*"
|
|
19
|
-
],
|
|
20
|
-
"sideEffects": [
|
|
21
|
-
"**/*.css"
|
|
22
|
-
],
|
|
23
|
-
"svelte": "./dist/index.js",
|
|
24
|
-
"types": "./dist/index.d.ts",
|
|
25
|
-
"type": "module",
|
|
26
|
-
"exports": {
|
|
27
|
-
".": {
|
|
28
|
-
"types": "./dist/index.d.ts",
|
|
29
|
-
"svelte": "./dist/index.js"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"ag-grid-enterprise": "^35.1.0",
|
|
34
|
-
"svelte": "^5.0.0",
|
|
35
|
-
"sweetalert2": "^11.26.21"
|
|
36
|
-
},
|
|
37
|
-
"devDependencies": {
|
|
38
|
-
"@eslint/compat": "^2.0.2",
|
|
39
|
-
"@eslint/js": "^10.0.1",
|
|
40
|
-
"@sveltejs/adapter-cloudflare": "^7.2.8",
|
|
41
|
-
"@sveltejs/kit": "^2.53.4",
|
|
42
|
-
"@sveltejs/package": "^2.5.7",
|
|
43
|
-
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
44
|
-
"@tailwindcss/cli": "^4.2.1",
|
|
45
|
-
"@tailwindcss/vite": "^4.2.1",
|
|
46
|
-
"@testing-library/svelte": "^5.3.1",
|
|
47
|
-
"@testing-library/user-event": "^14.6.1",
|
|
48
|
-
"daisyui": "^5.5.19",
|
|
49
|
-
"eslint": "^10.0.2",
|
|
50
|
-
"eslint-config-prettier": "^10.1.8",
|
|
51
|
-
"eslint-plugin-svelte": "^3.15.0",
|
|
52
|
-
"globals": "^17.4.0",
|
|
53
|
-
"jsdom": "^28.1.0",
|
|
54
|
-
"prettier": "^3.8.1",
|
|
55
|
-
"prettier-plugin-svelte": "^3.5.1",
|
|
56
|
-
"prettier-plugin-tailwindcss": "^0.7.2",
|
|
57
|
-
"publint": "^0.3.18",
|
|
58
|
-
"svelte": "^5.53.7",
|
|
59
|
-
"svelte-check": "^4.4.4",
|
|
60
|
-
"tailwindcss": "^4.2.1",
|
|
61
|
-
"typescript": "^5.9.3",
|
|
62
|
-
"typescript-eslint": "^8.56.1",
|
|
63
|
-
"vite": "^7.3.1",
|
|
64
|
-
"vitest": "^4.0.18"
|
|
65
|
-
},
|
|
66
|
-
"keywords": [
|
|
67
|
-
"svelte"
|
|
68
|
-
]
|
|
69
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "simplesvelte",
|
|
3
|
+
"version": "2.5.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"dev": "bun vite dev",
|
|
6
|
+
"build": "bun vite build && bun run prepack",
|
|
7
|
+
"preview": "bun vite preview",
|
|
8
|
+
"prepare": "bun svelte-kit sync || echo ''",
|
|
9
|
+
"prepack": "bun svelte-kit sync && bun svelte-package && bun publint",
|
|
10
|
+
"check": "bun svelte-kit sync && bun svelte-check --tsconfig ./tsconfig.json",
|
|
11
|
+
"check:watch": "bun svelte-kit sync && bun svelte-check --tsconfig ./tsconfig.json --watch",
|
|
12
|
+
"format": "bun prettier --write .",
|
|
13
|
+
"lint": "bun prettier --check . && bun eslint ."
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"!dist/**/*.test.*",
|
|
18
|
+
"!dist/**/*.spec.*"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": [
|
|
21
|
+
"**/*.css"
|
|
22
|
+
],
|
|
23
|
+
"svelte": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"type": "module",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"svelte": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"ag-grid-enterprise": "^35.1.0",
|
|
34
|
+
"svelte": "^5.0.0",
|
|
35
|
+
"sweetalert2": "^11.26.21"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@eslint/compat": "^2.0.2",
|
|
39
|
+
"@eslint/js": "^10.0.1",
|
|
40
|
+
"@sveltejs/adapter-cloudflare": "^7.2.8",
|
|
41
|
+
"@sveltejs/kit": "^2.53.4",
|
|
42
|
+
"@sveltejs/package": "^2.5.7",
|
|
43
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
44
|
+
"@tailwindcss/cli": "^4.2.1",
|
|
45
|
+
"@tailwindcss/vite": "^4.2.1",
|
|
46
|
+
"@testing-library/svelte": "^5.3.1",
|
|
47
|
+
"@testing-library/user-event": "^14.6.1",
|
|
48
|
+
"daisyui": "^5.5.19",
|
|
49
|
+
"eslint": "^10.0.2",
|
|
50
|
+
"eslint-config-prettier": "^10.1.8",
|
|
51
|
+
"eslint-plugin-svelte": "^3.15.0",
|
|
52
|
+
"globals": "^17.4.0",
|
|
53
|
+
"jsdom": "^28.1.0",
|
|
54
|
+
"prettier": "^3.8.1",
|
|
55
|
+
"prettier-plugin-svelte": "^3.5.1",
|
|
56
|
+
"prettier-plugin-tailwindcss": "^0.7.2",
|
|
57
|
+
"publint": "^0.3.18",
|
|
58
|
+
"svelte": "^5.53.7",
|
|
59
|
+
"svelte-check": "^4.4.4",
|
|
60
|
+
"tailwindcss": "^4.2.1",
|
|
61
|
+
"typescript": "^5.9.3",
|
|
62
|
+
"typescript-eslint": "^8.56.1",
|
|
63
|
+
"vite": "^7.3.1",
|
|
64
|
+
"vitest": "^4.0.18"
|
|
65
|
+
},
|
|
66
|
+
"keywords": [
|
|
67
|
+
"svelte"
|
|
68
|
+
]
|
|
69
|
+
}
|