@utahdts/utah-design-system 1.11.1 → 1.12.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 (76) hide show
  1. package/css/6-components/_components-index.scss +2 -0
  2. package/css/6-components/base-components/buttons/_tag.scss +21 -6
  3. package/css/6-components/base-components/forms/_combo-box-input.scss +81 -0
  4. package/css/6-components/base-components/forms/_input-wrapper.scss +3 -1
  5. package/css/6-components/base-components/popups/_banner.scss +182 -0
  6. package/css/6-components/base-components/tablesAndLists/_table.scss +1 -1
  7. package/css/7-utilities/_animation.scss +22 -0
  8. package/dist/style.css +374 -6
  9. package/dist/utah-design-system.es.js +30502 -30586
  10. package/dist/utah-design-system.umd.js +30506 -30590
  11. package/index.js +37 -32
  12. package/package.json +7 -7
  13. package/react/components/buttons/ClickableTag.jsx +22 -71
  14. package/react/components/buttons/Tag.jsx +25 -73
  15. package/react/components/forms/ComboBox/ComboBox.jsx +8 -8
  16. package/react/components/forms/ComboBox/ComboBoxOption.jsx +51 -21
  17. package/react/components/forms/ComboBox/ComboBoxOptionGroup.jsx +22 -9
  18. package/react/components/forms/ComboBox/context/ComboBoxContext.js +7 -4
  19. package/react/components/forms/ComboBox/context/ComboBoxContextProvider.jsx +28 -10
  20. package/react/components/forms/ComboBox/context/ComboBoxOptionGroupContext.js +6 -0
  21. package/react/components/forms/ComboBox/context/ComboBoxOptionGroupContextProvider.jsx +17 -0
  22. package/react/components/forms/ComboBox/context/useComboBoxContext.js +3 -5
  23. package/react/components/forms/ComboBox/context/useComboBoxOptionGroupContext.js +10 -0
  24. package/react/components/forms/ComboBox/functions/isOptionGroupVisible.js +20 -0
  25. package/react/components/forms/ComboBox/functions/moveComboBoxSelectionDown.js +14 -8
  26. package/react/components/forms/ComboBox/functions/moveComboBoxSelectionUp.js +14 -7
  27. package/react/components/forms/ComboBox/functions/selectComboBoxSelection.js +5 -5
  28. package/react/components/forms/ComboBox/internal/CombBoxListBox.jsx +35 -13
  29. package/react/components/forms/ComboBox/internal/ComboBoxTextInput.jsx +108 -88
  30. package/react/components/forms/Switch.jsx +1 -0
  31. package/react/components/popups/Banner/Banner.jsx +53 -0
  32. package/react/components/popups/Banner/BannerIcon.jsx +23 -0
  33. package/react/components/popups/Banner/BannerMessage.jsx +22 -0
  34. package/react/components/table/Table.jsx +2 -21
  35. package/react/components/table/TableBody.jsx +8 -28
  36. package/react/components/table/TableBodyData.jsx +31 -45
  37. package/react/components/table/TableBodyDataCellTemplate.jsx +18 -47
  38. package/react/components/table/TableBodyDataRowContext.jsx +1 -3
  39. package/react/components/table/TableBodyDataRowTemplate.jsx +16 -41
  40. package/react/components/table/TableCell.jsx +9 -30
  41. package/react/components/table/TableContextConsumer.jsx +2 -13
  42. package/react/components/table/TableFilterCustom.jsx +9 -28
  43. package/react/components/table/TableFilterDate.jsx +14 -39
  44. package/react/components/table/TableFilterNone.jsx +9 -29
  45. package/react/components/table/TableFilterSelect.jsx +19 -49
  46. package/react/components/table/TableFilterSelectAllOptions.jsx +4 -4
  47. package/react/components/table/TableFilterSelectOption.jsx +5 -26
  48. package/react/components/table/TableFilterTextInput.jsx +4 -4
  49. package/react/components/table/TableFilters.jsx +16 -41
  50. package/react/components/table/TableFoot.jsx +7 -26
  51. package/react/components/table/TableFootCell.jsx +9 -29
  52. package/react/components/table/TableFootRow.jsx +7 -26
  53. package/react/components/table/TableHead.jsx +7 -26
  54. package/react/components/table/TableHeadCell.jsx +24 -57
  55. package/react/components/table/TableHeadRow.jsx +7 -26
  56. package/react/components/table/TablePagination.jsx +69 -0
  57. package/react/components/table/TableRow.jsx +13 -40
  58. package/react/components/table/TableSortingRule.jsx +13 -38
  59. package/react/components/table/TableSortingRules.jsx +8 -27
  60. package/react/components/table/TableWrapper.jsx +4 -23
  61. package/react/components/table/hooks/useTableContext.jsx +3 -2
  62. package/react/components/table/hooks/useTableFilterRegistration.js +6 -3
  63. package/react/components/table/useCurrentValuesFromStateContext.js +2 -2
  64. package/react/components/table/util/TableContext.jsx +2 -6
  65. package/react/components/table/util/convertRecordsToFilterValue.js +1 -1
  66. package/react/components/table/util/createTableFilterFunctions.js +1 -1
  67. package/react/components/table/util/filterTableRecords.js +1 -1
  68. package/react/contexts/UtahDesignSystemContext/UtahDesignSystemContext.js +1 -0
  69. package/react/contexts/UtahDesignSystemContext/UtahDesignSystemContextProvider.jsx +6 -1
  70. package/react/contexts/UtahDesignSystemContext/components/BannersGlobal.jsx +83 -0
  71. package/react/contexts/UtahDesignSystemContext/hooks/useBanner.js +62 -0
  72. package/react/enums/bannerPlacement.js +17 -0
  73. package/react/enums/tableSortingRuleFieldType.js +1 -1
  74. package/react/jsDocTypes.js +42 -2
  75. package/react/propTypesShapes/header/HeaderMenuItemUrlActionShape.js +1 -0
  76. package/react/contexts/UtahDesignSystemContext/hooks/useUtahDesignSystemAriaMessaging.js +0 -13
package/dist/style.css CHANGED
@@ -2654,6 +2654,10 @@ base color swatches for the design system
2654
2654
  width: 0.65rem;
2655
2655
  }
2656
2656
 
2657
+ .utah-design-system .tag--small .tag--icon [class*=utds-icon-before-]::before {
2658
+ font-size: 0.7rem;
2659
+ }
2660
+
2657
2661
  .utah-design-system .tag--large {
2658
2662
  font-size: var(--font-size-m);
2659
2663
  }
@@ -2663,6 +2667,10 @@ base color swatches for the design system
2663
2667
  width: 1rem;
2664
2668
  }
2665
2669
 
2670
+ .utah-design-system .tag--large .tag--icon [class*=utds-icon-before-]::before {
2671
+ font-size: 1rem;
2672
+ }
2673
+
2666
2674
  .utah-design-system .tag--icon {
2667
2675
  display: flex;
2668
2676
  align-items: center;
@@ -2673,6 +2681,11 @@ base color swatches for the design system
2673
2681
  width: 0.8rem;
2674
2682
  }
2675
2683
 
2684
+ .utah-design-system .tag--icon [class*=utds-icon-before-]::before {
2685
+ font-size: 0.8rem;
2686
+ margin: 0;
2687
+ }
2688
+
2676
2689
  .utah-design-system .tag--icon-left {
2677
2690
  margin-right: var(--spacing-2xs);
2678
2691
  }
@@ -2804,10 +2817,12 @@ base color swatches for the design system
2804
2817
  }
2805
2818
 
2806
2819
  .utah-design-system .input-wrapper__error-message {
2820
+ margin-top: var(--spacing-3xs);
2807
2821
  color: var(--danger-color);
2808
2822
  }
2809
2823
 
2810
- .utah-design-system .input-wrapper input, .utah-design-system .input-wrapper textarea {
2824
+ .utah-design-system .input-wrapper input,
2825
+ .utah-design-system .input-wrapper textarea {
2811
2826
  display: block;
2812
2827
  }
2813
2828
 
@@ -2939,6 +2954,96 @@ base color swatches for the design system
2939
2954
  transform: translateY(-50%);
2940
2955
  }
2941
2956
 
2957
+ .utah-design-system .combo-box-input[type=text] {
2958
+ padding: 0 var(--spacing-xl) 0 var(--spacing-xs);
2959
+ }
2960
+
2961
+ .utah-design-system .combo-box-input[type=text].text-input--clear-icon-visible {
2962
+ padding: 0 var(--spacing-4xl) 0 var(--spacing-xs);
2963
+ }
2964
+
2965
+ .utah-design-system .combo-box-input__chevron {
2966
+ position: absolute;
2967
+ top: 50%;
2968
+ transform: translateY(-50%);
2969
+ right: var(--spacing-xs);
2970
+ font-weight: var(--font-weight-normal);
2971
+ }
2972
+
2973
+ .utah-design-system .combo-box-input__chevron[class*=utds-icon-before-]::before {
2974
+ font-size: 0.9rem;
2975
+ line-height: 0;
2976
+ }
2977
+
2978
+ .utah-design-system .combo-box-input__chevron--is-disabled {
2979
+ color: var(--form-ele-disabled-color);
2980
+ }
2981
+
2982
+ .utah-design-system .combo-box-input__inner-wrapper .text-input__clear-button {
2983
+ right: var(--spacing-xl);
2984
+ }
2985
+
2986
+ .utah-design-system .combo-box-input__inner-wrapper .input-wrapper--text-input {
2987
+ margin: 0;
2988
+ }
2989
+
2990
+ .utah-design-system .combo-box-input__list-box {
2991
+ background: white;
2992
+ border-radius: var(--radius-small);
2993
+ border: 1px solid var(--gray-3-1-contrast);
2994
+ box-sizing: border-box;
2995
+ list-style-type: none;
2996
+ margin: 0;
2997
+ padding: 0;
2998
+ z-index: 2000;
2999
+ }
3000
+
3001
+ .utah-design-system .combo-box-input__option {
3002
+ padding: var(--spacing-2xs) var(--spacing-s);
3003
+ }
3004
+
3005
+ .utah-design-system .combo-box-input__option:hover {
3006
+ background: var(--hover-gray-color);
3007
+ cursor: default;
3008
+ color: black;
3009
+ }
3010
+
3011
+ .utah-design-system .combo-box-input__option--selected {
3012
+ background: var(--form-ele-color);
3013
+ color: white;
3014
+ }
3015
+
3016
+ .utah-design-system .combo-box-input__option--highlighted {
3017
+ background: var(--hover-gray-color);
3018
+ color: black;
3019
+ }
3020
+
3021
+ .utah-design-system .combo-box-input__option:focus-visible {
3022
+ outline: 2px solid var(--form-ele-color);
3023
+ outline-offset: 2px;
3024
+ transition: none;
3025
+ }
3026
+
3027
+ .utah-design-system .combo-box-input__option:focus-visible {
3028
+ outline-offset: -2px;
3029
+ border-radius: var(--radius-small1x);
3030
+ }
3031
+
3032
+ .utah-design-system .combo-box-input__group-wrapper ul {
3033
+ list-style-type: none;
3034
+ padding: 0;
3035
+ margin: 0;
3036
+ }
3037
+
3038
+ .utah-design-system .combo-box-input__group-wrapper ul li.combo-box-input__option {
3039
+ padding: var(--spacing-2xs) var(--spacing-s) var(--spacing-2xs) var(--spacing);
3040
+ }
3041
+
3042
+ .utah-design-system .combo-box-input__group-title {
3043
+ padding: var(--spacing-2xs) var(--spacing-s);
3044
+ font-weight: var(--font-weight-bold);
3045
+ }
3046
+
2942
3047
  .character-count {
2943
3048
  text-align: right;
2944
3049
  font-size: var(--font-size-s);
@@ -4741,6 +4846,249 @@ variables and settings
4741
4846
  backdrop-filter: blur(6px) brightness(60%);
4742
4847
  }
4743
4848
 
4849
+ @keyframes fade-in {
4850
+ 0% {
4851
+ opacity: 0;
4852
+ }
4853
+ 100% {
4854
+ opacity: 1;
4855
+ }
4856
+ }
4857
+ @keyframes drop-in {
4858
+ 0% {
4859
+ opacity: 0;
4860
+ transform: translate(-50%, -100px);
4861
+ }
4862
+ 100% {
4863
+ opacity: 1;
4864
+ transform: translate(-50%, 0);
4865
+ }
4866
+ }
4867
+ @keyframes pop-in {
4868
+ 0% {
4869
+ opacity: 0;
4870
+ transform: scale(0.7);
4871
+ }
4872
+ 100% {
4873
+ opacity: 1;
4874
+ transform: scale(1);
4875
+ }
4876
+ }
4877
+ @keyframes pop-in-center {
4878
+ 0% {
4879
+ opacity: 0;
4880
+ transform: scale(0.7) translateX(-50%);
4881
+ }
4882
+ 100% {
4883
+ opacity: 1;
4884
+ transform: scale(1) translateX(-50%);
4885
+ }
4886
+ }
4887
+ @keyframes left-in {
4888
+ 0% {
4889
+ opacity: 0;
4890
+ transform: translate(-100%, 0);
4891
+ }
4892
+ 100% {
4893
+ opacity: 1;
4894
+ transform: translate(0, 0);
4895
+ }
4896
+ }
4897
+ @keyframes right-in {
4898
+ 0% {
4899
+ opacity: 0;
4900
+ transform: translate(100%, 0);
4901
+ }
4902
+ 100% {
4903
+ opacity: 1;
4904
+ transform: translate(0, 0);
4905
+ }
4906
+ }
4907
+ .utah-design-system .banner__wrapper {
4908
+ display: inline-flex;
4909
+ border-radius: var(--radius-small);
4910
+ background: white;
4911
+ box-shadow: var(--elevation-small-borderless);
4912
+ margin: var(--spacing);
4913
+ }
4914
+
4915
+ .utah-design-system .banner__wrapper:not(.banner--inline) {
4916
+ position: fixed;
4917
+ z-index: 3000;
4918
+ }
4919
+
4920
+ .utah-design-system .banner__wrapper.banner--bottom-left, .utah-design-system .banner__wrapper.banner--top-left {
4921
+ animation: left-in 1s;
4922
+ }
4923
+
4924
+ .utah-design-system .banner__wrapper.banner--bottom-right, .utah-design-system .banner__wrapper.banner--top-right {
4925
+ animation: right-in 1s;
4926
+ }
4927
+
4928
+ .utah-design-system .banner__wrapper.banner--bottom, .utah-design-system .banner__wrapper.banner--top {
4929
+ animation: fade-in 0.5s;
4930
+ }
4931
+
4932
+ .utah-design-system .banner__wrapper.banner--bottom {
4933
+ bottom: 0;
4934
+ left: 50%;
4935
+ transform: translateX(-50%);
4936
+ }
4937
+
4938
+ .utah-design-system .banner__wrapper.banner--bottom-left {
4939
+ bottom: 0;
4940
+ left: 0;
4941
+ }
4942
+
4943
+ .utah-design-system .banner__wrapper.banner--bottom-right {
4944
+ bottom: 0;
4945
+ right: 0;
4946
+ }
4947
+
4948
+ .utah-design-system .banner__wrapper.banner--top {
4949
+ top: 0;
4950
+ left: 50%;
4951
+ transform: translateX(-50%);
4952
+ }
4953
+
4954
+ .utah-design-system .banner__wrapper.banner--top-left {
4955
+ top: 0;
4956
+ left: 0;
4957
+ }
4958
+
4959
+ .utah-design-system .banner__wrapper.banner--top-right {
4960
+ top: 0;
4961
+ right: 0;
4962
+ }
4963
+
4964
+ .utah-design-system .banner__wrapper.banner--info, .utah-design-system .banner__wrapper.banner--warning, .utah-design-system .banner__wrapper.banner--danger, .utah-design-system .banner__wrapper.banner--success {
4965
+ color: white;
4966
+ }
4967
+
4968
+ .utah-design-system .banner__wrapper.banner--info .banner__close-button button, .utah-design-system .banner__wrapper.banner--warning .banner__close-button button, .utah-design-system .banner__wrapper.banner--danger .banner__close-button button, .utah-design-system .banner__wrapper.banner--success .banner__close-button button {
4969
+ color: white;
4970
+ }
4971
+
4972
+ .utah-design-system .banner__wrapper.banner--info {
4973
+ background-color: var(--info-color);
4974
+ }
4975
+
4976
+ .utah-design-system .banner__wrapper.banner--warning {
4977
+ background-color: var(--warning-color);
4978
+ }
4979
+
4980
+ .utah-design-system .banner__wrapper.banner--danger {
4981
+ background-color: var(--danger-color);
4982
+ }
4983
+
4984
+ .utah-design-system .banner__wrapper.banner--success {
4985
+ background-color: var(--success-color);
4986
+ }
4987
+
4988
+ .utah-design-system .banner__message {
4989
+ display: flex;
4990
+ align-items: center;
4991
+ padding: var(--spacing-s) var(--spacing-xs) var(--spacing-s) var(--spacing);
4992
+ }
4993
+
4994
+ .utah-design-system .banner__icon {
4995
+ padding: var(--spacing-s);
4996
+ background-color: rgba(0, 0, 0, 0.3);
4997
+ display: flex;
4998
+ border-radius: var(--radius-small) 0 0 var(--radius-small);
4999
+ }
5000
+
5001
+ .utah-design-system .banner__icon span {
5002
+ color: white;
5003
+ }
5004
+
5005
+ .utah-design-system .banner__icon span[class*=utds-icon-before-]::before {
5006
+ margin-right: 0;
5007
+ }
5008
+
5009
+ .utah-design-system .banner__close-button {
5010
+ padding: var(--spacing-xs);
5011
+ }
5012
+
5013
+ .utah-design-system.banner-global__wrapper {
5014
+ z-index: 4000;
5015
+ position: fixed;
5016
+ }
5017
+
5018
+ .utah-design-system.banner-global__wrapper .banner-global__zone {
5019
+ position: fixed;
5020
+ display: flex;
5021
+ flex-direction: column-reverse;
5022
+ }
5023
+
5024
+ .utah-design-system.banner-global__wrapper .banner-global__bottom {
5025
+ bottom: 0;
5026
+ left: 50%;
5027
+ transform: translateX(-50%);
5028
+ flex-direction: column;
5029
+ }
5030
+
5031
+ .utah-design-system.banner-global__wrapper .banner-global__bottom-left {
5032
+ bottom: 0;
5033
+ left: 0;
5034
+ flex-direction: column;
5035
+ }
5036
+
5037
+ .utah-design-system.banner-global__wrapper .banner-global__bottom-right {
5038
+ bottom: 0;
5039
+ right: 0;
5040
+ flex-direction: column;
5041
+ }
5042
+
5043
+ .utah-design-system.banner-global__wrapper .banner-global__top {
5044
+ top: 0;
5045
+ left: 50%;
5046
+ transform: translateX(-50%);
5047
+ }
5048
+
5049
+ .utah-design-system.banner-global__wrapper .banner-global__top-left {
5050
+ top: 0;
5051
+ left: 0;
5052
+ }
5053
+
5054
+ .utah-design-system.banner-global__wrapper .banner-global__top-right {
5055
+ top: 0;
5056
+ right: 0;
5057
+ }
5058
+
5059
+ .utah-design-system.banner-global__wrapper .banner-global__bottom .banner__wrapper, .utah-design-system.banner-global__wrapper .banner-global__top .banner__wrapper {
5060
+ align-self: baseline;
5061
+ }
5062
+
5063
+ .utah-design-system.banner-global__wrapper .banner-global__top-right .banner__wrapper, .utah-design-system.banner-global__wrapper .banner-global__bottom-right .banner__wrapper {
5064
+ align-self: flex-end;
5065
+ }
5066
+
5067
+ .utah-design-system.banner-global__wrapper .banner-global__top-left .banner__wrapper, .utah-design-system.banner-global__wrapper .banner-global__bottom-left .banner__wrapper {
5068
+ align-self: flex-start;
5069
+ }
5070
+
5071
+ .utah-design-system.banner-global__wrapper .banner__wrapper {
5072
+ position: relative;
5073
+ }
5074
+
5075
+ /*
5076
+ BEM standard: Block, Element, Modifier
5077
+ Block: use dashes to separate words:
5078
+ - my-react-component
5079
+ - super-list
5080
+ - cats-r-great
5081
+ Element: use two underscores for elements
5082
+ Elements are children at any level of the Block:
5083
+ - my-react-component__block
5084
+ - super-list__name
5085
+ - super-list__info
5086
+ - cats-r-great__whiskers
5087
+ Modifier: use two dashes for modifiers
5088
+ - my-react-component--alt
5089
+ - super-list--flat
5090
+ - cats-r-great--black
5091
+ */
4744
5092
  .utah-design-system .popup__wrapper {
4745
5093
  position: absolute;
4746
5094
  z-index: 100;
@@ -5317,7 +5665,7 @@ BEM standard: Block, Element, Modifier
5317
5665
  }
5318
5666
  }
5319
5667
  .utah-design-system .table__wrapper {
5320
- overflow-x: scroll;
5668
+ overflow-x: auto;
5321
5669
  }
5322
5670
 
5323
5671
  .utah-design-system table {
@@ -5627,10 +5975,6 @@ BEM standard: Block, Element, Modifier
5627
5975
  color: black;
5628
5976
  }
5629
5977
 
5630
- /*
5631
- ############ _utilities.scss ############
5632
- utility classes, atomic css
5633
- */
5634
5978
  @keyframes fade-in {
5635
5979
  0% {
5636
5980
  opacity: 0;
@@ -5669,6 +6013,30 @@ utility classes, atomic css
5669
6013
  transform: scale(1) translateX(-50%);
5670
6014
  }
5671
6015
  }
6016
+ @keyframes left-in {
6017
+ 0% {
6018
+ opacity: 0;
6019
+ transform: translate(-100%, 0);
6020
+ }
6021
+ 100% {
6022
+ opacity: 1;
6023
+ transform: translate(0, 0);
6024
+ }
6025
+ }
6026
+ @keyframes right-in {
6027
+ 0% {
6028
+ opacity: 0;
6029
+ transform: translate(100%, 0);
6030
+ }
6031
+ 100% {
6032
+ opacity: 1;
6033
+ transform: translate(0, 0);
6034
+ }
6035
+ }
6036
+ /*
6037
+ ############ _utilities.scss ############
6038
+ utility classes, atomic css
6039
+ */
5672
6040
  .content-width {
5673
6041
  width: 100%;
5674
6042
  max-width: var(--content-width);