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,27 +1,29 @@
1
- import { SvelteComponent } 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
- /**
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
- events: {
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
- export {};
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;
@@ -1,31 +1,33 @@
1
- <script>import { CCLVividColor } from "./const/config";
2
- export let size = "40px";
3
- export let color = CCLVividColor.STRAWBERRY_PINK;
4
- export let borderWidth = "4px";
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
- class="spinner"
9
- style="width: {size}; height: {size}; border-width: {borderWidth}; --spinner-color: var({color});"
10
- role="status"
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
- .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
- }
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
- @keyframes spin {
24
- 0% {
25
- transform: rotate(0deg);
26
- }
27
- 100% {
28
- transform: rotate(360deg);
29
- }
30
- }
25
+ @keyframes spin {
26
+ 0% {
27
+ transform: rotate(0deg);
28
+ }
29
+ 100% {
30
+ transform: rotate(360deg);
31
+ }
32
+ }
31
33
  </style>
@@ -1,20 +1,22 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- size?: string;
5
- color?: string;
6
- borderWidth?: 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;
7
11
  };
8
- events: {
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
- export {};
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;
@@ -1,28 +1,49 @@
1
- <script>import { getContext, onMount } from "svelte";
2
- export let label;
3
- export let color = "--strawberry-pink";
4
- export let disabled = false;
5
- import { TABS_CONTEXT_KEY } from "./scripts/tabsContext";
6
- const { addTab, activeTabLabel } = getContext(TABS_CONTEXT_KEY);
7
- onMount(() => {
8
- addTab({ label, color, disabled });
9
- });
10
- $: isActive = $activeTabLabel === label;
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
- <div
15
- role="tabpanel"
16
- id={`tab-panel-${label}`}
17
- aria-labelledby={`tab-button-${label}`}
18
- class="tab-panel-content"
19
- >
20
- <slot />
21
- </div>
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
- .tab-panel-content {
26
- /* Add any panel-specific styling here if needed */
27
- }
46
+ .tab-panel-content {
47
+ /* Add any panel-specific styling here if needed */
48
+ }
28
49
  </style>
@@ -1,33 +1,42 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- /**
5
- * タブのボタンに表示されるテキスト
6
- * @type string
7
- */ label: string;
8
- /**
9
- * このタブがアクティブな時のインジケーターの色
10
- * @default --strawberry-pink
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
- events: {
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
- export {};
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;