@14ch/svelte-ui 0.0.12 → 0.0.13

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 (86) hide show
  1. package/dist/assets/styles/variables.scss +0 -6
  2. package/dist/components/Button.svelte +75 -73
  3. package/dist/components/Button.svelte.d.ts +2 -2
  4. package/dist/components/Checkbox.svelte +78 -77
  5. package/dist/components/Checkbox.svelte.d.ts +4 -4
  6. package/dist/components/CheckboxGroup.svelte +42 -26
  7. package/dist/components/CheckboxGroup.svelte.d.ts +2 -2
  8. package/dist/components/ColorPicker.svelte +63 -61
  9. package/dist/components/ColorPicker.svelte.d.ts +2 -2
  10. package/dist/components/Combobox.svelte +71 -76
  11. package/dist/components/Combobox.svelte.d.ts +2 -2
  12. package/dist/components/ConfirmDialog.svelte +24 -22
  13. package/dist/components/ConfirmDialog.svelte.d.ts +2 -2
  14. package/dist/components/Datepicker.svelte +121 -81
  15. package/dist/components/Datepicker.svelte.d.ts +6 -4
  16. package/dist/components/DatepickerCalendar.svelte +23 -18
  17. package/dist/components/DatepickerCalendar.svelte.d.ts +2 -2
  18. package/dist/components/Dialog.svelte +30 -28
  19. package/dist/components/Dialog.svelte.d.ts +2 -2
  20. package/dist/components/Drawer.svelte +31 -29
  21. package/dist/components/Drawer.svelte.d.ts +2 -2
  22. package/dist/components/Fab.svelte +56 -54
  23. package/dist/components/Fab.svelte.d.ts +2 -2
  24. package/dist/components/FileUploader.svelte +51 -49
  25. package/dist/components/FileUploader.svelte.d.ts +2 -2
  26. package/dist/components/Icon.svelte +29 -27
  27. package/dist/components/Icon.svelte.d.ts +2 -2
  28. package/dist/components/IconButton.svelte +81 -79
  29. package/dist/components/IconButton.svelte.d.ts +2 -2
  30. package/dist/components/ImageUploader.svelte +53 -51
  31. package/dist/components/ImageUploader.svelte.d.ts +2 -2
  32. package/dist/components/ImageUploaderPreview.svelte +33 -20
  33. package/dist/components/ImageUploaderPreview.svelte.d.ts +2 -2
  34. package/dist/components/Input.svelte +97 -93
  35. package/dist/components/Input.svelte.d.ts +2 -2
  36. package/dist/components/LoadingSpinner.svelte +14 -13
  37. package/dist/components/LoadingSpinner.svelte.d.ts +2 -2
  38. package/dist/components/Modal.svelte +26 -24
  39. package/dist/components/Modal.svelte.d.ts +2 -2
  40. package/dist/components/Pagination.svelte +20 -28
  41. package/dist/components/Pagination.svelte.d.ts +2 -2
  42. package/dist/components/Popup.svelte +46 -46
  43. package/dist/components/Popup.svelte.d.ts +3 -3
  44. package/dist/components/PopupMenu.svelte +90 -90
  45. package/dist/components/PopupMenu.svelte.d.ts +2 -2
  46. package/dist/components/PopupMenuButton.svelte +61 -61
  47. package/dist/components/PopupMenuButton.svelte.d.ts +2 -2
  48. package/dist/components/Radio.svelte +64 -63
  49. package/dist/components/Radio.svelte.d.ts +2 -2
  50. package/dist/components/RadioGroup.svelte +38 -26
  51. package/dist/components/RadioGroup.svelte.d.ts +2 -2
  52. package/dist/components/SegmentedControl.svelte +71 -69
  53. package/dist/components/SegmentedControl.svelte.d.ts +4 -4
  54. package/dist/components/Select.svelte +65 -65
  55. package/dist/components/Select.svelte.d.ts +2 -2
  56. package/dist/components/Slider.svelte +65 -64
  57. package/dist/components/Slider.svelte.d.ts +5 -5
  58. package/dist/components/Snackbar.svelte +10 -9
  59. package/dist/components/Snackbar.svelte.d.ts +2 -2
  60. package/dist/components/SnackbarItem.svelte +28 -28
  61. package/dist/components/SnackbarItem.svelte.d.ts +2 -2
  62. package/dist/components/Switch.svelte +62 -62
  63. package/dist/components/Switch.svelte.d.ts +4 -4
  64. package/dist/components/Tab.svelte +31 -20
  65. package/dist/components/Tab.svelte.d.ts +3 -2
  66. package/dist/components/TabItem.svelte +20 -19
  67. package/dist/components/TabItem.svelte.d.ts +2 -2
  68. package/dist/components/Textarea.svelte +82 -82
  69. package/dist/components/Textarea.svelte.d.ts +5 -5
  70. package/dist/components/skeleton/Skeleton.svelte +16 -14
  71. package/dist/components/skeleton/Skeleton.svelte.d.ts +2 -2
  72. package/dist/components/skeleton/SkeletonAvatar.svelte +9 -5
  73. package/dist/components/skeleton/SkeletonAvatar.svelte.d.ts +2 -2
  74. package/dist/components/skeleton/SkeletonBox.svelte +11 -11
  75. package/dist/components/skeleton/SkeletonBox.svelte.d.ts +2 -2
  76. package/dist/components/skeleton/SkeletonButton.svelte +10 -5
  77. package/dist/components/skeleton/SkeletonButton.svelte.d.ts +2 -2
  78. package/dist/components/skeleton/SkeletonHeading.svelte +8 -11
  79. package/dist/components/skeleton/SkeletonHeading.svelte.d.ts +2 -2
  80. package/dist/components/skeleton/SkeletonMedia.svelte +10 -6
  81. package/dist/components/skeleton/SkeletonMedia.svelte.d.ts +2 -2
  82. package/dist/components/skeleton/SkeletonText.svelte +9 -13
  83. package/dist/components/skeleton/SkeletonText.svelte.d.ts +2 -2
  84. package/dist/index.d.ts +41 -0
  85. package/dist/utils/formatText.js +4 -1
  86. package/package.json +1 -1
@@ -376,7 +376,6 @@
376
376
  --svelte-ui-input-icon-space-double-inline: calc(var(--svelte-ui-form-icon-space) * 2);
377
377
  --svelte-ui-input-bg: var(--svelte-ui-form-bg);
378
378
  --svelte-ui-input-border-color: var(--svelte-ui-border-weak-color);
379
- --svelte-ui-input-readonly-bg: var(--svelte-ui-form-bg);
380
379
  --svelte-ui-input-text-color: var(--svelte-ui-text-color);
381
380
  --svelte-ui-input-placeholder-color: var(--svelte-ui-text-placeholder-color);
382
381
  --svelte-ui-input-icon-color: var(--svelte-ui-text-subtle-color);
@@ -396,11 +395,6 @@
396
395
  --svelte-ui-textarea-icon-space-inline: var(--svelte-ui-form-icon-space);
397
396
  --svelte-ui-textarea-icon-top: 2px;
398
397
  --svelte-ui-textarea-icon-top-inline: -2px;
399
- --svelte-ui-textarea-bg: var(--svelte-ui-form-bg);
400
- --svelte-ui-textarea-border-color: var(--svelte-ui-border-weak-color);
401
- --svelte-ui-textarea-readonly-bg: var(--svelte-ui-form-bg);
402
- --svelte-ui-textarea-text-color: var(--svelte-ui-text-color);
403
- --svelte-ui-textarea-placeholder-color: var(--svelte-ui-text-placeholder-color);
404
398
  --svelte-ui-textarea-icon-color: var(--svelte-ui-text-subtle-color);
405
399
 
406
400
  /* Select */
@@ -18,6 +18,80 @@
18
18
  // =========================================================================
19
19
  // Props, States & Constants
20
20
  // =========================================================================
21
+ export type ButtonProps = {
22
+ // Snippet
23
+ children: Snippet;
24
+
25
+ // HTML属性系
26
+ buttonAttributes?: HTMLButtonAttributes | undefined;
27
+ type?: HTMLButtonAttributes['type'];
28
+ tabindex?: number | null;
29
+
30
+ // スタイル/レイアウト
31
+ customStyle?: HTMLButtonAttributes['style'];
32
+ variant?: 'ghost' | 'filled' | 'outlined' | 'glass';
33
+ size?: 'small' | 'medium' | 'large';
34
+ color?: string;
35
+ fullWidth?: boolean;
36
+ minWidth?: string | number;
37
+ rounded?: boolean;
38
+ popup?: boolean;
39
+
40
+ // アイコン関連
41
+ icon?: string;
42
+ iconFilled?: boolean;
43
+ iconWeight?: IconWeight;
44
+ iconGrade?: IconGrade;
45
+ iconOpticalSize?: IconOpticalSize;
46
+ iconVariant?: IconVariant;
47
+
48
+ // 状態/動作
49
+ disabled?: boolean;
50
+ loading?: boolean;
51
+
52
+ // ARIA/アクセシビリティ
53
+ ariaLabel?: string;
54
+ ariaDescribedby?: string;
55
+ ariaExpanded?: boolean;
56
+ reducedMotion?: boolean;
57
+
58
+ // フォーカスイベント
59
+ onfocus?: FocusHandler;
60
+ onblur?: FocusHandler;
61
+
62
+ // キーボードイベント
63
+ onkeydown?: KeyboardHandler;
64
+ onkeyup?: KeyboardHandler;
65
+
66
+ // マウスイベント
67
+ onclick?: MouseHandler;
68
+ onmousedown?: MouseHandler;
69
+ onmouseup?: MouseHandler;
70
+ onmouseenter?: MouseHandler;
71
+ onmouseleave?: MouseHandler;
72
+ onmouseover?: MouseHandler;
73
+ onmouseout?: MouseHandler;
74
+ oncontextmenu?: MouseHandler;
75
+ onauxclick?: MouseHandler;
76
+
77
+ // タッチイベント
78
+ ontouchstart?: TouchHandler;
79
+ ontouchend?: TouchHandler;
80
+ ontouchmove?: TouchHandler;
81
+ ontouchcancel?: TouchHandler;
82
+
83
+ // ポインターイベント
84
+ onpointerdown?: PointerHandler;
85
+ onpointerup?: PointerHandler;
86
+ onpointerenter?: PointerHandler;
87
+ onpointerleave?: PointerHandler;
88
+ onpointermove?: PointerHandler;
89
+ onpointercancel?: PointerHandler;
90
+
91
+ // その他
92
+ [key: string]: any;
93
+ };
94
+
21
95
  let {
22
96
  // Snippet
23
97
  children,
@@ -90,79 +164,7 @@
90
164
 
91
165
  // その他
92
166
  ...restProps
93
- }: {
94
- // Snippet
95
- children: Snippet;
96
-
97
- // HTML属性系
98
- buttonAttributes?: HTMLButtonAttributes | undefined;
99
- type?: HTMLButtonAttributes['type'];
100
- tabindex?: number | null;
101
-
102
- // スタイル/レイアウト
103
- customStyle?: HTMLButtonAttributes['style'];
104
- variant?: 'ghost' | 'filled' | 'outlined' | 'glass';
105
- size?: 'small' | 'medium' | 'large';
106
- color?: string;
107
- fullWidth?: boolean;
108
- minWidth?: string | number;
109
- rounded?: boolean;
110
- popup?: boolean;
111
-
112
- // アイコン関連
113
- icon?: string;
114
- iconFilled?: boolean;
115
- iconWeight?: IconWeight;
116
- iconGrade?: IconGrade;
117
- iconOpticalSize?: IconOpticalSize;
118
- iconVariant?: IconVariant;
119
-
120
- // 状態/動作
121
- disabled?: boolean;
122
- loading?: boolean;
123
-
124
- // ARIA/アクセシビリティ
125
- ariaLabel?: string;
126
- ariaDescribedby?: string;
127
- ariaExpanded?: boolean;
128
- reducedMotion?: boolean;
129
-
130
- // フォーカスイベント
131
- onfocus?: FocusHandler;
132
- onblur?: FocusHandler;
133
-
134
- // キーボードイベント
135
- onkeydown?: KeyboardHandler;
136
- onkeyup?: KeyboardHandler;
137
-
138
- // マウスイベント
139
- onclick?: MouseHandler;
140
- onmousedown?: MouseHandler;
141
- onmouseup?: MouseHandler;
142
- onmouseenter?: MouseHandler;
143
- onmouseleave?: MouseHandler;
144
- onmouseover?: MouseHandler;
145
- onmouseout?: MouseHandler;
146
- oncontextmenu?: MouseHandler;
147
- onauxclick?: MouseHandler;
148
-
149
- // タッチイベント
150
- ontouchstart?: TouchHandler;
151
- ontouchend?: TouchHandler;
152
- ontouchmove?: TouchHandler;
153
- ontouchcancel?: TouchHandler;
154
-
155
- // ポインターイベント
156
- onpointerdown?: PointerHandler;
157
- onpointerup?: PointerHandler;
158
- onpointerenter?: PointerHandler;
159
- onpointerleave?: PointerHandler;
160
- onpointermove?: PointerHandler;
161
- onpointercancel?: PointerHandler;
162
-
163
- // その他
164
- [key: string]: any;
165
- } = $props();
167
+ }: ButtonProps = $props();
166
168
 
167
169
  const backgroundColors = $derived({
168
170
  filled: color ?? 'var(--svelte-ui-button-bg-filled)',
@@ -2,7 +2,7 @@ import type { Snippet } from 'svelte';
2
2
  import type { HTMLButtonAttributes } from 'svelte/elements';
3
3
  import type { IconVariant, IconWeight, IconGrade, IconOpticalSize } from '../types/icon';
4
4
  import type { FocusHandler, KeyboardHandler, MouseHandler, TouchHandler, PointerHandler } from '../types/eventHandlers';
5
- type $$ComponentProps = {
5
+ export type ButtonProps = {
6
6
  children: Snippet;
7
7
  buttonAttributes?: HTMLButtonAttributes | undefined;
8
8
  type?: HTMLButtonAttributes['type'];
@@ -52,6 +52,6 @@ type $$ComponentProps = {
52
52
  onpointercancel?: PointerHandler;
53
53
  [key: string]: any;
54
54
  };
55
- declare const Button: import("svelte").Component<$$ComponentProps, {}, "">;
55
+ declare const Button: import("svelte").Component<ButtonProps, {}, "">;
56
56
  type Button = ReturnType<typeof Button>;
57
57
  export default Button;
@@ -15,6 +15,69 @@
15
15
  // =========================================================================
16
16
  // Props, States & Constants
17
17
  // =========================================================================
18
+ export type CheckboxProps = {
19
+ // Snippet
20
+ children?: Snippet;
21
+
22
+ // 基本プロパティ
23
+ name?: string;
24
+ value: boolean;
25
+ indeterminate?: boolean;
26
+
27
+ // HTML属性系
28
+ id?: string;
29
+ inputAttributes?: HTMLInputAttributes | undefined;
30
+
31
+ // スタイル/レイアウト
32
+ size?: 'small' | 'medium' | 'large';
33
+
34
+ // 状態/動作
35
+ disabled?: boolean;
36
+ required?: boolean;
37
+
38
+ // ARIA/アクセシビリティ
39
+ reducedMotion?: boolean;
40
+
41
+ // 入力イベント
42
+ onchange?: (value: boolean) => void;
43
+
44
+ // フォーカスイベント
45
+ onfocus?: FocusHandler;
46
+ onblur?: FocusHandler;
47
+
48
+ // キーボードイベント
49
+ onkeydown?: KeyboardHandler;
50
+ onkeyup?: KeyboardHandler;
51
+
52
+ // マウスイベント
53
+ onclick?: MouseHandler;
54
+ onmousedown?: MouseHandler;
55
+ onmouseup?: MouseHandler;
56
+ onmouseenter?: MouseHandler;
57
+ onmouseleave?: MouseHandler;
58
+ onmouseover?: MouseHandler;
59
+ onmouseout?: MouseHandler;
60
+ oncontextmenu?: MouseHandler;
61
+ onauxclick?: MouseHandler;
62
+
63
+ // タッチイベント
64
+ ontouchstart?: TouchHandler;
65
+ ontouchend?: TouchHandler;
66
+ ontouchmove?: TouchHandler;
67
+ ontouchcancel?: TouchHandler;
68
+
69
+ // ポインターイベント
70
+ onpointerdown?: PointerHandler;
71
+ onpointerup?: PointerHandler;
72
+ onpointerenter?: PointerHandler;
73
+ onpointerleave?: PointerHandler;
74
+ onpointermove?: PointerHandler;
75
+ onpointercancel?: PointerHandler;
76
+
77
+ // その他
78
+ [key: string]: any;
79
+ };
80
+
18
81
  let {
19
82
  // Snippet
20
83
  children,
@@ -76,85 +139,9 @@
76
139
 
77
140
  // その他
78
141
  ...restProps
79
- }: {
80
- // Snippet
81
- children?: Snippet;
82
-
83
- // 基本プロパティ
84
- name?: string;
85
- value: boolean;
86
- indeterminate?: boolean;
87
-
88
- // HTML属性系
89
- id?: string;
90
- inputAttributes?: HTMLInputAttributes | undefined;
91
-
92
- // スタイル/レイアウト
93
- size?: 'small' | 'medium' | 'large';
142
+ }: CheckboxProps = $props();
94
143
 
95
- // 状態/動作
96
- disabled?: boolean;
97
- required?: boolean;
98
-
99
- // ARIA/アクセシビリティ
100
- reducedMotion?: boolean;
101
-
102
- // 入力イベント
103
- onchange?: BivariantValueHandler<boolean>;
104
-
105
- // フォーカスイベント
106
- onfocus?: FocusHandler;
107
- onblur?: FocusHandler;
108
-
109
- // キーボードイベント
110
- onkeydown?: KeyboardHandler;
111
- onkeyup?: KeyboardHandler;
112
-
113
- // マウスイベント
114
- onclick?: MouseHandler;
115
- onmousedown?: MouseHandler;
116
- onmouseup?: MouseHandler;
117
- onmouseenter?: MouseHandler;
118
- onmouseleave?: MouseHandler;
119
- onmouseover?: MouseHandler;
120
- onmouseout?: MouseHandler;
121
- oncontextmenu?: MouseHandler;
122
- onauxclick?: MouseHandler;
123
-
124
- // タッチイベント
125
- ontouchstart?: TouchHandler;
126
- ontouchend?: TouchHandler;
127
- ontouchmove?: TouchHandler;
128
- ontouchcancel?: TouchHandler;
129
-
130
- // ポインターイベント
131
- onpointerdown?: PointerHandler;
132
- onpointerup?: PointerHandler;
133
- onpointerenter?: PointerHandler;
134
- onpointerleave?: PointerHandler;
135
- onpointermove?: PointerHandler;
136
- onpointercancel?: PointerHandler;
137
-
138
- // その他
139
- [key: string]: any;
140
- } = $props();
141
-
142
- // =========================================================================
143
- // $derived
144
144
  // =========================================================================
145
- const containerClasses = $derived(
146
- [
147
- 'checkbox',
148
- `checkbox--${size}`,
149
- disabled && 'checkbox--disabled',
150
- reducedMotion && 'checkbox--no-motion'
151
- ]
152
- .filter(Boolean)
153
- .join(' ')
154
- );
155
-
156
- // =========================================================================
157
-
158
145
  // Methods
159
146
  // =========================================================================
160
147
  const handleFocus = (event: FocusEvent) => {
@@ -283,6 +270,20 @@
283
270
  const handleChange = (event: Event) => {
284
271
  onchange(value);
285
272
  };
273
+
274
+ // =========================================================================
275
+ // $derived
276
+ // =========================================================================
277
+ const containerClasses = $derived(
278
+ [
279
+ 'checkbox',
280
+ `checkbox--${size}`,
281
+ disabled && 'checkbox--disabled',
282
+ reducedMotion && 'checkbox--no-motion'
283
+ ]
284
+ .filter(Boolean)
285
+ .join(' ')
286
+ );
286
287
  </script>
287
288
 
288
289
  <div class={containerClasses} data-testid="checkbox">
@@ -1,7 +1,7 @@
1
1
  import { type Snippet } from 'svelte';
2
2
  import type { HTMLInputAttributes } from 'svelte/elements';
3
- import type { FocusHandler, KeyboardHandler, MouseHandler, TouchHandler, PointerHandler, BivariantValueHandler } from '../types/eventHandlers';
4
- type $$ComponentProps = {
3
+ import type { FocusHandler, KeyboardHandler, MouseHandler, TouchHandler, PointerHandler } from '../types/eventHandlers';
4
+ export type CheckboxProps = {
5
5
  children?: Snippet;
6
6
  name?: string;
7
7
  value: boolean;
@@ -12,7 +12,7 @@ type $$ComponentProps = {
12
12
  disabled?: boolean;
13
13
  required?: boolean;
14
14
  reducedMotion?: boolean;
15
- onchange?: BivariantValueHandler<boolean>;
15
+ onchange?: (value: boolean) => void;
16
16
  onfocus?: FocusHandler;
17
17
  onblur?: FocusHandler;
18
18
  onkeydown?: KeyboardHandler;
@@ -38,6 +38,6 @@ type $$ComponentProps = {
38
38
  onpointercancel?: PointerHandler;
39
39
  [key: string]: any;
40
40
  };
41
- declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "value" | "indeterminate">;
41
+ declare const Checkbox: import("svelte").Component<CheckboxProps, {}, "value" | "indeterminate">;
42
42
  type Checkbox = ReturnType<typeof Checkbox>;
43
43
  export default Checkbox;
@@ -1,3 +1,5 @@
1
+ <!-- CheckboxGroup.svelte -->
2
+
1
3
  <script lang="ts">
2
4
  import type { Option, OptionValue } from '../types/options';
3
5
  import Checkbox from './Checkbox.svelte';
@@ -5,6 +7,33 @@
5
7
  import { getStyleFromNumber } from '../utils/style';
6
8
  import type { BivariantValueHandler } from '../types/eventHandlers';
7
9
 
10
+ // =========================================================================
11
+ // Props, States & Constants
12
+ // =========================================================================
13
+
14
+ export type CheckboxGroupProps = {
15
+ // 基本プロパティ
16
+ options: Option[];
17
+ value: OptionValue[];
18
+
19
+ // スタイル/レイアウト
20
+ direction?: 'vertical' | 'horizontal';
21
+ gap?: string | number;
22
+ wrap?: boolean;
23
+ minOptionWidth?: string | number;
24
+ size?: 'small' | 'medium' | 'large';
25
+
26
+ // 状態/動作
27
+ disabled?: boolean;
28
+ required?: boolean;
29
+
30
+ // ARIA/アクセシビリティ
31
+ reducedMotion?: boolean;
32
+
33
+ // 入力イベント
34
+ onchange?: BivariantValueHandler<OptionValue[]>;
35
+ };
36
+
8
37
  let {
9
38
  // 基本プロパティ
10
39
  options,
@@ -26,43 +55,30 @@
26
55
 
27
56
  // 入力イベント
28
57
  onchange = () => {} // No params for type inference
29
- }: {
30
- // 基本プロパティ
31
- options: Option[];
32
- value: OptionValue[];
33
-
34
- // スタイル/レイアウト
35
- direction?: 'vertical' | 'horizontal';
36
- gap?: string | number;
37
- wrap?: boolean;
38
- minOptionWidth?: string | number;
39
- size?: 'small' | 'medium' | 'large';
40
-
41
- // 状態/動作
42
- disabled?: boolean;
43
- required?: boolean;
58
+ }: CheckboxGroupProps = $props();
44
59
 
45
- // ARIA/アクセシビリティ
46
- reducedMotion?: boolean;
47
-
48
- // 入力イベント
49
- onchange?: BivariantValueHandler<OptionValue[]>;
50
- } = $props();
51
60
  let localValues: Record<string, boolean> = $state({});
52
61
 
62
+ // =========================================================================
63
+ // Lifecycle
64
+ // =========================================================================
53
65
  onMount(() => {
54
66
  options.forEach((option) => {
55
- localValues[option.value] = false;
67
+ localValues[String(option.value)] = false;
56
68
  });
57
69
  });
58
70
 
71
+ // =========================================================================
72
+ // Methods
73
+ // =========================================================================
59
74
  const handleChange = () => {
60
- value = options.filter((option) => localValues[option.value]).map((option) => option.value);
75
+ value = options
76
+ .filter((option) => localValues[String(option.value)])
77
+ .map((option) => option.value);
61
78
  onchange(value);
62
79
  };
63
80
 
64
81
  const gapStyle = gap !== undefined ? getStyleFromNumber(gap) : undefined;
65
-
66
82
  const minOptionWidthStyle = getStyleFromNumber(minOptionWidth);
67
83
  </script>
68
84
 
@@ -75,10 +91,10 @@
75
91
  "
76
92
  >
77
93
  {#each options as option (option.value)}
78
- {#if localValues[option.value] !== undefined}
94
+ {#if localValues[String(option.value)] !== undefined}
79
95
  <li class="checkbox-group__option">
80
96
  <Checkbox
81
- bind:value={localValues[option.value]}
97
+ bind:value={localValues[String(option.value)]}
82
98
  {size}
83
99
  {disabled}
84
100
  {required}
@@ -1,6 +1,6 @@
1
1
  import type { Option, OptionValue } from '../types/options';
2
2
  import type { BivariantValueHandler } from '../types/eventHandlers';
3
- type $$ComponentProps = {
3
+ export type CheckboxGroupProps = {
4
4
  options: Option[];
5
5
  value: OptionValue[];
6
6
  direction?: 'vertical' | 'horizontal';
@@ -13,6 +13,6 @@ type $$ComponentProps = {
13
13
  reducedMotion?: boolean;
14
14
  onchange?: BivariantValueHandler<OptionValue[]>;
15
15
  };
16
- declare const CheckboxGroup: import("svelte").Component<$$ComponentProps, {}, "value">;
16
+ declare const CheckboxGroup: import("svelte").Component<CheckboxGroupProps, {}, "value">;
17
17
  type CheckboxGroup = ReturnType<typeof CheckboxGroup>;
18
18
  export default CheckboxGroup;
@@ -18,6 +18,68 @@
18
18
  // =========================================================================
19
19
  // Props, States & Constants
20
20
  // =========================================================================
21
+ export type ColorPickerProps = {
22
+ // 基本プロパティ
23
+ value: string;
24
+
25
+ // HTML属性系
26
+ id?: string;
27
+ inputAttributes?: HTMLInputAttributes | undefined;
28
+
29
+ // スタイル/レイアウト
30
+ customStyle?: string;
31
+ focusStyle?: 'background' | 'outline' | 'none';
32
+ fullWidth?: boolean;
33
+ rounded?: boolean;
34
+
35
+ // 状態/動作
36
+ disabled?: boolean;
37
+ readonly?: boolean;
38
+ clearable?: boolean;
39
+ clearButtonAriaLabel?: string;
40
+ iconVariant?: IconVariant;
41
+
42
+ // 入力イベント
43
+ onchange?: BivariantValueHandler<string>;
44
+ oninput?: BivariantValueHandler<string>;
45
+
46
+ // フォーカスイベント
47
+ onfocus?: FocusHandler;
48
+ onblur?: FocusHandler;
49
+
50
+ // キーボードイベント
51
+ onkeydown?: KeyboardHandler;
52
+ onkeyup?: KeyboardHandler;
53
+
54
+ // マウスイベント
55
+ onclick?: MouseHandler;
56
+ onmousedown?: MouseHandler;
57
+ onmouseup?: MouseHandler;
58
+ onmouseenter?: MouseHandler;
59
+ onmouseleave?: MouseHandler;
60
+ onmouseover?: MouseHandler;
61
+ onmouseout?: MouseHandler;
62
+ oncontextmenu?: MouseHandler;
63
+ onauxclick?: MouseHandler;
64
+
65
+ // タッチイベント
66
+ ontouchstart?: TouchHandler;
67
+ ontouchend?: TouchHandler;
68
+ ontouchmove?: TouchHandler;
69
+ ontouchcancel?: TouchHandler;
70
+
71
+ // ポインターイベント
72
+ onpointerdown?: PointerHandler;
73
+ onpointerup?: PointerHandler;
74
+ onpointerenter?: PointerHandler;
75
+ onpointerleave?: PointerHandler;
76
+ onpointermove?: PointerHandler;
77
+ onpointercancel?: PointerHandler;
78
+
79
+ // その他
80
+ [key: string]: any;
81
+ };
82
+
21
83
  let {
22
84
  // 基本プロパティ
23
85
  value = $bindable(''),
@@ -78,67 +140,7 @@
78
140
 
79
141
  // その他
80
142
  ...restProps
81
- }: {
82
- // 基本プロパティ
83
- value: string;
84
-
85
- // HTML属性系
86
- id?: string;
87
- inputAttributes?: HTMLInputAttributes | undefined;
88
-
89
- // スタイル/レイアウト
90
- customStyle?: string;
91
- focusStyle?: 'background' | 'outline' | 'none';
92
- fullWidth?: boolean;
93
- rounded?: boolean;
94
-
95
- // 状態/動作
96
- disabled?: boolean;
97
- readonly?: boolean;
98
- clearable?: boolean;
99
- clearButtonAriaLabel?: string;
100
- iconVariant?: IconVariant;
101
-
102
- // 入力イベント
103
- onchange?: BivariantValueHandler<string>;
104
- oninput?: BivariantValueHandler<string>;
105
-
106
- // フォーカスイベント
107
- onfocus?: FocusHandler;
108
- onblur?: FocusHandler;
109
-
110
- // キーボードイベント
111
- onkeydown?: KeyboardHandler;
112
- onkeyup?: KeyboardHandler;
113
-
114
- // マウスイベント
115
- onclick?: MouseHandler;
116
- onmousedown?: MouseHandler;
117
- onmouseup?: MouseHandler;
118
- onmouseenter?: MouseHandler;
119
- onmouseleave?: MouseHandler;
120
- onmouseover?: MouseHandler;
121
- onmouseout?: MouseHandler;
122
- oncontextmenu?: MouseHandler;
123
- onauxclick?: MouseHandler;
124
-
125
- // タッチイベント
126
- ontouchstart?: TouchHandler;
127
- ontouchend?: TouchHandler;
128
- ontouchmove?: TouchHandler;
129
- ontouchcancel?: TouchHandler;
130
-
131
- // ポインターイベント
132
- onpointerdown?: PointerHandler;
133
- onpointerup?: PointerHandler;
134
- onpointerenter?: PointerHandler;
135
- onpointerleave?: PointerHandler;
136
- onpointermove?: PointerHandler;
137
- onpointercancel?: PointerHandler;
138
-
139
- // その他
140
- [key: string]: any;
141
- } = $props();
143
+ }: ColorPickerProps = $props();
142
144
 
143
145
  let localValue: string | undefined = $state(value);
144
146
  let prevValue: string = $state('');
@@ -1,7 +1,7 @@
1
1
  import type { HTMLInputAttributes } from 'svelte/elements';
2
2
  import type { IconVariant } from '../types/icon';
3
3
  import type { FocusHandler, KeyboardHandler, MouseHandler, TouchHandler, PointerHandler, BivariantValueHandler } from '../types/eventHandlers';
4
- type $$ComponentProps = {
4
+ export type ColorPickerProps = {
5
5
  value: string;
6
6
  id?: string;
7
7
  inputAttributes?: HTMLInputAttributes | undefined;
@@ -41,6 +41,6 @@ type $$ComponentProps = {
41
41
  onpointercancel?: PointerHandler;
42
42
  [key: string]: any;
43
43
  };
44
- declare const ColorPicker: import("svelte").Component<$$ComponentProps, {}, "value">;
44
+ declare const ColorPicker: import("svelte").Component<ColorPickerProps, {}, "value">;
45
45
  type ColorPicker = ReturnType<typeof ColorPicker>;
46
46
  export default ColorPicker;