@simplysm/sd-claude 14.0.46 → 14.0.48

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 (127) hide show
  1. package/{claude/references/sd-simplysm14/sd-claude/usage.md → README.md} +2 -2
  2. package/claude/rules/sd-claude-rules.md +27 -9
  3. package/claude/rules/sd-options.md +11 -6
  4. package/claude/sd-subagent-start.sh +6 -0
  5. package/claude/settings.json +1 -12
  6. package/claude/skills/sd-check/SKILL.md +18 -9
  7. package/claude/skills/sd-claude-docs/SKILL.md +29 -58
  8. package/claude/skills/sd-claude-docs/references/package-claudemd.md +12 -0
  9. package/claude/skills/sd-claude-docs/references/package-doc-gen.md +22 -12
  10. package/claude/skills/sd-debug/SKILL.md +5 -3
  11. package/claude/skills/sd-deliverable/SKILL.md +0 -1
  12. package/claude/skills/sd-dev/SKILL.md +14 -9
  13. package/claude/skills/sd-doc-extract/SKILL.md +7 -9
  14. package/claude/skills/sd-doc-extract/_common.py +8 -1
  15. package/claude/skills/sd-doc-extract/_extract_docx.py +74 -34
  16. package/claude/skills/sd-doc-extract/_extract_pdf.py +12 -1
  17. package/claude/skills/sd-doc-extract/_extract_pptx.py +103 -23
  18. package/claude/skills/sd-doc-extract/_extract_xlsb.py +93 -4
  19. package/claude/skills/sd-doc-extract/_extract_xlsx.py +98 -36
  20. package/claude/skills/sd-doc-extract/extract.py +22 -3
  21. package/claude/skills/sd-inner-clarify/SKILL.md +78 -0
  22. package/claude/skills/sd-inner-debug/SKILL.md +1 -1
  23. package/claude/skills/sd-inner-review/SKILL.md +13 -0
  24. package/claude/skills/sd-plan/SKILL.md +50 -17
  25. package/claude/skills/sd-prompt/SKILL.md +180 -178
  26. package/claude/skills/sd-prompt/references/eval-runner.md +5 -31
  27. package/claude/skills/sd-prompt/references/sd-eval-env-template.md +23 -0
  28. package/claude/skills/sd-refactor/SKILL.md +2 -2
  29. package/claude/skills/sd-tdd/SKILL.md +46 -10
  30. package/claude/skills/sd-use/SKILL.md +84 -80
  31. package/claude/skills/sd-wbs/SKILL.md +85 -27
  32. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/assets.md +2 -3
  33. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/hooks.md +7 -6
  34. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/scripts.md +1 -9
  35. package/package.json +3 -2
  36. package/scripts/sync.mjs +4 -2
  37. package/claude/references/sd-simplysm14/angular/docs/bootstrap.md +0 -48
  38. package/claude/references/sd-simplysm14/angular/docs/directives.md +0 -236
  39. package/claude/references/sd-simplysm14/angular/docs/features.md +0 -379
  40. package/claude/references/sd-simplysm14/angular/docs/pipes.md +0 -32
  41. package/claude/references/sd-simplysm14/angular/docs/plugins.md +0 -37
  42. package/claude/references/sd-simplysm14/angular/docs/provider-types.md +0 -283
  43. package/claude/references/sd-simplysm14/angular/docs/providers.md +0 -370
  44. package/claude/references/sd-simplysm14/angular/docs/styling.md +0 -222
  45. package/claude/references/sd-simplysm14/angular/docs/type-utilities.md +0 -250
  46. package/claude/references/sd-simplysm14/angular/docs/ui-data.md +0 -275
  47. package/claude/references/sd-simplysm14/angular/docs/ui-form.md +0 -490
  48. package/claude/references/sd-simplysm14/angular/docs/ui-layout.md +0 -140
  49. package/claude/references/sd-simplysm14/angular/docs/ui-navigation.md +0 -241
  50. package/claude/references/sd-simplysm14/angular/docs/ui-overlay.md +0 -157
  51. package/claude/references/sd-simplysm14/angular/docs/ui-visual.md +0 -127
  52. package/claude/references/sd-simplysm14/angular/docs/utils.md +0 -295
  53. package/claude/references/sd-simplysm14/angular/usage.md +0 -489
  54. package/claude/references/sd-simplysm14/capacitor-plugin-auto-update/usage.md +0 -182
  55. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/file-operations.md +0 -154
  56. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/permissions.md +0 -84
  57. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/storage-paths.md +0 -107
  58. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/types.md +0 -83
  59. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/usage.md +0 -133
  60. package/claude/references/sd-simplysm14/capacitor-plugin-intent/usage.md +0 -203
  61. package/claude/references/sd-simplysm14/capacitor-plugin-usb-storage/usage.md +0 -258
  62. package/claude/references/sd-simplysm14/core-browser/usage.md +0 -306
  63. package/claude/references/sd-simplysm14/core-common/docs/errors.md +0 -82
  64. package/claude/references/sd-simplysm14/core-common/docs/extensions.md +0 -167
  65. package/claude/references/sd-simplysm14/core-common/docs/features.md +0 -136
  66. package/claude/references/sd-simplysm14/core-common/docs/types.md +0 -245
  67. package/claude/references/sd-simplysm14/core-common/docs/utils.md +0 -591
  68. package/claude/references/sd-simplysm14/core-common/usage.md +0 -255
  69. package/claude/references/sd-simplysm14/core-node/docs/child-process.md +0 -182
  70. package/claude/references/sd-simplysm14/core-node/docs/features.md +0 -214
  71. package/claude/references/sd-simplysm14/core-node/docs/file-system.md +0 -509
  72. package/claude/references/sd-simplysm14/core-node/docs/file-watching.md +0 -139
  73. package/claude/references/sd-simplysm14/core-node/docs/logging.md +0 -180
  74. package/claude/references/sd-simplysm14/core-node/docs/path.md +0 -176
  75. package/claude/references/sd-simplysm14/core-node/docs/utilities-cpx.md +0 -194
  76. package/claude/references/sd-simplysm14/core-node/docs/utilities-fsx.md +0 -469
  77. package/claude/references/sd-simplysm14/core-node/docs/utilities-pathx.md +0 -151
  78. package/claude/references/sd-simplysm14/core-node/docs/worker-threads.md +0 -334
  79. package/claude/references/sd-simplysm14/core-node/docs/worker.md +0 -205
  80. package/claude/references/sd-simplysm14/core-node/usage.md +0 -259
  81. package/claude/references/sd-simplysm14/excel/docs/core-classes.md +0 -443
  82. package/claude/references/sd-simplysm14/excel/docs/types.md +0 -455
  83. package/claude/references/sd-simplysm14/excel/docs/utilities.md +0 -194
  84. package/claude/references/sd-simplysm14/excel/docs/wrapper.md +0 -73
  85. package/claude/references/sd-simplysm14/excel/usage.md +0 -134
  86. package/claude/references/sd-simplysm14/lint/usage.md +0 -130
  87. package/claude/references/sd-simplysm14/orm-common/docs/core.md +0 -188
  88. package/claude/references/sd-simplysm14/orm-common/docs/expression.md +0 -190
  89. package/claude/references/sd-simplysm14/orm-common/docs/models.md +0 -17
  90. package/claude/references/sd-simplysm14/orm-common/docs/query-builder.md +0 -97
  91. package/claude/references/sd-simplysm14/orm-common/docs/queryable-executable.md +0 -250
  92. package/claude/references/sd-simplysm14/orm-common/docs/schema-builders.md +0 -364
  93. package/claude/references/sd-simplysm14/orm-common/docs/types.md +0 -522
  94. package/claude/references/sd-simplysm14/orm-common/usage.md +0 -229
  95. package/claude/references/sd-simplysm14/orm-node/docs/connections.md +0 -137
  96. package/claude/references/sd-simplysm14/orm-node/docs/core.md +0 -131
  97. package/claude/references/sd-simplysm14/orm-node/docs/types.md +0 -173
  98. package/claude/references/sd-simplysm14/orm-node/usage.md +0 -143
  99. package/claude/references/sd-simplysm14/sd-cli/usage.md +0 -782
  100. package/claude/references/sd-simplysm14/service-client/docs/features.md +0 -217
  101. package/claude/references/sd-simplysm14/service-client/docs/main.md +0 -148
  102. package/claude/references/sd-simplysm14/service-client/docs/protocol.md +0 -53
  103. package/claude/references/sd-simplysm14/service-client/docs/transport.md +0 -131
  104. package/claude/references/sd-simplysm14/service-client/docs/types.md +0 -129
  105. package/claude/references/sd-simplysm14/service-client/usage.md +0 -202
  106. package/claude/references/sd-simplysm14/service-common/docs/app-structure.md +0 -175
  107. package/claude/references/sd-simplysm14/service-common/docs/events.md +0 -64
  108. package/claude/references/sd-simplysm14/service-common/docs/protocol.md +0 -331
  109. package/claude/references/sd-simplysm14/service-common/docs/service-types.md +0 -90
  110. package/claude/references/sd-simplysm14/service-common/docs/types.md +0 -19
  111. package/claude/references/sd-simplysm14/service-common/usage.md +0 -154
  112. package/claude/references/sd-simplysm14/service-server/docs/auth.md +0 -64
  113. package/claude/references/sd-simplysm14/service-server/docs/core.md +0 -174
  114. package/claude/references/sd-simplysm14/service-server/docs/legacy.md +0 -25
  115. package/claude/references/sd-simplysm14/service-server/docs/main.md +0 -88
  116. package/claude/references/sd-simplysm14/service-server/docs/protocol.md +0 -33
  117. package/claude/references/sd-simplysm14/service-server/docs/services.md +0 -94
  118. package/claude/references/sd-simplysm14/service-server/docs/transport-http.md +0 -93
  119. package/claude/references/sd-simplysm14/service-server/docs/transport-socket.md +0 -119
  120. package/claude/references/sd-simplysm14/service-server/docs/types.md +0 -36
  121. package/claude/references/sd-simplysm14/service-server/docs/utils.md +0 -22
  122. package/claude/references/sd-simplysm14/service-server/usage.md +0 -171
  123. package/claude/references/sd-simplysm14/storage/usage.md +0 -301
  124. package/claude/references/sd-simplysm14.md +0 -35
  125. package/claude/rules/sd-clarify.md +0 -23
  126. package/claude/sd-session-start.sh +0 -10
  127. /package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/cli.md +0 -0
@@ -1,241 +0,0 @@
1
- # UI - Navigation
2
-
3
- ## Collapse
4
-
5
- ### `SdCollapse`
6
-
7
- 접기/펼치기 패널 컴포넌트.
8
-
9
- ```typescript
10
- @Component({ selector: "sd-collapse" })
11
- class SdCollapse {
12
- open = input(false, { transform: booleanAttribute });
13
- }
14
- ```
15
-
16
- | Input | Type | Default | Description |
17
- |-------|------|---------|-------------|
18
- | `open` | `boolean` | `false` | 펼침 상태 |
19
-
20
- ### `SdCollapseIcon`
21
-
22
- 접기/펼치기 아이콘 컴포넌트. 화살표 회전 애니메이션.
23
-
24
- ```typescript
25
- @Component({ selector: "sd-collapse-icon" })
26
- class SdCollapseIcon {
27
- open = input(false, { transform: booleanAttribute });
28
- openRotate = input(90, { transform: numberAttribute });
29
- }
30
- ```
31
-
32
- | Input | Type | Default | Description |
33
- |-------|------|---------|-------------|
34
- | `open` | `boolean` | `false` | 펼침 상태 |
35
- | `openRotate` | `number` | `90` | 열림 시 회전 각도 |
36
-
37
- ## Tab
38
-
39
- ### `SdTab`
40
-
41
- 탭 컨테이너 컴포넌트.
42
-
43
- ```typescript
44
- @Component({ selector: "sd-tab" })
45
- class SdTab<T> {
46
- value = model<T>();
47
- }
48
- ```
49
-
50
- ### `SdTabItem`
51
-
52
- 탭 항목 컴포넌트.
53
-
54
- ```typescript
55
- @Component({ selector: "sd-tab-item" })
56
- class SdTabItem<T> {
57
- value = input.required<T>();
58
- }
59
- ```
60
-
61
- ## Pagination
62
-
63
- ### `SdPagination`
64
-
65
- 페이지네이션 컴포넌트.
66
-
67
- ```typescript
68
- @Component({ selector: "sd-pagination" })
69
- class SdPagination {
70
- currentPage = model(0);
71
- totalPageCount = input(0, { transform: numberAttribute });
72
- visiblePageCount = input(10, { transform: numberAttribute });
73
- }
74
- ```
75
-
76
- | Input | Type | Default | Description |
77
- |-------|------|---------|-------------|
78
- | `currentPage` | `number` | `0` | 현재 페이지 (0-based, two-way) |
79
- | `totalPageCount` | `number` | `0` | 총 페이지 수 |
80
- | `visiblePageCount` | `number` | `10` | 한 번에 표시할 페이지 수 |
81
-
82
- ## Sidebar
83
-
84
- ### `SdSidebarContainer`
85
-
86
- 사이드바 컨테이너.
87
-
88
- ```typescript
89
- @Component({ selector: "sd-sidebar-container" })
90
- class SdSidebarContainer { }
91
- ```
92
-
93
- ### `SdSidebar`
94
-
95
- 사이드바 컴포넌트.
96
-
97
- ```typescript
98
- @Component({ selector: "sd-sidebar" })
99
- class SdSidebar { }
100
- ```
101
-
102
- ### `SdSidebarMenu`
103
-
104
- 사이드바 메뉴 항목. 재귀적 트리 구조 지원.
105
-
106
- ```typescript
107
- @Component({ selector: "sd-sidebar-menu" })
108
- class SdSidebarMenu {
109
- menus = input<SdMenu[]>([]);
110
- layout = input<"accordion" | "flat">();
111
- getMenuIsSelectedFn = input<(menu: SdMenu) => boolean>();
112
- }
113
- ```
114
-
115
- | Input | Type | Default | Description |
116
- |-------|------|---------|-------------|
117
- | `menus` | `SdMenu[]` | `[]` | 메뉴 항목 |
118
- | `layout` | `"accordion" \| "flat" \| undefined` | `undefined` | 레이아웃 모드 |
119
- | `getMenuIsSelectedFn` | `((menu) => boolean) \| undefined` | `undefined` | 커스텀 메뉴 선택 여부 함수 |
120
-
121
- ### `SdSidebarUser`
122
-
123
- 사이드바 사용자 영역 컴포넌트.
124
-
125
- ```typescript
126
- @Component({ selector: "sd-sidebar-user" })
127
- class SdSidebarUser {
128
- userMenu = input<SdSidebarUserMenu>();
129
- }
130
- ```
131
-
132
- ### `SdSidebarUserMenu`
133
-
134
- ```typescript
135
- interface SdSidebarUserMenu {
136
- title: string;
137
- menus: {
138
- title: string;
139
- onClick: () => void;
140
- }[];
141
- }
142
- ```
143
-
144
- | Field | Type | Description |
145
- |-------|------|-------------|
146
- | `title` | `string` | 사용자 메뉴 제목 |
147
- | `menus` | `{ title: string; onClick: () => void }[]` | 하위 메뉴 항목 배열 |
148
-
149
- ## Topbar
150
-
151
- ### `SdTopbarContainer`
152
-
153
- 탑바 컨테이너.
154
-
155
- ```typescript
156
- @Component({ selector: "sd-topbar-container" })
157
- class SdTopbarContainer { }
158
- ```
159
-
160
- ### `SdTopbar`
161
-
162
- 탑바 컴포넌트.
163
-
164
- ```typescript
165
- @Component({ selector: "sd-topbar" })
166
- class SdTopbar { }
167
- ```
168
-
169
- ### `SdTopbarMenu`
170
-
171
- 탑바 메뉴 항목.
172
-
173
- ```typescript
174
- @Component({ selector: "sd-topbar-menu" })
175
- class SdTopbarMenu {
176
- menus = input<SdMenu[]>([]);
177
- getMenuIsSelectedFn = input<(menu: SdMenu) => boolean>();
178
- }
179
- ```
180
-
181
- | Input | Type | Default | Description |
182
- |-------|------|---------|-------------|
183
- | `menus` | `SdMenu[]` | `[]` | 메뉴 항목 |
184
- | `getMenuIsSelectedFn` | `((menu) => boolean) \| undefined` | `undefined` | 커스텀 메뉴 선택 여부 함수 |
185
-
186
- ### `SdTopbarUser`
187
-
188
- 탑바 사용자 영역 컴포넌트.
189
-
190
- ```typescript
191
- @Component({ selector: "sd-topbar-user" })
192
- class SdTopbarUser {
193
- menus = input.required<SdTopbarUserMenu[]>();
194
- }
195
- ```
196
-
197
- ### `SdTopbarUserMenu`
198
-
199
- ```typescript
200
- interface SdTopbarUserMenu {
201
- title: string;
202
- onClick: () => void;
203
- }
204
- ```
205
-
206
- | Field | Type | Description |
207
- |-------|------|-------------|
208
- | `title` | `string` | 메뉴 제목 |
209
- | `onClick` | `() => void` | 클릭 핸들러 |
210
-
211
- ## Menu Utilities
212
-
213
- ### `getMenuRouterLinkOption`
214
-
215
- 메뉴에서 라우터 링크 옵션을 추출한다. children이 있거나 url이 있는 메뉴는 undefined 반환.
216
-
217
- ```typescript
218
- function getMenuRouterLinkOption(
219
- menu: SdMenu,
220
- ): { link: string; queryParams: Record<string, string> | undefined } | undefined
221
- ```
222
-
223
- 반환값: `{ link: "/home/{codeChain}", queryParams }` 또는 `undefined`
224
-
225
- ### `getIsMenuSelected`
226
-
227
- 메뉴가 현재 선택된 상태인지 확인한다.
228
-
229
- ```typescript
230
- function getIsMenuSelected(
231
- menu: SdMenu,
232
- fullPageCode: string | undefined,
233
- customFn?: (menu: SdMenu) => boolean,
234
- ): boolean
235
- ```
236
-
237
- | Parameter | Type | Description |
238
- |-----------|------|-------------|
239
- | `menu` | `SdMenu` | 메뉴 항목 |
240
- | `fullPageCode` | `string \| undefined` | 현재 페이지 코드 |
241
- | `customFn` | `((menu) => boolean) \| undefined` | 커스텀 비교 함수 |
@@ -1,157 +0,0 @@
1
- # UI - Overlay
2
-
3
- ## Dropdown
4
-
5
- ### `SdDropdown`
6
-
7
- 드롭다운 트리거 컴포넌트. `SdDropdownPopup`과 함께 사용한다.
8
-
9
- ```typescript
10
- @Component({ selector: "sd-dropdown" })
11
- class SdDropdown {
12
- open = model(false);
13
- disabled = input(false, { transform: booleanAttribute });
14
- }
15
- ```
16
-
17
- | Input | Type | Default | Description |
18
- |-------|------|---------|-------------|
19
- | `open` | `boolean` | `false` | 드롭다운 열림 상태 (two-way) |
20
- | `disabled` | `boolean` | `false` | 비활성화 |
21
-
22
- ### `SdDropdownPopup`
23
-
24
- 드롭다운 팝업 컨텐츠 컴포넌트.
25
-
26
- ```typescript
27
- @Component({ selector: "sd-dropdown-popup" })
28
- class SdDropdownPopup { }
29
- ```
30
-
31
- ## Modal
32
-
33
- ### `SdModal`
34
-
35
- 모달 래퍼 컴포넌트. 보통 `SdModalProvider.showAsync()`로 생성되며 직접 사용하지 않는다.
36
-
37
- ```typescript
38
- @Component({ selector: "sd-modal" })
39
- class SdModal {
40
- open = model(false);
41
- key = input<string | undefined>(undefined);
42
- title = input("");
43
- hideHeader = input(false);
44
- hideCloseButton = input(false);
45
- headerStyle = input<string | undefined>(undefined);
46
- useCloseByBackdrop = input(true);
47
- useCloseByEscapeKey = input(true);
48
- float = input(false);
49
- fill = input(false);
50
- resizable = input(false);
51
- movable = input(false);
52
- position = input<"bottom-right" | "top-right" | undefined>(undefined);
53
- minHeightPx = input<number | undefined>(undefined);
54
- minWidthPx = input<number | undefined>(undefined);
55
- heightPx = input<number | undefined>(undefined);
56
- widthPx = input<number | undefined>(undefined);
57
- actionTplRef = input<TemplateRef<any> | undefined>(undefined);
58
-
59
- closeRequest = output<void>();
60
- }
61
- ```
62
-
63
- | Input | Type | Default | Description |
64
- |-------|------|---------|-------------|
65
- | `open` | `boolean` | `false` | 열림 상태 (two-way) |
66
- | `title` | `string` | `""` | 모달 제목 |
67
- | `hideHeader` | `boolean` | `false` | 헤더 숨김 |
68
- | `hideCloseButton` | `boolean` | `false` | 닫기 버튼 숨김 |
69
- | `useCloseByBackdrop` | `boolean` | `true` | 배경 클릭으로 닫기 |
70
- | `useCloseByEscapeKey` | `boolean` | `true` | ESC 키로 닫기 |
71
- | `float` | `boolean` | `false` | 플로팅 모달 |
72
- | `fill` | `boolean` | `false` | 전체 화면 채우기 |
73
- | `resizable` | `boolean` | `false` | 크기 조절 가능 |
74
- | `movable` | `boolean` | `false` | 이동 가능 |
75
- | `position` | `"bottom-right" \| "top-right"` | - | 위치 프리셋 |
76
- | `actionTplRef` | `TemplateRef<any> \| undefined` | `undefined` | 헤더 액션 영역 템플릿 (SdModalProvider에서 설정) |
77
-
78
- | Output | Type | Description |
79
- |--------|------|-------------|
80
- | `closeRequest` | `void` | 배경 클릭, ESC 키, 닫기 버튼으로 닫기 요청 시 발생 |
81
-
82
- ### `SdPromptModal`
83
-
84
- 프롬프트 입력 모달. 텍스트 입력을 받아 반환한다.
85
-
86
- ```typescript
87
- @Component({ selector: "sd-prompt-modal" })
88
- class SdPromptModal implements SdModalContentDef<string> {
89
- message = input.required<string>();
90
- close = output<string>();
91
- initialized = signal(true);
92
- }
93
- ```
94
-
95
- ### `SdConfirmModal`
96
-
97
- 확인/취소 모달.
98
-
99
- ```typescript
100
- @Component({ selector: "sd-confirm-modal" })
101
- class SdConfirmModal implements SdModalContentDef<boolean> {
102
- message = input.required<string>();
103
- close = output<boolean>();
104
- initialized = signal(true);
105
- }
106
- ```
107
-
108
- ## Toast
109
-
110
- ### `SdToast`
111
-
112
- 토스트 개별 항목 컴포넌트. `SdToastProvider`에서 내부적으로 생성한다.
113
-
114
- ```typescript
115
- @Component({ selector: "sd-toast" })
116
- class SdToast {
117
- open = model(false);
118
- useProgress = input(false, { transform: booleanAttribute });
119
- theme = input<SdToastTheme>("info");
120
- progress = model(0);
121
- message = model<string | undefined>(undefined);
122
- }
123
- ```
124
-
125
- ### `SdToastContainer`
126
-
127
- 토스트 컨테이너 컴포넌트. `SdToastProvider`에서 내부적으로 생성하여 body에 부착한다.
128
-
129
- ```typescript
130
- @Component({ selector: "sd-toast-container" })
131
- class SdToastContainer {
132
- overlap = input(false, { transform: booleanAttribute });
133
- }
134
- ```
135
-
136
- ## Busy
137
-
138
- ### `SdBusyContainer`
139
-
140
- busy 표시 컨테이너 컴포넌트. spinner/bar/cube 3가지 타입을 지원한다.
141
-
142
- ```typescript
143
- @Component({ selector: "sd-busy-container" })
144
- class SdBusyContainer {
145
- busy = input(false, { transform: booleanAttribute });
146
- message = input<string | undefined>(undefined);
147
- type = input<SdBusyType | undefined>(undefined);
148
- progressPercent = input<number | undefined>(undefined);
149
- }
150
- ```
151
-
152
- | Input | Type | Default | Description |
153
- |-------|------|---------|-------------|
154
- | `busy` | `boolean` | `false` | busy 상태 |
155
- | `message` | `string \| undefined` | `undefined` | busy 메시지 |
156
- | `type` | `SdBusyType \| undefined` | `undefined` | 표시 유형 (spinner, bar, cube). undefined이면 부모의 SdBusyProvider.type 사용 |
157
- | `progressPercent` | `number \| undefined` | `undefined` | 진행률 (0-100). 설정 시 progress bar로 표시 |
@@ -1,127 +0,0 @@
1
- # UI - Visual
2
-
3
- ## `SdLabel`
4
-
5
- 라벨 컴포넌트. 테마 색상과 클릭 가능 여부를 지원한다.
6
-
7
- ```typescript
8
- @Component({ selector: "sd-label" })
9
- class SdLabel {
10
- theme = input<"primary" | "secondary" | "info" | "success" | "warning" | "danger" | "gray" | "blue-gray">();
11
- color = input<string>();
12
- clickable = input(false, { transform: booleanAttribute });
13
- }
14
- ```
15
-
16
- | Input | Type | Default | Description |
17
- |-------|------|---------|-------------|
18
- | `theme` | `string \| undefined` | `undefined` | 테마 색상 |
19
- | `color` | `string \| undefined` | `undefined` | 커스텀 CSS 색상 |
20
- | `clickable` | `boolean` | `false` | 클릭 가능 여부 |
21
-
22
- 호스트 속성: `data-sd-theme`
23
-
24
- ## `SdNote`
25
-
26
- 노트/알림 메시지 컴포넌트.
27
-
28
- ```typescript
29
- @Component({ selector: "sd-note" })
30
- class SdNote {
31
- theme = input<"primary" | "secondary" | "info" | "success" | "warning" | "danger" | "gray" | "blue-gray">();
32
- size = input<"sm" | "lg">();
33
- inset = input(false, { transform: booleanAttribute });
34
- }
35
- ```
36
-
37
- | Input | Type | Default | Description |
38
- |-------|------|---------|-------------|
39
- | `theme` | `string \| undefined` | `undefined` | 테마 색상 |
40
- | `size` | `"sm" \| "lg" \| undefined` | `undefined` | 크기 |
41
- | `inset` | `boolean` | `false` | 삽입 스타일 (테두리 없음) |
42
-
43
- 호스트 속성: `data-sd-theme`
44
-
45
- ## `SdProgress`
46
-
47
- 진행률 바 컴포넌트.
48
-
49
- ```typescript
50
- @Component({ selector: "sd-progress" })
51
- class SdProgress {
52
- inset = input(false, { transform: booleanAttribute });
53
- size = input<"sm" | "lg">();
54
- theme = input.required<"primary" | "secondary" | "info" | "success" | "warning" | "danger" | "gray" | "blue-gray">();
55
- value = input.required<number>();
56
- }
57
- ```
58
-
59
- | Input | Type | Default | Description |
60
- |-------|------|---------|-------------|
61
- | `inset` | `boolean` | `false` | 삽입 스타일 |
62
- | `size` | `"sm" \| "lg" \| undefined` | `undefined` | 크기 |
63
- | `theme` | `string` | required | 테마 색상 |
64
- | `value` | `number` | required | 진행률 (0-100) |
65
-
66
- ## `SdCalendar`
67
-
68
- 캘린더 컴포넌트. 항목을 날짜별로 배치한다.
69
-
70
- ```typescript
71
- @Component({ selector: "sd-calendar" })
72
- class SdCalendar<T> {
73
- items = input.required<T[]>();
74
- getItemDateFn = input.required<(item: T, index: number) => DateOnly>();
75
- yearMonth = input(new DateOnly().setDay(1));
76
- weekStartDay = input(0);
77
- minDaysInFirstWeek = input(1);
78
- }
79
- ```
80
-
81
- | Input | Type | Default | Description |
82
- |-------|------|---------|-------------|
83
- | `items` | `T[]` | required | 표시할 항목 |
84
- | `getItemDateFn` | `(item, index) => DateOnly` | required | 항목에서 날짜 추출 함수 |
85
- | `yearMonth` | `DateOnly` | 이번 달 1일 | 표시할 연월 |
86
- | `weekStartDay` | `number` | `0` | 주 시작 요일 (0=일요일) |
87
- | `minDaysInFirstWeek` | `number` | `1` | 첫째 주 최소 일수 |
88
-
89
- ## `SdBarcode`
90
-
91
- 바코드 생성 컴포넌트. bwip-js 라이브러리를 사용한다.
92
-
93
- ```typescript
94
- @Component({ selector: "sd-barcode" })
95
- class SdBarcode {
96
- type = input.required<BarcodeType>();
97
- value = input<string>();
98
- }
99
- ```
100
-
101
- | Input | Type | Default | Description |
102
- |-------|------|---------|-------------|
103
- | `type` | `BarcodeType` | required | 바코드 타입 |
104
- | `value` | `string \| undefined` | `undefined` | 바코드 값. 빈 문자열이거나 undefined이면 빈 출력 |
105
-
106
- ### `BarcodeType`
107
-
108
- bwip-js에서 지원하는 바코드 타입 문자열. 예: `"qrcode"`, `"code128"`, `"ean13"` 등.
109
-
110
- ## `SdEcharts`
111
-
112
- ECharts 차트 래퍼 컴포넌트.
113
-
114
- ```typescript
115
- @Component({ selector: "sd-echarts" })
116
- class SdEcharts {
117
- option = input.required<echarts.EChartsOption>();
118
- notMerge = input(false);
119
- loading = input(false);
120
- }
121
- ```
122
-
123
- | Input | Type | Default | Description |
124
- |-------|------|---------|-------------|
125
- | `option` | `echarts.EChartsOption` | required | ECharts 옵션 |
126
- | `notMerge` | `boolean` | `false` | 옵션 업데이트 시 병합하지 않고 교체 |
127
- | `loading` | `boolean` | `false` | 로딩 표시 |