commons-shared-web-ui 0.0.55 → 0.0.57

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 (223) hide show
  1. package/fesm2022/commons-shared-web-ui.mjs +15897 -0
  2. package/fesm2022/commons-shared-web-ui.mjs.map +1 -0
  3. package/index.d.ts +4916 -0
  4. package/package.json +34 -53
  5. package/src/lib/modules/button/button.theme.scss +4 -4
  6. package/.claude/settings.local.json +0 -10
  7. package/documentation/alert.md +0 -123
  8. package/documentation/button-dropdown.md +0 -126
  9. package/documentation/button.md +0 -184
  10. package/documentation/cards-usage-guidelines.md +0 -131
  11. package/documentation/configurable-form.md +0 -605
  12. package/documentation/confirmation-modal.md +0 -250
  13. package/documentation/filter-sidebar.md +0 -178
  14. package/documentation/filter-table-selector.md +0 -228
  15. package/documentation/form-builder.md +0 -599
  16. package/documentation/form-components.md +0 -384
  17. package/documentation/form-field-configuration.md +0 -250
  18. package/documentation/nav.md +0 -427
  19. package/documentation/pagination.md +0 -181
  20. package/documentation/side-nav-documentation.md +0 -169
  21. package/documentation/smart-form.md +0 -2765
  22. package/documentation/smart-table.md +0 -1221
  23. package/documentation/snackbar.md +0 -118
  24. package/documentation/style-externalization.md +0 -88
  25. package/documentation/summary-card.md +0 -279
  26. package/documentation/table-column-configuration.md +0 -221
  27. package/documentation/time-picker.md +0 -274
  28. package/ng-package.json +0 -30
  29. package/src/lib/modules/alert/alert.models.ts +0 -6
  30. package/src/lib/modules/alert/alert.module.ts +0 -16
  31. package/src/lib/modules/alert/components/alert/alert.component.html +0 -27
  32. package/src/lib/modules/alert/components/alert/alert.component.scss +0 -92
  33. package/src/lib/modules/alert/components/alert/alert.component.ts +0 -81
  34. package/src/lib/modules/button/button.models.ts +0 -13
  35. package/src/lib/modules/button/button.module.ts +0 -16
  36. package/src/lib/modules/button/components/button/button.component.html +0 -22
  37. package/src/lib/modules/button/components/button/button.component.scss +0 -88
  38. package/src/lib/modules/button/components/button/button.component.ts +0 -67
  39. package/src/lib/modules/button-dropdown/button-dropdown.models.ts +0 -26
  40. package/src/lib/modules/button-dropdown/button-dropdown.module.ts +0 -22
  41. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.html +0 -41
  42. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.scss +0 -135
  43. package/src/lib/modules/button-dropdown/components/button-dropdown/button-dropdown.component.ts +0 -160
  44. package/src/lib/modules/configurable-form/component/configurable-form.component.html +0 -294
  45. package/src/lib/modules/configurable-form/component/configurable-form.component.scss +0 -503
  46. package/src/lib/modules/configurable-form/component/configurable-form.component.ts +0 -628
  47. package/src/lib/modules/configurable-form/configurable-form.examples.ts +0 -154
  48. package/src/lib/modules/configurable-form/configurable-form.model.ts +0 -131
  49. package/src/lib/modules/configurable-form/configurable-form.module.ts +0 -19
  50. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.html +0 -77
  51. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.scss +0 -395
  52. package/src/lib/modules/confirmation-modal/components/confirmation-modal/confirmation-modal.component.ts +0 -266
  53. package/src/lib/modules/confirmation-modal/confirmation-modal.models.ts +0 -71
  54. package/src/lib/modules/confirmation-modal/confirmation-modal.module.ts +0 -20
  55. package/src/lib/modules/filter/components/filter/filter.component.html +0 -131
  56. package/src/lib/modules/filter/components/filter/filter.component.scss +0 -245
  57. package/src/lib/modules/filter/components/filter/filter.component.ts +0 -216
  58. package/src/lib/modules/filter/filter.models.ts +0 -88
  59. package/src/lib/modules/filter/filter.module.ts +0 -24
  60. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.html +0 -112
  61. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.scss +0 -186
  62. package/src/lib/modules/filter-sidebar/components/filter-sidebar/filter-sidebar.component.ts +0 -163
  63. package/src/lib/modules/filter-sidebar/filter-sidebar.models.ts +0 -95
  64. package/src/lib/modules/filter-sidebar/filter-sidebar.module.ts +0 -24
  65. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.html +0 -73
  66. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.scss +0 -321
  67. package/src/lib/modules/filter-table-selector/components/filter-table-selector/filter-table-selector.component.ts +0 -361
  68. package/src/lib/modules/filter-table-selector/filter-table-selector.models.ts +0 -91
  69. package/src/lib/modules/filter-table-selector/filter-table-selector.module.ts +0 -22
  70. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.html +0 -63
  71. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.scss +0 -496
  72. package/src/lib/modules/form-builder/components/field-configurator/configurator-config-panel/configurator-config-panel.component.ts +0 -445
  73. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.html +0 -75
  74. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.scss +0 -210
  75. package/src/lib/modules/form-builder/components/field-configurator/configurator-tree/configurator-tree.component.ts +0 -55
  76. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.html +0 -25
  77. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.scss +0 -82
  78. package/src/lib/modules/form-builder/components/field-configurator/field-configurator.component.ts +0 -95
  79. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.html +0 -20
  80. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.scss +0 -37
  81. package/src/lib/modules/form-builder/components/field-selection/field-selection.component.ts +0 -94
  82. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.html +0 -46
  83. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.scss +0 -102
  84. package/src/lib/modules/form-builder/components/field-selection/group-node/group-node.component.ts +0 -50
  85. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.html +0 -35
  86. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.scss +0 -67
  87. package/src/lib/modules/form-builder/components/field-selection/selection-field-node/selection-field-node.component.ts +0 -34
  88. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.html +0 -68
  89. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.scss +0 -113
  90. package/src/lib/modules/form-builder/components/field-selection/selection-section-node/selection-section-node.component.ts +0 -74
  91. package/src/lib/modules/form-builder/configs/field-type-schema.map.ts +0 -533
  92. package/src/lib/modules/form-builder/form-builder.module.ts +0 -36
  93. package/src/lib/modules/form-builder/index.ts +0 -9
  94. package/src/lib/modules/form-builder/models/builder.models.ts +0 -7
  95. package/src/lib/modules/form-builder/models/field-configurator.models.ts +0 -38
  96. package/src/lib/modules/form-builder/models/field-selection.models.ts +0 -51
  97. package/src/lib/modules/form-builder/services/field-configurator.service.ts +0 -258
  98. package/src/lib/modules/form-builder/services/field-selection.service.ts +0 -299
  99. package/src/lib/modules/form-builder/services/form-schema-tree.service.ts +0 -670
  100. package/src/lib/modules/form-builder/tokens/builder.tokens.ts +0 -10
  101. package/src/lib/modules/form-builder/utils/constants.ts +0 -43
  102. package/src/lib/modules/form-components/components/checkbox/checkbox.component.html +0 -29
  103. package/src/lib/modules/form-components/components/checkbox/checkbox.component.scss +0 -111
  104. package/src/lib/modules/form-components/components/checkbox/checkbox.component.ts +0 -207
  105. package/src/lib/modules/form-components/components/checkbox/checkbox.models.ts +0 -35
  106. package/src/lib/modules/form-components/components/datepicker/datepicker.component.html +0 -42
  107. package/src/lib/modules/form-components/components/datepicker/datepicker.component.scss +0 -115
  108. package/src/lib/modules/form-components/components/datepicker/datepicker.component.ts +0 -267
  109. package/src/lib/modules/form-components/components/datepicker/datepicker.models.ts +0 -45
  110. package/src/lib/modules/form-components/components/dropdown/dropdown.component.html +0 -74
  111. package/src/lib/modules/form-components/components/dropdown/dropdown.component.scss +0 -252
  112. package/src/lib/modules/form-components/components/dropdown/dropdown.component.ts +0 -377
  113. package/src/lib/modules/form-components/components/dropdown/dropdown.models.ts +0 -53
  114. package/src/lib/modules/form-components/components/input/input.component.html +0 -51
  115. package/src/lib/modules/form-components/components/input/input.component.scss +0 -128
  116. package/src/lib/modules/form-components/components/input/input.component.ts +0 -250
  117. package/src/lib/modules/form-components/components/input/input.models.ts +0 -55
  118. package/src/lib/modules/form-components/components/radio/radio.component.html +0 -22
  119. package/src/lib/modules/form-components/components/radio/radio.component.scss +0 -107
  120. package/src/lib/modules/form-components/components/radio/radio.component.ts +0 -181
  121. package/src/lib/modules/form-components/components/radio/radio.models.ts +0 -39
  122. package/src/lib/modules/form-components/components/search/search.component.html +0 -15
  123. package/src/lib/modules/form-components/components/search/search.component.scss +0 -87
  124. package/src/lib/modules/form-components/components/search/search.component.ts +0 -213
  125. package/src/lib/modules/form-components/components/search/search.models.ts +0 -40
  126. package/src/lib/modules/form-components/components/toggle/toggle.component.html +0 -15
  127. package/src/lib/modules/form-components/components/toggle/toggle.component.scss +0 -81
  128. package/src/lib/modules/form-components/components/toggle/toggle.component.ts +0 -166
  129. package/src/lib/modules/form-components/components/toggle/toggle.models.ts +0 -27
  130. package/src/lib/modules/form-components/directives/click-outside.directive.ts +0 -22
  131. package/src/lib/modules/form-components/form-components.module.ts +0 -42
  132. package/src/lib/modules/form-field-configuration/components/_ffc-controls.scss +0 -89
  133. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.html +0 -68
  134. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.scss +0 -73
  135. package/src/lib/modules/form-field-configuration/components/config-field-node/config-field-node.component.ts +0 -34
  136. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.html +0 -78
  137. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.scss +0 -83
  138. package/src/lib/modules/form-field-configuration/components/config-section-node/config-section-node.component.ts +0 -94
  139. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.html +0 -38
  140. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.scss +0 -42
  141. package/src/lib/modules/form-field-configuration/components/form-field-configuration/form-field-configuration.component.ts +0 -92
  142. package/src/lib/modules/form-field-configuration/form-field-configuration.module.ts +0 -23
  143. package/src/lib/modules/form-field-configuration/index.ts +0 -7
  144. package/src/lib/modules/form-field-configuration/models/field-configuration.models.ts +0 -62
  145. package/src/lib/modules/form-field-configuration/services/config-schema-tree.service.ts +0 -159
  146. package/src/lib/modules/form-field-configuration/services/field-configuration.service.ts +0 -228
  147. package/src/lib/modules/material/material.module.ts +0 -94
  148. package/src/lib/modules/nav/components/nav/nav.component.html +0 -34
  149. package/src/lib/modules/nav/components/nav/nav.component.scss +0 -171
  150. package/src/lib/modules/nav/components/nav/nav.component.ts +0 -82
  151. package/src/lib/modules/nav/nav.models.ts +0 -31
  152. package/src/lib/modules/nav/nav.module.ts +0 -17
  153. package/src/lib/modules/pagination/components/pagination/pagination.component.html +0 -52
  154. package/src/lib/modules/pagination/components/pagination/pagination.component.scss +0 -155
  155. package/src/lib/modules/pagination/components/pagination/pagination.component.ts +0 -109
  156. package/src/lib/modules/pagination/pagination.module.ts +0 -17
  157. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.html +0 -56
  158. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.scss +0 -342
  159. package/src/lib/modules/side-nav/components/side-nav/side-nav.component.ts +0 -135
  160. package/src/lib/modules/side-nav/side-nav.models.ts +0 -38
  161. package/src/lib/modules/side-nav/side-nav.module.ts +0 -16
  162. package/src/lib/modules/smart-form/components/form-field/form-field.component.html +0 -1330
  163. package/src/lib/modules/smart-form/components/form-field/form-field.component.scss +0 -2112
  164. package/src/lib/modules/smart-form/components/form-field/form-field.component.ts +0 -3006
  165. package/src/lib/modules/smart-form/components/form-section/form-section.component.html +0 -65
  166. package/src/lib/modules/smart-form/components/form-section/form-section.component.scss +0 -209
  167. package/src/lib/modules/smart-form/components/form-section/form-section.component.ts +0 -131
  168. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.html +0 -253
  169. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.scss +0 -689
  170. package/src/lib/modules/smart-form/components/smart-form/smart-form.component.ts +0 -1131
  171. package/src/lib/modules/smart-form/index.ts +0 -10
  172. package/src/lib/modules/smart-form/models/form-schema.model.ts +0 -793
  173. package/src/lib/modules/smart-form/models/hierarchy-config.model.ts +0 -21
  174. package/src/lib/modules/smart-form/services/expression.service.ts +0 -75
  175. package/src/lib/modules/smart-form/services/smart-form-controller.service.ts +0 -67
  176. package/src/lib/modules/smart-form/smart-form.examples.ts +0 -1324
  177. package/src/lib/modules/smart-form/smart-form.module.ts +0 -38
  178. package/src/lib/modules/smart-form/utils/translation.utils.ts +0 -82
  179. package/src/lib/modules/smart-form/utils/trusted-url.pipe.ts +0 -25
  180. package/src/lib/modules/smart-form/utils/validation.utils.ts +0 -98
  181. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.html +0 -283
  182. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.scss +0 -685
  183. package/src/lib/modules/smart-table/components/smart-table/smart-table.component.ts +0 -1128
  184. package/src/lib/modules/smart-table/models/table-config.model.ts +0 -213
  185. package/src/lib/modules/smart-table/smart-table.module.ts +0 -30
  186. package/src/lib/modules/smart-table/utils/safe-html.pipe.ts +0 -28
  187. package/src/lib/modules/smart-table/utils/smart-table.utils.ts +0 -18
  188. package/src/lib/modules/snackbar/components/snackbar.component.html +0 -41
  189. package/src/lib/modules/snackbar/components/snackbar.component.scss +0 -99
  190. package/src/lib/modules/snackbar/components/snackbar.component.ts +0 -18
  191. package/src/lib/modules/snackbar/models/snackbar.models.ts +0 -10
  192. package/src/lib/modules/snackbar/services/snackbar.service.ts +0 -40
  193. package/src/lib/modules/snackbar/snackbar.module.ts +0 -11
  194. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.html +0 -47
  195. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.scss +0 -199
  196. package/src/lib/modules/summary-card/components/summary-card/summary-card.component.ts +0 -126
  197. package/src/lib/modules/summary-card/summary-card.module.ts +0 -18
  198. package/src/lib/modules/table-column-configuration/components/_tcc-controls.scss +0 -53
  199. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.html +0 -47
  200. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.scss +0 -50
  201. package/src/lib/modules/table-column-configuration/components/config-column-node/config-column-node.component.ts +0 -33
  202. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.html +0 -30
  203. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.scss +0 -36
  204. package/src/lib/modules/table-column-configuration/components/table-column-configuration/table-column-configuration.component.ts +0 -78
  205. package/src/lib/modules/table-column-configuration/index.ts +0 -5
  206. package/src/lib/modules/table-column-configuration/models/table-column-configuration.models.ts +0 -20
  207. package/src/lib/modules/table-column-configuration/services/table-column-configuration.service.ts +0 -77
  208. package/src/lib/modules/table-column-configuration/table-column-configuration.module.ts +0 -21
  209. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.html +0 -37
  210. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.scss +0 -102
  211. package/src/lib/modules/time-picker/components/time-picker/time-picker.component.ts +0 -178
  212. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.html +0 -78
  213. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.scss +0 -226
  214. package/src/lib/modules/time-picker/components/time-wheel-panel/time-wheel-panel.component.ts +0 -595
  215. package/src/lib/modules/time-picker/models/time-picker.models.ts +0 -49
  216. package/src/lib/modules/time-picker/time-picker.module.ts +0 -23
  217. package/src/lib/shared-ui.module.ts +0 -55
  218. package/src/lib/utils/constants.ts +0 -11
  219. package/src/lib/utils/storage.utils.ts +0 -37
  220. package/src/lib/utils/string.utils.ts +0 -23
  221. package/src/lib/utils/translation.utils.ts +0 -87
  222. package/src/public-api.ts +0 -127
  223. package/tsconfig.lib.json +0 -15
@@ -1,685 +0,0 @@
1
- // Outer wrapper — holds card + pagination as a column
2
- .smart-table-outer {
3
- display: flex;
4
- flex-direction: column;
5
- gap: 0;
6
- }
7
-
8
- .smart-table-wrapper {
9
- font-family: var(--st-font-family, 'Roboto', sans-serif);
10
- background: var(--st-table-bg, #fff);
11
- border-radius: var(--st-border-radius, 8px);
12
- box-shadow: var(--st-box-shadow, 0 2px 8px rgba(0, 0, 0, 0.08));
13
- display: flex;
14
- flex-direction: column;
15
- gap: 0;
16
- padding: 0;
17
- border: none;
18
- margin-bottom: 1.5rem;
19
- // No overflow:hidden — it creates a paint containment layer that traps position:fixed dropdown menus
20
- }
21
-
22
- /* Toolbar */
23
- .st-toolbar {
24
- display: flex;
25
- justify-content: flex-start; // Search + filters stack left; actions pushed right via margin-left: auto
26
- align-items: center;
27
- flex-wrap: wrap;
28
- padding: var(--st-toolbar-padding, 1.2rem 0rem);
29
- background: var(--st-toolbar-bg, #fff);
30
- gap: var(--st-toolbar-gap, 1rem);
31
- border-bottom: var(--st-toolbar-border-bottom, 1px solid rgba(0, 0, 0, 0.08));
32
- box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
33
-
34
- .st-search {
35
- position: relative;
36
- display: flex;
37
- align-items: center;
38
- background: var(--st-search-bg, #f5f5f5);
39
- border-radius: var(--st-search-radius, 8px);
40
- padding: var(--st-search-wrapper-padding, 0 0.875rem);
41
- height: var(--st-search-height, 36px);
42
- min-width: var(--st-search-min-width, 200px);
43
- width: var(--st-search-width, auto);
44
-
45
- input {
46
- padding: 0 0.5rem 0 1.5rem;
47
- border: none;
48
- background: transparent;
49
- font-size: var(--st-font-size, 14px);
50
- width: 100%;
51
- color: var(--st-text-color, #333);
52
- outline: none;
53
- line-height: var(--st-search-height, 36px);
54
-
55
- &::placeholder {
56
- color: var(--st-search-placeholder-color, #999);
57
- }
58
- }
59
-
60
- i {
61
- position: absolute;
62
- left: 0.875rem;
63
- top: 50%;
64
- transform: translateY(-50%);
65
- color: var(--st-search-icon-color, #888);
66
- font-size: 13px;
67
- pointer-events: none;
68
- }
69
- }
70
-
71
- .st-filters {
72
- display: flex;
73
- align-items: center;
74
- gap: 0.5rem;
75
-
76
- .st-filter-item {
77
- position: relative;
78
- }
79
-
80
- .st-filter-trigger {
81
- display: flex;
82
- align-items: center;
83
- gap: 6px;
84
- padding: var(--st-filter-trigger-padding, 0 0.75rem);
85
- height: var(--st-filter-height, 36px);
86
- border: var(--st-filter-border, 1px solid #e0e0e0);
87
- border-radius: var(--st-filter-radius, 8px);
88
- cursor: pointer;
89
- font-size: var(--st-filter-font-size, 14px);
90
- color: var(--st-filter-color, #555);
91
- background: var(--st-filter-bg, #fff);
92
- transition: border-color 0.15s, background 0.15s;
93
- white-space: nowrap;
94
- user-select: none;
95
-
96
- &:hover {
97
- border-color: var(--st-filter-hover-border-color, #bbb);
98
- background: var(--st-filter-hover-bg, #fafafa);
99
- }
100
-
101
- &.active {
102
- border-color: var(--st-filter-active-border-color, #999);
103
- background: var(--st-filter-hover-bg, #fafafa);
104
-
105
- .st-filter-chevron {
106
- transform: rotate(180deg);
107
- }
108
- }
109
-
110
- &.has-value {
111
- color: var(--st-filter-selected-color, #222);
112
- font-weight: 500;
113
- border-color: var(--st-filter-selected-border-color, #333);
114
- }
115
-
116
- .st-filter-trigger-label {
117
- flex: 1;
118
- }
119
-
120
- .st-filter-chevron {
121
- color: var(--st-filter-chevron-color, #999);
122
- flex-shrink: 0;
123
- transition: transform 0.15s ease;
124
- }
125
- }
126
-
127
- }
128
-
129
- .st-actions {
130
- display: flex;
131
- gap: 0.5rem;
132
- margin-left: auto; // Always pin actions to the right edge
133
- }
134
- }
135
-
136
- /* Filter panel portal — top-level so styles apply outside .st-filters nesting */
137
- .st-filter-panel {
138
- min-width: var(--st-filter-panel-min-width, 180px);
139
- background: var(--st-filter-panel-bg, #fff);
140
- border: var(--st-filter-panel-border, 1px solid #ebebeb);
141
- border-radius: var(--st-filter-panel-radius, 12px);
142
- box-shadow: var(--st-filter-panel-shadow, 0 8px 28px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06));
143
- padding: var(--st-filter-panel-padding, 6px);
144
- }
145
-
146
- .st-filter-option {
147
- display: flex;
148
- align-items: center;
149
- padding: var(--st-filter-option-padding, 8px 12px);
150
- margin-bottom: 0.3rem;
151
- border-radius: var(--st-filter-option-radius, 7px);
152
- font-size: var(--st-filter-font-size, 14px);
153
- color: var(--st-filter-color, #333);
154
- cursor: pointer;
155
- transition: background 0.1s;
156
- white-space: nowrap;
157
-
158
- &:hover {
159
- background: var(--st-filter-option-hover-bg, #f5f5f5);
160
- }
161
-
162
- &.selected {
163
- background: var(--st-filter-option-selected-bg, #f0f0f0);
164
- font-weight: 500;
165
- color: var(--st-filter-option-selected-color, #111);
166
- }
167
- }
168
-
169
- /* Table */
170
- .st-table-container {
171
- overflow-x: auto;
172
- overflow-y: visible;
173
- padding: 0; // Flush layout — no padding around the table
174
-
175
- // Custom Scrollbar
176
- &::-webkit-scrollbar {
177
- width: var(--st-scrollbar-width, 8px);
178
- height: var(--st-scrollbar-height, 8px);
179
- }
180
-
181
- &::-webkit-scrollbar-track {
182
- background: var(--st-scrollbar-track-bg, #f1f1f1);
183
- border-radius: var(--st-scrollbar-track-radius, 4px);
184
- }
185
-
186
- &::-webkit-scrollbar-thumb {
187
- background: var(--st-scrollbar-thumb-bg, #c1c1c1);
188
- border-radius: var(--st-scrollbar-thumb-radius, 4px);
189
-
190
- &:hover {
191
- background: var(--st-scrollbar-thumb-hover-bg, #a8a8a8);
192
- }
193
- }
194
-
195
- &.has-sticky-header {
196
- .st-table {
197
- thead th {
198
- position: sticky;
199
- top: 0;
200
- z-index: 10;
201
- background: var(--st-header-bg, #f5f5f5);
202
- box-shadow: 0 1px 2px -1px rgba(0, 0, 0, 0.1);
203
- }
204
- }
205
- }
206
-
207
- table {
208
- width: 100%;
209
- border-collapse: separate;
210
- border-spacing: 0;
211
- font-size: var(--st-font-size, 14px);
212
-
213
- thead {
214
- background: var(--st-header-bg, #f5f5f5);
215
-
216
- th {
217
- padding: 0.4rem 1rem;
218
- text-align: left;
219
- color: var(--st-header-color, #333);
220
- font-weight: var(--st-header-weight, 500);
221
- font-size: var(--st-header-size, 14px);
222
- text-transform: var(--st-header-transform, none);
223
- border-top: none;
224
- border-bottom: none;
225
- white-space: nowrap;
226
-
227
- // Top-left corner radius on first header cell (replaces overflow:hidden clipping)
228
- &:first-child {
229
- border-top-left-radius: var(--st-border-radius, 8px);
230
- }
231
-
232
- // Top-right corner radius on last header cell
233
- &:last-child {
234
- border-top-right-radius: var(--st-border-radius, 8px);
235
- }
236
-
237
- &.sortable {
238
- cursor: pointer;
239
-
240
- &:hover {
241
- opacity: 0.8;
242
- }
243
- }
244
-
245
- &.st-checkbox-col {
246
- width: 40px;
247
- background: var(--st-header-bg, #f5f5f5);
248
- position: sticky;
249
- left: 0;
250
- z-index: 3;
251
- }
252
-
253
- &.sticky-col {
254
- position: sticky;
255
- z-index: 3;
256
- background: var(--st-header-bg, #f5f5f5);
257
- }
258
-
259
- &.st-actions-col {
260
- width: 100px;
261
- min-width: 100px;
262
- max-width: 100px;
263
- background: var(--st-header-bg, #f5f5f5);
264
- box-shadow: var(--st-actions-col-shadow, -4px 0 8px rgba(0, 0, 0, 0.06));
265
- text-align: center;
266
- position: sticky;
267
- right: 0;
268
- z-index: 4;
269
- }
270
- }
271
- }
272
-
273
- tbody {
274
- tr {
275
- background: var(--st-row-bg, #fff);
276
-
277
- td {
278
- padding: 0.5rem 1rem;
279
- color: var(--st-text-color, #333);
280
- vertical-align: middle;
281
- border-bottom: var(--st-row-border, 1px solid #eee);
282
- font-weight: 400;
283
-
284
- // Checkbox column — always grey, sticky at left: 0
285
- &.st-checkbox-col {
286
- // background: var(--st-frozen-col-bg, #f9f9f9);
287
- position: sticky;
288
- left: 0;
289
- z-index: 2;
290
- }
291
-
292
- // Only first data column gets grey background
293
- &.first-data-col {
294
- // background: var(--st-frozen-col-bg, #f9f9f9);
295
- color: var(--st-text-color, #333); // Normal black by default
296
- font-weight: 500;
297
- }
298
-
299
- &.sticky-col {
300
- position: sticky;
301
- z-index: 2;
302
- background: var(--st-row-bg, #fff); // White — grey only for first-data-col
303
-
304
- &:first-child {
305
- left: 0;
306
- }
307
-
308
- // First data column is the only sticky col that gets grey
309
- // &.first-data-col {
310
- // background: var(--st-frozen-col-bg, #f9f9f9);
311
- // }
312
- }
313
-
314
- &.st-actions-col {
315
- width: 100px;
316
- min-width: 100px;
317
- max-width: 100px;
318
- background: var(--st-frozen-col-bg, #f9f9f9);
319
- box-shadow: var(--st-actions-col-shadow, -4px 0 8px rgba(0, 0, 0, 0.06));
320
- text-align: center;
321
- position: sticky;
322
- right: 0;
323
- z-index: 2;
324
- }
325
- }
326
-
327
- // No border on the last row; bottom corner radius on first and last cells
328
- &:last-child td {
329
- border-bottom: none;
330
-
331
- &:first-child {
332
- border-bottom-left-radius: var(--st-border-radius, 8px);
333
- }
334
-
335
- &:last-child {
336
- border-bottom-right-radius: var(--st-border-radius, 8px);
337
- }
338
- }
339
-
340
- // Row hover — medium weight, first-col text turns red; all cells use the same hover bg
341
- &:hover td {
342
- font-weight: 500;
343
- background: var(--st-row-hover-bg, #f5f5f5);
344
-
345
- &.first-data-col {
346
- color: var(--st-first-col-color, #E84646); // Red text only on hover
347
- }
348
- }
349
-
350
- &.selected td {
351
- background: var(--st-row-selected-bg, #f3e5f5);
352
-
353
- &.sticky-col {
354
- background: var(--st-row-selected-bg, #f3e5f5);
355
- }
356
- }
357
-
358
- .clickable-cell {
359
- cursor: pointer;
360
- transition: background 0.2s;
361
- }
362
- }
363
- }
364
-
365
- // When selectable is enabled, first data column is NOT greyed — checkbox col takes that role visually
366
- &.is-selectable {
367
- tbody {
368
- td.first-data-col {
369
- background: var(--st-row-bg, #fff);
370
-
371
- &.sticky-col {
372
- background: var(--st-row-bg, #fff);
373
- }
374
- }
375
-
376
- tr:hover td.first-data-col {
377
- background: var(--st-row-hover-bg, #f5f5f5);
378
-
379
- &.sticky-col {
380
- background: var(--st-row-hover-bg, #f5f5f5);
381
- }
382
- }
383
-
384
- tr.selected td.first-data-col {
385
- background: var(--st-row-selected-bg, #f3e5f5);
386
- }
387
- }
388
- }
389
- }
390
- }
391
-
392
- // Combined sort icon (single SVG, opacity-driven)
393
- .sort-icon-wrap {
394
- display: inline-flex;
395
- align-items: center;
396
- vertical-align: middle;
397
- flex-shrink: 0;
398
- margin-left: 4px;
399
- position: relative;
400
- top: -3px;
401
-
402
- svg {
403
- display: block;
404
- }
405
- }
406
-
407
- // Selection count strip — shown between toolbar and table header when selectable
408
- .st-selection-strip {
409
- display: flex;
410
- align-items: center;
411
- padding: var(--st-selection-strip-padding, 0.45rem 1rem);
412
- background: var(--st-selection-strip-bg, #fafafa);
413
- border-bottom: var(--st-selection-strip-border, 1px solid rgba(0, 0, 0, 0.08));
414
-
415
- .st-selection-count {
416
- font-size: var(--st-selection-count-font-size, 13px);
417
- color: var(--st-selection-count-color, #444);
418
- font-weight: var(--st-selection-count-font-weight, 500);
419
- }
420
- }
421
-
422
- // Checkboxes
423
- input[type="checkbox"] {
424
- accent-color: var(--st-checkbox-color, #e63e30);
425
- width: var(--st-checkbox-size, 16px);
426
- height: var(--st-checkbox-size, 16px);
427
- cursor: pointer;
428
- }
429
-
430
- // Badges
431
- .st-badge {
432
- display: inline-block;
433
- padding: var(--st-badge-padding, 4px 12px);
434
- border-radius: var(--st-badge-radius, 12px);
435
- font-size: var(--st-badge-font-size, 12px);
436
- font-weight: var(--st-badge-font-weight, 500);
437
- text-align: center;
438
- white-space: nowrap;
439
-
440
- &.badge-success {
441
- background: var(--st-badge-success-bg, #e8f5e9);
442
- color: var(--st-badge-success-color, #2e7d32);
443
- }
444
-
445
- &.badge-warning {
446
- background: var(--st-badge-warning-bg, #fff3e0);
447
- color: var(--st-badge-warning-color, #ef6c00);
448
- }
449
-
450
- &.badge-danger {
451
- background: var(--st-badge-danger-bg, #ffebee);
452
- color: var(--st-badge-danger-color, #c62828);
453
- }
454
-
455
- &.badge-info {
456
- background: var(--st-badge-info-bg, #e3f2fd);
457
- color: var(--st-badge-info-color, #1565c0);
458
- }
459
-
460
- &.badge-neutral {
461
- background: var(--st-badge-neutral-bg, #f5f5f5);
462
- color: var(--st-badge-neutral-color, #616161);
463
- }
464
- }
465
-
466
- .st-row-actions {
467
- .action-buttons {
468
- display: flex;
469
- gap: 0.5rem;
470
- align-items: center;
471
- justify-content: center;
472
- }
473
- }
474
-
475
- .st-action-icon {
476
- margin-right: var(--st-action-icon-margin, 8px);
477
- }
478
-
479
- .st-dropdown-container {
480
- position: relative;
481
- display: inline-block;
482
- }
483
-
484
- .st-dropdown-btn {
485
- background: transparent;
486
- border: none;
487
- cursor: pointer;
488
- padding: 0;
489
- display: flex;
490
- align-items: center;
491
- justify-content: center;
492
-
493
- &:hover .action-circle {
494
- background: rgba(0, 0, 0, 0.06);
495
- }
496
- }
497
-
498
- // Circle wrapping the three-dot icon
499
- .action-circle {
500
- display: inline-flex;
501
- align-items: center;
502
- justify-content: center;
503
- width: var(--st-action-circle-size, 32px);
504
- height: var(--st-action-circle-size, 32px);
505
- border-radius: 50%;
506
- background: var(--st-table-bg, #fff);
507
- border: none;
508
- color: var(--st-text-color, #555);
509
- font-size: 1rem;
510
- transition: background 0.15s;
511
- }
512
-
513
- .st-dropdown-menu {
514
- min-width: var(--st-dropdown-min-width, 150px);
515
- background: var(--st-dropdown-bg, #fff);
516
- border: var(--st-dropdown-border, 1px solid #e0e0e0);
517
- border-radius: var(--st-dropdown-radius, 8px);
518
- box-shadow: var(--st-dropdown-shadow, 0 8px 24px rgba(0, 0, 0, 0.12));
519
- z-index: 9999;
520
- display: flex;
521
- flex-direction: column;
522
- padding: var(--st-dropdown-padding, 4px);
523
- margin-top: 4px;
524
- }
525
-
526
- .st-dropdown-item {
527
- background: transparent;
528
- border: none;
529
- padding: var(--st-dropdown-item-padding, 8px 12px);
530
- border-radius: var(--st-dropdown-item-radius, 6px);
531
- text-align: left;
532
- cursor: pointer;
533
- display: flex;
534
- align-items: center;
535
- font-size: var(--st-font-size, 14px);
536
- color: var(--st-text-color, #333);
537
- transition: background 0.15s;
538
-
539
- &:hover {
540
- background: var(--st-dropdown-item-hover-bg, #f5f5f5);
541
- }
542
-
543
- .st-action-icon {
544
- margin-right: 8px;
545
- width: 16px;
546
- text-align: center;
547
- }
548
- }
549
-
550
- .no-data {
551
- padding: 2rem;
552
- color: var(--st-no-data-color, #888);
553
- text-align: center;
554
- }
555
-
556
-
557
- /* Pagination — inside the card, bottom edge */
558
- .st-pagination {
559
- padding: var(--st-pagination-padding, 0.6rem 1rem);
560
- border-top: 1px solid rgba(0, 0, 0, 0.07);
561
- background: var(--st-table-bg, #fff);
562
- border-bottom-left-radius: var(--st-border-radius, 8px);
563
- border-bottom-right-radius: var(--st-border-radius, 8px);
564
- }
565
-
566
- /* Responsive */
567
- @media (max-width: 768px) {
568
- .st-toolbar {
569
- flex-direction: column;
570
- align-items: stretch;
571
-
572
- .st-search,
573
- .st-filters,
574
- .st-actions,
575
- .st-search input {
576
- width: 100%;
577
- }
578
- }
579
-
580
- .st-table-container {
581
- font-size: 13px;
582
- }
583
- }
584
-
585
- /* Loader */
586
- .st-table-container {
587
- position: relative;
588
- // min-height: 200px;
589
-
590
- .st-table.loading-data {
591
- opacity: 0.5;
592
- pointer-events: none;
593
- }
594
-
595
- .st-check-loader {
596
- position: absolute;
597
- top: 0;
598
- left: 0;
599
- width: 100%;
600
- height: 100%;
601
- display: flex;
602
- justify-content: center;
603
- align-items: center;
604
- z-index: 10;
605
-
606
- .spinner {
607
- width: 40px;
608
- height: 40px;
609
- border: 4px solid var(--st-spinner-border-color, rgba(0, 0, 0, 0.1));
610
- border-left-color: var(--st-loader-color);
611
- border-radius: 50%;
612
- animation: spin 1s linear infinite;
613
- }
614
- }
615
- }
616
-
617
- @keyframes spin {
618
- 0% { transform: rotate(0deg); }
619
- 100% { transform: rotate(360deg); }
620
- }
621
-
622
- // Inline editing styles
623
- .st-stacked-inputs {
624
- display: flex;
625
- flex-direction: column;
626
- gap: 0.35rem;
627
- width: 100%;
628
- }
629
-
630
- .st-cell-input,
631
- .st-cell-select {
632
- width: 100%;
633
- box-sizing: border-box;
634
- padding: 0.35rem 0.5rem;
635
- font-family: inherit;
636
- font-size: var(--st-font-size, 14px);
637
- color: var(--st-text-color, #333);
638
- background-color: var(--st-cell-input-bg, #fcfcfc);
639
- border: var(--st-cell-input-border, 1px solid #dee2e6);
640
- border-radius: var(--st-border-radius, 8px);
641
- outline: none;
642
- transition: border-color 0.15s, box-shadow 0.15s;
643
-
644
- &:focus {
645
- border-color: var(--st-cell-input-focus-outline-color, #00bcd4);
646
- }
647
-
648
- &:disabled {
649
- background-color: #f1f3f5;
650
- color: #6c757d;
651
- cursor: not-allowed;
652
- border-color: #dee2e6;
653
- }
654
- }
655
-
656
- .edit-mode-actions {
657
- display: flex;
658
- gap: 0.5rem;
659
- align-items: center;
660
- justify-content: center;
661
- white-space: nowrap;
662
- }
663
-
664
- .st-date-cell {
665
- display: flex;
666
- align-items: center;
667
- gap: 0.25rem;
668
- width: 100%;
669
-
670
- .st-cell-input {
671
- flex: 1;
672
- min-width: 0;
673
- }
674
-
675
- mat-datepicker-toggle {
676
- flex-shrink: 0;
677
-
678
- ::ng-deep .mat-mdc-icon-button {
679
- width: 28px;
680
- height: 28px;
681
- padding: 2px;
682
- color: var(--st-text-color, #333);
683
- }
684
- }
685
- }