@ims360/svelte-ivory 0.0.4 → 0.0.7

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 (153) hide show
  1. package/README.md +7 -0
  2. package/dist/components/ai/AiMessage.svelte.d.ts +1 -0
  3. package/dist/components/ai/AiMessage.svelte.d.ts.map +1 -0
  4. package/dist/components/ai/AttachedFile.svelte.d.ts +1 -0
  5. package/dist/components/ai/AttachedFile.svelte.d.ts.map +1 -0
  6. package/dist/components/ai/Chat.svelte.d.ts +1 -0
  7. package/dist/components/ai/Chat.svelte.d.ts.map +1 -0
  8. package/dist/components/ai/Markdown.svelte.d.ts +1 -0
  9. package/dist/components/ai/Markdown.svelte.d.ts.map +1 -0
  10. package/dist/components/ai/UserMessage.svelte.d.ts +1 -0
  11. package/dist/components/ai/UserMessage.svelte.d.ts.map +1 -0
  12. package/dist/components/ai/index.d.ts +1 -0
  13. package/dist/components/ai/index.d.ts.map +1 -0
  14. package/dist/components/basic/checkbox/Checkbox.svelte.d.ts +1 -0
  15. package/dist/components/basic/checkbox/Checkbox.svelte.d.ts.map +1 -0
  16. package/dist/components/basic/index.d.ts +1 -0
  17. package/dist/components/basic/index.d.ts.map +1 -0
  18. package/dist/components/basic/toggle/Toggle.svelte +5 -3
  19. package/dist/components/basic/toggle/Toggle.svelte.d.ts +1 -0
  20. package/dist/components/basic/toggle/Toggle.svelte.d.ts.map +1 -0
  21. package/dist/components/buttons/CopyToClipboardButton.svelte.d.ts +1 -0
  22. package/dist/components/buttons/CopyToClipboardButton.svelte.d.ts.map +1 -0
  23. package/dist/components/layout/drawer/Drawer.svelte.d.ts +1 -0
  24. package/dist/components/layout/drawer/Drawer.svelte.d.ts.map +1 -0
  25. package/dist/components/layout/heading/Heading.svelte +1 -1
  26. package/dist/components/layout/heading/Heading.svelte.d.ts +1 -0
  27. package/dist/components/layout/heading/Heading.svelte.d.ts.map +1 -0
  28. package/dist/components/layout/heading/index.d.ts +1 -0
  29. package/dist/components/layout/heading/index.d.ts.map +1 -0
  30. package/dist/components/layout/hiddenBackground/HiddenBackground.svelte +3 -3
  31. package/dist/components/layout/hiddenBackground/HiddenBackground.svelte.d.ts +2 -1
  32. package/dist/components/layout/hiddenBackground/HiddenBackground.svelte.d.ts.map +1 -0
  33. package/dist/components/layout/hiddenBackground/index.d.ts +7 -0
  34. package/dist/components/layout/hiddenBackground/index.d.ts.map +1 -0
  35. package/dist/components/layout/index.d.ts +2 -1
  36. package/dist/components/layout/index.d.ts.map +1 -0
  37. package/dist/components/layout/modal/Modal.svelte +60 -48
  38. package/dist/components/layout/modal/Modal.svelte.d.ts +1 -0
  39. package/dist/components/layout/modal/Modal.svelte.d.ts.map +1 -0
  40. package/dist/components/layout/modal/ModalTest.svelte.d.ts +1 -0
  41. package/dist/components/layout/modal/ModalTest.svelte.d.ts.map +1 -0
  42. package/dist/components/layout/popover/Popover.svelte.d.ts +1 -0
  43. package/dist/components/layout/popover/Popover.svelte.d.ts.map +1 -0
  44. package/dist/components/layout/portal/Portal.svelte.d.ts +1 -0
  45. package/dist/components/layout/portal/Portal.svelte.d.ts.map +1 -0
  46. package/dist/components/layout/tabs/Tab.svelte +3 -3
  47. package/dist/components/layout/tabs/Tab.svelte.d.ts +2 -1
  48. package/dist/components/layout/tabs/Tab.svelte.d.ts.map +1 -0
  49. package/dist/components/layout/tabs/TabPanel.svelte.d.ts +1 -0
  50. package/dist/components/layout/tabs/TabPanel.svelte.d.ts.map +1 -0
  51. package/dist/components/layout/tabs/Tabs.svelte.d.ts +1 -0
  52. package/dist/components/layout/tabs/Tabs.svelte.d.ts.map +1 -0
  53. package/dist/components/layout/tabs/index.d.ts +2 -1
  54. package/dist/components/layout/tabs/index.d.ts.map +1 -0
  55. package/dist/components/layout/tooltip/Tooltip.svelte +12 -11
  56. package/dist/components/layout/tooltip/Tooltip.svelte.d.ts +1 -0
  57. package/dist/components/layout/tooltip/Tooltip.svelte.d.ts.map +1 -0
  58. package/dist/components/table/index.d.ts +6 -0
  59. package/dist/components/table/index.d.ts.map +1 -0
  60. package/dist/components/table/index.js +5 -0
  61. package/dist/components/table/plugins/expandAll.svelte.d.ts +7 -0
  62. package/dist/components/table/plugins/expandAll.svelte.d.ts.map +1 -0
  63. package/dist/components/table/plugins/expandAll.svelte.js +24 -0
  64. package/dist/components/table/plugins/search.svelte.d.ts +13 -0
  65. package/dist/components/table/plugins/search.svelte.d.ts.map +1 -0
  66. package/dist/components/table/plugins/search.svelte.js +52 -0
  67. package/dist/components/table/table/Column.svelte +78 -0
  68. package/dist/components/table/table/Column.svelte.d.ts +16 -0
  69. package/dist/components/table/table/Column.svelte.d.ts.map +1 -0
  70. package/dist/components/table/table/ColumnHead.svelte +73 -0
  71. package/dist/components/table/table/ColumnHead.svelte.d.ts +11 -0
  72. package/dist/components/table/table/ColumnHead.svelte.d.ts.map +1 -0
  73. package/dist/components/table/table/Row.svelte +67 -0
  74. package/dist/components/table/table/Row.svelte.d.ts +13 -0
  75. package/dist/components/table/table/Row.svelte.d.ts.map +1 -0
  76. package/dist/components/table/table/Table.svelte +137 -0
  77. package/dist/components/table/table/Table.svelte.d.ts +52 -0
  78. package/dist/components/table/table/Table.svelte.d.ts.map +1 -0
  79. package/dist/components/table/table/VirtualList.svelte +101 -0
  80. package/dist/components/table/table/VirtualList.svelte.d.ts +41 -0
  81. package/dist/components/table/table/VirtualList.svelte.d.ts.map +1 -0
  82. package/dist/components/table/table/column.svelte.d.ts +21 -0
  83. package/dist/components/table/table/column.svelte.d.ts.map +1 -0
  84. package/dist/components/table/table/column.svelte.js +47 -0
  85. package/dist/components/table/table/index.js +11 -0
  86. package/dist/components/table/table/table.svelte.d.ts +36 -0
  87. package/dist/components/table/table/table.svelte.d.ts.map +1 -0
  88. package/dist/components/table/table/table.svelte.js +92 -0
  89. package/dist/components/toast/Toast.svelte.d.ts +1 -0
  90. package/dist/components/toast/Toast.svelte.d.ts.map +1 -0
  91. package/dist/components/toast/index.d.ts +1 -0
  92. package/dist/components/toast/index.d.ts.map +1 -0
  93. package/dist/components/toast/toasts.svelte.d.ts +1 -0
  94. package/dist/components/toast/toasts.svelte.d.ts.map +1 -0
  95. package/dist/index.d.ts +1 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/utils/actions/clickOutside.d.ts +1 -0
  98. package/dist/utils/actions/clickOutside.d.ts.map +1 -0
  99. package/dist/utils/actions/focusTrap.d.ts +1 -0
  100. package/dist/utils/actions/focusTrap.d.ts.map +1 -0
  101. package/dist/utils/actions/index.d.ts +2 -0
  102. package/dist/utils/actions/index.d.ts.map +1 -0
  103. package/dist/utils/actions/index.js +1 -0
  104. package/dist/utils/actions/portal.d.ts +1 -0
  105. package/dist/utils/actions/portal.d.ts.map +1 -0
  106. package/dist/utils/actions/resize.d.ts +6 -0
  107. package/dist/utils/actions/resize.d.ts.map +1 -0
  108. package/dist/utils/actions/resize.js +25 -0
  109. package/dist/utils/actions/shortcut.d.ts +1 -0
  110. package/dist/utils/actions/shortcut.d.ts.map +1 -0
  111. package/dist/utils/actions/visible.d.ts +1 -0
  112. package/dist/utils/actions/visible.d.ts.map +1 -0
  113. package/dist/utils/functions/cookie.d.ts +1 -0
  114. package/dist/utils/functions/cookie.d.ts.map +1 -0
  115. package/dist/utils/functions/index.d.ts +1 -0
  116. package/dist/utils/functions/index.d.ts.map +1 -0
  117. package/dist/utils/functions/pseudoRandomId.d.ts +1 -0
  118. package/dist/utils/functions/pseudoRandomId.d.ts.map +1 -0
  119. package/dist/utils/functions/queryParams.d.ts +1 -0
  120. package/dist/utils/functions/queryParams.d.ts.map +1 -0
  121. package/package.json +9 -2
  122. package/src/lib/components/basic/toggle/Toggle.svelte +5 -3
  123. package/src/lib/components/layout/heading/Heading.svelte +1 -1
  124. package/src/lib/components/layout/hiddenBackground/HiddenBackground.svelte +3 -3
  125. package/src/lib/components/layout/index.ts +1 -1
  126. package/src/lib/components/layout/modal/Modal.svelte +60 -48
  127. package/src/lib/components/layout/tabs/Tab.svelte +3 -3
  128. package/src/lib/components/layout/tooltip/Tooltip.svelte +12 -11
  129. package/src/lib/components/table/index.ts +5 -0
  130. package/src/lib/components/table/plugins/expandAll.svelte.ts +34 -0
  131. package/src/lib/components/table/plugins/search.svelte.ts +75 -0
  132. package/src/lib/components/table/table/Column.svelte +78 -0
  133. package/src/lib/components/table/table/ColumnHead.svelte +73 -0
  134. package/src/lib/components/table/table/Row.svelte +67 -0
  135. package/src/lib/components/table/table/Table.svelte +137 -0
  136. package/src/lib/components/table/table/VirtualList.svelte +101 -0
  137. package/src/lib/components/table/table/column.svelte.ts +59 -0
  138. package/src/lib/components/table/table/index.ts +15 -0
  139. package/src/lib/components/table/table/table.svelte.ts +124 -0
  140. package/src/lib/utils/actions/index.ts +1 -0
  141. package/src/lib/utils/actions/resize.ts +35 -0
  142. package/dist/components/index.d.ts +0 -0
  143. package/dist/components/index.js +0 -1
  144. package/src/lib/components/basic/checkbox/checkbox.svelte.spec.ts +0 -39
  145. package/src/lib/components/basic/toggle/toggle.svelte.spec.ts +0 -19
  146. package/src/lib/components/index.ts +0 -0
  147. package/src/lib/components/layout/modal/modal.svelte.spec.ts +0 -39
  148. package/src/lib/components/layout/tabs/Tabs.test.svelte +0 -5
  149. package/src/lib/utils/actions/clickOutside.svelte.spec.ts +0 -67
  150. package/src/lib/utils/actions/shortcut.svelte.spec.ts +0 -19
  151. package/src/lib/utils/functions/cookie.svelte.spec.ts +0 -55
  152. package/src/lib/utils/functions/pseudoRandomId.spec.ts +0 -19
  153. package/src/lib/utils/functions/queryParams.spec.ts +0 -25
@@ -0,0 +1,41 @@
1
+ import { type Snippet } from 'svelte';
2
+ import type { ClassValue } from 'svelte/elements';
3
+ type Props<T> = {
4
+ class?: ClassValue;
5
+ data: T[];
6
+ children: Snippet<[{
7
+ row: T;
8
+ domIndex: number;
9
+ index: number;
10
+ }]>;
11
+ header?: Snippet;
12
+ b_scrollTop?: number;
13
+ rowHeight: number;
14
+ overscan?: number;
15
+ };
16
+ declare class __sveltets_Render<T extends {
17
+ id: string;
18
+ }> {
19
+ props(): Props<T>;
20
+ events(): {};
21
+ slots(): {};
22
+ bindings(): "b_scrollTop";
23
+ exports(): {};
24
+ }
25
+ interface $$IsomorphicComponent {
26
+ new <T extends {
27
+ id: string;
28
+ }>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
29
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
30
+ } & ReturnType<__sveltets_Render<T>['exports']>;
31
+ <T extends {
32
+ id: string;
33
+ }>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
34
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
35
+ }
36
+ declare const VirtualList: $$IsomorphicComponent;
37
+ type VirtualList<T extends {
38
+ id: string;
39
+ }> = InstanceType<typeof VirtualList<T>>;
40
+ export default VirtualList;
41
+ //# sourceMappingURL=VirtualList.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/table/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI9C,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA+EN,cAAM,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC5C,KAAK;IAGL,MAAM;IAGN,KAAK;IAGL,QAAQ;IACR,OAAO;CACV;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACnZ,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClJ,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,WAAW,EAAE,qBAAmC,CAAC;AACrC,KAAK,WAAW,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Snippet } from 'svelte';
2
+ export interface ColumnConfig {
3
+ id: string;
4
+ width?: number;
5
+ minWidth?: number;
6
+ resizable?: boolean;
7
+ header: Snippet | string;
8
+ }
9
+ export declare class Column {
10
+ id: string;
11
+ header: string | Snippet<[]>;
12
+ width: number | undefined;
13
+ private minimalWidth;
14
+ hovering: boolean;
15
+ resizable: boolean;
16
+ dragging: boolean;
17
+ constructor(conf: ColumnConfig);
18
+ updateConfig(conf: ColumnConfig): void;
19
+ resize(newWidth?: number): void;
20
+ }
21
+ //# sourceMappingURL=column.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/table/table/column.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B;AAED,qBAAa,MAAM;IACf,EAAE,SAAc;IAChB,MAAM,uBAAgC;IAGtC,KAAK,qBAAoB;IACzB,OAAO,CAAC,YAAY,CAAyB;IAC7C,QAAQ,UAAiB;IACzB,SAAS,UAAiB;IAC1B,QAAQ,UAAiB;gBAEb,IAAI,EAAE,YAAY;IAS9B,YAAY,CAAC,IAAI,EAAE,YAAY;IAiB/B,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM;CAQ3B"}
@@ -0,0 +1,47 @@
1
+ const DEFAULT_WIDTH = 250;
2
+ const MINIMAL_WIDTH_MULTIPLIER = 0.5;
3
+ export class Column {
4
+ id = $state('');
5
+ header = $state('');
6
+ // resizing
7
+ width = $state();
8
+ minimalWidth = $state(DEFAULT_WIDTH);
9
+ hovering = $state(false);
10
+ resizable = $state(false);
11
+ dragging = $state(false);
12
+ constructor(conf) {
13
+ this.id = conf.id;
14
+ this.updateConfig(conf);
15
+ $effect(() => {
16
+ this.updateConfig(conf);
17
+ });
18
+ }
19
+ updateConfig(conf) {
20
+ if (conf.minWidth !== undefined) {
21
+ this.minimalWidth = conf.minWidth;
22
+ }
23
+ else {
24
+ this.minimalWidth = (conf.width ?? DEFAULT_WIDTH) * MINIMAL_WIDTH_MULTIPLIER;
25
+ }
26
+ if (this.width === undefined) {
27
+ const newWidth = conf.width ?? DEFAULT_WIDTH;
28
+ this.width = newWidth;
29
+ }
30
+ if (!this.header)
31
+ this.header = conf.header;
32
+ const newResizable = conf.resizable ?? false;
33
+ if (newResizable !== this.resizable) {
34
+ this.resizable = newResizable;
35
+ }
36
+ }
37
+ resize(newWidth) {
38
+ if (newWidth === undefined)
39
+ return;
40
+ if (newWidth < this.minimalWidth) {
41
+ this.width = this.minimalWidth;
42
+ }
43
+ else {
44
+ this.width = newWidth;
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,11 @@
1
+ import Column from './Column.svelte';
2
+ import Row from './Row.svelte';
3
+ import TableComponent, { getTableContext } from './Table.svelte';
4
+ import { TableController } from './table.svelte';
5
+ const Table = Object.assign((TableComponent), {
6
+ Column,
7
+ Row,
8
+ getContext: getTableContext,
9
+ Controller: TableController
10
+ });
11
+ export default Table;
@@ -0,0 +1,36 @@
1
+ import { Column, type ColumnConfig } from './column.svelte';
2
+ export type TableRow<T> = {
3
+ id: string;
4
+ children?: T[];
5
+ };
6
+ export type TablePlugin<T extends TableRow<T>> = (state: TableState<T>) => TableState<T>;
7
+ export interface TableConfig<T extends TableRow<T>> {
8
+ data: T[];
9
+ plugins?: TablePlugin<T>[];
10
+ }
11
+ export interface TableState<T extends TableRow<T>> {
12
+ data: T[];
13
+ expanded: Set<string>;
14
+ }
15
+ interface TreeRow<T> {
16
+ node: T;
17
+ nestingLevel: number;
18
+ id: string;
19
+ }
20
+ export declare class TableController<T extends TableRow<T>> {
21
+ columns: Column[];
22
+ data: T[];
23
+ expanded: Set<string>;
24
+ scrollTop: number;
25
+ readonly results: {
26
+ entries: TreeRow<T>[];
27
+ someHaveChildren: boolean;
28
+ maxNestingLevel: number;
29
+ };
30
+ refresh(conf: TableConfig<T>): void;
31
+ registerColumn(config: ColumnConfig): Column;
32
+ toggleExpansion(id: string): void;
33
+ }
34
+ export declare function getAllIds<T extends TableRow<T>>(...nodes: T[]): string[];
35
+ export {};
36
+ //# sourceMappingURL=table.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/table/table/table.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;AAEzF,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,UAAU,OAAO,CAAC,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;IAC9C,OAAO,WAAwB;IAC/B,IAAI,MAAmB;IACvB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAA2B;IAChD,SAAS,SAAa;IAEtB,QAAQ,CAAC,OAAO;;;;MAAkD;IAElE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAc5B,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAc5C,eAAe,CAAC,EAAE,EAAE,MAAM;CAI7B;AAuDD,wBAAgB,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAMxE"}
@@ -0,0 +1,92 @@
1
+ import { SvelteSet } from 'svelte/reactivity';
2
+ import { Column } from './column.svelte';
3
+ export class TableController {
4
+ columns = $state([]);
5
+ data = $state([]);
6
+ expanded = new SvelteSet();
7
+ scrollTop = $state(0);
8
+ results = $derived(treeWalker(this.data, this.expanded));
9
+ refresh(conf) {
10
+ let intitalState = {
11
+ data: structuredClone(conf.data),
12
+ expanded: this.expanded
13
+ };
14
+ for (const plugin of conf.plugins ?? []) {
15
+ intitalState = plugin(intitalState);
16
+ }
17
+ this.data = intitalState.data;
18
+ this.expanded = new SvelteSet(intitalState.expanded);
19
+ }
20
+ registerColumn(config) {
21
+ // only register a column once
22
+ let existingColumn = undefined;
23
+ for (const column of this.columns) {
24
+ if (column.id !== config.id)
25
+ continue;
26
+ existingColumn = column;
27
+ break;
28
+ }
29
+ if (existingColumn)
30
+ return existingColumn;
31
+ const col = new Column(config);
32
+ this.columns.push(col);
33
+ return col;
34
+ }
35
+ toggleExpansion(id) {
36
+ if (this.expanded.has(id))
37
+ this.expanded.delete(id);
38
+ else
39
+ this.expanded.add(id);
40
+ }
41
+ }
42
+ /** Walks though a tree strucure and turns it into a flat list, needed since the `VirtualList` needs a list, not a tree */
43
+ function treeWalker(data, expanded) {
44
+ const stack = [];
45
+ // push the root nodes of the trees onto the stack
46
+ for (let i = 0; i < data.length; i++) {
47
+ stack.push({
48
+ node: data[data.length - i - 1],
49
+ nestingLevel: 0
50
+ });
51
+ }
52
+ const entries = []; // the final result
53
+ let someHaveChildren = false; // used to determine whether to show the tree utility buttons
54
+ let maxNestingLevel = 0;
55
+ while (stack.length !== 0) {
56
+ const stackEntry = stack.pop();
57
+ if (!stackEntry)
58
+ break;
59
+ const { node, nestingLevel } = stackEntry;
60
+ const children = node.children;
61
+ if (children && children.length > 0) {
62
+ someHaveChildren = true;
63
+ // only show the children of expanded elements
64
+ if (expanded.has(node.id)) {
65
+ maxNestingLevel = Math.max(maxNestingLevel, nestingLevel + 1);
66
+ stack.push(...children
67
+ .map((c) => ({
68
+ node: c,
69
+ nestingLevel: nestingLevel + 1
70
+ }))
71
+ .reverse());
72
+ }
73
+ }
74
+ entries.push({
75
+ id: node.id,
76
+ node,
77
+ nestingLevel
78
+ });
79
+ }
80
+ return {
81
+ entries,
82
+ someHaveChildren,
83
+ maxNestingLevel
84
+ };
85
+ }
86
+ export function getAllIds(...nodes) {
87
+ const ids = nodes.map((n) => n.id);
88
+ for (const node of nodes) {
89
+ ids.push(...getAllIds(...(node.children ?? [])));
90
+ }
91
+ return ids;
92
+ }
@@ -14,3 +14,4 @@ type Props = {
14
14
  declare const Toast: import("svelte").Component<Props, {}, "">;
15
15
  type Toast = ReturnType<typeof Toast>;
16
16
  export default Toast;
17
+ //# sourceMappingURL=Toast.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/toast/Toast.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGzD,KAAK,KAAK,GAAG;IACT,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;CACtE,CAAC;AA+EN;;;GAGG;AACH,QAAA,MAAM,KAAK,2CAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { default as ToastUI } from './Toast.svelte';
2
2
  export { Toasts } from './toasts.svelte';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
@@ -24,3 +24,4 @@ declare class ToastStore {
24
24
  /** Exposes functions to manage toasts, contains currently active toasts */
25
25
  export declare const Toasts: ToastStore;
26
26
  export {};
27
+ //# sourceMappingURL=toasts.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toasts.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/toast/toasts.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CACrD,CAAC;AAEF,KAAK,KAAK,GAAG,aAAa,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAC7C,CAAC;AASF,cAAM,UAAU;IACZ,MAAM,UAAuB;IAE7B,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,GAA0B,MAAM;IAWhE,KAAK,CAAC,EAAE,EAAE,MAAM;IAOhB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IAiBvC,MAAM,CAAC,EAAE,EAAE,MAAM;IAMjB,QAAQ,CAAC,EAAE,EAAE,MAAM;IAMnB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;CAKvB;AAED,2EAA2E;AAC3E,eAAO,MAAM,MAAM,YAAmB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":""}
@@ -9,3 +9,4 @@ export declare function clickOutside(node: Element, params: ((e: MouseEvent) =>
9
9
  destroy(): void;
10
10
  };
11
11
  export {};
12
+ //# sourceMappingURL=clickOutside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickOutside.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/clickOutside.ts"],"names":[],"mappings":"AAAA,UAAU,kBAAkB;IACxB,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CACxB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,kBAAkB;;EA2BzD"}
@@ -2,3 +2,4 @@ export declare function focusTrap(node: HTMLElement, enabled: boolean): {
2
2
  update(newArgs: boolean): void;
3
3
  destroy(): void;
4
4
  };
5
+ //# sourceMappingURL=focusTrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusTrap.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/focusTrap.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;oBAsDrC,OAAO;;EAU9B"}
@@ -1,5 +1,7 @@
1
1
  export { clickOutside } from './clickOutside';
2
2
  export { focusTrap } from './focusTrap';
3
3
  export { portal } from './portal';
4
+ export { resize } from './resize';
4
5
  export { shortcut } from './shortcut';
5
6
  export { onFirstVisible } from './visible';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { clickOutside } from './clickOutside';
2
2
  export { focusTrap } from './focusTrap';
3
3
  export { portal } from './portal';
4
+ export { resize } from './resize';
4
5
  export { shortcut } from './shortcut';
5
6
  export { onFirstVisible } from './visible';
@@ -7,3 +7,4 @@ export declare function portal(el: HTMLElement, target?: HTMLElement | string):
7
7
  update: (newTarget: HTMLElement | string) => Promise<void>;
8
8
  destroy: () => void;
9
9
  };
10
+ //# sourceMappingURL=portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/portal.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,GAAE,WAAW,GAAG,MAAe;wBAExC,WAAW,GAAG,MAAM;;EAiCxD"}
@@ -0,0 +1,6 @@
1
+ import type { Action } from 'svelte/action';
2
+ export declare const resize: Action<HTMLElement, {
3
+ resized: (mouseX: number) => void;
4
+ dragging: (dragging: boolean) => void;
5
+ }>;
6
+ //# sourceMappingURL=resize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/resize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,MAAM,CACvB,WAAW,EACX;IAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,CA8B/E,CAAC"}
@@ -0,0 +1,25 @@
1
+ export const resize = (node, { resized, dragging }) => {
2
+ const onResize = (e) => {
3
+ resized(e.clientX);
4
+ };
5
+ const onResizeEnd = () => {
6
+ dragging(false);
7
+ window.removeEventListener('pointermove', onResize);
8
+ window.removeEventListener('pointerup', onResizeEnd);
9
+ window.removeEventListener('pointercancel', onResizeEnd);
10
+ document.getElementsByTagName('html')[0].style.userSelect = '';
11
+ };
12
+ const onResizeStart = () => {
13
+ dragging(true);
14
+ window.addEventListener('pointermove', onResize);
15
+ window.addEventListener('pointerup', onResizeEnd);
16
+ window.addEventListener('pointercancel', onResizeEnd);
17
+ document.getElementsByTagName('html')[0].style.userSelect = 'none';
18
+ };
19
+ node.addEventListener('pointerdown', onResizeStart);
20
+ return {
21
+ destroy() {
22
+ node.removeEventListener('pointerdown', onResizeStart);
23
+ }
24
+ };
25
+ };
@@ -8,3 +8,4 @@ export declare const shortcut: (node: HTMLElement, params?: {
8
8
  update: () => void;
9
9
  destroy: () => void;
10
10
  } | undefined;
11
+ //# sourceMappingURL=shortcut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcut.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/shortcut.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GACjB,MAAM,WAAW,EACjB,SAAS;IACL,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;;;aA0BJ,CAAC"}
@@ -3,3 +3,4 @@ export declare const onFirstVisible: Action<HTMLElement, {
3
3
  callback: () => void;
4
4
  options?: Partial<IntersectionObserverInit>;
5
5
  }>;
6
+ //# sourceMappingURL=visible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visible.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/actions/visible.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,MAAM,CAC/B,WAAW,EACX;IACI,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAC/C,CAoBJ,CAAC"}
@@ -10,3 +10,4 @@ export declare const cookie: {
10
10
  set: typeof setCookie;
11
11
  };
12
12
  export {};
13
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/functions/cookie.ts"],"names":[],"mappings":"AAAA,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,UAqB9B;AAED,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iBAAS,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAWlD;AAED,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { cookie } from './cookie';
2
2
  export { pseudoRandomId } from './pseudoRandomId';
3
3
  export { queryParams } from './queryParams';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const pseudoRandomId: (prefix?: string) => string;
2
+ //# sourceMappingURL=pseudoRandomId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pseudoRandomId.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/functions/pseudoRandomId.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GAAI,SAAQ,MAAW,WAGd,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const queryParams: <T extends Record<string, string | number | undefined | null>>(params: T) => string;
2
+ //# sourceMappingURL=queryParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/functions/queryParams.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EACpF,QAAQ,CAAC,KACV,MAYF,CAAC"}
package/package.json CHANGED
@@ -59,6 +59,10 @@
59
59
  "types": "./dist/components/toast/index.d.ts",
60
60
  "svelte": "./dist/components/toast/index.js"
61
61
  },
62
+ "./components/table": {
63
+ "types": "./dist/components/table/index.d.ts",
64
+ "svelte": "./dist/components/table/index.js"
65
+ },
62
66
  "./utils/actions": {
63
67
  "types": "./dist/utils/actions/index.d.ts",
64
68
  "svelte": "./dist/utils/actions/index.js"
@@ -72,7 +76,10 @@
72
76
  "dist",
73
77
  "src/lib",
74
78
  "!dist/**/*.test.*",
75
- "!dist/**/*.spec.*"
79
+ "!dist/**/*.spec.*",
80
+ "src/lib",
81
+ "!src/lib/**/*.test.*",
82
+ "!src/lib/**/*.spec.*"
76
83
  ],
77
84
  "keywords": [
78
85
  "svelte"
@@ -103,5 +110,5 @@
103
110
  "svelte": "./dist/index.js",
104
111
  "type": "module",
105
112
  "types": "./dist/index.d.ts",
106
- "version": "0.0.4"
113
+ "version": "0.0.7"
107
114
  }
@@ -21,8 +21,10 @@
21
21
  this={onclick ? 'button' : 'div'}
22
22
  class={twMerge(
23
23
  clsx(
24
- 'flex h-5 w-9 items-center rounded-full border p-0.5',
25
- value ? 'bg-primary-500 border-primary-500' : 'bg-surface-500/30 border-surface-500/60',
24
+ 'group flex h-5 w-9 items-center rounded-full border p-0.5 transition-colors duration-100',
25
+ value
26
+ ? 'bg-primary-500 border-primary-500'
27
+ : 'bg-surface-500/30 border-surface-500/60 hover:border-surface-500/80',
26
28
  clazz
27
29
  )
28
30
  )}
@@ -36,7 +38,7 @@
36
38
  <div
37
39
  class={[
38
40
  'relative flex aspect-square h-full items-center justify-center rounded-full transition-all',
39
- value ? 'bg-surface-50' : 'bg-surface-600'
41
+ value ? 'bg-surface-50' : 'bg-surface-600-400 group-hover:bg-surface-700-300'
40
42
  ]}
41
43
  style={value ? `left: calc(100% - ${thumbWidth}px);` : 'left: 0;'}
42
44
  bind:clientWidth={thumbWidth}
@@ -28,6 +28,6 @@
28
28
  If you set the `defaultClasses`, make sure to call it before using a component that uses the heading component (e.g. your root `+layout.svelte`).
29
29
  -->
30
30
 
31
- <h2 class={twMerge(clsx('truncate text-lg font-bold select-none', defaultClasses, clazz))}>
31
+ <h2 class={twMerge(clsx('shrink-0 truncate text-lg font-bold select-none', defaultClasses, clazz))}>
32
32
  {@render children()}
33
33
  </h2>
@@ -13,16 +13,16 @@
13
13
  }
14
14
 
15
15
  export const TEST_ID = 'background';
16
- </script>
17
16
 
18
- <script lang="ts">
19
- interface Props {
17
+ export interface Props {
20
18
  class?: ClassValue;
21
19
  /** Gets called when the dialog is clicked */
22
20
  onclose?: () => void;
23
21
  children: Snippet;
24
22
  }
23
+ </script>
25
24
 
25
+ <script lang="ts">
26
26
  let { class: clazz, onclose, children }: Props = $props();
27
27
  </script>
28
28
 
@@ -1,7 +1,7 @@
1
1
  export { default as Drawer } from './drawer/Drawer.svelte';
2
2
  export { default as Heading } from './heading/index';
3
3
  export { default as HiddenBackground } from './hiddenBackground/index';
4
- export { default as Modal } from './modal/Modal.svelte';
4
+ export { default as Modal, type ModalProps } from './modal/Modal.svelte';
5
5
  export { default as Popover } from './popover/Popover.svelte';
6
6
  export { default as Portal } from './portal/Portal.svelte';
7
7
  export { default as Tabs } from './tabs/index';