@utahdts/utah-design-system 0.5.4 → 0.6.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 (54) hide show
  1. package/css/1-settings/_icons.scss +9 -1
  2. package/css/4-elements/_elements-index.scss +3 -0
  3. package/css/6-components/base-components/forms/_checkbox.scss +59 -56
  4. package/css/6-components/base-components/forms/_info-box.scss +22 -18
  5. package/css/6-components/base-components/forms/_input-wrapper.scss +11 -7
  6. package/css/6-components/base-components/forms/_input.scss +11 -7
  7. package/css/6-components/base-components/forms/_radio-button.scss +42 -50
  8. package/css/6-components/base-components/forms/_select-input.scss +16 -13
  9. package/css/6-components/base-components/forms/_switch.scss +157 -154
  10. package/css/6-components/base-components/forms/_text-input.scss +18 -14
  11. package/css/6-components/base-components/tablesAndLists/_table.scss +73 -69
  12. package/css/6-components/base-components/templates/_documenation-template.scss +43 -40
  13. package/css/6-components/base-components/templates/_landing-page-template.scss +11 -7
  14. package/css/6-components/base-components/widgetsInicators/_spinner.scss +33 -29
  15. package/css/6-components/project-components/_popup.scss +18 -15
  16. package/css/build/utah-design-system.css +112 -98
  17. package/dist/utah-design-system.es.js +2287 -1694
  18. package/dist/utah-design-system.umd.js +2287 -1697
  19. package/index.js +44 -37
  20. package/package.json +14 -9
  21. package/react/components/navigation/ExternalLink.jsx +24 -0
  22. package/react/components/navigation/OnThisPageHeadersLevel.jsx +3 -2
  23. package/react/components/navigation/pagination/Pagination.jsx +123 -0
  24. package/react/components/navigation/pagination/PaginationLink.jsx +50 -0
  25. package/react/components/{pagination → navigation/pagination/hooks}/usePaginatedList.js +1 -1
  26. package/react/components/navigation/pagination/util/determinePaginationLinks.js +134 -0
  27. package/react/components/navigation/util/findElementsByTagNameMatch.js +2 -1
  28. package/react/components/popups/Popup.jsx +1 -1
  29. package/react/components/table/TableBodyData.jsx +21 -27
  30. package/react/components/table/TableFilterCustom.jsx +1 -1
  31. package/react/components/table/TableFilterDate.jsx +1 -1
  32. package/react/components/table/TableFilterSelect.jsx +11 -2
  33. package/react/components/table/TableFilterSelectAllOptions.jsx +115 -0
  34. package/react/components/table/TableFilterTextInput.jsx +8 -1
  35. package/react/components/table/TableFilters.jsx +1 -1
  36. package/react/components/table/TableHeadCell.jsx +1 -1
  37. package/react/components/table/TableSortingRule.jsx +1 -1
  38. package/react/components/table/TableSortingRules.jsx +1 -1
  39. package/react/components/table/TableWrapper.jsx +56 -3
  40. package/react/components/table/hooks/useTableFilterRegistration.js +41 -0
  41. package/react/components/table/useCurrentValuesFromStateContext.js +3 -1
  42. package/react/components/table/util/convertRecordsToFilterValue.js +32 -0
  43. package/react/components/table/util/createTableFilterFunctions.js +36 -0
  44. package/react/components/table/util/filterTableRecords.js +21 -0
  45. package/react/contexts/UtahHeaderContext.jsx +3 -0
  46. package/react/enums/popupPlacement.js +26 -0
  47. package/react/hooks/forms/useComponentState.js +7 -2
  48. package/react/hooks/useComponentGuid.js +15 -0
  49. package/react/jsDocTypes.js +28 -0
  50. package/react/util/chainSorters.js +16 -14
  51. package/react/util/htmlDecode.js +5 -0
  52. package/react/util/menuItems/calculateMenuItemsParents.js +2 -2
  53. package/react/components/pagination/Pagination.jsx +0 -102
  54. package/react/components/table/TableContext.jsx +0 -3
@@ -1,5 +1,8 @@
1
1
  @use "../1-settings/class-vars";
2
2
 
3
+ // icon google font settings:
4
+ // fill: 0, weight 400, grade 0, optical size: 20px
5
+
3
6
  /* Generated by Glyphter (http://www.glyphter.com) on Fri Jan 20 2023*/
4
7
  @font-face {
5
8
  font-family: 'utah design system';
@@ -32,7 +35,7 @@
32
35
  font-style: normal;
33
36
  font-weight: normal;
34
37
  line-height: 1;
35
- -webkit-font-smoothing: antialiased;
38
+ -webkit-font-smoothing: antialiased;
36
39
  -moz-osx-font-smoothing: grayscale;
37
40
  margin-right: var(--spacing-2xs);
38
41
  }
@@ -216,4 +219,9 @@
216
219
  .utds-icon-after-account::after {
217
220
  content: '\006a';
218
221
  }
222
+
223
+ .utds-icon-before-lock::before,
224
+ .utds-icon-after-lock::after {
225
+ content: '\006b';
226
+ }
219
227
  }
@@ -73,6 +73,9 @@ elemental html: h1, h2, h3, ul, li, etc.
73
73
  overflow-x: scroll;
74
74
  box-sizing: border-box;
75
75
  }
76
+ &--padded {
77
+ padding: 0 var(--spacing);
78
+ }
76
79
  }
77
80
  .pre-block__overflow-content {
78
81
  width: max-content;
@@ -1,67 +1,70 @@
1
1
  @use "../../../2-tools/tools-index";
2
+ @use "../../../1-settings/class-vars";
2
3
 
3
- input[type="checkbox"] {
4
- width: var(--form-checkbox-medium);
5
- height: var(--form-checkbox-medium);
6
- position: relative;
7
- border-radius: var(--radius-small1x);
8
- border: 1px solid var(--gray-color);
9
- background-color: white;
10
- box-sizing: border-box;
11
- appearance: none;
4
+ #{class-vars.$base-class} {
5
+ input[type="checkbox"] {
6
+ width: var(--form-checkbox-medium);
7
+ height: var(--form-checkbox-medium);
8
+ position: relative;
9
+ border-radius: var(--radius-small1x);
10
+ border: 1px solid var(--gray-color);
11
+ background-color: white;
12
+ box-sizing: border-box;
13
+ appearance: none;
12
14
 
13
- &::after {
14
- content: '';
15
- display: block;
16
- position: absolute;
17
- width: 100%;
18
- height: 100%;
19
- top: 0;
20
- left: 0;
21
- border-radius: var(--radius-circle);
22
- z-index: -1;
23
- @include tools-index.form-ele-hover-base;
24
- }
25
- &:hover {
26
- border-color: black;
27
15
  &::after {
28
- @include tools-index.form-ele-hover-hovered(7px);
16
+ content: '';
17
+ display: block;
18
+ position: absolute;
19
+ width: 100%;
20
+ height: 100%;
21
+ top: 0;
22
+ left: 0;
23
+ border-radius: var(--radius-circle);
24
+ z-index: -1;
25
+ @include tools-index.form-ele-hover-base;
26
+ }
27
+ &:hover {
28
+ border-color: black;
29
+ &::after {
30
+ @include tools-index.form-ele-hover-hovered(7px);
31
+ }
29
32
  }
30
- }
31
33
 
32
- &::before {
33
- content: '';
34
- display: block;
35
- background: var(--form-ele-color);
36
- background-image: var(--icon-check-mark-light);
37
- background-repeat: no-repeat;
38
- background-position: center center;
39
- background-size: 30%;
40
- border-radius: var(--radius-small1x);
41
- width: 100%;
42
- height: 100%;
43
- opacity: 0;
44
- }
45
- &:checked {
46
- border-width: 0;
47
- background-color: var(--form-ele-color);
48
34
  &::before {
49
- opacity: 1;
50
- background-size: 80%;
51
- transition: background-size var(--timing-quick) ease, opacity var(--timing-quick) ease;
35
+ content: '';
36
+ display: block;
37
+ background: var(--form-ele-color);
38
+ background-image: var(--icon-check-mark-light);
39
+ background-repeat: no-repeat;
40
+ background-position: center center;
41
+ background-size: 30%;
42
+ border-radius: var(--radius-small1x);
43
+ width: 100%;
44
+ height: 100%;
45
+ opacity: 0;
46
+ }
47
+ &:checked {
48
+ border-width: 0;
49
+ background-color: var(--form-ele-color);
50
+ &::before {
51
+ opacity: 1;
52
+ background-size: 80%;
53
+ transition: background-size var(--timing-quick) ease, opacity var(--timing-quick) ease;
54
+ }
52
55
  }
53
56
  }
54
- }
55
- .input-wrapper {
56
- &--checkbox {
57
- display: flex;
58
- flex-direction: row-reverse;
59
- justify-content: flex-end;
60
- align-items: center;
61
- position: relative;
62
- z-index: 1;
63
- }
64
- label {
65
- padding: 0 0 0 var(--spacing-2xs);
57
+ .input-wrapper {
58
+ &--checkbox {
59
+ display: flex;
60
+ flex-direction: row-reverse;
61
+ justify-content: flex-end;
62
+ align-items: center;
63
+ position: relative;
64
+ z-index: 1;
65
+ }
66
+ label {
67
+ padding: 0 0 0 var(--spacing-2xs);
68
+ }
66
69
  }
67
70
  }
@@ -1,23 +1,27 @@
1
- .info-box {
2
- display: flex;
3
- align-items: center;
4
- min-height: var(--form-ele-medium);
5
- background: white;
6
- position: relative;
7
- border-radius: var(--radius-small);
1
+ @use "../../../1-settings/class-vars";
8
2
 
9
- &::before {
10
- content: '';
11
- display: block;
12
- width: var(--spacing-xs);
13
- height: 100%;
14
- border-top-left-radius: var(--radius-small);
15
- border-bottom-left-radius: var(--radius-small);
16
- background-color: var(--secondary-color);
17
- }
18
- &__content {
3
+ #{class-vars.$base-class} {
4
+ .info-box {
19
5
  display: flex;
20
6
  align-items: center;
21
- padding: 0 var(--spacing-s);
7
+ min-height: var(--form-ele-medium);
8
+ background: white;
9
+ position: relative;
10
+ border-radius: var(--radius-small);
11
+
12
+ &::before {
13
+ content: '';
14
+ display: block;
15
+ width: var(--spacing-xs);
16
+ height: 100%;
17
+ border-top-left-radius: var(--radius-small);
18
+ border-bottom-left-radius: var(--radius-small);
19
+ background-color: var(--secondary-color);
20
+ }
21
+ &__content {
22
+ display: flex;
23
+ align-items: center;
24
+ padding: 0 var(--spacing-s);
25
+ }
22
26
  }
23
27
  }
@@ -1,9 +1,13 @@
1
- .input-wrapper {
2
- margin: 0 0 var(--spacing-s) 0;
3
- .form.form--stacked & {
4
- display: flex;
5
- flex-direction: column;
6
- gap: 3px;
7
- align-items: flex-start;
1
+ @use "../../../1-settings/class-vars";
2
+
3
+ #{class-vars.$base-class} {
4
+ .input-wrapper {
5
+ margin: 0 0 var(--spacing-s) 0;
6
+ .form.form--stacked & {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: 3px;
10
+ align-items: flex-start;
11
+ }
8
12
  }
9
13
  }
@@ -1,10 +1,14 @@
1
- input.input,
2
- .input {
3
- &--height-small {
4
- min-height: var(--form-ele-small);
5
- }
1
+ @use "../../../1-settings/class-vars";
2
+
3
+ #{class-vars.$base-class} {
4
+ input.input,
5
+ .input {
6
+ &--height-small {
7
+ min-height: var(--form-ele-small);
8
+ }
6
9
 
7
- &--height-small1x {
8
- min-height: var(--form-ele-small1x);
10
+ &--height-small1x {
11
+ min-height: var(--form-ele-small1x);
12
+ }
9
13
  }
10
14
  }
@@ -1,60 +1,52 @@
1
- // label {
2
- // margin-right: var(--spacing);
3
- // }
4
- input[type="radio"] {
5
- appearance: none;
6
- border-radius: var(--radius-circle);
7
- border: 1px solid var(--gray-color);
8
- width: var(--form-ele-small1x);
9
- height: var(--form-ele-small1x);
10
- position: relative;
11
- top: var(--spacing-2xs);
12
- margin-right: var(--spacing-xs);
13
- &::before {
14
- content: '';
15
- display: block;
16
- width: 100%;
17
- height: 100%;
1
+ @use "../../../1-settings/class-vars";
2
+
3
+ #{class-vars.$base-class} {
4
+ input[type="radio"] {
5
+ appearance: none;
18
6
  border-radius: var(--radius-circle);
19
- box-shadow: rgba(0,0,0,0.2) 0px 0px 0px 0px;
20
- transition: box-shadow var(--timing-xquick) ease-in-out;
21
- }
22
- &:hover::before {
23
- box-shadow: rgba(0,0,0,0.2) 0px 0px 0px 7px;
24
- }
25
- &:checked {
26
- background-color: var(--secondary-color);
27
- border: 1px solid var(--secondary-color);
28
- &::after {
7
+ border: 1px solid var(--gray-color);
8
+ width: var(--form-ele-small1x);
9
+ height: var(--form-ele-small1x);
10
+ position: relative;
11
+ top: var(--spacing-2xs);
12
+ margin-right: var(--spacing-xs);
13
+ &::before {
29
14
  content: '';
30
15
  display: block;
31
- width: 50%;
32
- height: 50%;
16
+ width: 100%;
17
+ height: 100%;
33
18
  border-radius: var(--radius-circle);
34
- background-color: white;
35
- position: absolute;
36
- left: 50%;
37
- top: 50%;
38
- transform: translate(-50%, -50%);
19
+ box-shadow: rgba(0,0,0,0.2) 0px 0px 0px 0px;
20
+ transition: box-shadow var(--timing-xquick) ease-in-out;
21
+ }
22
+ &:hover::before {
23
+ box-shadow: rgba(0,0,0,0.2) 0px 0px 0px 7px;
24
+ }
25
+ &:checked {
26
+ background-color: var(--secondary-color);
27
+ border: 1px solid var(--secondary-color);
28
+ &::after {
29
+ content: '';
30
+ display: block;
31
+ width: 50%;
32
+ height: 50%;
33
+ border-radius: var(--radius-circle);
34
+ background-color: white;
35
+ position: absolute;
36
+ left: 50%;
37
+ top: 50%;
38
+ transform: translate(-50%, -50%);
39
+ }
39
40
  }
40
41
  }
41
- // accent-color: var(--secondary-color);
42
- }
43
42
 
44
43
 
45
- .checkbox:hover ~ span:first-of-type {
46
- box-shadow: rgb(240 241 242) 0px 0px 0px 7px;
47
- }
44
+ .checkbox:hover ~ span:first-of-type {
45
+ box-shadow: rgb(240 241 242) 0px 0px 0px 7px;
46
+ }
48
47
 
49
- span {
50
- border-radius: 999px;
51
- box-shadow: rgb(240 241 242) 0px 0px 0px 0px;
48
+ span {
49
+ border-radius: 999px;
50
+ box-shadow: rgb(240 241 242) 0px 0px 0px 0px;
51
+ }
52
52
  }
53
-
54
- // .input__input input {
55
- // margin-top: 5px;
56
- // }
57
- // input[type="radio"] {
58
- // margin-top: 7px;
59
- // margin-right: 20px;
60
- // }
@@ -1,17 +1,20 @@
1
1
  @use "../../../2-tools/tools-index";
2
+ @use "../../../1-settings/class-vars";
2
3
 
3
- select {
4
- color: var(--gray-color);
5
- min-height: var(--form-ele-medium);
6
- border-radius: var(--radius-small);
7
- box-sizing: border-box;
8
- border: 1px solid var(--gray-color);
9
- width: 100%;
10
- padding: 0 var(--spacing-xs);
11
- appearance: none;
12
- background: white var(--icon-chevron-dark) no-repeat right 5px center;
13
- background-size: 16px;
4
+ #{class-vars.$base-class} {
5
+ select {
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: 0 var(--spacing-xs);
13
+ appearance: none;
14
+ background: white var(--icon-chevron-dark) no-repeat right 5px center;
15
+ background-size: 16px;
14
16
 
15
- @include tools-index.form-ele-hover-medium;
16
- @include tools-index.form-ele-focus;
17
+ @include tools-index.form-ele-hover-medium;
18
+ @include tools-index.form-ele-focus;
19
+ }
17
20
  }