cclkit4svelte 2.0.5 → 2.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.
- package/dist/Accordion.svelte +40 -29
- package/dist/Accordion.svelte.d.ts +31 -22
- package/dist/AccordionItem.svelte +120 -87
- package/dist/AccordionItem.svelte.d.ts +43 -34
- package/dist/Alert.svelte +111 -82
- package/dist/Alert.svelte.d.ts +38 -36
- package/dist/Badge.svelte +84 -0
- package/dist/Badge.svelte.d.ts +34 -0
- package/dist/BookCard.svelte +127 -88
- package/dist/BookCard.svelte.d.ts +47 -45
- package/dist/Breadcrumb.svelte +91 -0
- package/dist/Breadcrumb.svelte.d.ts +37 -0
- package/dist/Button.svelte +72 -35
- package/dist/Button.svelte.d.ts +33 -31
- package/dist/Card.svelte +110 -75
- package/dist/Card.svelte.d.ts +38 -36
- package/dist/Carousel.svelte +91 -66
- package/dist/Carousel.svelte.d.ts +26 -24
- package/dist/ChangeHistory.svelte +188 -150
- package/dist/ChangeHistory.svelte.d.ts +29 -27
- package/dist/Checkbox.svelte +120 -89
- package/dist/Checkbox.svelte.d.ts +41 -39
- package/dist/CommonHeader.svelte +51 -24
- package/dist/CommonHeader.svelte.d.ts +38 -36
- package/dist/DatePicker.svelte +239 -188
- package/dist/DatePicker.svelte.d.ts +40 -38
- package/dist/Dialog.svelte +224 -0
- package/dist/Dialog.svelte.d.ts +50 -0
- package/dist/Drawer.svelte +158 -0
- package/dist/Drawer.svelte.d.ts +40 -0
- package/dist/Footer.svelte +32 -16
- package/dist/Footer.svelte.d.ts +21 -19
- package/dist/FormGroup.svelte +67 -43
- package/dist/FormGroup.svelte.d.ts +46 -37
- package/dist/Header.svelte +108 -98
- package/dist/Header.svelte.d.ts +25 -23
- package/dist/Input.svelte +154 -99
- package/dist/Input.svelte.d.ts +62 -60
- package/dist/Pagination.svelte +257 -0
- package/dist/Pagination.svelte.d.ts +35 -0
- package/dist/ProgressBar.svelte +49 -44
- package/dist/ProgressBar.svelte.d.ts +25 -23
- package/dist/RadioButton.svelte +92 -62
- package/dist/RadioButton.svelte.d.ts +40 -38
- package/dist/Select.svelte +94 -53
- package/dist/Select.svelte.d.ts +49 -47
- package/dist/ServiceCard.svelte +71 -64
- package/dist/ServiceCard.svelte.d.ts +27 -25
- package/dist/Skeleton.svelte +96 -0
- package/dist/Skeleton.svelte.d.ts +24 -0
- package/dist/SlideMenu.svelte +157 -0
- package/dist/SlideMenu.svelte.d.ts +42 -0
- package/dist/Spinner.svelte +25 -23
- package/dist/Spinner.svelte.d.ts +20 -18
- package/dist/TabPanel.svelte +42 -21
- package/dist/TabPanel.svelte.d.ts +40 -31
- package/dist/Table.svelte +114 -73
- package/dist/Table.svelte.d.ts +33 -31
- package/dist/Tabs.svelte +78 -72
- package/dist/Tabs.svelte.d.ts +18 -16
- package/dist/Textarea.svelte +101 -52
- package/dist/Textarea.svelte.d.ts +57 -55
- package/dist/Thumbnail.svelte +33 -15
- package/dist/Thumbnail.svelte.d.ts +34 -32
- package/dist/Toaster.svelte +144 -0
- package/dist/Toaster.svelte.d.ts +26 -0
- package/dist/Toggle.svelte +85 -61
- package/dist/Toggle.svelte.d.ts +36 -34
- package/dist/Tooltip.svelte +126 -122
- package/dist/Tooltip.svelte.d.ts +30 -21
- package/dist/const/colorMap.d.ts +5 -0
- package/dist/const/colorMap.js +21 -0
- package/dist/const/variables.css +21 -21
- package/dist/index.d.ts +9 -0
- package/dist/index.js +8 -0
- package/dist/toast.d.ts +29 -0
- package/dist/toast.js +66 -0
- package/dist/types/breadcrumb.d.ts +4 -0
- package/dist/types/breadcrumb.js +1 -0
- package/dist/types/slide-menu.d.ts +5 -0
- package/dist/types/slide-menu.js +1 -0
- package/package.json +87 -89
package/dist/Alert.svelte.d.ts
CHANGED
|
@@ -1,38 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* @default 'info'
|
|
12
|
-
*/ type?: "success" | "error" | "warning" | "info";
|
|
13
|
-
/**
|
|
14
|
-
* Whether the alert can be dismissed by the user.
|
|
15
|
-
* @type {boolean}
|
|
16
|
-
* @default false
|
|
17
|
-
*/ dismissible?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Whether the alert should have an outline style.
|
|
20
|
-
* @type {boolean}
|
|
21
|
-
* @default false
|
|
22
|
-
*/ outline?: boolean;
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
23
11
|
};
|
|
24
|
-
|
|
25
|
-
dismiss: CustomEvent<any>;
|
|
26
|
-
} & {
|
|
27
|
-
[evt: string]: CustomEvent<any>;
|
|
28
|
-
};
|
|
29
|
-
slots: {};
|
|
30
|
-
exports?: {} | undefined;
|
|
31
|
-
bindings?: string | undefined;
|
|
32
|
-
};
|
|
33
|
-
export type AlertProps = typeof __propDef.props;
|
|
34
|
-
export type AlertEvents = typeof __propDef.events;
|
|
35
|
-
export type AlertSlots = typeof __propDef.slots;
|
|
36
|
-
export default class Alert extends SvelteComponent<AlertProps, AlertEvents, AlertSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
37
13
|
}
|
|
38
|
-
|
|
14
|
+
declare const Alert: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
/**
|
|
16
|
+
* The message to display in the alert.
|
|
17
|
+
* @type {string}
|
|
18
|
+
*/ message: string;
|
|
19
|
+
/**
|
|
20
|
+
* The type of the alert, which determines its styling.
|
|
21
|
+
* @type {'success' | 'error' | 'warning' | 'info'}
|
|
22
|
+
* @default 'info'
|
|
23
|
+
*/ type?: "success" | "error" | "warning" | "info";
|
|
24
|
+
/**
|
|
25
|
+
* Whether the alert can be dismissed by the user.
|
|
26
|
+
* @type {boolean}
|
|
27
|
+
* @default false
|
|
28
|
+
*/ dismissible?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the alert should have an outline style.
|
|
31
|
+
* @type {boolean}
|
|
32
|
+
* @default false
|
|
33
|
+
*/ outline?: boolean;
|
|
34
|
+
}, {
|
|
35
|
+
dismiss: CustomEvent<any>;
|
|
36
|
+
} & {
|
|
37
|
+
[evt: string]: CustomEvent<any>;
|
|
38
|
+
}, {}, {}, string>;
|
|
39
|
+
type Alert = InstanceType<typeof Alert>;
|
|
40
|
+
export default Alert;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { CCLVividColor } from './const/config';
|
|
3
|
+
import type { ColorVar } from './const/config';
|
|
4
|
+
import { vividFor } from './const/colorMap';
|
|
5
|
+
|
|
6
|
+
/** 色(CSS変数)。例: CCLVividColor.SODA_BLUE */
|
|
7
|
+
export let color: ColorVar = CCLVividColor.SODA_BLUE;
|
|
8
|
+
/** 表示バリエーション */
|
|
9
|
+
export let variant: 'solid' | 'outline' = 'solid';
|
|
10
|
+
/** サイズ */
|
|
11
|
+
export let size: 'sm' | 'md' | 'lg' = 'md';
|
|
12
|
+
/** アクセシビリティ用ラベル(任意: 可視テキストがない場合などに使用) */
|
|
13
|
+
export let ariaLabel: string | undefined;
|
|
14
|
+
/** 表示テキスト(slot優先) */
|
|
15
|
+
export let label: string | undefined;
|
|
16
|
+
|
|
17
|
+
$: vividForText = vividFor(color as string);
|
|
18
|
+
$: styleInline =
|
|
19
|
+
`--badge-color: var(${color});` + (vividForText ? ` --badge-fg: var(${vividForText});` : '');
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<span
|
|
23
|
+
class="ccl-badge"
|
|
24
|
+
data-variant={variant}
|
|
25
|
+
data-size={size}
|
|
26
|
+
aria-label={ariaLabel}
|
|
27
|
+
style={styleInline}
|
|
28
|
+
>
|
|
29
|
+
{#if label}{label}{:else}<slot />{/if}
|
|
30
|
+
</span>
|
|
31
|
+
|
|
32
|
+
<style>
|
|
33
|
+
.ccl-badge {
|
|
34
|
+
--badge-color: var(--soda-blue);
|
|
35
|
+
--badge-height-sm: 20px;
|
|
36
|
+
--badge-height-md: 24px;
|
|
37
|
+
--badge-height-lg: 28px;
|
|
38
|
+
--badge-pad-x-sm: 8px;
|
|
39
|
+
--badge-pad-x-md: 10px;
|
|
40
|
+
--badge-pad-x-lg: 12px;
|
|
41
|
+
|
|
42
|
+
display: inline-flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
gap: 6px;
|
|
46
|
+
border-radius: 9999px;
|
|
47
|
+
font-weight: 600;
|
|
48
|
+
line-height: 1;
|
|
49
|
+
user-select: none;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
border: 1px solid transparent;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* size */
|
|
55
|
+
.ccl-badge[data-size='sm'] {
|
|
56
|
+
height: var(--badge-height-sm);
|
|
57
|
+
padding: 0 var(--badge-pad-x-sm);
|
|
58
|
+
font-size: 12px;
|
|
59
|
+
}
|
|
60
|
+
.ccl-badge[data-size='md'] {
|
|
61
|
+
height: var(--badge-height-md);
|
|
62
|
+
padding: 0 var(--badge-pad-x-md);
|
|
63
|
+
font-size: 12px;
|
|
64
|
+
}
|
|
65
|
+
.ccl-badge[data-size='lg'] {
|
|
66
|
+
height: var(--badge-height-lg);
|
|
67
|
+
padding: 0 var(--badge-pad-x-lg);
|
|
68
|
+
font-size: 13px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* variant */
|
|
72
|
+
.ccl-badge[data-variant='solid'] {
|
|
73
|
+
background: var(--badge-color);
|
|
74
|
+
color: var(--badge-fg, #fff);
|
|
75
|
+
border-color: var(--badge-color);
|
|
76
|
+
}
|
|
77
|
+
.ccl-badge[data-variant='outline'] {
|
|
78
|
+
background: #fff;
|
|
79
|
+
color: var(--badge-fg, var(--badge-color));
|
|
80
|
+
border-color: var(--badge-color);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* no extra sr-only node; use aria-label when needed */
|
|
84
|
+
</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ColorVar } from './const/config';
|
|
2
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
+
$$bindings?: Bindings;
|
|
5
|
+
} & Exports;
|
|
6
|
+
(internal: unknown, props: Props & {
|
|
7
|
+
$$events?: Events;
|
|
8
|
+
$$slots?: Slots;
|
|
9
|
+
}): Exports & {
|
|
10
|
+
$set?: any;
|
|
11
|
+
$on?: any;
|
|
12
|
+
};
|
|
13
|
+
z_$$bindings?: Bindings;
|
|
14
|
+
}
|
|
15
|
+
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
16
|
+
default: any;
|
|
17
|
+
} ? Props extends Record<string, never> ? any : {
|
|
18
|
+
children?: any;
|
|
19
|
+
} : {});
|
|
20
|
+
declare const Badge: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
21
|
+
/** 色(CSS変数)。例: CCLVividColor.SODA_BLUE */ color?: ColorVar;
|
|
22
|
+
/** 表示バリエーション */ variant?: "solid" | "outline";
|
|
23
|
+
/** サイズ */ size?: "sm" | "md" | "lg";
|
|
24
|
+
/** アクセシビリティ用ラベル(任意: 可視テキストがない場合などに使用) */ ariaLabel: string | undefined;
|
|
25
|
+
/** 表示テキスト(slot優先) */ label: string | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
default: {};
|
|
28
|
+
}>, {
|
|
29
|
+
[evt: string]: CustomEvent<any>;
|
|
30
|
+
}, {
|
|
31
|
+
default: {};
|
|
32
|
+
}, {}, string>;
|
|
33
|
+
type Badge = InstanceType<typeof Badge>;
|
|
34
|
+
export default Badge;
|
package/dist/BookCard.svelte
CHANGED
|
@@ -1,96 +1,135 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export let
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button from './Button.svelte';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 書籍のタイトル
|
|
6
|
+
* @type string
|
|
7
|
+
*/
|
|
8
|
+
export let title: string;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 表紙画像のURL
|
|
12
|
+
* @type string
|
|
13
|
+
*/
|
|
14
|
+
export let coverImageUrl: string;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 表紙画像のaltテキスト
|
|
18
|
+
* @type string
|
|
19
|
+
*/
|
|
20
|
+
export let altText: string;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 書籍の短い説明文
|
|
24
|
+
* @type string
|
|
25
|
+
*/
|
|
26
|
+
export let description: string;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 外部リンクのURL
|
|
30
|
+
* @type string | undefined
|
|
31
|
+
*/
|
|
32
|
+
export let linkUrl: string | undefined = undefined;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* リンクボタンのテキスト
|
|
36
|
+
* @default 詳しく見る
|
|
37
|
+
* @type string
|
|
38
|
+
*/
|
|
39
|
+
export let linkText: string = '詳しく見る';
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 枠線の色
|
|
43
|
+
* @default --strawberry-pink
|
|
44
|
+
* @type string
|
|
45
|
+
*/
|
|
46
|
+
export let borderColor: string = '--strawberry-pink';
|
|
47
|
+
|
|
48
|
+
function handleLinkClick() {
|
|
49
|
+
if (linkUrl) {
|
|
50
|
+
window.open(linkUrl, '_blank', 'noopener noreferrer');
|
|
51
|
+
}
|
|
12
52
|
}
|
|
13
|
-
}
|
|
14
53
|
</script>
|
|
15
54
|
|
|
16
55
|
<div class="BookCardWrapper" style="--border-color: var({borderColor})">
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
56
|
+
<div class="BookCardImageWrapper">
|
|
57
|
+
<img class="BookCardImage" src={coverImageUrl} alt={altText} />
|
|
58
|
+
</div>
|
|
59
|
+
<div class="BookCardInfo">
|
|
60
|
+
<div class="BookCardTextWrapper">
|
|
61
|
+
<h2 class="BookCardTitle">{title}</h2>
|
|
62
|
+
<p class="BookCardDescription">{description}</p>
|
|
63
|
+
</div>
|
|
64
|
+
{#if linkUrl}
|
|
65
|
+
<div class="BookCardLinkWrapper">
|
|
66
|
+
<Button label={linkText} bgColor={borderColor} onClick={handleLinkClick} />
|
|
67
|
+
</div>
|
|
68
|
+
{/if}
|
|
69
|
+
</div>
|
|
31
70
|
</div>
|
|
32
71
|
|
|
33
72
|
<style>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
73
|
+
.BookCardWrapper {
|
|
74
|
+
width: 300px;
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
border-radius: 25px;
|
|
78
|
+
border: 5px solid var(--border-color);
|
|
79
|
+
box-shadow: 0 10px 10px rgba(0, 0, 0, 0.25);
|
|
80
|
+
background-color: #fff;
|
|
81
|
+
transition:
|
|
82
|
+
transform 0.2s ease-in-out,
|
|
83
|
+
box-shadow 0.2s ease-in-out;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.BookCardWrapper:hover {
|
|
87
|
+
transform: translateY(-4px);
|
|
88
|
+
box-shadow: 0 14px 14px rgba(0, 0, 0, 0.2);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.BookCardImageWrapper {
|
|
92
|
+
width: 100%;
|
|
93
|
+
height: 400px;
|
|
94
|
+
overflow: hidden;
|
|
95
|
+
border-top-left-radius: 20px;
|
|
96
|
+
border-top-right-radius: 20px;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.BookCardImage {
|
|
100
|
+
width: 100%;
|
|
101
|
+
height: 100%;
|
|
102
|
+
object-fit: cover;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.BookCardInfo {
|
|
106
|
+
padding: 20px;
|
|
107
|
+
display: flex;
|
|
108
|
+
flex-direction: column;
|
|
109
|
+
flex-grow: 1;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.BookCardTextWrapper {
|
|
113
|
+
flex-grow: 1;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.BookCardTitle {
|
|
117
|
+
color: var(--wrap-grey);
|
|
118
|
+
font-size: 1.2rem;
|
|
119
|
+
font-weight: bold;
|
|
120
|
+
margin: 0 0 10px 0;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.BookCardDescription {
|
|
124
|
+
color: var(--wrap-grey);
|
|
125
|
+
font-size: 0.9rem;
|
|
126
|
+
margin: 0;
|
|
127
|
+
overflow-wrap: break-word;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.BookCardLinkWrapper {
|
|
131
|
+
margin-top: 20px;
|
|
132
|
+
display: flex;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
}
|
|
96
135
|
</style>
|
|
@@ -1,47 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/ coverImageUrl: string;
|
|
12
|
-
/**
|
|
13
|
-
* 表紙画像のaltテキスト
|
|
14
|
-
* @type string
|
|
15
|
-
*/ altText: string;
|
|
16
|
-
/**
|
|
17
|
-
* 書籍の短い説明文
|
|
18
|
-
* @type string
|
|
19
|
-
*/ description: string;
|
|
20
|
-
/**
|
|
21
|
-
* 外部リンクのURL
|
|
22
|
-
* @type string | undefined
|
|
23
|
-
*/ linkUrl?: string | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* リンクボタンのテキスト
|
|
26
|
-
* @default 詳しく見る
|
|
27
|
-
* @type string
|
|
28
|
-
*/ linkText?: string;
|
|
29
|
-
/**
|
|
30
|
-
* 枠線の色
|
|
31
|
-
* @default --strawberry-pink
|
|
32
|
-
* @type string
|
|
33
|
-
*/ borderColor?: string;
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
34
11
|
};
|
|
35
|
-
|
|
36
|
-
[evt: string]: CustomEvent<any>;
|
|
37
|
-
};
|
|
38
|
-
slots: {};
|
|
39
|
-
exports?: {} | undefined;
|
|
40
|
-
bindings?: string | undefined;
|
|
41
|
-
};
|
|
42
|
-
export type BookCardProps = typeof __propDef.props;
|
|
43
|
-
export type BookCardEvents = typeof __propDef.events;
|
|
44
|
-
export type BookCardSlots = typeof __propDef.slots;
|
|
45
|
-
export default class BookCard extends SvelteComponent<BookCardProps, BookCardEvents, BookCardSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
46
13
|
}
|
|
47
|
-
|
|
14
|
+
declare const BookCard: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
/**
|
|
16
|
+
* 書籍のタイトル
|
|
17
|
+
* @type string
|
|
18
|
+
*/ title: string;
|
|
19
|
+
/**
|
|
20
|
+
* 表紙画像のURL
|
|
21
|
+
* @type string
|
|
22
|
+
*/ coverImageUrl: string;
|
|
23
|
+
/**
|
|
24
|
+
* 表紙画像のaltテキスト
|
|
25
|
+
* @type string
|
|
26
|
+
*/ altText: string;
|
|
27
|
+
/**
|
|
28
|
+
* 書籍の短い説明文
|
|
29
|
+
* @type string
|
|
30
|
+
*/ description: string;
|
|
31
|
+
/**
|
|
32
|
+
* 外部リンクのURL
|
|
33
|
+
* @type string | undefined
|
|
34
|
+
*/ linkUrl?: string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* リンクボタンのテキスト
|
|
37
|
+
* @default 詳しく見る
|
|
38
|
+
* @type string
|
|
39
|
+
*/ linkText?: string;
|
|
40
|
+
/**
|
|
41
|
+
* 枠線の色
|
|
42
|
+
* @default --strawberry-pink
|
|
43
|
+
* @type string
|
|
44
|
+
*/ borderColor?: string;
|
|
45
|
+
}, {
|
|
46
|
+
[evt: string]: CustomEvent<any>;
|
|
47
|
+
}, {}, {}, string>;
|
|
48
|
+
type BookCard = InstanceType<typeof BookCard>;
|
|
49
|
+
export default BookCard;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { CCLVividColor } from './const/config';
|
|
3
|
+
import type { ColorVar } from './const/config';
|
|
4
|
+
import { vividFor, isPastel } from './const/colorMap';
|
|
5
|
+
import type { BreadcrumbItem } from './types/breadcrumb';
|
|
6
|
+
|
|
7
|
+
/** パンくずリストの項目 */
|
|
8
|
+
export let items: BreadcrumbItem[] = [];
|
|
9
|
+
/** セパレータ文字(slotが優先) */
|
|
10
|
+
export let separator: string = '/';
|
|
11
|
+
/** navのaria-label */
|
|
12
|
+
export let ariaLabel: string = 'Breadcrumb';
|
|
13
|
+
/** 最後の要素もリンクにするか(デフォルトは現在地として非リンク) */
|
|
14
|
+
export let lastItemClickable: boolean = false;
|
|
15
|
+
/** アクティブ要素(最後の要素)のテキスト色。既定はストロベリーピンク */
|
|
16
|
+
export let activeColor: ColorVar = CCLVividColor.STRAWBERRY_PINK;
|
|
17
|
+
$: activeTextVar = isPastel(activeColor) ? vividFor(activeColor)! : activeColor;
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<nav class="ccl-breadcrumb" aria-label={ariaLabel}>
|
|
21
|
+
<ol>
|
|
22
|
+
{#each items as item, i (i)}
|
|
23
|
+
<li>
|
|
24
|
+
{#if i < items.length - 1 || lastItemClickable}
|
|
25
|
+
{#if item.href}
|
|
26
|
+
<a
|
|
27
|
+
href={item.href}
|
|
28
|
+
style={i === items.length - 1 ? `color: var(${activeTextVar});` : undefined}
|
|
29
|
+
>{item.label}</a
|
|
30
|
+
>
|
|
31
|
+
{:else}
|
|
32
|
+
<span style={i === items.length - 1 ? `color: var(${activeTextVar});` : undefined}
|
|
33
|
+
>{item.label}</span
|
|
34
|
+
>
|
|
35
|
+
{/if}
|
|
36
|
+
{:else}
|
|
37
|
+
<span aria-current="page" style={`color: var(${activeTextVar});`}>{item.label}</span>
|
|
38
|
+
{/if}
|
|
39
|
+
{#if i < items.length - 1}
|
|
40
|
+
<span class="sep" aria-hidden="true">
|
|
41
|
+
<slot name="separator">{separator}</slot>
|
|
42
|
+
</span>
|
|
43
|
+
{/if}
|
|
44
|
+
</li>
|
|
45
|
+
{/each}
|
|
46
|
+
</ol>
|
|
47
|
+
<slot />
|
|
48
|
+
</nav>
|
|
49
|
+
|
|
50
|
+
<style>
|
|
51
|
+
.ccl-breadcrumb {
|
|
52
|
+
--bc-color: var(--wrap-grey);
|
|
53
|
+
--bc-sep-color: var(--cloud-grey);
|
|
54
|
+
--bc-gap: 8px;
|
|
55
|
+
--bc-font-size: 13px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ccl-breadcrumb ol {
|
|
59
|
+
margin: 0;
|
|
60
|
+
padding: 0;
|
|
61
|
+
list-style: none;
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-wrap: wrap;
|
|
64
|
+
align-items: center;
|
|
65
|
+
gap: var(--bc-gap);
|
|
66
|
+
color: var(--bc-color);
|
|
67
|
+
font-size: var(--bc-font-size);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.ccl-breadcrumb li {
|
|
71
|
+
display: inline-flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.ccl-breadcrumb a {
|
|
76
|
+
color: var(--bc-color);
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
}
|
|
79
|
+
.ccl-breadcrumb a:hover {
|
|
80
|
+
text-decoration: underline;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.ccl-breadcrumb .sep {
|
|
84
|
+
margin: 0 var(--bc-gap);
|
|
85
|
+
color: var(--bc-sep-color);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.ccl-breadcrumb [aria-current='page'] {
|
|
89
|
+
font-weight: 600;
|
|
90
|
+
}
|
|
91
|
+
</style>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ColorVar } from './const/config';
|
|
2
|
+
import type { BreadcrumbItem } from './types/breadcrumb';
|
|
3
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
4
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
5
|
+
$$bindings?: Bindings;
|
|
6
|
+
} & Exports;
|
|
7
|
+
(internal: unknown, props: Props & {
|
|
8
|
+
$$events?: Events;
|
|
9
|
+
$$slots?: Slots;
|
|
10
|
+
}): Exports & {
|
|
11
|
+
$set?: any;
|
|
12
|
+
$on?: any;
|
|
13
|
+
};
|
|
14
|
+
z_$$bindings?: Bindings;
|
|
15
|
+
}
|
|
16
|
+
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
17
|
+
default: any;
|
|
18
|
+
} ? Props extends Record<string, never> ? any : {
|
|
19
|
+
children?: any;
|
|
20
|
+
} : {});
|
|
21
|
+
declare const Breadcrumb: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
22
|
+
/** パンくずリストの項目 */ items?: BreadcrumbItem[];
|
|
23
|
+
/** セパレータ文字(slotが優先) */ separator?: string;
|
|
24
|
+
/** navのaria-label */ ariaLabel?: string;
|
|
25
|
+
/** 最後の要素もリンクにするか(デフォルトは現在地として非リンク) */ lastItemClickable?: boolean;
|
|
26
|
+
/** アクティブ要素(最後の要素)のテキスト色。既定はストロベリーピンク */ activeColor?: ColorVar;
|
|
27
|
+
}, {
|
|
28
|
+
separator: {};
|
|
29
|
+
default: {};
|
|
30
|
+
}>, {
|
|
31
|
+
[evt: string]: CustomEvent<any>;
|
|
32
|
+
}, {
|
|
33
|
+
separator: {};
|
|
34
|
+
default: {};
|
|
35
|
+
}, {}, string>;
|
|
36
|
+
type Breadcrumb = InstanceType<typeof Breadcrumb>;
|
|
37
|
+
export default Breadcrumb;
|