platformcommons-web-lib 1.0.0
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/commons-shared-web-ui-1.0.0.tgz +0 -0
- package/documentation/alert.md +123 -0
- package/documentation/button-dropdown.md +126 -0
- package/documentation/button.md +184 -0
- package/documentation/cards-usage-guidelines.md +131 -0
- package/documentation/configurable-form.md +605 -0
- package/documentation/confirmation-modal.md +250 -0
- package/documentation/filter-sidebar.md +178 -0
- package/documentation/filter-table-selector.md +228 -0
- package/documentation/form-builder.md +597 -0
- package/documentation/form-components.md +384 -0
- package/documentation/nav.md +427 -0
- package/documentation/pagination.md +181 -0
- package/documentation/side-nav-documentation.md +169 -0
- package/documentation/smart-form.md +2177 -0
- package/documentation/smart-table.md +1198 -0
- package/documentation/snackbar.md +118 -0
- package/documentation/style-externalization.md +88 -0
- package/documentation/summary-card.md +279 -0
- package/ng-package.json +28 -0
- package/package.json +54 -0
- package/src/lib/modules/alert/alert.models.ts +6 -0
- package/src/lib/modules/alert/alert.module.ts +16 -0
- package/src/lib/modules/alert/alert.theme.scss +85 -0
- package/src/lib/modules/alert/components/alert/alert.component.html +27 -0
- package/src/lib/modules/alert/components/alert/alert.component.scss +92 -0
- package/src/lib/modules/alert/components/alert/alert.component.ts +81 -0
- package/src/lib/modules/button/button.models.ts +13 -0
- package/src/lib/modules/button/button.module.ts +16 -0
- package/src/lib/modules/button/button.theme.scss +121 -0
- package/src/lib/modules/button/components/button/button.component.html +22 -0
- package/src/lib/modules/button/components/button/button.component.scss +88 -0
- package/src/lib/modules/button/components/button/button.component.ts +67 -0
- package/src/lib/modules/button-dropdown/button-dropdown.models.ts +26 -0
- package/src/lib/modules/button-dropdown/button-dropdown.module.ts +22 -0
- package/src/lib/modules/button-dropdown/button-dropdown.theme.scss +87 -0
- package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.html +41 -0
- package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.scss +135 -0
- package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.ts +160 -0
- package/src/lib/modules/configurable-form/component/configurable-form.component.html +294 -0
- package/src/lib/modules/configurable-form/component/configurable-form.component.scss +503 -0
- package/src/lib/modules/configurable-form/component/configurable-form.component.ts +628 -0
- package/src/lib/modules/configurable-form/configurable-form.examples.ts +154 -0
- package/src/lib/modules/configurable-form/configurable-form.model.ts +131 -0
- package/src/lib/modules/configurable-form/configurable-form.module.ts +19 -0
- package/src/lib/modules/configurable-form/configurable-form.theme.scss +78 -0
- package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.html +77 -0
- package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.scss +395 -0
- package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.ts +266 -0
- package/src/lib/modules/confirmation-modal/confirmation-modal.models.ts +71 -0
- package/src/lib/modules/confirmation-modal/confirmation-modal.module.ts +20 -0
- package/src/lib/modules/confirmation-modal/confirmation-modal.theme.scss +87 -0
- package/src/lib/modules/filter/components/filter/filter.component.html +131 -0
- package/src/lib/modules/filter/components/filter/filter.component.scss +245 -0
- package/src/lib/modules/filter/components/filter/filter.component.ts +216 -0
- package/src/lib/modules/filter/filter.models.ts +88 -0
- package/src/lib/modules/filter/filter.module.ts +24 -0
- package/src/lib/modules/filter/filter.theme.scss +92 -0
- package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.html +112 -0
- package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.scss +186 -0
- package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.ts +163 -0
- package/src/lib/modules/filter-sidebar/filter-sidebar.models.ts +95 -0
- package/src/lib/modules/filter-sidebar/filter-sidebar.module.ts +24 -0
- package/src/lib/modules/filter-sidebar/filter-sidebar.theme.scss +38 -0
- package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.html +73 -0
- package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.scss +321 -0
- package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.ts +361 -0
- package/src/lib/modules/filter-table-selector/filter-table-selector.models.ts +91 -0
- package/src/lib/modules/filter-table-selector/filter-table-selector.module.ts +22 -0
- package/src/lib/modules/filter-table-selector/filter-table-selector.theme.scss +36 -0
- package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.html +63 -0
- package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.scss +496 -0
- package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.ts +445 -0
- package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.html +75 -0
- package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.scss +210 -0
- package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.ts +55 -0
- package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.html +25 -0
- package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.scss +82 -0
- package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.ts +95 -0
- package/src/lib/modules/form-builder/components/field-selection/field-selection.component.html +20 -0
- package/src/lib/modules/form-builder/components/field-selection/field-selection.component.scss +37 -0
- package/src/lib/modules/form-builder/components/field-selection/field-selection.component.ts +94 -0
- package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.html +46 -0
- package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.scss +102 -0
- package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.ts +50 -0
- package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.html +35 -0
- package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.scss +67 -0
- package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.ts +34 -0
- package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.html +68 -0
- package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.scss +113 -0
- package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.ts +74 -0
- package/src/lib/modules/form-builder/configs/field-type-schema.map.ts +533 -0
- package/src/lib/modules/form-builder/form-builder.module.ts +36 -0
- package/src/lib/modules/form-builder/form-builder.theme.scss +212 -0
- package/src/lib/modules/form-builder/index.ts +9 -0
- package/src/lib/modules/form-builder/models/builder.models.ts +7 -0
- package/src/lib/modules/form-builder/models/field-configurator.models.ts +38 -0
- package/src/lib/modules/form-builder/models/field-selection.models.ts +51 -0
- package/src/lib/modules/form-builder/services/field-configurator.service.ts +258 -0
- package/src/lib/modules/form-builder/services/field-selection.service.ts +300 -0
- package/src/lib/modules/form-builder/services/form-schema-tree.service.ts +652 -0
- package/src/lib/modules/form-builder/tokens/builder.tokens.ts +10 -0
- package/src/lib/modules/form-builder/utils/constants.ts +43 -0
- package/src/lib/modules/form-components/components/checkbox/_theme.scss +63 -0
- package/src/lib/modules/form-components/components/checkbox/checkbox.component.html +29 -0
- package/src/lib/modules/form-components/components/checkbox/checkbox.component.scss +111 -0
- package/src/lib/modules/form-components/components/checkbox/checkbox.component.ts +207 -0
- package/src/lib/modules/form-components/components/checkbox/checkbox.models.ts +35 -0
- package/src/lib/modules/form-components/components/datepicker/_theme.scss +82 -0
- package/src/lib/modules/form-components/components/datepicker/datepicker.component.html +42 -0
- package/src/lib/modules/form-components/components/datepicker/datepicker.component.scss +115 -0
- package/src/lib/modules/form-components/components/datepicker/datepicker.component.ts +267 -0
- package/src/lib/modules/form-components/components/datepicker/datepicker.models.ts +45 -0
- package/src/lib/modules/form-components/components/dropdown/_theme.scss +91 -0
- package/src/lib/modules/form-components/components/dropdown/dropdown.component.html +74 -0
- package/src/lib/modules/form-components/components/dropdown/dropdown.component.scss +252 -0
- package/src/lib/modules/form-components/components/dropdown/dropdown.component.ts +377 -0
- package/src/lib/modules/form-components/components/dropdown/dropdown.models.ts +53 -0
- package/src/lib/modules/form-components/components/input/_theme.scss +77 -0
- package/src/lib/modules/form-components/components/input/input.component.html +51 -0
- package/src/lib/modules/form-components/components/input/input.component.scss +128 -0
- package/src/lib/modules/form-components/components/input/input.component.ts +250 -0
- package/src/lib/modules/form-components/components/input/input.models.ts +55 -0
- package/src/lib/modules/form-components/components/radio/_theme.scss +61 -0
- package/src/lib/modules/form-components/components/radio/radio.component.html +22 -0
- package/src/lib/modules/form-components/components/radio/radio.component.scss +107 -0
- package/src/lib/modules/form-components/components/radio/radio.component.ts +181 -0
- package/src/lib/modules/form-components/components/radio/radio.models.ts +39 -0
- package/src/lib/modules/form-components/components/search/_theme.scss +73 -0
- package/src/lib/modules/form-components/components/search/search.component.html +15 -0
- package/src/lib/modules/form-components/components/search/search.component.scss +87 -0
- package/src/lib/modules/form-components/components/search/search.component.ts +213 -0
- package/src/lib/modules/form-components/components/search/search.models.ts +40 -0
- package/src/lib/modules/form-components/components/toggle/_theme.scss +45 -0
- package/src/lib/modules/form-components/components/toggle/toggle.component.html +15 -0
- package/src/lib/modules/form-components/components/toggle/toggle.component.scss +81 -0
- package/src/lib/modules/form-components/components/toggle/toggle.component.ts +166 -0
- package/src/lib/modules/form-components/components/toggle/toggle.models.ts +27 -0
- package/src/lib/modules/form-components/directives/click-outside.directive.ts +22 -0
- package/src/lib/modules/form-components/form-components.module.ts +41 -0
- package/src/lib/modules/form-components/form-components.theme.scss +25 -0
- package/src/lib/modules/material/material.module.ts +94 -0
- package/src/lib/modules/nav/components/nav/nav.component.html +34 -0
- package/src/lib/modules/nav/components/nav/nav.component.scss +171 -0
- package/src/lib/modules/nav/components/nav/nav.component.ts +82 -0
- package/src/lib/modules/nav/nav.models.ts +31 -0
- package/src/lib/modules/nav/nav.module.ts +17 -0
- package/src/lib/modules/nav/nav.theme.scss +86 -0
- package/src/lib/modules/pagination/components/pagination/pagination.component.html +52 -0
- package/src/lib/modules/pagination/components/pagination/pagination.component.scss +155 -0
- package/src/lib/modules/pagination/components/pagination/pagination.component.ts +109 -0
- package/src/lib/modules/pagination/pagination.module.ts +17 -0
- package/src/lib/modules/pagination/pagination.theme.scss +66 -0
- package/src/lib/modules/side-nav/components/side-nav/side-nav.component.html +56 -0
- package/src/lib/modules/side-nav/components/side-nav/side-nav.component.scss +342 -0
- package/src/lib/modules/side-nav/components/side-nav/side-nav.component.ts +135 -0
- package/src/lib/modules/side-nav/side-nav.models.ts +38 -0
- package/src/lib/modules/side-nav/side-nav.module.ts +16 -0
- package/src/lib/modules/side-nav/side-nav.theme.scss +111 -0
- package/src/lib/modules/smart-form/components/form-field/form-field.component.html +1109 -0
- package/src/lib/modules/smart-form/components/form-field/form-field.component.scss +1860 -0
- package/src/lib/modules/smart-form/components/form-field/form-field.component.ts +2232 -0
- package/src/lib/modules/smart-form/components/form-section/form-section.component.html +64 -0
- package/src/lib/modules/smart-form/components/form-section/form-section.component.scss +209 -0
- package/src/lib/modules/smart-form/components/form-section/form-section.component.ts +119 -0
- package/src/lib/modules/smart-form/components/smart-form/smart-form.component.html +253 -0
- package/src/lib/modules/smart-form/components/smart-form/smart-form.component.scss +689 -0
- package/src/lib/modules/smart-form/components/smart-form/smart-form.component.ts +1087 -0
- package/src/lib/modules/smart-form/index.ts +10 -0
- package/src/lib/modules/smart-form/models/form-schema.model.ts +700 -0
- package/src/lib/modules/smart-form/models/hierarchy-config.model.ts +21 -0
- package/src/lib/modules/smart-form/services/expression.service.ts +75 -0
- package/src/lib/modules/smart-form/services/smart-form-controller.service.ts +65 -0
- package/src/lib/modules/smart-form/smart-form.examples.ts +1324 -0
- package/src/lib/modules/smart-form/smart-form.module.ts +36 -0
- package/src/lib/modules/smart-form/smart-form.theme.scss +890 -0
- package/src/lib/modules/smart-form/utils/translation.utils.ts +82 -0
- package/src/lib/modules/smart-form/utils/trusted-url.pipe.ts +25 -0
- package/src/lib/modules/smart-form/utils/validation.utils.ts +98 -0
- package/src/lib/modules/smart-table/components/smart-table/smart-table.component.html +283 -0
- package/src/lib/modules/smart-table/components/smart-table/smart-table.component.scss +685 -0
- package/src/lib/modules/smart-table/components/smart-table/smart-table.component.ts +1118 -0
- package/src/lib/modules/smart-table/models/table-config.model.ts +202 -0
- package/src/lib/modules/smart-table/smart-table.module.ts +30 -0
- package/src/lib/modules/smart-table/smart-table.theme.scss +335 -0
- package/src/lib/modules/smart-table/utils/safe-html.pipe.ts +22 -0
- package/src/lib/modules/smart-table/utils/smart-table.utils.ts +18 -0
- package/src/lib/modules/snackbar/components/snackbar.component.html +41 -0
- package/src/lib/modules/snackbar/components/snackbar.component.scss +99 -0
- package/src/lib/modules/snackbar/components/snackbar.component.ts +18 -0
- package/src/lib/modules/snackbar/models/snackbar.models.ts +10 -0
- package/src/lib/modules/snackbar/services/snackbar.service.ts +40 -0
- package/src/lib/modules/snackbar/snackbar.module.ts +11 -0
- package/src/lib/modules/snackbar/snackbar.theme.scss +93 -0
- package/src/lib/modules/summary-card/components/summary-card/summary-card.component.html +47 -0
- package/src/lib/modules/summary-card/components/summary-card/summary-card.component.scss +199 -0
- package/src/lib/modules/summary-card/components/summary-card/summary-card.component.ts +126 -0
- package/src/lib/modules/summary-card/summary-card.module.ts +18 -0
- package/src/lib/modules/summary-card/summary-card.theme.scss +176 -0
- package/src/lib/shared-ui.module.ts +44 -0
- package/src/lib/styles/global.scss +152 -0
- package/src/lib/styles/utilities.scss +250 -0
- package/src/lib/utils/constants.ts +11 -0
- package/src/lib/utils/storage.utils.ts +37 -0
- package/src/lib/utils/string.utils.ts +23 -0
- package/src/lib/utils/translation.utils.ts +87 -0
- package/src/public-api.ts +104 -0
- package/tsconfig.lib.json +15 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
// Default configuration for the summary card theme (Theme 1 - Clean & Minimal)
|
|
4
|
+
$default-summary-card-config: (
|
|
5
|
+
// Base
|
|
6
|
+
font-family: ('Inter', sans-serif),
|
|
7
|
+
bg-color: #ffffff,
|
|
8
|
+
border-radius: 8px,
|
|
9
|
+
border: 1px solid #e0e0e0,
|
|
10
|
+
padding: 20px,
|
|
11
|
+
shadow: 0 1px 3px rgba(0, 0, 0, 0.05),
|
|
12
|
+
min-height: auto,
|
|
13
|
+
transition-duration: 0.2s,
|
|
14
|
+
|
|
15
|
+
// Hover States
|
|
16
|
+
hover-transform: translateY(-2px),
|
|
17
|
+
hover-shadow: 0 4px 8px rgba(0, 0, 0, 0.1),
|
|
18
|
+
|
|
19
|
+
// Disabled State
|
|
20
|
+
disabled-opacity: 0.5,
|
|
21
|
+
|
|
22
|
+
// Icon Section
|
|
23
|
+
icon-box-size: 48px,
|
|
24
|
+
icon-size: 24px,
|
|
25
|
+
icon-radius: 8px,
|
|
26
|
+
icon-bg: rgba(0, 0, 0, 0.05),
|
|
27
|
+
icon-color: #666666,
|
|
28
|
+
icon-margin: 1rem,
|
|
29
|
+
|
|
30
|
+
// Content Section
|
|
31
|
+
content-gap: 0.5rem,
|
|
32
|
+
|
|
33
|
+
// Header
|
|
34
|
+
header-size: 0.75rem,
|
|
35
|
+
header-weight: 600,
|
|
36
|
+
header-color: #6c757d,
|
|
37
|
+
header-transform: uppercase,
|
|
38
|
+
header-letter-spacing: 0.05em,
|
|
39
|
+
header-line-height: 1.2,
|
|
40
|
+
|
|
41
|
+
// Value
|
|
42
|
+
value-size: 1.5rem,
|
|
43
|
+
value-weight: 700,
|
|
44
|
+
value-color: #333333,
|
|
45
|
+
value-line-height: 1.2,
|
|
46
|
+
|
|
47
|
+
// Description
|
|
48
|
+
desc-size: 0.75rem,
|
|
49
|
+
desc-weight: 400,
|
|
50
|
+
desc-color: #6c757d,
|
|
51
|
+
desc-line-height: 1.4,
|
|
52
|
+
value-desc-gap: 0.25rem,
|
|
53
|
+
|
|
54
|
+
// Meta Pill
|
|
55
|
+
meta-pill-bg: #f1f5f9,
|
|
56
|
+
meta-pill-color: #475569,
|
|
57
|
+
meta-pill-padding: 4px 12px,
|
|
58
|
+
meta-pill-radius: 20px,
|
|
59
|
+
meta-pill-font-size: 0.75rem,
|
|
60
|
+
meta-pill-font-weight: 600
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
// Theme 2 configuration (Aesthetic & Modern)
|
|
64
|
+
$theme-2-summary-card-config: (
|
|
65
|
+
// Base
|
|
66
|
+
font-family: ('Poppins', 'Segoe UI', sans-serif),
|
|
67
|
+
bg-color: #ffffff,
|
|
68
|
+
border-radius: 16px,
|
|
69
|
+
border: none,
|
|
70
|
+
padding: 28px,
|
|
71
|
+
shadow: 0 8px 24px rgba(0, 0, 0, 0.08),
|
|
72
|
+
min-height: 120px,
|
|
73
|
+
transition-duration: 0.3s,
|
|
74
|
+
|
|
75
|
+
// Hover States
|
|
76
|
+
hover-transform: translateY(-4px),
|
|
77
|
+
hover-shadow: 0 12px 32px rgba(0, 0, 0, 0.15),
|
|
78
|
+
|
|
79
|
+
// Disabled State
|
|
80
|
+
disabled-opacity: 0.4,
|
|
81
|
+
|
|
82
|
+
// Icon Section
|
|
83
|
+
icon-box-size: 56px,
|
|
84
|
+
icon-size: 28px,
|
|
85
|
+
icon-radius: 12px,
|
|
86
|
+
icon-bg: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(168, 85, 247, 0.1) 100%),
|
|
87
|
+
icon-color: #6366f1,
|
|
88
|
+
icon-margin: 1.25rem,
|
|
89
|
+
|
|
90
|
+
// Content Section
|
|
91
|
+
content-gap: 0.75rem,
|
|
92
|
+
|
|
93
|
+
// Header
|
|
94
|
+
header-size: 0.8rem,
|
|
95
|
+
header-weight: 500,
|
|
96
|
+
header-color: #94a3b8,
|
|
97
|
+
header-transform: none,
|
|
98
|
+
header-letter-spacing: 0.02em,
|
|
99
|
+
header-line-height: 1.3,
|
|
100
|
+
|
|
101
|
+
// Value
|
|
102
|
+
value-size: 2rem,
|
|
103
|
+
value-weight: 700,
|
|
104
|
+
value-color: #1e293b,
|
|
105
|
+
value-line-height: 1.1,
|
|
106
|
+
|
|
107
|
+
// Description
|
|
108
|
+
desc-size: 0.85rem,
|
|
109
|
+
desc-weight: 400,
|
|
110
|
+
desc-color: #64748b,
|
|
111
|
+
desc-line-height: 1.5,
|
|
112
|
+
value-desc-gap: 0.5rem,
|
|
113
|
+
|
|
114
|
+
// Meta Pill
|
|
115
|
+
meta-pill-bg: #f1f5f9,
|
|
116
|
+
meta-pill-color: #475569,
|
|
117
|
+
meta-pill-padding: 4px 12px,
|
|
118
|
+
meta-pill-radius: 20px,
|
|
119
|
+
meta-pill-font-size: 0.75rem,
|
|
120
|
+
meta-pill-font-weight: 600
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
// Mixin to generate CSS variables for the summary card component
|
|
124
|
+
@mixin summary-card-theme($user-config: ()) {
|
|
125
|
+
// Merge user config with defaults
|
|
126
|
+
$config: map.merge($default-summary-card-config, $user-config);
|
|
127
|
+
|
|
128
|
+
// Generate CSS Variables
|
|
129
|
+
--cc-sc-font-family: #{map.get($config, font-family)};
|
|
130
|
+
--cc-sc-bg-color: #{map.get($config, bg-color)};
|
|
131
|
+
--cc-sc-border-radius: #{map.get($config, border-radius)};
|
|
132
|
+
--cc-sc-border: #{map.get($config, border)};
|
|
133
|
+
--cc-sc-padding: #{map.get($config, padding)};
|
|
134
|
+
--cc-sc-shadow: #{map.get($config, shadow)};
|
|
135
|
+
--cc-sc-min-height: #{map.get($config, min-height)};
|
|
136
|
+
--cc-sc-transition-duration: #{map.get($config, transition-duration)};
|
|
137
|
+
|
|
138
|
+
--cc-sc-hover-transform: #{map.get($config, hover-transform)};
|
|
139
|
+
--cc-sc-hover-shadow: #{map.get($config, hover-shadow)};
|
|
140
|
+
|
|
141
|
+
--cc-sc-disabled-opacity: #{map.get($config, disabled-opacity)};
|
|
142
|
+
|
|
143
|
+
--cc-sc-icon-box-size: #{map.get($config, icon-box-size)};
|
|
144
|
+
--cc-sc-icon-size: #{map.get($config, icon-size)};
|
|
145
|
+
--cc-sc-icon-radius: #{map.get($config, icon-radius)};
|
|
146
|
+
--cc-sc-icon-bg: #{map.get($config, icon-bg)};
|
|
147
|
+
--cc-sc-icon-color: #{map.get($config, icon-color)};
|
|
148
|
+
--cc-sc-icon-margin: #{map.get($config, icon-margin)};
|
|
149
|
+
|
|
150
|
+
--cc-sc-content-gap: #{map.get($config, content-gap)};
|
|
151
|
+
|
|
152
|
+
--cc-sc-header-size: #{map.get($config, header-size)};
|
|
153
|
+
--cc-sc-header-weight: #{map.get($config, header-weight)};
|
|
154
|
+
--cc-sc-header-color: #{map.get($config, header-color)};
|
|
155
|
+
--cc-sc-header-transform: #{map.get($config, header-transform)};
|
|
156
|
+
--cc-sc-header-letter-spacing: #{map.get($config, header-letter-spacing)};
|
|
157
|
+
--cc-sc-header-line-height: #{map.get($config, header-line-height)};
|
|
158
|
+
|
|
159
|
+
--cc-sc-value-size: #{map.get($config, value-size)};
|
|
160
|
+
--cc-sc-value-weight: #{map.get($config, value-weight)};
|
|
161
|
+
--cc-sc-value-color: #{map.get($config, value-color)};
|
|
162
|
+
--cc-sc-value-line-height: #{map.get($config, value-line-height)};
|
|
163
|
+
|
|
164
|
+
--cc-sc-desc-size: #{map.get($config, desc-size)};
|
|
165
|
+
--cc-sc-desc-weight: #{map.get($config, desc-weight)};
|
|
166
|
+
--cc-sc-desc-color: #{map.get($config, desc-color)};
|
|
167
|
+
--cc-sc-desc-line-height: #{map.get($config, desc-line-height)};
|
|
168
|
+
--cc-sc-value-desc-gap: #{map.get($config, value-desc-gap)};
|
|
169
|
+
|
|
170
|
+
--cc-sc-meta-pill-bg: #{map.get($config, meta-pill-bg)};
|
|
171
|
+
--cc-sc-meta-pill-color: #{map.get($config, meta-pill-color)};
|
|
172
|
+
--cc-sc-meta-pill-padding: #{map.get($config, meta-pill-padding)};
|
|
173
|
+
--cc-sc-meta-pill-radius: #{map.get($config, meta-pill-radius)};
|
|
174
|
+
--cc-sc-meta-pill-font-size: #{map.get($config, meta-pill-font-size)};
|
|
175
|
+
--cc-sc-meta-pill-font-weight: #{map.get($config, meta-pill-font-weight)};
|
|
176
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MaterialModule } from './modules/material/material.module';
|
|
4
|
+
import { AlertModule } from './modules/alert/alert.module';
|
|
5
|
+
import { ButtonModule } from './modules/button/button.module';
|
|
6
|
+
import { ButtonDropdownModule } from './modules/button-dropdown/button-dropdown.module';
|
|
7
|
+
import { ConfirmationModalModule } from './modules/confirmation-modal/confirmation-modal.module';
|
|
8
|
+
import { FilterSidebarModule } from './modules/filter-sidebar/filter-sidebar.module';
|
|
9
|
+
import { SummaryCardModule } from './modules/summary-card/summary-card.module';
|
|
10
|
+
import { ConfigurableFormModule } from './modules/configurable-form/configurable-form.module';
|
|
11
|
+
import { FormComponentsModule } from './modules/form-components/form-components.module';
|
|
12
|
+
import { SmartFormModule } from './modules/smart-form/smart-form.module';
|
|
13
|
+
import { FilterModule } from './modules/filter/filter.module';
|
|
14
|
+
import { SideNavModule } from './modules/side-nav/side-nav.module';
|
|
15
|
+
import { FormBuilderModule } from './modules/form-builder/form-builder.module';
|
|
16
|
+
import { FilterTableSelectorModule } from './modules/filter-table-selector/filter-table-selector.module';
|
|
17
|
+
|
|
18
|
+
@NgModule({
|
|
19
|
+
declarations: [],
|
|
20
|
+
imports: [
|
|
21
|
+
CommonModule,
|
|
22
|
+
MaterialModule,
|
|
23
|
+
AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
|
|
24
|
+
SummaryCardModule,
|
|
25
|
+
ConfigurableFormModule,
|
|
26
|
+
FormComponentsModule,
|
|
27
|
+
SmartFormModule,
|
|
28
|
+
SideNavModule,
|
|
29
|
+
FormBuilderModule,
|
|
30
|
+
FilterTableSelectorModule
|
|
31
|
+
],
|
|
32
|
+
exports: [
|
|
33
|
+
MaterialModule,
|
|
34
|
+
AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
|
|
35
|
+
SummaryCardModule,
|
|
36
|
+
ConfigurableFormModule,
|
|
37
|
+
FormComponentsModule,
|
|
38
|
+
SmartFormModule,
|
|
39
|
+
SideNavModule,
|
|
40
|
+
FormBuilderModule,
|
|
41
|
+
FilterTableSelectorModule
|
|
42
|
+
],
|
|
43
|
+
})
|
|
44
|
+
export class SharedUiModule { }
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
@use '../modules/side-nav/side-nav.theme' as sideNav;
|
|
2
|
+
@use '../modules/form-builder/form-builder.theme' as fb;
|
|
3
|
+
@use '../modules/filter-table-selector/filter-table-selector.theme' as fts;
|
|
4
|
+
@import 'quill/dist/quill.snow.css';
|
|
5
|
+
@import './utilities.scss';
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
@include sideNav.side-nav-theme();
|
|
9
|
+
@include fb.form-builder-theme();
|
|
10
|
+
--cc-card-bg: #ffffff;
|
|
11
|
+
--cc-card-border-color: #e0e0e0;
|
|
12
|
+
--cc-card-border-radius: 8px;
|
|
13
|
+
--cc-card-padding: 16px;
|
|
14
|
+
--cc-card-shadow: none;
|
|
15
|
+
|
|
16
|
+
@include fts.filter-table-selector-theme();
|
|
17
|
+
|
|
18
|
+
/* Text Colors */
|
|
19
|
+
--text-color: #333333;
|
|
20
|
+
--text-muted: #666666;
|
|
21
|
+
--text-muted-2: #888888;
|
|
22
|
+
--text-light: #6c757d;
|
|
23
|
+
--text-on-primary: #ffffff;
|
|
24
|
+
|
|
25
|
+
/* Borders & Icons */
|
|
26
|
+
--border-color: #dee2e6;
|
|
27
|
+
--icon-bg: rgba(0, 0, 0, 0.05);
|
|
28
|
+
|
|
29
|
+
/* Components */
|
|
30
|
+
--primary-color: #c21e25;
|
|
31
|
+
/* Default Base Primary */
|
|
32
|
+
--btn-primary-bg: var(--primary-color);
|
|
33
|
+
--btn-primary-text: #ffffff;
|
|
34
|
+
--card-bg: #ffffff;
|
|
35
|
+
--input-bg: #fcfcfc;
|
|
36
|
+
--sidenav-bg: #ffffff;
|
|
37
|
+
--sidenav-active-bg: #fff0f0;
|
|
38
|
+
--sidenav-active-text: #ff0000;
|
|
39
|
+
|
|
40
|
+
/* Status & Chips */
|
|
41
|
+
--status-active-bg: #f6ffed;
|
|
42
|
+
--status-active-text: #52c41a;
|
|
43
|
+
--status-inactive-bg: #fffbe6;
|
|
44
|
+
--status-inactive-text: #faad14;
|
|
45
|
+
|
|
46
|
+
--chip-blue-bg: #e6f7ff;
|
|
47
|
+
--chip-blue-text: #1890ff;
|
|
48
|
+
--chip-green-bg: #f6ffed;
|
|
49
|
+
--chip-green-text: #52c41a;
|
|
50
|
+
|
|
51
|
+
/* Form Fields */
|
|
52
|
+
--field-label-color: #202124;
|
|
53
|
+
--field-label-height: 27px;
|
|
54
|
+
--field-input-bg: #fefefe;
|
|
55
|
+
--field-input-border: #bdc1c6;
|
|
56
|
+
--field-input-height: 40px;
|
|
57
|
+
--field-input-radius: 7px;
|
|
58
|
+
--field-hint-color: #5f6368;
|
|
59
|
+
|
|
60
|
+
/* Smart Table Inline Edit Controls */
|
|
61
|
+
--st-cell-input-border: 1px solid var(--field-input-border, #dee2e6);
|
|
62
|
+
--st-cell-input-focus-outline-color: var(--primary-color, #c21e25);
|
|
63
|
+
--st-cell-input-bg: var(--field-input-bg, #fcfcfc);
|
|
64
|
+
--st-cell-select-bg: var(--field-input-bg, #fcfcfc);
|
|
65
|
+
|
|
66
|
+
/* Smart Table Inline Edit Controls (Mirrored) */
|
|
67
|
+
--st-edit-actions-gap: 0.75rem;
|
|
68
|
+
--st-action-btn-size: 32px;
|
|
69
|
+
--st-action-btn-icon-size: 16px;
|
|
70
|
+
--st-tick-btn-bg: transparent;
|
|
71
|
+
--st-cross-btn-bg: #ffffff;
|
|
72
|
+
--st-cross-btn-border: 1px solid #e8eaed;
|
|
73
|
+
--st-cross-btn-hover-bg: #f8f9fa;
|
|
74
|
+
--st-top-add-btn-bg: #4d89eb;
|
|
75
|
+
--st-top-add-btn-hover-bg: #295eb7;
|
|
76
|
+
|
|
77
|
+
/* MultiSave (Card Repeater) */
|
|
78
|
+
--ms-card-bg: #ffffff;
|
|
79
|
+
--ms-card-border: #e8eaed;
|
|
80
|
+
--ms-card-radius: 10px;
|
|
81
|
+
--ms-card-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
|
|
82
|
+
--ms-card-shadow-hover: 0 6px 16px rgba(0, 0, 0, 0.08);
|
|
83
|
+
--ms-title-color: #111827;
|
|
84
|
+
--ms-desc-color: #6b7280;
|
|
85
|
+
--ms-btn-add-color: #3b82f6;
|
|
86
|
+
--ms-btn-add-hover: #2563eb;
|
|
87
|
+
|
|
88
|
+
@include sideNav.side-nav-theme();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ----------------------------------------------------
|
|
92
|
+
Theme 2 - Aesthetic Midnight (Dark/Neon)
|
|
93
|
+
---------------------------------------------------- */
|
|
94
|
+
body.theme-2 {
|
|
95
|
+
--primary-color: #00d4ff;
|
|
96
|
+
/* Neon Cyan */
|
|
97
|
+
--secondary-color: #2b52ff;
|
|
98
|
+
/* Bright Blue */
|
|
99
|
+
|
|
100
|
+
/* Layout Backgrounds */
|
|
101
|
+
--header-bg: rgba(15, 28, 63, 0.95);
|
|
102
|
+
/* Deep Indigo */
|
|
103
|
+
--footer-bg-start: #0a1128;
|
|
104
|
+
--footer-bg-end: #0f1c3f;
|
|
105
|
+
--sidebar-bg: #0a1128;
|
|
106
|
+
--content-bg: #0f1c3f;
|
|
107
|
+
|
|
108
|
+
/* Text Colors */
|
|
109
|
+
--text-color: #ffffff;
|
|
110
|
+
--text-muted: rgba(255, 255, 255, 0.7);
|
|
111
|
+
--text-muted-2: rgba(255, 255, 255, 0.6);
|
|
112
|
+
--text-light: #aaaaaa;
|
|
113
|
+
--text-on-primary: #000000;
|
|
114
|
+
|
|
115
|
+
/* Borders & Icons */
|
|
116
|
+
--border-color: rgba(255, 255, 255, 0.1);
|
|
117
|
+
--icon-bg: rgba(255, 255, 255, 0.1);
|
|
118
|
+
/* Typography */
|
|
119
|
+
--cc-font-family: 'Roboto', 'Helvetica Neue', sans-serif;
|
|
120
|
+
--cc-text-color-primary: #000000;
|
|
121
|
+
--cc-text-color-secondary: #757575;
|
|
122
|
+
--cc-text-size-label: 12px;
|
|
123
|
+
--cc-text-size-value: 24px;
|
|
124
|
+
--cc-text-weight-bold: 700;
|
|
125
|
+
--cc-text-weight-medium: 500;
|
|
126
|
+
|
|
127
|
+
/* Theme 1 - Screenshot Match */
|
|
128
|
+
--cc-theme-1-padding: 20px;
|
|
129
|
+
--cc-theme-1-border-radius: 6px;
|
|
130
|
+
--cc-theme-1-border: 1px solid #eeeeee;
|
|
131
|
+
--cc-theme-1-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
132
|
+
|
|
133
|
+
/* Theme 2 - Aesthetic */
|
|
134
|
+
--cc-theme-2-padding: 32px;
|
|
135
|
+
--cc-theme-2-border-radius: 16px;
|
|
136
|
+
--cc-theme-2-border: none;
|
|
137
|
+
--cc-theme-2-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
|
|
138
|
+
--cc-theme-2-bg: #ffffff;
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Global Reset/Base */
|
|
143
|
+
body {
|
|
144
|
+
margin: 0;
|
|
145
|
+
font-family: 'Inter', sans-serif;
|
|
146
|
+
background-color: var(--content-bg);
|
|
147
|
+
/* Use content-bg, not generic bg-color */
|
|
148
|
+
color: var(--text-color);
|
|
149
|
+
transition:
|
|
150
|
+
background-color 0.3s ease,
|
|
151
|
+
color 0.3s ease;
|
|
152
|
+
}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/* utilities.scss */
|
|
2
|
+
|
|
3
|
+
/* Display Classes */
|
|
4
|
+
.d-flex { display: flex; }
|
|
5
|
+
.d-inline-flex { display: inline-flex; }
|
|
6
|
+
.d-grid { display: grid; }
|
|
7
|
+
.d-block { display: block; }
|
|
8
|
+
.d-none { display: none; }
|
|
9
|
+
|
|
10
|
+
/* Flexbox Directions & Wraps */
|
|
11
|
+
.flex-column { flex-direction: column; }
|
|
12
|
+
.flex-row { flex-direction: row; }
|
|
13
|
+
.flex-row-reverse { flex-direction: row-reverse; }
|
|
14
|
+
.flex-wrap { flex-wrap: wrap; }
|
|
15
|
+
.flex-1 { flex: 1; }
|
|
16
|
+
|
|
17
|
+
/* Alignments */
|
|
18
|
+
.align-items-center { align-items: center; }
|
|
19
|
+
.align-items-start { align-items: flex-start; }
|
|
20
|
+
.align-items-end { align-items: flex-end; }
|
|
21
|
+
.justify-content-center { justify-content: center; }
|
|
22
|
+
.justify-content-between { justify-content: space-between; }
|
|
23
|
+
.justify-content-start { justify-content: flex-start; }
|
|
24
|
+
.justify-content-end { justify-content: flex-end; }
|
|
25
|
+
|
|
26
|
+
/* Grid */
|
|
27
|
+
.grid-cols-12 { grid-template-columns: repeat(12, 1fr); }
|
|
28
|
+
|
|
29
|
+
/* Width & Height (Percentages) */
|
|
30
|
+
.w-100 { width: 100%; }
|
|
31
|
+
.h-100 { height: 100%; }
|
|
32
|
+
|
|
33
|
+
/* Positioning */
|
|
34
|
+
.position-relative { position: relative; }
|
|
35
|
+
.position-absolute { position: absolute; }
|
|
36
|
+
|
|
37
|
+
/* Text Alignment */
|
|
38
|
+
.text-center { text-align: center; }
|
|
39
|
+
.text-left { text-align: left; }
|
|
40
|
+
.text-right { text-align: right; }
|
|
41
|
+
|
|
42
|
+
/* Fonts */
|
|
43
|
+
.font-poppins { font-family: var(--cc-sf-font-family, 'Poppins', sans-serif); }
|
|
44
|
+
.font-weight-400 { font-weight: 400; }
|
|
45
|
+
.font-weight-500 { font-weight: 500; }
|
|
46
|
+
.font-weight-600 { font-weight: 600; }
|
|
47
|
+
|
|
48
|
+
.text-13 { font-size: 13px; }
|
|
49
|
+
.text-14 { font-size: 14px; }
|
|
50
|
+
.text-16 { font-size: 16px; }
|
|
51
|
+
|
|
52
|
+
/* Colors (from variables) */
|
|
53
|
+
.color-white { color: #ffffff; }
|
|
54
|
+
.color-dark { color: #111827; }
|
|
55
|
+
.color-gray { color: #6B7280; }
|
|
56
|
+
.color-error { color: var(--cc-sf-error-text-color, #DC2626); }
|
|
57
|
+
.bg-white { background-color: #ffffff; }
|
|
58
|
+
.bg-transparent { background-color: transparent; }
|
|
59
|
+
|
|
60
|
+
/* Margins */
|
|
61
|
+
.m-0 { margin: 0; }
|
|
62
|
+
.mt-4 { margin-top: 4px; }
|
|
63
|
+
.mt-8 { margin-top: 8px; }
|
|
64
|
+
.mt-10 { margin-top: 10px; }
|
|
65
|
+
.mt-12 { margin-top: 12px; }
|
|
66
|
+
.mt-16 { margin-top: 16px; }
|
|
67
|
+
.mt-20 { margin-top: 20px; }
|
|
68
|
+
.mt-24 { margin-top: 24px; }
|
|
69
|
+
|
|
70
|
+
.mb-0 { margin-bottom: 0px; }
|
|
71
|
+
.mb-4 { margin-bottom: 4px; }
|
|
72
|
+
.mb-8 { margin-bottom: 8px; }
|
|
73
|
+
.mb-10 { margin-bottom: 10px; }
|
|
74
|
+
.mb-12 { margin-bottom: 12px; }
|
|
75
|
+
.mb-16 { margin-bottom: 16px; }
|
|
76
|
+
.mb-20 { margin-bottom: 20px; }
|
|
77
|
+
.mb-24 { margin-bottom: 24px; }
|
|
78
|
+
|
|
79
|
+
.ml-16 { margin-left: 16px; }
|
|
80
|
+
.ml-20 { margin-left: 20px; }
|
|
81
|
+
|
|
82
|
+
/* Paddings */
|
|
83
|
+
.p-0 { padding: 0; }
|
|
84
|
+
.p-16 { padding: 16px; }
|
|
85
|
+
.p-20 { padding: 20px; }
|
|
86
|
+
.p-24 { padding: 24px; }
|
|
87
|
+
.pt-20 { padding-top: 20px; }
|
|
88
|
+
.pb-10 { padding-bottom: 10px; }
|
|
89
|
+
|
|
90
|
+
/* Gaps */
|
|
91
|
+
.gap-4 { gap: 4px; }
|
|
92
|
+
.gap-6 { gap: 6px; }
|
|
93
|
+
.gap-8 { gap: 8px; }
|
|
94
|
+
.gap-10 { gap: 10px; }
|
|
95
|
+
.gap-12 { gap: 12px; }
|
|
96
|
+
.gap-16 { gap: 16px; }
|
|
97
|
+
.gap-20 { gap: 20px; }
|
|
98
|
+
|
|
99
|
+
/* Border Radius */
|
|
100
|
+
.rounded-4 { border-radius: 4px; }
|
|
101
|
+
.rounded-6 { border-radius: 6px; }
|
|
102
|
+
.rounded-8 { border-radius: 8px; }
|
|
103
|
+
.rounded-10 { border-radius: 10px; }
|
|
104
|
+
.rounded-12 { border-radius: 12px; }
|
|
105
|
+
.rounded-20 { border-radius: 20px; }
|
|
106
|
+
.rounded-24 { border-radius: 24px; }
|
|
107
|
+
.rounded-50 { border-radius: 50%; }
|
|
108
|
+
|
|
109
|
+
/* Utilities */
|
|
110
|
+
.cursor-pointer { cursor: pointer; }
|
|
111
|
+
.overflow-hidden { overflow: hidden; }
|
|
112
|
+
.resize-vertical { resize: vertical; }
|
|
113
|
+
.box-sizing-border { box-sizing: border-box; }
|
|
114
|
+
|
|
115
|
+
/* Form Auto Extracted Utilities 2 */
|
|
116
|
+
.border-none { border: none !important; }
|
|
117
|
+
.mb-16px { margin-bottom: var(--cc-sf-grid-gap, 16px) !important; }
|
|
118
|
+
.c-DC2626 { color: var(--cc-sf-label-required-color, #DC2626) !important; }
|
|
119
|
+
.ml-0-125rem { margin-left: 0.125rem !important; }
|
|
120
|
+
.fs-0-875rem { font-size: 0.875rem !important; }
|
|
121
|
+
.c-111827 { color: var(--cc-sf-label-color, #111827) !important; }
|
|
122
|
+
.br-7px { border-radius: var(--cc-sf-input-radius, 7px) !important; }
|
|
123
|
+
.c-6B7280 { color: var(--cc-sf-hint-color, #6B7280) !important; }
|
|
124
|
+
.fs-0-75rem { font-size: var(--cc-sf-error-text-size, 0.75rem) !important; }
|
|
125
|
+
.b-none { background: none !important; }
|
|
126
|
+
.p-32px-24px { padding: 32px 24px !important; }
|
|
127
|
+
.us-none { user-select: none !important; }
|
|
128
|
+
.c-1E293B { color: var(--cc-sf-label-color, #1E293B) !important; }
|
|
129
|
+
.c-3B82F6 { color: var(--cc-sf-chip-selected-bg, #3B82F6) !important; }
|
|
130
|
+
.fs-0-78rem { font-size: 0.78rem !important; }
|
|
131
|
+
.p-10px-14px { padding: 10px 14px !important; }
|
|
132
|
+
.fs-0-85rem { font-size: 0.85rem !important; }
|
|
133
|
+
.fs-0-72rem { font-size: 0.72rem !important; }
|
|
134
|
+
.c-94A3B8 { color: #94A3B8 !important; }
|
|
135
|
+
.p-4px { padding: 4px !important; }
|
|
136
|
+
.br-8px { border-radius: var(--cc-sf-input-radius, 8px) !important; }
|
|
137
|
+
.bc-F3F4F6 { background-color: var(--cc-sf-input-disabled-bg, #F3F4F6) !important; }
|
|
138
|
+
.br-none { border-right: none !important; }
|
|
139
|
+
.bl-none { border-left: none !important; }
|
|
140
|
+
.pe-none { pointer-events: none !important; }
|
|
141
|
+
.fs-1-1rem { font-size: 1.1rem !important; }
|
|
142
|
+
.c-9CA3AF { color: var(--cc-sf-hint-color, #9CA3AF) !important; }
|
|
143
|
+
.pl-2-4rem { padding-left: 2.4rem !important; }
|
|
144
|
+
.fs-0-8125rem { font-size: 0.8125rem !important; }
|
|
145
|
+
.ls-none { list-style: none !important; }
|
|
146
|
+
.br-12px { border-radius: var(--mu-carousel-radius, 12px) !important; }
|
|
147
|
+
.b-FFFAF1 { background: var(--cc-sf-dropzone-bg, #FFFAF1) !important; }
|
|
148
|
+
.fs-18px { font-size: 18px !important; }
|
|
149
|
+
.b-FEF2F2 { background: var(--cc-sf-error-bg, #FEF2F2) !important; }
|
|
150
|
+
|
|
151
|
+
/* Form Auto Extracted Utilities 3 */
|
|
152
|
+
.bc-DC2626 { border-color: var(--cc-sf-error-border, #DC2626) !important; }
|
|
153
|
+
.c-202124 { color: var(--cc-sf-label-color, #202124) !important; }
|
|
154
|
+
.fs-18px { font-size: var(--cc-sf-label-size, 18px) !important; }
|
|
155
|
+
.mb-0-5rem { margin-bottom: 0.5rem !important; }
|
|
156
|
+
.pt-0-625rem { padding-top: var(--cc-sf-input-padding-y, 0.625rem) !important; }
|
|
157
|
+
.pb-0-625rem { padding-bottom: var(--cc-sf-input-padding-y, 0.625rem) !important; }
|
|
158
|
+
.pl-16px { padding-left: var(--cc-sf-input-padding-x, 16px) !important; }
|
|
159
|
+
.pr-16px { padding-right: var(--cc-sf-input-padding-x, 16px) !important; }
|
|
160
|
+
.bc-ffffff { background-color: var(--cc-sf-section-bg, #ffffff) !important; }
|
|
161
|
+
.b-1px-solid-D1D5DB { border: 1px solid var(--cc-sf-input-border, #D1D5DB) !important; }
|
|
162
|
+
.fs-0-75rem { font-size: 0.75rem !important; }
|
|
163
|
+
.c-1F2937 { color: var(--cc-sf-section-label-color, #1F2937) !important; }
|
|
164
|
+
.p-6px-14px { padding: var(--cc-sf-chip-padding, 6px 14px) !important; }
|
|
165
|
+
.b-ffffff { background: var(--loc-suggestion-bg, #ffffff) !important; }
|
|
166
|
+
.c-374151 { color: var(--cc-sf-label-color, #374151) !important; }
|
|
167
|
+
.br-20px { border-radius: var(--cc-sf-chip-radius, 20px) !important; }
|
|
168
|
+
.fs-0-875rem { font-size: var(--cc-sf-btn-font-size, 0.875rem) !important; }
|
|
169
|
+
.bc-D1D5DB { background-color: var(--cc-sf-switch-track-off, #D1D5DB) !important; }
|
|
170
|
+
.pr-2-75rem { padding-right: 2.75rem !important; }
|
|
171
|
+
.p-0-25rem { padding: 0.25rem !important; }
|
|
172
|
+
.p-0-625rem-0-875rem { padding: var(--cc-sf-generated-padding, 0.625rem 0.875rem) !important; }
|
|
173
|
+
.b-F3F4F6 { background: var(--cc-sf-generated-bg, #F3F4F6) !important; }
|
|
174
|
+
.b-1px-solid-E5E7EB { border: 1px solid var(--cc-sf-input-disabled-border, #E5E7EB) !important; }
|
|
175
|
+
.br-8px { border-radius: var(--cc-sf-uploaded-item-radius, 8px) !important; }
|
|
176
|
+
.c-6B7280 { color: var(--ms-desc-color, #6B7280) !important; }
|
|
177
|
+
.mb-20px { margin-bottom: var(--cc-sf-section-gap, 20px) !important; }
|
|
178
|
+
.br-10px { border-radius: var(--cc-sf-input-radius, 10px) !important; }
|
|
179
|
+
.p-20px { padding: var(--cc-sf-section-padding, 20px) !important; }
|
|
180
|
+
.fs-1rem { font-size: 1rem !important; }
|
|
181
|
+
.m-0-0-16px-0 { margin: 0 0 16px 0 !important; }
|
|
182
|
+
.bb-2px-solid-E5E7EB { border-bottom: var(--cc-sf-section-label-border, 2px solid #E5E7EB) !important; }
|
|
183
|
+
.p-16px { padding: var(--cc-sf-instance-padding, 16px) !important; }
|
|
184
|
+
.b-F9FAFB { background: var(--loc-tba-bg, #F9FAFB) !important; }
|
|
185
|
+
.bb-1px-dashed-D1D5DB { border-bottom: var(--cc-sf-instance-divider, 1px dashed #D1D5DB) !important; }
|
|
186
|
+
.c-4B5563 { color: var(--cc-sf-instance-num-color, #4B5563) !important; }
|
|
187
|
+
.fs-0-8125rem { font-size: var(--cc-sf-hint-size, 0.8125rem) !important; }
|
|
188
|
+
.pb-0 { padding-bottom: 0 !important; }
|
|
189
|
+
.p-18px-24px { padding: 18px 24px !important; }
|
|
190
|
+
.c-111827 { color: var(--ms-title-color, #111827) !important; }
|
|
191
|
+
.bt-1px-solid-E5E7EB { border-top: 1px solid #E5E7EB !important; }
|
|
192
|
+
.p-4px-10px { padding: 4px 10px !important; }
|
|
193
|
+
.b-FFF5F5 { background: var(--cc-sf-btn-remove-bg, #FFF5F5) !important; }
|
|
194
|
+
.c-E53E3E { color: var(--loc-delete-color, #E53E3E) !important; }
|
|
195
|
+
.b-1px-solid-FED7D7 { border: var(--cc-sf-btn-remove-border, 1px solid #FED7D7) !important; }
|
|
196
|
+
.br-4px { border-radius: var(--cc-sf-btn-remove-radius, 4px) !important; }
|
|
197
|
+
.p-8px-16px { padding: 8px 16px !important; }
|
|
198
|
+
.b-transparent { background: var(--cc-sf-btn-add-bg, transparent) !important; }
|
|
199
|
+
.c-3B82F6 { color: var(--cc-sf-input-focus-border, #3B82F6) !important; }
|
|
200
|
+
.b-1px-dashed-CBD5E1 { border: var(--cc-sf-btn-add-border, 1px dashed #CBD5E1) !important; }
|
|
201
|
+
.br-6px { border-radius: var(--cc-sf-btn-add-radius, 6px) !important; }
|
|
202
|
+
.b-1-5px-dashed-CBD5E1 { border: var(--cc-sf-dropzone-border, 1.5px dashed #CBD5E1) !important; }
|
|
203
|
+
.br-12px { border-radius: var(--cc-sf-dropzone-radius, 12px) !important; }
|
|
204
|
+
.bc-FFFAF1 { background-color: var(--cc-sf-dropzone-bg, #FFFAF1) !important; }
|
|
205
|
+
.c-94A3B8 { color: var(--cc-sf-uploaded-remove-color, #94A3B8) !important; }
|
|
206
|
+
.fs-0-9rem { font-size: var(--cc-sf-input-font-size, 0.9rem) !important; }
|
|
207
|
+
.c-64748B { color: var(--cc-sf-dropzone-hint-color, #64748B) !important; }
|
|
208
|
+
.b-1px-solid-E2E8F0 { border: var(--cc-sf-uploaded-item-border, 1px solid #E2E8F0) !important; }
|
|
209
|
+
.b-2px-solid-E2E8F0 { border: 2px solid #E2E8F0 !important; }
|
|
210
|
+
.pr-3-5rem { padding-right: 3.5rem !important; }
|
|
211
|
+
.p-0-0-875rem { padding: 0 0.875rem !important; }
|
|
212
|
+
.bc-FFFFFF { background-color: var(--cc-sf-input-bg, #FFFFFF) !important; }
|
|
213
|
+
.b-1-5px-solid-D1D5DB { border: var(--cc-sf-input-border, 1.5px solid #D1D5DB) !important; }
|
|
214
|
+
.mb-0-75rem { margin-bottom: 0.75rem !important; }
|
|
215
|
+
.mt-6px { margin-top: 6px !important; }
|
|
216
|
+
.pr-2-4rem { padding-right: 2.4rem !important; }
|
|
217
|
+
.p-0-2rem { padding: 0.2rem !important; }
|
|
218
|
+
.fs-1-35rem { font-size: 1.35rem !important; }
|
|
219
|
+
.p-4px-12px { padding: 4px 12px !important; }
|
|
220
|
+
.b-111827 { background: var(--cc-sf-label-color, #111827) !important; }
|
|
221
|
+
.b-2px-dashed-CBD5E1 { border: 2px dashed var(--cc-sf-dropzone-border, #CBD5E1) !important; }
|
|
222
|
+
.fs-52px { font-size: 52px !important; }
|
|
223
|
+
.p-12px-16px { padding: 12px 16px !important; }
|
|
224
|
+
.bb-1px-solid-F3F4F6 { border-bottom: 1px solid var(--cc-sf-input-disabled-border, #F3F4F6) !important; }
|
|
225
|
+
.b-0F172A { background: var(--mu-carousel-bg, #0F172A) !important; }
|
|
226
|
+
.b-3px-solid-rgba-255-255-255-0-15 { border: 3px solid rgba(255, 255, 255, 0.15) !important; }
|
|
227
|
+
.b-rgba-255-255-255-0-85 { background: rgba(255, 255, 255, 0.85) !important; }
|
|
228
|
+
.b-rgba-0-0-0-0-55 { background: rgba(0, 0, 0, 0.55) !important; }
|
|
229
|
+
.b-rgba-255-255-255-0-45 { background: rgba(255, 255, 255, 0.45) !important; }
|
|
230
|
+
.pb-4px { padding-bottom: 4px !important; }
|
|
231
|
+
.b-2px-solid-transparent { border: 2px solid transparent !important; }
|
|
232
|
+
.b-E2E8F0 { background: var(--mu-thumb-bg, #E2E8F0) !important; }
|
|
233
|
+
.b-1E293B { background: #1E293B !important; }
|
|
234
|
+
.c-EF4444 { color: #EF4444 !important; }
|
|
235
|
+
.b-rgba-0-0-0-0-5 { background: rgba(0, 0, 0, 0.5) !important; }
|
|
236
|
+
.br-16px { border-radius: var(--mu-modal-radius, 16px) !important; }
|
|
237
|
+
.p-24px-28px { padding: 24px 28px !important; }
|
|
238
|
+
.bb-1px-solid-E5E7EB { border-bottom: 1px solid var(--cc-sf-input-disabled-border, #E5E7EB) !important; }
|
|
239
|
+
.fs-1-25rem { font-size: 1.25rem !important; }
|
|
240
|
+
.p-48px-24px { padding: 48px 24px !important; }
|
|
241
|
+
.b-3px-solid-E2E8F0 { border: 3px solid #E2E8F0 !important; }
|
|
242
|
+
.p-16px-24px { padding: 16px 24px !important; }
|
|
243
|
+
.p-28px { padding: 28px !important; }
|
|
244
|
+
.b-3px-solid-transparent { border: 3px solid transparent !important; }
|
|
245
|
+
.b-rgba-59-130-246-0-12 { background: rgba(59, 130, 246, 0.12) !important; }
|
|
246
|
+
.p-20px-28px { padding: 20px 28px !important; }
|
|
247
|
+
.c-1A56DB { color: var(--loc-add-color, #1A56DB) !important; }
|
|
248
|
+
.b-1px-dashed-D1D5DB { border: 1px dashed var(--cc-sf-input-disabled-border, #D1D5DB) !important; }
|
|
249
|
+
.fs-40px { font-size: 40px !important; }
|
|
250
|
+
.c-9CA3AF { color: var(--loc-tba-icon-color, #9CA3AF) !important; }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const DEFAULT_ITEMS_PER_PAGE = 10;
|
|
2
|
+
export const DEFAULT_PAGE_SIZE_OPTIONS = [5, 10, 20, 50, 100];
|
|
3
|
+
export const PAGINATION_THEME_DEFAULT = 'theme-1';
|
|
4
|
+
export const PAGINATION_THEME_DARK = 'theme-2';
|
|
5
|
+
|
|
6
|
+
// Nav
|
|
7
|
+
export const NAV_VARIANT_DEFAULT: 'filled' | 'underline' | 'pills' = 'filled';
|
|
8
|
+
export const NAV_ORIENTATION_DEFAULT: 'horizontal' | 'vertical' = 'horizontal';
|
|
9
|
+
|
|
10
|
+
// Side Nav
|
|
11
|
+
export const DEFAULT_SIDE_NAV_TOOLTIP_POSITION = 'right';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for LocalStorage operations
|
|
3
|
+
*/
|
|
4
|
+
export const getLocalStorageItem = (key: string): string | null => {
|
|
5
|
+
return localStorage.getItem(key);
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const setLocalStorageItem = (key: string, value: string): void => {
|
|
9
|
+
localStorage.setItem(key, value);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const removeLocalStorageItem = (key: string): void => {
|
|
13
|
+
localStorage.removeItem(key);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const clearLocalStorage = (): void => {
|
|
17
|
+
localStorage.clear();
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Utility functions for SessionStorage operations
|
|
22
|
+
*/
|
|
23
|
+
export const getSessionStorageItem = (key: string): string | null => {
|
|
24
|
+
return sessionStorage.getItem(key);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const setSessionStorageItem = (key: string, value: string): void => {
|
|
28
|
+
sessionStorage.setItem(key, value);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const removeSessionStorageItem = (key: string): void => {
|
|
32
|
+
sessionStorage.removeItem(key);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const clearSessionStorage = (): void => {
|
|
36
|
+
sessionStorage.clear();
|
|
37
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for string manipulation
|
|
3
|
+
*/
|
|
4
|
+
export class StringUtils {
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Converts a string to camelCase.
|
|
8
|
+
* Example: "First Name" -> "firstName", "Profile Picture" -> "profilePicture"
|
|
9
|
+
*/
|
|
10
|
+
static toCamelCase(str?: string): string {
|
|
11
|
+
if (!str) return '';
|
|
12
|
+
return str
|
|
13
|
+
.replace(/[^a-zA-Z0-9 ]/g, '')
|
|
14
|
+
.split(' ')
|
|
15
|
+
.filter(Boolean)
|
|
16
|
+
.map((word, i) =>
|
|
17
|
+
i === 0
|
|
18
|
+
? word.charAt(0).toLowerCase() + word.slice(1)
|
|
19
|
+
: word.charAt(0).toUpperCase() + word.slice(1)
|
|
20
|
+
)
|
|
21
|
+
.join('');
|
|
22
|
+
}
|
|
23
|
+
}
|