@warkypublic/svelix 0.1.44 → 0.1.47

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.
Files changed (109) hide show
  1. package/README.md +93 -33
  2. package/dist/components/BetterMenu/BetterMenu.svelte +21 -37
  3. package/dist/components/BetterMenu/BetterMenuAsyncButton.svelte +21 -31
  4. package/dist/components/BetterMenu/BetterMenuPreview.svelte +27 -29
  5. package/dist/components/BetterMenu/MenuRenderer.svelte +40 -51
  6. package/dist/components/Boxer/Boxer.svelte +488 -602
  7. package/dist/components/Boxer/BoxerTarget.svelte +6 -46
  8. package/dist/components/Boxer/BoxerTarget.svelte.d.ts +1 -0
  9. package/dist/components/Boxer/types.d.ts +0 -1
  10. package/dist/components/Button.svelte +19 -43
  11. package/dist/components/ButtonPreview.svelte +2 -11
  12. package/dist/components/CardGrid/CardGrid.svelte +1141 -0
  13. package/dist/components/CardGrid/CardGrid.svelte.d.ts +61 -0
  14. package/dist/components/CardGrid/CardGridFilterPanel.svelte +320 -0
  15. package/dist/components/CardGrid/CardGridFilterPanel.svelte.d.ts +11 -0
  16. package/dist/components/CardGrid/DefaultCard.svelte +287 -0
  17. package/dist/components/CardGrid/DefaultCard.svelte.d.ts +10 -0
  18. package/dist/components/CardGrid/ImageCardStory.svelte +308 -0
  19. package/dist/components/CardGrid/ImageCardStory.svelte.d.ts +18 -0
  20. package/dist/components/CardGrid/cardGrid.d.ts +33 -0
  21. package/dist/components/CardGrid/cardGrid.js +21 -0
  22. package/dist/components/CardGrid/index.d.ts +4 -0
  23. package/dist/components/CardGrid/index.js +4 -0
  24. package/dist/components/ContentEditor/CollaboraInsertTextDemo.svelte +5 -10
  25. package/dist/components/ContentEditor/ContentEditor.svelte +24 -50
  26. package/dist/components/ContentEditor/subcomponents/AudioPlayer.svelte +17 -17
  27. package/dist/components/ContentEditor/subcomponents/CollaboraEditor.svelte +244 -309
  28. package/dist/components/ContentEditor/subcomponents/EmailViewer.svelte +2 -3
  29. package/dist/components/ContentEditor/subcomponents/ImageViewer.svelte +14 -15
  30. package/dist/components/ContentEditor/subcomponents/MarkdownViewer.svelte +74 -90
  31. package/dist/components/ContentEditor/subcomponents/MonacoEditor.svelte +75 -103
  32. package/dist/components/ContentEditor/subcomponents/Office365Editor.svelte +234 -297
  33. package/dist/components/ContentEditor/subcomponents/PdfViewer.svelte +14 -20
  34. package/dist/components/ContentEditor/subcomponents/TextEditor.svelte +122 -150
  35. package/dist/components/ContentEditor/subcomponents/UnknownFile.svelte +105 -126
  36. package/dist/components/ContentEditor/subcomponents/VideoPlayer.svelte +17 -17
  37. package/dist/components/ContentEditor/subcomponents/ZipViewer.svelte +2 -3
  38. package/dist/components/ErrorBoundary/ErrorBoundary.svelte +41 -58
  39. package/dist/components/ErrorBoundary/ErrorBoundaryPreview.svelte +8 -16
  40. package/dist/components/Former/Former.svelte +306 -424
  41. package/dist/components/Former/FormerButtonArea.svelte +17 -68
  42. package/dist/components/Former/FormerDrawer.svelte +26 -78
  43. package/dist/components/Former/FormerDrawerPreview.svelte +99 -89
  44. package/dist/components/Former/FormerModal.svelte +24 -70
  45. package/dist/components/Former/FormerModalPreview.svelte +99 -89
  46. package/dist/components/Former/FormerPreview.svelte +76 -78
  47. package/dist/components/Former/FormerRestApiPreview.svelte +55 -48
  48. package/dist/components/FormerControllers/ButtonCtrl.svelte +13 -44
  49. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrl.svelte +280 -445
  50. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlCalendar.svelte +95 -136
  51. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlPickerPanel.svelte +3 -62
  52. package/dist/components/FormerControllers/DateTimeCtrl/DateTimeCtrlTimeFields.svelte +143 -217
  53. package/dist/components/FormerControllers/IconButtonCtrl.svelte +13 -42
  54. package/dist/components/FormerControllers/InlineWrapper.svelte +12 -41
  55. package/dist/components/FormerControllers/InlineWrapperPreview.svelte +4 -26
  56. package/dist/components/FormerControllers/NativeSelectCtrl.svelte +3 -29
  57. package/dist/components/FormerControllers/NumberInputCtrl.svelte +9 -35
  58. package/dist/components/FormerControllers/PasswordInputCtrl.svelte +4 -23
  59. package/dist/components/FormerControllers/SwitchCtrl.svelte +3 -20
  60. package/dist/components/FormerControllers/TextAreaCtrl.svelte +3 -24
  61. package/dist/components/FormerControllers/TextInputCtrl.svelte +3 -24
  62. package/dist/components/GlobalStateStore/GlobalStateStoreProvider.svelte +73 -120
  63. package/dist/components/Gridler/components/Gridler.svelte +338 -442
  64. package/dist/components/Gridler/components/GridlerCanvas.svelte +720 -1115
  65. package/dist/components/Gridler/components/GridlerEditor.svelte +2 -15
  66. package/dist/components/Gridler/components/GridlerFull.svelte +520 -841
  67. package/dist/components/Gridler/components/GridlerFull.svelte.d.ts +1 -1
  68. package/dist/components/Gridler/components/GridlerFullWithFormerPreview.svelte +194 -147
  69. package/dist/components/Gridler/components/GridlerSearch.svelte +7 -16
  70. package/dist/components/Gridler/components/GridlerSearchToggle.svelte +7 -19
  71. package/dist/components/Gridler/types.d.ts +1 -1
  72. package/dist/components/Icons/IconAdd.svelte +1 -3
  73. package/dist/components/Icons/IconAlertCircle.svelte +1 -3
  74. package/dist/components/Icons/IconAlertTriangle.svelte +1 -3
  75. package/dist/components/Icons/IconCamera.svelte +1 -3
  76. package/dist/components/Icons/IconClose.svelte +1 -3
  77. package/dist/components/Icons/IconEdit.svelte +1 -3
  78. package/dist/components/Icons/IconFilter.svelte +1 -3
  79. package/dist/components/Icons/IconSearch.svelte +1 -3
  80. package/dist/components/Icons/IconSort.svelte +1 -3
  81. package/dist/components/Icons/IconTrash.svelte +1 -3
  82. package/dist/components/Portal/Portal.svelte +14 -38
  83. package/dist/components/Screenshot/Screenshot.svelte +7 -13
  84. package/dist/components/Svark/Svark.svelte +680 -852
  85. package/dist/components/Svark/SvarkContextMenu.svelte +44 -63
  86. package/dist/components/Svark/SvarkInfiniteLoader.svelte +2 -6
  87. package/dist/components/Svark/SvarkPager.svelte +2 -28
  88. package/dist/components/Svark/SvarkSelectionDemo.svelte +4 -8
  89. package/dist/components/Svark/SvarkTopBar.svelte +9 -74
  90. package/dist/components/SvarkGrid/SvarkGrid.svelte +877 -1123
  91. package/dist/components/SvarkGrid/components/SvarkColumnFilterForm.svelte +45 -58
  92. package/dist/components/SvarkGrid/components/SvarkContextMenu.svelte +44 -63
  93. package/dist/components/SvarkGrid/components/SvarkHeaderFilterCell.svelte +41 -75
  94. package/dist/components/SvarkGrid/components/SvarkInfiniteLoader.svelte +2 -6
  95. package/dist/components/SvarkGrid/components/SvarkPager.svelte +2 -28
  96. package/dist/components/SvarkGrid/components/SvarkSearchPopover.svelte +8 -16
  97. package/dist/components/SvarkGrid/components/SvarkTopBar.svelte +6 -62
  98. package/dist/components/SvarkGrid/internal/SvarkGridView.svelte +345 -507
  99. package/dist/components/VTree/VTree.svelte +349 -431
  100. package/dist/components/VTree/VTreeContextMenu.svelte +21 -33
  101. package/dist/components/VTree/VTreeEventsDemo.svelte +48 -58
  102. package/dist/components/VTree/VTreeRow.svelte +13 -65
  103. package/dist/components/VTree/VTreeSearch.svelte +6 -13
  104. package/dist/components/VTree/VTreeVirtualViewport.svelte +37 -106
  105. package/dist/components/index.d.ts +1 -0
  106. package/dist/components/index.js +1 -0
  107. package/llm/COMPONENT_GUIDE.md +240 -0
  108. package/llm/plans/card_grid.plan.md +305 -0
  109. package/package.json +48 -46
@@ -1,67 +1,48 @@
1
- <script lang="ts">
2
- import Portal from '../Portal/Portal.svelte';
3
- import { registerOverlay } from '../OverlayStack';
4
- import { tick } from 'svelte';
5
- import type { SvarkContextMenuItem } from './types.js';
6
-
7
- export interface Props {
8
- open: boolean;
9
- x: number;
10
- y: number;
11
- items: SvarkContextMenuItem[];
12
- onselectitem?: (item: SvarkContextMenuItem | { id: '__close__' }) => void;
13
- }
14
-
15
- const { open, x, y, items, onselectitem }: Props = $props();
16
-
17
- let backdropZ = $state(1090);
18
- let menuZ = $state(1100);
19
-
20
- let menuRef = $state<HTMLDivElement | null>(null);
21
- let clampedX = $state(0);
22
- let clampedY = $state(0);
23
-
24
- function clampToViewport() {
25
- const node = menuRef;
26
- if (!node) return;
27
-
28
- const rect = node.getBoundingClientRect();
29
- const vw = window.innerWidth;
30
- const vh = window.innerHeight;
31
-
32
- // Keep the menu inside the viewport with a small gutter.
33
- const gutter = 8;
34
- clampedX = Math.max(gutter, Math.min(clampedX, vw - rect.width - gutter));
35
- clampedY = Math.max(gutter, Math.min(clampedY, vh - rect.height - gutter));
36
- }
37
-
38
- $effect(() => {
39
- if (!open) return;
40
-
41
- const overlay = registerOverlay({ kind: 'contextmenu', mount: 'portal' });
42
- backdropZ = overlay.layer.backdrop;
43
- menuZ = overlay.layer.content;
44
-
45
- clampedX = x;
46
- clampedY = y;
47
-
48
- // Wait for the menu to render before measuring and clamping.
49
- void tick().then(clampToViewport);
50
-
51
- return () => {
52
- overlay.unregister();
53
- backdropZ = 1090;
54
- menuZ = 1100;
55
- menuRef = null;
56
- };
57
- });
58
-
59
- $effect(() => {
60
- if (!open) return;
61
- clampedX = x;
62
- clampedY = y;
63
- void tick().then(clampToViewport);
1
+ <script lang="ts">import Portal from "../Portal/Portal.svelte";
2
+ import { registerOverlay } from "../OverlayStack";
3
+ import { tick } from "svelte";
4
+ const { open, x, y, items, onselectitem } = $props();
5
+ let backdropZ = $state(1090);
6
+ let menuZ = $state(1100);
7
+ let menuRef = $state(null);
8
+ let clampedX = $state(0);
9
+ let clampedY = $state(0);
10
+ function clampToViewport() {
11
+ const node = menuRef;
12
+ if (!node) return;
13
+ const rect = node.getBoundingClientRect();
14
+ const vw = window.innerWidth;
15
+ const vh = window.innerHeight;
16
+ // Keep the menu inside the viewport with a small gutter.
17
+ const gutter = 8;
18
+ clampedX = Math.max(gutter, Math.min(clampedX, vw - rect.width - gutter));
19
+ clampedY = Math.max(gutter, Math.min(clampedY, vh - rect.height - gutter));
20
+ }
21
+ $effect(() => {
22
+ if (!open) return;
23
+ const overlay = registerOverlay({
24
+ kind: "contextmenu",
25
+ mount: "portal"
64
26
  });
27
+ backdropZ = overlay.layer.backdrop;
28
+ menuZ = overlay.layer.content;
29
+ clampedX = x;
30
+ clampedY = y;
31
+ // Wait for the menu to render before measuring and clamping.
32
+ void tick().then(clampToViewport);
33
+ return () => {
34
+ overlay.unregister();
35
+ backdropZ = 1090;
36
+ menuZ = 1100;
37
+ menuRef = null;
38
+ };
39
+ });
40
+ $effect(() => {
41
+ if (!open) return;
42
+ clampedX = x;
43
+ clampedY = y;
44
+ void tick().then(clampToViewport);
45
+ });
65
46
  </script>
66
47
 
67
48
  <Portal>
@@ -1,9 +1,5 @@
1
- <script lang="ts">
2
- export interface Props {
3
- dark?: boolean;
4
- }
5
-
6
- let { dark = false }: Props = $props();
1
+ <script lang="ts">let { dark = false } = $props();
2
+ export {};
7
3
  </script>
8
4
 
9
5
  <div class="svark-inf-loader" class:svark-inf-loader-dark={dark} aria-label="Loading more rows...">
@@ -1,31 +1,5 @@
1
- <script lang="ts">
2
- export interface Props {
3
- dark?: boolean;
4
- page: number;
5
- total: number;
6
- totalPages: number;
7
- pageStart: number;
8
- pageEnd: number;
9
- loading: boolean;
10
- onFirst: () => void;
11
- onPrev: () => void;
12
- onNext: () => void;
13
- onLast: () => void;
14
- }
15
-
16
- let {
17
- dark = false,
18
- page,
19
- total,
20
- totalPages,
21
- pageStart,
22
- pageEnd,
23
- loading,
24
- onFirst,
25
- onPrev,
26
- onNext,
27
- onLast
28
- }: Props = $props();
1
+ <script lang="ts">let { dark = false, page, total, totalPages, pageStart, pageEnd, loading, onFirst, onPrev, onNext, onLast } = $props();
2
+ export {};
29
3
  </script>
30
4
 
31
5
  <div class="svark-pager" class:svark-pager-dark={dark} aria-label="Pagination">
@@ -1,11 +1,7 @@
1
- <script lang="ts">
2
- import Svark from './Svark.svelte';
3
- import type { SvarkProps } from './types.js';
4
-
5
- // Accept all Svark props but own the onselect handler
6
- let { onselect: _ignored, ...rest }: SvarkProps = $props();
7
-
8
- let selectedIds = $state<(string | number)[]>([]);
1
+ <script lang="ts">import Svark from "./Svark.svelte";
2
+ // Accept all Svark props but own the onselect handler
3
+ let { onselect: _ignored, ...rest } = $props();
4
+ let selectedIds = $state([]);
9
5
  </script>
10
6
 
11
7
  <Svark
@@ -1,78 +1,13 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type {
4
- SvarkFilterOptionItem,
5
- SvarkFilterableColumn,
6
- SvarkPopupFilterDraft
7
- } from './types.js';
8
-
9
- export interface Props {
10
- dark?: boolean;
11
- topBarLeft?: Snippet;
12
- topBarRight?: Snippet;
13
- searchOpen: boolean;
14
- canFilter: boolean;
15
- filterMenuOpen: boolean;
16
- searchValue: string;
17
- popupAppliedFilters: SvarkPopupFilterDraft[];
18
- popupDraftFilters: SvarkPopupFilterDraft[];
19
- filterableColumns: SvarkFilterableColumn[];
20
- filterOperatorLabels: Record<string, string>;
21
- normalizeOperatorToken: (value: string | undefined) => string;
22
- getSupportedOperators: (columnId: string) => string[];
23
- getColumnOptions: (columnId: string) => SvarkFilterOptionItem[];
24
- onToggleSearch: () => void;
25
- onSearchChange: (value: string) => void;
26
- onToggleFilterMenu: () => void;
27
- onClearPopupFilters: () => void;
28
- onRemoveAppliedPopupFilter: (id: number) => void;
29
- onUpdatePopupDraft: (
30
- id: number,
31
- updates: Partial<SvarkPopupFilterDraft>,
32
- resetValue?: boolean
33
- ) => void;
34
- onRemovePopupDraft: (id: number) => void;
35
- onAddPopupDraft: () => void;
36
- onCloseFilterMenu: () => void;
37
- onApplyPopupDrafts: () => void;
38
- }
39
-
40
- let {
41
- dark = false,
42
- topBarLeft,
43
- topBarRight,
44
- searchOpen,
45
- canFilter,
46
- filterMenuOpen,
47
- searchValue,
48
- popupAppliedFilters,
49
- popupDraftFilters,
50
- filterableColumns,
51
- filterOperatorLabels,
52
- normalizeOperatorToken,
53
- getSupportedOperators,
54
- getColumnOptions,
55
- onToggleSearch,
56
- onSearchChange,
57
- onToggleFilterMenu,
58
- onClearPopupFilters,
59
- onRemoveAppliedPopupFilter,
60
- onUpdatePopupDraft,
61
- onRemovePopupDraft,
62
- onAddPopupDraft,
63
- onCloseFilterMenu,
64
- onApplyPopupDrafts
65
- }: Props = $props();
66
-
67
- let searchInputEl = $state<HTMLInputElement | null>(null);
68
-
69
- $effect(() => {
70
- if (!searchOpen) return;
71
- queueMicrotask(() => {
72
- searchInputEl?.focus();
73
- searchInputEl?.select();
74
- });
1
+ <script lang="ts">let { dark = false, topBarLeft, topBarRight, searchOpen, canFilter, filterMenuOpen, searchValue, popupAppliedFilters, popupDraftFilters, filterableColumns, filterOperatorLabels, normalizeOperatorToken, getSupportedOperators, getColumnOptions, onToggleSearch, onSearchChange, onToggleFilterMenu, onClearPopupFilters, onRemoveAppliedPopupFilter, onUpdatePopupDraft, onRemovePopupDraft, onAddPopupDraft, onCloseFilterMenu, onApplyPopupDrafts } = $props();
2
+ let searchInputEl = $state(null);
3
+ $effect(() => {
4
+ if (!searchOpen) return;
5
+ queueMicrotask(() => {
6
+ searchInputEl?.focus();
7
+ searchInputEl?.select();
75
8
  });
9
+ });
10
+ export {};
76
11
  </script>
77
12
 
78
13
  <div class="svark-toolbar" class:svark-toolbar-dark={dark} aria-label="Grid tools">