@sd-angular/core 19.0.13 → 19.0.15

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 (170) hide show
  1. package/README.md +712 -712
  2. package/assets/STYLE-GUIDE.md +601 -601
  3. package/assets/images/coming-soon.svg +22 -22
  4. package/assets/images/data-empty.svg +20 -20
  5. package/assets/images/expired.svg +21 -21
  6. package/assets/images/file-error.svg +27 -27
  7. package/assets/images/filter-empty.svg +19 -19
  8. package/assets/images/filter-required.svg +20 -20
  9. package/assets/images/forbidden.svg +14 -14
  10. package/assets/images/image-error.svg +26 -26
  11. package/assets/images/maintenance.svg +22 -22
  12. package/assets/images/not-found.svg +19 -19
  13. package/assets/images/offline.svg +19 -19
  14. package/assets/images/submitted.svg +17 -17
  15. package/assets/images/success.svg +17 -17
  16. package/assets/images/unauthorized.svg +21 -21
  17. package/assets/images/unknown-error.svg +17 -17
  18. package/assets/scss/ckeditor5.scss +88 -88
  19. package/assets/scss/core/_inline-edit.scss +105 -105
  20. package/assets/scss/core/color.scss +73 -73
  21. package/assets/scss/core/form.scss +317 -317
  22. package/assets/scss/core/image.scss +35 -35
  23. package/assets/scss/core/utilities/_base.scss +333 -333
  24. package/assets/scss/core/utilities/_border.scss +22 -22
  25. package/assets/scss/core/utilities/_display.scss +10 -10
  26. package/assets/scss/core/utilities/_elevation.scss +80 -80
  27. package/assets/scss/core/utilities/_flexbox.scss +54 -54
  28. package/assets/scss/core/utilities/_gap.scss +9 -9
  29. package/assets/scss/core/utilities/_index.scss +17 -17
  30. package/assets/scss/core/utilities/_misc.scss +20 -20
  31. package/assets/scss/core/utilities/_overflow.scss +9 -9
  32. package/assets/scss/core/utilities/_position.scss +8 -8
  33. package/assets/scss/core/utilities/_sizing.scss +28 -28
  34. package/assets/scss/core/utilities/_spacing.scss +31 -31
  35. package/assets/scss/core/utilities/_typography.scss +99 -99
  36. package/assets/scss/sd-core.scss +16 -16
  37. package/assets/scss/themes/default.scss +45 -45
  38. package/assets/scss/themes/material-theme.scss +101 -101
  39. package/components/preview/src/preview-pdf/pdf-worker-inline.generated.d.ts +7 -0
  40. package/components/table/src/services/table-export/table-export.service.d.ts +3 -1
  41. package/components/table/src/table.component.d.ts +1 -1
  42. package/fesm2022/sd-angular-core-components-anchor.mjs +6 -6
  43. package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
  44. package/fesm2022/sd-angular-core-components-autoid-inspector.mjs +2 -2
  45. package/fesm2022/sd-angular-core-components-autoid-inspector.mjs.map +1 -1
  46. package/fesm2022/sd-angular-core-components-badge.mjs +2 -2
  47. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  48. package/fesm2022/sd-angular-core-components-base.mjs.map +1 -1
  49. package/fesm2022/sd-angular-core-components-button.mjs +2 -2
  50. package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
  51. package/fesm2022/sd-angular-core-components-chart.mjs +40 -40
  52. package/fesm2022/sd-angular-core-components-chart.mjs.map +1 -1
  53. package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs.map +1 -1
  54. package/fesm2022/sd-angular-core-components-code-editor.mjs +2 -2
  55. package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -1
  56. package/fesm2022/sd-angular-core-components-document-builder.mjs +77 -77
  57. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  58. package/fesm2022/sd-angular-core-components-editor.mjs +2 -2
  59. package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
  60. package/fesm2022/sd-angular-core-components-form-generic.mjs +106 -106
  61. package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
  62. package/fesm2022/sd-angular-core-components-history.mjs +2 -2
  63. package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
  64. package/fesm2022/sd-angular-core-components-import-excel.mjs +2 -2
  65. package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
  66. package/fesm2022/sd-angular-core-components-inform.mjs.map +1 -1
  67. package/fesm2022/sd-angular-core-components-mini-editor.mjs +2 -2
  68. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -1
  69. package/fesm2022/sd-angular-core-components-modal-resizable.mjs +2 -2
  70. package/fesm2022/sd-angular-core-components-modal-resizable.mjs.map +1 -1
  71. package/fesm2022/sd-angular-core-components-modal.mjs +2 -2
  72. package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
  73. package/fesm2022/sd-angular-core-components-operator.mjs +2 -2
  74. package/fesm2022/sd-angular-core-components-operator.mjs.map +1 -1
  75. package/fesm2022/sd-angular-core-components-org-chart.mjs +2 -2
  76. package/fesm2022/sd-angular-core-components-org-chart.mjs.map +1 -1
  77. package/fesm2022/sd-angular-core-components-preview.mjs +32 -6
  78. package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
  79. package/fesm2022/sd-angular-core-components-query-bar.mjs +10 -10
  80. package/fesm2022/sd-angular-core-components-query-bar.mjs.map +1 -1
  81. package/fesm2022/sd-angular-core-components-query-builder.mjs +2 -2
  82. package/fesm2022/sd-angular-core-components-query-builder.mjs.map +1 -1
  83. package/fesm2022/sd-angular-core-components-section.mjs +4 -4
  84. package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
  85. package/fesm2022/sd-angular-core-components-side-drawer.mjs +2 -2
  86. package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
  87. package/fesm2022/sd-angular-core-components-stepper.mjs +2 -2
  88. package/fesm2022/sd-angular-core-components-stepper.mjs.map +1 -1
  89. package/fesm2022/sd-angular-core-components-tab-router.mjs +6 -6
  90. package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
  91. package/fesm2022/sd-angular-core-components-tab.mjs +2 -2
  92. package/fesm2022/sd-angular-core-components-tab.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-components-table.mjs +32 -17
  94. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  95. package/fesm2022/sd-angular-core-components-upload-file.mjs +4 -4
  96. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  97. package/fesm2022/sd-angular-core-components-view.mjs +2 -2
  98. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-configurations.mjs.map +1 -1
  100. package/fesm2022/sd-angular-core-directives.mjs +20 -20
  101. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  102. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +2 -2
  103. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  104. package/fesm2022/sd-angular-core-forms-checkbox.mjs +2 -2
  105. package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
  106. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +2 -2
  107. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
  108. package/fesm2022/sd-angular-core-forms-chip.mjs +2 -2
  109. package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
  110. package/fesm2022/sd-angular-core-forms-date-range.mjs +5 -6
  111. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  112. package/fesm2022/sd-angular-core-forms-date.mjs +136 -43
  113. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  114. package/fesm2022/sd-angular-core-forms-datetime.mjs +6 -6
  115. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  116. package/fesm2022/sd-angular-core-forms-directives.mjs.map +1 -1
  117. package/fesm2022/sd-angular-core-forms-inline-text.mjs +2 -2
  118. package/fesm2022/sd-angular-core-forms-inline-text.mjs.map +1 -1
  119. package/fesm2022/sd-angular-core-forms-input-color.mjs +2 -2
  120. package/fesm2022/sd-angular-core-forms-input-color.mjs.map +1 -1
  121. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  122. package/fesm2022/sd-angular-core-forms-input.mjs +2 -2
  123. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  124. package/fesm2022/sd-angular-core-forms-label.mjs +2 -2
  125. package/fesm2022/sd-angular-core-forms-label.mjs.map +1 -1
  126. package/fesm2022/sd-angular-core-forms-models.mjs +54 -2
  127. package/fesm2022/sd-angular-core-forms-models.mjs.map +1 -1
  128. package/fesm2022/sd-angular-core-forms-radio.mjs +2 -2
  129. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  130. package/fesm2022/sd-angular-core-forms-select.mjs +2 -2
  131. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  132. package/fesm2022/sd-angular-core-forms-switch.mjs +2 -2
  133. package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
  134. package/fesm2022/sd-angular-core-forms-textarea.mjs +2 -2
  135. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  136. package/fesm2022/sd-angular-core-handlers.mjs.map +1 -1
  137. package/fesm2022/sd-angular-core-i18n.mjs +20 -0
  138. package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
  139. package/fesm2022/sd-angular-core-interceptors.mjs.map +1 -1
  140. package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -1
  141. package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
  142. package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -1
  143. package/fesm2022/sd-angular-core-modules-layout.mjs +130 -43
  144. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  145. package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
  146. package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
  147. package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
  148. package/fesm2022/sd-angular-core-services-cache.mjs.map +1 -1
  149. package/fesm2022/sd-angular-core-services-confirm.mjs +2 -2
  150. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  151. package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -1
  152. package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
  153. package/fesm2022/sd-angular-core-services-license.mjs.map +1 -1
  154. package/fesm2022/sd-angular-core-services-loading.mjs +5 -5
  155. package/fesm2022/sd-angular-core-services-loading.mjs.map +1 -1
  156. package/fesm2022/sd-angular-core-services-notify.mjs +12 -12
  157. package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
  158. package/fesm2022/sd-angular-core-services-storage.mjs.map +1 -1
  159. package/fesm2022/sd-angular-core-utilities-data-state.mjs.map +1 -1
  160. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  161. package/forms/date/src/date-input.util.d.ts +18 -0
  162. package/forms/date/src/date.component.d.ts +9 -1
  163. package/forms/models/index.d.ts +1 -0
  164. package/forms/models/src/sd-strict-date-adapter.d.ts +26 -0
  165. package/i18n/src/en.d.ts +4 -0
  166. package/modules/layout/index.d.ts +1 -0
  167. package/modules/layout/utils/index.d.ts +1 -0
  168. package/modules/layout/utils/tab-name.util.d.ts +8 -0
  169. package/package.json +70 -70
  170. package/sd-angular-core-19.0.13.tgz +0 -0
@@ -1,99 +1,99 @@
1
- // --------------------------------------------------------------------------
2
- // SCSS variables — dùng nội bộ trong scss, không output CSS
3
- // Đặt tên theo thang đọc được: fw = font-weight, fs = font-size
4
- // --------------------------------------------------------------------------
5
- $fw-lighter: 400;
6
- $fw-normal: 500;
7
- $fw-bold: 600;
8
-
9
- $fs-xs: 11.2px;
10
- $fs-small: 14px;
11
- $fs-normal: 16px;
12
- $fs-regular: 18px;
13
- $fs-medium: 21px;
14
- $fs-large: 24px;
15
- $fs-xl: 28px;
16
- $fs-xxl: 38px;
17
- $fs-xxxl: 42px;
18
-
19
- // --------------------------------------------------------------------------
20
- // Design token classes — hệ thống typography của SD Angular
21
- // Quy ước: T{size}{weight} | M = Medium (500), R = Regular (400)
22
- // Mỗi class bao gồm font-size + font-weight + line-height chuẩn hóa
23
- // --------------------------------------------------------------------------
24
- .T48M { font-size: 48px; font-weight: 500; line-height: 56px; }
25
- .T48R { font-size: 48px; font-weight: 400; line-height: 56px; }
26
-
27
- .T32M { font-size: 32px; font-weight: 500; line-height: 48px; }
28
- .T32R { font-size: 32px; font-weight: 400; line-height: 48px; }
29
-
30
- .T24M { font-size: 24px; font-weight: 500; line-height: 28px; }
31
- .T24R { font-size: 20px; font-weight: 400; line-height: 28px; }
32
-
33
- .T20M { font-size: 20px; font-weight: 500; line-height: 28px; }
34
- .T20R { font-size: 20px; font-weight: 400; line-height: 28px; }
35
-
36
- .T18M { font-size: 18px; font-weight: 500; line-height: 28px; }
37
- .T18R { font-size: 18px; font-weight: 400; line-height: 28px; }
38
-
39
- .T16M { font-size: 16px; font-weight: 500; line-height: 24px; }
40
- .T16R { font-size: 16px; font-weight: 400; line-height: 24px; }
41
-
42
- .T14M { font-size: 14px; font-weight: 500; line-height: 20px; }
43
- .T14R { font-size: 14px; font-weight: 400; line-height: 20px; }
44
-
45
- .T12M { font-size: 12px; font-weight: 500; line-height: 16px; }
46
- // !important vì T12R thường bị override bởi material components
47
- .T12R { font-size: 12px !important; font-weight: 400; line-height: 16px; }
48
-
49
- .T10M { font-size: 10px; font-weight: 500; line-height: 12px; }
50
- .T10R { font-size: 10px; font-weight: 400; line-height: 12px; }
51
-
52
- // --------------------------------------------------------------------------
53
- // Font-size utilities (px-based, 0–200)
54
- // fs-0 … fs-200 — dùng khi cần ghi đè nhanh, không dùng thay token
55
- // --------------------------------------------------------------------------
56
- @for $i from 0 through 200 {
57
- .fs-#{$i} { font-size: #{$i}px !important; }
58
- }
59
-
60
- // --------------------------------------------------------------------------
61
- // Font-weight utilities
62
- // --------------------------------------------------------------------------
63
- .font-weight-light { font-weight: 300 !important; }
64
- .font-weight-normal { font-weight: 400 !important; }
65
- .font-weight-medium { font-weight: 500 !important; }
66
- .font-weight-bold { font-weight: 600 !important; }
67
- .font-weight-bolder { font-weight: 700 !important; }
68
-
69
- // --------------------------------------------------------------------------
70
- // Text alignment
71
- // --------------------------------------------------------------------------
72
- .text-left { text-align: left !important; }
73
- .text-center { text-align: center !important; }
74
- .text-right { text-align: right !important; }
75
- .text-justify { text-align: justify !important; }
76
-
77
- // --------------------------------------------------------------------------
78
- // Text wrapping & overflow
79
- // --------------------------------------------------------------------------
80
- .text-wrap { white-space: normal !important; }
81
- .text-nowrap { white-space: nowrap !important; }
82
- .text-ellipsis {
83
- // Hiển thị "..." khi text tràn — cần container có width cố định
84
- white-space: nowrap !important;
85
- overflow: hidden !important;
86
- text-overflow: ellipsis !important;
87
- }
88
- .text-break {
89
- // Xuống dòng từng ký tự khi tràn — dùng cho URL, hash, code dài
90
- overflow-wrap: break-word !important;
91
- word-break: break-word !important;
92
- }
93
-
94
- // --------------------------------------------------------------------------
95
- // Text transform
96
- // --------------------------------------------------------------------------
97
- .text-uppercase { text-transform: uppercase !important; }
98
- .text-lowercase { text-transform: lowercase !important; }
99
- .text-capitalize { text-transform: capitalize !important; }
1
+ // --------------------------------------------------------------------------
2
+ // SCSS variables — dùng nội bộ trong scss, không output CSS
3
+ // Đặt tên theo thang đọc được: fw = font-weight, fs = font-size
4
+ // --------------------------------------------------------------------------
5
+ $fw-lighter: 400;
6
+ $fw-normal: 500;
7
+ $fw-bold: 600;
8
+
9
+ $fs-xs: 11.2px;
10
+ $fs-small: 14px;
11
+ $fs-normal: 16px;
12
+ $fs-regular: 18px;
13
+ $fs-medium: 21px;
14
+ $fs-large: 24px;
15
+ $fs-xl: 28px;
16
+ $fs-xxl: 38px;
17
+ $fs-xxxl: 42px;
18
+
19
+ // --------------------------------------------------------------------------
20
+ // Design token classes — hệ thống typography của SD Angular
21
+ // Quy ước: T{size}{weight} | M = Medium (500), R = Regular (400)
22
+ // Mỗi class bao gồm font-size + font-weight + line-height chuẩn hóa
23
+ // --------------------------------------------------------------------------
24
+ .T48M { font-size: 48px; font-weight: 500; line-height: 56px; }
25
+ .T48R { font-size: 48px; font-weight: 400; line-height: 56px; }
26
+
27
+ .T32M { font-size: 32px; font-weight: 500; line-height: 48px; }
28
+ .T32R { font-size: 32px; font-weight: 400; line-height: 48px; }
29
+
30
+ .T24M { font-size: 24px; font-weight: 500; line-height: 28px; }
31
+ .T24R { font-size: 20px; font-weight: 400; line-height: 28px; }
32
+
33
+ .T20M { font-size: 20px; font-weight: 500; line-height: 28px; }
34
+ .T20R { font-size: 20px; font-weight: 400; line-height: 28px; }
35
+
36
+ .T18M { font-size: 18px; font-weight: 500; line-height: 28px; }
37
+ .T18R { font-size: 18px; font-weight: 400; line-height: 28px; }
38
+
39
+ .T16M { font-size: 16px; font-weight: 500; line-height: 24px; }
40
+ .T16R { font-size: 16px; font-weight: 400; line-height: 24px; }
41
+
42
+ .T14M { font-size: 14px; font-weight: 500; line-height: 20px; }
43
+ .T14R { font-size: 14px; font-weight: 400; line-height: 20px; }
44
+
45
+ .T12M { font-size: 12px; font-weight: 500; line-height: 16px; }
46
+ // !important vì T12R thường bị override bởi material components
47
+ .T12R { font-size: 12px !important; font-weight: 400; line-height: 16px; }
48
+
49
+ .T10M { font-size: 10px; font-weight: 500; line-height: 12px; }
50
+ .T10R { font-size: 10px; font-weight: 400; line-height: 12px; }
51
+
52
+ // --------------------------------------------------------------------------
53
+ // Font-size utilities (px-based, 0–200)
54
+ // fs-0 … fs-200 — dùng khi cần ghi đè nhanh, không dùng thay token
55
+ // --------------------------------------------------------------------------
56
+ @for $i from 0 through 200 {
57
+ .fs-#{$i} { font-size: #{$i}px !important; }
58
+ }
59
+
60
+ // --------------------------------------------------------------------------
61
+ // Font-weight utilities
62
+ // --------------------------------------------------------------------------
63
+ .font-weight-light { font-weight: 300 !important; }
64
+ .font-weight-normal { font-weight: 400 !important; }
65
+ .font-weight-medium { font-weight: 500 !important; }
66
+ .font-weight-bold { font-weight: 600 !important; }
67
+ .font-weight-bolder { font-weight: 700 !important; }
68
+
69
+ // --------------------------------------------------------------------------
70
+ // Text alignment
71
+ // --------------------------------------------------------------------------
72
+ .text-left { text-align: left !important; }
73
+ .text-center { text-align: center !important; }
74
+ .text-right { text-align: right !important; }
75
+ .text-justify { text-align: justify !important; }
76
+
77
+ // --------------------------------------------------------------------------
78
+ // Text wrapping & overflow
79
+ // --------------------------------------------------------------------------
80
+ .text-wrap { white-space: normal !important; }
81
+ .text-nowrap { white-space: nowrap !important; }
82
+ .text-ellipsis {
83
+ // Hiển thị "..." khi text tràn — cần container có width cố định
84
+ white-space: nowrap !important;
85
+ overflow: hidden !important;
86
+ text-overflow: ellipsis !important;
87
+ }
88
+ .text-break {
89
+ // Xuống dòng từng ký tự khi tràn — dùng cho URL, hash, code dài
90
+ overflow-wrap: break-word !important;
91
+ word-break: break-word !important;
92
+ }
93
+
94
+ // --------------------------------------------------------------------------
95
+ // Text transform
96
+ // --------------------------------------------------------------------------
97
+ .text-uppercase { text-transform: uppercase !important; }
98
+ .text-lowercase { text-transform: lowercase !important; }
99
+ .text-capitalize { text-transform: capitalize !important; }
@@ -1,17 +1,17 @@
1
- @use '../fonts/fonts.scss';
2
- @use './core/utilities/base'; // Reset / Reboot — phải load trước tất cả
3
- @use './core/utilities';
4
- @use './core/color.scss';
5
- @use './core/form.scss';
6
- @use './core/image.scss';
7
- @use './core/scrollbar.scss';
8
- @use './themes/default.scss';
9
- @use './themes/material-theme.scss';
10
-
11
- html {
12
- @include default.theme(default.$default-theme);
13
- }
14
-
15
- html, body {
16
- font-family: Roboto, 'Helvetica Neue', sans-serif;
1
+ @use '../fonts/fonts.scss';
2
+ @use './core/utilities/base'; // Reset / Reboot — phải load trước tất cả
3
+ @use './core/utilities';
4
+ @use './core/color.scss';
5
+ @use './core/form.scss';
6
+ @use './core/image.scss';
7
+ @use './core/scrollbar.scss';
8
+ @use './themes/default.scss';
9
+ @use './themes/material-theme.scss';
10
+
11
+ html {
12
+ @include default.theme(default.$default-theme);
13
+ }
14
+
15
+ html, body {
16
+ font-family: Roboto, 'Helvetica Neue', sans-serif;
17
17
  }
@@ -1,45 +1,45 @@
1
- @use "sass:map";
2
- @use "../core/color";
3
-
4
- $default-theme: (
5
- primary: #2A66F4,
6
- primary-light: #EAF1FF,
7
- primary-dark: #1C4AD9,
8
- info: #2962FF,
9
- info-light: #E7E9FF,
10
- info-dark: #2240CC,
11
- success: #4CAF50,
12
- success-light: #DBEFDC,
13
- success-dark: #39833C,
14
- warning: #FF9600,
15
- warning-light: #FFEACC,
16
- warning-dark: #BF7000,
17
- error: #F82C13,
18
- error-light: #FED5D0,
19
- error-dark: #BA200E,
20
- secondary: #212121,
21
- secondary-light: #E9E9E9,
22
- secondary-dark: #000000,
23
- light: #f8f9fa,
24
- dark: #343a40,
25
- black500: #212121,
26
- black400: #757575,
27
- black300: #BFBFBF,
28
- black200: #E6E6E6,
29
- black100: #F2F2F2,
30
- );
31
-
32
- // Can thiệp màu của Suffix/Prefix khi có lỗi
33
- // Chỉ áp dụng cho các component có hỗ trợ trailing icon
34
- :root {
35
- --mat-form-field-error-trailing-icon-color: #{map.get($default-theme, 'error')};
36
- --mat-form-field-error-hover-trailing-icon-color: #{map.get($default-theme, 'error-dark')};
37
- --mat-form-field-error-focus-trailing-icon-color: #{map.get($default-theme, 'error-dark')};
38
- }
39
-
40
- @mixin theme($theme) {
41
- $theme: map.merge($default-theme, $theme);
42
- @each $color in color.$system-colors {
43
- --sd-#{$color}: #{map.get($theme, $color)};
44
- }
45
- }
1
+ @use "sass:map";
2
+ @use "../core/color";
3
+
4
+ $default-theme: (
5
+ primary: #2A66F4,
6
+ primary-light: #EAF1FF,
7
+ primary-dark: #1C4AD9,
8
+ info: #2962FF,
9
+ info-light: #E7E9FF,
10
+ info-dark: #2240CC,
11
+ success: #4CAF50,
12
+ success-light: #DBEFDC,
13
+ success-dark: #39833C,
14
+ warning: #FF9600,
15
+ warning-light: #FFEACC,
16
+ warning-dark: #BF7000,
17
+ error: #F82C13,
18
+ error-light: #FED5D0,
19
+ error-dark: #BA200E,
20
+ secondary: #212121,
21
+ secondary-light: #E9E9E9,
22
+ secondary-dark: #000000,
23
+ light: #f8f9fa,
24
+ dark: #343a40,
25
+ black500: #212121,
26
+ black400: #757575,
27
+ black300: #BFBFBF,
28
+ black200: #E6E6E6,
29
+ black100: #F2F2F2,
30
+ );
31
+
32
+ // Can thiệp màu của Suffix/Prefix khi có lỗi
33
+ // Chỉ áp dụng cho các component có hỗ trợ trailing icon
34
+ :root {
35
+ --mat-form-field-error-trailing-icon-color: #{map.get($default-theme, 'error')};
36
+ --mat-form-field-error-hover-trailing-icon-color: #{map.get($default-theme, 'error-dark')};
37
+ --mat-form-field-error-focus-trailing-icon-color: #{map.get($default-theme, 'error-dark')};
38
+ }
39
+
40
+ @mixin theme($theme) {
41
+ $theme: map.merge($default-theme, $theme);
42
+ @each $color in color.$system-colors {
43
+ --sd-#{$color}: #{map.get($theme, $color)};
44
+ }
45
+ }
@@ -1,101 +1,101 @@
1
- @use '@angular/material' as mat;
2
- @use './default.scss' as default;
3
- @use 'sass:map';
4
-
5
- // --------------------------------------------------
6
- // Palette M2 — generated từ hex color
7
- // --------------------------------------------------
8
- $custom-primary-palette: mat.m2-define-palette(
9
- (
10
- 50: #f0f1f5,
11
- 100: #d7dcea,
12
- 200: #abbce3,
13
- 300: #6e90e3,
14
- 400: #346aea,
15
- 500: #2a66f4,
16
- 600: #0645db,
17
- 700: #0131a3,
18
- 800: #00216d,
19
- 900: #001546,
20
- contrast: (
21
- 400: white,
22
- 500: white,
23
- 600: white,
24
- 700: white,
25
- 800: white,
26
- 900: white,
27
- ),
28
- )
29
- );
30
-
31
- $custom-accent-palette: mat.m2-define-palette(
32
- (
33
- 50: #f1f3f1,
34
- 100: #dce5dd,
35
- 200: #bbd3bc,
36
- 300: #8fc291,
37
- 400: #67b76a,
38
- 500: #4caf50,
39
- 600: #3a8c3d,
40
- 700: #29692c,
41
- 800: #1c471e,
42
- 900: #132f14,
43
- contrast: (
44
- 700: white,
45
- 800: white,
46
- 900: white,
47
- ),
48
- )
49
- );
50
-
51
- $custom-warn-palette: mat.m2-define-palette(
52
- (
53
- 50: #f5f0f0,
54
- 100: #ead9d6,
55
- 200: #e4b0aa,
56
- 300: #e6786b,
57
- 400: #ee4430,
58
- 500: #f82c13,
59
- 600: #d11801,
60
- 700: #9a1100,
61
- 800: #680b00,
62
- 900: #440700,
63
- contrast: (
64
- 600: white,
65
- 700: white,
66
- 800: white,
67
- 900: white,
68
- ),
69
- )
70
- );
71
-
72
- // --------------------------------------------------
73
- // Theme
74
- // --------------------------------------------------
75
- $custom-theme: mat.m2-define-light-theme(
76
- (
77
- color: (
78
- primary: $custom-primary-palette,
79
- accent: $custom-accent-palette,
80
- warn: $custom-warn-palette,
81
- ),
82
- density: -3,
83
- )
84
- );
85
-
86
- @include mat.all-component-themes($custom-theme);
87
-
88
- // Fix paginator density riêng về 0 để không bị lệch
89
- html {
90
- @include mat.theme(
91
- (
92
- color: (
93
- theme-type: light,
94
- primary: mat.$azure-palette,
95
- tertiary: mat.$blue-palette,
96
- ),
97
- typography: Roboto,
98
- density: 0,
99
- )
100
- );
101
- }
1
+ @use '@angular/material' as mat;
2
+ @use './default.scss' as default;
3
+ @use 'sass:map';
4
+
5
+ // --------------------------------------------------
6
+ // Palette M2 — generated từ hex color
7
+ // --------------------------------------------------
8
+ $custom-primary-palette: mat.m2-define-palette(
9
+ (
10
+ 50: #f0f1f5,
11
+ 100: #d7dcea,
12
+ 200: #abbce3,
13
+ 300: #6e90e3,
14
+ 400: #346aea,
15
+ 500: #2a66f4,
16
+ 600: #0645db,
17
+ 700: #0131a3,
18
+ 800: #00216d,
19
+ 900: #001546,
20
+ contrast: (
21
+ 400: white,
22
+ 500: white,
23
+ 600: white,
24
+ 700: white,
25
+ 800: white,
26
+ 900: white,
27
+ ),
28
+ )
29
+ );
30
+
31
+ $custom-accent-palette: mat.m2-define-palette(
32
+ (
33
+ 50: #f1f3f1,
34
+ 100: #dce5dd,
35
+ 200: #bbd3bc,
36
+ 300: #8fc291,
37
+ 400: #67b76a,
38
+ 500: #4caf50,
39
+ 600: #3a8c3d,
40
+ 700: #29692c,
41
+ 800: #1c471e,
42
+ 900: #132f14,
43
+ contrast: (
44
+ 700: white,
45
+ 800: white,
46
+ 900: white,
47
+ ),
48
+ )
49
+ );
50
+
51
+ $custom-warn-palette: mat.m2-define-palette(
52
+ (
53
+ 50: #f5f0f0,
54
+ 100: #ead9d6,
55
+ 200: #e4b0aa,
56
+ 300: #e6786b,
57
+ 400: #ee4430,
58
+ 500: #f82c13,
59
+ 600: #d11801,
60
+ 700: #9a1100,
61
+ 800: #680b00,
62
+ 900: #440700,
63
+ contrast: (
64
+ 600: white,
65
+ 700: white,
66
+ 800: white,
67
+ 900: white,
68
+ ),
69
+ )
70
+ );
71
+
72
+ // --------------------------------------------------
73
+ // Theme
74
+ // --------------------------------------------------
75
+ $custom-theme: mat.m2-define-light-theme(
76
+ (
77
+ color: (
78
+ primary: $custom-primary-palette,
79
+ accent: $custom-accent-palette,
80
+ warn: $custom-warn-palette,
81
+ ),
82
+ density: -3,
83
+ )
84
+ );
85
+
86
+ @include mat.all-component-themes($custom-theme);
87
+
88
+ // Fix paginator density riêng về 0 để không bị lệch
89
+ html {
90
+ @include mat.theme(
91
+ (
92
+ color: (
93
+ theme-type: light,
94
+ primary: mat.$azure-palette,
95
+ tertiary: mat.$blue-palette,
96
+ ),
97
+ typography: Roboto,
98
+ density: 0,
99
+ )
100
+ );
101
+ }