cclkit4svelte 2.0.6 → 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 -87
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* @default --strawberry-pink
|
|
12
|
-
* @type string
|
|
13
|
-
*/ 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;
|
|
14
11
|
};
|
|
15
|
-
|
|
16
|
-
[evt: string]: CustomEvent<any>;
|
|
17
|
-
};
|
|
18
|
-
slots: {};
|
|
19
|
-
exports?: {} | undefined;
|
|
20
|
-
bindings?: string | undefined;
|
|
21
|
-
};
|
|
22
|
-
export type ServiceCardProps = typeof __propDef.props;
|
|
23
|
-
export type ServiceCardEvents = typeof __propDef.events;
|
|
24
|
-
export type ServiceCardSlots = typeof __propDef.slots;
|
|
25
|
-
export default class ServiceCard extends SvelteComponent<ServiceCardProps, ServiceCardEvents, ServiceCardSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
26
13
|
}
|
|
27
|
-
|
|
14
|
+
declare const ServiceCard: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
serviceName: string;
|
|
16
|
+
description: string;
|
|
17
|
+
imageUrl: string;
|
|
18
|
+
altText: string;
|
|
19
|
+
linkUrl?: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* 枠線の色
|
|
22
|
+
* @default --strawberry-pink
|
|
23
|
+
* @type string
|
|
24
|
+
*/ borderColor?: string;
|
|
25
|
+
}, {
|
|
26
|
+
[evt: string]: CustomEvent<any>;
|
|
27
|
+
}, {}, {}, string>;
|
|
28
|
+
type ServiceCard = InstanceType<typeof ServiceCard>;
|
|
29
|
+
export default ServiceCard;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/** ローディング用の視覚プレースホルダ(非アクセシブル) */
|
|
3
|
+
export let variant: 'text' | 'rect' | 'circle' = 'text';
|
|
4
|
+
/** 幅(例: '100%', '240px') */
|
|
5
|
+
export let width: string | undefined;
|
|
6
|
+
/** 高さ(例: '16px', '1rem')。text時は行高として使用 */
|
|
7
|
+
export let height: string | undefined;
|
|
8
|
+
/** 角丸(rect/text) */
|
|
9
|
+
export let radius: string = '6px';
|
|
10
|
+
/** text時の行数 */
|
|
11
|
+
export let lines: number = 1;
|
|
12
|
+
// 固定カラースキーム
|
|
13
|
+
const computedBase = '#eeeeee';
|
|
14
|
+
const computedHighlight = '#ffffff';
|
|
15
|
+
$: styleInline =
|
|
16
|
+
`--skel-base: ${computedBase}; --skel-highlight: ${computedHighlight};` +
|
|
17
|
+
(width ? ` width: ${width};` : '') +
|
|
18
|
+
(height ? ` height: ${height};` : '');
|
|
19
|
+
|
|
20
|
+
const arr = Array.from({ length: Math.max(1, lines) });
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
{#if variant === 'text'}
|
|
24
|
+
<div class="ccl-skeleton-text" style={styleInline} aria-hidden="true" role="presentation">
|
|
25
|
+
{#each arr as _, i}
|
|
26
|
+
<span class="line" data-last={i === arr.length - 1}></span>
|
|
27
|
+
{/each}
|
|
28
|
+
</div>
|
|
29
|
+
{:else if variant === 'circle'}
|
|
30
|
+
<div
|
|
31
|
+
class="ccl-skeleton ccl-skeleton-circle"
|
|
32
|
+
style={styleInline}
|
|
33
|
+
aria-hidden="true"
|
|
34
|
+
role="presentation"
|
|
35
|
+
></div>
|
|
36
|
+
{:else}
|
|
37
|
+
<div
|
|
38
|
+
class="ccl-skeleton ccl-skeleton-rect"
|
|
39
|
+
style={`border-radius: ${radius}; ${styleInline}`}
|
|
40
|
+
aria-hidden="true"
|
|
41
|
+
role="presentation"
|
|
42
|
+
></div>
|
|
43
|
+
{/if}
|
|
44
|
+
|
|
45
|
+
<style>
|
|
46
|
+
.ccl-skeleton,
|
|
47
|
+
.ccl-skeleton-text .line {
|
|
48
|
+
--skel-base: #eeeeee;
|
|
49
|
+
--skel-highlight: #ffffff;
|
|
50
|
+
background: var(--skel-base);
|
|
51
|
+
position: relative;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.ccl-skeleton,
|
|
56
|
+
.ccl-skeleton-text .line {
|
|
57
|
+
background-image: linear-gradient(
|
|
58
|
+
90deg,
|
|
59
|
+
var(--skel-base) 0px,
|
|
60
|
+
var(--skel-highlight) 60px,
|
|
61
|
+
var(--skel-base) 120px
|
|
62
|
+
);
|
|
63
|
+
background-size: 200% 100%;
|
|
64
|
+
animation: skel-shimmer 1.2s ease-in-out infinite;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@keyframes skel-shimmer {
|
|
68
|
+
0% {
|
|
69
|
+
background-position: -120px 0;
|
|
70
|
+
}
|
|
71
|
+
100% {
|
|
72
|
+
background-position: 200px 0;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.ccl-skeleton-text {
|
|
77
|
+
display: grid;
|
|
78
|
+
gap: 8px;
|
|
79
|
+
}
|
|
80
|
+
.ccl-skeleton-text .line {
|
|
81
|
+
height: var(--line-height, 1em);
|
|
82
|
+
border-radius: 6px;
|
|
83
|
+
}
|
|
84
|
+
.ccl-skeleton-text .line[data-last='true'] {
|
|
85
|
+
width: 70%;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.ccl-skeleton-rect {
|
|
89
|
+
display: block;
|
|
90
|
+
}
|
|
91
|
+
.ccl-skeleton-circle {
|
|
92
|
+
display: inline-block;
|
|
93
|
+
border-radius: 9999px;
|
|
94
|
+
aspect-ratio: 1 / 1;
|
|
95
|
+
}
|
|
96
|
+
</style>
|
|
@@ -0,0 +1,24 @@
|
|
|
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;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const Skeleton: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
/** ローディング用の視覚プレースホルダ(非アクセシブル) */ variant?: "text" | "rect" | "circle";
|
|
16
|
+
/** 幅(例: '100%', '240px') */ width: string | undefined;
|
|
17
|
+
/** 高さ(例: '16px', '1rem')。text時は行高として使用 */ height: string | undefined;
|
|
18
|
+
/** 角丸(rect/text) */ radius?: string;
|
|
19
|
+
/** text時の行数 */ lines?: number;
|
|
20
|
+
}, {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
}, {}, {}, string>;
|
|
23
|
+
type Skeleton = InstanceType<typeof Skeleton>;
|
|
24
|
+
export default Skeleton;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Drawer from './Drawer.svelte';
|
|
3
|
+
import { CCLVividColor } from './const/config';
|
|
4
|
+
import type { ColorVar } from './const/config';
|
|
5
|
+
import { vividFor } from './const/colorMap';
|
|
6
|
+
import { createEventDispatcher, tick } from 'svelte';
|
|
7
|
+
|
|
8
|
+
import type { MenuItem } from './types/slide-menu';
|
|
9
|
+
|
|
10
|
+
/** 開閉状態(制御) */
|
|
11
|
+
export let open: boolean = false;
|
|
12
|
+
/** スライド方向 */
|
|
13
|
+
export let side: 'left' | 'right' | 'top' | 'bottom' = 'left';
|
|
14
|
+
/** パネルサイズ */
|
|
15
|
+
export let size: string = '320px';
|
|
16
|
+
/** メニュータイトル */
|
|
17
|
+
export let title: string = 'メニュー';
|
|
18
|
+
/** ナビの aria-label(見出し連携がない場合の代替) */
|
|
19
|
+
export let ariaLabel: string = 'メインメニュー';
|
|
20
|
+
/** リンク一覧 */
|
|
21
|
+
export let items: MenuItem[] = [];
|
|
22
|
+
/** 現在選択中の項目 id(強調表示) */
|
|
23
|
+
export let currentId: string | undefined;
|
|
24
|
+
/** アクセントカラー(選択中の強調) */
|
|
25
|
+
export let accentColor: ColorVar = CCLVividColor.SODA_BLUE;
|
|
26
|
+
/** 項目選択時に自動で閉じる */
|
|
27
|
+
export let closeOnSelect: boolean = true;
|
|
28
|
+
|
|
29
|
+
// Drawer の挙動
|
|
30
|
+
export let backdrop: boolean = true;
|
|
31
|
+
export let closeOnEsc: boolean = true;
|
|
32
|
+
export let closeOnBackdropClick: boolean = true;
|
|
33
|
+
|
|
34
|
+
// 色(パステル時の前景補正)
|
|
35
|
+
$: accentFg = vividFor(accentColor as string);
|
|
36
|
+
$: styleInline =
|
|
37
|
+
`--sm-accent: var(${accentColor});` + (accentFg ? ` --sm-accent-fg: var(${accentFg});` : '');
|
|
38
|
+
const dispatch = createEventDispatcher<{
|
|
39
|
+
select: { id: string; item: MenuItem; event: Event };
|
|
40
|
+
close: void;
|
|
41
|
+
}>();
|
|
42
|
+
|
|
43
|
+
let firstLink: HTMLAnchorElement | HTMLButtonElement | null = null;
|
|
44
|
+
const titleId = 'slide-menu-title';
|
|
45
|
+
|
|
46
|
+
// action: indexが0の要素を firstLink にセット
|
|
47
|
+
function firstLinkAction(node: HTMLElement, index: number) {
|
|
48
|
+
if (index === 0) firstLink = node as any;
|
|
49
|
+
return {
|
|
50
|
+
destroy() {
|
|
51
|
+
if (firstLink === node) firstLink = null;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
$: (async () => {
|
|
57
|
+
if (open) {
|
|
58
|
+
await tick();
|
|
59
|
+
// 初期フォーカス: 最初のリンクへ
|
|
60
|
+
try {
|
|
61
|
+
firstLink?.focus();
|
|
62
|
+
} catch {}
|
|
63
|
+
}
|
|
64
|
+
})();
|
|
65
|
+
|
|
66
|
+
function handleSelect(item: MenuItem, event: Event) {
|
|
67
|
+
const detail = { id: item.id, item, event };
|
|
68
|
+
dispatch('select', detail);
|
|
69
|
+
if (closeOnSelect) dispatch('close');
|
|
70
|
+
}
|
|
71
|
+
</script>
|
|
72
|
+
|
|
73
|
+
<Drawer
|
|
74
|
+
{open}
|
|
75
|
+
{side}
|
|
76
|
+
{size}
|
|
77
|
+
{backdrop}
|
|
78
|
+
{closeOnEsc}
|
|
79
|
+
{closeOnBackdropClick}
|
|
80
|
+
ariaLabel={title}
|
|
81
|
+
on:close={() => dispatch('close')}
|
|
82
|
+
panelStyle={styleInline}
|
|
83
|
+
aria-labelledby={titleId}
|
|
84
|
+
>
|
|
85
|
+
<div class="sm-header">
|
|
86
|
+
<h2 id={titleId} class="sm-title">{title}</h2>
|
|
87
|
+
</div>
|
|
88
|
+
<nav class="sm-nav" role="navigation" aria-label={ariaLabel}>
|
|
89
|
+
<ul class="sm-list" role="list">
|
|
90
|
+
{#each items as it, i}
|
|
91
|
+
<li>
|
|
92
|
+
{#if it.href}
|
|
93
|
+
<a
|
|
94
|
+
use:firstLinkAction={i}
|
|
95
|
+
class="sm-link {it.id === currentId ? 'active' : ''}"
|
|
96
|
+
href={it.href}
|
|
97
|
+
on:click|preventDefault={(e) => handleSelect(it, e)}
|
|
98
|
+
aria-current={it.id === currentId ? 'page' : undefined}>{it.label}</a
|
|
99
|
+
>
|
|
100
|
+
{:else}
|
|
101
|
+
<button
|
|
102
|
+
use:firstLinkAction={i}
|
|
103
|
+
type="button"
|
|
104
|
+
class="sm-link {it.id === currentId ? 'active' : ''}"
|
|
105
|
+
on:click={(e) => handleSelect(it, e)}
|
|
106
|
+
aria-current={it.id === currentId ? 'page' : undefined}>{it.label}</button
|
|
107
|
+
>
|
|
108
|
+
{/if}
|
|
109
|
+
</li>
|
|
110
|
+
{/each}
|
|
111
|
+
</ul>
|
|
112
|
+
</nav>
|
|
113
|
+
<slot name="footer" />
|
|
114
|
+
</Drawer>
|
|
115
|
+
|
|
116
|
+
<style>
|
|
117
|
+
.sm-header {
|
|
118
|
+
padding: 16px;
|
|
119
|
+
border-bottom: 1px solid #eee;
|
|
120
|
+
}
|
|
121
|
+
.sm-title {
|
|
122
|
+
margin: 0;
|
|
123
|
+
font-size: 16px;
|
|
124
|
+
}
|
|
125
|
+
.sm-nav {
|
|
126
|
+
padding: 8px 8px 16px 8px;
|
|
127
|
+
}
|
|
128
|
+
.sm-list {
|
|
129
|
+
list-style: none;
|
|
130
|
+
margin: 0;
|
|
131
|
+
padding: 0;
|
|
132
|
+
display: flex;
|
|
133
|
+
flex-direction: column;
|
|
134
|
+
gap: 4px;
|
|
135
|
+
}
|
|
136
|
+
.sm-link {
|
|
137
|
+
display: block;
|
|
138
|
+
width: 100%;
|
|
139
|
+
text-align: left;
|
|
140
|
+
padding: 10px 12px;
|
|
141
|
+
border-radius: 8px;
|
|
142
|
+
color: var(--wrap-grey);
|
|
143
|
+
text-decoration: none;
|
|
144
|
+
background: transparent;
|
|
145
|
+
border: none;
|
|
146
|
+
cursor: pointer;
|
|
147
|
+
font-size: 14px;
|
|
148
|
+
}
|
|
149
|
+
.sm-link.active {
|
|
150
|
+
background: var(--sm-accent);
|
|
151
|
+
color: var(--sm-accent-fg, #fff);
|
|
152
|
+
}
|
|
153
|
+
.sm-link:focus-visible {
|
|
154
|
+
outline: 2px solid var(--sm-accent);
|
|
155
|
+
outline-offset: 2px;
|
|
156
|
+
}
|
|
157
|
+
</style>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ColorVar } from './const/config';
|
|
2
|
+
import type { MenuItem } from './types/slide-menu';
|
|
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
|
+
declare const SlideMenu: $$__sveltets_2_IsomorphicComponent<{
|
|
17
|
+
/** 開閉状態(制御) */ open?: boolean;
|
|
18
|
+
/** スライド方向 */ side?: "left" | "right" | "top" | "bottom";
|
|
19
|
+
/** パネルサイズ */ size?: string;
|
|
20
|
+
/** メニュータイトル */ title?: string;
|
|
21
|
+
/** ナビの aria-label(見出し連携がない場合の代替) */ ariaLabel?: string;
|
|
22
|
+
/** リンク一覧 */ items?: MenuItem[];
|
|
23
|
+
/** 現在選択中の項目 id(強調表示) */ currentId: string | undefined;
|
|
24
|
+
/** アクセントカラー(選択中の強調) */ accentColor?: ColorVar;
|
|
25
|
+
/** 項目選択時に自動で閉じる */ closeOnSelect?: boolean;
|
|
26
|
+
backdrop?: boolean;
|
|
27
|
+
closeOnEsc?: boolean;
|
|
28
|
+
closeOnBackdropClick?: boolean;
|
|
29
|
+
}, {
|
|
30
|
+
select: CustomEvent<{
|
|
31
|
+
id: string;
|
|
32
|
+
item: MenuItem;
|
|
33
|
+
event: Event;
|
|
34
|
+
}>;
|
|
35
|
+
close: CustomEvent<void>;
|
|
36
|
+
} & {
|
|
37
|
+
[evt: string]: CustomEvent<any>;
|
|
38
|
+
}, {
|
|
39
|
+
footer: {};
|
|
40
|
+
}, {}, string>;
|
|
41
|
+
type SlideMenu = InstanceType<typeof SlideMenu>;
|
|
42
|
+
export default SlideMenu;
|
package/dist/Spinner.svelte
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export let
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { CCLVividColor } from './const/config';
|
|
3
|
+
|
|
4
|
+
export let size: string = '40px';
|
|
5
|
+
export let color: string = CCLVividColor.STRAWBERRY_PINK;
|
|
6
|
+
export let borderWidth: string = '4px';
|
|
5
7
|
</script>
|
|
6
8
|
|
|
7
9
|
<div
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
class="spinner"
|
|
11
|
+
style="width: {size}; height: {size}; border-width: {borderWidth}; --spinner-color: var({color});"
|
|
12
|
+
role="status"
|
|
11
13
|
></div>
|
|
12
14
|
|
|
13
15
|
<style>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
.spinner {
|
|
17
|
+
display: inline-block;
|
|
18
|
+
border-radius: 50%;
|
|
19
|
+
border-style: solid;
|
|
20
|
+
border-color: #f3f3f3;
|
|
21
|
+
border-top-color: var(--spinner-color);
|
|
22
|
+
animation: spin 1s linear infinite;
|
|
23
|
+
}
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
@keyframes spin {
|
|
26
|
+
0% {
|
|
27
|
+
transform: rotate(0deg);
|
|
28
|
+
}
|
|
29
|
+
100% {
|
|
30
|
+
transform: rotate(360deg);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
31
33
|
</style>
|
package/dist/Spinner.svelte.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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;
|
|
7
11
|
};
|
|
8
|
-
|
|
9
|
-
[evt: string]: CustomEvent<any>;
|
|
10
|
-
};
|
|
11
|
-
slots: {};
|
|
12
|
-
exports?: {} | undefined;
|
|
13
|
-
bindings?: string | undefined;
|
|
14
|
-
};
|
|
15
|
-
export type SpinnerProps = typeof __propDef.props;
|
|
16
|
-
export type SpinnerEvents = typeof __propDef.events;
|
|
17
|
-
export type SpinnerSlots = typeof __propDef.slots;
|
|
18
|
-
export default class Spinner extends SvelteComponent<SpinnerProps, SpinnerEvents, SpinnerSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
19
13
|
}
|
|
20
|
-
|
|
14
|
+
declare const Spinner: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
size?: string;
|
|
16
|
+
color?: string;
|
|
17
|
+
borderWidth?: string;
|
|
18
|
+
}, {
|
|
19
|
+
[evt: string]: CustomEvent<any>;
|
|
20
|
+
}, {}, {}, string>;
|
|
21
|
+
type Spinner = InstanceType<typeof Spinner>;
|
|
22
|
+
export default Spinner;
|
package/dist/TabPanel.svelte
CHANGED
|
@@ -1,28 +1,49 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { getContext, onMount } from 'svelte';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* タブのボタンに表示されるテキスト
|
|
6
|
+
* @type string
|
|
7
|
+
*/
|
|
8
|
+
export let label: string;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* このタブがアクティブな時のインジケーターの色
|
|
12
|
+
* @default --strawberry-pink
|
|
13
|
+
* @type string
|
|
14
|
+
*/
|
|
15
|
+
export let color: string = '--strawberry-pink';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* このタブを無効化するかどうか
|
|
19
|
+
* @default false
|
|
20
|
+
* @type boolean
|
|
21
|
+
*/
|
|
22
|
+
export let disabled: boolean = false;
|
|
23
|
+
|
|
24
|
+
import { TABS_CONTEXT_KEY } from './scripts/tabsContext';
|
|
25
|
+
const { addTab, activeTabLabel } = getContext(TABS_CONTEXT_KEY);
|
|
26
|
+
|
|
27
|
+
onMount(() => {
|
|
28
|
+
addTab({ label, color, disabled });
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
$: isActive = $activeTabLabel === label;
|
|
11
32
|
</script>
|
|
12
33
|
|
|
13
34
|
{#if isActive}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
35
|
+
<div
|
|
36
|
+
role="tabpanel"
|
|
37
|
+
id={`tab-panel-${label}`}
|
|
38
|
+
aria-labelledby={`tab-button-${label}`}
|
|
39
|
+
class="tab-panel-content"
|
|
40
|
+
>
|
|
41
|
+
<slot />
|
|
42
|
+
</div>
|
|
22
43
|
{/if}
|
|
23
44
|
|
|
24
45
|
<style>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
46
|
+
.tab-panel-content {
|
|
47
|
+
/* Add any panel-specific styling here if needed */
|
|
48
|
+
}
|
|
28
49
|
</style>
|
|
@@ -1,33 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* @type string
|
|
12
|
-
*/ color?: string;
|
|
13
|
-
/**
|
|
14
|
-
* このタブを無効化するかどうか
|
|
15
|
-
* @default false
|
|
16
|
-
* @type boolean
|
|
17
|
-
*/ disabled?: 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;
|
|
18
11
|
};
|
|
19
|
-
|
|
20
|
-
[evt: string]: CustomEvent<any>;
|
|
21
|
-
};
|
|
22
|
-
slots: {
|
|
23
|
-
default: {};
|
|
24
|
-
};
|
|
25
|
-
exports?: {} | undefined;
|
|
26
|
-
bindings?: string | undefined;
|
|
27
|
-
};
|
|
28
|
-
export type TabPanelProps = typeof __propDef.props;
|
|
29
|
-
export type TabPanelEvents = typeof __propDef.events;
|
|
30
|
-
export type TabPanelSlots = typeof __propDef.slots;
|
|
31
|
-
export default class TabPanel extends SvelteComponent<TabPanelProps, TabPanelEvents, TabPanelSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
32
13
|
}
|
|
33
|
-
|
|
14
|
+
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
15
|
+
default: any;
|
|
16
|
+
} ? Props extends Record<string, never> ? any : {
|
|
17
|
+
children?: any;
|
|
18
|
+
} : {});
|
|
19
|
+
declare const TabPanel: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
20
|
+
/**
|
|
21
|
+
* タブのボタンに表示されるテキスト
|
|
22
|
+
* @type string
|
|
23
|
+
*/ label: string;
|
|
24
|
+
/**
|
|
25
|
+
* このタブがアクティブな時のインジケーターの色
|
|
26
|
+
* @default --strawberry-pink
|
|
27
|
+
* @type string
|
|
28
|
+
*/ color?: string;
|
|
29
|
+
/**
|
|
30
|
+
* このタブを無効化するかどうか
|
|
31
|
+
* @default false
|
|
32
|
+
* @type boolean
|
|
33
|
+
*/ disabled?: boolean;
|
|
34
|
+
}, {
|
|
35
|
+
default: {};
|
|
36
|
+
}>, {
|
|
37
|
+
[evt: string]: CustomEvent<any>;
|
|
38
|
+
}, {
|
|
39
|
+
default: {};
|
|
40
|
+
}, {}, string>;
|
|
41
|
+
type TabPanel = InstanceType<typeof TabPanel>;
|
|
42
|
+
export default TabPanel;
|