@sd-angular/core 19.0.12 → 19.0.14
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.
- package/README.md +712 -712
- package/assets/STYLE-GUIDE.md +601 -601
- package/assets/images/coming-soon.svg +22 -22
- package/assets/images/data-empty.svg +20 -20
- package/assets/images/expired.svg +21 -21
- package/assets/images/file-error.svg +27 -27
- package/assets/images/filter-empty.svg +19 -19
- package/assets/images/filter-required.svg +20 -20
- package/assets/images/forbidden.svg +14 -14
- package/assets/images/image-error.svg +26 -26
- package/assets/images/maintenance.svg +22 -22
- package/assets/images/not-found.svg +19 -19
- package/assets/images/offline.svg +19 -19
- package/assets/images/submitted.svg +17 -17
- package/assets/images/success.svg +17 -17
- package/assets/images/unauthorized.svg +21 -21
- package/assets/images/unknown-error.svg +17 -17
- package/assets/scss/ckeditor5.scss +88 -88
- package/assets/scss/core/_inline-edit.scss +105 -105
- package/assets/scss/core/color.scss +73 -73
- package/assets/scss/core/form.scss +317 -317
- package/assets/scss/core/image.scss +35 -35
- package/assets/scss/core/utilities/_base.scss +333 -333
- package/assets/scss/core/utilities/_border.scss +22 -22
- package/assets/scss/core/utilities/_display.scss +10 -10
- package/assets/scss/core/utilities/_elevation.scss +80 -80
- package/assets/scss/core/utilities/_flexbox.scss +54 -54
- package/assets/scss/core/utilities/_gap.scss +9 -9
- package/assets/scss/core/utilities/_index.scss +17 -17
- package/assets/scss/core/utilities/_misc.scss +20 -20
- package/assets/scss/core/utilities/_overflow.scss +9 -9
- package/assets/scss/core/utilities/_position.scss +8 -8
- package/assets/scss/core/utilities/_sizing.scss +28 -28
- package/assets/scss/core/utilities/_spacing.scss +31 -31
- package/assets/scss/core/utilities/_typography.scss +99 -99
- package/assets/scss/sd-core.scss +16 -16
- package/assets/scss/themes/default.scss +45 -45
- package/assets/scss/themes/material-theme.scss +101 -101
- package/components/preview/src/preview-pdf/pdf-worker-inline.generated.d.ts +7 -0
- package/components/table/src/services/table-export/table-export.service.d.ts +3 -1
- package/components/table/src/table.component.d.ts +1 -1
- package/fesm2022/sd-angular-core-components-anchor.mjs +6 -6
- package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-autoid-inspector.mjs +2 -2
- package/fesm2022/sd-angular-core-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-badge.mjs +2 -2
- package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-base.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-button.mjs +2 -2
- package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-chart.mjs +40 -40
- package/fesm2022/sd-angular-core-components-chart.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-code-editor.mjs +2 -2
- package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-document-builder.mjs +77 -77
- package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-editor.mjs +2 -2
- package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-form-generic.mjs +106 -106
- package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-history.mjs +2 -2
- package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-import-excel.mjs +2 -2
- package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-inform.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-mini-editor.mjs +2 -2
- package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-modal-resizable.mjs +2 -2
- package/fesm2022/sd-angular-core-components-modal-resizable.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-modal.mjs +2 -2
- package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-operator.mjs +2 -2
- package/fesm2022/sd-angular-core-components-operator.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-org-chart.mjs +2 -2
- package/fesm2022/sd-angular-core-components-org-chart.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-preview.mjs +32 -6
- package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-query-bar.mjs +10 -10
- package/fesm2022/sd-angular-core-components-query-bar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-query-builder.mjs +2 -2
- package/fesm2022/sd-angular-core-components-query-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-section.mjs +4 -4
- package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-side-drawer.mjs +2 -2
- package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-stepper.mjs +2 -2
- package/fesm2022/sd-angular-core-components-stepper.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-tab-router.mjs +6 -6
- package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-tab.mjs +2 -2
- package/fesm2022/sd-angular-core-components-tab.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-table.mjs +32 -17
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-upload-file.mjs +4 -4
- package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-view.mjs +2 -2
- package/fesm2022/sd-angular-core-components-view.mjs.map +1 -1
- package/fesm2022/sd-angular-core-configurations.mjs.map +1 -1
- package/fesm2022/sd-angular-core-directives.mjs +20 -20
- package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-checkbox.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date-range.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date.mjs +114 -35
- package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-datetime.mjs +6 -6
- package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-directives.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-inline-text.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-inline-text.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input-color.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-input-color.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-label.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-label.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-models.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-radio.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-select.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-switch.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-textarea.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
- package/fesm2022/sd-angular-core-handlers.mjs.map +1 -1
- package/fesm2022/sd-angular-core-i18n.mjs +20 -0
- package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
- package/fesm2022/sd-angular-core-interceptors.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-layout.mjs +145 -46
- package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
- package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-cache.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-confirm.mjs +2 -2
- package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-license.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-loading.mjs +5 -5
- package/fesm2022/sd-angular-core-services-loading.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-notify.mjs +12 -12
- package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-storage.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-data-state.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
- package/forms/date/src/date.component.d.ts +9 -1
- package/i18n/src/en.d.ts +4 -0
- package/modules/layout/components/sidebar-v1/main.component.d.ts +1 -0
- package/modules/layout/index.d.ts +1 -0
- package/modules/layout/utils/index.d.ts +1 -0
- package/modules/layout/utils/tab-name.util.d.ts +8 -0
- package/package.json +41 -41
- package/sd-angular-core-19.0.12.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; }
|
package/assets/scss/sd-core.scss
CHANGED
|
@@ -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
|
+
}
|