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.
Files changed (82) hide show
  1. package/dist/Accordion.svelte +40 -29
  2. package/dist/Accordion.svelte.d.ts +31 -22
  3. package/dist/AccordionItem.svelte +120 -87
  4. package/dist/AccordionItem.svelte.d.ts +43 -34
  5. package/dist/Alert.svelte +111 -82
  6. package/dist/Alert.svelte.d.ts +38 -36
  7. package/dist/Badge.svelte +84 -0
  8. package/dist/Badge.svelte.d.ts +34 -0
  9. package/dist/BookCard.svelte +127 -88
  10. package/dist/BookCard.svelte.d.ts +47 -45
  11. package/dist/Breadcrumb.svelte +91 -0
  12. package/dist/Breadcrumb.svelte.d.ts +37 -0
  13. package/dist/Button.svelte +72 -35
  14. package/dist/Button.svelte.d.ts +33 -31
  15. package/dist/Card.svelte +110 -75
  16. package/dist/Card.svelte.d.ts +38 -36
  17. package/dist/Carousel.svelte +91 -66
  18. package/dist/Carousel.svelte.d.ts +26 -24
  19. package/dist/ChangeHistory.svelte +188 -150
  20. package/dist/ChangeHistory.svelte.d.ts +29 -27
  21. package/dist/Checkbox.svelte +120 -89
  22. package/dist/Checkbox.svelte.d.ts +41 -39
  23. package/dist/CommonHeader.svelte +51 -24
  24. package/dist/CommonHeader.svelte.d.ts +38 -36
  25. package/dist/DatePicker.svelte +239 -188
  26. package/dist/DatePicker.svelte.d.ts +40 -38
  27. package/dist/Dialog.svelte +224 -0
  28. package/dist/Dialog.svelte.d.ts +50 -0
  29. package/dist/Drawer.svelte +158 -0
  30. package/dist/Drawer.svelte.d.ts +40 -0
  31. package/dist/Footer.svelte +32 -16
  32. package/dist/Footer.svelte.d.ts +21 -19
  33. package/dist/FormGroup.svelte +67 -43
  34. package/dist/FormGroup.svelte.d.ts +46 -37
  35. package/dist/Header.svelte +108 -98
  36. package/dist/Header.svelte.d.ts +25 -23
  37. package/dist/Input.svelte +154 -99
  38. package/dist/Input.svelte.d.ts +62 -60
  39. package/dist/Pagination.svelte +257 -0
  40. package/dist/Pagination.svelte.d.ts +35 -0
  41. package/dist/ProgressBar.svelte +49 -44
  42. package/dist/ProgressBar.svelte.d.ts +25 -23
  43. package/dist/RadioButton.svelte +92 -62
  44. package/dist/RadioButton.svelte.d.ts +40 -38
  45. package/dist/Select.svelte +94 -53
  46. package/dist/Select.svelte.d.ts +49 -47
  47. package/dist/ServiceCard.svelte +71 -64
  48. package/dist/ServiceCard.svelte.d.ts +27 -25
  49. package/dist/Skeleton.svelte +96 -0
  50. package/dist/Skeleton.svelte.d.ts +24 -0
  51. package/dist/SlideMenu.svelte +157 -0
  52. package/dist/SlideMenu.svelte.d.ts +42 -0
  53. package/dist/Spinner.svelte +25 -23
  54. package/dist/Spinner.svelte.d.ts +20 -18
  55. package/dist/TabPanel.svelte +42 -21
  56. package/dist/TabPanel.svelte.d.ts +40 -31
  57. package/dist/Table.svelte +114 -73
  58. package/dist/Table.svelte.d.ts +33 -31
  59. package/dist/Tabs.svelte +78 -72
  60. package/dist/Tabs.svelte.d.ts +18 -16
  61. package/dist/Textarea.svelte +101 -52
  62. package/dist/Textarea.svelte.d.ts +57 -55
  63. package/dist/Thumbnail.svelte +33 -15
  64. package/dist/Thumbnail.svelte.d.ts +34 -32
  65. package/dist/Toaster.svelte +144 -0
  66. package/dist/Toaster.svelte.d.ts +26 -0
  67. package/dist/Toggle.svelte +85 -61
  68. package/dist/Toggle.svelte.d.ts +36 -34
  69. package/dist/Tooltip.svelte +126 -122
  70. package/dist/Tooltip.svelte.d.ts +30 -21
  71. package/dist/const/colorMap.d.ts +5 -0
  72. package/dist/const/colorMap.js +21 -0
  73. package/dist/const/variables.css +21 -21
  74. package/dist/index.d.ts +9 -0
  75. package/dist/index.js +8 -0
  76. package/dist/toast.d.ts +29 -0
  77. package/dist/toast.js +66 -0
  78. package/dist/types/breadcrumb.d.ts +4 -0
  79. package/dist/types/breadcrumb.js +1 -0
  80. package/dist/types/slide-menu.d.ts +5 -0
  81. package/dist/types/slide-menu.js +1 -0
  82. package/package.json +87 -87
@@ -1,61 +1,112 @@
1
- <script>import { createEventDispatcher } from "svelte";
2
- import { DateTime } from "luxon";
3
- const dispatch = createEventDispatcher();
4
- export let selectedDate = null;
5
- export let placeholder = "\u65E5\u4ED8\u3092\u9078\u629E";
6
- export let id = "date-picker-" + Math.random().toString(36).substring(2, 9);
7
- export let borderColor = "--strawberry-pink";
8
- let showCalendar = false;
9
- let currentMonth = selectedDate ? DateTime.fromJSDate(selectedDate) : DateTime.local();
10
- $: formattedDate = selectedDate ? DateTime.fromJSDate(selectedDate).toFormat("yyyy/MM/dd") : "";
11
- function openCalendar() {
12
- showCalendar = true;
13
- }
14
- function closeCalendar() {
15
- showCalendar = false;
16
- }
17
- function selectDay(day) {
18
- const newDate = currentMonth.set({ day }).toJSDate();
19
- selectedDate = newDate;
20
- dispatch("change", newDate);
21
- closeCalendar();
22
- }
23
- function prevMonth() {
24
- currentMonth = currentMonth.minus({ months: 1 });
25
- }
26
- function nextMonth() {
27
- currentMonth = currentMonth.plus({ months: 1 });
28
- }
29
- function getDaysInMonth(date) {
30
- const startOfMonth = date.startOf("month");
31
- const endOfMonth = date.endOf("month");
32
- const days = [];
33
- const startDayOfWeek = startOfMonth.weekday % 7;
34
- for (let i = 0; i < startDayOfWeek; i++) {
35
- days.push(null);
36
- }
37
- for (let i = 1; i <= endOfMonth.day; i++) {
38
- days.push(i);
39
- }
40
- while (days.length < 42) {
41
- days.push(null);
42
- }
43
- return days;
44
- }
45
- function clickOutside(node) {
46
- const handleClick = (event) => {
47
- if (node && !node.contains(event.target) && !event.defaultPrevented) {
48
- node.dispatchEvent(new CustomEvent("click_outside"));
1
+ <script lang="ts">
2
+ import { createEventDispatcher } from 'svelte';
3
+ import { DateTime } from 'luxon';
4
+
5
+ const dispatch = createEventDispatcher();
6
+
7
+ /**
8
+ * 選択された日付
9
+ * @default null
10
+ * @type {Date | null}
11
+ */
12
+ export let selectedDate: Date | null = null;
13
+
14
+ /**
15
+ * 日付ピッカーのプレースホルダーテキスト
16
+ * @default '日付を選択'
17
+ * @type string
18
+ */
19
+ export let placeholder: string = '日付を選択';
20
+
21
+ /**
22
+ * 日付ピッカーのID
23
+ * @default ''
24
+ * @type string
25
+ */
26
+ export let id: string = 'date-picker-' + Math.random().toString(36).substring(2, 9);
27
+
28
+ /**
29
+ * ボーダーカラー、CCLVividColorの中から選ぶ
30
+ * @default --strawberry-pink
31
+ * @type string
32
+ */
33
+ export let borderColor: string = '--strawberry-pink';
34
+
35
+ let showCalendar = false;
36
+ let currentMonth: DateTime = selectedDate ? DateTime.fromJSDate(selectedDate) : DateTime.local();
37
+
38
+ $: formattedDate = selectedDate ? DateTime.fromJSDate(selectedDate).toFormat('yyyy/MM/dd') : '';
39
+
40
+ // --- イベントハンドラを整理 ---
41
+ function openCalendar() {
42
+ showCalendar = true;
43
+ }
44
+
45
+ function closeCalendar() {
46
+ showCalendar = false;
47
+ }
48
+
49
+ function selectDay(day: number) {
50
+ const newDate = currentMonth.set({ day }).toJSDate();
51
+ selectedDate = newDate;
52
+ dispatch('change', newDate);
53
+ closeCalendar(); // 日付選択後はカレンダーを閉じる
54
+ }
55
+
56
+ function prevMonth() {
57
+ currentMonth = currentMonth.minus({ months: 1 });
58
+ }
59
+
60
+ function nextMonth() {
61
+ currentMonth = currentMonth.plus({ months: 1 });
62
+ }
63
+
64
+ function getDaysInMonth(date: DateTime) {
65
+ const startOfMonth = date.startOf('month');
66
+ const endOfMonth = date.endOf('month');
67
+ const days = [];
68
+
69
+ // 前月の日付を埋める (日曜始まりに調整)
70
+ const startDayOfWeek = startOfMonth.weekday % 7; // 1(月)..6(土), 0(日)
71
+ for (let i = 0; i < startDayOfWeek; i++) {
72
+ days.push(null);
73
+ }
74
+
75
+ // 今月の日付
76
+ for (let i = 1; i <= endOfMonth.day; i++) {
77
+ days.push(i);
49
78
  }
50
- };
51
- document.addEventListener("click", handleClick, true);
52
- return {
53
- destroy() {
54
- document.removeEventListener("click", handleClick, true);
79
+
80
+ // 6行x7列=42マスを埋めるために次月の日付を追加
81
+ while (days.length < 42) {
82
+ days.push(null);
55
83
  }
56
- };
57
- }
58
- $: daysInMonth = getDaysInMonth(currentMonth);
84
+
85
+ return days;
86
+ }
87
+
88
+ /**
89
+ * Svelte Action to detect clicks outside an element.
90
+ * @param {HTMLElement} node
91
+ */
92
+ function clickOutside(node: HTMLElement) {
93
+ const handleClick = (event: MouseEvent) => {
94
+ if (node && !node.contains(event.target as Node) && !event.defaultPrevented) {
95
+ // 'click_outside' というカスタムイベントを発行
96
+ node.dispatchEvent(new CustomEvent('click_outside'));
97
+ }
98
+ };
99
+
100
+ document.addEventListener('click', handleClick, true);
101
+
102
+ return {
103
+ destroy() {
104
+ document.removeEventListener('click', handleClick, true);
105
+ }
106
+ };
107
+ }
108
+
109
+ $: daysInMonth = getDaysInMonth(currentMonth);
59
110
  </script>
60
111
 
61
112
  <!--
@@ -63,142 +114,142 @@ $: daysInMonth = getDaysInMonth(currentMonth);
63
114
  - `on:click_outside` で外側クリック時の動作を定義
64
115
  -->
65
116
  <div
66
- class="datePickerWrapper"
67
- style="--selected-color: var({borderColor});"
68
- use:clickOutside
69
- on:click_outside={closeCalendar}
117
+ class="datePickerWrapper"
118
+ style="--selected-color: var({borderColor});"
119
+ use:clickOutside
120
+ on:click_outside={closeCalendar}
70
121
  >
71
- <input
72
- type="text"
73
- {id}
74
- value={formattedDate}
75
- {placeholder}
76
- on:focus={openCalendar}
77
- readonly
78
- style="border-color: var({borderColor});"
79
- />
80
-
81
- {#if showCalendar}
82
- <!--
122
+ <input
123
+ type="text"
124
+ {id}
125
+ value={formattedDate}
126
+ {placeholder}
127
+ on:focus={openCalendar}
128
+ readonly
129
+ style="border-color: var({borderColor});"
130
+ />
131
+
132
+ {#if showCalendar}
133
+ <!--
83
134
  - カレンダー内のクリックが外側クリックと誤認されないようにイベントの伝播を止める
84
135
  -->
85
- <div class="calendarOverlay" on:click|stopPropagation>
86
- <div class="calendarHeader">
87
- <button on:click={prevMonth} aria-label="前月へ">&lt;</button>
88
- <span>{currentMonth.toFormat('yyyy年MM月')}</span>
89
- <button on:click={nextMonth} aria-label="次月へ">&gt;</button>
90
- </div>
91
- <div class="weekdays">
92
- <span>日</span>
93
- <span>月</span>
94
- <span>火</span>
95
- <span>水</span>
96
- <span>木</span>
97
- <span>金</span>
98
- <span>土</span>
99
- </div>
100
- <div class="daysGrid">
101
- {#each daysInMonth as day}
102
- <button
103
- class:currentMonthDay={day !== null}
104
- class:selected={selectedDate &&
105
- day === DateTime.fromJSDate(selectedDate).day &&
106
- currentMonth.month === DateTime.fromJSDate(selectedDate).month &&
107
- currentMonth.year === DateTime.fromJSDate(selectedDate).year}
108
- on:click={() => day && selectDay(day)}
109
- disabled={day === null}
110
- >
111
- {day !== null ? day : ''}
112
- </button>
113
- {/each}
114
- </div>
115
- </div>
116
- {/if}
136
+ <div class="calendarOverlay" on:click|stopPropagation>
137
+ <div class="calendarHeader">
138
+ <button on:click={prevMonth} aria-label="前月へ">&lt;</button>
139
+ <span>{currentMonth.toFormat('yyyy年MM月')}</span>
140
+ <button on:click={nextMonth} aria-label="次月へ">&gt;</button>
141
+ </div>
142
+ <div class="weekdays">
143
+ <span>日</span>
144
+ <span>月</span>
145
+ <span>火</span>
146
+ <span>水</span>
147
+ <span>木</span>
148
+ <span>金</span>
149
+ <span>土</span>
150
+ </div>
151
+ <div class="daysGrid">
152
+ {#each daysInMonth as day}
153
+ <button
154
+ class:currentMonthDay={day !== null}
155
+ class:selected={selectedDate &&
156
+ day === DateTime.fromJSDate(selectedDate).day &&
157
+ currentMonth.month === DateTime.fromJSDate(selectedDate).month &&
158
+ currentMonth.year === DateTime.fromJSDate(selectedDate).year}
159
+ on:click={() => day && selectDay(day)}
160
+ disabled={day === null}
161
+ >
162
+ {day !== null ? day : ''}
163
+ </button>
164
+ {/each}
165
+ </div>
166
+ </div>
167
+ {/if}
117
168
  </div>
118
169
 
119
170
  <style>
120
- /* スタイルは変更なし */
121
- .datePickerWrapper {
122
- position: relative;
123
- display: inline-block;
124
- }
125
-
126
- .datePickerWrapper input {
127
- padding: 8px;
128
- border: 1px solid #ccc;
129
- border-radius: 4px;
130
- width: 120px;
131
- cursor: pointer; /* クリックできることを示す */
132
- }
133
-
134
- .datePickerWrapper input:focus {
135
- outline: none;
136
- }
137
-
138
- .calendarOverlay {
139
- position: absolute;
140
- background-color: white;
141
- border: 1px solid #ccc;
142
- border-radius: 4px;
143
- padding: 10px;
144
- z-index: 1000;
145
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
146
- margin-top: 5px;
147
- }
148
-
149
- .calendarHeader {
150
- display: flex;
151
- justify-content: space-between;
152
- align-items: center;
153
- margin-bottom: 10px;
154
- }
155
-
156
- .calendarHeader button {
157
- background: none;
158
- border: none;
159
- font-size: 1.2em;
160
- cursor: pointer;
161
- padding: 5px;
162
- }
163
-
164
- .weekdays,
165
- .daysGrid {
166
- display: grid;
167
- grid-template-columns: repeat(7, 1fr);
168
- text-align: center;
169
- }
170
-
171
- .weekdays span {
172
- font-weight: bold;
173
- padding: 5px 0;
174
- }
175
-
176
- .daysGrid button {
177
- background: none;
178
- border: none;
179
- padding: 0;
180
- width: 30px;
181
- height: 30px;
182
- line-height: 30px;
183
- cursor: pointer;
184
- border-radius: 4px;
185
- }
186
-
187
- .daysGrid button:hover:not([disabled]) {
188
- background-color: #eee;
189
- }
190
-
191
- .daysGrid button.currentMonthDay {
192
- color: #333;
193
- }
194
-
195
- .daysGrid button.selected {
196
- background-color: var(--selected-color);
197
- color: white;
198
- }
199
-
200
- .daysGrid button[disabled] {
201
- color: #ccc;
202
- cursor: default;
203
- }
171
+ /* スタイルは変更なし */
172
+ .datePickerWrapper {
173
+ position: relative;
174
+ display: inline-block;
175
+ }
176
+
177
+ .datePickerWrapper input {
178
+ padding: 8px;
179
+ border: 1px solid #ccc;
180
+ border-radius: 4px;
181
+ width: 120px;
182
+ cursor: pointer; /* クリックできることを示す */
183
+ }
184
+
185
+ .datePickerWrapper input:focus {
186
+ outline: none;
187
+ }
188
+
189
+ .calendarOverlay {
190
+ position: absolute;
191
+ background-color: white;
192
+ border: 1px solid #ccc;
193
+ border-radius: 4px;
194
+ padding: 10px;
195
+ z-index: 1000;
196
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
197
+ margin-top: 5px;
198
+ }
199
+
200
+ .calendarHeader {
201
+ display: flex;
202
+ justify-content: space-between;
203
+ align-items: center;
204
+ margin-bottom: 10px;
205
+ }
206
+
207
+ .calendarHeader button {
208
+ background: none;
209
+ border: none;
210
+ font-size: 1.2em;
211
+ cursor: pointer;
212
+ padding: 5px;
213
+ }
214
+
215
+ .weekdays,
216
+ .daysGrid {
217
+ display: grid;
218
+ grid-template-columns: repeat(7, 1fr);
219
+ text-align: center;
220
+ }
221
+
222
+ .weekdays span {
223
+ font-weight: bold;
224
+ padding: 5px 0;
225
+ }
226
+
227
+ .daysGrid button {
228
+ background: none;
229
+ border: none;
230
+ padding: 0;
231
+ width: 30px;
232
+ height: 30px;
233
+ line-height: 30px;
234
+ cursor: pointer;
235
+ border-radius: 4px;
236
+ }
237
+
238
+ .daysGrid button:hover:not([disabled]) {
239
+ background-color: #eee;
240
+ }
241
+
242
+ .daysGrid button.currentMonthDay {
243
+ color: #333;
244
+ }
245
+
246
+ .daysGrid button.selected {
247
+ background-color: var(--selected-color);
248
+ color: white;
249
+ }
250
+
251
+ .daysGrid button[disabled] {
252
+ color: #ccc;
253
+ cursor: default;
254
+ }
204
255
  </style>
@@ -1,40 +1,42 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- /**
5
- * 選択された日付
6
- * @default null
7
- * @type {Date | null}
8
- */ selectedDate?: Date | null;
9
- /**
10
- * 日付ピッカーのプレースホルダーテキスト
11
- * @default '日付を選択'
12
- * @type string
13
- */ placeholder?: string;
14
- /**
15
- * 日付ピッカーのID
16
- * @default ''
17
- * @type string
18
- */ id?: string;
19
- /**
20
- * ボーダーカラー、CCLVividColorの中から選ぶ
21
- * @default --strawberry-pink
22
- * @type string
23
- */ 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;
24
11
  };
25
- events: {
26
- click: MouseEvent;
27
- change: CustomEvent<any>;
28
- } & {
29
- [evt: string]: CustomEvent<any>;
30
- };
31
- slots: {};
32
- exports?: {} | undefined;
33
- bindings?: string | undefined;
34
- };
35
- export type DatePickerProps = typeof __propDef.props;
36
- export type DatePickerEvents = typeof __propDef.events;
37
- export type DatePickerSlots = typeof __propDef.slots;
38
- export default class DatePicker extends SvelteComponent<DatePickerProps, DatePickerEvents, DatePickerSlots> {
12
+ z_$$bindings?: Bindings;
39
13
  }
40
- export {};
14
+ declare const DatePicker: $$__sveltets_2_IsomorphicComponent<{
15
+ /**
16
+ * 選択された日付
17
+ * @default null
18
+ * @type {Date | null}
19
+ */ selectedDate?: Date | null;
20
+ /**
21
+ * 日付ピッカーのプレースホルダーテキスト
22
+ * @default '日付を選択'
23
+ * @type string
24
+ */ placeholder?: string;
25
+ /**
26
+ * 日付ピッカーのID
27
+ * @default ''
28
+ * @type string
29
+ */ id?: string;
30
+ /**
31
+ * ボーダーカラー、CCLVividColorの中から選ぶ
32
+ * @default --strawberry-pink
33
+ * @type string
34
+ */ borderColor?: string;
35
+ }, {
36
+ click: PointerEvent;
37
+ change: CustomEvent<any>;
38
+ } & {
39
+ [evt: string]: CustomEvent<any>;
40
+ }, {}, {}, string>;
41
+ type DatePicker = InstanceType<typeof DatePicker>;
42
+ export default DatePicker;