@policystudio/policy-studio-ui-vue 1.0.29 → 1.0.30

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@policystudio/policy-studio-ui-vue",
3
- "version": "1.0.29",
3
+ "version": "1.0.30",
4
4
  "description": "Policy Studio UI",
5
5
  "main": "src/index.js",
6
6
  "author": "Policy Studio Team",
@@ -13,6 +13,7 @@
13
13
  @import './components/PsDataTable.scss';
14
14
  @import './components/PsCheckbox.scss';
15
15
  @import './components/PsDialog.scss';
16
+ @import './components/PsDotLoader.scss';
16
17
  @import './components/PsRadioButton.scss';
17
18
  @import './components/PsSwitch.scss';
18
19
  @import './components/PsProgressBar.scss';
@@ -22,17 +22,22 @@
22
22
  &.size-big {
23
23
  @apply psui-flex psui-items-center psui-content-center;
24
24
  padding: 9.5px 16px;
25
- font-size: 16px;
26
25
 
27
- &.icon-left i {
28
- font-size: 24px;
29
- margin-right: 8px;
30
- }
26
+ &.icon-left {
27
+ padding: 8px 16px;
28
+ i {
29
+ font-size: 24px;
30
+ margin-right: 8px;
31
+ }
32
+ }
31
33
 
32
- &.icon-right i {
33
- font-size: 24px;
34
- margin-left: 8px;
35
- }
34
+ &.icon-right {
35
+ padding: 8px 16px;
36
+ i {
37
+ font-size: 24px;
38
+ margin-left: 8px;
39
+ }
40
+ }
36
41
  }
37
42
 
38
43
  &.size-medium {
@@ -56,7 +61,7 @@
56
61
  font-size: 14px;
57
62
 
58
63
  &.layout-onlytext {
59
- &:focus:not(.disabled) {
64
+ &:active:not(.disabled) {
60
65
  @apply psui-bg-blue-20 psui-text-blue-60;
61
66
  box-shadow: inset 0px 1px 2px rgba(0,0,0,0.05);
62
67
  }
@@ -82,14 +87,13 @@
82
87
  }
83
88
 
84
89
  &.layout-solid {
85
-
86
90
  @apply psui-bg-blue-60 psui-text-white;
87
91
 
88
92
  &.hover {
89
93
  @apply psui-bg-blue-50 psui-text-white;
90
94
  }
91
95
 
92
- &:focus:not(.disabled) {
96
+ &:active:not(.disabled) {
93
97
  @apply psui-bg-blue-50 psui-text-white;
94
98
  box-shadow: inset 0px 1px 2px rgba(0,0,0,0.15);
95
99
  }
@@ -104,7 +108,7 @@
104
108
  background: transparent;
105
109
 
106
110
  &.hover,
107
- &:focus {
111
+ &:active {
108
112
  @apply psui-border psui-border-blue-60
109
113
  }
110
114
 
@@ -117,7 +121,7 @@
117
121
  @apply psui-bg-blue-20 psui-text-blue-60;
118
122
 
119
123
  &.hover,
120
- &:focus:not(.disabled) {
124
+ &:active:not(.disabled) {
121
125
  box-shadow: inset 0px 1px 2px rgba(0,0,0,0.05);
122
126
  }
123
127
 
@@ -2,7 +2,7 @@
2
2
  .psui-el-climate-zone-badge {
3
3
  @apply psui-flex psui-bg-gray-10 psui-text-gray-50 psui-transition-all psui-duration-300 psui-ease-out psui-rounded psui-items-center;
4
4
  width: fit-content;
5
- padding: 4px 6px;
5
+ padding: 0px 6px;
6
6
 
7
7
  &:hover {
8
8
  @apply psui-text-blue-60 psui-bg-blue-20;
@@ -1,31 +1,26 @@
1
1
  @layer components {
2
- .psui-el-cost-effect-bar {
3
- @apply psui-overflow-visible;
4
-
5
- div {
6
- @apply psui-relative psui-h-2 psui-rounded-2xl;
7
- width: 100px;
8
-
9
- span {
10
- @apply psui-absolute psui-rounded-sm psui-z-10;
11
- background-color: #d6dde5;
12
- width: 2px;
13
- height: 14px;
14
- top: -3px;
15
- }
16
-
17
- .psui-el-simple-progress-bar {
18
- @apply psui-overflow-hidden;
19
-
20
-
21
- &-percentage {
22
-
23
- border-radius: unset;
24
- }
25
-
26
- }
27
-
2
+ .psui-el-cost-effect-bar {
3
+ @apply psui-overflow-visible;
4
+
5
+ div {
6
+ @apply psui-relative psui-h-2 psui-rounded-2xl;
7
+ width: 100px;
8
+
9
+ span {
10
+ @apply psui-absolute psui-rounded-sm psui-z-10;
11
+ background-color: #d6dde5;
12
+ width: 2px;
13
+ height: 14px;
14
+ top: -3px;
15
+ }
16
+
17
+ .psui-el-simple-progress-bar {
18
+ @apply psui-overflow-hidden;
19
+
20
+ &-percentage {
21
+ border-radius: unset;
28
22
  }
29
-
23
+ }
30
24
  }
25
+ }
31
26
  }
@@ -0,0 +1,45 @@
1
+ @layer components {
2
+
3
+ .psui-el-dotloader {
4
+ @apply psui-flex psui-items-center psui-justify-center psui-h-full;
5
+ padding: 0;
6
+
7
+ .psui-el-dotloader-wrapper {
8
+ @apply psui-relative psui-p-4 psui-flex;
9
+ height: 15px;
10
+ span {
11
+ @apply psui-rounded-full psui-relative psui-float-left psui-left-0 psui-top-0 psui-mr-1;
12
+ background: #b7b7b7;
13
+ height: 15px;
14
+ width: 15px;
15
+ opacity: 0.15;
16
+ transform: scale(1);
17
+ animation: dots-animation 1s 0.2s ease-in-out infinite;
18
+
19
+ &:nth-of-type(1) {
20
+ animation-delay: 0.2s;
21
+ }
22
+
23
+ &:nth-of-type(2) {
24
+ animation-delay: 0.4s;
25
+ }
26
+
27
+ &:nth-of-type(3) {
28
+ animation-delay: 0.6s;
29
+ }
30
+ }
31
+
32
+ @keyframes dots-animation {
33
+ 0%, 70%, 100% {
34
+ opacity: 0.15;
35
+ transform: scale(1);
36
+ }
37
+
38
+ 35% {
39
+ opacity: 1;
40
+ transform: scale(1);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
@@ -1,11 +1,22 @@
1
1
  @layer components {
2
2
  .psui-el-inline-selector {
3
- @apply psui-w-auto psui-max-w-full psui-text-h4 psui-overflow-x-hidden psui-relative psui-flex-shrink-0 psui-text-blue-60;
3
+ @apply psui-w-auto psui-max-w-full psui-text-h4 psui-relative psui-flex-shrink-0 psui-text-blue-60 psui-box-border;
4
+
5
+ ::-webkit-scrollbar {
6
+ @apply psui-bg-gray-30;
7
+ display: block;
8
+ width: 6px;
9
+ }
10
+
11
+ ::-webkit-scrollbar-thumb {
12
+ @apply psui-bg-blue-70 psui-rounded;
13
+ }
4
14
 
5
15
  input {
6
16
  @apply psui-border-b psui-border-dashed psui-border-blue-50;
7
17
  transition: 300ms ease-in all;
8
-
18
+ padding-bottom: 3px;
19
+
9
20
  &::placeholder {
10
21
  @apply psui-text-h4 psui-text-gray-40
11
22
  }
@@ -17,7 +28,6 @@
17
28
  span {
18
29
  @apply psui-block psui-opacity-0;
19
30
  min-width: 100px;
20
- min-height: 29px;
21
31
  }
22
32
 
23
33
  input {
@@ -30,52 +40,57 @@
30
40
  }
31
41
 
32
42
  .psui-el-inline-selector-dropdown-wrapper {
33
- @apply psui-origin-top-right psui-absolute psui-overflow-y-auto psui-left-0 psui-mt-2 psui-rounded psui-shadow-elevation-20 psui-bg-white psui-p-4 psui-z-40;
34
- max-height: 50vh;
43
+ @apply psui-absolute psui-left-0 psui-bg-white psui-rounded psui-shadow-elevation-20 psui-z-50 psui-overflow-y-auto;
44
+ max-height: 30vh;
45
+ min-width: 300px;
35
46
 
36
47
  .psui-el-inline-selector-dropdown {
37
- @apply psui-w-full psui-flex psui-flex-wrap psui-bg-white;
48
+ @apply psui-flex psui-bg-white;
49
+
50
+
51
+ .psui-el-inline-selector-error {
52
+ @apply psui-w-full psui-p-3 psui-flex psui-flex-col;
53
+
54
+ h3 {
55
+ @apply psui-text-red-20
56
+ }
57
+
58
+ p {
59
+ @apply psui-text-gray-50
60
+ }
61
+ }
38
62
 
39
63
  ul {
40
- @apply psui-w-full;
64
+ @apply psui-w-full psui-bg-white;
41
65
 
42
66
  li {
43
- @apply psui-w-full psui-cursor-pointer;
67
+ @apply psui-flex psui-cursor-pointer;
44
68
  padding: 7.5px 16px;
45
69
 
46
70
  &:hover {
47
- @apply psui-text-blue-60 psui-bg-blue-20;
71
+ @apply psui-bg-blue-20;
72
+
73
+ span p {
74
+ @apply psui-text-blue-60;
75
+ }
48
76
  }
49
77
 
50
78
  span {
79
+ @apply psui-flex psui-items-center psui-w-full;
51
80
 
52
81
  > p {
53
- @apply psui-text-big psui-text-gray-60
82
+ @apply psui-inline-block psui-text-big psui-text-gray-60 psui-flex-shrink-0;
54
83
  }
55
84
 
56
85
  p + p {
57
- @apply psui-text-gray-40;
86
+ @apply psui-text-gray-40 psui-ml-auto psui-inline-block;
58
87
  font-size: 12px;
59
88
  line-height: 120%;
60
89
  }
61
90
  }
62
-
63
- }
64
- }
65
-
66
- .psui-el-inline-selector-error {
67
- @apply psui-w-full psui-p-3 psui-flex psui-flex-col;
68
-
69
- h3 {
70
- @apply psui-text-red-20
71
- }
72
-
73
- p {
74
- @apply psui-text-gray-50
75
91
  }
76
92
  }
77
93
  }
78
94
  }
79
-
80
95
  }
81
96
  }
@@ -5,10 +5,10 @@
5
5
 
6
6
 
7
7
  div {
8
- @apply psui-w-full;
9
- padding: 3px 8px 3px 8px;
8
+ @apply psui-w-full psui-font-bold;
9
+ padding: 1px 8px 0px 8px;
10
10
  font-size: 10px;
11
-
11
+ letter-spacing: 0.5px;
12
12
  }
13
13
 
14
14
  &-layout{
@@ -50,7 +50,11 @@ export default {
50
50
  },
51
51
  computed: {
52
52
  getComponentClass(){
53
- return `layout-${this.layout} size-${this.size} icon-${this.iconPosition}`
53
+ if(this.icon){
54
+ return `layout-${this.layout} size-${this.size} icon-${this.iconPosition}`
55
+ } else {
56
+ return `layout-${this.layout} size-${this.size}`
57
+ }
54
58
  }
55
59
  },
56
60
  methods: {
@@ -17,7 +17,6 @@
17
17
  >
18
18
  <i v-if="icon" class="psui-el-chips-icon psui-el-chips-icon-prepend">{{ icon }}</i>
19
19
  {{ label }}
20
- {{ layout }}
21
20
  <button
22
21
  @click="onClose"
23
22
  v-if="layout === 'rich'"
@@ -13,7 +13,6 @@
13
13
  <span> {{ search ? search : placeholder }} </span>
14
14
  <input
15
15
  ref="input"
16
- v-model="search"
17
16
  :label="label"
18
17
  :placeholder="placeholder"
19
18
  @input="$emit('input', $event)"
@@ -40,7 +39,7 @@
40
39
  class="psui-el-inline-selector-dropdown-wrapper"
41
40
  >
42
41
  <slot name='loader'></slot>
43
- <div>
42
+ <div class="psui-el-inline-selector-dropdown">
44
43
  <div v-if="requestFetched && !jurisdictions.length">
45
44
  <h3>Hmmmm</h3>
46
45
  <p>Please check the spelling and try again</p>
@@ -79,9 +78,6 @@ export default {
79
78
  shouldScroll: {
80
79
  default: false
81
80
  },
82
- inputClass: {
83
- default: 'text-gray02'
84
- },
85
81
  label: {
86
82
  type: String,
87
83
  default: 'Type a City or County'
@@ -117,19 +113,11 @@ export default {
117
113
  isFocused:{
118
114
  type: Boolean,
119
115
  default: false,
120
- }
121
- },
122
- computed:{
123
- placeholder(){
124
- return this.jurisdictionsAsText && !this.isFocused ? this.jurisdictionsAsText : this.label
125
116
  },
126
- jurisdictionsAsText(){
127
- return this.jurisdictionSelected?.title_type ?? false
117
+ placeholder:{
118
+ type: String,
128
119
  }
129
- },
130
- mounted(){
131
- if(this.focusOnMount) this.$refs.input.focus()
132
- },
120
+ }
133
121
  }
134
122
  </script>
135
123
 
@@ -81,7 +81,7 @@ export default {
81
81
  }
82
82
  </script>
83
83
 
84
- <style>
84
+ <style scoped>
85
85
  .slider {
86
86
  width: 100%;
87
87
  -webkit-appearance: none;
@@ -179,7 +179,7 @@ export default {
179
179
  }
180
180
  </script>
181
181
 
182
- <style>
182
+ <style scoped>
183
183
 
184
184
  .background-temporary {
185
185
  width: 300px;
@@ -13,7 +13,7 @@
13
13
  @click="selectTab(item)"
14
14
  :class="getButtonClass(item)"
15
15
  >
16
- <PsRichTooltip v-if="item.tooltip" :title="item.tooltip" type="blue">
16
+ <PsRichTooltip v-if="item.tooltip" :title="item.tooltip" layout="blue">
17
17
  <template v-slot:trigger>
18
18
  <span>{{ item[keyLabel] }}</span>
19
19
  </template>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div class="psui-el-dotloader">
3
+ <div class="psui-el-dotloader-wrapper">
4
+ <span></span>
5
+ <span></span>
6
+ <span></span>
7
+ </div>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ name: 'PsDotLoader',
14
+ }
15
+ </script>
package/src/index.js CHANGED
@@ -14,6 +14,7 @@ import PsChips from './components/chips/PsChips.vue'
14
14
  import PsDataTable from './components/datatable/PsDataTable.vue'
15
15
  import PsDataTableItem from './components/datatable/PsDataTableItem.vue'
16
16
  import PsIcon from './components/ui/PsIcon.vue'
17
+ import PsDotLoader from './components/ui/PsDotLoader.vue'
17
18
  import PsTooltip from './components/tooltip/PsTooltip.vue'
18
19
  import PsRichTooltip from './components/tooltip/PsRichTooltip.vue'
19
20
  import PsDialogTooltip from './components/tooltip/PsDialogTooltip.vue'
@@ -42,6 +43,7 @@ export default {
42
43
  Vue.component('PsDataTable', PsDataTable)
43
44
  Vue.component('PsDataTableItem', PsDataTableItem)
44
45
  Vue.component('PsIcon', PsIcon)
46
+ Vue.component('PsDotLoader', PsDotLoader)
45
47
  Vue.component('PsTooltip', PsTooltip)
46
48
  Vue.component('PsRichTooltip', PsRichTooltip)
47
49
  Vue.component('PsDialogTooltip', PsDialogTooltip)
@@ -57,19 +59,21 @@ export default {
57
59
  export {
58
60
  PsButton,
59
61
  PsCheckbox,
60
- PsDialog,
61
- PsToast,
62
- PsTabHeader,
63
62
  PsRadioButton,
64
63
  PsSlider,
65
64
  PsSwitch,
66
- PsInput,
67
65
  PsToggle,
66
+ PsInput,
67
+ PsDialog,
68
+ PsToast,
69
+ PsTabHeader,
68
70
  PsAccordion,
69
71
  PsAccordionItem,
70
72
  PsChips,
71
73
  PsDataTable,
72
74
  PsDataTableItem,
75
+ PsIcon,
76
+ PsDotLoader,
73
77
  PsTooltip,
74
78
  PsRichTooltip,
75
79
  PsDialogTooltip,
@@ -78,5 +82,5 @@ export {
78
82
  PsChartLegend,
79
83
  PsInlineSelector,
80
84
  PsInputTextArea,
81
- PsInputSelect
85
+ PsInputSelect,
82
86
  }
@@ -54,6 +54,7 @@ Out colors are designed to be harmonious, ensure accessible text, and distinguis
54
54
  <div class="psui-cursor-pointer psui-p-2 psui-h-24 psui-w-32 psui-text-white psui-bg-red-80 click-to-copy" data-to-copy="psui-bg-red-80">Red 80 <div>#832F2E</div></div>
55
55
  <div class="psui-cursor-pointer psui-p-2 psui-h-24 psui-w-32 psui-text-white psui-bg-red-70 click-to-copy" data-to-copy="psui-bg-red-70">Red 70 <div>#AA3937</div></div>
56
56
  <div class="psui-cursor-pointer psui-p-2 psui-h-24 psui-w-32 psui-text-white psui-bg-red-20 click-to-copy" data-to-copy="psui-bg-red-20">Red 20 <div>#D65C5A</div></div>
57
+ <div class="psui-cursor-pointer psui-p-2 psui-h-24 psui-w-32 psui-text-red-20 psui-bg-red-15 click-to-copy" data-to-copy="psui-bg-red-15">Red 15 <div>#EAC5C5</div></div>
57
58
  <div class="psui-cursor-pointer psui-p-2 psui-h-24 psui-w-32 psui-text-red-20 psui-bg-red-10 click-to-copy" data-to-copy="psui-bg-red-10">Red 10 <div>#FCEBEB</div></div>
58
59
  </div>
59
60
 
@@ -33,6 +33,7 @@ module.exports = {
33
33
  'yellow-80': '#834C0D',
34
34
 
35
35
  'red-10': '#FCEBEB',
36
+ 'red-15': '#EAC5C5',
36
37
  'red-20': '#D65C5A',
37
38
  'red-70': '#AA3937',
38
39
  'red-80': '#832F2E',