@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,222 +0,0 @@
1
- # Styling
2
-
3
- `dist/styles.css`로 컴파일되며, `package.json`의 `style` 필드에서 참조된다. CSS Layers: `@layer base, theme-variant, utilities`.
4
-
5
- ## CSS Classes
6
-
7
- ### Flexbox
8
-
9
- | Class | Description |
10
- |-------|-------------|
11
- | `.flex-row` | `display: flex; flex-direction: row; flex-wrap: nowrap` |
12
- | `.flex-column` | `display: flex; flex-direction: column; flex-wrap: nowrap` |
13
- | `.flex-row-inline` | `display: inline-flex; flex-direction: row` |
14
- | `.flex-column-inline` | `display: inline-flex; flex-direction: column` |
15
- | `.flex-fill` | `flex: 1 1 auto; overflow: auto` (가용 공간 채우기) |
16
- | `.flex-auto` | `flex: 1 0 auto` (컨텐츠 크기 유지하며 확장) |
17
- | `.flex-min` | `flex: 0 0 0` (최소 크기) |
18
-
19
- ### Grid
20
-
21
- | Class | Description |
22
- |-------|-------------|
23
- | `.grid` | `display: grid` |
24
- | `.grid-{1..12}` | `grid-template-columns: repeat(N, 1fr)` |
25
- | `.grid-sm-{1..12}` | `@media (max-width: 1280px)` 반응형 |
26
- | `.grid-xs-{1..12}` | `@media (max-width: 1024px)` 반응형 |
27
- | `.grid-xxs-{1..12}` | `@media (max-width: 800px)` 반응형 |
28
-
29
- ### Layout
30
-
31
- | Class | Description |
32
- |-------|-------------|
33
- | `.card` | 카드 스타일 (배경, 테두리, 라운드, 엘리베이션) |
34
- | `.fill` | `height: 100%; width: 100%; overflow: auto` |
35
- | `.sticky-top` | `position: sticky; top: 0; z-index: 1` |
36
- | `.overflow-auto` | `overflow: auto` |
37
- | `.position-relative` | `position: relative` |
38
- | `.nowrap` | `white-space: nowrap` |
39
-
40
- ### Form Layout
41
-
42
- | Class | Description |
43
- |-------|-------------|
44
- | `.form-box` | 폼 박스 레이아웃 |
45
- | `.form-box-inline` | 인라인 폼 박스 |
46
- | `.form-table` | 테이블 형태 폼 |
47
- | `.form-control` | 기본 폼 컨트롤 스타일 (padding, border, font) |
48
- | `.table` | 테이블 스타일 |
49
- | `.table-inset` | 테두리 없는 테이블 |
50
- | `.table-inline` | 인라인 테이블 |
51
- | `.table-bd-v` | 수직 테두리만 있는 테이블 |
52
- | `.table-bd-h` | 수평 테두리만 있는 테이블 |
53
-
54
- ### Spacing
55
-
56
- 키: `xxs`, `xs`, `sm`, `default`, `lg`, `xl`, `xxl`, `0`, `auto`
57
-
58
- | Pattern | Description |
59
- |---------|-------------|
60
- | `.p-{key}` | 전체 padding |
61
- | `.pv-{key}`, `.ph-{key}` | 수직/수평 padding |
62
- | `.pt-{key}`, `.pr-{key}`, `.pb-{key}`, `.pl-{key}` | 방향별 padding |
63
- | `.m-{key}` | 전체 margin |
64
- | `.mv-{key}`, `.mh-{key}` | 수직/수평 margin |
65
- | `.mt-{key}`, `.mr-{key}`, `.mb-{key}`, `.ml-{key}` | 방향별 margin |
66
- | `.gap-{key}` | flex/grid gap |
67
- | `.sw-{key}` | width 설정 |
68
- | `.sh-{key}` | height 설정 |
69
- | `.p-{key1}-{key2}` | `padding: {key1} {key2}` 조합 |
70
-
71
- ### Font Size
72
-
73
- | Class | Description |
74
- |-------|-------------|
75
- | `.ft-size-{key}` | 폰트 크기 (h1~h6, sm, default, lg 등) |
76
-
77
- ### Text
78
-
79
- | Class | Description |
80
- |-------|-------------|
81
- | `.tx-left`, `.tx-right`, `.tx-center` | 텍스트 정렬 |
82
- | `.tx-line-through` | 취소선 |
83
- | `.tx-underline` | 밑줄 |
84
- | `.tx-trans-{key}` | 텍스트 투명도 색상 |
85
- | `.tx-theme-{group}-{shade}` | 테마 텍스트 색상 |
86
-
87
- ### Background
88
-
89
- | Class | Description |
90
- |-------|-------------|
91
- | `.bg-theme-{group}-{shade}` | 테마 배경 색상 |
92
- | `.bg-trans-{key}` | 투명도 배경 |
93
- | `.bg-default` | 기본 배경 |
94
- | `.bg-control` | 컨트롤 배경 |
95
-
96
- ### Border
97
-
98
- | Class | Description |
99
- |-------|-------------|
100
- | `.bd` | 전체 테두리 |
101
- | `.bdt`, `.bdr`, `.bdb`, `.bdl` | 방향별 테두리 |
102
- | `.bd-theme-{group}-{shade}` | 테마 테두리 색상 |
103
- | `.bd-trans-{key}` | 투명도 테두리 |
104
- | `.bd-none`, `.bd-transparent` | 테두리 없음/투명 |
105
- | `.bd-radius-{key}` | 테두리 라운드 |
106
- | `.bd-width-{key}` | 테두리 두께 |
107
-
108
- ### Alignment
109
-
110
- | Class | Description |
111
- |-------|-------------|
112
- | `.main-align-start`, `.main-align-end`, `.main-align-center` | justify-content |
113
- | `.cross-align-start`, `.cross-align-end`, `.cross-align-center` | align-items |
114
-
115
- ### Special
116
-
117
- | Class | Description |
118
- |-------|-------------|
119
- | `.sh-topbar` | 탑바 높이 |
120
- | `.sw-sidebar` | 사이드바 너비 |
121
- | `.help` | 도움말 스타일 (점선 밑줄, 도움말 커서) |
122
- | `.control-header` | 컨트롤 헤더 텍스트 |
123
- | `.page-header` | 페이지 헤더 텍스트 |
124
-
125
- ## CSS Custom Properties
126
-
127
- ### Theme Colors
128
-
129
- OKLCH 기반 색상 팔레트. 각 그룹에 7단계 shade가 있다.
130
-
131
- 테마 그룹: `gray`, `blue-gray`, `primary`, `secondary`, `info`, `success`, `warning`, `danger`
132
-
133
- | Property | Description |
134
- |----------|-------------|
135
- | `--theme-{group}-lightest` | 가장 밝은 색조 |
136
- | `--theme-{group}-lighter` | 더 밝은 색조 |
137
- | `--theme-{group}-light` | 밝은 색조 |
138
- | `--theme-{group}-default` | 기본 색조 |
139
- | `--theme-{group}-dark` | 어두운 색조 |
140
- | `--theme-{group}-darker` | 더 어두운 색조 |
141
- | `--theme-{group}-darkest` | 가장 어두운 색조 |
142
-
143
- ### Layout
144
-
145
- | Property | Description |
146
- |----------|-------------|
147
- | `--background-color` | body 배경 색상 |
148
- | `--control-color` | 컨트롤 배경 색상 |
149
- | `--font-family` | 기본 폰트 패밀리 |
150
- | `--font-family-monospace` | 고정폭 폰트 패밀리 |
151
- | `--font-size-default` | 기본 폰트 크기 |
152
- | `--line-height` | 기본 줄 높이 |
153
- | `--border-radius-default` | 기본 테두리 라운드 |
154
- | `--topbar-height` | 탑바 높이 |
155
- | `--sidebar-width` | 사이드바 너비 |
156
- | `--elevation-size` | 그림자 기본 크기 |
157
- | `--animation-duration` | 애니메이션 지속 시간 |
158
-
159
- ### Gap (Spacing)
160
-
161
- | Property | Description |
162
- |----------|-------------|
163
- | `--gap-xxs` | 가장 작은 간격 |
164
- | `--gap-xs` | 매우 작은 간격 |
165
- | `--gap-sm` | 작은 간격 |
166
- | `--gap-default` | 기본 간격 |
167
- | `--gap-lg` | 큰 간격 |
168
- | `--gap-xl` | 매우 큰 간격 |
169
- | `--gap-xxl` | 가장 큰 간격 |
170
-
171
- ### Transparency
172
-
173
- | Property | Description |
174
- |----------|-------------|
175
- | `--trans-lightest` | 가장 투명한 반투명 |
176
- | `--trans-lighter` | 더 투명한 반투명 |
177
- | `--trans-light` | 투명한 반투명 |
178
- | `--trans-default` | 기본 반투명 |
179
- | `--trans-dark` | 불투명한 반투명 |
180
- | `--trans-darker` | 더 불투명한 반투명 |
181
- | `--trans-darkest` | 가장 불투명한 반투명 |
182
-
183
- ### Text Transparency
184
-
185
- | Property | Description |
186
- |----------|-------------|
187
- | `--text-trans-default` | 기본 텍스트 색상 |
188
- | `--text-trans-light` | 밝은 텍스트 색상 |
189
- | `--text-trans-lighter` | 더 밝은 텍스트 색상 |
190
- | `--text-trans-dark` | 어두운 텍스트 색상 |
191
-
192
- ## Themes
193
-
194
- ### `.sd-theme-dark`
195
-
196
- 다크 모드 테마. `SdThemeProvider.dark` signal로 body에 토글된다. `themes/_variables-dark.scss`에서 색상 팔레트를 반전한다.
197
-
198
- - 배경: 어두운 색상으로 전환
199
- - 텍스트: 밝은 색상으로 전환
200
- - `img:not(.no-invert)`: 이미지 자동 반전
201
-
202
- ### Responsive Breakpoints
203
-
204
- SCSS 변수로 정의되어 media query에서 사용된다:
205
-
206
- | Variable | Value | Description |
207
- |----------|-------|-------------|
208
- | `$breakpoint-mobile` | `520px` | 모바일 |
209
- | `$breakpoint-xxs` | `800px` | 매우 작은 화면 |
210
- | `$breakpoint-xs` | `1024px` | 작은 화면 |
211
- | `$breakpoint-sm` | `1280px` | 중간 화면 |
212
-
213
- ## Mixins / Functions
214
-
215
- | Name | Signature | Description |
216
- |------|-----------|-------------|
217
- | `writeVars` | `@mixin writeVars($value, $prevKey)` | 맵을 재귀 순회하여 CSS custom properties 생성 |
218
- | `elevation` | `@mixin elevation($value)` | box-shadow 기반 엘리베이션 효과. 양수=외부, 음수=내부, 0/none=없음 |
219
- | `form-control-base` | `@mixin form-control-base()` | 폼 컨트롤 기본 스타일 (display, padding, border, font) |
220
- | `help` | `@mixin help()` | 도움말 스타일 (점선 밑줄, 커서) |
221
- | `border-direction-variants` | `@mixin border-direction-variants($dir, $d)` | 방향별 테두리 유틸리티 클래스 생성 |
222
- | `flex-direction` | `@mixin flex-direction($direction, $defaultGap?)` | flex-direction 설정 + Chrome 61 gap 폴백 |
@@ -1,250 +0,0 @@
1
- # Type Utilities
2
-
3
- ## `DirectiveInputSignals`
4
-
5
- 컴포넌트/디렉티브의 InputSignal 프로퍼티에서 값 타입을 추출하는 유틸리티 타입. InputSignal이 아닌 프로퍼티는 제외되며, undefined를 포함하는 필드는 optional로 변환된다.
6
-
7
- ```typescript
8
- type DirectiveInputSignals<T> = UndefToOptional<{
9
- [P in keyof T as T[P] extends InputSignal<any> ? P : never]: T[P] extends InputSignal<infer V> ? V : never;
10
- }>
11
- ```
12
-
13
- 예시:
14
- ```typescript
15
- class MyComponent {
16
- name = input.required<string>();
17
- age = input(0);
18
- }
19
- // DirectiveInputSignals<MyComponent> = { name: string; age: number }
20
- ```
21
-
22
- ## `UndefToOptional`
23
-
24
- undefined를 포함하는 프로퍼티를 optional로 변환하는 유틸리티 타입.
25
-
26
- ```typescript
27
- type UndefToOptional<T> = {
28
- [K in keyof T as undefined extends T[K] ? never : K]: T[K];
29
- } & {
30
- [K in keyof T as undefined extends T[K] ? K : never]?: Exclude<T[K], undefined>;
31
- }
32
- ```
33
-
34
- 예시: `{ name: string; age: number | undefined }` -> `{ name: string; age?: number }`
35
-
36
- ## `WithOptional`
37
-
38
- 특정 키를 optional로 변환하는 유틸리티 타입.
39
-
40
- ```typescript
41
- type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
42
- ```
43
-
44
- ## `SdViewType`
45
-
46
- 뷰 타입.
47
-
48
- ```typescript
49
- type SdViewType = "page" | "modal" | "control"
50
- ```
51
-
52
- ## `SortingDef`
53
-
54
- 정렬 정의.
55
-
56
- ```typescript
57
- interface SortingDef {
58
- key: string;
59
- desc: boolean;
60
- }
61
- ```
62
-
63
- | Field | Type | Description |
64
- |-------|------|-------------|
65
- | `key` | `string` | 정렬 키 |
66
- | `desc` | `boolean` | 내림차순 여부 |
67
-
68
- ## `ExpandItemDef`
69
-
70
- 트리 확장 항목 정의.
71
-
72
- ```typescript
73
- interface ExpandItemDef<T> {
74
- item: T;
75
- parentDef: ExpandItemDef<T> | undefined;
76
- hasChildren: boolean;
77
- depth: number;
78
- }
79
- ```
80
-
81
- | Field | Type | Description |
82
- |-------|------|-------------|
83
- | `item` | `T` | 항목 |
84
- | `parentDef` | `ExpandItemDef<T> \| undefined` | 부모 정의 |
85
- | `hasChildren` | `boolean` | 자식 존재 여부 |
86
- | `depth` | `number` | 깊이 |
87
-
88
- ## `SdSelectModal`
89
-
90
- 모달 선택 컴포넌트가 구현해야 하는 인터페이스. `SdModalContentDef`를 확장.
91
-
92
- ```typescript
93
- interface SdSelectModal<T> extends SdModalContentDef<SelectModalOutputResult<T>> {
94
- selectMode: InputSignal<"single" | "multi" | undefined>;
95
- selectedItemKeys: InputSignal<any[]>;
96
- }
97
- ```
98
-
99
- ## `SdSelectModalInfo`
100
-
101
- 모달 선택 정보. `SdModalInfo`에서 selectMode/selectedItemKeys를 제외.
102
-
103
- ```typescript
104
- type SdSelectModalInfo<T extends SdSelectModal<any>> = SdModalInfo<T, "selectMode" | "selectedItemKeys">
105
- ```
106
-
107
- ## `SdTextfieldTypes`
108
-
109
- 텍스트필드 타입별 값 타입 매핑.
110
-
111
- ```typescript
112
- type SdTextfieldTypes = {
113
- "number": number;
114
- "text": string;
115
- "password": string;
116
- "color": string;
117
- "email": string;
118
- "format": string;
119
- "date": DateOnly;
120
- "month": DateOnly;
121
- "year": DateOnly;
122
- "datetime": DateTime;
123
- "datetime-sec": DateTime;
124
- "time": Time;
125
- "time-sec": Time;
126
- }
127
- ```
128
-
129
- ## `sdTextfieldTypes`
130
-
131
- 텍스트필드 타입 문자열 배열.
132
-
133
- ```typescript
134
- const sdTextfieldTypes: (keyof SdTextfieldTypes)[] = [
135
- "number", "text", "password", "color", "email", "format",
136
- "date", "month", "year", "datetime", "datetime-sec", "time", "time-sec",
137
- ]
138
- ```
139
-
140
- ## `SelectModeValue`
141
-
142
- select mode별 value 타입 매핑. `SdSelect`에서 export됨.
143
-
144
- ```typescript
145
- type SelectModeValue<T> = {
146
- multi: T[];
147
- single: T;
148
- }
149
- ```
150
-
151
- ## `SdSidebarUserMenu`
152
-
153
- 사이드바 사용자 메뉴 항목. `SdSidebarUser`에서 export됨.
154
-
155
- ```typescript
156
- interface SdSidebarUserMenu {
157
- title: string;
158
- menus: {
159
- title: string;
160
- onClick: () => void;
161
- }[];
162
- }
163
- ```
164
-
165
- | Field | Type | Description |
166
- |-------|------|-------------|
167
- | `title` | `string` | 사용자 메뉴 제목 |
168
- | `menus` | `{ title: string; onClick: () => void }[]` | 하위 메뉴 항목 배열 |
169
-
170
- ## `SdTopbarUserMenu`
171
-
172
- 탑바 사용자 메뉴 항목. `SdTopbarUser`에서 export됨.
173
-
174
- ```typescript
175
- interface SdTopbarUserMenu {
176
- title: string;
177
- onClick: () => void;
178
- }
179
- ```
180
-
181
- | Field | Type | Description |
182
- |-------|------|-------------|
183
- | `title` | `string` | 메뉴 제목 |
184
- | `onClick` | `() => void` | 클릭 핸들러 |
185
-
186
- ## `SdStatePresetDef`
187
-
188
- 상태 프리셋 데이터. `SdStatePreset`에서 export됨.
189
-
190
- ```typescript
191
- interface SdStatePresetDef {
192
- name: string;
193
- state: any;
194
- }
195
- ```
196
-
197
- | Field | Type | Description |
198
- |-------|------|-------------|
199
- | `name` | `string` | 프리셋 이름 |
200
- | `state` | `any` | 저장된 상태 데이터 |
201
-
202
- ## `SdKanbanBoardDropInfo`
203
-
204
- 칸반 보드 드롭 정보. `SdKanbanBoard`에서 export됨.
205
-
206
- ```typescript
207
- interface SdKanbanBoardDropInfo<L, T> {
208
- sourceKanbanValue?: T;
209
- targetLaneValue?: L;
210
- targetKanbanValue?: T;
211
- }
212
- ```
213
-
214
- | Field | Type | Description |
215
- |-------|------|-------------|
216
- | `sourceKanbanValue` | `T \| undefined` | 드래그한 칸반 아이템의 값 |
217
- | `targetLaneValue` | `L \| undefined` | 드롭 대상 레인의 값 |
218
- | `targetKanbanValue` | `T \| undefined` | 드롭 대상 칸반 아이템의 값 (칸반 위에 드롭 시) |
219
-
220
- ## `SdKanbanDragRef`
221
-
222
- 칸반 드래그 참조 인터페이스. `SdKanbanBoard`에서 export됨.
223
-
224
- ```typescript
225
- interface SdKanbanDragRef<_L, T> {
226
- value(): T | undefined;
227
- heightOnDrag(): number;
228
- }
229
- ```
230
-
231
- | Field | Type | Description |
232
- |-------|------|-------------|
233
- | `value()` | `T \| undefined` | 드래그 중인 칸반 아이템의 값 |
234
- | `heightOnDrag()` | `number` | 드래그 시작 시점의 요소 높이 |
235
-
236
- ## `SdKanbanDropTarget`
237
-
238
- 칸반 드롭 타겟 인터페이스. `SdKanbanBoard`에서 export됨.
239
-
240
- ```typescript
241
- interface SdKanbanDropTarget<L, T> {
242
- targetLaneValue(): L | undefined;
243
- targetKanbanValue?(): T | undefined;
244
- }
245
- ```
246
-
247
- | Field | Type | Description |
248
- |-------|------|-------------|
249
- | `targetLaneValue()` | `L \| undefined` | 드롭 대상 레인의 값 |
250
- | `targetKanbanValue?()` | `T \| undefined` | 드롭 대상 칸반 아이템의 값 (optional) |