mokkun 0.1.5 → 0.2.0

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 (137) hide show
  1. package/README.md +18 -6
  2. package/bin/cli.mjs +6 -6
  3. package/bin/viewer.html +78 -3
  4. package/dist/example.html +225 -0
  5. package/dist/mokkun.css +1 -1
  6. package/dist/mokkun.esm.js +14476 -9626
  7. package/dist/mokkun.esm.js.map +1 -1
  8. package/dist/mokkun.js +761 -363
  9. package/dist/mokkun.js.map +1 -1
  10. package/dist/types/lib.d.ts +109 -0
  11. package/dist/types/loader/file-loader.d.ts +118 -0
  12. package/dist/types/loader/index.d.ts +4 -0
  13. package/dist/types/parser/index.d.ts +5 -0
  14. package/dist/types/parser/key-normalizer.d.ts +24 -0
  15. package/dist/types/parser/v2/compile-expand.d.ts +23 -0
  16. package/dist/types/parser/v2/compile-field.d.ts +28 -0
  17. package/dist/types/parser/v2/compile-section.d.ts +6 -0
  18. package/dist/types/parser/v2/compile-v2.d.ts +14 -0
  19. package/dist/types/parser/v2/compile-warnings.d.ts +17 -0
  20. package/dist/types/parser/v2/file-spec.d.ts +24 -0
  21. package/dist/types/parser/v2/index.d.ts +5 -0
  22. package/dist/types/parser/v2/iso-date.d.ts +10 -0
  23. package/dist/types/parser/v2/parse-v2.d.ts +24 -0
  24. package/dist/types/parser/v2/validate-action.d.ts +11 -0
  25. package/dist/types/parser/v2/validate-app.d.ts +9 -0
  26. package/dist/types/parser/v2/validate-context.d.ts +41 -0
  27. package/dist/types/parser/v2/validate-field.d.ts +17 -0
  28. package/dist/types/parser/v2/validate-keys.d.ts +29 -0
  29. package/dist/types/parser/v2/validate-list.d.ts +5 -0
  30. package/dist/types/parser/v2/validate-v2.d.ts +6 -0
  31. package/dist/types/parser/v2/validate-view.d.ts +6 -0
  32. package/dist/types/parser/yaml-parser.d.ts +68 -0
  33. package/dist/types/renderer/action-handler.d.ts +76 -0
  34. package/dist/types/renderer/components/accordion-panel.d.ts +144 -0
  35. package/dist/types/renderer/components/action-buttons.d.ts +183 -0
  36. package/dist/types/renderer/components/alert-banner.d.ts +43 -0
  37. package/dist/types/renderer/components/app-header.d.ts +277 -0
  38. package/dist/types/renderer/components/app-navi.d.ts +167 -0
  39. package/dist/types/renderer/components/badge.d.ts +134 -0
  40. package/dist/types/renderer/components/browser.d.ts +134 -0
  41. package/dist/types/renderer/components/calendar.d.ts +198 -0
  42. package/dist/types/renderer/components/checkbox.d.ts +132 -0
  43. package/dist/types/renderer/components/chip.d.ts +120 -0
  44. package/dist/types/renderer/components/combobox.d.ts +217 -0
  45. package/dist/types/renderer/components/data-table.d.ts +186 -0
  46. package/dist/types/renderer/components/date-range-picker.d.ts +203 -0
  47. package/dist/types/renderer/components/definition-list.d.ts +165 -0
  48. package/dist/types/renderer/components/delete-confirm-dialog.d.ts +151 -0
  49. package/dist/types/renderer/components/dialog/action-dialog.d.ts +61 -0
  50. package/dist/types/renderer/components/dialog/base-dialog.d.ts +125 -0
  51. package/dist/types/renderer/components/dialog/dialog-types.d.ts +96 -0
  52. package/dist/types/renderer/components/disclosure.d.ts +118 -0
  53. package/dist/types/renderer/components/dropdown.d.ts +220 -0
  54. package/dist/types/renderer/components/duration-input.d.ts +154 -0
  55. package/dist/types/renderer/components/duration-picker.d.ts +108 -0
  56. package/dist/types/renderer/components/field-renderer.d.ts +22 -0
  57. package/dist/types/renderer/components/float-area.d.ts +196 -0
  58. package/dist/types/renderer/components/form-fields.d.ts +94 -0
  59. package/dist/types/renderer/components/form-section.d.ts +118 -0
  60. package/dist/types/renderer/components/google-map-embed.d.ts +88 -0
  61. package/dist/types/renderer/components/heading.d.ts +119 -0
  62. package/dist/types/renderer/components/image-uploader.d.ts +271 -0
  63. package/dist/types/renderer/components/index.d.ts +48 -0
  64. package/dist/types/renderer/components/information-panel.d.ts +139 -0
  65. package/dist/types/renderer/components/input.d.ts +222 -0
  66. package/dist/types/renderer/components/layout.d.ts +71 -0
  67. package/dist/types/renderer/components/line-clamp.d.ts +170 -0
  68. package/dist/types/renderer/components/loader.d.ts +104 -0
  69. package/dist/types/renderer/components/notification-bar.d.ts +251 -0
  70. package/dist/types/renderer/components/pagination.d.ts +167 -0
  71. package/dist/types/renderer/components/photo-manager-renderer.d.ts +9 -0
  72. package/dist/types/renderer/components/radio-button-panel.d.ts +152 -0
  73. package/dist/types/renderer/components/radio.d.ts +117 -0
  74. package/dist/types/renderer/components/repeater.d.ts +116 -0
  75. package/dist/types/renderer/components/response-message.d.ts +180 -0
  76. package/dist/types/renderer/components/search-input.d.ts +198 -0
  77. package/dist/types/renderer/components/section-nav.d.ts +151 -0
  78. package/dist/types/renderer/components/segmented-control.d.ts +143 -0
  79. package/dist/types/renderer/components/select.d.ts +98 -0
  80. package/dist/types/renderer/components/status-label.d.ts +146 -0
  81. package/dist/types/renderer/components/stepper.d.ts +123 -0
  82. package/dist/types/renderer/components/tabs.d.ts +185 -0
  83. package/dist/types/renderer/components/textarea.d.ts +173 -0
  84. package/dist/types/renderer/components/timeline.d.ts +146 -0
  85. package/dist/types/renderer/components/toggle.d.ts +109 -0
  86. package/dist/types/renderer/components/tooltip.d.ts +158 -0
  87. package/dist/types/renderer/components/wizard.d.ts +118 -0
  88. package/dist/types/renderer/layouts/index.d.ts +5 -0
  89. package/dist/types/renderer/layouts/shell.d.ts +7 -0
  90. package/dist/types/renderer/layouts/types.d.ts +34 -0
  91. package/dist/types/renderer/screen-renderer.d.ts +57 -0
  92. package/dist/types/renderer/utils/dom.d.ts +29 -0
  93. package/dist/types/renderer/utils/dummy-data.d.ts +13 -0
  94. package/dist/types/renderer/utils/field-helpers.d.ts +90 -0
  95. package/dist/types/renderer/utils/icons.d.ts +13 -0
  96. package/dist/types/renderer/utils/index.d.ts +6 -0
  97. package/dist/types/renderer-v2/actions.d.ts +30 -0
  98. package/dist/types/renderer-v2/app-shell.d.ts +15 -0
  99. package/dist/types/renderer-v2/condition.d.ts +19 -0
  100. package/dist/types/renderer-v2/context.d.ts +37 -0
  101. package/dist/types/renderer-v2/fields/choice.d.ts +12 -0
  102. package/dist/types/renderer-v2/fields/control-label.d.ts +57 -0
  103. package/dist/types/renderer-v2/fields/date.d.ts +6 -0
  104. package/dist/types/renderer-v2/fields/display.d.ts +22 -0
  105. package/dist/types/renderer-v2/fields/file-support.d.ts +15 -0
  106. package/dist/types/renderer-v2/fields/file.d.ts +9 -0
  107. package/dist/types/renderer-v2/fields/index.d.ts +20 -0
  108. package/dist/types/renderer-v2/fields/select.d.ts +17 -0
  109. package/dist/types/renderer-v2/fields/text.d.ts +26 -0
  110. package/dist/types/renderer-v2/fields/textarea.d.ts +5 -0
  111. package/dist/types/renderer-v2/fields/toggle.d.ts +6 -0
  112. package/dist/types/renderer-v2/icons.d.ts +35 -0
  113. package/dist/types/renderer-v2/index.d.ts +45 -0
  114. package/dist/types/renderer-v2/list-cells.d.ts +6 -0
  115. package/dist/types/renderer-v2/list-data.d.ts +53 -0
  116. package/dist/types/renderer-v2/mount-parts.d.ts +19 -0
  117. package/dist/types/renderer-v2/mount-repeat.d.ts +8 -0
  118. package/dist/types/renderer-v2/mount-section.d.ts +10 -0
  119. package/dist/types/renderer-v2/mount-visibility.d.ts +13 -0
  120. package/dist/types/renderer-v2/mount.d.ts +9 -0
  121. package/dist/types/renderer-v2/role.d.ts +15 -0
  122. package/dist/types/renderer-v2/section-fields.d.ts +11 -0
  123. package/dist/types/renderer-v2/section-list.d.ts +8 -0
  124. package/dist/types/renderer-v2/section-readonly.d.ts +8 -0
  125. package/dist/types/renderer-v2/section.d.ts +15 -0
  126. package/dist/types/renderer-v2/styles.d.ts +13 -0
  127. package/dist/types/renderer-v2/util.d.ts +28 -0
  128. package/dist/types/renderer-v2/view-state.d.ts +25 -0
  129. package/dist/types/renderer-v2/view.d.ts +8 -0
  130. package/dist/types/theme/index.d.ts +6 -0
  131. package/dist/types/theme/theme-manager.d.ts +102 -0
  132. package/dist/types/types/field-renderable.d.ts +40 -0
  133. package/dist/types/types/index.d.ts +7 -0
  134. package/dist/types/types/schema-v2.d.ts +270 -0
  135. package/dist/types/types/schema.d.ts +1712 -0
  136. package/dist/types/types/theme.d.ts +111 -0
  137. package/package.json +3 -1
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Input Component
3
+ * 汎用テキスト入力コンポーネント
4
+ *
5
+ * Features:
6
+ * - Prefix/Suffix support
7
+ * - Validation display
8
+ * - Size variants (small/medium/large)
9
+ * - Input types (text/email/password/number/tel/url)
10
+ * - Clear button
11
+ * - Error states
12
+ */
13
+ import type { TextField, NumberField, DatePickerField, TimePickerField } from '../../types/schema';
14
+ /**
15
+ * 入力の状態
16
+ */
17
+ export interface InputState {
18
+ /** 現在の値 */
19
+ value: string;
20
+ /** 無効化状態 */
21
+ disabled: boolean;
22
+ /** 読み取り専用状態 */
23
+ readonly: boolean;
24
+ /** エラー状態 */
25
+ error: boolean;
26
+ /** エラーメッセージ */
27
+ errorMessage?: string;
28
+ /** フォーカス状態 */
29
+ focused: boolean;
30
+ }
31
+ /**
32
+ * 入力のコールバック
33
+ */
34
+ export interface InputCallbacks {
35
+ /** 値変更時 */
36
+ onChange?: (value: string, state: InputState) => void;
37
+ /** フォーカス時 */
38
+ onFocus?: (state: InputState) => void;
39
+ /** ブラー時 */
40
+ onBlur?: (state: InputState) => void;
41
+ /** クリアボタン押下時 */
42
+ onClear?: (state: InputState) => void;
43
+ /** Enter キー押下時 */
44
+ onEnter?: (value: string, state: InputState) => void;
45
+ }
46
+ /**
47
+ * 入力の設定
48
+ */
49
+ export interface InputConfig {
50
+ /** 初期値 */
51
+ defaultValue?: string;
52
+ /** プレースホルダー */
53
+ placeholder?: string;
54
+ /** 無効化 */
55
+ disabled?: boolean;
56
+ /** 読み取り専用 */
57
+ readonly?: boolean;
58
+ /** 必須 */
59
+ required?: boolean;
60
+ /** サイズ */
61
+ size?: 'small' | 'medium' | 'large';
62
+ /** 入力タイプ */
63
+ type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
64
+ /** name属性(フォーム用) */
65
+ name?: string;
66
+ /** プレフィックス(アイコンやテキスト) */
67
+ prefix?: string | HTMLElement;
68
+ /** サフィックス(アイコンやテキスト) */
69
+ suffix?: string | HTMLElement;
70
+ /** クリアボタン表示 */
71
+ clearable?: boolean;
72
+ /** 自動フォーカス */
73
+ autoFocus?: boolean;
74
+ /** オートコンプリート */
75
+ autoComplete?: string;
76
+ /** エラーメッセージ(初期値) */
77
+ errorMessage?: string;
78
+ /** aria-label */
79
+ ariaLabel?: string;
80
+ /** aria-describedby */
81
+ ariaDescribedBy?: string;
82
+ }
83
+ /**
84
+ * 入力コンポーネント
85
+ */
86
+ export declare class Input {
87
+ private config;
88
+ private state;
89
+ private callbacks;
90
+ private container;
91
+ private instanceId;
92
+ private inputElement;
93
+ constructor(container: HTMLElement, config?: InputConfig, callbacks?: InputCallbacks);
94
+ /**
95
+ * 入力フィールドをレンダリング
96
+ */
97
+ render(): void;
98
+ /**
99
+ * 値を設定
100
+ */
101
+ setValue(value: string): void;
102
+ /**
103
+ * 値を取得
104
+ */
105
+ getValue(): string;
106
+ /**
107
+ * エラー状態を設定
108
+ */
109
+ setError(error: boolean, errorMessage?: string): void;
110
+ /**
111
+ * 無効化状態を設定
112
+ */
113
+ setDisabled(disabled: boolean): void;
114
+ /**
115
+ * 読み取り専用状態を設定
116
+ */
117
+ setReadonly(readonly: boolean): void;
118
+ /**
119
+ * フォーカス
120
+ */
121
+ focus(): void;
122
+ /**
123
+ * ブラー
124
+ */
125
+ blur(): void;
126
+ /**
127
+ * クリア
128
+ */
129
+ clear(): void;
130
+ /**
131
+ * 状態を取得
132
+ */
133
+ getState(): InputState;
134
+ /**
135
+ * 破棄
136
+ */
137
+ destroy(): void;
138
+ /**
139
+ * 初期状態を作成
140
+ */
141
+ private createInitialState;
142
+ /**
143
+ * data-state属性の値を取得
144
+ */
145
+ private getDataState;
146
+ /**
147
+ * 入力グループをレンダリング
148
+ */
149
+ private renderInputGroup;
150
+ /**
151
+ * 入力フィールドをレンダリング
152
+ */
153
+ private renderInput;
154
+ /**
155
+ * Prefix/Suffixをレンダリング
156
+ */
157
+ private renderAffix;
158
+ /**
159
+ * クリアボタンをレンダリング
160
+ */
161
+ private renderClearButton;
162
+ /**
163
+ * エラーメッセージをレンダリング
164
+ */
165
+ private renderError;
166
+ /**
167
+ * 入力イベント
168
+ */
169
+ private handleInput;
170
+ /**
171
+ * クリアボタンの表示/非表示を更新(フォーカスを失わないように部分更新)
172
+ */
173
+ private updateClearButton;
174
+ /**
175
+ * フォーカスイベント
176
+ */
177
+ private handleFocus;
178
+ /**
179
+ * ブラーイベント
180
+ */
181
+ private handleBlur;
182
+ /**
183
+ * キーダウンイベント
184
+ */
185
+ private handleKeyDown;
186
+ /**
187
+ * クリアイベント
188
+ */
189
+ private handleClear;
190
+ /**
191
+ * 入力フィールドをHTMLとしてレンダリング(静的メソッド)
192
+ * SSR/初期レンダリング用
193
+ *
194
+ * @param field - 入力フィールド定義(text, number, date_picker, time_picker)
195
+ * @returns 生成されたHTML文字列
196
+ */
197
+ static renderField(field: TextField | NumberField | DatePickerField | TimePickerField): string;
198
+ /**
199
+ * テキストフィールドをHTMLとしてレンダリング(静的メソッド)
200
+ * @internal renderFieldから呼び出される内部メソッド
201
+ */
202
+ private static renderTextField;
203
+ /**
204
+ * 数値フィールドをHTMLとしてレンダリング(静的メソッド)
205
+ * @internal renderFieldから呼び出される内部メソッド
206
+ */
207
+ private static renderNumberField;
208
+ /**
209
+ * 日付選択フィールドをHTMLとしてレンダリング(静的メソッド)
210
+ * @internal renderFieldから呼び出される内部メソッド
211
+ */
212
+ private static renderDatePickerField;
213
+ /**
214
+ * 時間選択フィールドをHTMLとしてレンダリング(静的メソッド)
215
+ * @internal renderFieldから呼び出される内部メソッド
216
+ */
217
+ private static renderTimePickerField;
218
+ }
219
+ /**
220
+ * 入力コンポーネントを作成
221
+ */
222
+ export declare function createInput(container: HTMLElement, config?: InputConfig, callbacks?: InputCallbacks): Input;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Layout Component Renderers
3
+ * レイアウト要素(display_fields, actions, filters)のHTML生成
4
+ */
5
+ import type { Action, InputField } from '../../types/schema';
6
+ /**
7
+ * 表示フィールド(読み取り専用の値表示)
8
+ */
9
+ export interface DisplayField {
10
+ id: string;
11
+ label: string;
12
+ value?: string | number | boolean;
13
+ format?: 'text' | 'date' | 'number' | 'currency' | 'html';
14
+ class?: string;
15
+ }
16
+ /**
17
+ * 表示フィールドをレンダリング
18
+ */
19
+ export declare function renderDisplayField(field: DisplayField): string;
20
+ /**
21
+ * 複数の表示フィールドをレンダリング
22
+ */
23
+ export declare function renderDisplayFields(fields: DisplayField[]): string;
24
+ /**
25
+ * 単一アクション(ボタン)をレンダリング
26
+ */
27
+ export declare function renderAction(action: Action): string;
28
+ /**
29
+ * アクション群をレンダリング
30
+ */
31
+ export declare function renderActions(actions: Action[]): string;
32
+ /**
33
+ * フィルター項目(検索・絞り込みUI)
34
+ */
35
+ export interface FilterConfig {
36
+ fields: InputField[];
37
+ submitLabel?: string;
38
+ resetLabel?: string;
39
+ layout?: 'inline' | 'stacked';
40
+ }
41
+ /**
42
+ * フィルターUIをレンダリング
43
+ */
44
+ export declare function renderFilters(config: FilterConfig): string;
45
+ /**
46
+ * セクション(見出し付きコンテンツブロック)
47
+ */
48
+ export interface SectionConfig {
49
+ id?: string;
50
+ title?: string;
51
+ description?: string;
52
+ content: string;
53
+ collapsible?: boolean;
54
+ collapsed?: boolean;
55
+ }
56
+ /**
57
+ * セクションをレンダリング
58
+ */
59
+ export declare function renderSection(config: SectionConfig): string;
60
+ /**
61
+ * グリッドレイアウト設定
62
+ */
63
+ export interface GridConfig {
64
+ columns?: number;
65
+ gap?: string;
66
+ items: string[];
67
+ }
68
+ /**
69
+ * グリッドレイアウトをレンダリング
70
+ */
71
+ export declare function renderGrid(config: GridConfig): string;
@@ -0,0 +1,170 @@
1
+ /**
2
+ * LineClamp Component
3
+ * 行数制限コンポーネント
4
+ *
5
+ * 機能:
6
+ * - 行数指定(1-6行)
7
+ * - 展開ボタン(「もっと見る」/「折りたたむ」)
8
+ * - ツールチップでの全文表示
9
+ * - 省略記号(...)表示
10
+ */
11
+ import type { InputField } from '../../types/schema';
12
+ import { type TooltipPosition } from './tooltip';
13
+ /**
14
+ * 行数制限の値(1-6)
15
+ */
16
+ export type MaxLines = 1 | 2 | 3 | 4 | 5 | 6;
17
+ /**
18
+ * LineClampの状態
19
+ */
20
+ export interface LineClampState {
21
+ /** テキスト内容 */
22
+ text: string;
23
+ /** 最大行数 */
24
+ maxLines: MaxLines;
25
+ /** 展開中かどうか */
26
+ expanded: boolean;
27
+ /** テキストが切り詰められているかどうか */
28
+ clamped: boolean;
29
+ /** 展開ボタンを表示するか */
30
+ showExpandButton: boolean;
31
+ /** ツールチップを表示するか */
32
+ showTooltip: boolean;
33
+ /** ツールチップの位置 */
34
+ tooltipPosition: TooltipPosition;
35
+ }
36
+ /**
37
+ * LineClampのコールバック
38
+ */
39
+ export interface LineClampCallbacks {
40
+ /** 展開時 */
41
+ onExpand?: () => void;
42
+ /** 折りたたみ時 */
43
+ onCollapse?: () => void;
44
+ /** トグル時(展開/折りたたみ) */
45
+ onToggle?: (expanded: boolean) => void;
46
+ }
47
+ /**
48
+ * LineClampの設定
49
+ */
50
+ export interface LineClampConfig {
51
+ /** テキスト内容 */
52
+ text: string;
53
+ /** 最大行数(1-6、デフォルト: 2) */
54
+ maxLines: MaxLines;
55
+ /** HTMLコンテンツとして解釈するか(デフォルト: false) */
56
+ isHtml?: boolean;
57
+ /** 展開ボタンを表示するか(デフォルト: false) */
58
+ showExpandButton?: boolean;
59
+ /** 展開ボタンのラベル(デフォルト: 「もっと見る」) */
60
+ expandButtonLabel?: string;
61
+ /** 折りたたみボタンのラベル(デフォルト: 「折りたたむ」) */
62
+ collapseButtonLabel?: string;
63
+ /** ツールチップで全文を表示するか(デフォルト: true) */
64
+ showTooltip?: boolean;
65
+ /** ツールチップの位置(デフォルト: top) */
66
+ tooltipPosition?: TooltipPosition;
67
+ /** ツールチップの遅延時間(ミリ秒、デフォルト: 300) */
68
+ tooltipDelay?: number;
69
+ }
70
+ /**
71
+ * 行数制限コンポーネント
72
+ */
73
+ export declare class LineClamp {
74
+ private config;
75
+ private state;
76
+ private callbacks;
77
+ private container;
78
+ private element;
79
+ private textElement;
80
+ private buttonContainer;
81
+ private expandButton;
82
+ private collapseButton;
83
+ private instanceId;
84
+ private tooltip;
85
+ private resizeObserver;
86
+ private resizeDebounceTimeout;
87
+ private handleExpand;
88
+ private handleCollapse;
89
+ constructor(config: LineClampConfig, container: HTMLElement, callbacks?: LineClampCallbacks);
90
+ /**
91
+ * テキストを展開
92
+ */
93
+ expand(): void;
94
+ /**
95
+ * テキストを折りたたむ
96
+ */
97
+ collapse(): void;
98
+ /**
99
+ * 展開/折りたたみをトグル
100
+ */
101
+ toggle(): void;
102
+ /**
103
+ * 展開中かどうかを取得
104
+ * @returns {boolean} 展開中の場合true
105
+ */
106
+ isExpanded(): boolean;
107
+ /**
108
+ * テキストを更新
109
+ */
110
+ setText(text: string): void;
111
+ /**
112
+ * 最大行数を更新
113
+ */
114
+ setMaxLines(maxLines: MaxLines): void;
115
+ /**
116
+ * 現在の状態を取得
117
+ * @returns {LineClampState} 現在の状態のコピー
118
+ */
119
+ getState(): LineClampState;
120
+ /**
121
+ * テスト用:切り詰め状態を強制的に設定
122
+ * @internal
123
+ */
124
+ setClampedForTesting(clamped: boolean): void;
125
+ /**
126
+ * コンポーネントを破棄
127
+ */
128
+ destroy(): void;
129
+ /**
130
+ * コンポーネントをレンダリング
131
+ */
132
+ private render;
133
+ /**
134
+ * テキスト内容を更新
135
+ */
136
+ private updateTextContent;
137
+ /**
138
+ * テキストスタイルを更新
139
+ */
140
+ private updateTextStyles;
141
+ /**
142
+ * 切り詰め状態を更新
143
+ */
144
+ private updateClampedState;
145
+ /**
146
+ * テキストが切り詰められているかチェック
147
+ */
148
+ private checkIfClamped;
149
+ /**
150
+ * ボタンのイベントリスナーをクリーンアップ
151
+ */
152
+ private cleanupButtonListeners;
153
+ /**
154
+ * 展開ボタンを更新
155
+ */
156
+ private updateExpandButton;
157
+ /**
158
+ * ツールチップを初期化
159
+ */
160
+ private initializeTooltip;
161
+ /**
162
+ * ResizeObserverをセットアップ
163
+ */
164
+ private setupResizeObserver;
165
+ static renderField(field: InputField): string;
166
+ }
167
+ /**
168
+ * LineClampを作成するファクトリ関数
169
+ */
170
+ export declare function createLineClamp(config: LineClampConfig, container: HTMLElement, callbacks?: LineClampCallbacks): LineClamp;
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Loader Component
3
+ * ローディングインジケーターコンポーネント
4
+ *
5
+ * 機能:
6
+ * - サイズバリエーション (small/medium/large)
7
+ * - カラータイプ (primary/light)
8
+ * - インライン/オーバーレイ表示
9
+ * - プログレスバー対応
10
+ * - アクセシビリティ対応 (role="status", aria-busy, aria-live)
11
+ */
12
+ import type { LoaderConfig, LoaderState, LoaderCallbacks, InputField } from '../../types/schema';
13
+ export type { LoaderConfig, LoaderState, LoaderCallbacks } from '../../types/schema';
14
+ /**
15
+ * Loaderコンポーネント
16
+ * 読み込み中を示すスピナー/プログレス表示
17
+ */
18
+ export declare class Loader {
19
+ private config;
20
+ private state;
21
+ private callbacks;
22
+ private container;
23
+ private instanceId;
24
+ private loaderElement;
25
+ private overlayElement;
26
+ private spinnerElement;
27
+ private textElement;
28
+ private progressBarContainer;
29
+ private progressBarFill;
30
+ constructor(container: HTMLElement | null, config?: LoaderConfig, callbacks?: LoaderCallbacks);
31
+ /**
32
+ * ローダーを表示
33
+ */
34
+ show(): void;
35
+ /**
36
+ * ローダーを非表示
37
+ */
38
+ hide(): void;
39
+ /**
40
+ * プログレス値を更新 (0-100)
41
+ */
42
+ setProgress(value: number): void;
43
+ /**
44
+ * テキストを更新
45
+ */
46
+ setText(text: string): void;
47
+ /**
48
+ * 現在の状態を取得(イミュータブル)
49
+ */
50
+ getState(): Readonly<LoaderState>;
51
+ /**
52
+ * ローダーを破棄
53
+ */
54
+ destroy(): void;
55
+ /**
56
+ * ローダーをレンダリング
57
+ */
58
+ private render;
59
+ /**
60
+ * インライン表示
61
+ */
62
+ private renderInline;
63
+ /**
64
+ * オーバーレイ表示
65
+ */
66
+ private renderOverlay;
67
+ /**
68
+ * ローダー要素を作成
69
+ */
70
+ private createLoaderElement;
71
+ /**
72
+ * スピナー要素を作成
73
+ */
74
+ private createSpinner;
75
+ /**
76
+ * テキスト要素を作成
77
+ */
78
+ private createText;
79
+ /**
80
+ * プログレスバーを作成
81
+ */
82
+ private createProgressBar;
83
+ /**
84
+ * プログレスバーを更新
85
+ */
86
+ private updateProgressBar;
87
+ /**
88
+ * 初期状態を作成
89
+ */
90
+ private createInitialState;
91
+ /**
92
+ * クリーンアップ
93
+ */
94
+ private cleanup;
95
+ /**
96
+ * LoaderフィールドをHTMLとしてレンダリング(静的メソッド)
97
+ * SSR/初期レンダリング用
98
+ */
99
+ static renderField(field: InputField): string;
100
+ }
101
+ /**
102
+ * Loaderを作成
103
+ */
104
+ export declare function createLoader(container: HTMLElement | null, config?: LoaderConfig, callbacks?: LoaderCallbacks): Loader;