@sd-angular/core 19.0.0-beta.103 → 19.0.0-beta.105

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 (256) hide show
  1. package/assets/scss/README.md +433 -353
  2. package/assets/scss/core/form.scss +43 -1
  3. package/assets/scss/core/utilities/_base.scss +6 -6
  4. package/assets/scss/core/utilities/_grid.scss +4 -3
  5. package/assets/scss/core/utilities/_index.scss +1 -1
  6. package/assets/scss/core/utilities/_sizing.scss +2 -2
  7. package/assets/scss/sd-core.scss +0 -2
  8. package/components/badge/src/badge.component.d.ts +20 -3
  9. package/components/button/src/button.component.d.ts +2 -1
  10. package/components/ckeditor-styles/index.d.ts +1 -0
  11. package/components/ckeditor-styles/src/ckeditor-styles.component.d.ts +25 -0
  12. package/components/form-generic/src/models/form-generic-component.model.d.ts +5 -6
  13. package/components/form-generic/src/models/form-generic-expression.model.d.ts +1 -1
  14. package/components/history/models/history.model.d.ts +2 -2
  15. package/components/inform/index.d.ts +2 -0
  16. package/components/inform/src/inform-action.directive.d.ts +9 -0
  17. package/components/inform/src/inform.component.d.ts +59 -0
  18. package/components/modal/src/modal.component.d.ts +3 -2
  19. package/components/query-bar/src/{actions-bar.component.d.ts → components/actions-bar/actions-bar.component.d.ts} +8 -11
  20. package/components/query-bar/src/{build-chip.component.d.ts → components/build-chip/build-chip.component.d.ts} +2 -2
  21. package/components/query-bar/src/{chip-popover.component.d.ts → components/chip-popover/chip-popover.component.d.ts} +2 -2
  22. package/components/query-bar/src/{field-picker.component.d.ts → components/field-picker/field-picker.component.d.ts} +1 -1
  23. package/components/query-bar/src/{inline-chip.component.d.ts → components/inline-chip/inline-chip.component.d.ts} +2 -2
  24. package/components/query-bar/src/{inline-value-chip.component.d.ts → components/inline-value-chip/inline-value-chip.component.d.ts} +2 -2
  25. package/components/query-bar/src/{popover-chip.component.d.ts → components/popover-chip/popover-chip.component.d.ts} +2 -2
  26. package/components/query-bar/src/{saved-filters-menu.component.d.ts → components/saved-filters-menu/saved-filters-menu.component.d.ts} +1 -1
  27. package/components/query-bar/src/query-bar.component.d.ts +3 -3
  28. package/components/query-bar/src/query-bar.model.d.ts +1 -1
  29. package/components/section/src/section.component.d.ts +2 -1
  30. package/components/stepper/index.d.ts +2 -0
  31. package/components/stepper/src/step.component.d.ts +17 -0
  32. package/components/stepper/src/stepper.component.d.ts +33 -0
  33. package/components/tab/index.d.ts +2 -0
  34. package/components/tab/src/tab-group.component.d.ts +37 -0
  35. package/components/tab/src/tab.component.d.ts +13 -0
  36. package/components/tab-router/src/decorators/tab.decorator.d.ts +2 -2
  37. package/components/tab-router/src/models/tab-router.model.d.ts +2 -2
  38. package/components/table/index.d.ts +1 -0
  39. package/components/table/src/configurations/table.configuration.d.ts +3 -3
  40. package/components/table/src/directives/index.d.ts +1 -0
  41. package/components/table/src/directives/sd-table-group-def.directive.d.ts +44 -0
  42. package/components/table/src/models/index.d.ts +1 -0
  43. package/components/table/src/models/table-column.model.d.ts +13 -13
  44. package/components/table/src/models/table-command.model.d.ts +3 -2
  45. package/components/table/src/models/table-item.model.d.ts +19 -4
  46. package/components/table/src/models/table-option-export.model.d.ts +3 -3
  47. package/components/table/src/models/table-option-group.model.d.ts +19 -2
  48. package/components/table/src/models/table-option-selector.model.d.ts +17 -1
  49. package/components/table/src/models/table-option.model.d.ts +11 -2
  50. package/components/table/src/pipes/sd-group.pipe.d.ts +15 -1
  51. package/components/table/src/services/table-filter/table-filter.model.d.ts +9 -9
  52. package/components/table/src/services/table-filter/table-filter.service.d.ts +2 -2
  53. package/components/table/src/table.component.d.ts +29 -4
  54. package/fesm2022/sd-angular-core-components-anchor.mjs +2 -2
  55. package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
  56. package/fesm2022/sd-angular-core-components-badge.mjs +18 -3
  57. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  58. package/fesm2022/sd-angular-core-components-button.mjs +2 -2
  59. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  60. package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs +38 -0
  61. package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs.map +1 -0
  62. package/fesm2022/sd-angular-core-components-document-builder.mjs +10 -8
  63. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  64. package/fesm2022/sd-angular-core-components-editor.mjs +3 -2
  65. package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
  66. package/fesm2022/sd-angular-core-components-form-generic.mjs +49 -48
  67. package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
  68. package/fesm2022/sd-angular-core-components-history.mjs +3 -2
  69. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  70. package/fesm2022/sd-angular-core-components-inform.mjs +190 -0
  71. package/fesm2022/sd-angular-core-components-inform.mjs.map +1 -0
  72. package/fesm2022/sd-angular-core-components-mini-editor.mjs +4 -3
  73. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -1
  74. package/fesm2022/sd-angular-core-components-modal.mjs +2 -2
  75. package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
  76. package/fesm2022/sd-angular-core-components-operator.mjs +1 -1
  77. package/fesm2022/sd-angular-core-components-operator.mjs.map +1 -1
  78. package/fesm2022/sd-angular-core-components-query-bar.mjs +15 -22
  79. package/fesm2022/sd-angular-core-components-query-bar.mjs.map +1 -1
  80. package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
  81. package/fesm2022/sd-angular-core-components-splitter.mjs +5 -2
  82. package/fesm2022/sd-angular-core-components-splitter.mjs.map +1 -1
  83. package/fesm2022/sd-angular-core-components-stepper.mjs +140 -0
  84. package/fesm2022/sd-angular-core-components-stepper.mjs.map +1 -0
  85. package/fesm2022/sd-angular-core-components-tab-router.mjs +3 -3
  86. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  87. package/fesm2022/sd-angular-core-components-tab.mjs +145 -0
  88. package/fesm2022/sd-angular-core-components-tab.mjs.map +1 -0
  89. package/fesm2022/sd-angular-core-components-table.mjs +284 -95
  90. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  91. package/fesm2022/sd-angular-core-components-upload-file.mjs +5 -6
  92. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-directives.mjs +4 -4
  94. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  95. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +5 -4
  96. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  97. package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
  98. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
  100. package/fesm2022/sd-angular-core-forms-date-range.mjs +3 -2
  101. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  102. package/fesm2022/sd-angular-core-forms-date.mjs +5 -4
  103. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  104. package/fesm2022/sd-angular-core-forms-datetime.mjs +5 -4
  105. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  106. package/fesm2022/sd-angular-core-forms-input-color.mjs +117 -0
  107. package/fesm2022/sd-angular-core-forms-input-color.mjs.map +1 -0
  108. package/fesm2022/sd-angular-core-forms-input-number.mjs +24 -2
  109. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  110. package/fesm2022/sd-angular-core-forms-input.mjs +26 -2
  111. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  112. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  113. package/fesm2022/sd-angular-core-forms-select.mjs +10 -10
  114. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  115. package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
  116. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  117. package/fesm2022/sd-angular-core-i18n.mjs +10 -0
  118. package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
  119. package/fesm2022/sd-angular-core-modules-auth.mjs +4 -4
  120. package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -1
  121. package/fesm2022/sd-angular-core-modules-authom.mjs +1 -1
  122. package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
  123. package/fesm2022/sd-angular-core-modules-layout.mjs +14 -14
  124. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  125. package/fesm2022/sd-angular-core-modules-permission.mjs +3 -3
  126. package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
  127. package/fesm2022/sd-angular-core-pipes.mjs +2 -2
  128. package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
  129. package/fesm2022/sd-angular-core-services-api.mjs +3 -3
  130. package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
  131. package/fesm2022/sd-angular-core-services-cache.mjs +3 -2
  132. package/fesm2022/sd-angular-core-services-cache.mjs.map +1 -1
  133. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  134. package/fesm2022/sd-angular-core-services-excel.mjs +6 -5
  135. package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
  136. package/fesm2022/sd-angular-core-services-notify.mjs +3 -3
  137. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  138. package/fesm2022/sd-angular-core-services-storage.mjs +2 -2
  139. package/fesm2022/sd-angular-core-services-storage.mjs.map +1 -1
  140. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  141. package/forms/autocomplete/src/autocomplete.component.d.ts +2 -1
  142. package/forms/checkbox/src/checkbox.component.d.ts +1 -1
  143. package/forms/chip/src/chip.component.d.ts +1 -1
  144. package/forms/chip-calendar/src/chip-calendar.component.d.ts +1 -1
  145. package/forms/date/src/date.component.d.ts +2 -1
  146. package/forms/date-range/src/date-range.component.d.ts +2 -1
  147. package/forms/datetime/src/datetime.component.d.ts +2 -1
  148. package/forms/input/src/input.component.d.ts +6 -2
  149. package/forms/input-color/index.d.ts +1 -0
  150. package/forms/input-color/src/input-color.component.d.ts +32 -0
  151. package/forms/input-number/src/input-number.component.d.ts +6 -2
  152. package/forms/radio/src/radio.component.d.ts +1 -1
  153. package/forms/select/src/select.component.d.ts +5 -5
  154. package/forms/switch/src/switch.component.d.ts +1 -1
  155. package/forms/textarea/src/textarea.component.d.ts +2 -1
  156. package/i18n/src/en.d.ts +2 -0
  157. package/modules/auth/configurations/auth.configuration.d.ts +4 -4
  158. package/modules/layout/configurations/layout.configuration.d.ts +3 -3
  159. package/modules/permission/src/configurations/permission.configuration.d.ts +3 -3
  160. package/package.json +123 -103
  161. package/sd-angular-core-19.0.0-beta.105.tgz +0 -0
  162. package/services/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +3 -3
  163. package/services/confirm/src/lib/confirm.service.d.ts +9 -9
  164. package/utilities/models/src/icon.model.d.ts +1 -1
  165. package/assets/scss/bootstrap-4.6.2/_alert.scss +0 -52
  166. package/assets/scss/bootstrap-4.6.2/_badge.scss +0 -54
  167. package/assets/scss/bootstrap-4.6.2/_breadcrumb.scss +0 -42
  168. package/assets/scss/bootstrap-4.6.2/_button-group.scss +0 -163
  169. package/assets/scss/bootstrap-4.6.2/_buttons.scss +0 -142
  170. package/assets/scss/bootstrap-4.6.2/_card.scss +0 -286
  171. package/assets/scss/bootstrap-4.6.2/_carousel.scss +0 -200
  172. package/assets/scss/bootstrap-4.6.2/_close.scss +0 -40
  173. package/assets/scss/bootstrap-4.6.2/_code.scss +0 -48
  174. package/assets/scss/bootstrap-4.6.2/_custom-forms.scss +0 -526
  175. package/assets/scss/bootstrap-4.6.2/_dropdown.scss +0 -192
  176. package/assets/scss/bootstrap-4.6.2/_forms.scss +0 -347
  177. package/assets/scss/bootstrap-4.6.2/_functions.scss +0 -190
  178. package/assets/scss/bootstrap-4.6.2/_grid.scss +0 -73
  179. package/assets/scss/bootstrap-4.6.2/_images.scss +0 -42
  180. package/assets/scss/bootstrap-4.6.2/_input-group.scss +0 -211
  181. package/assets/scss/bootstrap-4.6.2/_jumbotron.scss +0 -17
  182. package/assets/scss/bootstrap-4.6.2/_list-group.scss +0 -154
  183. package/assets/scss/bootstrap-4.6.2/_media.scss +0 -8
  184. package/assets/scss/bootstrap-4.6.2/_mixins.scss +0 -47
  185. package/assets/scss/bootstrap-4.6.2/_modal.scss +0 -240
  186. package/assets/scss/bootstrap-4.6.2/_nav.scss +0 -125
  187. package/assets/scss/bootstrap-4.6.2/_navbar.scss +0 -332
  188. package/assets/scss/bootstrap-4.6.2/_pagination.scss +0 -74
  189. package/assets/scss/bootstrap-4.6.2/_popover.scss +0 -170
  190. package/assets/scss/bootstrap-4.6.2/_print.scss +0 -132
  191. package/assets/scss/bootstrap-4.6.2/_progress.scss +0 -47
  192. package/assets/scss/bootstrap-4.6.2/_reboot.scss +0 -484
  193. package/assets/scss/bootstrap-4.6.2/_root.scss +0 -19
  194. package/assets/scss/bootstrap-4.6.2/_spinners.scss +0 -65
  195. package/assets/scss/bootstrap-4.6.2/_tables.scss +0 -185
  196. package/assets/scss/bootstrap-4.6.2/_toasts.scss +0 -46
  197. package/assets/scss/bootstrap-4.6.2/_tooltip.scss +0 -115
  198. package/assets/scss/bootstrap-4.6.2/_transitions.scss +0 -26
  199. package/assets/scss/bootstrap-4.6.2/_type.scss +0 -125
  200. package/assets/scss/bootstrap-4.6.2/_utilities.scss +0 -18
  201. package/assets/scss/bootstrap-4.6.2/_variables.scss +0 -1150
  202. package/assets/scss/bootstrap-4.6.2/bootstrap-grid.scss +0 -30
  203. package/assets/scss/bootstrap-4.6.2/bootstrap-reboot.scss +0 -12
  204. package/assets/scss/bootstrap-4.6.2/bootstrap.scss +0 -44
  205. package/assets/scss/bootstrap-4.6.2/mixins/_alert.scss +0 -13
  206. package/assets/scss/bootstrap-4.6.2/mixins/_background-variant.scss +0 -23
  207. package/assets/scss/bootstrap-4.6.2/mixins/_badge.scss +0 -17
  208. package/assets/scss/bootstrap-4.6.2/mixins/_border-radius.scss +0 -76
  209. package/assets/scss/bootstrap-4.6.2/mixins/_box-shadow.scss +0 -20
  210. package/assets/scss/bootstrap-4.6.2/mixins/_breakpoints.scss +0 -123
  211. package/assets/scss/bootstrap-4.6.2/mixins/_buttons.scss +0 -110
  212. package/assets/scss/bootstrap-4.6.2/mixins/_caret.scss +0 -62
  213. package/assets/scss/bootstrap-4.6.2/mixins/_clearfix.scss +0 -7
  214. package/assets/scss/bootstrap-4.6.2/mixins/_deprecate.scss +0 -10
  215. package/assets/scss/bootstrap-4.6.2/mixins/_float.scss +0 -14
  216. package/assets/scss/bootstrap-4.6.2/mixins/_forms.scss +0 -195
  217. package/assets/scss/bootstrap-4.6.2/mixins/_gradients.scss +0 -45
  218. package/assets/scss/bootstrap-4.6.2/mixins/_grid-framework.scss +0 -80
  219. package/assets/scss/bootstrap-4.6.2/mixins/_grid.scss +0 -69
  220. package/assets/scss/bootstrap-4.6.2/mixins/_hover.scss +0 -37
  221. package/assets/scss/bootstrap-4.6.2/mixins/_image.scss +0 -36
  222. package/assets/scss/bootstrap-4.6.2/mixins/_list-group.scss +0 -21
  223. package/assets/scss/bootstrap-4.6.2/mixins/_lists.scss +0 -7
  224. package/assets/scss/bootstrap-4.6.2/mixins/_nav-divider.scss +0 -11
  225. package/assets/scss/bootstrap-4.6.2/mixins/_pagination.scss +0 -22
  226. package/assets/scss/bootstrap-4.6.2/mixins/_reset-text.scss +0 -17
  227. package/assets/scss/bootstrap-4.6.2/mixins/_resize.scss +0 -6
  228. package/assets/scss/bootstrap-4.6.2/mixins/_screen-reader.scss +0 -34
  229. package/assets/scss/bootstrap-4.6.2/mixins/_size.scss +0 -7
  230. package/assets/scss/bootstrap-4.6.2/mixins/_table-row.scss +0 -39
  231. package/assets/scss/bootstrap-4.6.2/mixins/_text-emphasis.scss +0 -17
  232. package/assets/scss/bootstrap-4.6.2/mixins/_text-hide.scss +0 -11
  233. package/assets/scss/bootstrap-4.6.2/mixins/_text-truncate.scss +0 -8
  234. package/assets/scss/bootstrap-4.6.2/mixins/_transition.scss +0 -26
  235. package/assets/scss/bootstrap-4.6.2/mixins/_visibility.scss +0 -8
  236. package/assets/scss/bootstrap-4.6.2/utilities/_align.scss +0 -8
  237. package/assets/scss/bootstrap-4.6.2/utilities/_background.scss +0 -19
  238. package/assets/scss/bootstrap-4.6.2/utilities/_borders.scss +0 -75
  239. package/assets/scss/bootstrap-4.6.2/utilities/_clearfix.scss +0 -3
  240. package/assets/scss/bootstrap-4.6.2/utilities/_display.scss +0 -26
  241. package/assets/scss/bootstrap-4.6.2/utilities/_embed.scss +0 -39
  242. package/assets/scss/bootstrap-4.6.2/utilities/_flex.scss +0 -51
  243. package/assets/scss/bootstrap-4.6.2/utilities/_float.scss +0 -11
  244. package/assets/scss/bootstrap-4.6.2/utilities/_interactions.scss +0 -5
  245. package/assets/scss/bootstrap-4.6.2/utilities/_overflow.scss +0 -5
  246. package/assets/scss/bootstrap-4.6.2/utilities/_position.scss +0 -32
  247. package/assets/scss/bootstrap-4.6.2/utilities/_screenreaders.scss +0 -11
  248. package/assets/scss/bootstrap-4.6.2/utilities/_shadows.scss +0 -6
  249. package/assets/scss/bootstrap-4.6.2/utilities/_sizing.scss +0 -20
  250. package/assets/scss/bootstrap-4.6.2/utilities/_spacing.scss +0 -73
  251. package/assets/scss/bootstrap-4.6.2/utilities/_stretched-link.scss +0 -19
  252. package/assets/scss/bootstrap-4.6.2/utilities/_text.scss +0 -72
  253. package/assets/scss/bootstrap-4.6.2/utilities/_visibility.scss +0 -13
  254. package/assets/scss/bootstrap-4.6.2/vendor/_rfs.scss +0 -228
  255. package/assets/scss/core/bootstrap.scss +0 -13
  256. package/sd-angular-core-19.0.0-beta.103.tgz +0 -0
@@ -33,6 +33,48 @@
33
33
  }
34
34
  }
35
35
 
36
+ // why: nút clear "thanh mảnh" dùng chung cho sd-select/sd-date/sd-datetime —
37
+ // hình tròn nền trong suốt, hover mới hiện nền xám + chuyển đỏ. Icon `close`
38
+ // (nét mảnh) thay cho `cancel` (tròn đặc, trông "mập"). Đồng bộ với sd-input-color.
39
+ .sd-clear-btn {
40
+ display: inline-flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ width: 20px;
44
+ height: 20px;
45
+ border-radius: 50%;
46
+ border: 0;
47
+ padding: 0;
48
+ background: transparent;
49
+ cursor: pointer;
50
+ color: #757575;
51
+ transition: background-color 80ms ease, color 80ms ease;
52
+
53
+ &:hover {
54
+ background: rgba(0, 0, 0, 0.06);
55
+ color: map.get(color.$color_map, 'error');
56
+ }
57
+
58
+ mat-icon {
59
+ font-size: 16px;
60
+ width: 16px;
61
+ height: 16px;
62
+ line-height: 16px;
63
+ }
64
+ }
65
+
66
+ // why: biến thể hover-gate — nút clear ẩn cho tới khi hover (hoặc field đang
67
+ // focus, để người dùng bàn phím vẫn thấy). Dùng cho sd-input/sd-input-number/
68
+ // sd-input-color/sd-date/sd-datetime. KHÔNG dùng cho sd-select/sd-autocomplete
69
+ // vì ở đó clear thay thế icon dropdown/search nên phải luôn hiển thị.
70
+ .sd-clear-btn.sd-hover {
71
+ visibility: hidden;
72
+ }
73
+ .mat-mdc-form-field-flex:hover .sd-clear-btn.sd-hover,
74
+ .mat-mdc-form-field-flex:focus-within .sd-clear-btn.sd-hover {
75
+ visibility: visible;
76
+ }
77
+
36
78
  // sdSuffixIcon
37
79
  // Directive sdSuffixIcon (truyền icon từ component sử dụng vào Core)
38
80
  .sd-suffix-icon.sd-hover {
@@ -247,7 +289,7 @@
247
289
  }
248
290
  }
249
291
 
250
- // Fix lỗi scss label của bootstrap margin bottom
292
+ // Override reboot rule `label { margin-bottom: 0.5rem }` cho mat-checkbox layout
251
293
  mat-checkbox {
252
294
  label.mat-mdc-checkbox-layout {
253
295
  margin-bottom: 0;
@@ -1,9 +1,9 @@
1
1
  // --------------------------------------------------------------------------
2
- // Base / Reboot — thay thế Bootstrap _reboot.scss
3
- // Chuẩn hóa rendering giữa các browser, thiết lập baseline cho toàn bộ
4
- // ứng dụng. Không phụ thuộc Bootstrap variables hay mixins.
2
+ // Base / Reboot — chuẩn hóa rendering giữa các browser, thiết lập baseline
3
+ // cho toàn bộ ứng dụng. Thuần CSS, không phụ thuộc 3rd-party reset.
5
4
  //
6
- // Nguồn tham khảo: Bootstrap 4 reboot + modern-normalize
5
+ // Nguồn gốc rule: kế thừa từ Bootstrap 4 reboot + modern-normalize (đã được
6
+ // inline trực tiếp ở đây để dứt điểm phụ thuộc Bootstrap).
7
7
  // --------------------------------------------------------------------------
8
8
 
9
9
  // --------------------------------------------------------------------------
@@ -202,8 +202,8 @@ th {
202
202
  // 11. Forms
203
203
  // --------------------------------------------------------------------------
204
204
 
205
- // label là inline-block để có thể set margin
206
- // NOTE: Bootstrap reboot thêm margin-bottom vào label giữ override này khi còn dùng reboot
205
+ // label là inline-block để có thể set margin; margin-bottom mặc định 0.5rem
206
+ // thể override per-component (xem core/form.scss cho mat-checkbox).
207
207
  label {
208
208
  display: inline-block;
209
209
  margin-bottom: 0.5rem;
@@ -1,6 +1,7 @@
1
1
  // --------------------------------------------------------------------------
2
- // Grid — Bootstrap-compatible row/col + CSS Grid container
3
- // Không phụ thuộc Bootstrap, thuần CSS Flexbox / CSS Grid
2
+ // Grid — row/col 12-column flexbox + native CSS Grid container
3
+ // Thuần CSS Flexbox / CSS Grid, không phụ thuộc framework ngoài.
4
+ // Breakpoint convention (sm/md/lg/xl) trùng Bootstrap để host app dễ migrate.
4
5
  // --------------------------------------------------------------------------
5
6
 
6
7
  // --------------------------------------------------------------------------
@@ -63,7 +64,7 @@ $grid-gutter: 16px;
63
64
  }
64
65
 
65
66
  // --------------------------------------------------------------------------
66
- // 1b. Responsive columns — Bootstrap-compatible breakpoints
67
+ // 1b. Responsive columns
67
68
  // col-sm-{1-12} : ≥ 576px
68
69
  // col-md-{1-12} : ≥ 768px
69
70
  // col-lg-{1-12} : ≥ 992px
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================================
2
- SD-ANGULAR UTILITY CLASSES — không phụ thuộc Bootstrap
2
+ SD-ANGULAR UTILITY CLASSES — thuần SCSS, không phụ thuộc 3rd-party.
3
3
  Mỗi partial độc lập, có thể import riêng lẻ nếu cần.
4
4
  ========================================================================== */
5
5
 
@@ -9,13 +9,13 @@
9
9
 
10
10
  // Percentage / keyword shorthands
11
11
  .w-full { width: 100% !important; }
12
- .w-100 { width: 100% !important; } // Bootstrap compat alias
12
+ .w-100 { width: 100% !important; } // alias of w-full
13
13
  .w-auto { width: auto !important; }
14
14
  .w-screen { width: 100vw !important; }
15
15
  .w-fit { width: fit-content !important; }
16
16
 
17
17
  .h-full { height: 100% !important; }
18
- .h-100 { height: 100% !important; } // Bootstrap compat alias
18
+ .h-100 { height: 100% !important; } // alias of h-full
19
19
  .h-auto { height: auto !important; }
20
20
  .h-screen { height: 100vh !important; }
21
21
  .h-fit { height: fit-content !important; }
@@ -1,6 +1,4 @@
1
1
  @use '../fonts/fonts.scss';
2
- // Tạm thời giữ bootstrap.scss để so sánh — xóa sau khi confirm _base.scss OK
3
- // @use './core/bootstrap.scss';
4
2
  @use './core/utilities/base'; // Reset / Reboot — phải load trước tất cả
5
3
  @use './core/utilities';
6
4
  @use './core/color.scss';
@@ -1,11 +1,12 @@
1
1
  import { EventEmitter } from '@angular/core';
2
+ import { Color, Size } from '@sdcorejs/utils/models';
2
3
  import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
3
4
  import * as i0 from "@angular/core";
4
5
  export type SdBadgeType = 'tag' | 'round' | 'icon';
5
6
  export declare class SdBadge {
6
7
  defaultIcon: string;
7
8
  type: import("@angular/core").InputSignalWithTransform<SdBadgeType, SdBadgeType | null | undefined>;
8
- color: import("@angular/core").InputSignalWithTransform<import("@sdcorejs/utils/models").Color, import("@sdcorejs/utils/models").Color | null | undefined>;
9
+ color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
9
10
  primary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
10
11
  secondary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
11
12
  success: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -17,10 +18,10 @@ export declare class SdBadge {
17
18
  description: import("@angular/core").InputSignal<string | null | undefined>;
18
19
  tooltip: import("@angular/core").InputSignal<string | null | undefined>;
19
20
  icon: import("@angular/core").InputSignal<string | null | undefined>;
20
- size: import("@angular/core").InputSignalWithTransform<import("@sdcorejs/utils/models").Size, import("@sdcorejs/utils/models").Size | null | undefined>;
21
+ size: import("@angular/core").InputSignalWithTransform<Size, Size | null | undefined>;
21
22
  click: EventEmitter<Event>;
22
23
  onClick: (event: Event) => void;
23
- effectiveColor: import("@angular/core").Signal<import("@sdcorejs/utils/models").Color>;
24
+ effectiveColor: import("@angular/core").Signal<Color>;
24
25
  baseColorClasses: import("@angular/core").Signal<{
25
26
  'c-primary': boolean;
26
27
  'c-secondary': boolean;
@@ -46,6 +47,11 @@ export declare class SdBadge {
46
47
  'material-icons-round': boolean;
47
48
  'material-icons-sharp': boolean;
48
49
  }>;
50
+ containerSizeClasses: import("@angular/core").Signal<{
51
+ 'c-badge--sm': boolean;
52
+ 'c-badge--md': boolean;
53
+ 'c-badge--lg': boolean;
54
+ }>;
49
55
  tagIconCombinedClasses: import("@angular/core").Signal<{
50
56
  'c-primary': boolean;
51
57
  'c-secondary': boolean;
@@ -61,6 +67,17 @@ export declare class SdBadge {
61
67
  'material-icons-round': boolean;
62
68
  'material-icons-sharp': boolean;
63
69
  }>;
70
+ containerCombinedClasses: import("@angular/core").Signal<{
71
+ 'c-badge--sm': boolean;
72
+ 'c-badge--md': boolean;
73
+ 'c-badge--lg': boolean;
74
+ 'c-primary': boolean;
75
+ 'c-secondary': boolean;
76
+ 'c-info': boolean;
77
+ 'c-success': boolean;
78
+ 'c-warning': boolean;
79
+ 'c-error': boolean;
80
+ }>;
64
81
  iconCombinedClasses: import("@angular/core").Signal<{
65
82
  'c-primary': boolean;
66
83
  'c-black400': boolean;
@@ -1,5 +1,6 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
3
+ import { Color } from '@sdcorejs/utils/models';
3
4
  import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
4
5
  import * as i0 from "@angular/core";
5
6
  export type SdButtonType = 'fill' | 'light' | 'outline' | 'link';
@@ -10,7 +11,7 @@ export declare class SdButton extends SdBaseSecureComponent implements OnInit, O
10
11
  private el;
11
12
  autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
12
13
  type: import("@angular/core").InputSignalWithTransform<SdButtonType, SdButtonType | null | undefined>;
13
- color: import("@angular/core").InputSignalWithTransform<import("@sdcorejs/utils/models").Color, import("@sdcorejs/utils/models").Color | null | undefined>;
14
+ color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
14
15
  size: import("@angular/core").InputSignalWithTransform<SdButtonSize, SdButtonSize | null | undefined>;
15
16
  fontSet: import("@angular/core").InputSignalWithTransform<MaterialIconFontSet, MaterialIconFontSet | null | undefined>;
16
17
  title: import("@angular/core").InputSignal<string | null | undefined>;
@@ -0,0 +1 @@
1
+ export * from './src/ckeditor-styles.component';
@@ -0,0 +1,25 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Styles-only component that loads the global CKEditor 5 stylesheet on demand.
4
+ *
5
+ * Why this exists:
6
+ * - CKEditor's CSS must be global (applies to body-rendered overlays, dialogs, balloons),
7
+ * which means whichever Angular component declares it must use ViewEncapsulation.None.
8
+ * - Switching encapsulation on the main editor components (`<sd-editor>`, `<sd-mini-editor>`,
9
+ * `<sd-document-builder>`) would un-scope all their local styles too.
10
+ * - Instead, this tiny no-render component owns the global CSS. The editor components embed
11
+ * `<sd-ckeditor-styles>` at the top of their template; the CSS is injected once into <head>
12
+ * the first time any editor instance mounts. Editor components themselves keep
13
+ * ViewEncapsulation.Emulated.
14
+ *
15
+ * Behavior:
16
+ * - Renders nothing in the DOM (empty template).
17
+ * - Angular dedupes styles per component class — multiple instances inject the <style> tag
18
+ * only once.
19
+ * - When the host editor component is lazy-loaded, this component's chunk and its CSS travel
20
+ * with it.
21
+ */
22
+ export declare class SdCKEditorStyles {
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdCKEditorStyles, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdCKEditorStyles, "sd-ckeditor-styles", never, {}, {}, never, never, true, never>;
25
+ }
@@ -1,7 +1,6 @@
1
1
  import { SdTableColumn, SdTableOption } from '@sd-angular/core/components/table';
2
2
  import { SdUploadFile } from '@sd-angular/core/components/upload-file';
3
- import { SdColor } from '@sd-angular/core/utilities';
4
- import { SdPatternType } from '@sd-angular/core/utilities/models';
3
+ import { Color, ValidationPatternType } from '@sdcorejs/utils/models';
5
4
  import { SdFormGenericSelectionStaticItem } from './form-generic-definition-selection.model';
6
5
  import { SdFormGenericExpression } from './form-generic-expression.model';
7
6
  import { SdFormGeneric } from './form-generic.model';
@@ -58,7 +57,7 @@ export interface SdFormGenericTextfield extends SdFormGenericComponentBase {
58
57
  validate?: {
59
58
  maxlength?: number;
60
59
  minlength?: number;
61
- pattern?: SdPatternType | string;
60
+ pattern?: ValidationPatternType | string;
62
61
  patternErrorMessage?: string;
63
62
  } & SdFormGenericComponentBase['validate'];
64
63
  }
@@ -68,7 +67,7 @@ export interface SdFormGenericChipString extends SdFormGenericComponentBase {
68
67
  validate?: {
69
68
  maxlength?: number;
70
69
  minlength?: number;
71
- pattern?: SdPatternType | string;
70
+ pattern?: ValidationPatternType | string;
72
71
  patternErrorMessage?: string;
73
72
  maxOfItems?: number;
74
73
  } & SdFormGenericComponentBase['validate'];
@@ -79,7 +78,7 @@ export interface SdFormGenericChipCalendar extends SdFormGenericComponentBase {
79
78
  validate?: {
80
79
  maxlength?: number;
81
80
  minlength?: number;
82
- pattern?: SdPatternType | string;
81
+ pattern?: ValidationPatternType | string;
83
82
  patternErrorMessage?: string;
84
83
  maxOfItems?: number;
85
84
  } & SdFormGenericComponentBase['validate'];
@@ -150,7 +149,7 @@ export interface SdFormGenericGroup {
150
149
  components: SdFormGenericComponent[];
151
150
  properties: {
152
151
  icon: string;
153
- color: SdColor;
152
+ color: Color;
154
153
  hidden?: boolean;
155
154
  hiddenWhenExpression?: SdFormGenericExpression;
156
155
  visibleWhenExpression?: SdFormGenericExpression;
@@ -1,4 +1,4 @@
1
- import { SdOperator } from '@sd-angular/core/utilities/models';
1
+ import { Operator as SdOperator } from '@sdcorejs/utils/models';
2
2
  import { SdFormGenericComponent, SdFormGenericGroup } from './form-generic-component.model';
3
3
  export interface SdFormGenericExpression {
4
4
  key: string;
@@ -1,9 +1,9 @@
1
- import { SdColor } from '@sd-angular/core/utilities';
1
+ import { Color } from '@sdcorejs/utils/models';
2
2
  export interface SdHistoryItemType {
3
3
  title: string;
4
4
  status?: {
5
5
  title?: string;
6
- color?: SdColor;
6
+ color?: Color;
7
7
  icon?: string;
8
8
  };
9
9
  date?: string;
@@ -0,0 +1,2 @@
1
+ export * from './src/inform.component';
2
+ export * from './src/inform-action.directive';
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Marker cho vùng action custom chiếu vào <sd-inform>.
4
+ * Khi có phần tử mang [sdInformAction], component ẩn link `actionLabel` mặc định.
5
+ */
6
+ export declare class SdInformActionDirective {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdInformActionDirective, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdInformActionDirective, "[sdInformAction]", never, {}, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,59 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { Color } from '@sdcorejs/utils/models';
3
+ import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
4
+ import { SdInformActionDirective } from './inform-action.directive';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SdInform {
7
+ #private;
8
+ color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
9
+ primary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
10
+ secondary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
11
+ info: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
12
+ success: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
13
+ warning: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
14
+ error: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
15
+ title: import("@angular/core").InputSignal<string | undefined>;
16
+ description: import("@angular/core").InputSignal<string | undefined>;
17
+ icon: import("@angular/core").InputSignal<string | undefined>;
18
+ hideIcon: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
+ fontSet: import("@angular/core").InputSignalWithTransform<MaterialIconFontSet, MaterialIconFontSet | null | undefined>;
20
+ closable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
21
+ actionLabel: import("@angular/core").InputSignal<string | undefined>;
22
+ lineClamp: import("@angular/core").InputSignal<number | undefined>;
23
+ autoId: import("@angular/core").InputSignal<string | undefined>;
24
+ sdClosed: import("@angular/core").OutputEmitterRef<Event>;
25
+ sdAction: import("@angular/core").OutputEmitterRef<Event>;
26
+ readonly dismissed: import("@angular/core").WritableSignal<boolean>;
27
+ readonly expanded: import("@angular/core").WritableSignal<boolean>;
28
+ readonly overflowing: import("@angular/core").WritableSignal<boolean>;
29
+ protected readonly bodyRef: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
30
+ protected readonly actionSlot: import("@angular/core").Signal<SdInformActionDirective | undefined>;
31
+ effectiveColor: import("@angular/core").Signal<Color>;
32
+ colorClasses: import("@angular/core").Signal<{
33
+ 'c-primary': boolean;
34
+ 'c-secondary': boolean;
35
+ 'c-info': boolean;
36
+ 'c-success': boolean;
37
+ 'c-warning': boolean;
38
+ 'c-error': boolean;
39
+ }>;
40
+ effectiveIcon: import("@angular/core").Signal<string | null>;
41
+ fontSetClasses: import("@angular/core").Signal<{
42
+ 'material-icons': boolean;
43
+ 'material-icons-outlined': boolean;
44
+ 'material-icons-round': boolean;
45
+ 'material-icons-sharp': boolean;
46
+ }>;
47
+ hasActionSlot: import("@angular/core").Signal<boolean>;
48
+ clampLines: import("@angular/core").Signal<number | null>;
49
+ showToggle: import("@angular/core").Signal<boolean>;
50
+ liveRole: import("@angular/core").Signal<"alert" | "status">;
51
+ constructor();
52
+ /** Đo tràn dòng của body; chỉ có ý nghĩa khi đang clamp. */
53
+ measureOverflow(): void;
54
+ toggleExpanded(): void;
55
+ onClose(event: Event): void;
56
+ onAction(event: Event): void;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdInform, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdInform, "sd-inform", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "primary": { "alias": "primary"; "required": false; "isSignal": true; }; "secondary": { "alias": "secondary"; "required": false; "isSignal": true; }; "info": { "alias": "info"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "warning": { "alias": "warning"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "hideIcon": { "alias": "hideIcon"; "required": false; "isSignal": true; }; "fontSet": { "alias": "fontSet"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "actionLabel": { "alias": "actionLabel"; "required": false; "isSignal": true; }; "lineClamp": { "alias": "lineClamp"; "required": false; "isSignal": true; }; "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; }, { "sdClosed": "sdClosed"; "sdAction": "sdAction"; }, ["actionSlot"], ["[sdInformAction]"], true, never>;
59
+ }
@@ -1,4 +1,5 @@
1
1
  import { ElementRef, TemplateRef } from '@angular/core';
2
+ import { Color } from '@sdcorejs/utils/models';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class SdModal {
4
5
  #private;
@@ -10,11 +11,11 @@ export declare class SdModal {
10
11
  readonly closeButtonAutoId: import("@angular/core").Signal<string | undefined>;
11
12
  readonly dataOpened: import("@angular/core").Signal<"true" | "false">;
12
13
  title: import("@angular/core").InputSignalWithTransform<string, string | null | undefined>;
13
- color: import("@angular/core").InputSignalWithTransform<import("@sdcorejs/utils/models").Color, import("@sdcorejs/utils/models").Color | null | undefined>;
14
+ color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
14
15
  width: import("@angular/core").InputSignalWithTransform<string, string | null | undefined>;
15
16
  height: import("@angular/core").InputSignalWithTransform<string, string | null | undefined>;
16
17
  view: import("@angular/core").InputSignalWithTransform<"dialog" | "bottom-sheet" | undefined, "dialog" | "bottom-sheet" | null | undefined>;
17
- modalClass: import("@angular/core").InputSignalWithTransform<string | string[] | Record<string, boolean>, string | string[] | Record<string, boolean> | null | undefined>;
18
+ modalClass: import("@angular/core").InputSignalWithTransform<string | Record<string, boolean> | string[], string | Record<string, boolean> | string[] | null | undefined>;
18
19
  lazyLoadContent: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
20
  hideClose: import("@angular/core").InputSignalWithTransform<boolean, boolean | "">;
20
21
  disableBackdropClose: import("@angular/core").InputSignalWithTransform<boolean, boolean | "">;
@@ -1,14 +1,14 @@
1
- import { SdQuery, SdQueryLogic, SdSavedFilter } from './query-bar.model';
1
+ import { SdQuery, SdQueryLogic, SdSavedFilter } from '../../query-bar.model';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
- * Right-pinned toolbar for `sd-query-bar`: AND/OR connector toggle, saved-filters
5
- * dropdown, clear-all, a save-filter shortcut, and the deferred Search trigger.
6
- * Owns no business logic — just routes user intent back via outputs
7
- * (`(logic)` model, `(clear)`, `(search)`, `(applyFilter)`).
4
+ * Right-pinned toolbar for `sd-query-bar`: AND/OR connector toggle, clear-all,
5
+ * saved-filters dropdown (with footer "Lưu bộ lọc hiện tại"), and the deferred
6
+ * Search trigger. Owns no business logic — just routes user intent back via
7
+ * outputs (`(logic)` model, `(clear)`, `(search)`, `(applyFilter)`).
8
8
  *
9
- * The "save filter" button forwards to `SdQuerySavedFiltersMenu.promptSave()` so
10
- * the user can save the current query without first opening the saved-filters
11
- * dropdown keeps the save action adjacent to the Search trigger.
9
+ * The "save current query" action lives INSIDE the saved-filters mat-menu
10
+ * footer (one zone for both apply + save). The dropdown trigger sits
11
+ * immediately before Search so the user sees one filter-cluster on the right.
12
12
  */
13
13
  export declare class SdQueryActionsBar {
14
14
  readonly showLogicToggle: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -22,10 +22,7 @@ export declare class SdQueryActionsBar {
22
22
  readonly clear: import("@angular/core").OutputEmitterRef<void>;
23
23
  readonly canSearch: import("@angular/core").InputSignal<boolean>;
24
24
  readonly search: import("@angular/core").OutputEmitterRef<void>;
25
- private readonly savedFiltersMenu;
26
25
  setLogic(value: SdQueryLogic): void;
27
- /** Trigger save-current-query via the saved-filters child (no-op when menu absent / no key). */
28
- promptSave(): void;
29
26
  static ɵfac: i0.ɵɵFactoryDeclaration<SdQueryActionsBar, never>;
30
27
  static ɵcmp: i0.ɵɵComponentDeclaration<SdQueryActionsBar, "sd-query-actions-bar", never, { "showLogicToggle": { "alias": "showLogicToggle"; "required": false; "isSignal": true; }; "logic": { "alias": "logic"; "required": false; "isSignal": true; }; "filtersCount": { "alias": "filtersCount"; "required": false; "isSignal": true; }; "showSavedFilters": { "alias": "showSavedFilters"; "required": false; "isSignal": true; }; "savedFiltersKey": { "alias": "savedFiltersKey"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "showClearAll": { "alias": "showClearAll"; "required": false; "isSignal": true; }; "canSearch": { "alias": "canSearch"; "required": false; "isSignal": true; }; }, { "logic": "logicChange"; "applyFilter": "applyFilter"; "clear": "clear"; "search": "search"; }, never, never, true, never>;
31
28
  }
@@ -1,5 +1,5 @@
1
- import { Operator } from '@sd-angular/core/utilities/models';
2
- import { BuildingChip } from './query-bar.model';
1
+ import { Operator } from '@sdcorejs/utils/models';
2
+ import { BuildingChip } from '../../query-bar.model';
3
3
  import * as i0 from "@angular/core";
4
4
  type Density = 'compact' | 'comfortable';
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import { MatMenu } from '@angular/material/menu';
2
- import { Filter, Operator } from '@sd-angular/core/utilities/models';
3
- import { SdQueryField, sdQueryFieldIcon } from './query-bar.model';
2
+ import { Filter, Operator } from '@sdcorejs/utils/models';
3
+ import { SdQueryField, sdQueryFieldIcon } from '../../query-bar.model';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Popover-mode chip editor — the entire `<mat-menu>` that opens when a popover-mode
@@ -1,5 +1,5 @@
1
1
  import { MatMenu } from '@angular/material/menu';
2
- import { SdQueryField, sdQueryFieldIcon } from './query-bar.model';
2
+ import { SdQueryField, sdQueryFieldIcon } from '../../query-bar.model';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Field picker mat-menu for `sd-query-bar`.
@@ -1,5 +1,5 @@
1
- import { Filter, Operator } from '@sd-angular/core/utilities/models';
2
- import { SdQueryField } from './query-bar.model';
1
+ import { Filter, Operator } from '@sdcorejs/utils/models';
2
+ import { SdQueryField } from '../../query-bar.model';
3
3
  import * as i0 from "@angular/core";
4
4
  type Density = 'compact' | 'comfortable';
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { Operator } from '@sd-angular/core/utilities/models';
2
- import { SdQueryField } from './query-bar.model';
1
+ import { Operator } from '@sdcorejs/utils/models';
2
+ import { SdQueryField } from '../../query-bar.model';
3
3
  import * as i0 from "@angular/core";
4
4
  type ChipState = 'pending' | 'active' | 'focus' | 'error';
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import { MatMenu } from '@angular/material/menu';
2
- import { Filter, Operator } from '@sd-angular/core/utilities/models';
3
- import { SdQueryField, sdQueryFieldIcon } from './query-bar.model';
2
+ import { Filter, Operator } from '@sdcorejs/utils/models';
3
+ import { SdQueryField, sdQueryFieldIcon } from '../../query-bar.model';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Compact popover-mode chip face. Click → opens the parent-supplied [menu] (mat-menu
@@ -1,4 +1,4 @@
1
- import { SdQuery, SdSavedFilter } from './query-bar.model';
1
+ import { SdQuery, SdSavedFilter } from '../../query-bar.model';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Saved-filters dropdown for `sd-query-bar`.
@@ -1,6 +1,6 @@
1
- import { Filter, Operator } from '@sd-angular/core/utilities/models';
2
- import { SdQueryChipPopover } from './chip-popover.component';
3
- import { SdQueryPopoverChip } from './popover-chip.component';
1
+ import { Filter, Operator } from '@sdcorejs/utils/models';
2
+ import { SdQueryChipPopover } from './components/chip-popover/chip-popover.component';
3
+ import { SdQueryPopoverChip } from './components/popover-chip/popover-chip.component';
4
4
  import { BuildingChip, SdQuery, SdQueryField, SdQueryLogic, SdSavedFilter, sdQueryFieldIcon } from './query-bar.model';
5
5
  import * as i0 from "@angular/core";
6
6
  type Density = 'compact' | 'comfortable';
@@ -1,6 +1,6 @@
1
1
  import { Signal } from '@angular/core';
2
2
  import { SdSearch } from '@sd-angular/core/forms/models';
3
- import { Filter, NestedKeyOf, Operator } from '@sd-angular/core/utilities/models';
3
+ import { Filter, NestedKeyOf, Operator } from '@sdcorejs/utils/models';
4
4
  export type SdQueryFieldType = 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'values' | 'lazy-values';
5
5
  interface SdQueryFieldBase<T = any> {
6
6
  /** Dot-notation field path (matches `Filter.field`). */
@@ -1,11 +1,12 @@
1
1
  import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
2
+ import { Color } from '@sdcorejs/utils/models';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class SdSection extends SdBaseSecureComponent {
4
5
  #private;
5
6
  title: import("@angular/core").InputSignal<string | null | undefined>;
6
7
  subTitle: import("@angular/core").InputSignal<string | null | undefined>;
7
8
  icon: import("@angular/core").InputSignal<string | null | undefined>;
8
- iconColor: import("@angular/core").InputSignal<import("@sdcorejs/utils/models").Color>;
9
+ iconColor: import("@angular/core").InputSignal<Color>;
9
10
  collapsed: import("@angular/core").ModelSignal<boolean>;
10
11
  collapsable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
11
12
  hideHeader: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -0,0 +1,2 @@
1
+ export * from './src/step.component';
2
+ export * from './src/stepper.component';
@@ -0,0 +1,17 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { AbstractControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export type SdStepState = 'pending' | 'active' | 'completed' | 'error' | string;
5
+ export declare class SdStep {
6
+ label: import("@angular/core").InputSignal<string>;
7
+ icon: import("@angular/core").InputSignal<string | null | undefined>;
8
+ optional: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
9
+ editable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
10
+ stepControl: import("@angular/core").InputSignal<AbstractControl<any, any> | null | undefined>;
11
+ state: import("@angular/core").InputSignal<string | undefined>;
12
+ errorMessage: import("@angular/core").InputSignal<string | undefined>;
13
+ selectChange: import("@angular/core").OutputEmitterRef<void>;
14
+ bodyTpl: import("@angular/core").Signal<TemplateRef<unknown>>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdStep, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdStep, "sd-step", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "stepControl": { "alias": "stepControl"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; }, { "selectChange": "selectChange"; }, never, ["*"], true, never>;
17
+ }
@@ -0,0 +1,33 @@
1
+ import { StepperSelectionEvent } from '@angular/cdk/stepper';
2
+ import { MatStepper } from '@angular/material/stepper';
3
+ import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
4
+ import { Color } from '@sdcorejs/utils/models';
5
+ import { SdStep } from './step.component';
6
+ import * as i0 from "@angular/core";
7
+ export declare class SdStepper extends SdBaseSecureComponent {
8
+ steps: import("@angular/core").Signal<readonly SdStep[]>;
9
+ selectedIndex: import("@angular/core").ModelSignal<number>;
10
+ linear: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
11
+ orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
12
+ labelPosition: import("@angular/core").InputSignal<"end" | "bottom">;
13
+ headerPosition: import("@angular/core").InputSignal<"bottom" | "top">;
14
+ animationDuration: import("@angular/core").InputSignal<string>;
15
+ disableRipple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ color: import("@angular/core").InputSignal<Color>;
17
+ autoId: import("@angular/core").InputSignal<string | undefined>;
18
+ selectionChange: import("@angular/core").OutputEmitterRef<StepperSelectionEvent>;
19
+ protected matStepper: import("@angular/core").Signal<MatStepper | undefined>;
20
+ get autoIdAttr(): string | null;
21
+ get cssActive(): string;
22
+ get cssActiveBg(): string;
23
+ get cssCompleted(): string;
24
+ get cssLine(): string;
25
+ constructor();
26
+ next(): void;
27
+ previous(): void;
28
+ reset(): void;
29
+ goTo(index: number): void;
30
+ protected onSelectionChange(ev: StepperSelectionEvent): void;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdStepper, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdStepper, "sd-stepper", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "headerPosition": { "alias": "headerPosition"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "selectionChange": "selectionChange"; }, ["steps"], never, true, never>;
33
+ }
@@ -0,0 +1,2 @@
1
+ export * from './src/tab.component';
2
+ export * from './src/tab-group.component';