@visns-studio/visns-components 6.17.2 → 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.
- package/package.json +10 -7
- package/src/components/AssociationManager.jsx +344 -177
- package/src/components/AsyncSelect.jsx +2 -2
- package/src/components/Autocomplete.jsx +57 -12
- package/src/components/Breadcrumb.jsx +23 -4
- package/src/components/ClientAssociationManager.jsx +321 -145
- package/src/components/DataGrid.jsx +625 -20
- package/src/components/DropZone.jsx +4 -1
- package/src/components/Form.jsx +233 -6
- package/src/components/MultiSelect.jsx +2 -2
- package/src/components/Navigation.jsx +39 -23
- package/src/components/TableFilter.jsx +172 -12
- package/src/components/UniversalSearch.jsx +390 -0
- package/src/components/auth/Login.jsx +164 -8
- package/src/components/auth/Profile.jsx +209 -22
- package/src/components/auth/authEndpoints.js +4 -0
- package/src/components/auth/webauthn.js +194 -0
- package/src/components/columns/ColumnRenderers.jsx +6 -1
- package/src/components/controls/DataGridSearch.jsx +11 -5
- package/src/components/generic/GenericAuth.jsx +6 -0
- package/src/components/generic/GenericDashboard.jsx +93 -36
- package/src/components/generic/GenericDetail.jsx +146 -61
- package/src/components/generic/GenericIndex.jsx +134 -38
- package/src/components/generic/GenericSettings.jsx +220 -0
- package/src/components/generic/StandardModal.jsx +165 -8
- package/src/components/generic/dashboardChartDefaults.js +230 -0
- package/src/components/generic/shared/indexLayout.js +38 -0
- package/src/components/settings/IntegrationsManager.jsx +474 -0
- package/src/components/sms/SmsLineSettings.jsx +16 -12
- package/src/components/styles/AssociationManager.module.scss +4 -363
- package/src/components/styles/AuditLog.module.scss +6 -6
- package/src/components/styles/AuditLogs.module.scss +3 -3
- package/src/components/styles/Autocomplete.module.scss +7 -7
- package/src/components/styles/BusinessCardOcr.module.scss +6 -1
- package/src/components/styles/CallQueueSettings.module.scss +4 -1
- package/src/components/styles/CameraPlacement.module.scss +19 -19
- package/src/components/styles/CategorizedDropZone.module.scss +6 -1
- package/src/components/styles/ClientAssociationManager.module.scss +5 -289
- package/src/components/styles/ClientAuth.module.scss +1 -1
- package/src/components/styles/DataGrid.module.scss +455 -8
- package/src/components/styles/Field.module.scss +32 -24
- package/src/components/styles/Form.module.scss +123 -3
- package/src/components/styles/GenericDashboard.module.scss +612 -825
- package/src/components/styles/GenericDetail.module.scss +406 -61
- package/src/components/styles/GenericDynamic.module.scss +25 -25
- package/src/components/styles/GenericEditableTable.module.scss +33 -33
- package/src/components/styles/GenericFormBuilder.module.scss +119 -119
- package/src/components/styles/GenericIndex.module.scss +483 -38
- package/src/components/styles/GenericMain.module.scss +6 -3
- package/src/components/styles/GenericQuote.module.scss +399 -81
- package/src/components/styles/GenericReport.module.scss +8 -8
- package/src/components/styles/GenericSettings.module.scss +209 -0
- package/src/components/styles/GenericSort.module.scss +9 -9
- package/src/components/styles/Integrations.module.scss +321 -0
- package/src/components/styles/List.module.scss +4 -4
- package/src/components/styles/Login.module.scss +57 -0
- package/src/components/styles/MultiSelect.module.scss +4 -4
- package/src/components/styles/Navigation.module.scss +12 -12
- package/src/components/styles/Notification.module.scss +12 -8
- package/src/components/styles/NotificationList.module.scss +5 -5
- package/src/components/styles/Profile.module.scss +5 -5
- package/src/components/styles/QrCode.module.scss +4 -4
- package/src/components/styles/QuickAction.module.scss +20 -20
- package/src/components/styles/SortableQuoteItems.module.scss +4 -4
- package/src/components/styles/TableFilter.module.scss +128 -17
- package/src/components/styles/TicketConversation.module.scss +497 -0
- package/src/components/styles/UniversalSearch.module.scss +229 -0
- package/src/components/styles/Vault.module.scss +413 -0
- package/src/components/styles/_associationManager.scss +467 -0
- package/src/components/styles/_authBrandPanel.scss +15 -9
- package/src/components/styles/_controls.scss +43 -39
- package/src/components/styles/global-datagrid.css +196 -0
- package/src/components/styles/global.css +168 -17
- package/src/components/tickets/TicketConversation.jsx +455 -0
- package/src/components/utils/rowActionSettings.js +117 -0
- package/src/components/vault/VaultClientPicker.jsx +183 -0
- package/src/components/vault/VaultEntryForm.jsx +23 -0
- package/src/components/vault/VaultManager.jsx +382 -34
- package/src/components/vault/VaultShareModal.jsx +454 -0
- package/src/components/vault/vaultEndpoints.js +16 -2
- package/src/components/vault/vaultShares.js +247 -0
- package/src/index.js +35 -0
- package/src/utils/fetchUtil.js +38 -14
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
left: 0;
|
|
52
52
|
padding: 19px 13px;
|
|
53
53
|
border-radius: var(--radius);
|
|
54
|
-
border: 1px solid rgba(var(--paragraph-rgb), 0.15);
|
|
54
|
+
border: 1px solid rgba(var(--paragraph-rgb, 43, 43, 43), 0.15);
|
|
55
55
|
box-shadow: none;
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -173,7 +173,41 @@ select {
|
|
|
173
173
|
box-sizing: border-box;
|
|
174
174
|
|
|
175
175
|
> span {
|
|
176
|
-
color: rgba(255, 77, 77, 1
|
|
176
|
+
color: rgba(255, 77, 77, 1);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/*
|
|
181
|
+
* Native date/time inputs. WebKit lays the value out in an internal
|
|
182
|
+
* ::-webkit-datetime-edit box pinned to the input's TOP, so any height the
|
|
183
|
+
* input gains beyond its own line box — padding rules sized against the text
|
|
184
|
+
* inputs beside it — becomes empty space UNDER the value: the dd/mm/yyyy
|
|
185
|
+
* text and the calendar glyph ride high while every neighbouring field
|
|
186
|
+
* centres. Flexing the input and centring the inner box fixes Chrome and
|
|
187
|
+
* iOS Safari both; Firefox centres already and ignores the vendor parts.
|
|
188
|
+
*/
|
|
189
|
+
input[type='date'],
|
|
190
|
+
input[type='time'],
|
|
191
|
+
input[type='month'],
|
|
192
|
+
input[type='week'],
|
|
193
|
+
input[type='datetime-local'] {
|
|
194
|
+
display: inline-flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
|
|
197
|
+
&::-webkit-datetime-edit {
|
|
198
|
+
display: flex;
|
|
199
|
+
align-items: center;
|
|
200
|
+
padding: 0;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
&::-webkit-date-and-time-value {
|
|
204
|
+
/* iOS Safari gives the value a top margin inside the flexed input. */
|
|
205
|
+
margin: 0;
|
|
206
|
+
text-align: left;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
&::-webkit-calendar-picker-indicator {
|
|
210
|
+
margin-block: 0;
|
|
177
211
|
}
|
|
178
212
|
}
|
|
179
213
|
|
|
@@ -312,7 +346,7 @@ input[type='file'] {
|
|
|
312
346
|
|
|
313
347
|
.btn {
|
|
314
348
|
background: var(--primary-color);
|
|
315
|
-
border: 1px solid rgb(var(--primary-rgb), 1
|
|
349
|
+
border: 1px solid rgb(var(--primary-rgb, 27, 57, 51), 1);
|
|
316
350
|
width: 100%;
|
|
317
351
|
padding: 0.75rem;
|
|
318
352
|
border-radius: var(--br);
|
|
@@ -473,3 +507,89 @@ input[type='file'] {
|
|
|
473
507
|
min-width: 200px;
|
|
474
508
|
}
|
|
475
509
|
}
|
|
510
|
+
|
|
511
|
+
/* ============================================================================
|
|
512
|
+
* 2026 pass — the form's action bar
|
|
513
|
+
* ----------------------------------------------------------------------------
|
|
514
|
+
* It was a centred row whose primary button rendered full-bleed across the
|
|
515
|
+
* form, sitting inside the scroll area with no Cancel next to it. Three things
|
|
516
|
+
* wrong with that, in order of how much they cost:
|
|
517
|
+
*
|
|
518
|
+
* 1. It scrolls away. On a form longer than the panel, the only way to save
|
|
519
|
+
* is to scroll to the bottom first — and the taller the form, the more
|
|
520
|
+
* likely the user has already lost track of whether it saved.
|
|
521
|
+
* 2. A full-width primary is a phone pattern. On a 560px sheet it reads as a
|
|
522
|
+
* banner, and it gives "Save" the same visual weight as the whole form.
|
|
523
|
+
* 3. There was no Cancel. The only way out was the X in the corner or the
|
|
524
|
+
* Escape key, neither of which is where anyone looks for it.
|
|
525
|
+
*
|
|
526
|
+
* Right-aligned with the primary last, which is the desktop convention and
|
|
527
|
+
* puts the confirming action nearest the thumb on the scrollbar side.
|
|
528
|
+
* ==========================================================================*/
|
|
529
|
+
|
|
530
|
+
.buttonContainer {
|
|
531
|
+
position: sticky;
|
|
532
|
+
bottom: 0;
|
|
533
|
+
z-index: 2;
|
|
534
|
+
|
|
535
|
+
display: flex;
|
|
536
|
+
/* Primary last, on the right. */
|
|
537
|
+
justify-content: flex-end;
|
|
538
|
+
gap: 0.5rem;
|
|
539
|
+
|
|
540
|
+
/* Full bleed to the panel edges, so the bar reads as chrome rather than as
|
|
541
|
+
another form row floating inside the content. */
|
|
542
|
+
margin: 1.25rem -1rem -1rem;
|
|
543
|
+
padding: 0.75rem 1rem;
|
|
544
|
+
border-top: 1px solid var(--border-color, rgba(43, 43, 43, 0.12));
|
|
545
|
+
background: var(--background-color, #fff);
|
|
546
|
+
|
|
547
|
+
/* `.buttonContainer .btn` rather than `.buttonContainer button`, because
|
|
548
|
+
`.modal__content .btn` (0,2,0) sets `width: 100%` and beats a
|
|
549
|
+
class-plus-element selector (0,1,1). That `width: 100%` is why the
|
|
550
|
+
primary rendered 496px wide — exactly the content box of this bar —
|
|
551
|
+
while Cancel sat at its natural 76px beside it. */
|
|
552
|
+
.btn,
|
|
553
|
+
.btnSecondary {
|
|
554
|
+
/* Was `min-width: 200px`, which is what made a two-button row overflow
|
|
555
|
+
a narrow sheet and a one-button row look like a banner. */
|
|
556
|
+
flex: 0 0 auto;
|
|
557
|
+
min-width: auto;
|
|
558
|
+
width: auto;
|
|
559
|
+
padding: 0 1.1rem;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/* The quiet half of the pair. Present but not competing: a Cancel that looks
|
|
564
|
+
like a second primary makes the user read both before acting. */
|
|
565
|
+
.btnSecondary {
|
|
566
|
+
display: inline-flex;
|
|
567
|
+
align-items: center;
|
|
568
|
+
justify-content: center;
|
|
569
|
+
min-height: var(--control-height, 2.5rem);
|
|
570
|
+
padding: 0 1.1rem;
|
|
571
|
+
border: 1px solid var(--border-color, rgba(43, 43, 43, 0.16));
|
|
572
|
+
border-radius: var(--btn-br, var(--radius-sm, 6px));
|
|
573
|
+
background: transparent;
|
|
574
|
+
color: var(--paragraph-color, #2b2b2b);
|
|
575
|
+
font-family: inherit;
|
|
576
|
+
font-size: var(--font-size-sm, 0.8125rem);
|
|
577
|
+
font-weight: var(--font-weight-semibold, 600);
|
|
578
|
+
line-height: 1;
|
|
579
|
+
white-space: nowrap;
|
|
580
|
+
cursor: pointer;
|
|
581
|
+
transition:
|
|
582
|
+
background-color var(--speed, 160ms) var(--ease, ease),
|
|
583
|
+
border-color var(--speed, 160ms) var(--ease, ease);
|
|
584
|
+
|
|
585
|
+
&:hover {
|
|
586
|
+
background: var(--hover-color, rgba(27, 57, 51, 0.06));
|
|
587
|
+
border-color: var(--border-color-dark, rgba(43, 43, 43, 0.3));
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
&:focus-visible {
|
|
591
|
+
outline: none;
|
|
592
|
+
box-shadow: 0 0 0 3px
|
|
593
|
+
color-mix(in srgb, var(--highlight-color, #3cbf7d) 30%, transparent);
|
|
594
|
+
}
|
|
595
|
+
}
|