svelte-comp 1.3.3 → 1.3.6
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/LICENSE.md +21 -21
- package/README.md +101 -100
- package/dist/App.svelte +507 -507
- package/dist/Container.svelte +59 -59
- package/dist/app.css +234 -235
- package/dist/app.d.ts +10 -0
- package/dist/lib/Accordion.svelte +155 -155
- package/dist/lib/Badge.svelte +44 -44
- package/dist/lib/Button.svelte +185 -170
- package/dist/lib/Calendar.svelte +384 -384
- package/dist/lib/Card.svelte +103 -103
- package/dist/lib/Carousel.svelte +293 -293
- package/dist/lib/Carousel.svelte.d.ts +1 -1
- package/dist/lib/CheckBox.svelte +210 -210
- package/dist/lib/CodeView.svelte +308 -307
- package/dist/lib/ColorPicker.svelte +159 -159
- package/dist/lib/ContextMenu.svelte +328 -322
- package/dist/lib/DatePicker.svelte +246 -246
- package/dist/lib/Dialog.svelte +233 -233
- package/dist/lib/Field.svelte +299 -299
- package/dist/lib/FilePicker.svelte +295 -240
- package/dist/lib/FilePicker.svelte.d.ts +6 -1
- package/dist/lib/Form.svelte +438 -438
- package/dist/lib/Hamburger.svelte +217 -217
- package/dist/lib/InstallPWA.svelte +94 -94
- package/dist/lib/Menu.svelte +623 -623
- package/dist/lib/NoticeBase.svelte +140 -140
- package/dist/lib/PaginatedCard.svelte +73 -73
- package/dist/lib/Pagination.svelte +119 -119
- package/dist/lib/PrimaryColorSelect.svelte +111 -111
- package/dist/lib/ProgressBar.svelte +141 -141
- package/dist/lib/ProgressCircle.svelte +190 -190
- package/dist/lib/Radio.svelte +189 -189
- package/dist/lib/SearchInput.svelte +104 -104
- package/dist/lib/Select.svelte +524 -524
- package/dist/lib/Slider.svelte +253 -253
- package/dist/lib/Splitter.svelte +159 -150
- package/dist/lib/Switch.svelte +168 -167
- package/dist/lib/Table.svelte +299 -299
- package/dist/lib/Tabs.svelte +213 -213
- package/dist/lib/ThemeToggle.svelte +128 -127
- package/dist/lib/TimePicker.svelte +312 -312
- package/dist/lib/TimePickerNew.svelte +634 -0
- package/dist/lib/TimePickerNew.svelte.d.ts +49 -0
- package/dist/lib/Toast.svelte +123 -123
- package/dist/lib/Tooltip.svelte +110 -110
- package/dist/lib/Topbar.svelte +107 -107
- package/dist/lib/__tests__/Accordion.test.d.ts +1 -0
- package/dist/lib/__tests__/Accordion.test.js +171 -0
- package/dist/lib/__tests__/Badge.test.d.ts +1 -0
- package/dist/lib/__tests__/Badge.test.js +41 -0
- package/dist/lib/__tests__/Button.test.d.ts +1 -0
- package/dist/lib/__tests__/Button.test.js +269 -0
- package/dist/lib/__tests__/Calendar.test.d.ts +1 -0
- package/dist/lib/__tests__/Calendar.test.js +171 -0
- package/dist/lib/__tests__/Card.test.d.ts +1 -0
- package/dist/lib/__tests__/Card.test.js +148 -0
- package/dist/lib/__tests__/Carousel.test.d.ts +1 -0
- package/dist/lib/__tests__/Carousel.test.js +439 -0
- package/dist/lib/__tests__/CheckBox.test.d.ts +1 -0
- package/dist/lib/__tests__/CheckBox.test.js +152 -0
- package/dist/lib/__tests__/CodeView.test.d.ts +1 -0
- package/dist/lib/__tests__/CodeView.test.js +157 -0
- package/dist/lib/__tests__/ColorPicker.test.d.ts +1 -0
- package/dist/lib/__tests__/ColorPicker.test.js +93 -0
- package/dist/lib/__tests__/ContextMenu.test.d.ts +1 -0
- package/dist/lib/__tests__/ContextMenu.test.js +67 -0
- package/dist/lib/__tests__/DatePicker.test.d.ts +1 -0
- package/dist/lib/__tests__/DatePicker.test.js +108 -0
- package/dist/lib/__tests__/Dialog.test.d.ts +1 -0
- package/dist/lib/__tests__/Dialog.test.js +183 -0
- package/dist/lib/__tests__/Field.test.d.ts +1 -0
- package/dist/lib/__tests__/Field.test.js +190 -0
- package/dist/lib/__tests__/FilePicker.test.d.ts +1 -0
- package/dist/lib/__tests__/FilePicker.test.js +179 -0
- package/dist/lib/__tests__/Form.integration.test.d.ts +1 -0
- package/dist/lib/__tests__/Form.integration.test.js +158 -0
- package/dist/lib/__tests__/Form.test.d.ts +1 -0
- package/dist/lib/__tests__/Form.test.js +463 -0
- package/dist/lib/__tests__/Hamburger.test.d.ts +1 -0
- package/dist/lib/__tests__/Hamburger.test.js +161 -0
- package/dist/lib/__tests__/InstallPWA.test.d.ts +1 -0
- package/dist/lib/__tests__/InstallPWA.test.js +15 -0
- package/dist/lib/__tests__/Menu.test.d.ts +1 -0
- package/dist/lib/__tests__/Menu.test.js +285 -0
- package/dist/lib/__tests__/NoticeBase.test.d.ts +1 -0
- package/dist/lib/__tests__/NoticeBase.test.js +60 -0
- package/dist/lib/__tests__/PaginatedCard.test.d.ts +1 -0
- package/dist/lib/__tests__/PaginatedCard.test.js +89 -0
- package/dist/lib/__tests__/Pagination.test.d.ts +1 -0
- package/dist/lib/__tests__/Pagination.test.js +168 -0
- package/dist/lib/__tests__/PrimaryColorSelect.test.d.ts +1 -0
- package/dist/lib/__tests__/PrimaryColorSelect.test.js +92 -0
- package/dist/lib/__tests__/ProgressBar.test.d.ts +1 -0
- package/dist/lib/__tests__/ProgressBar.test.js +69 -0
- package/dist/lib/__tests__/ProgressCircle.test.d.ts +1 -0
- package/dist/lib/__tests__/ProgressCircle.test.js +71 -0
- package/dist/lib/__tests__/Radio.test.d.ts +1 -0
- package/dist/lib/__tests__/Radio.test.js +127 -0
- package/dist/lib/__tests__/SearchInput.test.d.ts +1 -0
- package/dist/lib/__tests__/SearchInput.test.js +80 -0
- package/dist/lib/__tests__/Select.test.d.ts +1 -0
- package/dist/lib/__tests__/Select.test.js +408 -0
- package/dist/lib/__tests__/Slider.test.d.ts +1 -0
- package/dist/lib/__tests__/Slider.test.js +213 -0
- package/dist/lib/__tests__/Splitter.test.d.ts +1 -0
- package/dist/lib/__tests__/Splitter.test.js +87 -0
- package/dist/lib/__tests__/Switch.test.d.ts +1 -0
- package/dist/lib/__tests__/Switch.test.js +97 -0
- package/dist/lib/__tests__/Table.test.d.ts +1 -0
- package/dist/lib/__tests__/Table.test.js +349 -0
- package/dist/lib/__tests__/Tabs.test.d.ts +1 -0
- package/dist/lib/__tests__/Tabs.test.js +262 -0
- package/dist/lib/__tests__/ThemeToggle.test.d.ts +1 -0
- package/dist/lib/__tests__/ThemeToggle.test.js +84 -0
- package/dist/lib/__tests__/TimePicker.test.d.ts +1 -0
- package/dist/lib/__tests__/TimePicker.test.js +146 -0
- package/dist/lib/__tests__/TimePickerNew.test.d.ts +1 -0
- package/dist/lib/__tests__/TimePickerNew.test.js +322 -0
- package/dist/lib/__tests__/Toast.test.d.ts +1 -0
- package/dist/lib/__tests__/Toast.test.js +135 -0
- package/dist/lib/__tests__/Tooltip.test.d.ts +1 -0
- package/dist/lib/__tests__/Tooltip.test.js +171 -0
- package/dist/lib/__tests__/Topbar.test.d.ts +1 -0
- package/dist/lib/__tests__/Topbar.test.js +25 -0
- package/dist/lib/__tests__/setupLangContext.d.ts +1 -0
- package/dist/lib/__tests__/setupLangContext.js +65 -0
- package/dist/lib/__tests__/storage.test.d.ts +1 -0
- package/dist/lib/__tests__/storage.test.js +124 -0
- package/dist/lib/__tests__/utils.test.d.ts +1 -0
- package/dist/lib/__tests__/utils.test.js +11 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +1 -0
- package/dist/lib/lang.d.ts +4 -0
- package/dist/lib/lang.js +4 -0
- package/dist/styles.css +234 -232
- package/dist/utils/index.js +15 -4
- package/package.json +52 -52
package/dist/lib/Card.svelte
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
<!-- src/lib/Card.svelte -->
|
|
2
|
-
<script lang="ts">
|
|
3
|
-
/**
|
|
4
|
-
* @component Card
|
|
5
|
-
* @description Flexible layout component with optional `header` and `footer` sections. Supports predefined size variants (xs to xl) through the `sz` prop.
|
|
6
|
-
*
|
|
7
|
-
* @prop header {Snippet} - Content rendered in the card header
|
|
8
|
-
*
|
|
9
|
-
* @prop footer {Snippet} - Content rendered in the card footer
|
|
10
|
-
*
|
|
11
|
-
* @prop children {Snippet} - Main body content of the card
|
|
12
|
-
*
|
|
13
|
-
* @prop class {string} - Additional CSS classes for the card
|
|
14
|
-
* @default ""
|
|
15
|
-
*
|
|
16
|
-
* @prop sz {SizeKey} - Padding and typography preset
|
|
17
|
-
* @options xs|sm|md|lg|xl
|
|
18
|
-
* @default md
|
|
19
|
-
*
|
|
20
|
-
* @prop flushHeader {boolean} - Removes padding and border from the header
|
|
21
|
-
* @default false
|
|
22
|
-
*
|
|
23
|
-
* @prop flushFooter {boolean} - Removes padding and border from the footer
|
|
24
|
-
* @default false
|
|
25
|
-
*
|
|
26
|
-
* @note Theme-aware: uses CSS variables (`--color-bg-surface`, `--border-color-default`).
|
|
27
|
-
* @note Rounded corners, subtle shadow, and border for a clean visual hierarchy.
|
|
28
|
-
* @note Padding and typography scale automatically with `sz`.
|
|
29
|
-
* @note Uses `{@render}` snippets instead of legacy `slots`.
|
|
30
|
-
*/
|
|
31
|
-
import type { Snippet } from "svelte";
|
|
32
|
-
import { type SizeKey, TEXT } from "./types";
|
|
33
|
-
import { cx } from "../utils";
|
|
34
|
-
|
|
35
|
-
type Props = {
|
|
36
|
-
header?: Snippet;
|
|
37
|
-
footer?: Snippet;
|
|
38
|
-
children?: Snippet;
|
|
39
|
-
class?: string;
|
|
40
|
-
sz?: SizeKey;
|
|
41
|
-
flushHeader?: boolean;
|
|
42
|
-
flushFooter?: boolean;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
let {
|
|
46
|
-
header,
|
|
47
|
-
footer,
|
|
48
|
-
children,
|
|
49
|
-
class: externalClass = "",
|
|
50
|
-
sz = "md",
|
|
51
|
-
flushHeader = false,
|
|
52
|
-
flushFooter = false,
|
|
53
|
-
}: Props = $props();
|
|
54
|
-
|
|
55
|
-
const paddingSizes: Record<SizeKey, string> = {
|
|
56
|
-
xs: "px-
|
|
57
|
-
sm: "px-
|
|
58
|
-
md: "px-
|
|
59
|
-
lg: "px-
|
|
60
|
-
xl: "px-
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const cardClass = $derived(
|
|
64
|
-
cx(
|
|
65
|
-
"bg-[var(--color-bg-surface)] border border-[var(--border-color-default)] rounded-xl shadow-
|
|
66
|
-
TEXT[sz],
|
|
67
|
-
"flex flex-col",
|
|
68
|
-
externalClass
|
|
69
|
-
)
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
const headerClass = $derived(
|
|
73
|
-
flushHeader
|
|
74
|
-
? ""
|
|
75
|
-
: cx("border-b border-[var(--border-color-default)]", paddingSizes[sz])
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
const contentClass = $derived(cx(paddingSizes[sz], "flex-1 min-h-0"));
|
|
79
|
-
|
|
80
|
-
const footerClass = $derived(
|
|
81
|
-
flushFooter
|
|
82
|
-
? ""
|
|
83
|
-
: cx("border-t border-[var(--border-color-default)]", paddingSizes[sz])
|
|
84
|
-
);
|
|
85
|
-
</script>
|
|
86
|
-
|
|
87
|
-
<div class={cardClass}>
|
|
88
|
-
{#if header}
|
|
89
|
-
<div class={headerClass}>
|
|
90
|
-
{@render header?.()}
|
|
91
|
-
</div>
|
|
92
|
-
{/if}
|
|
93
|
-
|
|
94
|
-
<div class={contentClass}>
|
|
95
|
-
{@render children?.()}
|
|
96
|
-
</div>
|
|
97
|
-
|
|
98
|
-
{#if footer}
|
|
99
|
-
<div class={footerClass}>
|
|
100
|
-
{@render footer?.()}
|
|
101
|
-
</div>
|
|
102
|
-
{/if}
|
|
103
|
-
</div>
|
|
1
|
+
<!-- src/lib/Card.svelte -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
/**
|
|
4
|
+
* @component Card
|
|
5
|
+
* @description Flexible layout component with optional `header` and `footer` sections. Supports predefined size variants (xs to xl) through the `sz` prop.
|
|
6
|
+
*
|
|
7
|
+
* @prop header {Snippet} - Content rendered in the card header
|
|
8
|
+
*
|
|
9
|
+
* @prop footer {Snippet} - Content rendered in the card footer
|
|
10
|
+
*
|
|
11
|
+
* @prop children {Snippet} - Main body content of the card
|
|
12
|
+
*
|
|
13
|
+
* @prop class {string} - Additional CSS classes for the card
|
|
14
|
+
* @default ""
|
|
15
|
+
*
|
|
16
|
+
* @prop sz {SizeKey} - Padding and typography preset
|
|
17
|
+
* @options xs|sm|md|lg|xl
|
|
18
|
+
* @default md
|
|
19
|
+
*
|
|
20
|
+
* @prop flushHeader {boolean} - Removes padding and border from the header
|
|
21
|
+
* @default false
|
|
22
|
+
*
|
|
23
|
+
* @prop flushFooter {boolean} - Removes padding and border from the footer
|
|
24
|
+
* @default false
|
|
25
|
+
*
|
|
26
|
+
* @note Theme-aware: uses CSS variables (`--color-bg-surface`, `--border-color-default`).
|
|
27
|
+
* @note Rounded corners, subtle shadow, and border for a clean visual hierarchy.
|
|
28
|
+
* @note Padding and typography scale automatically with `sz`.
|
|
29
|
+
* @note Uses `{@render}` snippets instead of legacy `slots`.
|
|
30
|
+
*/
|
|
31
|
+
import type { Snippet } from "svelte";
|
|
32
|
+
import { type SizeKey, TEXT } from "./types";
|
|
33
|
+
import { cx } from "../utils";
|
|
34
|
+
|
|
35
|
+
type Props = {
|
|
36
|
+
header?: Snippet;
|
|
37
|
+
footer?: Snippet;
|
|
38
|
+
children?: Snippet;
|
|
39
|
+
class?: string;
|
|
40
|
+
sz?: SizeKey;
|
|
41
|
+
flushHeader?: boolean;
|
|
42
|
+
flushFooter?: boolean;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
let {
|
|
46
|
+
header,
|
|
47
|
+
footer,
|
|
48
|
+
children,
|
|
49
|
+
class: externalClass = "",
|
|
50
|
+
sz = "md",
|
|
51
|
+
flushHeader = false,
|
|
52
|
+
flushFooter = false,
|
|
53
|
+
}: Props = $props();
|
|
54
|
+
|
|
55
|
+
const paddingSizes: Record<SizeKey, string> = {
|
|
56
|
+
xs: "px-[calc(var(--spacing-sm)+var(--spacing-xs))] py-[var(--spacing-sm)]",
|
|
57
|
+
sm: "px-[var(--spacing-md)] py-[var(--spacing-sm)]",
|
|
58
|
+
md: "px-[calc(var(--spacing-md)+var(--spacing-xs))] py-[calc(var(--spacing-sm)+var(--spacing-xs))]",
|
|
59
|
+
lg: "px-[calc(var(--spacing-md)+var(--spacing-sm))] py-[var(--spacing-md)]",
|
|
60
|
+
xl: "px-[calc(var(--spacing-md)+var(--spacing-sm)+var(--spacing-xs))] py-[calc(var(--spacing-md)+var(--spacing-xs))]",
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const cardClass = $derived(
|
|
64
|
+
cx(
|
|
65
|
+
"bg-[var(--color-bg-surface)] border border-[var(--border-color-default)] rounded-[var(--radius-xl)] shadow-[0_1px_2px_var(--shadow-color)] overflow-hidden",
|
|
66
|
+
TEXT[sz],
|
|
67
|
+
"flex flex-col",
|
|
68
|
+
externalClass
|
|
69
|
+
)
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
const headerClass = $derived(
|
|
73
|
+
flushHeader
|
|
74
|
+
? ""
|
|
75
|
+
: cx("border-b border-[var(--border-color-default)]", paddingSizes[sz])
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
const contentClass = $derived(cx(paddingSizes[sz], "flex-1 min-h-0"));
|
|
79
|
+
|
|
80
|
+
const footerClass = $derived(
|
|
81
|
+
flushFooter
|
|
82
|
+
? ""
|
|
83
|
+
: cx("border-t border-[var(--border-color-default)]", paddingSizes[sz])
|
|
84
|
+
);
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<div class={cardClass}>
|
|
88
|
+
{#if header}
|
|
89
|
+
<div class={headerClass}>
|
|
90
|
+
{@render header?.()}
|
|
91
|
+
</div>
|
|
92
|
+
{/if}
|
|
93
|
+
|
|
94
|
+
<div class={contentClass}>
|
|
95
|
+
{@render children?.()}
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
{#if footer}
|
|
99
|
+
<div class={footerClass}>
|
|
100
|
+
{@render footer?.()}
|
|
101
|
+
</div>
|
|
102
|
+
{/if}
|
|
103
|
+
</div>
|