cclkit4svelte 2.0.2 → 2.0.4
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/Alert.svelte +41 -41
- package/dist/Button.svelte +1 -1
- package/dist/Card.svelte +1 -1
- package/dist/Carousel.svelte +7 -2
- package/dist/Carousel.svelte.d.ts +4 -0
- package/dist/ChangeHistory.svelte +157 -0
- package/dist/ChangeHistory.svelte.d.ts +28 -0
- package/dist/Checkbox.svelte +14 -4
- package/dist/DatePicker.svelte +58 -15
- package/dist/DatePicker.svelte.d.ts +1 -6
- package/dist/Footer.svelte +1 -1
- package/dist/Header.svelte +1 -2
- package/dist/ProgressBar.svelte +28 -28
- package/dist/RadioButton.svelte +1 -1
- package/dist/ServiceCard.svelte +91 -0
- package/dist/ServiceCard.svelte.d.ts +21 -0
- package/dist/Spinner.svelte +19 -19
- package/dist/Thumbnail.svelte +1 -1
- package/dist/Toggle.svelte +1 -1
- package/dist/Tooltip.svelte +118 -109
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/scripts/date.js +1 -2
- package/package.json +83 -83
package/dist/Alert.svelte
CHANGED
|
@@ -46,51 +46,51 @@ function dismissAlert() {
|
|
|
46
46
|
</script>
|
|
47
47
|
|
|
48
48
|
<div
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
class="alert-wrapper"
|
|
50
|
+
class:dismissible
|
|
51
|
+
class:outline
|
|
52
|
+
style="background-color: var({computedBgColor}); color: {textColor}; border-color: var({computedBorderColor});"
|
|
53
53
|
>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
<span class="alert-message">{message}</span>
|
|
55
|
+
{#if dismissible}
|
|
56
|
+
<button class="dismiss-button" on:click={dismissAlert} aria-label="Dismiss alert">
|
|
57
|
+
×
|
|
58
|
+
</button>
|
|
59
|
+
{/if}
|
|
60
60
|
</div>
|
|
61
61
|
|
|
62
62
|
<style>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
.alert-wrapper {
|
|
64
|
+
padding: 12px 20px;
|
|
65
|
+
border-radius: 8px;
|
|
66
|
+
display: flex;
|
|
67
|
+
justify-content: space-between;
|
|
68
|
+
align-items: center;
|
|
69
|
+
font-size: 16px;
|
|
70
|
+
font-weight: 500;
|
|
71
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
72
|
+
margin-bottom: 10px; /* Add some spacing when multiple alerts are shown */
|
|
73
|
+
border: 2px solid; /* Use solid border, color set by style attribute */
|
|
74
|
+
}
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
.alert-message {
|
|
77
|
+
flex-grow: 1;
|
|
78
|
+
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
.dismiss-button {
|
|
81
|
+
background: none;
|
|
82
|
+
border: none;
|
|
83
|
+
color: inherit; /* Inherit text color from parent */
|
|
84
|
+
font-size: 20px;
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
margin-left: 15px;
|
|
87
|
+
padding: 0;
|
|
88
|
+
line-height: 1;
|
|
89
|
+
opacity: 0.7;
|
|
90
|
+
transition: opacity 0.2s ease-in-out;
|
|
91
|
+
}
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
</style>
|
|
93
|
+
.dismiss-button:hover {
|
|
94
|
+
opacity: 1;
|
|
95
|
+
}
|
|
96
|
+
</style>
|
package/dist/Button.svelte
CHANGED
package/dist/Card.svelte
CHANGED
package/dist/Carousel.svelte
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<script context="module"></script>
|
|
2
|
+
|
|
1
3
|
<script>import "./const/variables.css";
|
|
2
4
|
export let src;
|
|
3
5
|
export let csWidth;
|
|
@@ -12,7 +14,10 @@ const prevSlide = () => {
|
|
|
12
14
|
};
|
|
13
15
|
</script>
|
|
14
16
|
|
|
15
|
-
<div
|
|
17
|
+
<div
|
|
18
|
+
class="carouselWrapper"
|
|
19
|
+
style="--carousel-width: {csWidth}; --translate-x: calc(-{currentIndex} * 100%)"
|
|
20
|
+
>
|
|
16
21
|
<div class="slides">
|
|
17
22
|
{#each src as item, index}
|
|
18
23
|
<img class="slide" src={item.src} alt={item.alt} />
|
|
@@ -68,4 +73,4 @@ const prevSlide = () => {
|
|
|
68
73
|
justify-content: center;
|
|
69
74
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
70
75
|
}
|
|
71
|
-
</style>
|
|
76
|
+
</style>
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<script>import "./const/variables.css";
|
|
2
|
+
import { CCLVividColor, CCLPastelColor } from "./const/config";
|
|
3
|
+
export let historyItems = [];
|
|
4
|
+
export let height = void 0;
|
|
5
|
+
export let defaultColor = CCLVividColor.SODA_BLUE;
|
|
6
|
+
const vividToPastelMap = {
|
|
7
|
+
[CCLVividColor.STRAWBERRY_PINK]: CCLPastelColor.PEACH_PINK,
|
|
8
|
+
[CCLVividColor.PINEAPPLE_YELLOW]: CCLPastelColor.LEMON_YELLOW,
|
|
9
|
+
[CCLVividColor.SODA_BLUE]: CCLPastelColor.SUGAR_BLUE,
|
|
10
|
+
[CCLVividColor.MELON_GREEN]: CCLPastelColor.MATCHA_GREEN,
|
|
11
|
+
[CCLVividColor.GRAPE_PURPLE]: CCLPastelColor.AKEBI_PURPLE,
|
|
12
|
+
[CCLVividColor.WRAP_GREY]: CCLPastelColor.CLOUD_GREY
|
|
13
|
+
};
|
|
14
|
+
$: defaultPastelColor = vividToPastelMap[defaultColor] || CCLPastelColor.SUGAR_BLUE;
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<div class="change-history-container" style={height ? `height: ${height};` : ''}>
|
|
18
|
+
<ul class="timeline">
|
|
19
|
+
{#each historyItems as item (item.date + item.title)}
|
|
20
|
+
<li
|
|
21
|
+
class="timeline-item"
|
|
22
|
+
style:--marker-color="var({item.color || defaultColor})"
|
|
23
|
+
style:--tag-color="var({item.color || defaultColor})"
|
|
24
|
+
style:--tag-bg-color="var({vividToPastelMap[item.color || defaultColor] || defaultPastelColor})"
|
|
25
|
+
>
|
|
26
|
+
<div class="timeline-marker"></div>
|
|
27
|
+
<div class="timeline-content">
|
|
28
|
+
<div class="header">
|
|
29
|
+
<time class="date" datetime={item.date}>{item.date}</time>
|
|
30
|
+
{#if item.tag}
|
|
31
|
+
<span class="tag">{item.tag}</span>
|
|
32
|
+
{/if}
|
|
33
|
+
{#if item.version}
|
|
34
|
+
<span class="version">{item.version}</span>
|
|
35
|
+
{/if}
|
|
36
|
+
</div>
|
|
37
|
+
<h3 class="title">{item.title}</h3>
|
|
38
|
+
{#if item.details && item.details.length > 0}
|
|
39
|
+
<ul class="details">
|
|
40
|
+
{#each item.details as detail}
|
|
41
|
+
<li>{detail}</li>
|
|
42
|
+
{/each}
|
|
43
|
+
</ul>
|
|
44
|
+
{/if}
|
|
45
|
+
</div>
|
|
46
|
+
</li>
|
|
47
|
+
{/each}
|
|
48
|
+
</ul>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<style>
|
|
52
|
+
.change-history-container {
|
|
53
|
+
font-family: sans-serif;
|
|
54
|
+
max-width: 800px;
|
|
55
|
+
margin: 0 auto;
|
|
56
|
+
padding: 20px;
|
|
57
|
+
overflow-y: auto;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.timeline {
|
|
61
|
+
list-style-type: none;
|
|
62
|
+
padding-left: 20px;
|
|
63
|
+
position: relative;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* タイムラインの縦線 */
|
|
67
|
+
.timeline::before {
|
|
68
|
+
content: '';
|
|
69
|
+
position: absolute;
|
|
70
|
+
top: 5px;
|
|
71
|
+
left: 5px;
|
|
72
|
+
height: calc(100% - 5px);
|
|
73
|
+
width: 2px;
|
|
74
|
+
background-color: #dee2e6;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.timeline-item {
|
|
78
|
+
position: relative;
|
|
79
|
+
margin-bottom: 30px;
|
|
80
|
+
padding-left: 35px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.timeline-item:last-child {
|
|
84
|
+
margin-bottom: 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.timeline-marker {
|
|
88
|
+
position: absolute;
|
|
89
|
+
top: 5px;
|
|
90
|
+
left: -2px;
|
|
91
|
+
width: 16px;
|
|
92
|
+
height: 16px;
|
|
93
|
+
border-radius: 50%;
|
|
94
|
+
background-color: var(--marker-color);
|
|
95
|
+
border: 3px solid #fff;
|
|
96
|
+
z-index: 1;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.timeline-content {
|
|
100
|
+
background-color: #ffffff;
|
|
101
|
+
padding: 15px 20px;
|
|
102
|
+
border-radius: 6px;
|
|
103
|
+
border: 1px solid #dee2e6;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.header {
|
|
107
|
+
display: flex;
|
|
108
|
+
align-items: center;
|
|
109
|
+
gap: 12px;
|
|
110
|
+
margin-bottom: 8px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.date {
|
|
114
|
+
font-weight: bold;
|
|
115
|
+
color: #343a40;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.tag {
|
|
119
|
+
background-color: var(--tag-bg-color);
|
|
120
|
+
color: var(--tag-color);
|
|
121
|
+
padding: 3px 10px;
|
|
122
|
+
border-radius: 12px;
|
|
123
|
+
font-size: 0.85em;
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.version {
|
|
128
|
+
background-color: #f1f3f5; /* ニュートラルなグレー */
|
|
129
|
+
color: #495057;
|
|
130
|
+
padding: 3px 10px;
|
|
131
|
+
border-radius: 12px;
|
|
132
|
+
font-size: 0.85em;
|
|
133
|
+
font-weight: 600;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.title {
|
|
137
|
+
margin: 0 0 12px 0;
|
|
138
|
+
font-size: 1.15em;
|
|
139
|
+
font-weight: 600;
|
|
140
|
+
color: #212529;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.details {
|
|
144
|
+
list-style-type: disc;
|
|
145
|
+
padding-left: 20px;
|
|
146
|
+
margin: 0;
|
|
147
|
+
color: #495057;
|
|
148
|
+
line-height: 1.6;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.details li {
|
|
152
|
+
margin-bottom: 5px;
|
|
153
|
+
}
|
|
154
|
+
.details li:last-child {
|
|
155
|
+
margin-bottom: 0;
|
|
156
|
+
}
|
|
157
|
+
</style>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import './const/variables.css';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
/**
|
|
6
|
+
* 表示する更新履歴の配列
|
|
7
|
+
* @type {HistoryItem[]}
|
|
8
|
+
*/ historyItems?: HistoryItem[];
|
|
9
|
+
/**
|
|
10
|
+
* コンポーネントの高さ。'400px'や'50vh'のようにCSSの値を指定します。
|
|
11
|
+
* @type {string | undefined}
|
|
12
|
+
*/ height?: string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* アイテムに色が指定されていない場合のデフォルトカラー。`CCLVividColor`の値を指定します。
|
|
15
|
+
* @type {string}
|
|
16
|
+
*/ defaultColor?: string;
|
|
17
|
+
};
|
|
18
|
+
events: {
|
|
19
|
+
[evt: string]: CustomEvent<any>;
|
|
20
|
+
};
|
|
21
|
+
slots: {};
|
|
22
|
+
};
|
|
23
|
+
export type ChangeHistoryProps = typeof __propDef.props;
|
|
24
|
+
export type ChangeHistoryEvents = typeof __propDef.events;
|
|
25
|
+
export type ChangeHistorySlots = typeof __propDef.slots;
|
|
26
|
+
export default class ChangeHistory extends SvelteComponentTyped<ChangeHistoryProps, ChangeHistoryEvents, ChangeHistorySlots> {
|
|
27
|
+
}
|
|
28
|
+
export {};
|
package/dist/Checkbox.svelte
CHANGED
|
@@ -6,7 +6,7 @@ export let color = CCLVividColor.SODA_BLUE;
|
|
|
6
6
|
export let disabled = false;
|
|
7
7
|
export let onChange = () => {
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
const checkMarkColor = "white";
|
|
10
10
|
function handleChange(event) {
|
|
11
11
|
if (disabled) {
|
|
12
12
|
return;
|
|
@@ -17,9 +17,19 @@ function handleChange(event) {
|
|
|
17
17
|
}
|
|
18
18
|
</script>
|
|
19
19
|
|
|
20
|
-
<label class="checkboxWrapper" class:disabled
|
|
21
|
-
<input
|
|
22
|
-
|
|
20
|
+
<label class="checkboxWrapper" class:disabled>
|
|
21
|
+
<input
|
|
22
|
+
type="checkbox"
|
|
23
|
+
bind:checked
|
|
24
|
+
on:change={handleChange}
|
|
25
|
+
{disabled}
|
|
26
|
+
aria-label={label}
|
|
27
|
+
name={label}
|
|
28
|
+
/>
|
|
29
|
+
<span
|
|
30
|
+
class="customCheckbox"
|
|
31
|
+
style="--bg-color: var({color}); --check-mark-color: {checkMarkColor};"
|
|
32
|
+
>
|
|
23
33
|
{#if checked}
|
|
24
34
|
<svg
|
|
25
35
|
class="checkMark"
|
package/dist/DatePicker.svelte
CHANGED
|
@@ -6,18 +6,20 @@ export let selectedDate = null;
|
|
|
6
6
|
export let placeholder = "\u65E5\u4ED8\u3092\u9078\u629E";
|
|
7
7
|
export let id = "date-picker-" + Math.random().toString(36).substring(2, 9);
|
|
8
8
|
export let borderColor = "--strawberry-pink";
|
|
9
|
-
export let disableBlurClose = false;
|
|
10
9
|
let showCalendar = false;
|
|
11
10
|
let currentMonth = selectedDate ? DateTime.fromJSDate(selectedDate) : DateTime.local();
|
|
12
11
|
$: formattedDate = selectedDate ? DateTime.fromJSDate(selectedDate).toFormat("yyyy/MM/dd") : "";
|
|
13
|
-
function
|
|
14
|
-
showCalendar =
|
|
12
|
+
function openCalendar() {
|
|
13
|
+
showCalendar = true;
|
|
14
|
+
}
|
|
15
|
+
function closeCalendar() {
|
|
16
|
+
showCalendar = false;
|
|
15
17
|
}
|
|
16
18
|
function selectDay(day) {
|
|
17
19
|
const newDate = currentMonth.set({ day }).toJSDate();
|
|
18
20
|
selectedDate = newDate;
|
|
19
21
|
dispatch("change", newDate);
|
|
20
|
-
|
|
22
|
+
closeCalendar();
|
|
21
23
|
}
|
|
22
24
|
function prevMonth() {
|
|
23
25
|
currentMonth = currentMonth.minus({ months: 1 });
|
|
@@ -29,27 +31,59 @@ function getDaysInMonth(date) {
|
|
|
29
31
|
const startOfMonth = date.startOf("month");
|
|
30
32
|
const endOfMonth = date.endOf("month");
|
|
31
33
|
const days = [];
|
|
32
|
-
const startDayOfWeek = startOfMonth.weekday
|
|
34
|
+
const startDayOfWeek = startOfMonth.weekday % 7;
|
|
33
35
|
for (let i = 0; i < startDayOfWeek; i++) {
|
|
34
36
|
days.push(null);
|
|
35
37
|
}
|
|
36
38
|
for (let i = 1; i <= endOfMonth.day; i++) {
|
|
37
39
|
days.push(i);
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
for (let i = 0; i < remainingDays; i++) {
|
|
41
|
+
while (days.length < 42) {
|
|
41
42
|
days.push(null);
|
|
42
43
|
}
|
|
43
44
|
return days;
|
|
44
45
|
}
|
|
46
|
+
function clickOutside(node) {
|
|
47
|
+
const handleClick = (event) => {
|
|
48
|
+
if (node && !node.contains(event.target) && !event.defaultPrevented) {
|
|
49
|
+
node.dispatchEvent(new CustomEvent("click_outside"));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
document.addEventListener("click", handleClick, true);
|
|
53
|
+
return {
|
|
54
|
+
destroy() {
|
|
55
|
+
document.removeEventListener("click", handleClick, true);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
45
59
|
$: daysInMonth = getDaysInMonth(currentMonth);
|
|
46
60
|
</script>
|
|
47
61
|
|
|
48
|
-
|
|
49
|
-
|
|
62
|
+
<!--
|
|
63
|
+
- `use:clickOutside` でアクションを適用
|
|
64
|
+
- `on:click_outside` で外側クリック時の動作を定義
|
|
65
|
+
-->
|
|
66
|
+
<div
|
|
67
|
+
class="datePickerWrapper"
|
|
68
|
+
style="--selected-color: var({borderColor});"
|
|
69
|
+
use:clickOutside
|
|
70
|
+
on:click_outside={closeCalendar}
|
|
71
|
+
>
|
|
72
|
+
<input
|
|
73
|
+
type="text"
|
|
74
|
+
{id}
|
|
75
|
+
value={formattedDate}
|
|
76
|
+
{placeholder}
|
|
77
|
+
on:focus={openCalendar}
|
|
78
|
+
readonly
|
|
79
|
+
style="border-color: var({borderColor});"
|
|
80
|
+
/>
|
|
50
81
|
|
|
51
82
|
{#if showCalendar}
|
|
52
|
-
|
|
83
|
+
<!--
|
|
84
|
+
- カレンダー内のクリックが外側クリックと誤認されないようにイベントの伝播を止める
|
|
85
|
+
-->
|
|
86
|
+
<div class="calendarOverlay" on:click|stopPropagation>
|
|
53
87
|
<div class="calendarHeader">
|
|
54
88
|
<button on:click={prevMonth} aria-label="前月へ"><</button>
|
|
55
89
|
<span>{currentMonth.toFormat('yyyy年MM月')}</span>
|
|
@@ -67,10 +101,13 @@ $: daysInMonth = getDaysInMonth(currentMonth);
|
|
|
67
101
|
<div class="daysGrid">
|
|
68
102
|
{#each daysInMonth as day}
|
|
69
103
|
<button
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
104
|
+
class:currentMonthDay={day !== null}
|
|
105
|
+
class:selected={selectedDate &&
|
|
106
|
+
day === DateTime.fromJSDate(selectedDate).day &&
|
|
107
|
+
currentMonth.month === DateTime.fromJSDate(selectedDate).month &&
|
|
108
|
+
currentMonth.year === DateTime.fromJSDate(selectedDate).year}
|
|
109
|
+
on:click={() => day && selectDay(day)}
|
|
110
|
+
disabled={day === null}
|
|
74
111
|
>
|
|
75
112
|
{day !== null ? day : ''}
|
|
76
113
|
</button>
|
|
@@ -81,6 +118,7 @@ $: daysInMonth = getDaysInMonth(currentMonth);
|
|
|
81
118
|
</div>
|
|
82
119
|
|
|
83
120
|
<style>
|
|
121
|
+
/* スタイルは変更なし */
|
|
84
122
|
.datePickerWrapper {
|
|
85
123
|
position: relative;
|
|
86
124
|
display: inline-block;
|
|
@@ -91,6 +129,11 @@ $: daysInMonth = getDaysInMonth(currentMonth);
|
|
|
91
129
|
border: 1px solid #ccc;
|
|
92
130
|
border-radius: 4px;
|
|
93
131
|
width: 120px;
|
|
132
|
+
cursor: pointer; /* クリックできることを示す */
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.datePickerWrapper input:focus {
|
|
136
|
+
outline: none;
|
|
94
137
|
}
|
|
95
138
|
|
|
96
139
|
.calendarOverlay {
|
|
@@ -159,4 +202,4 @@ $: daysInMonth = getDaysInMonth(currentMonth);
|
|
|
159
202
|
color: #ccc;
|
|
160
203
|
cursor: default;
|
|
161
204
|
}
|
|
162
|
-
</style>
|
|
205
|
+
</style>
|
|
@@ -22,14 +22,9 @@ declare const __propDef: {
|
|
|
22
22
|
* @default --strawberry-pink
|
|
23
23
|
* @type string
|
|
24
24
|
*/ borderColor?: string;
|
|
25
|
-
/**
|
|
26
|
-
* blurイベントでカレンダーを閉じないようにするか
|
|
27
|
-
* テスト用途で利用
|
|
28
|
-
* @default false
|
|
29
|
-
* @type boolean
|
|
30
|
-
*/ disableBlurClose?: boolean;
|
|
31
25
|
};
|
|
32
26
|
events: {
|
|
27
|
+
click: MouseEvent;
|
|
33
28
|
change: CustomEvent<any>;
|
|
34
29
|
} & {
|
|
35
30
|
[evt: string]: CustomEvent<any>;
|
package/dist/Footer.svelte
CHANGED
package/dist/Header.svelte
CHANGED
|
@@ -10,7 +10,7 @@ export let height;
|
|
|
10
10
|
href="https://candychupslab.netlify.app/"
|
|
11
11
|
target="_blank"
|
|
12
12
|
rel="noopener noreferrer"
|
|
13
|
-
style="display:
|
|
13
|
+
style="display: flex; height: 100%; width: 100%; align-items: center; justify-content: center;"
|
|
14
14
|
>
|
|
15
15
|
<svg viewBox="0 0 665 63" xmlns="http://www.w3.org/2000/svg">
|
|
16
16
|
<title>CANDY CHUPS Lab.</title>
|
|
@@ -106,4 +106,3 @@ export let height;
|
|
|
106
106
|
fill: #fff;
|
|
107
107
|
}
|
|
108
108
|
</style>
|
|
109
|
-
|
package/dist/ProgressBar.svelte
CHANGED
|
@@ -13,40 +13,40 @@ $: finalBackgroundColor = backgroundColor.startsWith("--") ? `var(${backgroundCo
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<div
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
class="progress-bar-container"
|
|
17
|
+
class:sticky={isSticky}
|
|
18
|
+
class:rounded={isRounded}
|
|
19
|
+
style="background-color: {finalBackgroundColor}; width: {containerWidth}; height: {height};"
|
|
20
|
+
role="progressbar"
|
|
21
|
+
aria-valuenow={value}
|
|
22
|
+
aria-valuemin="0"
|
|
23
|
+
aria-valuemax={maxValue}
|
|
24
24
|
>
|
|
25
|
-
|
|
25
|
+
<div class="progress-bar" style="width: {progress}%; background-color: {finalBarColor};"></div>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<style>
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
.progress-bar-container {
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
position: relative;
|
|
32
|
+
}
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
.progress-bar-container.sticky {
|
|
35
|
+
position: fixed;
|
|
36
|
+
top: 0;
|
|
37
|
+
left: 0;
|
|
38
|
+
z-index: 9999;
|
|
39
|
+
}
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
.progress-bar-container.rounded {
|
|
42
|
+
border-radius: 10px;
|
|
43
|
+
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
.progress-bar {
|
|
46
|
+
height: 100%;
|
|
47
|
+
}
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
.progress-bar-container.rounded .progress-bar {
|
|
50
|
+
border-radius: 10px;
|
|
51
|
+
}
|
|
52
52
|
</style>
|
package/dist/RadioButton.svelte
CHANGED
|
@@ -8,7 +8,7 @@ export let disabled = false;
|
|
|
8
8
|
let circleColor = "white";
|
|
9
9
|
</script>
|
|
10
10
|
|
|
11
|
-
<label class="radioWrapper" class:disabled
|
|
11
|
+
<label class="radioWrapper" class:disabled>
|
|
12
12
|
<input type="radio" bind:group {value} {disabled} aria-label={label} />
|
|
13
13
|
<span class="customRadio" style="--bg-color: var({color});">
|
|
14
14
|
{#if group === value}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<script>export let serviceName;
|
|
2
|
+
export let description;
|
|
3
|
+
export let imageUrl;
|
|
4
|
+
export let altText;
|
|
5
|
+
export let linkUrl = void 0;
|
|
6
|
+
export let borderColor = "var(--peach-pink)";
|
|
7
|
+
const colorMap = {
|
|
8
|
+
"var(--peach-pink)": "var(--strawberry-pink)",
|
|
9
|
+
"var(--lemon-yellow)": "var(--pineapple-yellow)",
|
|
10
|
+
"var(--sugar-blue)": "var(--soda-blue)",
|
|
11
|
+
"var(--matcha-green)": "var(--melon-green)",
|
|
12
|
+
"var(--akebi-purple)": "var(--grape-purple)",
|
|
13
|
+
"var(--cloud-grey)": "var(--wrap-grey)"
|
|
14
|
+
};
|
|
15
|
+
let borderColorHover;
|
|
16
|
+
$: {
|
|
17
|
+
borderColorHover = colorMap[borderColor] || borderColor;
|
|
18
|
+
}
|
|
19
|
+
const Tag = linkUrl ? "a" : "div";
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<svelte:element
|
|
23
|
+
this={Tag}
|
|
24
|
+
href={linkUrl}
|
|
25
|
+
class="service-card"
|
|
26
|
+
target={linkUrl ? '_blank' : undefined}
|
|
27
|
+
rel={linkUrl ? 'noopener noreferrer' : undefined}
|
|
28
|
+
style="--card-border-color: {borderColor}; --card-border-color-hover: {borderColorHover};"
|
|
29
|
+
>
|
|
30
|
+
<div class="image-container">
|
|
31
|
+
<img src={imageUrl} alt={altText} class="service-image" />
|
|
32
|
+
</div>
|
|
33
|
+
<div class="text-container">
|
|
34
|
+
<h3 class="service-name">{serviceName}</h3>
|
|
35
|
+
<p class="service-description">{description}</p>
|
|
36
|
+
</div>
|
|
37
|
+
</svelte:element>
|
|
38
|
+
|
|
39
|
+
<style>
|
|
40
|
+
.service-card {
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
background-color: white;
|
|
44
|
+
border: 1px solid var(--card-border-color);
|
|
45
|
+
border-radius: 8px;
|
|
46
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
47
|
+
padding: 16px;
|
|
48
|
+
margin: 16px;
|
|
49
|
+
max-width: 500px;
|
|
50
|
+
text-decoration: none;
|
|
51
|
+
color: inherit;
|
|
52
|
+
transition: all 0.2s ease-in-out;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.service-card:hover {
|
|
56
|
+
transform: translateY(-4px);
|
|
57
|
+
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
|
|
58
|
+
border-color: var(--card-border-color-hover);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.image-container {
|
|
62
|
+
flex-shrink: 0;
|
|
63
|
+
width: 120px;
|
|
64
|
+
height: 120px;
|
|
65
|
+
margin-right: 16px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.service-image {
|
|
69
|
+
width: 100%;
|
|
70
|
+
height: 100%;
|
|
71
|
+
object-fit: cover;
|
|
72
|
+
border-radius: 4px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.text-container {
|
|
76
|
+
flex-grow: 1;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.service-name {
|
|
80
|
+
font-size: 1.25rem;
|
|
81
|
+
font-weight: bold;
|
|
82
|
+
color: var(--wrap-grey);
|
|
83
|
+
margin: 0 0 8px 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.service-description {
|
|
87
|
+
font-size: 1rem;
|
|
88
|
+
color: black;
|
|
89
|
+
margin: 0;
|
|
90
|
+
}
|
|
91
|
+
</style>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
serviceName: string;
|
|
5
|
+
description: string;
|
|
6
|
+
imageUrl: string;
|
|
7
|
+
altText: string;
|
|
8
|
+
linkUrl?: string | undefined;
|
|
9
|
+
borderColor?: string;
|
|
10
|
+
};
|
|
11
|
+
events: {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {};
|
|
15
|
+
};
|
|
16
|
+
export type ServiceCardProps = typeof __propDef.props;
|
|
17
|
+
export type ServiceCardEvents = typeof __propDef.events;
|
|
18
|
+
export type ServiceCardSlots = typeof __propDef.slots;
|
|
19
|
+
export default class ServiceCard extends SvelteComponentTyped<ServiceCardProps, ServiceCardEvents, ServiceCardSlots> {
|
|
20
|
+
}
|
|
21
|
+
export {};
|
package/dist/Spinner.svelte
CHANGED
|
@@ -5,27 +5,27 @@ export let borderWidth = "4px";
|
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
7
|
<div
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
class="spinner"
|
|
9
|
+
style="width: {size}; height: {size}; border-width: {borderWidth}; --spinner-color: var({color});"
|
|
10
|
+
role="status"
|
|
11
11
|
></div>
|
|
12
12
|
|
|
13
13
|
<style>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
.spinner {
|
|
15
|
+
display: inline-block;
|
|
16
|
+
border-radius: 50%;
|
|
17
|
+
border-style: solid;
|
|
18
|
+
border-color: #f3f3f3;
|
|
19
|
+
border-top-color: var(--spinner-color);
|
|
20
|
+
animation: spin 1s linear infinite;
|
|
21
|
+
}
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
@keyframes spin {
|
|
24
|
+
0% {
|
|
25
|
+
transform: rotate(0deg);
|
|
26
|
+
}
|
|
27
|
+
100% {
|
|
28
|
+
transform: rotate(360deg);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
31
|
</style>
|
package/dist/Thumbnail.svelte
CHANGED
package/dist/Toggle.svelte
CHANGED
|
@@ -15,7 +15,7 @@ function handleChange(event) {
|
|
|
15
15
|
}
|
|
16
16
|
</script>
|
|
17
17
|
|
|
18
|
-
<label class="switchWrapper" class:disabled
|
|
18
|
+
<label class="switchWrapper" class:disabled>
|
|
19
19
|
<input type="checkbox" {checked} on:change={handleChange} {disabled} />
|
|
20
20
|
<span class="slider" style="--bg-color: var({color});" />
|
|
21
21
|
</label>
|
package/dist/Tooltip.svelte
CHANGED
|
@@ -6,125 +6,134 @@ export let backgroundColor = CCLVividColor.WRAP_GREY;
|
|
|
6
6
|
const tooltipId = `tooltip-${Math.random().toString(36).substr(2, 9)}`;
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
|
-
<div
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
9
|
+
<div
|
|
10
|
+
class="tooltip-trigger"
|
|
11
|
+
data-testid="tooltip-trigger"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
aria-describedby={!disabled ? tooltipId : undefined}
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
<span
|
|
17
|
+
{...{ id: tooltipId }}
|
|
18
|
+
style:--tooltip-background-color={backgroundColor.startsWith('--')
|
|
19
|
+
? `var(${backgroundColor})`
|
|
20
|
+
: backgroundColor}
|
|
21
|
+
class="tooltip-content"
|
|
22
|
+
data-testid="tooltip-content"
|
|
23
|
+
class:disabled
|
|
24
|
+
class:top={position === 'top'}
|
|
25
|
+
class:bottom={position === 'bottom'}
|
|
26
|
+
class:left={position === 'left'}
|
|
27
|
+
class:right={position === 'right'}
|
|
28
|
+
role="tooltip"
|
|
29
|
+
>
|
|
30
|
+
{text}
|
|
31
|
+
</span>
|
|
25
32
|
</div>
|
|
26
33
|
|
|
27
34
|
<style>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
.tooltip-trigger {
|
|
36
|
+
position: relative;
|
|
37
|
+
display: inline-block;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
}
|
|
33
40
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
.tooltip-content {
|
|
42
|
+
position: absolute;
|
|
43
|
+
z-index: 10;
|
|
44
|
+
background-color: var(--tooltip-background-color);
|
|
45
|
+
color: white;
|
|
46
|
+
padding: 0.5em 1em;
|
|
47
|
+
border-radius: 4px;
|
|
48
|
+
font-size: 0.875rem;
|
|
49
|
+
line-height: 1.4;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
/* デフォルトは非表示 */
|
|
52
|
+
visibility: hidden;
|
|
53
|
+
opacity: 0;
|
|
54
|
+
transition:
|
|
55
|
+
opacity 0.2s,
|
|
56
|
+
visibility 0.2s;
|
|
57
|
+
}
|
|
49
58
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
/* disabledの場合は完全に非表示 */
|
|
60
|
+
.tooltip-content.disabled {
|
|
61
|
+
display: none;
|
|
62
|
+
}
|
|
54
63
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
/* ホバーまたはフォーカスで表示 */
|
|
65
|
+
.tooltip-trigger:hover .tooltip-content,
|
|
66
|
+
.tooltip-trigger:focus .tooltip-content {
|
|
67
|
+
visibility: visible;
|
|
68
|
+
opacity: 1;
|
|
69
|
+
}
|
|
61
70
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
/* 吹き出しの矢印 */
|
|
72
|
+
.tooltip-content::after {
|
|
73
|
+
content: '';
|
|
74
|
+
position: absolute;
|
|
75
|
+
border-style: solid;
|
|
76
|
+
}
|
|
68
77
|
|
|
69
|
-
|
|
78
|
+
/* --- ポジションごとのスタイル --- */
|
|
70
79
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
/* 上に表示 */
|
|
81
|
+
.tooltip-content.top {
|
|
82
|
+
bottom: 100%;
|
|
83
|
+
left: 50%;
|
|
84
|
+
transform: translateX(-50%);
|
|
85
|
+
margin-bottom: 8px;
|
|
86
|
+
}
|
|
87
|
+
.tooltip-content.top::after {
|
|
88
|
+
top: 100%;
|
|
89
|
+
left: 50%;
|
|
90
|
+
transform: translateX(-50%);
|
|
91
|
+
border-width: 5px;
|
|
92
|
+
border-color: var(--tooltip-background-color) transparent transparent transparent;
|
|
93
|
+
}
|
|
85
94
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
/* 下に表示 */
|
|
96
|
+
.tooltip-content.bottom {
|
|
97
|
+
top: 100%;
|
|
98
|
+
left: 50%;
|
|
99
|
+
transform: translateX(-50%);
|
|
100
|
+
margin-top: 8px;
|
|
101
|
+
}
|
|
102
|
+
.tooltip-content.bottom::after {
|
|
103
|
+
bottom: 100%;
|
|
104
|
+
left: 50%;
|
|
105
|
+
transform: translateX(-50%);
|
|
106
|
+
border-width: 5px;
|
|
107
|
+
border-color: transparent transparent var(--tooltip-background-color) transparent;
|
|
108
|
+
}
|
|
100
109
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
/* 左に表示 */
|
|
111
|
+
.tooltip-content.left {
|
|
112
|
+
right: 100%;
|
|
113
|
+
top: 50%;
|
|
114
|
+
transform: translateY(-50%);
|
|
115
|
+
margin-right: 8px;
|
|
116
|
+
}
|
|
117
|
+
.tooltip-content.left::after {
|
|
118
|
+
left: 100%;
|
|
119
|
+
top: 50%;
|
|
120
|
+
transform: translateY(-50%);
|
|
121
|
+
border-width: 5px;
|
|
122
|
+
border-color: transparent transparent transparent var(--tooltip-background-color);
|
|
123
|
+
}
|
|
115
124
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
/* 右に表示 */
|
|
126
|
+
.tooltip-content.right {
|
|
127
|
+
left: 100%;
|
|
128
|
+
top: 50%;
|
|
129
|
+
transform: translateY(-50%);
|
|
130
|
+
margin-left: 8px;
|
|
131
|
+
}
|
|
132
|
+
.tooltip-content.right::after {
|
|
133
|
+
right: 100%;
|
|
134
|
+
top: 50%;
|
|
135
|
+
transform: translateY(-50%);
|
|
136
|
+
border-width: 5px;
|
|
137
|
+
border-color: transparent var(--tooltip-background-color) transparent transparent;
|
|
138
|
+
}
|
|
130
139
|
</style>
|
package/dist/index.d.ts
CHANGED
|
@@ -20,3 +20,5 @@ export { default as Alert } from './Alert.svelte';
|
|
|
20
20
|
export { default as Select } from './Select.svelte';
|
|
21
21
|
export { default as ToolTip } from './Tooltip.svelte';
|
|
22
22
|
export { default as Input } from './Input.svelte';
|
|
23
|
+
export { default as ChangeHistory } from './ChangeHistory.svelte';
|
|
24
|
+
export { default as ServiceCard } from './ServiceCard.svelte';
|
package/dist/index.js
CHANGED
|
@@ -21,3 +21,5 @@ export { default as Alert } from './Alert.svelte';
|
|
|
21
21
|
export { default as Select } from './Select.svelte';
|
|
22
22
|
export { default as ToolTip } from './Tooltip.svelte';
|
|
23
23
|
export { default as Input } from './Input.svelte';
|
|
24
|
+
export { default as ChangeHistory } from './ChangeHistory.svelte';
|
|
25
|
+
export { default as ServiceCard } from './ServiceCard.svelte';
|
package/dist/scripts/date.js
CHANGED
package/package.json
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
2
|
+
"name": "cclkit4svelte",
|
|
3
|
+
"version": "2.0.4",
|
|
4
|
+
"author": "reiji1020 <sk@reiji1020.info>",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"repository": "https://github.com/reiji1020/ccl-component-kit4svelte.git",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/reiji1020/ccl-component-kit4svelte/issues"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/reiji1020/ccl-component-kit4svelte#readme",
|
|
16
|
+
"description": "Component kit for CANDY CHUPS Lab.",
|
|
17
|
+
"scripts": {
|
|
18
|
+
"preinstall": "npx only-allow pnpm",
|
|
19
|
+
"dev": "vite dev",
|
|
20
|
+
"build": "vite build",
|
|
21
|
+
"preview": "vite preview",
|
|
22
|
+
"package": "svelte-package",
|
|
23
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
24
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
25
|
+
"lint": "prettier --check . && eslint .",
|
|
26
|
+
"format": "prettier --write .",
|
|
27
|
+
"storybook": "storybook dev -p 6006",
|
|
28
|
+
"build-storybook": "storybook build -o ./public/storybook",
|
|
29
|
+
"chromatic": "chromatic",
|
|
30
|
+
"test-sb": "test-storybook --coverage"
|
|
31
|
+
},
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"svelte": "./dist/index.js"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"luxon": "^3.5.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@chromatic-com/storybook": "^1.9.0",
|
|
43
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
44
|
+
"@semantic-release/git": "^10.0.1",
|
|
45
|
+
"@storybook/addon-coverage": "^1.0.4",
|
|
46
|
+
"@storybook/addon-essentials": "^8.5.8",
|
|
47
|
+
"@storybook/addon-interactions": "^8.5.8",
|
|
48
|
+
"@storybook/addon-links": "^8.5.8",
|
|
49
|
+
"@storybook/addon-mdx-gfm": "^8.5.8",
|
|
50
|
+
"@storybook/addon-viewport": "^8.5.8",
|
|
51
|
+
"@storybook/blocks": "^8.5.8",
|
|
52
|
+
"@storybook/svelte": "^8.5.8",
|
|
53
|
+
"@storybook/sveltekit": "^8.5.8",
|
|
54
|
+
"@storybook/test": "^8.5.8",
|
|
55
|
+
"@storybook/test-runner": "^0.17.0",
|
|
56
|
+
"@sveltejs/adapter-auto": "^3.0.0",
|
|
57
|
+
"@sveltejs/kit": "^2.0.0",
|
|
58
|
+
"@sveltejs/package": "^2.3.0",
|
|
59
|
+
"@sveltejs/vite-plugin-svelte": "^3.0.0",
|
|
60
|
+
"@types/luxon": "^3.4.2",
|
|
61
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
62
|
+
"@typescript-eslint/parser": "^6.21.0",
|
|
63
|
+
"chromatic": "^11.10.4",
|
|
64
|
+
"eslint": "^8.57.1",
|
|
65
|
+
"eslint-config-prettier": "^9.1.0",
|
|
66
|
+
"eslint-plugin-storybook": "^0.8.0",
|
|
67
|
+
"eslint-plugin-svelte": "^2.44.0",
|
|
68
|
+
"prettier": "^3.3.3",
|
|
69
|
+
"prettier-plugin-svelte": "^3.2.7",
|
|
70
|
+
"react": "^18.3.1",
|
|
71
|
+
"react-dom": "^18.3.1",
|
|
72
|
+
"semantic-release": "^23.1.1",
|
|
73
|
+
"storybook": "^8.5.8",
|
|
74
|
+
"svelte": "^4.2.7",
|
|
75
|
+
"svelte-check": "^3.8.6",
|
|
76
|
+
"svelte2tsx": "^0.6.27",
|
|
77
|
+
"tslib": "^2.7.0",
|
|
78
|
+
"typescript": "^5.0.0",
|
|
79
|
+
"vite": "^5.0.0"
|
|
80
|
+
},
|
|
81
|
+
"volta": {
|
|
82
|
+
"node": "20.11.1",
|
|
83
|
+
"npm": "10.5.0"
|
|
84
|
+
}
|
|
85
85
|
}
|