@warkypublic/svelix 0.1.46 → 0.2.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 +93 -33
- package/dist/components/BetterMenu/BetterMenu.svelte +21 -37
- package/dist/components/BetterMenu/BetterMenuAsyncButton.svelte +21 -31
- package/dist/components/BetterMenu/BetterMenuPreview.svelte +27 -29
- package/dist/components/BetterMenu/MenuRenderer.svelte +40 -51
- package/dist/components/Boxer/Boxer.svelte +492 -602
- package/dist/components/Boxer/BoxerTarget.svelte +6 -46
- package/dist/components/Boxer/BoxerTarget.svelte.d.ts +1 -0
- package/dist/components/Boxer/types.d.ts +0 -1
- package/dist/components/Button.svelte +19 -43
- package/dist/components/ButtonPreview.svelte +2 -11
- package/dist/components/CardGrid/CardGrid.svelte +489 -614
- package/dist/components/CardGrid/CardGrid.svelte.d.ts +4 -0
- package/dist/components/CardGrid/CardGridFilterPanel.svelte +111 -90
- package/dist/components/CardGrid/DefaultCard.svelte +86 -97
- package/dist/components/CardGrid/DefaultCard.svelte.d.ts +1 -0
- package/dist/components/CardGrid/ImageCardStory.svelte +87 -36
- package/dist/components/CardGrid/cardGrid.d.ts +24 -0
- package/dist/components/CardGrid/cardGrid.js +20 -0
- package/dist/components/ContentEditor/CollaboraInsertTextDemo.svelte +5 -10
- package/dist/components/ContentEditor/ContentEditor.svelte +24 -50
- package/dist/components/ContentEditor/subcomponents/AudioPlayer.svelte +17 -17
- package/dist/components/ContentEditor/subcomponents/CollaboraEditor.svelte +244 -309
- package/dist/components/ContentEditor/subcomponents/EmailViewer.svelte +2 -3
- package/dist/components/ContentEditor/subcomponents/ImageViewer.svelte +14 -15
- package/dist/components/ContentEditor/subcomponents/MarkdownViewer.svelte +74 -90
- package/dist/components/ContentEditor/subcomponents/MonacoEditor.svelte +75 -103
- package/dist/components/ContentEditor/subcomponents/Office365Editor.svelte +234 -297
- package/dist/components/ContentEditor/subcomponents/PdfViewer.svelte +14 -20
- package/dist/components/ContentEditor/subcomponents/TextEditor.svelte +122 -150
- package/dist/components/ContentEditor/subcomponents/UnknownFile.svelte +105 -126
- package/dist/components/ContentEditor/subcomponents/VideoPlayer.svelte +17 -17
- package/dist/components/ContentEditor/subcomponents/ZipViewer.svelte +2 -3
- package/dist/components/ErrorBoundary/ErrorBoundary.svelte +41 -58
- package/dist/components/ErrorBoundary/ErrorBoundaryPreview.svelte +8 -16
- package/dist/components/Former/Former.svelte +306 -424
- package/dist/components/Former/FormerButtonArea.svelte +17 -68
- package/dist/components/Former/FormerDrawer.svelte +16 -80
- package/dist/components/Former/FormerDrawerPreview.svelte +99 -89
- package/dist/components/Former/FormerModal.svelte +16 -74
- package/dist/components/Former/FormerModalPreview.svelte +99 -89
- package/dist/components/Former/FormerPreview.svelte +76 -78
- package/dist/components/Former/FormerRestApiPreview.svelte +55 -48
- package/dist/components/Former/formerOverlayHelpers.svelte.d.ts +11 -0
- package/dist/components/Former/formerOverlayHelpers.svelte.js +38 -0
- package/dist/components/Former/index.d.ts +1 -0
- package/dist/components/Former/index.js +1 -0
- package/dist/components/FormerControllers/ButtonCtrl.svelte +13 -49
- package/dist/components/FormerControllers/CtrlFieldShell.svelte +15 -0
- package/dist/components/FormerControllers/CtrlFieldShell.svelte.d.ts +12 -0
- package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.svelte +285 -457
- package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlCalendar.svelte +95 -136
- package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlPickerPanel.svelte +3 -62
- package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlTimeFields.svelte +143 -217
- package/dist/components/FormerControllers/IconButtonCtrl.svelte +13 -47
- package/dist/components/FormerControllers/InlineWrapper.svelte +12 -41
- package/dist/components/FormerControllers/InlineWrapperPreview.svelte +4 -26
- package/dist/components/FormerControllers/NativeSelectCtrl.svelte +7 -39
- package/dist/components/FormerControllers/NumberInputCtrl.svelte +21 -43
- package/dist/components/FormerControllers/PasswordInputCtrl.svelte +8 -33
- package/dist/components/FormerControllers/SwitchCtrl.svelte +4 -20
- package/dist/components/FormerControllers/TextAreaCtrl.svelte +7 -34
- package/dist/components/FormerControllers/TextInputCtrl.svelte +7 -34
- package/dist/components/FormerControllers/ctrlLoading.svelte.d.ts +8 -0
- package/dist/components/FormerControllers/ctrlLoading.svelte.js +43 -0
- package/dist/components/FormerControllers/index.d.ts +2 -0
- package/dist/components/FormerControllers/index.js +2 -0
- package/dist/components/FormerControllers/utils.d.ts +1 -0
- package/dist/components/FormerControllers/utils.js +3 -0
- package/dist/components/GlobalStateStore/GlobalStateStoreProvider.svelte +73 -120
- package/dist/components/Gridler/components/Gridler.svelte +344 -442
- package/dist/components/Gridler/components/GridlerCanvas.svelte +720 -1115
- package/dist/components/Gridler/components/GridlerEditor.svelte +2 -15
- package/dist/components/Gridler/components/GridlerFull.svelte +521 -841
- package/dist/components/Gridler/components/GridlerFull.svelte.d.ts +1 -1
- package/dist/components/Gridler/components/GridlerFullWithFormerPreview.svelte +194 -147
- package/dist/components/Gridler/components/GridlerSearch.svelte +7 -16
- package/dist/components/Gridler/components/GridlerSearchToggle.svelte +7 -19
- package/dist/components/Gridler/types.d.ts +1 -1
- package/dist/components/Gridler/utils/serverPaging.d.ts +1 -0
- package/dist/components/Gridler/utils/serverPaging.js +7 -0
- package/dist/components/Icons/IconAdd.svelte +1 -3
- package/dist/components/Icons/IconAlertCircle.svelte +1 -3
- package/dist/components/Icons/IconAlertTriangle.svelte +1 -3
- package/dist/components/Icons/IconCamera.svelte +1 -3
- package/dist/components/Icons/IconClose.svelte +1 -3
- package/dist/components/Icons/IconEdit.svelte +1 -3
- package/dist/components/Icons/IconFilter.svelte +1 -3
- package/dist/components/Icons/IconSearch.svelte +1 -3
- package/dist/components/Icons/IconSort.svelte +1 -3
- package/dist/components/Icons/IconTrash.svelte +1 -3
- package/dist/components/Portal/Portal.svelte +14 -38
- package/dist/components/Screenshot/Screenshot.svelte +7 -13
- package/dist/components/Svark/Svark.svelte +680 -852
- package/dist/components/Svark/SvarkContextMenu.svelte +44 -63
- package/dist/components/Svark/SvarkInfiniteLoader.svelte +2 -6
- package/dist/components/Svark/SvarkPager.svelte +2 -28
- package/dist/components/Svark/SvarkSelectionDemo.svelte +4 -8
- package/dist/components/Svark/SvarkTopBar.svelte +9 -74
- package/dist/components/SvarkGrid/SvarkGrid.svelte +877 -1123
- package/dist/components/SvarkGrid/components/SvarkColumnFilterForm.svelte +45 -58
- package/dist/components/SvarkGrid/components/SvarkContextMenu.svelte +44 -63
- package/dist/components/SvarkGrid/components/SvarkHeaderFilterCell.svelte +41 -75
- package/dist/components/SvarkGrid/components/SvarkInfiniteLoader.svelte +2 -6
- package/dist/components/SvarkGrid/components/SvarkPager.svelte +2 -28
- package/dist/components/SvarkGrid/components/SvarkSearchPopover.svelte +8 -16
- package/dist/components/SvarkGrid/components/SvarkTopBar.svelte +6 -62
- package/dist/components/SvarkGrid/internal/SvarkGridView.svelte +345 -507
- package/dist/components/VTree/VTree.svelte +454 -431
- package/dist/components/VTree/VTree.utils.d.ts +23 -0
- package/dist/components/VTree/VTree.utils.js +73 -0
- package/dist/components/VTree/VTreeContextMenu.svelte +21 -33
- package/dist/components/VTree/VTreeControlledSelectionDemo.svelte +20 -0
- package/dist/components/VTree/VTreeControlledSelectionDemo.svelte.d.ts +18 -0
- package/dist/components/VTree/VTreeCustomizationDemo.svelte +23 -0
- package/dist/components/VTree/VTreeCustomizationDemo.svelte.d.ts +18 -0
- package/dist/components/VTree/VTreeEventsDemo.svelte +48 -58
- package/dist/components/VTree/VTreeInteractionDemo.svelte +29 -0
- package/dist/components/VTree/VTreeInteractionDemo.svelte.d.ts +18 -0
- package/dist/components/VTree/VTreeMultiSelectDemo.svelte +27 -0
- package/dist/components/VTree/VTreeMultiSelectDemo.svelte.d.ts +18 -0
- package/dist/components/VTree/VTreeRow.svelte +77 -115
- package/dist/components/VTree/VTreeRow.svelte.d.ts +34 -18
- package/dist/components/VTree/VTreeSearch.svelte +6 -13
- package/dist/components/VTree/VTreeVirtualViewport.svelte +54 -143
- package/dist/components/VTree/VTreeVirtualViewport.svelte.d.ts +35 -18
- package/dist/components/VTree/types.d.ts +39 -1
- package/llm/COMPONENT_GUIDE.md +25 -0
- package/package.json +51 -50
package/llm/COMPONENT_GUIDE.md
CHANGED
|
@@ -130,6 +130,30 @@ The project now contains a mix of simple components, folder-based component modu
|
|
|
130
130
|
</script>
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
+
**⚠️ Guardrail — never read and write the same `$state` inside one effect**
|
|
134
|
+
|
|
135
|
+
```svelte
|
|
136
|
+
<script lang="ts">
|
|
137
|
+
// ❌ Infinite loop: .filter() always returns a NEW array reference, even
|
|
138
|
+
// when nothing was removed. The effect tracks its own write target, sees
|
|
139
|
+
// a "changed" value on every run, and reruns forever — Svelte throws
|
|
140
|
+
// effect_update_depth_exceeded ("reads and writes the same piece of state").
|
|
141
|
+
$effect(() => {
|
|
142
|
+
selected = selected.filter((item) => validIds.has(item.id));
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// ✅ Read the current value via untrack() so the effect doesn't depend on
|
|
146
|
+
// its own write target, and only write when something actually changed.
|
|
147
|
+
$effect(() => {
|
|
148
|
+
const current = untrack(() => selected);
|
|
149
|
+
const next = current.filter((item) => validIds.has(item.id));
|
|
150
|
+
if (next.length !== current.length) selected = next;
|
|
151
|
+
});
|
|
152
|
+
</script>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Same hazard applies to any derived-and-reassigned value, not just `.filter()`: object/array spreads (`{...x}`, `[...x]`), `new Set(x)` / `new Map(x)`, `.map()`, `.sort()` copies — anything producing a new reference even when the content is unchanged. Real-world case: `CardGrid.svelte`'s "Reconcile selection" effect.
|
|
156
|
+
|
|
133
157
|
#### Snippet - Children/Slots
|
|
134
158
|
```svelte
|
|
135
159
|
<script lang="ts">
|
|
@@ -1211,6 +1235,7 @@ Before considering a component complete:
|
|
|
1211
1235
|
- [ ] Focus management is correct
|
|
1212
1236
|
- [ ] Documented in stories (autodocs)
|
|
1213
1237
|
- [ ] Re-exported from `src/lib/components/index.ts` and therefore reachable from `src/lib/index.ts`
|
|
1238
|
+
- [ ] No `$effect` reads and writes the same `$state` without `untrack()` / a change-guard (see $effect Guardrail above)
|
|
1214
1239
|
|
|
1215
1240
|
## Advanced Patterns
|
|
1216
1241
|
|
package/package.json
CHANGED
|
@@ -1,26 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warkypublic/svelix",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Svelte 5 component library with Skeleton UI and Tailwind CSS",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite dev",
|
|
8
|
-
"build": "vite build && pnpm run package",
|
|
9
|
-
"preview": "vite preview",
|
|
10
|
-
"package": "svelte-kit sync && svelte-package && mkdir -p dist/css && cp src/lib/css/tailwind-source.css dist/css/tailwind-source.css && 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
6
|
"exports": {
|
|
25
7
|
".": {
|
|
26
8
|
"types": "./dist/index.d.ts",
|
|
@@ -43,44 +25,45 @@
|
|
|
43
25
|
"svelte": "^5.0.0"
|
|
44
26
|
},
|
|
45
27
|
"devDependencies": {
|
|
46
|
-
"@changesets/cli": "^2.31.
|
|
28
|
+
"@changesets/cli": "^2.31.1",
|
|
47
29
|
"@chromatic-com/storybook": "^5.2.1",
|
|
48
30
|
"@eslint/compat": "^2.1.0",
|
|
49
31
|
"@eslint/js": "^10.0.1",
|
|
50
|
-
"@playwright/test": "^1.
|
|
51
|
-
"@sentry/svelte": "^10.
|
|
32
|
+
"@playwright/test": "^1.61.1",
|
|
33
|
+
"@sentry/svelte": "^10.66.0",
|
|
52
34
|
"@skeletonlabs/skeleton": "^4.15.2",
|
|
53
35
|
"@skeletonlabs/skeleton-svelte": "^4.15.2",
|
|
54
|
-
"@storybook/addon-a11y": "^10.
|
|
55
|
-
"@storybook/addon-docs": "^10.
|
|
36
|
+
"@storybook/addon-a11y": "^10.5.2",
|
|
37
|
+
"@storybook/addon-docs": "^10.5.2",
|
|
56
38
|
"@storybook/addon-svelte-csf": "^5.1.2",
|
|
57
|
-
"@storybook/addon-vitest": "^10.
|
|
58
|
-
"@storybook/sveltekit": "^10.
|
|
39
|
+
"@storybook/addon-vitest": "^10.5.2",
|
|
40
|
+
"@storybook/sveltekit": "^10.5.2",
|
|
59
41
|
"@storybook/test": "^8.6.15",
|
|
60
42
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
61
|
-
"@sveltejs/kit": "^2.
|
|
62
|
-
"@sveltejs/package": "^2.5.
|
|
63
|
-
"@sveltejs/vite-plugin-svelte": "^7.
|
|
64
|
-
"@tailwindcss/vite": "^4.3.
|
|
65
|
-
"@tanstack/svelte-virtual": "^3.13.
|
|
66
|
-
"@types/node": "^
|
|
67
|
-
"@vitest/browser-playwright": "^4.1.
|
|
68
|
-
"@vitest/coverage-v8": "^4.1.
|
|
69
|
-
"
|
|
70
|
-
"eslint
|
|
71
|
-
"
|
|
72
|
-
"
|
|
43
|
+
"@sveltejs/kit": "^2.69.3",
|
|
44
|
+
"@sveltejs/package": "^2.5.8",
|
|
45
|
+
"@sveltejs/vite-plugin-svelte": "^7.2.0",
|
|
46
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
47
|
+
"@tanstack/svelte-virtual": "^3.13.32",
|
|
48
|
+
"@types/node": "^26.1.1",
|
|
49
|
+
"@vitest/browser-playwright": "^4.1.10",
|
|
50
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
51
|
+
"esbuild": "^0.28.1",
|
|
52
|
+
"eslint": "^10.7.0",
|
|
53
|
+
"eslint-plugin-svelte": "^3.20.0",
|
|
54
|
+
"globals": "^17.7.0",
|
|
55
|
+
"playwright": "^1.61.1",
|
|
73
56
|
"publint": "^0.3.21",
|
|
74
|
-
"storybook": "^10.
|
|
75
|
-
"svelte": "^5.
|
|
76
|
-
"svelte-check": "^4.
|
|
77
|
-
"tailwindcss": "^4.3.
|
|
57
|
+
"storybook": "^10.5.2",
|
|
58
|
+
"svelte": "^5.56.5",
|
|
59
|
+
"svelte-check": "^4.7.3",
|
|
60
|
+
"tailwindcss": "^4.3.3",
|
|
78
61
|
"tslib": "^2.8.1",
|
|
79
62
|
"typescript": "^6.0.3",
|
|
80
|
-
"typescript-eslint": "^8.
|
|
81
|
-
"vite": "^8.
|
|
63
|
+
"typescript-eslint": "^8.64.0",
|
|
64
|
+
"vite": "^8.1.5",
|
|
82
65
|
"vite-plugin-monaco-editor": "^1.1.0",
|
|
83
|
-
"vitest": "^4.1.
|
|
66
|
+
"vitest": "^4.1.10"
|
|
84
67
|
},
|
|
85
68
|
"svelte": "./dist/index.js",
|
|
86
69
|
"types": "./dist/index.d.ts",
|
|
@@ -92,15 +75,33 @@
|
|
|
92
75
|
"@cartamd/plugin-component": "^1.1.1",
|
|
93
76
|
"@cartamd/plugin-emoji": "^4.3.0",
|
|
94
77
|
"@cartamd/plugin-math": "^4.3.1",
|
|
95
|
-
"@friendofsvelte/tipex": "^0.
|
|
78
|
+
"@friendofsvelte/tipex": "^0.2.0",
|
|
96
79
|
"@js-temporal/polyfill": "^0.5.1",
|
|
97
|
-
"@svar-ui/svelte-grid": "^2.
|
|
98
|
-
"@warkypublic/resolvespec-js": "^1.0.1",
|
|
80
|
+
"@svar-ui/svelte-grid": "^2.7.1",
|
|
99
81
|
"@warkypublic/artemis-kit": "^1.0.10",
|
|
82
|
+
"@warkypublic/resolvespec-js": "^1.0.1",
|
|
100
83
|
"carta-md": "^4.11.2",
|
|
101
84
|
"github-markdown-css": "^5.9.0",
|
|
102
|
-
"isomorphic-dompurify": "^3.
|
|
103
|
-
"katex": "^0.
|
|
85
|
+
"isomorphic-dompurify": "^3.18.0",
|
|
86
|
+
"katex": "^0.17.0",
|
|
104
87
|
"monaco-editor": "^0.55.1"
|
|
88
|
+
},
|
|
89
|
+
"scripts": {
|
|
90
|
+
"dev": "vite dev",
|
|
91
|
+
"build": "vite build && pnpm run package",
|
|
92
|
+
"preview": "vite preview",
|
|
93
|
+
"package": "svelte-kit sync && svelte-package && mkdir -p dist/css && cp src/lib/css/tailwind-source.css dist/css/tailwind-source.css && publint",
|
|
94
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
95
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
96
|
+
"storybook": "storybook dev -p 6006",
|
|
97
|
+
"build-storybook": "storybook build",
|
|
98
|
+
"lint": "eslint .",
|
|
99
|
+
"lint:fix": "eslint . --fix",
|
|
100
|
+
"test": "vitest run --project unit",
|
|
101
|
+
"test:unit": "vitest run --project unit",
|
|
102
|
+
"test:watch": "vitest --project unit",
|
|
103
|
+
"test:e2e": "playwright test && playwright test --config=playwright.storybook.config.ts",
|
|
104
|
+
"test:e2e:ui": "playwright test --ui",
|
|
105
|
+
"test:storybook": "playwright test --config=playwright.storybook.config.ts"
|
|
105
106
|
}
|
|
106
107
|
}
|