@ims360/svelte-ivory 0.4.20 → 0.5.0
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/dist/components/basic/checkbox/Checkbox.svelte +3 -8
- package/dist/components/basic/checkbox/Checkbox.svelte.d.ts.map +1 -1
- package/dist/components/buttons/CopyToClipboardButton.svelte +1 -1
- package/dist/components/buttons/CopyToClipboardButton.svelte.d.ts.map +1 -1
- package/dist/components/inputs/FileInput.svelte +5 -2
- package/dist/components/inputs/FileInput.svelte.d.ts.map +1 -1
- package/dist/components/inputs/PasswordCreateInput.svelte +1 -1
- package/dist/components/layout/dialog/Dialog.svelte +19 -20
- package/dist/components/layout/dialog/Dialog.svelte.d.ts +1 -4
- package/dist/components/layout/dialog/Dialog.svelte.d.ts.map +1 -1
- package/dist/components/layout/drawer/Drawer.svelte +21 -41
- package/dist/components/layout/drawer/Drawer.svelte.d.ts +4 -5
- package/dist/components/layout/drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/components/layout/index.d.ts +0 -1
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +0 -1
- package/dist/components/layout/modal/Modal.svelte +19 -84
- package/dist/components/layout/modal/Modal.svelte.d.ts +5 -14
- package/dist/components/layout/modal/Modal.svelte.d.ts.map +1 -1
- package/dist/components/layout/popover/Popover.svelte +1 -2
- package/dist/components/layout/popover/Popover.svelte.d.ts.map +1 -1
- package/dist/components/layout/tabs/Tab.svelte +0 -2
- package/dist/components/layout/tabs/Tab.svelte.d.ts.map +1 -1
- package/dist/components/table/Column.svelte +0 -2
- package/dist/components/table/Column.svelte.d.ts.map +1 -1
- package/dist/components/table/ColumnHead.svelte +1 -2
- package/dist/components/table/ColumnHead.svelte.d.ts.map +1 -1
- package/dist/components/table/Table.svelte +9 -13
- package/dist/components/table/Table.svelte.d.ts +3 -3
- package/dist/components/table/Table.svelte.d.ts.map +1 -1
- package/dist/components/table/VirtualList.svelte +9 -5
- package/dist/components/table/VirtualList.svelte.d.ts +2 -2
- package/dist/components/table/VirtualList.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/theme.svelte.d.ts +0 -36
- package/dist/theme.svelte.d.ts.map +1 -1
- package/dist/{components/toast/toasts.svelte.d.ts → toasts.svelte.d.ts} +2 -1
- package/dist/toasts.svelte.d.ts.map +1 -0
- package/dist/{components/toast/toasts.svelte.js → toasts.svelte.js} +2 -2
- package/package.json +9 -13
- package/src/lib/components/basic/checkbox/Checkbox.svelte +3 -8
- package/src/lib/components/buttons/CopyToClipboardButton.svelte +1 -1
- package/src/lib/components/inputs/FileInput.svelte +5 -2
- package/src/lib/components/inputs/PasswordCreateInput.svelte +1 -1
- package/src/lib/components/layout/dialog/Dialog.svelte +19 -20
- package/src/lib/components/layout/drawer/Drawer.svelte +21 -41
- package/src/lib/components/layout/index.ts +0 -1
- package/src/lib/components/layout/modal/Modal.svelte +19 -84
- package/src/lib/components/layout/popover/Popover.svelte +1 -2
- package/src/lib/components/layout/tabs/Tab.svelte +0 -2
- package/src/lib/components/table/Column.svelte +0 -2
- package/src/lib/components/table/ColumnHead.svelte +1 -2
- package/src/lib/components/table/Table.svelte +9 -13
- package/src/lib/components/table/VirtualList.svelte +9 -5
- package/src/lib/index.ts +1 -0
- package/src/lib/theme.svelte.ts +0 -36
- package/src/lib/{components/toast/toasts.svelte.ts → toasts.svelte.ts} +3 -2
- package/dist/components/layout/Heading.svelte +0 -25
- package/dist/components/layout/Heading.svelte.d.ts +0 -9
- package/dist/components/layout/Heading.svelte.d.ts.map +0 -1
- package/dist/components/toast/Toast.svelte +0 -105
- package/dist/components/toast/Toast.svelte.d.ts +0 -18
- package/dist/components/toast/Toast.svelte.d.ts.map +0 -1
- package/dist/components/toast/index.d.ts +0 -3
- package/dist/components/toast/index.d.ts.map +0 -1
- package/dist/components/toast/index.js +0 -2
- package/dist/components/toast/toasts.svelte.d.ts.map +0 -1
- package/src/lib/components/layout/Heading.svelte +0 -25
- package/src/lib/components/toast/Toast.svelte +0 -105
- package/src/lib/components/toast/index.ts +0 -2
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import { theme } from '../../theme.svelte';
|
|
3
2
|
import { merge } from '../../utils/functions';
|
|
4
3
|
import { ChevronRight } from '@lucide/svelte';
|
|
5
4
|
import { getContext, setContext, untrack, type Snippet } from 'svelte';
|
|
6
|
-
import type { ClassValue } from 'svelte/elements';
|
|
5
|
+
import type { ClassValue, HTMLAttributes } from 'svelte/elements';
|
|
7
6
|
import { SvelteSet } from 'svelte/reactivity';
|
|
8
7
|
import ColumnComponent from './Column.svelte';
|
|
9
8
|
import { ColumnController, type ColumnConfig } from './columnController.svelte';
|
|
@@ -22,8 +21,8 @@
|
|
|
22
21
|
virtualized?: boolean;
|
|
23
22
|
/** Renders the rows */
|
|
24
23
|
children?: Snippet<[{ row: T; nestingLevel?: number; index: number }]>;
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
row?: HTMLAttributes<HTMLDivElement>;
|
|
25
|
+
header?: HTMLAttributes<HTMLDivElement>;
|
|
27
26
|
search?: {
|
|
28
27
|
term: string;
|
|
29
28
|
matches: (row: T) => boolean;
|
|
@@ -67,8 +66,8 @@
|
|
|
67
66
|
class: clazz,
|
|
68
67
|
data,
|
|
69
68
|
children: passedChildren,
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
row,
|
|
70
|
+
header: headerProps,
|
|
72
71
|
rowHeight = 64,
|
|
73
72
|
onclick,
|
|
74
73
|
href,
|
|
@@ -202,20 +201,17 @@
|
|
|
202
201
|
bind:this={list}
|
|
203
202
|
bind:b_scrollTop
|
|
204
203
|
data={results.entries}
|
|
205
|
-
class={merge(
|
|
206
|
-
|
|
207
|
-
theme.current.table?.class,
|
|
208
|
-
clazz
|
|
209
|
-
)}
|
|
210
|
-
rowClass={merge('pl-2 pr-4', theme.current.table?.row?.class, rowClass)}
|
|
204
|
+
class={merge('flex flex-col overflow-hidden border-transparent', clazz)}
|
|
205
|
+
{row}
|
|
211
206
|
{rowHeight}
|
|
212
207
|
{virtualized}
|
|
213
208
|
>
|
|
214
209
|
{#snippet header()}
|
|
215
210
|
<div
|
|
211
|
+
{...headerProps}
|
|
216
212
|
class={merge(
|
|
217
213
|
'flex w-fit min-w-full flex-row border-b border-inherit pr-4 pl-2',
|
|
218
|
-
|
|
214
|
+
headerProps?.class
|
|
219
215
|
)}
|
|
220
216
|
>
|
|
221
217
|
{#if results.someHaveChildren}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Snippet } from 'svelte';
|
|
2
|
-
import type { ClassValue } from 'svelte/elements';
|
|
2
|
+
import type { ClassValue, HTMLAttributes } from 'svelte/elements';
|
|
3
3
|
import { SvelteSet } from 'svelte/reactivity';
|
|
4
4
|
import { ColumnController, type ColumnConfig } from './columnController.svelte';
|
|
5
5
|
import { type TableRow } from './controller';
|
|
@@ -16,8 +16,8 @@ export interface TableProps<T extends TableRow<T>> {
|
|
|
16
16
|
nestingLevel?: number;
|
|
17
17
|
index: number;
|
|
18
18
|
}]>;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
row?: HTMLAttributes<HTMLDivElement>;
|
|
20
|
+
header?: HTMLAttributes<HTMLDivElement>;
|
|
21
21
|
search?: {
|
|
22
22
|
term: string;
|
|
23
23
|
matches: (row: T) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts" generics="T extends { id: string }">
|
|
2
2
|
import { merge } from '../../utils/functions';
|
|
3
3
|
import { onMount, tick, untrack, type Snippet } from 'svelte';
|
|
4
|
-
import type { ClassValue } from 'svelte/elements';
|
|
4
|
+
import type { ClassValue, HTMLAttributes } from 'svelte/elements';
|
|
5
5
|
|
|
6
6
|
type Props<T> = {
|
|
7
7
|
class?: ClassValue;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
b_scrollTop?: number;
|
|
12
12
|
rowHeight: number;
|
|
13
13
|
overscan?: number;
|
|
14
|
-
|
|
14
|
+
row?: HTMLAttributes<HTMLDivElement>;
|
|
15
15
|
virtualized?: boolean;
|
|
16
16
|
};
|
|
17
17
|
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
b_scrollTop = $bindable(),
|
|
24
24
|
rowHeight,
|
|
25
25
|
overscan = 2,
|
|
26
|
-
|
|
26
|
+
row: rowProps,
|
|
27
27
|
virtualized = true
|
|
28
28
|
}: Props<T> = $props();
|
|
29
29
|
|
|
30
30
|
const finalRowClass = $derived(
|
|
31
|
-
merge('flex w-full shrink-0 grow flex-row items-center overflow-hidden',
|
|
31
|
+
merge('flex w-full shrink-0 grow flex-row items-center overflow-hidden', rowProps?.class)
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
let viewportReactivity = $state(0);
|
|
@@ -131,7 +131,11 @@
|
|
|
131
131
|
style="padding-top: {top}px; padding-bottom: {bottom}px; min-width: max(100%, {header_width}px) !important;"
|
|
132
132
|
>
|
|
133
133
|
{#each visible as row, i (row.data.id)}
|
|
134
|
-
<div
|
|
134
|
+
<div
|
|
135
|
+
{...rowProps}
|
|
136
|
+
class={finalRowClass}
|
|
137
|
+
style="height: {rowHeight}px !important; {rowProps?.style}"
|
|
138
|
+
>
|
|
135
139
|
{@render children({
|
|
136
140
|
row: row.data,
|
|
137
141
|
domIndex: i,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Snippet } from 'svelte';
|
|
2
|
-
import type { ClassValue } from 'svelte/elements';
|
|
2
|
+
import type { ClassValue, HTMLAttributes } from 'svelte/elements';
|
|
3
3
|
type Props<T> = {
|
|
4
4
|
class?: ClassValue;
|
|
5
5
|
data: T[];
|
|
@@ -12,7 +12,7 @@ type Props<T> = {
|
|
|
12
12
|
b_scrollTop?: number;
|
|
13
13
|
rowHeight: number;
|
|
14
14
|
overscan?: number;
|
|
15
|
-
|
|
15
|
+
row?: HTMLAttributes<HTMLDivElement>;
|
|
16
16
|
virtualized?: boolean;
|
|
17
17
|
};
|
|
18
18
|
declare function $$render<T extends {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG9D,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;IAClB,GAAG,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAAC,iBAAS,QAAQ,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;WA6HpB,KAAK,CAAC,CAAC,CAAC;aAAwB;QAAE,QAAQ,SA/F1C,MAAM,SAAS,MAAM,UA+FsC;KAAE;;;;EAA0E;AACpK,cAAM,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC5C,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;yBArGkB,MAAM,SAAS,MAAM;;CAsGjD;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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { ColorTheme, type ColorThemePreference } from './colorTheme.svelte';
|
|
2
2
|
export { theme, type Theme } from './theme.svelte';
|
|
3
|
+
export { Toasts, type ToastSettings } from './toasts.svelte';
|
|
3
4
|
export { type IvoryComponent } from './types';
|
|
4
5
|
export type Variant = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'surface';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,OAAO,GACb,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,OAAO,GACb,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/theme.svelte.d.ts
CHANGED
|
@@ -1,45 +1,9 @@
|
|
|
1
1
|
import type { RemoteFormIssue } from '@sveltejs/kit';
|
|
2
2
|
import type { ClassValue } from 'svelte/elements';
|
|
3
3
|
export interface Theme {
|
|
4
|
-
checkbox?: {
|
|
5
|
-
class?: (checked: boolean, partial: boolean) => ClassValue;
|
|
6
|
-
};
|
|
7
|
-
heading?: {
|
|
8
|
-
class?: ClassValue;
|
|
9
|
-
};
|
|
10
4
|
dialog?: {
|
|
11
5
|
class?: ClassValue;
|
|
12
6
|
};
|
|
13
|
-
tabs?: {
|
|
14
|
-
tab?: {
|
|
15
|
-
class?: (active: boolean) => ClassValue;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
table?: {
|
|
19
|
-
class?: ClassValue;
|
|
20
|
-
column?: {
|
|
21
|
-
class?: ClassValue;
|
|
22
|
-
};
|
|
23
|
-
head?: {
|
|
24
|
-
class?: ClassValue;
|
|
25
|
-
};
|
|
26
|
-
row?: {
|
|
27
|
-
class?: ClassValue;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
modal?: {
|
|
31
|
-
class?: ClassValue;
|
|
32
|
-
innerClass?: ClassValue;
|
|
33
|
-
dialog?: {
|
|
34
|
-
class?: ClassValue;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
drawer?: {
|
|
38
|
-
class?: ClassValue;
|
|
39
|
-
};
|
|
40
|
-
popover?: {
|
|
41
|
-
class?: ClassValue;
|
|
42
|
-
};
|
|
43
7
|
input?: {
|
|
44
8
|
outerClass?: ClassValue;
|
|
45
9
|
class?: (value: boolean, issues?: boolean) => ClassValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.svelte.d.ts","sourceRoot":"","sources":["../src/lib/theme.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,KAAK;IAClB,
|
|
1
|
+
{"version":3,"file":"theme.svelte.d.ts","sourceRoot":"","sources":["../src/lib/theme.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,KAAK;IAClB,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC;QACzD,KAAK,CAAC,EAAE;YACJ,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC;SAC5D,CAAC;QACF,MAAM,CAAC,EAAE;YACL,KAAK,CAAC,EAAE;gBACJ,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;gBAC3C,KAAK,CAAC,EAAE,UAAU,CAAC;aACtB,CAAC;YACF,KAAK,CAAC,EAAE,UAAU,CAAC;SACtB,CAAC;KACL,CAAC;CACL;AAkBD,eAAO,MAAM,KAAK;uBAZS,KAAK;aAGF,KAAK;CASD,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Variant } from './';
|
|
1
2
|
import type { Icon } from '@lucide/svelte';
|
|
2
3
|
export interface ToastSettings {
|
|
3
4
|
message: string;
|
|
@@ -5,7 +6,7 @@ export interface ToastSettings {
|
|
|
5
6
|
timeout?: number;
|
|
6
7
|
hideDismiss?: boolean;
|
|
7
8
|
icon?: typeof Icon;
|
|
8
|
-
variant:
|
|
9
|
+
variant: Variant;
|
|
9
10
|
}
|
|
10
11
|
interface Toast extends ToastSettings {
|
|
11
12
|
id: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toasts.svelte.d.ts","sourceRoot":"","sources":["../src/lib/toasts.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC1B,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,OAAO,CAAC;CACpB;AAED,UAAU,KAAM,SAAQ,aAAa;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAC7C;AASD,cAAM,UAAU;IACZ,MAAM,UAAuB;IAE7B,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,SAA0B;IAW1D,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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { pseudoRandomId } from '
|
|
1
|
+
import { pseudoRandomId } from './utils/functions';
|
|
2
2
|
const TOAST_DEFAULTS = {
|
|
3
3
|
message: 'Missing Toast Message',
|
|
4
4
|
autohide: true,
|
|
5
5
|
timeout: 3000,
|
|
6
|
-
variant: '
|
|
6
|
+
variant: 'primary'
|
|
7
7
|
};
|
|
8
8
|
class ToastStore {
|
|
9
9
|
toasts = $state([]);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ims360/svelte-ivory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"svelte"
|
|
6
6
|
],
|
|
@@ -34,10 +34,6 @@
|
|
|
34
34
|
"types": "./dist/components/table/index.d.ts",
|
|
35
35
|
"svelte": "./dist/components/table/index.js"
|
|
36
36
|
},
|
|
37
|
-
"./components/toast": {
|
|
38
|
-
"types": "./dist/components/toast/index.d.ts",
|
|
39
|
-
"svelte": "./dist/components/toast/index.js"
|
|
40
|
-
},
|
|
41
37
|
"./components/inputs": {
|
|
42
38
|
"types": "./dist/components/inputs/index.d.ts",
|
|
43
39
|
"svelte": "./dist/components/inputs/index.js"
|
|
@@ -75,7 +71,7 @@
|
|
|
75
71
|
"test:unit": "vitest"
|
|
76
72
|
},
|
|
77
73
|
"dependencies": {
|
|
78
|
-
"@lucide/svelte": "^
|
|
74
|
+
"@lucide/svelte": "^1.8.0",
|
|
79
75
|
"@tailwindcss/forms": "^0.5.11",
|
|
80
76
|
"@tailwindcss/typography": "^0.5.19",
|
|
81
77
|
"@tailwindcss/vite": "^4.2.1",
|
|
@@ -95,9 +91,9 @@
|
|
|
95
91
|
"@testing-library/jest-dom": "^6.9.1",
|
|
96
92
|
"@testing-library/svelte": "^5.3.1",
|
|
97
93
|
"@testing-library/user-event": "^14.6.1",
|
|
98
|
-
"@vitest/browser": "^4.
|
|
99
|
-
"@vitest/coverage-v8": "^4.
|
|
100
|
-
"@vitest/spy": "^4.
|
|
94
|
+
"@vitest/browser": "^4.1.4",
|
|
95
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
96
|
+
"@vitest/spy": "^4.1.4",
|
|
101
97
|
"eslint": "^10.0.2",
|
|
102
98
|
"eslint-config-prettier": "^10.1.8",
|
|
103
99
|
"eslint-plugin-svelte": "^3.15.0",
|
|
@@ -110,13 +106,13 @@
|
|
|
110
106
|
"svelte-check": "^4.4.4",
|
|
111
107
|
"typescript": "^5.9.3",
|
|
112
108
|
"typescript-eslint": "^8.56.1",
|
|
113
|
-
"vite": "^7.
|
|
114
|
-
"vitest": "^4.
|
|
109
|
+
"vite": "^7.0.0",
|
|
110
|
+
"vitest": "^4.1.4",
|
|
115
111
|
"zod": "^4.3.6"
|
|
116
112
|
},
|
|
117
113
|
"peerDependencies": {
|
|
118
114
|
"@skeletonlabs/skeleton": "^4.0.0",
|
|
119
|
-
"@sveltejs/kit": "^2.
|
|
120
|
-
"svelte": "^5.
|
|
115
|
+
"@sveltejs/kit": "^2.55.0",
|
|
116
|
+
"svelte": "^5.55.1"
|
|
121
117
|
}
|
|
122
118
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import { theme } from '$lib/theme.svelte';
|
|
3
2
|
import type { IvoryComponent } from '$lib/types';
|
|
4
3
|
import { merge } from '$lib/utils/functions';
|
|
5
4
|
import { Check, type Icon as LucideIcon, Minus } from '@lucide/svelte';
|
|
6
|
-
import clsx from 'clsx';
|
|
7
5
|
import type { ClassValue } from 'svelte/elements';
|
|
8
6
|
import { scale } from 'svelte/transition';
|
|
9
7
|
|
|
@@ -41,19 +39,16 @@
|
|
|
41
39
|
innerClass,
|
|
42
40
|
style
|
|
43
41
|
}: { icon?: typeof LucideIcon; innerClass?: string; style?: string } = $derived.by(() => {
|
|
44
|
-
|
|
45
|
-
theme.current.checkbox?.class &&
|
|
46
|
-
clsx(theme.current.checkbox?.class?.(!!checked, !!partial));
|
|
47
|
-
if (!checked && !partial) return { innerClass: overwrittenClass ?? 'border-surface-500' };
|
|
42
|
+
if (!checked && !partial) return { innerClass: 'border-surface-500' };
|
|
48
43
|
if (checked)
|
|
49
44
|
return {
|
|
50
45
|
icon: Check,
|
|
51
|
-
innerClass:
|
|
46
|
+
innerClass: 'bg-primary-500 border-primary-500 text-surface-50'
|
|
52
47
|
};
|
|
53
48
|
if (partial)
|
|
54
49
|
return {
|
|
55
50
|
icon: Minus,
|
|
56
|
-
innerClass:
|
|
51
|
+
innerClass: 'border-primary-700 text-primary-500'
|
|
57
52
|
};
|
|
58
53
|
return {};
|
|
59
54
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
+
import { Toasts } from '$lib';
|
|
2
3
|
import type { IvoryComponent } from '$lib/types';
|
|
3
4
|
import { Copy } from '@lucide/svelte';
|
|
4
5
|
import type { ClassValue } from 'svelte/elements';
|
|
5
|
-
import { Toasts } from '../toast';
|
|
6
6
|
|
|
7
7
|
export interface CopyToClipboardButtonProps extends IvoryComponent<HTMLButtonElement> {
|
|
8
8
|
text: string;
|
|
@@ -27,7 +27,10 @@
|
|
|
27
27
|
function add(files: File[]) {
|
|
28
28
|
const value = rest.form.value();
|
|
29
29
|
if (Array.isArray(value)) {
|
|
30
|
-
rest.form.set([
|
|
30
|
+
rest.form.set([
|
|
31
|
+
...value.filter((f) => f && !files.includes(f)),
|
|
32
|
+
...Array.from(files || [])
|
|
33
|
+
]);
|
|
31
34
|
} else {
|
|
32
35
|
rest.form.set((files[0] ?? undefined) as File);
|
|
33
36
|
}
|
|
@@ -81,7 +84,7 @@
|
|
|
81
84
|
<div class="flex h-full w-full flex-col items-center justify-center gap-2 p-4">
|
|
82
85
|
{#if files && files.length > 0}
|
|
83
86
|
<div class="flex flex-row items-center gap-4">
|
|
84
|
-
{#each files as file (file)}
|
|
87
|
+
{#each files.filter((f) => !!f) as file (file)}
|
|
85
88
|
{@render fileRender(file)}
|
|
86
89
|
{/each}
|
|
87
90
|
</div>
|
|
@@ -2,21 +2,13 @@
|
|
|
2
2
|
import { theme } from '$lib/theme.svelte';
|
|
3
3
|
import type { IvoryComponent } from '$lib/types';
|
|
4
4
|
import { merge } from '$lib/utils/functions';
|
|
5
|
-
import type { MouseEventHandler } from 'svelte/elements';
|
|
5
|
+
import type { EventHandler, MouseEventHandler } from 'svelte/elements';
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
/** Gets called when the dialog requests to close (Escape, backdrop click) */
|
|
9
|
-
onclose?: () => void;
|
|
10
|
-
}
|
|
7
|
+
export type DialogProps = IvoryComponent<HTMLDialogElement>;
|
|
11
8
|
</script>
|
|
12
9
|
|
|
13
10
|
<script lang="ts">
|
|
14
|
-
let {
|
|
15
|
-
class: clazz,
|
|
16
|
-
onclose: onclose, // This is the prop from the parent
|
|
17
|
-
children,
|
|
18
|
-
...rest
|
|
19
|
-
}: DialogProps = $props();
|
|
11
|
+
let { children, ...props }: DialogProps = $props();
|
|
20
12
|
|
|
21
13
|
let dialog = $state<HTMLDialogElement>();
|
|
22
14
|
|
|
@@ -34,28 +26,35 @@
|
|
|
34
26
|
currentlyOpen = false;
|
|
35
27
|
};
|
|
36
28
|
|
|
37
|
-
const
|
|
29
|
+
const onclick: MouseEventHandler<HTMLDialogElement> = (event) => {
|
|
38
30
|
if (event.target !== dialog) return;
|
|
39
|
-
|
|
31
|
+
if (props.onclick) props.onclick(event);
|
|
32
|
+
else close();
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const onclose: EventHandler<Event, HTMLDialogElement> = (event) => {
|
|
36
|
+
props.onclose?.(event);
|
|
37
|
+
currentlyOpen = false;
|
|
40
38
|
};
|
|
41
39
|
|
|
42
|
-
const
|
|
43
|
-
|
|
40
|
+
const oncancel: EventHandler<Event, HTMLDialogElement> = (event) => {
|
|
41
|
+
if (props.oncancel) props.oncancel(event);
|
|
42
|
+
else props.onclose?.(event);
|
|
44
43
|
currentlyOpen = false;
|
|
45
44
|
};
|
|
46
45
|
</script>
|
|
47
46
|
|
|
48
47
|
<dialog
|
|
49
48
|
bind:this={dialog}
|
|
50
|
-
|
|
51
|
-
oncancel
|
|
52
|
-
onclose
|
|
49
|
+
{...props}
|
|
50
|
+
{oncancel}
|
|
51
|
+
{onclose}
|
|
52
|
+
{onclick}
|
|
53
53
|
class={merge(
|
|
54
54
|
'backdrop:bg-surface-800-200/30 h-full max-h-none w-screen max-w-full overflow-hidden bg-transparent',
|
|
55
55
|
theme.current.dialog?.class,
|
|
56
|
-
|
|
56
|
+
props.class
|
|
57
57
|
)}
|
|
58
|
-
{...rest}
|
|
59
58
|
>
|
|
60
59
|
{@render children?.()}
|
|
61
60
|
</dialog>
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
+
import type { IvoryComponent } from '$lib/types';
|
|
2
3
|
import { merge } from '$lib/utils/functions';
|
|
3
|
-
import { X } from '@lucide/svelte';
|
|
4
4
|
import type { Snippet } from 'svelte';
|
|
5
|
-
import
|
|
6
|
-
import { Dialog } from '../dialog';
|
|
5
|
+
import type { MouseEventHandler } from 'svelte/elements';
|
|
6
|
+
import { Dialog, type DialogProps } from '../dialog';
|
|
7
7
|
|
|
8
8
|
export type DrawerPlacement = 'left' | 'right';
|
|
9
|
-
|
|
10
|
-
export type DrawerProps = {
|
|
9
|
+
export type DrawerProps = IvoryComponent<HTMLDivElement> & {
|
|
11
10
|
class?: string;
|
|
12
|
-
title?: string | Snippet;
|
|
13
11
|
children?: Snippet;
|
|
14
12
|
placement?: DrawerPlacement;
|
|
15
|
-
|
|
16
|
-
/** Overwrites entire content of the drawer */
|
|
17
|
-
inner?: Snippet;
|
|
13
|
+
dialog?: DialogProps;
|
|
18
14
|
};
|
|
19
15
|
</script>
|
|
20
16
|
|
|
@@ -22,33 +18,35 @@
|
|
|
22
18
|
let {
|
|
23
19
|
class: clazz,
|
|
24
20
|
children,
|
|
25
|
-
title,
|
|
26
21
|
placement = 'right',
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
...rest
|
|
22
|
+
dialog: dialogProps,
|
|
23
|
+
...props
|
|
30
24
|
}: DrawerProps = $props();
|
|
31
25
|
|
|
32
26
|
let dialog = $state<Dialog>();
|
|
33
27
|
|
|
34
28
|
export const close = () => dialog?.close();
|
|
35
|
-
|
|
36
29
|
export const open = () => dialog?.open();
|
|
37
|
-
|
|
38
30
|
export const isOpen = () => dialog?.isOpen();
|
|
39
|
-
|
|
40
31
|
export const toggle = () => {
|
|
41
32
|
if (isOpen()) close();
|
|
42
33
|
else open();
|
|
43
34
|
};
|
|
35
|
+
|
|
36
|
+
const onclick: MouseEventHandler<HTMLDivElement> = (e) => {
|
|
37
|
+
e.stopPropagation();
|
|
38
|
+
props.onclick?.(e);
|
|
39
|
+
};
|
|
44
40
|
</script>
|
|
45
41
|
|
|
46
42
|
<Dialog
|
|
47
43
|
bind:this={dialog}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
{...dialogProps}
|
|
45
|
+
class={merge(
|
|
46
|
+
'flex flex-row justify-start overflow-visible',
|
|
47
|
+
placement === 'right' && 'justify-end',
|
|
48
|
+
dialogProps?.class
|
|
49
|
+
)}
|
|
52
50
|
>
|
|
53
51
|
<div
|
|
54
52
|
data-placement={placement}
|
|
@@ -56,28 +54,10 @@
|
|
|
56
54
|
'drawer bg-surface-50-950 flex h-full flex-col gap-4 p-4 transition-transform ease-in-out',
|
|
57
55
|
clazz
|
|
58
56
|
)}
|
|
59
|
-
|
|
60
|
-
{
|
|
57
|
+
{...props}
|
|
58
|
+
{onclick}
|
|
61
59
|
>
|
|
62
|
-
{
|
|
63
|
-
{@render inner()}
|
|
64
|
-
{:else}
|
|
65
|
-
<div class="flex flex-row items-center justify-between gap-8">
|
|
66
|
-
{#if title}
|
|
67
|
-
<Heading class="flex grow flex-row items-center gap-4">
|
|
68
|
-
{#if typeof title === 'function'}
|
|
69
|
-
{@render title()}
|
|
70
|
-
{:else}
|
|
71
|
-
{title}
|
|
72
|
-
{/if}
|
|
73
|
-
</Heading>
|
|
74
|
-
{/if}
|
|
75
|
-
<button class="group ml-auto flex justify-end" type="button" onclick={close}>
|
|
76
|
-
<X class="h-full w-auto transition-[stroke-width] group-hover:stroke-3" />
|
|
77
|
-
</button>
|
|
78
|
-
</div>
|
|
79
|
-
{@render children?.()}
|
|
80
|
-
{/if}
|
|
60
|
+
{@render children?.()}
|
|
81
61
|
</div>
|
|
82
62
|
</Dialog>
|
|
83
63
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { Dialog, type DialogProps } from './dialog';
|
|
2
2
|
export { default as Drawer } from './drawer/Drawer.svelte';
|
|
3
|
-
export { default as Heading } from './Heading.svelte';
|
|
4
3
|
export { default as Modal, type ModalProps } from './modal/Modal.svelte';
|
|
5
4
|
export {
|
|
6
5
|
default as Popover,
|