@warkypublic/svelix 0.1.0 → 0.1.2

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.
@@ -1,5 +1,5 @@
1
- import { type Readable } from 'svelte/store';
2
- import type { GlobalStateStoreType } from './GlobalStateStore.types';
1
+ import { type Readable } from "svelte/store";
2
+ import type { GlobalStateStoreType } from "./GlobalStateStore.types";
3
3
  type PartialUpdater = Partial<GlobalStateStoreType> | ((state: GlobalStateStoreType) => Partial<GlobalStateStoreType>);
4
4
  type GlobalStateStoreApi = {
5
5
  getState: () => GlobalStateStoreType;
@@ -16,4 +16,4 @@ declare const isLoggedIn: () => boolean;
16
16
  declare const setAuthToken: (token: string) => void;
17
17
  declare const GetGlobalState: () => GlobalStateStoreType;
18
18
  export type { GlobalStateStoreApi };
19
- export { getApiURL, getAuthToken, GetGlobalState, GlobalStateStore, isLoggedIn, setApiURL, setAuthToken, useGlobalStateStore };
19
+ export { getApiURL, getAuthToken, GetGlobalState, GlobalStateStore, isLoggedIn, setApiURL, setAuthToken, useGlobalStateStore, };
@@ -1,39 +1,39 @@
1
- import { derived, get, writable } from 'svelte/store';
2
- import { loadStorage, saveStorage } from './GlobalStateStore.utils';
1
+ import { derived, get, writable } from "svelte/store";
2
+ import { loadStorage, saveStorage } from "./GlobalStateStore.utils";
3
3
  const createInitialState = () => ({
4
4
  initialized: false,
5
5
  layout: {
6
6
  bottomBar: { open: false },
7
7
  leftBar: { open: false },
8
8
  rightBar: { open: false },
9
- topBar: { open: false }
9
+ topBar: { open: false },
10
10
  },
11
11
  navigation: {
12
- menu: []
12
+ menu: [],
13
13
  },
14
14
  owner: {
15
- guid: '',
15
+ guid: "",
16
16
  id: 0,
17
- name: ''
17
+ name: "",
18
18
  },
19
19
  program: {
20
20
  controls: {},
21
- environment: 'production',
22
- guid: '',
23
- name: '',
24
- slug: ''
21
+ environment: "production",
22
+ guid: "",
23
+ name: "",
24
+ slug: "",
25
25
  },
26
26
  session: {
27
- apiURL: '',
28
- authToken: '',
27
+ apiURL: "",
28
+ authToken: "",
29
29
  connected: true,
30
30
  loading: false,
31
- loggedIn: false
31
+ loggedIn: false,
32
32
  },
33
33
  user: {
34
- guid: '',
35
- username: ''
36
- }
34
+ guid: "",
35
+ username: "",
36
+ },
37
37
  });
38
38
  const toPersistedState = (state) => ({
39
39
  layout: state.layout,
@@ -41,7 +41,7 @@ const toPersistedState = (state) => ({
41
41
  owner: state.owner,
42
42
  program: state.program,
43
43
  session: state.session,
44
- user: state.user
44
+ user: state.user,
45
45
  });
46
46
  const createGlobalStateStore = () => {
47
47
  const initialState = createInitialState();
@@ -52,13 +52,15 @@ const createGlobalStateStore = () => {
52
52
  const getState = () => get(store);
53
53
  const setState = (partial, replace = false) => {
54
54
  store.update((current) => {
55
- const nextPartial = typeof partial === 'function' ? partial(current) : partial;
56
- return replace ? nextPartial : { ...current, ...nextPartial };
55
+ const nextPartial = typeof partial === "function" ? partial(current) : partial;
56
+ return replace
57
+ ? nextPartial
58
+ : { ...current, ...nextPartial };
57
59
  });
58
60
  };
59
61
  const setGlobalState = (partial) => {
60
62
  setState((state) => {
61
- const nextPartial = typeof partial === 'function' ? partial(state) : partial;
63
+ const nextPartial = typeof partial === "function" ? partial(state) : partial;
62
64
  return nextPartial;
63
65
  });
64
66
  };
@@ -86,8 +88,8 @@ const createGlobalStateStore = () => {
86
88
  session: {
87
89
  ...state.session,
88
90
  apiURL: url || state.session.apiURL,
89
- loading: true
90
- }
91
+ loading: true,
92
+ },
91
93
  }));
92
94
  try {
93
95
  const currentState = getState();
@@ -101,15 +103,15 @@ const createGlobalStateStore = () => {
101
103
  program: {
102
104
  ...state.program,
103
105
  ...result?.program,
104
- updatedAt: new Date().toISOString()
106
+ updatedAt: new Date().toISOString(),
105
107
  },
106
108
  session: {
107
109
  ...state.session,
108
110
  ...result?.session,
109
111
  connected: true,
110
- loading: false
112
+ loading: false,
111
113
  },
112
- user: { ...state.user, ...result?.user }
114
+ user: { ...state.user, ...result?.user },
113
115
  }));
114
116
  }
115
117
  catch (e) {
@@ -118,8 +120,8 @@ const createGlobalStateStore = () => {
118
120
  ...state.session,
119
121
  connected: false,
120
122
  error: `Load Exception: ${String(e)}`,
121
- loading: false
122
- }
123
+ loading: false,
124
+ },
123
125
  }));
124
126
  }
125
127
  };
@@ -145,24 +147,32 @@ const createGlobalStateStore = () => {
145
147
  setGlobalState((state) => ({
146
148
  session: {
147
149
  ...state.session,
148
- authToken: authToken ?? '',
150
+ authToken: authToken ?? "",
149
151
  expiryDate: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
150
152
  loading: true,
151
- loggedIn: true
153
+ loggedIn: true,
152
154
  },
153
155
  user: {
154
156
  ...state.user,
155
- ...user
156
- }
157
+ ...user,
158
+ },
157
159
  }));
158
160
  const currentState = getState();
159
161
  const result = await currentState.onLogin?.(currentState);
160
162
  if (result) {
161
163
  setGlobalState((state) => ({
162
- owner: result.owner ? { ...state.owner, ...result.owner } : state.owner,
163
- program: result.program ? { ...state.program, ...result.program } : state.program,
164
- session: result.session ? { ...state.session, ...result.session } : state.session,
165
- user: result.user ? { ...state.user, ...result.user } : state.user
164
+ owner: result.owner
165
+ ? { ...state.owner, ...result.owner }
166
+ : state.owner,
167
+ program: result.program
168
+ ? { ...state.program, ...result.program }
169
+ : state.program,
170
+ session: result.session
171
+ ? { ...state.session, ...result.session }
172
+ : state.session,
173
+ user: result.user
174
+ ? { ...state.user, ...result.user }
175
+ : state.user,
166
176
  }));
167
177
  }
168
178
  await fetchDataInternal();
@@ -174,16 +184,16 @@ const createGlobalStateStore = () => {
174
184
  connected: false,
175
185
  error: `Login Exception: ${String(e)}`,
176
186
  loading: false,
177
- loggedIn: false
178
- }
187
+ loggedIn: false,
188
+ },
179
189
  }));
180
190
  }
181
191
  finally {
182
192
  setGlobalState((state) => ({
183
193
  session: {
184
194
  ...state.session,
185
- loading: false
186
- }
195
+ loading: false,
196
+ },
187
197
  }));
188
198
  }
189
199
  });
@@ -199,17 +209,25 @@ const createGlobalStateStore = () => {
199
209
  apiURL: state.session.apiURL,
200
210
  expiryDate: undefined,
201
211
  loading: true,
202
- loggedIn: false
203
- }
212
+ loggedIn: false,
213
+ },
204
214
  }));
205
215
  const currentState = getState();
206
216
  const result = await currentState.onLogout?.(currentState);
207
217
  if (result) {
208
218
  setGlobalState((state) => ({
209
- owner: result.owner ? { ...state.owner, ...result.owner } : state.owner,
210
- program: result.program ? { ...state.program, ...result.program } : state.program,
211
- session: result.session ? { ...state.session, ...result.session } : state.session,
212
- user: result.user ? { ...state.user, ...result.user } : state.user
219
+ owner: result.owner
220
+ ? { ...state.owner, ...result.owner }
221
+ : state.owner,
222
+ program: result.program
223
+ ? { ...state.program, ...result.program }
224
+ : state.program,
225
+ session: result.session
226
+ ? { ...state.session, ...result.session }
227
+ : state.session,
228
+ user: result.user
229
+ ? { ...state.user, ...result.user }
230
+ : state.user,
213
231
  }));
214
232
  }
215
233
  await fetchDataInternal();
@@ -220,66 +238,78 @@ const createGlobalStateStore = () => {
220
238
  ...state.session,
221
239
  connected: false,
222
240
  error: `Logout Exception: ${String(e)}`,
223
- loading: false
224
- }
241
+ loading: false,
242
+ },
225
243
  }));
226
244
  }
227
245
  finally {
228
246
  setGlobalState((state) => ({
229
247
  session: {
230
248
  ...state.session,
231
- loading: false
232
- }
249
+ loading: false,
250
+ },
233
251
  }));
234
252
  }
235
253
  });
236
254
  },
237
255
  setApiURL: (url) => setGlobalState((state) => ({
238
- session: { ...state.session, apiURL: url }
256
+ session: { ...state.session, apiURL: url },
239
257
  })),
240
258
  setAuthToken: (token) => setGlobalState((state) => ({
241
- session: { ...state.session, authToken: token }
259
+ session: { ...state.session, authToken: token },
242
260
  })),
243
261
  setBottomBar: (updates) => setGlobalState((state) => ({
244
- layout: { ...state.layout, bottomBar: { ...state.layout.bottomBar, ...updates } }
262
+ layout: {
263
+ ...state.layout,
264
+ bottomBar: { ...state.layout.bottomBar, ...updates },
265
+ },
245
266
  })),
246
267
  setCurrentPage: (page) => setGlobalState((state) => ({
247
- navigation: { ...state.navigation, currentPage: page }
268
+ navigation: { ...state.navigation, currentPage: page },
248
269
  })),
249
270
  setLayout: (updates) => setGlobalState((state) => ({
250
- layout: { ...state.layout, ...updates }
271
+ layout: { ...state.layout, ...updates },
251
272
  })),
252
273
  setLeftBar: (updates) => setGlobalState((state) => ({
253
- layout: { ...state.layout, leftBar: { ...state.layout.leftBar, ...updates } }
274
+ layout: {
275
+ ...state.layout,
276
+ leftBar: { ...state.layout.leftBar, ...updates },
277
+ },
254
278
  })),
255
279
  setMenu: (menu) => setGlobalState((state) => ({
256
- navigation: { ...state.navigation, menu }
280
+ navigation: { ...state.navigation, menu },
257
281
  })),
258
282
  setNavigation: (updates) => setGlobalState((state) => ({
259
- navigation: { ...state.navigation, ...updates }
283
+ navigation: { ...state.navigation, ...updates },
260
284
  })),
261
285
  setOwner: (updates) => setGlobalState((state) => ({
262
- owner: { ...state.owner, ...updates }
286
+ owner: { ...state.owner, ...updates },
263
287
  })),
264
288
  setProgram: (updates) => setGlobalState((state) => ({
265
- program: { ...state.program, ...updates }
289
+ program: { ...state.program, ...updates },
266
290
  })),
267
291
  setRightBar: (updates) => setGlobalState((state) => ({
268
- layout: { ...state.layout, rightBar: { ...state.layout.rightBar, ...updates } }
292
+ layout: {
293
+ ...state.layout,
294
+ rightBar: { ...state.layout.rightBar, ...updates },
295
+ },
269
296
  })),
270
297
  setSession: (updates) => setGlobalState((state) => ({
271
- session: { ...state.session, ...updates }
298
+ session: { ...state.session, ...updates },
272
299
  })),
273
300
  setTopBar: (updates) => setGlobalState((state) => ({
274
- layout: { ...state.layout, topBar: { ...state.layout.topBar, ...updates } }
301
+ layout: {
302
+ ...state.layout,
303
+ topBar: { ...state.layout.topBar, ...updates },
304
+ },
275
305
  })),
276
306
  setUser: (updates) => setGlobalState((state) => ({
277
- user: { ...state.user, ...updates }
278
- }))
307
+ user: { ...state.user, ...updates },
308
+ })),
279
309
  };
280
310
  const initialStoreState = {
281
311
  ...initialState,
282
- ...actions
312
+ ...actions,
283
313
  };
284
314
  store.set(initialStoreState);
285
315
  initializationPromise = loadStorage()
@@ -292,12 +322,12 @@ const createGlobalStateStore = () => {
292
322
  ...current.session,
293
323
  ...loadedState.session,
294
324
  connected: true,
295
- loading: false
296
- }
325
+ loading: false,
326
+ },
297
327
  }));
298
328
  })
299
329
  .catch((e) => {
300
- console.error('Error loading storage:', e);
330
+ console.error("Error loading storage:", e);
301
331
  setGlobalState({ initialized: true });
302
332
  })
303
333
  .finally(() => {
@@ -309,18 +339,18 @@ const createGlobalStateStore = () => {
309
339
  return;
310
340
  }
311
341
  saveStorage(toPersistedState(state)).catch((e) => {
312
- console.error('Error saving storage:', e);
342
+ console.error("Error saving storage:", e);
313
343
  });
314
344
  });
315
345
  return {
316
346
  getState,
317
347
  setState,
318
- subscribe: store.subscribe
348
+ subscribe: store.subscribe,
319
349
  };
320
350
  };
321
351
  const GlobalStateStore = createGlobalStateStore();
322
352
  const GlobalStateStoreReadable = {
323
- subscribe: GlobalStateStore.subscribe
353
+ subscribe: GlobalStateStore.subscribe,
324
354
  };
325
355
  function useGlobalStateStore(selector) {
326
356
  if (!selector) {
@@ -332,10 +362,10 @@ const setApiURL = (url) => {
332
362
  GlobalStateStore.getState().setApiURL(url);
333
363
  };
334
364
  const getApiURL = () => {
335
- return GlobalStateStore.getState().session.apiURL ?? '';
365
+ return GlobalStateStore.getState().session.apiURL ?? "";
336
366
  };
337
367
  const getAuthToken = () => {
338
- return GlobalStateStore.getState().session.authToken ?? '';
368
+ return GlobalStateStore.getState().session.authToken ?? "";
339
369
  };
340
370
  const isLoggedIn = () => {
341
371
  return GlobalStateStore.getState().isLoggedIn();
@@ -346,4 +376,4 @@ const setAuthToken = (token) => {
346
376
  const GetGlobalState = () => {
347
377
  return GlobalStateStore.getState();
348
378
  };
349
- export { getApiURL, getAuthToken, GetGlobalState, GlobalStateStore, isLoggedIn, setApiURL, setAuthToken, useGlobalStateStore };
379
+ export { getApiURL, getAuthToken, GetGlobalState, GlobalStateStore, isLoggedIn, setApiURL, setAuthToken, useGlobalStateStore, };
@@ -1,5 +1,5 @@
1
- export { getApiURL, getAuthToken, GetGlobalState, GlobalStateStore, isLoggedIn, setApiURL, setAuthToken, useGlobalStateStore } from './GlobalStateStore';
2
- export type * from './GlobalStateStore.types';
3
- export { default as GlobalStateStoreProvider } from './GlobalStateStoreProvider.svelte';
4
- export { useGlobalStateStoreContext } from './GlobalStateStoreContext';
5
- export type { GlobalStateStoreContextValue } from './GlobalStateStoreContext';
1
+ export * from "./GlobalStateStore";
2
+ export type * from "./GlobalStateStore.types";
3
+ export { default as GlobalStateStoreProvider } from "./GlobalStateStoreProvider.svelte";
4
+ export { useGlobalStateStoreContext } from "./GlobalStateStoreContext";
5
+ export type { GlobalStateStoreContextValue } from "./GlobalStateStoreContext";
@@ -1,3 +1,3 @@
1
- export { getApiURL, getAuthToken, GetGlobalState, GlobalStateStore, isLoggedIn, setApiURL, setAuthToken, useGlobalStateStore } from './GlobalStateStore';
2
- export { default as GlobalStateStoreProvider } from './GlobalStateStoreProvider.svelte';
3
- export { useGlobalStateStoreContext } from './GlobalStateStoreContext';
1
+ export * from "./GlobalStateStore";
2
+ export { default as GlobalStateStoreProvider } from "./GlobalStateStoreProvider.svelte";
3
+ export { useGlobalStateStoreContext } from "./GlobalStateStoreContext";
@@ -0,0 +1 @@
1
+ export { default as Portal } from "./Portal.svelte";
@@ -0,0 +1 @@
1
+ export { default as Portal } from "./Portal.svelte";
@@ -5,6 +5,7 @@ export * from "./FormerControllers/index";
5
5
  export * from "./Former/index";
6
6
  export * from "./Boxer/index";
7
7
  export * from "./Gridler/index";
8
+ export * from "./Portal/index";
8
9
  export * from "./Svark/index";
9
10
  export * from "./GlobalStateStore/index";
10
11
  export * from "./Screenshot/index";
@@ -5,6 +5,7 @@ export * from "./FormerControllers/index";
5
5
  export * from "./Former/index";
6
6
  export * from "./Boxer/index";
7
7
  export * from "./Gridler/index";
8
+ export * from "./Portal/index";
8
9
  export * from "./Svark/index";
9
10
  export * from "./GlobalStateStore/index";
10
11
  export * from "./Screenshot/index";
package/dist/index.d.ts CHANGED
@@ -3,14 +3,7 @@
3
3
  *
4
4
  * A modern component library built with Svelte 5, Skeleton UI, and Tailwind CSS v4.
5
5
  */
6
- export { Button } from './components/index.js';
7
- export * from './components/ErrorBoundary/index.js';
8
- export * from './components/BetterMenu/index.js';
9
- export * from './components/FormerControllers/index.js';
10
- export * from './components/Former/index.js';
11
- export * from './components/Boxer/index.js';
12
- export * from './components/Screenshot/index.js';
13
- export * from './components/VTree/index.js';
14
- export * from './actions/index.js';
15
- export * from './stores/index.js';
16
- export * from './utils/index.js';
6
+ export * from "./components/index.js";
7
+ export * from "./actions/index.js";
8
+ export * from "./stores/index.js";
9
+ export * from "./utils/index.js";
package/dist/index.js CHANGED
@@ -4,17 +4,10 @@
4
4
  * A modern component library built with Svelte 5, Skeleton UI, and Tailwind CSS v4.
5
5
  */
6
6
  // Components
7
- export { Button } from './components/index.js';
8
- export * from './components/ErrorBoundary/index.js';
9
- export * from './components/BetterMenu/index.js';
10
- export * from './components/FormerControllers/index.js';
11
- export * from './components/Former/index.js';
12
- export * from './components/Boxer/index.js';
13
- export * from './components/Screenshot/index.js';
14
- export * from './components/VTree/index.js';
7
+ export * from "./components/index.js";
15
8
  // Actions
16
- export * from './actions/index.js';
9
+ export * from "./actions/index.js";
17
10
  // Stores
18
- export * from './stores/index.js';
11
+ export * from "./stores/index.js";
19
12
  // Utils
20
- export * from './utils/index.js';
13
+ export * from "./utils/index.js";
@@ -1 +1,2 @@
1
1
  export {};
2
+ export type * from "./PropsWithChildren";
package/package.json CHANGED
@@ -1,85 +1,85 @@
1
1
  {
2
- "name": "@warkypublic/svelix",
3
- "version": "0.1.0",
4
- "description": "Svelte 5 component library with Skeleton UI and Tailwind CSS",
5
- "license": "Apache-2.0",
6
- "scripts": {
7
- "dev": "vite dev",
8
- "build": "vite build",
9
- "preview": "vite preview",
10
- "package": "svelte-kit sync && svelte-package && publint",
11
- "prepublishOnly": "npm run package",
12
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
13
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
14
- "storybook": "storybook dev -p 6006",
15
- "build-storybook": "storybook build",
16
- "lint": "eslint .",
17
- "lint:fix": "eslint . --fix",
18
- "test": "vitest run --project unit",
19
- "test:unit": "vitest run --project unit",
20
- "test:watch": "vitest --project unit",
21
- "test:e2e": "playwright test",
22
- "test:e2e:ui": "playwright test --ui"
23
- },
24
- "exports": {
25
- ".": {
26
- "types": "./dist/index.d.ts",
27
- "svelte": "./dist/index.js"
28
- }
29
- },
30
- "files": [
31
- "dist",
32
- "!dist/**/*.test.*",
33
- "!dist/**/*.spec.*"
34
- ],
35
- "peerDependencies": {
36
- "svelte": "^5.0.0"
37
- },
38
- "devDependencies": {
39
- "@chromatic-com/storybook": "^5.0.1",
40
- "@eslint/compat": "^2.0.2",
41
- "@eslint/js": "^10.0.1",
42
- "@playwright/test": "^1.58.2",
43
- "@sentry/svelte": "^10.39.0",
44
- "@skeletonlabs/skeleton": "^4.12.0",
45
- "@skeletonlabs/skeleton-svelte": "^4.12.0",
46
- "@storybook/addon-a11y": "^10.2.10",
47
- "@storybook/addon-docs": "^10.2.10",
48
- "@storybook/addon-svelte-csf": "^5.0.11",
49
- "@storybook/addon-vitest": "^10.2.10",
50
- "@storybook/sveltekit": "^10.2.10",
51
- "@storybook/test": "^8.6.15",
52
- "@sveltejs/adapter-auto": "^7.0.1",
53
- "@sveltejs/kit": "^2.53.0",
54
- "@sveltejs/package": "^2.5.7",
55
- "@sveltejs/vite-plugin-svelte": "^6.2.4",
56
- "@tailwindcss/vite": "^4.2.0",
57
- "@tanstack/svelte-virtual": "^3.13.18",
58
- "@types/node": "^25.3.0",
59
- "@vitest/browser-playwright": "^4.0.18",
60
- "@vitest/coverage-v8": "^4.0.18",
61
- "changeset": "^0.2.6",
62
- "eslint": "^10.0.1",
63
- "eslint-plugin-svelte": "^3.15.0",
64
- "globals": "^17.3.0",
65
- "playwright": "^1.58.2",
66
- "publint": "^0.3.17",
67
- "storybook": "^10.2.10",
68
- "svelte": "^5.53.2",
69
- "svelte-check": "^4.4.3",
70
- "tailwindcss": "^4.2.0",
71
- "tslib": "^2.8.1",
72
- "typescript": "^5.9.3",
73
- "typescript-eslint": "^8.56.0",
74
- "vite": "^7.3.1",
75
- "vitest": "^4.0.18"
76
- },
77
- "svelte": "./dist/index.js",
78
- "types": "./dist/index.d.ts",
79
- "type": "module",
80
- "dependencies": {
81
- "@js-temporal/polyfill": "^0.5.1",
82
- "@svar-ui/svelte-grid": "^2.5.0",
83
- "@warkypublic/resolvespec-js": "^1.0.1"
84
- }
2
+ "name": "@warkypublic/svelix",
3
+ "version": "0.1.2",
4
+ "description": "Svelte 5 component library with Skeleton UI and Tailwind CSS",
5
+ "license": "Apache-2.0",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "svelte": "./dist/index.js"
10
+ },
11
+ "./themes/svelix_orange.css": "./dist/themes/svelix_orange.css"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "!dist/**/*.test.*",
16
+ "!dist/**/*.spec.*"
17
+ ],
18
+ "peerDependencies": {
19
+ "svelte": "^5.0.0"
20
+ },
21
+ "devDependencies": {
22
+ "@changesets/cli": "^2.29.8",
23
+ "@chromatic-com/storybook": "^5.0.1",
24
+ "@eslint/compat": "^2.0.2",
25
+ "@eslint/js": "^10.0.1",
26
+ "@playwright/test": "^1.58.2",
27
+ "@sentry/svelte": "^10.39.0",
28
+ "@skeletonlabs/skeleton": "^4.12.0",
29
+ "@skeletonlabs/skeleton-svelte": "^4.12.0",
30
+ "@storybook/addon-a11y": "^10.2.10",
31
+ "@storybook/addon-docs": "^10.2.10",
32
+ "@storybook/addon-svelte-csf": "^5.0.11",
33
+ "@storybook/addon-vitest": "^10.2.10",
34
+ "@storybook/sveltekit": "^10.2.10",
35
+ "@storybook/test": "^8.6.15",
36
+ "@sveltejs/adapter-auto": "^7.0.1",
37
+ "@sveltejs/kit": "^2.53.0",
38
+ "@sveltejs/package": "^2.5.7",
39
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
40
+ "@tailwindcss/vite": "^4.2.0",
41
+ "@tanstack/svelte-virtual": "^3.13.18",
42
+ "@types/node": "^25.3.0",
43
+ "@vitest/browser-playwright": "^4.0.18",
44
+ "@vitest/coverage-v8": "^4.0.18",
45
+ "eslint": "^10.0.1",
46
+ "eslint-plugin-svelte": "^3.15.0",
47
+ "globals": "^17.3.0",
48
+ "playwright": "^1.58.2",
49
+ "publint": "^0.3.17",
50
+ "storybook": "^10.2.10",
51
+ "svelte": "^5.53.2",
52
+ "svelte-check": "^4.4.3",
53
+ "tailwindcss": "^4.2.0",
54
+ "tslib": "^2.8.1",
55
+ "typescript": "^5.9.3",
56
+ "typescript-eslint": "^8.56.0",
57
+ "vite": "^7.3.1",
58
+ "vitest": "^4.0.18"
59
+ },
60
+ "svelte": "./dist/index.js",
61
+ "types": "./dist/index.d.ts",
62
+ "type": "module",
63
+ "dependencies": {
64
+ "@js-temporal/polyfill": "^0.5.1",
65
+ "@svar-ui/svelte-grid": "^2.5.0",
66
+ "@warkypublic/resolvespec-js": "^1.0.1"
67
+ },
68
+ "scripts": {
69
+ "dev": "vite dev",
70
+ "build": "vite build",
71
+ "preview": "vite preview",
72
+ "package": "svelte-kit sync && svelte-package && publint",
73
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
74
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
75
+ "storybook": "storybook dev -p 6006",
76
+ "build-storybook": "storybook build",
77
+ "lint": "eslint .",
78
+ "lint:fix": "eslint . --fix",
79
+ "test": "vitest run --project unit",
80
+ "test:unit": "vitest run --project unit",
81
+ "test:watch": "vitest --project unit",
82
+ "test:e2e": "playwright test",
83
+ "test:e2e:ui": "playwright test --ui"
84
+ }
85
85
  }