@simplysm/sd-claude 14.0.47 → 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 (130) hide show
  1. package/{claude/references/sd-simplysm14/sd-claude/usage.md → README.md} +2 -2
  2. package/claude/rules/sd-claude-rules.md +25 -10
  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 +30 -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-commit/SKILL.md +1 -1
  11. package/claude/skills/sd-debug/SKILL.md +5 -3
  12. package/claude/skills/sd-deliverable/SKILL.md +1 -1
  13. package/claude/skills/sd-dev/SKILL.md +14 -9
  14. package/claude/skills/sd-doc-extract/SKILL.md +8 -10
  15. package/claude/skills/sd-doc-extract/_common.py +8 -1
  16. package/claude/skills/sd-doc-extract/_extract_docx.py +74 -34
  17. package/claude/skills/sd-doc-extract/_extract_pdf.py +12 -1
  18. package/claude/skills/sd-doc-extract/_extract_pptx.py +103 -23
  19. package/claude/skills/sd-doc-extract/_extract_xlsb.py +93 -4
  20. package/claude/skills/sd-doc-extract/_extract_xlsx.py +98 -36
  21. package/claude/skills/sd-doc-extract/extract.py +22 -3
  22. package/claude/skills/sd-inner-clarify/SKILL.md +78 -0
  23. package/claude/skills/sd-inner-debug/SKILL.md +1 -1
  24. package/claude/skills/sd-inner-review/SKILL.md +13 -0
  25. package/claude/skills/sd-issue/SKILL.md +1 -1
  26. package/claude/skills/sd-outlook/SKILL.md +1 -1
  27. package/claude/skills/sd-plan/SKILL.md +50 -17
  28. package/claude/skills/sd-prompt/SKILL.md +180 -178
  29. package/claude/skills/sd-prompt/references/eval-runner.md +5 -30
  30. package/claude/skills/sd-prompt/references/sd-eval-env-template.md +23 -0
  31. package/claude/skills/sd-refactor/SKILL.md +2 -2
  32. package/claude/skills/sd-tdd/SKILL.md +40 -10
  33. package/claude/skills/sd-use/SKILL.md +84 -80
  34. package/claude/skills/sd-wbs/SKILL.md +84 -27
  35. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/assets.md +2 -3
  36. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/hooks.md +7 -6
  37. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/scripts.md +1 -9
  38. package/package.json +3 -2
  39. package/scripts/sync.mjs +4 -2
  40. package/claude/references/sd-simplysm14/angular/docs/bootstrap.md +0 -48
  41. package/claude/references/sd-simplysm14/angular/docs/directives.md +0 -236
  42. package/claude/references/sd-simplysm14/angular/docs/features.md +0 -379
  43. package/claude/references/sd-simplysm14/angular/docs/pipes.md +0 -32
  44. package/claude/references/sd-simplysm14/angular/docs/plugins.md +0 -37
  45. package/claude/references/sd-simplysm14/angular/docs/provider-types.md +0 -283
  46. package/claude/references/sd-simplysm14/angular/docs/providers.md +0 -379
  47. package/claude/references/sd-simplysm14/angular/docs/styling.md +0 -222
  48. package/claude/references/sd-simplysm14/angular/docs/type-utilities.md +0 -250
  49. package/claude/references/sd-simplysm14/angular/docs/ui-data.md +0 -275
  50. package/claude/references/sd-simplysm14/angular/docs/ui-form.md +0 -490
  51. package/claude/references/sd-simplysm14/angular/docs/ui-layout.md +0 -140
  52. package/claude/references/sd-simplysm14/angular/docs/ui-navigation.md +0 -273
  53. package/claude/references/sd-simplysm14/angular/docs/ui-overlay.md +0 -157
  54. package/claude/references/sd-simplysm14/angular/docs/ui-visual.md +0 -127
  55. package/claude/references/sd-simplysm14/angular/docs/utils.md +0 -295
  56. package/claude/references/sd-simplysm14/angular/usage.md +0 -489
  57. package/claude/references/sd-simplysm14/capacitor-plugin-auto-update/usage.md +0 -182
  58. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/file-operations.md +0 -154
  59. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/permissions.md +0 -84
  60. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/storage-paths.md +0 -107
  61. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/types.md +0 -83
  62. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/usage.md +0 -133
  63. package/claude/references/sd-simplysm14/capacitor-plugin-intent/usage.md +0 -203
  64. package/claude/references/sd-simplysm14/capacitor-plugin-usb-storage/usage.md +0 -258
  65. package/claude/references/sd-simplysm14/core-browser/usage.md +0 -306
  66. package/claude/references/sd-simplysm14/core-common/docs/errors.md +0 -82
  67. package/claude/references/sd-simplysm14/core-common/docs/extensions.md +0 -167
  68. package/claude/references/sd-simplysm14/core-common/docs/features.md +0 -136
  69. package/claude/references/sd-simplysm14/core-common/docs/types.md +0 -245
  70. package/claude/references/sd-simplysm14/core-common/docs/utils.md +0 -591
  71. package/claude/references/sd-simplysm14/core-common/usage.md +0 -255
  72. package/claude/references/sd-simplysm14/core-node/docs/child-process.md +0 -182
  73. package/claude/references/sd-simplysm14/core-node/docs/features.md +0 -214
  74. package/claude/references/sd-simplysm14/core-node/docs/file-system.md +0 -509
  75. package/claude/references/sd-simplysm14/core-node/docs/file-watching.md +0 -139
  76. package/claude/references/sd-simplysm14/core-node/docs/logging.md +0 -180
  77. package/claude/references/sd-simplysm14/core-node/docs/path.md +0 -176
  78. package/claude/references/sd-simplysm14/core-node/docs/utilities-cpx.md +0 -194
  79. package/claude/references/sd-simplysm14/core-node/docs/utilities-fsx.md +0 -469
  80. package/claude/references/sd-simplysm14/core-node/docs/utilities-pathx.md +0 -151
  81. package/claude/references/sd-simplysm14/core-node/docs/worker-threads.md +0 -334
  82. package/claude/references/sd-simplysm14/core-node/docs/worker.md +0 -205
  83. package/claude/references/sd-simplysm14/core-node/usage.md +0 -259
  84. package/claude/references/sd-simplysm14/excel/docs/core-classes.md +0 -453
  85. package/claude/references/sd-simplysm14/excel/docs/types.md +0 -459
  86. package/claude/references/sd-simplysm14/excel/docs/utilities.md +0 -194
  87. package/claude/references/sd-simplysm14/excel/docs/wrapper.md +0 -73
  88. package/claude/references/sd-simplysm14/excel/usage.md +0 -134
  89. package/claude/references/sd-simplysm14/lint/usage.md +0 -130
  90. package/claude/references/sd-simplysm14/orm-common/docs/core.md +0 -188
  91. package/claude/references/sd-simplysm14/orm-common/docs/expression.md +0 -190
  92. package/claude/references/sd-simplysm14/orm-common/docs/models.md +0 -17
  93. package/claude/references/sd-simplysm14/orm-common/docs/query-builder.md +0 -97
  94. package/claude/references/sd-simplysm14/orm-common/docs/queryable-executable.md +0 -250
  95. package/claude/references/sd-simplysm14/orm-common/docs/schema-builders.md +0 -364
  96. package/claude/references/sd-simplysm14/orm-common/docs/types.md +0 -522
  97. package/claude/references/sd-simplysm14/orm-common/usage.md +0 -229
  98. package/claude/references/sd-simplysm14/orm-node/docs/connections.md +0 -137
  99. package/claude/references/sd-simplysm14/orm-node/docs/core.md +0 -131
  100. package/claude/references/sd-simplysm14/orm-node/docs/types.md +0 -173
  101. package/claude/references/sd-simplysm14/orm-node/usage.md +0 -143
  102. package/claude/references/sd-simplysm14/sd-cli/usage.md +0 -782
  103. package/claude/references/sd-simplysm14/service-client/docs/features.md +0 -217
  104. package/claude/references/sd-simplysm14/service-client/docs/main.md +0 -148
  105. package/claude/references/sd-simplysm14/service-client/docs/protocol.md +0 -53
  106. package/claude/references/sd-simplysm14/service-client/docs/transport.md +0 -131
  107. package/claude/references/sd-simplysm14/service-client/docs/types.md +0 -129
  108. package/claude/references/sd-simplysm14/service-client/usage.md +0 -202
  109. package/claude/references/sd-simplysm14/service-common/docs/app-structure.md +0 -175
  110. package/claude/references/sd-simplysm14/service-common/docs/events.md +0 -64
  111. package/claude/references/sd-simplysm14/service-common/docs/protocol.md +0 -331
  112. package/claude/references/sd-simplysm14/service-common/docs/service-types.md +0 -90
  113. package/claude/references/sd-simplysm14/service-common/docs/types.md +0 -19
  114. package/claude/references/sd-simplysm14/service-common/usage.md +0 -154
  115. package/claude/references/sd-simplysm14/service-server/docs/auth.md +0 -64
  116. package/claude/references/sd-simplysm14/service-server/docs/core.md +0 -174
  117. package/claude/references/sd-simplysm14/service-server/docs/legacy.md +0 -25
  118. package/claude/references/sd-simplysm14/service-server/docs/main.md +0 -88
  119. package/claude/references/sd-simplysm14/service-server/docs/protocol.md +0 -33
  120. package/claude/references/sd-simplysm14/service-server/docs/services.md +0 -94
  121. package/claude/references/sd-simplysm14/service-server/docs/transport-http.md +0 -93
  122. package/claude/references/sd-simplysm14/service-server/docs/transport-socket.md +0 -119
  123. package/claude/references/sd-simplysm14/service-server/docs/types.md +0 -36
  124. package/claude/references/sd-simplysm14/service-server/docs/utils.md +0 -22
  125. package/claude/references/sd-simplysm14/service-server/usage.md +0 -171
  126. package/claude/references/sd-simplysm14/storage/usage.md +0 -301
  127. package/claude/references/sd-simplysm14.md +0 -35
  128. package/claude/rules/sd-clarify.md +0 -23
  129. package/claude/sd-session-start.sh +0 -10
  130. /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) |