@visns-studio/visns-components 6.17.1 → 6.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 (84) hide show
  1. package/package.json +10 -7
  2. package/src/components/AssociationManager.jsx +344 -177
  3. package/src/components/AsyncSelect.jsx +2 -2
  4. package/src/components/Autocomplete.jsx +57 -12
  5. package/src/components/Breadcrumb.jsx +23 -4
  6. package/src/components/ClientAssociationManager.jsx +321 -145
  7. package/src/components/DataGrid.jsx +625 -20
  8. package/src/components/DropZone.jsx +4 -1
  9. package/src/components/Form.jsx +233 -6
  10. package/src/components/MultiSelect.jsx +2 -2
  11. package/src/components/Navigation.jsx +45 -25
  12. package/src/components/TableFilter.jsx +172 -12
  13. package/src/components/UniversalSearch.jsx +390 -0
  14. package/src/components/auth/Login.jsx +164 -8
  15. package/src/components/auth/Profile.jsx +209 -22
  16. package/src/components/auth/authEndpoints.js +4 -0
  17. package/src/components/auth/webauthn.js +194 -0
  18. package/src/components/columns/ColumnRenderers.jsx +6 -1
  19. package/src/components/controls/DataGridSearch.jsx +11 -5
  20. package/src/components/generic/GenericAuth.jsx +6 -0
  21. package/src/components/generic/GenericDashboard.jsx +93 -36
  22. package/src/components/generic/GenericDetail.jsx +146 -61
  23. package/src/components/generic/GenericIndex.jsx +134 -38
  24. package/src/components/generic/GenericSettings.jsx +220 -0
  25. package/src/components/generic/StandardModal.jsx +165 -8
  26. package/src/components/generic/dashboardChartDefaults.js +230 -0
  27. package/src/components/generic/shared/indexLayout.js +38 -0
  28. package/src/components/navActive.js +25 -0
  29. package/src/components/settings/IntegrationsManager.jsx +474 -0
  30. package/src/components/sms/SmsLineSettings.jsx +16 -12
  31. package/src/components/styles/AssociationManager.module.scss +4 -363
  32. package/src/components/styles/AuditLog.module.scss +6 -6
  33. package/src/components/styles/AuditLogs.module.scss +3 -3
  34. package/src/components/styles/Autocomplete.module.scss +7 -7
  35. package/src/components/styles/BusinessCardOcr.module.scss +6 -1
  36. package/src/components/styles/CallQueueSettings.module.scss +4 -1
  37. package/src/components/styles/CameraPlacement.module.scss +19 -19
  38. package/src/components/styles/CategorizedDropZone.module.scss +6 -1
  39. package/src/components/styles/ClientAssociationManager.module.scss +5 -289
  40. package/src/components/styles/ClientAuth.module.scss +1 -1
  41. package/src/components/styles/DataGrid.module.scss +455 -8
  42. package/src/components/styles/Field.module.scss +32 -24
  43. package/src/components/styles/Form.module.scss +123 -3
  44. package/src/components/styles/GenericDashboard.module.scss +612 -825
  45. package/src/components/styles/GenericDetail.module.scss +406 -61
  46. package/src/components/styles/GenericDynamic.module.scss +25 -25
  47. package/src/components/styles/GenericEditableTable.module.scss +33 -33
  48. package/src/components/styles/GenericFormBuilder.module.scss +119 -119
  49. package/src/components/styles/GenericIndex.module.scss +483 -38
  50. package/src/components/styles/GenericMain.module.scss +6 -3
  51. package/src/components/styles/GenericQuote.module.scss +399 -81
  52. package/src/components/styles/GenericReport.module.scss +8 -8
  53. package/src/components/styles/GenericSettings.module.scss +209 -0
  54. package/src/components/styles/GenericSort.module.scss +9 -9
  55. package/src/components/styles/Integrations.module.scss +321 -0
  56. package/src/components/styles/List.module.scss +4 -4
  57. package/src/components/styles/Login.module.scss +57 -0
  58. package/src/components/styles/MultiSelect.module.scss +4 -4
  59. package/src/components/styles/Navigation.module.scss +12 -12
  60. package/src/components/styles/Notification.module.scss +12 -8
  61. package/src/components/styles/NotificationList.module.scss +5 -5
  62. package/src/components/styles/Profile.module.scss +5 -5
  63. package/src/components/styles/QrCode.module.scss +4 -4
  64. package/src/components/styles/QuickAction.module.scss +20 -20
  65. package/src/components/styles/SortableQuoteItems.module.scss +4 -4
  66. package/src/components/styles/TableFilter.module.scss +128 -17
  67. package/src/components/styles/TicketConversation.module.scss +497 -0
  68. package/src/components/styles/UniversalSearch.module.scss +229 -0
  69. package/src/components/styles/Vault.module.scss +413 -0
  70. package/src/components/styles/_associationManager.scss +467 -0
  71. package/src/components/styles/_authBrandPanel.scss +15 -9
  72. package/src/components/styles/_controls.scss +43 -39
  73. package/src/components/styles/global-datagrid.css +196 -0
  74. package/src/components/styles/global.css +168 -17
  75. package/src/components/tickets/TicketConversation.jsx +455 -0
  76. package/src/components/utils/rowActionSettings.js +117 -0
  77. package/src/components/vault/VaultClientPicker.jsx +183 -0
  78. package/src/components/vault/VaultEntryForm.jsx +23 -0
  79. package/src/components/vault/VaultManager.jsx +382 -34
  80. package/src/components/vault/VaultShareModal.jsx +454 -0
  81. package/src/components/vault/vaultEndpoints.js +16 -2
  82. package/src/components/vault/vaultShares.js +247 -0
  83. package/src/index.js +35 -0
  84. package/src/utils/fetchUtil.js +38 -14
@@ -1,290 +1,6 @@
1
- .container {
2
- padding: 20px;
3
- background: #fff;
4
- border-radius: 8px;
5
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
6
- }
1
+ // This file used to carry its own hardcoded palette (#007bff, #dc3545, #f8f9fa)
2
+ // — a second, bluer design for the same panel. It now shares one definition
3
+ // with AssociationManager.module.scss; see `_associationManager.scss`.
4
+ @use 'associationManager' as *;
7
5
 
8
- .header {
9
- margin-bottom: 30px;
10
- border-bottom: 1px solid #eee;
11
- padding-bottom: 15px;
12
-
13
- h3 {
14
- margin: 0 0 5px 0;
15
- color: #333;
16
- font-size: 1.4em;
17
- }
18
-
19
- p {
20
- margin: 0;
21
- color: #666;
22
- font-size: 0.9em;
23
- }
24
- }
25
-
26
- .loading {
27
- text-align: center;
28
- padding: 40px;
29
- color: #666;
30
- }
31
-
32
- /* Existing Associations */
33
- .existingAssociations {
34
- margin-bottom: 40px;
35
-
36
- h4 {
37
- margin: 0 0 15px 0;
38
- color: #333;
39
- font-size: 1.1em;
40
- }
41
- }
42
-
43
- .noAssociations {
44
- padding: 20px;
45
- text-align: center;
46
- color: #999;
47
- background: #f8f9fa;
48
- border-radius: 6px;
49
- font-style: italic;
50
- }
51
-
52
- .associationsList {
53
- display: flex;
54
- flex-direction: column;
55
- gap: 12px;
56
- }
57
-
58
- .associationItem {
59
- display: flex;
60
- justify-content: space-between;
61
- align-items: center;
62
- padding: 15px;
63
- border: 1px solid #e0e0e0;
64
- border-radius: 6px;
65
- background: #fafafa;
66
- transition: all 0.2s ease;
67
-
68
- &:hover {
69
- background: #f5f5f5;
70
- border-color: #d0d0d0;
71
- }
72
-
73
- &.primary {
74
- border-color: #007bff;
75
- background: #e7f3ff;
76
-
77
- &:hover {
78
- background: #d1ecf1;
79
- }
80
- }
81
- }
82
-
83
- .associationInfo {
84
- flex: 1;
85
-
86
- .companyName {
87
- font-weight: 600;
88
- color: #333;
89
- margin-bottom: 4px;
90
- display: flex;
91
- align-items: center;
92
- gap: 8px;
93
- }
94
-
95
- .primaryBadge {
96
- background: #007bff;
97
- color: white;
98
- padding: 2px 6px;
99
- border-radius: 3px;
100
- font-size: 0.75em;
101
- font-weight: 500;
102
- text-transform: uppercase;
103
- }
104
-
105
- .relationshipInfo {
106
- margin-bottom: 4px;
107
-
108
- .relationshipType {
109
- color: #666;
110
- font-weight: 500;
111
- text-transform: capitalize;
112
- }
113
-
114
- .notes {
115
- color: #888;
116
- font-size: 0.9em;
117
- }
118
- }
119
-
120
- .associatedAt {
121
- color: #999;
122
- font-size: 0.8em;
123
- }
124
- }
125
-
126
- .associationActions {
127
- display: flex;
128
- gap: 8px;
129
- align-items: center;
130
- }
131
-
132
- .setPrimaryBtn,
133
- .removeBtn,
134
- .associateBtn {
135
- padding: 6px 12px;
136
- border: none;
137
- border-radius: 4px;
138
- font-size: 0.85em;
139
- cursor: pointer;
140
- transition: all 0.2s ease;
141
-
142
- &:disabled {
143
- opacity: 0.6;
144
- cursor: not-allowed;
145
- }
146
- }
147
-
148
- .setPrimaryBtn {
149
- background: #28a745;
150
- color: white;
151
-
152
- &:hover:not(:disabled) {
153
- background: #218838;
154
- }
155
- }
156
-
157
- .removeBtn {
158
- background: #dc3545;
159
- color: white;
160
-
161
- &:hover:not(:disabled) {
162
- background: #c82333;
163
- }
164
- }
165
-
166
- .associateBtn {
167
- background: #007bff;
168
- color: white;
169
- padding: 10px 20px;
170
- font-size: 0.9em;
171
-
172
- &:hover:not(:disabled) {
173
- background: #0056b3;
174
- }
175
- }
176
-
177
- /* New Association Form */
178
- .newAssociation {
179
- border-top: 1px solid #eee;
180
- padding-top: 30px;
181
-
182
- h4 {
183
- margin: 0 0 20px 0;
184
- color: #333;
185
- font-size: 1.1em;
186
- }
187
- }
188
-
189
- .associationForm {
190
- background: #f8f9fa;
191
- padding: 20px;
192
- border-radius: 6px;
193
- border: 1px solid #e9ecef;
194
- }
195
-
196
- .formRow {
197
- display: flex;
198
- gap: 20px;
199
- margin-bottom: 20px;
200
-
201
- &:last-child {
202
- margin-bottom: 0;
203
- }
204
-
205
- @media (max-width: 768px) {
206
- flex-direction: column;
207
- gap: 15px;
208
- }
209
- }
210
-
211
- .formField {
212
- flex: 1;
213
-
214
- label {
215
- display: block;
216
- margin-bottom: 5px;
217
- color: #333;
218
- font-weight: 500;
219
- font-size: 0.9em;
220
-
221
- input[type="checkbox"] {
222
- margin-right: 8px;
223
- }
224
- }
225
- }
226
-
227
- .selectField,
228
- .textField {
229
- width: 100%;
230
- padding: 8px 12px;
231
- border: 1px solid #ced4da;
232
- border-radius: 4px;
233
- background: white;
234
- font-size: 0.9em;
235
- color: #495057;
236
-
237
- &:focus {
238
- outline: none;
239
- border-color: #007bff;
240
- box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
241
- }
242
- }
243
-
244
- .textareaField {
245
- width: 100%;
246
- padding: 8px 12px;
247
- border: 1px solid #ced4da;
248
- border-radius: 4px;
249
- background: white;
250
- font-size: 0.9em;
251
- color: #495057;
252
- resize: vertical;
253
- min-height: 60px;
254
-
255
- &:focus {
256
- outline: none;
257
- border-color: #007bff;
258
- box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
259
- }
260
- }
261
-
262
- .formActions {
263
- margin-top: 20px;
264
- text-align: right;
265
- }
266
-
267
- /* Responsive Design */
268
- @media (max-width: 768px) {
269
- .container {
270
- padding: 15px;
271
- }
272
-
273
- .associationItem {
274
- flex-direction: column;
275
- align-items: flex-start;
276
- gap: 15px;
277
- }
278
-
279
- .associationActions {
280
- align-self: flex-end;
281
- }
282
-
283
- .formActions {
284
- text-align: center;
285
- }
286
-
287
- .associateBtn {
288
- width: 100%;
289
- }
290
- }
6
+ @include association-manager;
@@ -68,7 +68,7 @@
68
68
  &:focus {
69
69
  outline: none;
70
70
  border-color: var(--primary-color, #4a6741);
71
- box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.1);
71
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb, 27, 57, 51), 0.1);
72
72
  }
73
73
 
74
74
  &.error {