@utahdts/utah-design-system 1.5.1 → 1.6.1

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 (56) hide show
  1. package/css/6-components/_components-index.scss +2 -0
  2. package/css/6-components/base-components/buttons/_button.scss +1 -0
  3. package/css/6-components/base-components/forms/_character-count.scss +8 -0
  4. package/css/6-components/base-components/forms/_input-wrapper.scss +7 -0
  5. package/css/6-components/base-components/forms/_text-area.scss +55 -0
  6. package/css/6-components/base-components/forms/_text-input.scss +1 -6
  7. package/css/6-components/base-components/tablesAndLists/_table.scss +16 -1
  8. package/dist/style.css +94 -11
  9. package/dist/utah-design-system.es.js +854 -653
  10. package/dist/utah-design-system.umd.js +854 -653
  11. package/index.js +3 -0
  12. package/package.json +2 -2
  13. package/react/components/PROPTYPES.MD +10 -7
  14. package/react/components/forms/CharacterCount.jsx +86 -0
  15. package/react/components/forms/CheckBox.jsx +19 -2
  16. package/react/components/forms/Select.jsx +13 -9
  17. package/react/components/forms/Switch.jsx +17 -13
  18. package/react/components/forms/TextArea.jsx +181 -0
  19. package/react/components/forms/TextInput.jsx +29 -25
  20. package/react/components/table/Table.jsx +14 -4
  21. package/react/components/table/TableBody.jsx +15 -5
  22. package/react/components/table/TableBodyData.jsx +8 -12
  23. package/react/components/table/TableBodyDataCellTemplate.jsx +29 -8
  24. package/react/components/table/TableBodyDataRowContext.jsx +12 -2
  25. package/react/components/table/TableBodyDataRowTemplate.jsx +26 -7
  26. package/react/components/table/TableCell.jsx +30 -11
  27. package/react/components/table/TableContextConsumer.jsx +28 -0
  28. package/react/components/table/TableFilterCustom.jsx +22 -7
  29. package/react/components/table/TableFilterDate.jsx +24 -11
  30. package/react/components/table/TableFilterNone.jsx +17 -7
  31. package/react/components/table/TableFilterSelect.jsx +27 -12
  32. package/react/components/table/TableFilterSelectAllOptions.jsx +34 -20
  33. package/react/components/table/TableFilterSelectOption.jsx +14 -6
  34. package/react/components/table/TableFilterTextInput.jsx +24 -12
  35. package/react/components/table/TableFilters.jsx +27 -13
  36. package/react/components/table/TableFoot.jsx +14 -4
  37. package/react/components/table/TableFootCell.jsx +15 -5
  38. package/react/components/table/TableFootRow.jsx +14 -4
  39. package/react/components/table/TableHead.jsx +14 -4
  40. package/react/components/table/TableHeadCell.jsx +28 -15
  41. package/react/components/table/TableHeadRow.jsx +14 -4
  42. package/react/components/table/TableRow.jsx +21 -7
  43. package/react/components/table/TableSortingRule.jsx +19 -3
  44. package/react/components/table/TableSortingRules.jsx +17 -7
  45. package/react/components/table/TableWrapper.jsx +70 -61
  46. package/react/components/table/useCurrentValuesFromStateContext.js +33 -17
  47. package/react/components/table/util/TableContext.jsx +27 -3
  48. package/react/components/table/util/createTableFilterFunctions.js +1 -0
  49. package/react/enums/tableSortingRuleFieldType.js +7 -3
  50. package/react/hooks/forms/useCurrentValuesFromForm.js +4 -4
  51. package/react/hooks/useRememberCursorPosition.js +2 -2
  52. package/react/jsDocTypes.js +86 -7
  53. package/react/propTypesShapes/MenuItemShape.js +2 -0
  54. package/react/util/chainSorters.js +1 -1
  55. package/react/util/notNullMap.js +17 -0
  56. package/react/hooks/useComponentGuid.js +0 -15
@@ -13,7 +13,9 @@ component specific, BEM (Block, Element, Modifier)
13
13
  @use "base-components/footer/footer-agency-information";
14
14
  @use "base-components/footer/footer-social-media-bar";
15
15
  @use "base-components/forms/input-wrapper";
16
+ @use "base-components/forms/text-area";
16
17
  @use "base-components/forms/text-input";
18
+ @use "base-components/forms/character-count";
17
19
  @use "base-components/forms/checkbox";
18
20
  @use "base-components/forms/select-input";
19
21
  @use "base-components/forms/info-box";
@@ -88,6 +88,7 @@
88
88
  [class*='utds-icon-after-']::after,
89
89
  [class*='utds-icon-before-']::before {
90
90
  font-size: .9em;
91
+ line-height: 0;
91
92
  }
92
93
  }
93
94
  &--icon-left {
@@ -0,0 +1,8 @@
1
+ .character-count {
2
+ text-align: right;
3
+ font-size: var(--font-size-s);
4
+ margin: var(--spacing-2xs) 0 0 0;
5
+ &--over-limit {
6
+ color: var(--danger-color);
7
+ }
8
+ }
@@ -13,9 +13,16 @@
13
13
  margin: var(--spacing) 0 var(--spacing-2xs) 0;
14
14
  }
15
15
 
16
+ &--mb-zero {
17
+ margin: 0;
18
+ }
19
+
16
20
  &__error-message {
17
21
  color: var(--danger-color);
18
22
  }
23
+ input, textarea {
24
+ display: block;
25
+ }
19
26
  }
20
27
  .required-star {
21
28
  color: var(--danger-color);
@@ -0,0 +1,55 @@
1
+ @use "../../../2-tools/tools-index";
2
+ @use "../../../1-settings/class-vars";
3
+
4
+ #{class-vars.$base-class} {
5
+ textarea {
6
+ color: var(--gray-color);
7
+ min-height: var(--form-ele-medium);
8
+ border-radius: var(--radius-small);
9
+ box-sizing: border-box;
10
+ border: 1px solid var(--gray-color);
11
+ width: 100%;
12
+ padding: var(--spacing-xs);
13
+
14
+ @include tools-index.form-ele-hover-medium;
15
+ @include tools-index.form-ele-focus;
16
+
17
+ &:disabled {
18
+ background-color: var(--disabled-gray);
19
+ cursor: not-allowed;
20
+ }
21
+
22
+ &[aria-invalid="true"] {
23
+ border: 2px solid var(--danger-color)
24
+ }
25
+
26
+ &.text-area {
27
+ &--clear-icon-visible {
28
+ padding: var(--spacing-xs) var(--spacing-xl) var(--spacing-xs) var(--spacing-xs);
29
+ }
30
+ }
31
+ }
32
+ .text-area {
33
+ &__inner-wrapper {
34
+ position: relative;
35
+ width: 100%;
36
+ }
37
+ &__clear-button {
38
+ position: absolute;
39
+ top: var(--spacing);
40
+ transform: translateY(-50%);
41
+ right: var(--spacing-xs);
42
+ font-weight: var(--font-weight-normal);
43
+ transition: transform;
44
+ [class*=utds-icon-before-]::before {
45
+ font-size: .7rem;
46
+ }
47
+ &[disabled]:active {
48
+ transform: translateY(-50%);
49
+ }
50
+ }
51
+ &__label {
52
+ display: block;
53
+ }
54
+ }
55
+ }
@@ -3,8 +3,7 @@
3
3
  @use "../../../1-settings/class-vars";
4
4
 
5
5
  #{class-vars.$base-class} {
6
- input[type="text"],
7
- textarea {
6
+ input[type="text"] {
8
7
  color: var(--gray-color);
9
8
  min-height: var(--form-ele-medium);
10
9
  border-radius: var(--radius-small);
@@ -50,8 +49,4 @@
50
49
  }
51
50
  }
52
51
  }
53
-
54
- textarea {
55
- padding: var(--spacing-xs);
56
- }
57
52
  }
@@ -119,6 +119,7 @@
119
119
  }
120
120
  }
121
121
  }
122
+
122
123
  .table-header {
123
124
  position: relative;
124
125
 
@@ -138,7 +139,7 @@
138
139
  color: var(--primary-color);
139
140
  }
140
141
  &:focus-visible {
141
- outline-offset: -2PX;
142
+ outline-offset: -2px;
142
143
  }
143
144
  }
144
145
  }
@@ -228,4 +229,18 @@
228
229
  }
229
230
  }
230
231
  }
232
+
233
+ // Other table class elements
234
+ .table {
235
+ &__no-results-td {
236
+ text-align: center;
237
+ }
238
+ &__no-results-text {
239
+ display: block;
240
+ background: var(--gray-light-color);
241
+ padding: var(--spacing);
242
+ margin: var(--spacing);
243
+ border-radius: var(--radius-small);
244
+ }
245
+ }
231
246
  }
package/dist/style.css CHANGED
@@ -2038,6 +2038,7 @@ scss mixins and functions
2038
2038
  .utah-design-system .button--icon [class*=utds-icon-after-]::after,
2039
2039
  .utah-design-system .button--icon [class*=utds-icon-before-]::before {
2040
2040
  font-size: 0.9em;
2041
+ line-height: 0;
2041
2042
  }
2042
2043
 
2043
2044
  .utah-design-system .button--icon-left {
@@ -2634,10 +2635,18 @@ base color swatches for the design system
2634
2635
  margin: var(--spacing) 0 var(--spacing-2xs) 0;
2635
2636
  }
2636
2637
 
2638
+ .utah-design-system .input-wrapper--mb-zero {
2639
+ margin: 0;
2640
+ }
2641
+
2637
2642
  .utah-design-system .input-wrapper__error-message {
2638
2643
  color: var(--danger-color);
2639
2644
  }
2640
2645
 
2646
+ .utah-design-system .input-wrapper input, .utah-design-system .input-wrapper textarea {
2647
+ display: block;
2648
+ }
2649
+
2641
2650
  .utah-design-system .required-star {
2642
2651
  color: var(--danger-color);
2643
2652
  margin-left: var(--spacing-3xs);
@@ -2647,7 +2656,6 @@ base color swatches for the design system
2647
2656
  line-height: 0.5;
2648
2657
  }
2649
2658
 
2650
- .utah-design-system input[type=text],
2651
2659
  .utah-design-system textarea {
2652
2660
  color: var(--gray-color);
2653
2661
  min-height: var(--form-ele-medium);
@@ -2655,37 +2663,94 @@ base color swatches for the design system
2655
2663
  box-sizing: border-box;
2656
2664
  border: 1px solid var(--gray-color);
2657
2665
  width: 100%;
2658
- padding: 0 var(--spacing-xs);
2666
+ padding: var(--spacing-xs);
2659
2667
  box-shadow: var(--hover-gray-color) 0 0 0 0;
2660
2668
  transition: box-shadow var(--timing-xquick) ease-in-out;
2661
2669
  }
2662
2670
 
2663
- .utah-design-system input[type=text]:hover,
2664
2671
  .utah-design-system textarea:hover {
2665
2672
  box-shadow: var(--hover-gray-color) 0 0 0 5px;
2666
2673
  border-color: black;
2667
2674
  }
2668
2675
 
2669
- .utah-design-system input[type=text]:focus-visible,
2670
2676
  .utah-design-system textarea:focus-visible {
2671
2677
  outline: 2px solid var(--form-ele-color);
2672
2678
  outline-offset: 2px;
2673
2679
  transition: none;
2674
2680
  }
2675
2681
 
2676
- .utah-design-system input[type=text]:disabled,
2677
2682
  .utah-design-system textarea:disabled {
2678
2683
  background-color: var(--disabled-gray);
2679
2684
  cursor: not-allowed;
2680
2685
  }
2681
2686
 
2682
- .utah-design-system input[type=text][aria-invalid=true],
2683
2687
  .utah-design-system textarea[aria-invalid=true] {
2684
2688
  border: 2px solid var(--danger-color);
2685
2689
  }
2686
2690
 
2687
- .utah-design-system input[type=text].text-input--clear-icon-visible,
2688
- .utah-design-system textarea.text-input--clear-icon-visible {
2691
+ .utah-design-system textarea.text-area--clear-icon-visible {
2692
+ padding: var(--spacing-xs) var(--spacing-xl) var(--spacing-xs) var(--spacing-xs);
2693
+ }
2694
+
2695
+ .utah-design-system .text-area__inner-wrapper {
2696
+ position: relative;
2697
+ width: 100%;
2698
+ }
2699
+
2700
+ .utah-design-system .text-area__clear-button {
2701
+ position: absolute;
2702
+ top: var(--spacing);
2703
+ transform: translateY(-50%);
2704
+ right: var(--spacing-xs);
2705
+ font-weight: var(--font-weight-normal);
2706
+ transition: transform;
2707
+ }
2708
+
2709
+ .utah-design-system .text-area__clear-button [class*=utds-icon-before-]::before {
2710
+ font-size: 0.7rem;
2711
+ }
2712
+
2713
+ .utah-design-system .text-area__clear-button[disabled]:active {
2714
+ transform: translateY(-50%);
2715
+ }
2716
+
2717
+ .utah-design-system .text-area__label {
2718
+ display: block;
2719
+ }
2720
+
2721
+ .utah-design-system input[type=text] {
2722
+ color: var(--gray-color);
2723
+ min-height: var(--form-ele-medium);
2724
+ border-radius: var(--radius-small);
2725
+ box-sizing: border-box;
2726
+ border: 1px solid var(--gray-color);
2727
+ width: 100%;
2728
+ padding: 0 var(--spacing-xs);
2729
+ box-shadow: var(--hover-gray-color) 0 0 0 0;
2730
+ transition: box-shadow var(--timing-xquick) ease-in-out;
2731
+ }
2732
+
2733
+ .utah-design-system input[type=text]:hover {
2734
+ box-shadow: var(--hover-gray-color) 0 0 0 5px;
2735
+ border-color: black;
2736
+ }
2737
+
2738
+ .utah-design-system input[type=text]:focus-visible {
2739
+ outline: 2px solid var(--form-ele-color);
2740
+ outline-offset: 2px;
2741
+ transition: none;
2742
+ }
2743
+
2744
+ .utah-design-system input[type=text]:disabled {
2745
+ background-color: var(--disabled-gray);
2746
+ cursor: not-allowed;
2747
+ }
2748
+
2749
+ .utah-design-system input[type=text][aria-invalid=true] {
2750
+ border: 2px solid var(--danger-color);
2751
+ }
2752
+
2753
+ .utah-design-system input[type=text].text-input--clear-icon-visible {
2689
2754
  padding: 0 var(--spacing-xl) 0 var(--spacing-xs);
2690
2755
  }
2691
2756
 
@@ -2710,8 +2775,14 @@ base color swatches for the design system
2710
2775
  transform: translateY(-50%);
2711
2776
  }
2712
2777
 
2713
- .utah-design-system textarea {
2714
- padding: var(--spacing-xs);
2778
+ .character-count {
2779
+ text-align: right;
2780
+ font-size: var(--font-size-s);
2781
+ margin: var(--spacing-2xs) 0 0 0;
2782
+ }
2783
+
2784
+ .character-count--over-limit {
2785
+ color: var(--danger-color);
2715
2786
  }
2716
2787
 
2717
2788
  .utah-design-system input[type=checkbox] {
@@ -5068,7 +5139,7 @@ BEM standard: Block, Element, Modifier
5068
5139
  }
5069
5140
 
5070
5141
  .utah-design-system table .table-header--sortable button:focus-visible {
5071
- outline-offset: -2PX;
5142
+ outline-offset: -2px;
5072
5143
  }
5073
5144
 
5074
5145
  .utah-design-system table .table-header__cell {
@@ -5158,6 +5229,18 @@ BEM standard: Block, Element, Modifier
5158
5229
  padding: 0 var(--spacing-l) 0 var(--spacing-xs);
5159
5230
  }
5160
5231
 
5232
+ .utah-design-system .table__no-results-td {
5233
+ text-align: center;
5234
+ }
5235
+
5236
+ .utah-design-system .table__no-results-text {
5237
+ display: block;
5238
+ background: var(--gray-light-color);
5239
+ padding: var(--spacing);
5240
+ margin: var(--spacing);
5241
+ border-radius: var(--radius-small);
5242
+ }
5243
+
5161
5244
  .utah-design-system .on-this-page {
5162
5245
  font-size: var(--font-size-xs);
5163
5246
  }