@solcre-org/core-ui 2.19.2 → 2.20.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.
Files changed (76) hide show
  1. package/README.md +10 -0
  2. package/fesm2022/solcre-org-core-ui.mjs +5 -5
  3. package/fesm2022/solcre-org-core-ui.mjs.map +1 -1
  4. package/llm/README.md +34 -0
  5. package/llm/components/active-filters.md +25 -0
  6. package/llm/components/ad-login-button.md +57 -0
  7. package/llm/components/alert-container.md +26 -0
  8. package/llm/components/alert.md +46 -0
  9. package/llm/components/base-field.md +39 -0
  10. package/llm/components/card.md +23 -0
  11. package/llm/components/carousel.md +68 -0
  12. package/llm/components/checkbox-field.md +61 -0
  13. package/llm/components/color-picker-field.md +55 -0
  14. package/llm/components/confirmation-dialog.md +46 -0
  15. package/llm/components/data-list-item.md +35 -0
  16. package/llm/components/data-list.md +27 -0
  17. package/llm/components/date-field.md +56 -0
  18. package/llm/components/daterange-field.md +59 -0
  19. package/llm/components/datetime-field.md +61 -0
  20. package/llm/components/document-field.md +60 -0
  21. package/llm/components/dropdown.md +73 -0
  22. package/llm/components/field-errors.md +33 -0
  23. package/llm/components/file-field.md +60 -0
  24. package/llm/components/file-preview.md +25 -0
  25. package/llm/components/filter-modal.md +25 -0
  26. package/llm/components/fixed-actions-mobile-modal.md +23 -0
  27. package/llm/components/gallery-modal.md +23 -0
  28. package/llm/components/generic-button.md +82 -0
  29. package/llm/components/generic-calendar.md +70 -0
  30. package/llm/components/generic-chat.md +81 -0
  31. package/llm/components/generic-documentation.md +32 -0
  32. package/llm/components/generic-fixed-actions.md +24 -0
  33. package/llm/components/generic-gallery.md +75 -0
  34. package/llm/components/generic-modal.md +95 -0
  35. package/llm/components/generic-pagination.md +29 -0
  36. package/llm/components/generic-rating.md +26 -0
  37. package/llm/components/generic-scheduler.md +92 -0
  38. package/llm/components/generic-sidebar.md +80 -0
  39. package/llm/components/generic-skeleton.md +80 -0
  40. package/llm/components/generic-steps.md +99 -0
  41. package/llm/components/generic-switch.md +140 -0
  42. package/llm/components/generic-table.md +157 -0
  43. package/llm/components/generic-timeline.md +70 -0
  44. package/llm/components/header.md +39 -0
  45. package/llm/components/image-modal.md +23 -0
  46. package/llm/components/image-preview.md +79 -0
  47. package/llm/components/index.md +66 -0
  48. package/llm/components/layout-auth.md +82 -0
  49. package/llm/components/layout.md +92 -0
  50. package/llm/components/loader.md +35 -0
  51. package/llm/components/main-nav.md +56 -0
  52. package/llm/components/manual-refresh.md +25 -0
  53. package/llm/components/mobile-header.md +25 -0
  54. package/llm/components/multi-entry-field.md +67 -0
  55. package/llm/components/nav[core-generic-tabs].md +28 -0
  56. package/llm/components/number-field.md +56 -0
  57. package/llm/components/password-field.md +56 -0
  58. package/llm/components/phone-field.md +60 -0
  59. package/llm/components/progress-bar.md +49 -0
  60. package/llm/components/select-field.md +61 -0
  61. package/llm/components/server-select-field.md +59 -0
  62. package/llm/components/sidebar-custom-modal.md +23 -0
  63. package/llm/components/smart-field.md +62 -0
  64. package/llm/components/switch-field.md +56 -0
  65. package/llm/components/text-area-field.md +56 -0
  66. package/llm/components/text-field.md +58 -0
  67. package/llm/components/time-field.md +62 -0
  68. package/llm/components.md +56 -0
  69. package/llm/demo-examples.md +186 -0
  70. package/llm/exports.md +286 -0
  71. package/llm/form-recipes.md +203 -0
  72. package/llm/llms.txt +47 -0
  73. package/llm/repo-map.md +30 -0
  74. package/llm/screen-blueprints.md +129 -0
  75. package/llm/screen-recipes.md +53 -0
  76. package/package.json +1 -1
package/llm/exports.md ADDED
@@ -0,0 +1,286 @@
1
+ # Public exports (current)
2
+
3
+ Source of truth: `projects/core-ui-library/src/public-api.ts`.
4
+
5
+ ## Components (from `projects/core-ui-library/src/lib/components/index.ts`)
6
+ - `./fields/field-errors/field-errors.component`
7
+ - `./active-filters/active-filters.component`
8
+ - `./fields/types/base/base-field.component`
9
+ - `./fields/types/checkbox-field/checkbox-field.component`
10
+ - `./fields/types/color-picker-field/color-picker-field.component`
11
+ - `./fields/types/date-field/date-field.component`
12
+ - `./fields/types/daterange-field/daterange-field.component`
13
+ - `./fields/types/datetime-field/datetime-field.component`
14
+ - `./fields/types/document-field/document-field.component`
15
+ - `./fields/types/file-field/file-field.component`
16
+ - `./fields/types/number-field/number-field.component`
17
+ - `./fields/types/password-field/password-field.component`
18
+ - `./fields/types/phone-field/phone-field.component`
19
+ - `./fields/types/select-field/select-field.component`
20
+ - `./fields/types/server-select-field/services/server-select.service`
21
+ - `./fields/types/server-select-field/server-select-field.component`
22
+ - `./fields/types/switch-field/switch-field.component`
23
+ - `./fields/types/text-area-field/text-area-field.component`
24
+ - `./fields/types/text-field/text-field.component`
25
+ - `./fields/types/time-field/time-field.component`
26
+ - `./fields/types/multi-entry-field/multi-entry-field.component`
27
+ - `./fields/types/smart-field/smart-field.component`
28
+ - `./loader/services/loader.service`
29
+ - `./loader/loader.component`
30
+ - `./data-list/data-list.component`
31
+ - `./data-list-item/data-list-item.component`
32
+ - `./generic-button/enums/ButtonContext.enum`
33
+ - `./generic-button/enums/ButtonSize.enum`
34
+ - `./generic-button/enums/ButtonType.enum`
35
+ - `./generic-button/interfaces/ButtonConfig.interface`
36
+ - `./generic-button/interfaces/ButtonActionEvent.interface`
37
+ - `./generic-button/generic-button.component`
38
+ - `./generic-modal/generic-modal.component`
39
+ - `./generic-pagination/services/pagination.service`
40
+ - `./generic-pagination/generic-pagination.component`
41
+ - `./generic-tabs/interfaces/tab-config.interface`
42
+ - `./generic-tabs/interfaces/tab-click.interface`
43
+ - `./generic-tabs/interfaces/tab.interface`
44
+ - `./generic-tabs/generic-tabs.component`
45
+ - `./confirmation-dialog/enums/DialogActions.enum`
46
+ - `./confirmation-dialog/interfaces/ConfirmDialogConfig.interface`
47
+ - `./confirmation-dialog/services/confirmation-dialog.service`
48
+ - `./confirmation-dialog/confirmation-dialog.component`
49
+ - `./generic-table/components/dropdown/enums/DropdownDirection.enum`
50
+ - `./generic-table/components/dropdown/enums/TableAction.enum`
51
+ - `./generic-table/components/dropdown/services/dropdown.service`
52
+ - `./generic-table/components/dropdown/dropdown.component`
53
+ - `./generic-table/components/filter-modal/enums/FilterType.enum`
54
+ - `./generic-table/components/filter-modal/interfaces/FilterConfig.interface`
55
+ - `./generic-table/components/filter-modal/services/filter.service`
56
+ - `./generic-table/components/filter-modal/filter-modal.component`
57
+ - `./generic-table/interfaces/ColumnConfig.interface`
58
+ - `./generic-table/interfaces/ColumnDisabledConfig.interface`
59
+ - `./generic-table/interfaces/RowVisibilityConfig.interface`
60
+ - `./generic-table/interfaces/InlineEditConfig.interface`
61
+ - `./generic-table/interfaces/CustomAction.interface`
62
+ - `./generic-table/interfaces/ExpansionConfig.interface`
63
+ - `./generic-table/interfaces/GlobalAction.interface`
64
+ - `./generic-table/interfaces/MoreDataConfig.interface`
65
+ - `./generic-table/interfaces/RowStyleConfig.interface`
66
+ - `./generic-table/interfaces/TableActionConfig.interface`
67
+ - `./generic-table/interfaces/SortConfig.interface`
68
+ - `./generic-table/interfaces/TableSortConfig.interface`
69
+ - `./generic-table/interfaces/TableFixedActionsConfig.interface`
70
+ - `./generic-table/enums/SortDirection.enum`
71
+ - `./generic-table/enums/SortMode.enum`
72
+ - `./generic-table/services/table-action.service`
73
+ - `./generic-table/services/table-data.service`
74
+ - `./generic-table/services/table-sort.service`
75
+ - `./generic-table/services/table-fixed-actions.service`
76
+ - `./generic-table/generic-table.component`
77
+ - `./alert/alert-container.component`
78
+ - `./alert/alert.component`
79
+ - `./generic-documentation/enums/DocumentAction.enum`
80
+ - `./generic-documentation/enums/DocumentDisplayMode.enum`
81
+ - `./generic-documentation/interfaces/DocumentActionEvent.interface`
82
+ - `./generic-documentation/interfaces/DocumentConfig.interface`
83
+ - `./generic-documentation/interfaces/DocumentItem.interface`
84
+ - `./generic-documentation/generic-documentation.component`
85
+ - `./generic-sidebar/services/sidebar.service`
86
+ - `./generic-sidebar/services/sidebar-mobile-modal.service`
87
+ - `./generic-sidebar/services/sidebar-custom-modal.service`
88
+ - `./generic-sidebar/generic-sidebar.component`
89
+ - `./generic-sidebar/components/sidebar-custom-modal.component`
90
+ - `./generic-sidebar/services/sidebar-template-registry.service`
91
+ - `./generic-timeline/enums/TimelineStatus.enum`
92
+ - `./generic-timeline/enums/TimelineType.enum`
93
+ - `./generic-timeline/interfaces/TimelineConfig.interface`
94
+ - `./generic-timeline/interfaces/TimelineItem.interface`
95
+ - `./generic-timeline/services/timeline.service`
96
+ - `./generic-timeline/generic-timeline.component`
97
+ - `./header/header.component`
98
+ - `./mobile-header`
99
+ - `./main-nav/enums/PermissionsActions.enum`
100
+ - `./main-nav/enums/PermissionsResources.enum`
101
+ - `./main-nav/enums/PermissionsCustomActions.enum`
102
+ - `./main-nav/enums/SidebarState.enum`
103
+ - `./main-nav/interfaces/NavConfig.interface`
104
+ - `./main-nav/interfaces/NavUserConfig.interface`
105
+ - `./main-nav/interfaces/NavItem.interface`
106
+ - `./main-nav/services/main-nav.service`
107
+ - `./main-nav/main-nav.component`
108
+ - `./layout/services/layout-state.service`
109
+ - `./layout/services/layout.service`
110
+ - `./layout/layout`
111
+ - `./layout-auth/layout-auth`
112
+ - `./generic-steps/enums/StepStatus.enum`
113
+ - `./generic-steps/enums/StepType.enum`
114
+ - `./generic-steps/enums/StepSize.enum`
115
+ - `./generic-steps/interfaces/StepsConfig.interface`
116
+ - `./generic-steps/interfaces/StepItemConfig.interface`
117
+ - `./generic-steps/interfaces/StepClickEvent.interface`
118
+ - `./generic-steps/services/steps.service`
119
+ - `./generic-steps/generic-steps.component`
120
+ - `./generic-rating/generic-rating.component`
121
+ - `./main-nav/interfaces/LogoImagesConfig.interface`
122
+ - `./main-nav/interfaces/BottomNavItem.interface`
123
+ - `./progress-bar/progress-bar-size.enum`
124
+ - `./progress-bar/progress-bar.component`
125
+ - `./card/card.component`
126
+ - `./image-modal/image-modal.component`
127
+ - `./image-preview`
128
+ - `./carousel`
129
+ - `./generic-skeleton`
130
+ - `./generic-chat/enums/chat-message-type.enum`
131
+ - `./generic-chat/enums/chat-message-position.enum`
132
+ - `./generic-chat/interfaces/chat-message.interface`
133
+ - `./generic-chat/interfaces/chat-config.interface`
134
+ - `./generic-chat/interfaces/file-preview.interface`
135
+ - `./generic-chat/services/generic-chat.service`
136
+ - `./generic-chat/generic-chat.component`
137
+ - `./manual-refresh`
138
+ - `./generic-gallery`
139
+ - `./gallery-modal`
140
+ - `./generic-switch`
141
+ - `./generic-fixed-actions`
142
+ - `./auth/ad-auth/enums/ad-interaction-type.enum`
143
+ - `./auth/ad-auth/interfaces/ad-auth-config.interface`
144
+ - `./auth/ad-auth/services/ad-auth.service`
145
+ - `./auth/ad-auth/guards/ad-auth.guard`
146
+ - `./auth/ad-auth/interceptors/ad-auth.interceptor`
147
+ - `./auth/ad-auth/providers/ad-auth.providers`
148
+ - `./auth/ad-auth/components/ad-login-button/ad-login-button.component`
149
+ - `./generic-calendar`
150
+ - `./generic-scheduler`
151
+
152
+ ## Services (from `projects/core-ui-library/src/lib/services/index.ts`)
153
+ - `./alert.service`
154
+ - `./core-ui-translate.service`
155
+ - `./custom-class.service`
156
+ - `./data-store.service`
157
+ - `./file-upload.service`
158
+ - `./global-api-config.service`
159
+ - `./header-configuration.service`
160
+ - `./header.service`
161
+ - `./mobile-resolution.service`
162
+ - `./model-api.service`
163
+ - `./permission.service`
164
+ - `./permission-wrapper.service`
165
+ - `./permission-enums.service`
166
+ - `./rating.service`
167
+ - `./redirect-url.service`
168
+ - `./translation-merge.service`
169
+
170
+ ## Interfaces (from `projects/core-ui-library/src/lib/interfaces/index.ts`)
171
+ - `./field-configs/checkbox-field-config.interface`
172
+ - `./field-configs/date-field-config.interface`
173
+ - `./field-configs/daterange-field-config.interface`
174
+ - `./field-configs/document-field-config.interface`
175
+ - `./field-configs/file-field-config.interface`
176
+ - `./field-configs/number-field-config.interface`
177
+ - `./field-configs/phone-field-config.interface`
178
+ - `./field-configs/select-server-side.config.interface`
179
+ - `./field-configs/switch-field-config.interface`
180
+ - `./field-configs/time-field.config.interface`
181
+ - `./field-configs/multi-entry-field.config.interface`
182
+ - `./global/Adress.interface`
183
+ - `./global/Alert.interface`
184
+ - `./global/ActiveFiltersConfig.interface`
185
+ - `./global/ApiConfig.interface`
186
+ - `./global/ApiResponse.interface`
187
+ - `./global/ConfirmUploadRequest.interface`
188
+ - `./global/DataListItem.interface`
189
+ - `./global/DynamicFieldsHelperConfig.interface`
190
+ - `./global/FileUploadConfig.interface`
191
+ - `./global/FilterParams.interface`
192
+ - `./global/HeaderActionConfig.interface`
193
+ - `./global/header-action.interface`
194
+ - `./global/ModalButtonConfig.interface`
195
+ - `./global/ModalFieldConfig.interface`
196
+ - `./global/ModalStepConfig.interface`
197
+ - `./global/ModalTabConfig.interface`
198
+ - `./global/ModalValidationResult.interface`
199
+ - `./global/PaginatedResponse.interface`
200
+ - `./global/PermissionProvider.interface`
201
+ - `./global/PermissionEnums.interface`
202
+ - `./global/PresignedDownloadUrlResponse.interface`
203
+ - `./global/PresignedUrlRequest.interface`
204
+ - `./global/PresignedUrlResponse.interface`
205
+ - `./layout/layout-config.interface`
206
+ - `./layout/layout-data-attributes.interface`
207
+ - `./layout/sidebar-back-button.interface`
208
+ - `./layout/sidebar-component-events.interface`
209
+ - `./layout/sidebar-component.interface`
210
+ - `./layout/sidebar-config.interface`
211
+ - `./layout/sidebar-item.interface`
212
+ - `./layout/sidebar-sub-item.interface`
213
+ - `./layout/sidebar-responsive-config.interface`
214
+ - `./layout/sidebar-custom-modal-config.interface`
215
+ - `./user/company-info.interface`
216
+ - `./global/HeaderOrderConfig.interface`
217
+ - `./global/ExtendedPermissionProvider.interface`
218
+ - `./global/RatingConfig.interface`
219
+ - `../enums/global/RatingSize.enum`
220
+ - `../enums/global/RatingType.enum`
221
+ - `./global/RatingStar.interface`
222
+ - `./global/RatingSubmitEvent.interface`
223
+ - `./calendar`
224
+
225
+ ## Enums (from `projects/core-ui-library/src/lib/enums/index.ts`)
226
+ - `./global/AlertType.enum`
227
+ - `./global/FieldType.enum`
228
+ - `./global/FileType.enum`
229
+ - `./global/ModalMode.enum`
230
+ - `./global/NumberRange.enum`
231
+ - `./global/TimeInterval.enum`
232
+ - `./layout/layout-breakpoint.enum`
233
+ - `./layout/layout-visibility.enum`
234
+ - `./layout/layout.enums`
235
+ - `./layout/sidebar-height.enum`
236
+ - `./layout/sidebar-position.enum`
237
+ - `./layout/sidebar-width.enum`
238
+ - `./layout/sidebar-mobile-type.enum`
239
+ - `./global/HeaderElementType.enum`
240
+ - `./country-codes.enum`
241
+ - `./calendar`
242
+
243
+ ## Directives
244
+ - `projects/core-ui-library/src/lib/directives/DynamicField.directive`
245
+ - `projects/core-ui-library/src/lib/directives/core-host.directive`
246
+
247
+ ## Interceptors
248
+ - `projects/core-ui-library/src/lib/interceptors/cache-busting.interceptor`
249
+ - `projects/core-ui-library/src/lib/interceptors/permissions.interceptor`
250
+
251
+ ## Loaders
252
+ - `projects/core-ui-library/src/lib/loaders/core-ui-translate.loader`
253
+
254
+ ## Providers
255
+ - `projects/core-ui-library/src/lib/providers/translate.providers`
256
+ - `projects/core-ui-library/src/lib/providers/permission.provider`
257
+ - `projects/core-ui-library/src/lib/providers/permission-enums.provider`
258
+ - `projects/core-ui-library/src/lib/providers/permission-service.provider`
259
+ - `projects/core-ui-library/src/lib/providers/api-configuration.provider`
260
+
261
+ ## Models
262
+ - `projects/core-ui-library/src/lib/models/global/configuration.model`
263
+ - `projects/core-ui-library/src/lib/models/global/file.model`
264
+ - `projects/core-ui-library/src/lib/models/global/file-template-type.model`
265
+ - `projects/core-ui-library/src/lib/models/global/file-template.model`
266
+ - `projects/core-ui-library/src/lib/models/global/file-type.model`
267
+ - `projects/core-ui-library/src/lib/models/security/permission.model`
268
+ - `projects/core-ui-library/src/lib/models/users/users.model`
269
+ - `projects/core-ui-library/src/lib/models/users/role.model`
270
+ - `projects/core-ui-library/src/lib/models/users/reset-password.model`
271
+
272
+ ## Utilities
273
+ - `projects/core-ui-library/src/lib/utilities/date.utility`
274
+ - `projects/core-ui-library/src/lib/utilities/isSameDate.util`
275
+ - `projects/core-ui-library/src/lib/utilities/dynamic-fields.helper`
276
+ - `projects/core-ui-library/src/lib/utilities/uruguayan-document-validation.helper`
277
+ - `projects/core-ui-library/src/lib/utilities/age-validation.helper`
278
+
279
+ ## Validators
280
+ - `projects/core-ui-library/src/lib/validators/password.validator`
281
+ - `projects/core-ui-library/src/lib/validators/document-field-validators`
282
+
283
+ ## Constants
284
+ - `projects/core-ui-library/src/lib/constants/countries.constants`
285
+ - `projects/core-ui-library/src/lib/constants/version`
286
+
@@ -0,0 +1,203 @@
1
+ # Form recipes (ModalFieldConfig)
2
+
3
+ These recipes show how to assemble form fields for create/edit/filter flows.
4
+
5
+ ## Common building blocks
6
+ - `ModalFieldConfig<T>` from `interfaces/global/ModalFieldConfig.interface.ts`
7
+ - `FieldType` enum from `enums/global/FieldType.enum.ts`
8
+ - `ModalMode` enum from `enums/global/ModalMode.enum.ts`
9
+ - Optional per-field configs: `SelectFieldConfig`, `SelectServerSideConfig`, `PhoneModalFieldConfig`, `FileFieldConfig`, `DocumentFieldConfig`, `NumberModalFieldConfig`, `DateRangeFieldConfig`
10
+
11
+ ## Create/Edit form (generic modal)
12
+
13
+ ### Field config
14
+ ```ts
15
+ import { ModalFieldConfig } from 'projects/core-ui-library/src/lib/interfaces/global/ModalFieldConfig.interface';
16
+ import { FieldType, ModalMode } from 'projects/core-ui-library/src/lib/enums';
17
+ import { Validators } from '@angular/forms';
18
+
19
+ interface User {
20
+ id: number;
21
+ name: string;
22
+ email: string;
23
+ status: 'active' | 'inactive';
24
+ phone: string;
25
+ }
26
+
27
+ export const userFields: ModalFieldConfig<User>[] = [
28
+ {
29
+ key: 'name',
30
+ label: 'Name',
31
+ type: FieldType.TEXT,
32
+ placeholder: 'Full name',
33
+ readonly: false,
34
+ validators: [Validators.required],
35
+ },
36
+ {
37
+ key: 'email',
38
+ label: 'Email',
39
+ type: FieldType.TEXT,
40
+ placeholder: 'user@company.com',
41
+ readonly: false,
42
+ validators: [Validators.required],
43
+ },
44
+ {
45
+ key: 'status',
46
+ label: 'Status',
47
+ type: FieldType.SELECT,
48
+ options: [
49
+ { value: 'active', label: 'Active' },
50
+ { value: 'inactive', label: 'Inactive' },
51
+ ],
52
+ readonly: false,
53
+ },
54
+ {
55
+ key: 'phone',
56
+ label: 'Phone',
57
+ type: FieldType.PHONE,
58
+ readonly: false,
59
+ },
60
+ ];
61
+ ```
62
+
63
+ ### Modal usage
64
+ ```html
65
+ <core-generic-modal
66
+ [isOpen]="isOpen"
67
+ [mode]="mode"
68
+ [title]="modalTitle"
69
+ [data]="formData"
70
+ (save)="save($event)"
71
+ (close)="close()"
72
+ ></core-generic-modal>
73
+ ```
74
+
75
+ ## Filter form (table filters)
76
+
77
+ Use `ModalMode.FILTER` to reuse the same field definitions but loosen validation and readonly behavior.
78
+
79
+ ```ts
80
+ const filterFields: ModalFieldConfig<User>[] = userFields.map(field => ({
81
+ ...field,
82
+ modes: {
83
+ [ModalMode.FILTER]: {
84
+ validators: [],
85
+ readonly: false,
86
+ }
87
+ }
88
+ }));
89
+ ```
90
+
91
+ If you want different fields for filters, define a separate array and set `type` to match the field component.
92
+
93
+ ## Form rendering with dynamic fields
94
+
95
+ Use `core-smart-field` to render a field by type dynamically.
96
+
97
+ ```html
98
+ <div *ngFor="let field of userFields">
99
+ <core-smart-field
100
+ [field]="field"
101
+ [value]="formData[field.key]"
102
+ [mode]="mode"
103
+ [errors]="errors[field.key] || []"
104
+ [formValue]="formData"
105
+ (valueChange)="onFieldChange(field.key, $event)"
106
+ (selectionChange)="onSelectionChange($event)"
107
+ ></core-smart-field>
108
+ </div>
109
+ ```
110
+
111
+ ## Minimal wiring in TS
112
+
113
+ ```ts
114
+ mode: ModalMode = ModalMode.CREATE;
115
+ formData: Partial<User> = {};
116
+ errors: Record<string, string[]> = {};
117
+
118
+ onFieldChange(key: keyof User, value: any) {
119
+ this.formData = { ...this.formData, [key]: value };
120
+ }
121
+
122
+ onSelectionChange(e: { selectedItem: any; newFormValue: any }) {
123
+ this.formData = { ...this.formData, ...e.newFormValue };
124
+ }
125
+ ```
126
+
127
+ ## Specialized field recipes
128
+
129
+ ### Server-side select (remote options)
130
+ ```ts
131
+ import { SelectServerSideConfig } from 'projects/core-ui-library/src/lib/interfaces/field-configs/select-server-side.config.interface';
132
+
133
+ const companyField: SelectServerSideConfig<User> = {
134
+ key: 'companyId',
135
+ label: 'Company',
136
+ type: FieldType.SERVER_SELECT,
137
+ endpoint: '/api/companies',
138
+ bindValue: 'id',
139
+ bindLabel: 'name',
140
+ searchParam: 'q',
141
+ minSearchLength: 2,
142
+ readonly: false,
143
+ };
144
+ ```
145
+
146
+ ### File field (upload + preview)
147
+ ```ts
148
+ import { FileFieldConfig } from 'projects/core-ui-library/src/lib/interfaces/field-configs/file-field-config.interface';
149
+ import { FileType } from 'projects/core-ui-library/src/lib/enums/global/FileType.enum';
150
+
151
+ const attachmentsField: FileFieldConfig<User> = {
152
+ key: 'attachments',
153
+ label: 'Attachments',
154
+ type: FieldType.FILE,
155
+ accept: '.pdf,.png,.jpg',
156
+ multiple: true,
157
+ maxFiles: 3,
158
+ maxSize: 5 * 1024 * 1024,
159
+ showPreview: true,
160
+ acceptString: 'pdf,png,jpg',
161
+ fileUploadConfig: {
162
+ fileType: FileType.DOCUMENT,
163
+ fileIdTarget: 'attachmentIds' as keyof User,
164
+ },
165
+ readonly: false,
166
+ };
167
+ ```
168
+
169
+ ### Document field (type + number)
170
+ ```ts
171
+ import { DocumentFieldConfig, DocumentPayloadMode } from 'projects/core-ui-library/src/lib/interfaces/field-configs/document-field-config.interface';
172
+
173
+ const documentField: DocumentFieldConfig<User> = {
174
+ key: 'document',
175
+ label: 'Document',
176
+ type: FieldType.DOCUMENT,
177
+ documentTypeOptions: [
178
+ { value: 'id', label: 'ID' },
179
+ { value: 'passport', label: 'Passport' },
180
+ ],
181
+ payloadMode: DocumentPayloadMode.OBJECT,
182
+ readonly: false,
183
+ };
184
+ ```
185
+
186
+ ### Phone field
187
+ ```ts
188
+ import { PhoneModalFieldConfig } from 'projects/core-ui-library/src/lib/interfaces/field-configs/phone-field-config.interface';
189
+ import { CountryCode } from 'projects/core-ui-library/src/lib/enums';
190
+
191
+ const phoneField: PhoneModalFieldConfig<User> = {
192
+ key: 'phone',
193
+ label: 'Phone',
194
+ type: FieldType.PHONE,
195
+ phoneConfig: {
196
+ defaultCountry: CountryCode.UY,
197
+ showFlags: true,
198
+ showPhoneCode: true,
199
+ validatePhoneFormat: true,
200
+ },
201
+ readonly: false,
202
+ };
203
+ ```
package/llm/llms.txt ADDED
@@ -0,0 +1,47 @@
1
+ Core UI Library (Angular) — LLM Entry
2
+
3
+ Purpose
4
+ - UI component library + services for building screens in Angular apps.
5
+ - Focus: tables, forms/fields, layout/navigation, modals, auth, utilities.
6
+
7
+ Library root
8
+ - projects/core-ui-library
9
+ - Public surface: projects/core-ui-library/src/public-api.ts
10
+
11
+ Key facts for agents
12
+ - Components are Angular standalone components.
13
+ - Many components depend on @ngx-translate/core (TranslateModule/TranslateService).
14
+ - Some data-driven components use @solcre-org/core types (e.g. DataBaseModelInterface).
15
+
16
+ Recommended read order
17
+ 1) repo-map.md
18
+ 2) exports.md
19
+ 3) components.md
20
+ 4) screen-recipes.md
21
+ 5) form-recipes.md
22
+ 6) screen-blueprints.md
23
+ 7) demo-examples.md
24
+
25
+ Demo references (core-ui-demo)
26
+ - Layout shell: `projects/core-ui-demo/src/app/layout/dashboard/dashboard.component.html`
27
+ - Tables: `projects/core-ui-demo/src/app/admin/components/tables/tables.html`
28
+ - Forms/fields showcase: `projects/core-ui-demo/src/app/admin/components/forms/forms.html`
29
+ - Modals: `projects/core-ui-demo/src/app/admin/components/modals/modals.html`
30
+ - Buttons: `projects/core-ui-demo/src/app/admin/components/button/button.html`
31
+ - Alerts: `projects/core-ui-demo/src/app/admin/components/alerts/alerts.ts` and `projects/core-ui-demo/src/app/admin/components/alerts/alerts.html`
32
+ - Steps: `projects/core-ui-demo/src/app/admin/components/steps/steps.html`
33
+ - Calendar/Scheduler: `projects/core-ui-demo/src/app/admin/components/calendar/calendar-demo.component.html`
34
+ - Gallery: `projects/core-ui-demo/src/app/admin/components/gallery/gallery.html`
35
+ - Sidebar: `projects/core-ui-demo/src/app/admin/components/sidebar/sidebar.html`
36
+
37
+ Where to look
38
+ - Components: projects/core-ui-library/src/lib/components
39
+ - Services: projects/core-ui-library/src/lib/services
40
+ - Interfaces: projects/core-ui-library/src/lib/interfaces
41
+ - Enums: projects/core-ui-library/src/lib/enums
42
+ - Utilities/validators/providers/directives: projects/core-ui-library/src/lib
43
+
44
+ Agent usage rules (project-specific)
45
+ - Prefer using exported components from public-api.
46
+ - When building screens, compose with layout, header, main-nav, and form field types.
47
+ - For tables, see generic-table and related interfaces/services.
@@ -0,0 +1,30 @@
1
+ # Repo map (core-ui-library)
2
+
3
+ ## Top-level structure
4
+ - `projects/core-ui-library` — Angular library source
5
+ - `projects/core-ui-demo` — Demo app (consumer of the library)
6
+ - `docs/` — Project docs (if present)
7
+ - `dist/` — Build outputs
8
+
9
+ ## Library layout (projects/core-ui-library)
10
+ - `src/public-api.ts` — Single public export surface
11
+ - `src/lib/components` — Standalone UI components
12
+ - `src/lib/services` — UI + data services used by components
13
+ - `src/lib/interfaces` — TypeScript interfaces and configs
14
+ - `src/lib/enums` — Enums (global, layout, calendar, etc.)
15
+ - `src/lib/models` — Data models
16
+ - `src/lib/providers` — Angular providers
17
+ - `src/lib/directives` — Directives used by components
18
+ - `src/lib/interceptors` — HTTP interceptors
19
+ - `src/lib/loaders` — Translation loader
20
+ - `src/lib/utilities` — Helper utilities
21
+ - `src/lib/validators` — Validators
22
+ - `src/assets` — Library assets
23
+
24
+ ## Build/test commands
25
+ - Build: `ng build core-ui-library`
26
+ - Test: `ng test`
27
+
28
+ ## LLM docs location
29
+ - `projects/core-ui-library/src/llm`
30
+