@visns-studio/visns-components 6.0.4 → 6.1.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 (26) hide show
  1. package/package.json +1 -1
  2. package/src/components/DataGrid.jsx +37 -12
  3. package/src/components/Navigation.jsx +59 -3
  4. package/src/components/auth/Login.jsx +203 -175
  5. package/src/components/columns/ColumnRenderers.jsx +34 -0
  6. package/src/components/generic/GenericDashboard.jsx +181 -1
  7. package/src/components/generic/GenericFormBuilder.jsx +735 -37
  8. package/src/components/generic/GenericIndex.jsx +15 -5
  9. package/src/components/generic/OutstandingRuleEditor.jsx +313 -0
  10. package/src/components/styles/DataGrid.module.scss +38 -22
  11. package/src/components/styles/Form.module.scss +32 -33
  12. package/src/components/styles/GenericDashboard.module.scss +155 -0
  13. package/src/components/styles/GenericDetail.module.scss +28 -30
  14. package/src/components/styles/GenericDynamic.module.scss +7 -21
  15. package/src/components/styles/GenericEditableTable.module.scss +5 -22
  16. package/src/components/styles/GenericFormBuilder.module.scss +605 -30
  17. package/src/components/styles/GenericIndex.module.scss +17 -32
  18. package/src/components/styles/GenericMain.module.scss +18 -6
  19. package/src/components/styles/GenericQuote.module.scss +7 -22
  20. package/src/components/styles/GenericReport.module.scss +5 -37
  21. package/src/components/styles/Login.module.scss +415 -239
  22. package/src/components/styles/Navigation.module.scss +124 -35
  23. package/src/components/styles/Profile.module.scss +5 -26
  24. package/src/components/styles/QuickAction.module.scss +34 -29
  25. package/src/components/styles/_controls.scss +139 -0
  26. package/src/components/styles/global.css +54 -15
@@ -1,3 +1,8 @@
1
+ @use 'controls' as *;
2
+
3
+ .btn {
4
+ @include button-primary;
5
+ }
1
6
  .grid__row {
2
7
  width: 100%;
3
8
  display: flex;
@@ -196,36 +201,11 @@
196
201
  margin: 0 0 30px 0;
197
202
  }
198
203
 
199
- .btn {
200
- width: max-content;
201
- display: inline-block;
202
- position: relative;
203
- padding: 0.65rem 1rem;
204
- cursor: pointer;
205
- font-size: 1rem;
206
- color: var(--tertiary-color);
207
- text-decoration: none;
208
- overflow: hidden;
209
- background: var(--primary-color);
210
- border: 1px solid rgba(var(--primary-color--rgb), 1.1);
211
- border-radius: var(--br);
212
- outline: none;
213
- transition: all 0.2s cubic-bezier(0.85, 0, 0.15, 1) 0s;
214
- }
215
204
 
216
- .btn:hover:not(:disabled) {
217
- color: var(--primary-color);
218
- background: var(--highlight-color);
219
- border: 1px solid rgba(var(--highlight-color-rgb), 1.05);
220
- }
221
205
 
222
- .btn:disabled {
223
- opacity: 0.5;
224
- cursor: not-allowed;
225
- background: var(--primary-color);
226
- color: var(--tertiary-color);
227
- border: 1px solid rgba(var(--primary-color--rgb), 0.5);
228
- }
206
+
207
+
208
+
229
209
 
230
210
  .polActions {
231
211
  position: fixed;
@@ -743,11 +723,16 @@
743
723
 
744
724
  .crmtitle {
745
725
  min-height: auto;
746
- padding: 1rem;
726
+ /* Was a flat 1rem inside a tinted-navy border, which made the page title
727
+ look like another card competing with the grid below it. A page header
728
+ is not a card: no border, no fill, just the title and its count sitting
729
+ on the page. */
730
+ padding: 0 0 var(--spacing-md);
747
731
  margin: 0;
748
- background: white;
749
- border-radius: var(--br);
750
- border: 1px solid rgba(var(--primary-rgb), 0.15);
732
+ background: none;
733
+ border-radius: 0;
734
+ border: none;
735
+ border-bottom: 1px solid var(--border-color);
751
736
  position: relative;
752
737
  display: flex;
753
738
  align-items: center;
@@ -5,7 +5,11 @@
5
5
  top: 0;
6
6
  width: 100%;
7
7
  z-index: 995;
8
- padding: 0.35rem 1rem;
8
+ /* Was 0.35rem — too tight to read as a deliberate bar. Enough room that
9
+ the nav sits in it rather than being crushed by it. */
10
+ padding: var(--spacing-sm) var(--spacing-md);
11
+ /* Separates the bar from the page when content scrolls under it. */
12
+ box-shadow: var(--shadow-sm);
9
13
  }
10
14
 
11
15
  .headerAlternate {
@@ -82,10 +86,18 @@
82
86
  }
83
87
  }
84
88
 
85
- .padding {
86
- padding: 1rem;
87
- }
88
-
89
+ /* Content gutter. A single flat 1rem before, which on a wide monitor left
90
+ tables running the full width of the glass with no margin to rest against,
91
+ and on a phone gave the same gutter as a desktop. */
92
+ .padding,
89
93
  .paddingSimple {
90
- padding: 1rem;
94
+ padding: var(--spacing-lg) clamp(var(--spacing-md), 3vw, var(--spacing-xl));
95
+ /* Long lines of data are hard to track across an ultrawide screen. This
96
+ is generous enough never to bite on a laptop. */
97
+ max-width: 2200px;
98
+ margin: 0 auto;
99
+
100
+ @media (max-width: 960px) {
101
+ padding: var(--spacing-md) var(--spacing-md);
102
+ }
91
103
  }
@@ -1,3 +1,8 @@
1
+ @use 'controls' as *;
2
+
3
+ .btn {
4
+ @include button-primary;
5
+ }
1
6
  /* Proposal System Styles (backward compatible) */
2
7
  .proposalControls {
3
8
  background: #f8f9fa;
@@ -680,29 +685,9 @@
680
685
  border: 1px solid var(--secondary-color);
681
686
  }
682
687
 
683
- .btn {
684
- width: max-content;
685
- display: inline-block;
686
- position: relative;
687
- padding: 0.65rem 1rem;
688
- cursor: pointer;
689
- font-size: 1rem;
690
- color: var(--tertiary-color);
691
- text-decoration: none;
692
- overflow: hidden;
693
- background: var(--primary-color);
694
- border: 1px solid rgba(var(--primary-color--rgb), 1.1);
695
- border-radius: var(--br);
696
- outline: none;
697
- transition: all 0.2s cubic-bezier(0.85, 0, 0.15, 1) 0s;
698
- font-size: 1.25em;
699
- }
700
688
 
701
- .btn:hover {
702
- color: var(--primary-color);
703
- background: var(--highlight-color);
704
- border: 1px solid rgba(var(--highlight-rgb), 1.05);
705
- }
689
+
690
+
706
691
 
707
692
  .crmtitle {
708
693
  min-height: auto;
@@ -1,3 +1,8 @@
1
+ @use 'controls' as *;
2
+
3
+ .btn {
4
+ @include button-primary;
5
+ }
1
6
  // Use project root CSS variables instead of local SCSS variables
2
7
  // This allows the component to adapt to different project themes
3
8
 
@@ -2140,44 +2145,7 @@
2140
2145
  }
2141
2146
 
2142
2147
  // Buttons
2143
- .btn {
2144
- display: inline-flex;
2145
- align-items: center;
2146
- justify-content: center;
2147
- gap: 8px;
2148
- padding: 12px calc(var(--padding) * 1.5);
2149
- border: none;
2150
- border-radius: var(--radius);
2151
- font-size: 0.875rem;
2152
- font-weight: 600;
2153
- cursor: pointer;
2154
- transition: all 0.2s ease;
2155
- text-decoration: none;
2156
- min-height: 44px;
2157
- position: relative;
2158
- overflow: hidden;
2159
2148
 
2160
- &:disabled {
2161
- opacity: 0.5;
2162
- cursor: not-allowed;
2163
- transform: none !important;
2164
- }
2165
-
2166
- &:focus {
2167
- outline: 2px solid rgba(var(--primary-rgb), 0.3);
2168
- outline-offset: 2px;
2169
- }
2170
-
2171
- &:active:not(:disabled) {
2172
- transform: translateY(1px);
2173
- }
2174
-
2175
- svg {
2176
- width: 16px;
2177
- height: 16px;
2178
- flex-shrink: 0;
2179
- }
2180
- }
2181
2149
 
2182
2150
  .btnPrimary {
2183
2151
  background-color: var(--primary-color);