@policystudio/policy-studio-ui-vue 1.0.22 → 1.0.23

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.
@@ -1,15 +1,12 @@
1
1
  <template>
2
- <div class="toView psui-flex psui-flex-row psui-p-8 psui-rounded">
3
- <div class="container psui-p-2 psui-rounded">
4
- <div class="psui-flex">
5
- <div class="dot"></div>
6
- <div class="text">{{ text }}</div>
7
- </div>
8
- <div class="container1">
9
- <span v-if="this.value" :class="isValue">{{ value }}</span>
10
- <span :class="isBar"></span>
11
- <span :class="isPercentage">{{ percentage }}</span>
12
- </div>
2
+ <div class="psui-flex psui-p-2 psui-rounded">
3
+ <div class="psui-flex psui-flex-shrink-0">
4
+ <div :class="dotClass" class="dot psui-rounded-full" :style="dotColor"></div>
5
+ </div>
6
+ <div class="psui-flex-grow-1">
7
+ <div class="psui-text-xsmall psui-text-gray-50 psui-font-bold psui-mb-1">{{ text }}</div>
8
+ <span v-if="this.total" class="psui-text-p psui-text-gray-80">{{ total }}</span>
9
+ <span class="psui-text-gray-50" v-if="percentage"><span class="psui-text-gray-30" v-if="total && percentage"> | </span>{{ percentage }}%</span>
13
10
  </div>
14
11
  </div>
15
12
  </template>
@@ -21,108 +18,26 @@ export default {
21
18
  type: String,
22
19
  default: 'Climate Zone 10',
23
20
  },
24
- value: {
21
+ total: {
25
22
  type: Number,
26
- // required: true,
27
23
  default: null,
28
24
  },
29
25
  percentage: {
30
- type: String,
31
- // required: true,
32
- default: '',
33
- },
34
- },
35
- computed: {
36
- isValue() {
37
- if (this.value) {
38
- return 'value'
39
- } else {
40
- return 'hide'
41
- }
26
+ type: Boolean,
27
+ default: false,
42
28
  },
43
- isPercentage() {
44
- if (this.percentage) {
45
- return 'percentage'
46
- } else {
47
- return 'hide'
48
- }
49
- },
50
- isBar() {
51
- if (this.value !== 0 && this.percentage !== '') {
52
- return 'bar'
53
- } else {
54
- return 'hide'
55
- }
29
+ dotColor: {
30
+ type: String,
31
+ default: ''
56
32
  },
57
33
  },
58
34
  }
59
35
  </script>
60
36
 
61
37
  <style scoped>
62
- .toView {
63
- /* display: flex; */
64
- /* flex-direction: row; */
65
- /* padding: 32px; */
66
-
67
- width: 351px;
68
- height: 119px;
69
-
70
- background: #f3ebfa;
71
- border: 1.5px dashed #7b61ff;
72
- /* border-radius: 5px; */
73
- }
74
-
75
- .container {
76
- /* padding: 8px; */
77
-
78
- width: fit-content;
79
- height: fit-content;
80
-
81
- background: #ffffff;
82
- /* border-radius: 4px; */
83
-
84
- /* margin: 0px 32px; */
85
- }
86
-
87
- .hide {
88
- display: none;
89
- }
90
-
91
38
  .dot {
92
- width: 14px;
93
- height: 14px;
94
- background: #43cec2;
95
- border-radius: 8px;
96
- margin: 0px 6px 0px 0px;
97
- }
98
-
99
- .text {
100
- font-weight: bold;
101
- font-size: 12px;
102
- line-height: 120%;
103
-
104
- color: #798490;
105
- }
106
-
107
- .container1 {
108
- margin: 0px 0px 0px 20px;
109
- }
110
-
111
- .value {
112
- color: #28323b;
113
- }
114
-
115
- .percentage {
116
- color: #798490;
117
- }
118
-
119
- .bar {
120
- background-color: #d6dde5;
121
- height: 14px;
122
-
123
- border-radius: 2px;
124
-
125
- padding: 0px 1px;
126
- margin-right: 3px;
39
+ width: 14px; height: 14px;
40
+ background-color: #43cec2;
41
+ margin-right: 6px;
127
42
  }
128
43
  </style>
@@ -1,129 +1,77 @@
1
1
  <template>
2
2
  <button
3
- class="psui-font-bold psui-items-center psui-flex psui-rounded-md"
4
- :class="classes"
5
- @click="onClick()"
6
- >
7
- <i
8
- v-if="icon"
9
- :class="['psui-mr-2', iconClasses]"
10
- >
11
- {{ icon }}
12
- </i>
13
- <span
14
- v-if="label"
15
- class="psui-flex-grow psui-text-left"
16
- >{{ label }}
17
- </span>
18
- <i
19
- v-if="iconRight"
20
- :class="['psui-ml-2', iconClasses]"
21
- >
22
- {{ iconRight }}
23
- </i>
3
+ @click="onClick()"
4
+ @mouseenter="onMouseEnter"
5
+ @mouseleave="onMouseLeave"
6
+ class='psui-el-button'
7
+ :class="[getComponentClass, {'hover': isHover}, {'active': isActive}, {'disabled': disabled}]"
8
+ >
9
+ <i v-if="icon" :class='iconClass' class='material-icons-round'> {{icon}} </i>
10
+ <span v-if="label" >{{ label }} </span>
24
11
  </button>
25
12
  </template>
26
13
 
27
14
  <script>
28
- export const sizes = ['big', 'medium', 'small']
29
15
  export default {
30
16
  props: {
31
17
  label: {
32
18
  type: String,
33
19
  },
34
- outline: {
35
- type: Boolean,
36
- default: false
37
- },
38
- ghost: {
39
- type: Boolean,
40
- default: false
41
- },
42
- textOnly: {
43
- type: Boolean,
44
- default: false
20
+ layout: {
21
+ type: String,
22
+ required: true,
23
+ default: 'solid',
24
+ validator: (value) => ['solid','outline','ghost','onlytext'].includes(value)
45
25
  },
46
26
  icon: {
47
27
  type: String,
48
28
  },
49
- iconRight: {
29
+ iconPosition:{
50
30
  type: String,
31
+ default: 'right',
32
+ validator: (value) => ['left','right'].includes(value)
51
33
  },
52
34
  size: {
53
35
  type: String,
54
36
  default: 'big',
55
- validator: (value) => sizes.indexOf(value) !== -1
37
+ validator: (value) => ['small','medium','big'].includes(value)
56
38
  },
57
39
  disabled: {
58
- type: [Boolean, String]
59
- },
60
- 'text-color': {
61
- type: String,
62
- default: ''
63
- },
64
- 'icon-color': {
65
- type: String,
66
- default: ''
40
+ type: Boolean,
41
+ default: false
67
42
  },
68
- color: {
69
- type: String,
70
- default: ''
43
+ iconClass:{
44
+ type: String
45
+ }
46
+ },
47
+ data(){
48
+ return {
49
+ isHover: false,
50
+ isActive: false,
71
51
  }
72
52
  },
73
53
  computed: {
74
- iconClasses() {
75
- const size = this.size === 'small' ? 'psui-text-small' : this.size === 'medium' ? 'psui-text-small' : 'psui-text-big'
76
- const color = this.iconColor.length > 0 ? `psui-text-${this.iconColor}` : ''
77
- return `psui-my-auto material-icons ${size} ${color}`
78
- },
79
- classes() {
80
- let sizeCss = ''
81
-
82
- if (this.size === 'medium') sizeCss = 'medium'
83
- if (this.size === 'small') sizeCss = 'small'
84
- if (this.size === 'big') sizeCss = 'big'
85
-
86
- if (this.outline) return `${sizeCss} psui-bg-white psui-border ${this.disabled ? 'psui-border-gray-40 psui-text-gray-40 psui-cursor-default' : 'psui-border-blue-60 psui-text-blue-60'}`
87
- if (this.ghost) return `${sizeCss} ${this.disabled ? 'psui-bg-gray-20 psui-text-gray-40 psui-cursor-default' : 'psui-bg-blue-20 psui-text-blue-60 active:psui-shadow-inner'}`
88
- if (this.textOnly) {
89
- const hasTextColor = this.textColor.length > 0
90
- const color = hasTextColor ? this.textColor.split('hover:')[0] : ''
91
- const hover = hasTextColor ? this.textColor.split('hover:')[1] : ''
92
-
93
- let textCss = 'psui-text-blue-50 hover:psui-text-blue-60'
94
- if (this.disabled) textCss = 'psui-text-gray-40 psui-cursor-default'
95
-
96
- if (hasTextColor) textCss = `psui-text-${color}`
97
- if (hover) textCss += `hover:psui-text-${hover}`
98
-
99
- return `${sizeCss} ${textCss}`
100
- }
101
- if (this.disabled) return `${sizeCss} psui-bg-gray-20 psui-text-gray-40 psui-cursor-default`
102
- return `${sizeCss} psui-bg-blue-60 hover:psui-bg-blue-50 psui-text-white active:psui-shadow-inner psui-cursor-pointer`
103
- }
54
+ getComponentClass(){
55
+ return `layout-${this.layout} ${this.size} ${this.iconPosition}`
56
+ }
104
57
  },
105
58
  methods: {
106
59
  onClick() {
107
- if (this.disabled) return false
60
+ if (this.disabled) return
61
+ this.isActive = true,
108
62
  this.$emit('click')
63
+ },
64
+ onMouseEnter(){
65
+ if(!this.disabled){
66
+ this.isHover = true
67
+ }
68
+ },
69
+ onMouseLeave(){
70
+ if(!this.disabled){
71
+ this.isHover = false
72
+ }
109
73
  }
110
74
  }
111
75
  }
112
76
  </script>
113
77
 
114
- <style scoped>
115
- .small {
116
- padding: 4px 8px 4px 8px;
117
- font-size: 14px;
118
- }
119
-
120
- .medium{
121
- padding: 7px 16px 7px 16px;
122
- font-size: 14px;
123
- }
124
-
125
- .big{
126
- padding: 9.5px 16px 9.5px 16px;
127
- font-size: 16px;
128
- }
129
- </style>
@@ -32,7 +32,7 @@ export default {
32
32
  }
33
33
  </script>
34
34
 
35
- <style>
35
+ <style scoped>
36
36
  .wrapper {
37
37
  padding: 2px;
38
38
  }
@@ -25,7 +25,7 @@
25
25
  @keydown="$emit('keydown', $event)"
26
26
  @change="$emit('change', $event)"
27
27
  v-bind="getAttrs"
28
- :class="getInputClasses"
28
+ :class="{ 'focus': isFocus }"
29
29
  />
30
30
 
31
31
  <div v-if="$slots.append || hasError" class="psui-el-input-append">
@@ -10,7 +10,7 @@
10
10
  </div>
11
11
  <div class="psui-flex psui-gap-3">
12
12
  <slot v-if="layout === 'horizontal'" name="action"></slot>
13
- <button @click="onClose" class="psui-w-4 psui-h-4 focus:psui-outline-none">
13
+ <button @click="onClose" class="psui-w-4 psui-h-4 focus:psui-outline-none hover:opacity-70 transition-default">
14
14
  <i class="material-icons-round">close</i>
15
15
  </button>
16
16
  </div>
@@ -6,9 +6,10 @@
6
6
  :key="item[keyValue]"
7
7
  @click="selectTab(item)"
8
8
  :class="[
9
+ 'transition-default',
9
10
  classes,
10
11
  { 'psui-bg-blue-60 psui-text-white': getSelected === item[keyValue] && theme === 'standard' },
11
- { 'psui-border-b-2 psui-border-blue-60 psui-text-blue-60 psui-font-bold': getSelected === item[keyValue] && theme === 'underline' },
12
+ { 'psui-border-blue-60 psui-text-blue-60': getSelected === item[keyValue] && theme === 'underline' },
12
13
  { 'psui-text-blue-60 psui-font-bold psui-bg-white hover:psui-text-blue-60': getSelected === item[keyValue] && theme === 'folder' }
13
14
  ]"
14
15
  >
@@ -53,7 +54,7 @@ export default {
53
54
  },
54
55
  classes() {
55
56
  if (this.theme === 'underline') {
56
- return 'psui-text-gray-60 psui-pb-3 hover:psui-text-blue-60'
57
+ return 'psui-text-gray-60 psui-pb-3 psui-text-small psui-border-b-2 psui-border-transparent psui-font-bold hover:psui-text-blue-60'
57
58
  }
58
59
  if (this.theme === 'folder') {
59
60
  return 'psui-bg-gray-10 psui-text-gray-50 psui-py-2 psui-px-4 psui-rounded-t-lg hover:psui-text-gray-60 active:psui-text-blue-60'
package/src/index.js CHANGED
@@ -18,6 +18,8 @@ import PsTooltip from './components/tooltip/PsTooltip.vue'
18
18
  import PsRichTooltip from './components/tooltip/PsRichTooltip.vue'
19
19
  import PsDialogTooltip from './components/tooltip/PsDialogTooltip.vue'
20
20
  import PsDraggable from './components/controls/PsDraggable.vue'
21
+ // import PsCardInfos from './components/badges-and-tags/PsCardInfos.vue'
22
+ import PsChartLegend from './components/badges-and-tags/PsChartLegend.vue'
21
23
 
22
24
  export default {
23
25
  install(Vue) {
@@ -41,6 +43,8 @@ export default {
41
43
  Vue.component('PsRichTooltip', PsRichTooltip)
42
44
  Vue.component('PsDialogTooltip', PsDialogTooltip)
43
45
  Vue.component('PsDraggable', PsDraggable)
46
+ // Vue.component('PsCardInfos', PsCardInfos)
47
+ Vue.component('PsChartLegend', PsChartLegend)
44
48
  },
45
49
  }
46
50
 
@@ -64,4 +68,6 @@ export {
64
68
  PsRichTooltip,
65
69
  PsDialogTooltip,
66
70
  PsDraggable,
71
+ // PsCardInfos,
72
+ PsChartLegend,
67
73
  }
@@ -18,24 +18,78 @@ export default {
18
18
  },
19
19
  }
20
20
 
21
- export const AccordionItem = (args, { argTypes }) => ({
22
- props: Object.keys(argTypes, args),
23
- components: { PsAccordionItem },
24
- template: `
25
- <PsAccordionItem v-bind="$props" style='width:400px'>
26
- <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
27
- </PsAccordionItem>
28
- `,
29
- })
30
- AccordionItem.parameters = {
31
- controls: {
32
- include: ['title', 'iconType', 'fontCss'],
33
- },
34
- }
35
21
 
36
- export const Accordion = (args, { argTypes }) => ({
22
+ export const Index = (args, { argTypes }) => ({
37
23
  props: Object.keys(argTypes, args),
38
24
  components: { PsAccordion, PsAccordionItem },
39
25
  template:
40
- '<PsAccordion v-bind="$props"><PsAccordionItem v-bind="$props"><p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p></PsAccordionItem><PsAccordionItem v-bind="$props"/></PsAccordion>',
26
+ `<div class="psui-p-8 psui-bg-gray-10 psui-grid psui-grid-cols-2 psui-gap-6">
27
+
28
+ <div>
29
+ <div class="psui-my-4">
30
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">Accordion Big</h1>
31
+ </div>
32
+ <PsAccordion layout="big" class="psui-bg-white">
33
+ <PsAccordionItem title="Header 01">
34
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
35
+ </PsAccordionItem>
36
+ <PsAccordionItem title="Header 02">
37
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
38
+ </PsAccordionItem>
39
+ <PsAccordionItem title="Header 03">
40
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
41
+ </PsAccordionItem>
42
+ </PsAccordion>
43
+ </div>
44
+
45
+ <div>
46
+ <div class="psui-my-4">
47
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">Accordion Medium</h1>
48
+ </div>
49
+ <PsAccordion layout="medium" class="psui-bg-white">
50
+ <PsAccordionItem title="Header 01">
51
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
52
+ </PsAccordionItem>
53
+ <PsAccordionItem title="Header 02" :opened="false">
54
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
55
+ </PsAccordionItem>
56
+ <PsAccordionItem title="Header 03">
57
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
58
+ </PsAccordionItem>
59
+ </PsAccordion>
60
+ </div>
61
+
62
+ <div>
63
+ <div class="psui-my-4">
64
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">Variations</h1>
65
+ </div>
66
+ <PsAccordion layout="medium" class="psui-bg-white" iconOpened="thumb_down" iconClosed="thumb_up">
67
+ <PsAccordionItem title="Custom Icon">
68
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
69
+ </PsAccordionItem>
70
+ <PsAccordionItem title="Initial Content Opened" :opened="true">
71
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
72
+ </PsAccordionItem>
73
+ </PsAccordion>
74
+ </div>
75
+
76
+ <div>
77
+ <div class="psui-my-4">
78
+ <h1 class="psui-font-bold psui-border-b psui-border-gray-30">Custom Icons By Accordion Item</h1>
79
+ </div>
80
+ <PsAccordion layout="medium" class="psui-bg-white">
81
+ <PsAccordionItem title="Custom Icon" iconOpened="thumb_down" iconClosed="thumb_up">
82
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
83
+ </PsAccordionItem>
84
+ <PsAccordionItem title="Initial Content Opened" :opened="true">
85
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
86
+ </PsAccordionItem>
87
+ <PsAccordionItem title="Initial Content Opened" iconOpened="visibility_off" iconClosed="visibility_on">
88
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, illum.</p>
89
+ </PsAccordionItem>
90
+ </PsAccordion>
91
+ </div>
92
+
93
+ </div>
94
+ `,
41
95
  })
@@ -11,44 +11,92 @@ export default {
11
11
  },
12
12
  }
13
13
 
14
- const Template = (args, { argTypes }) => ({
14
+ const TemplateDefault = (args, {argTypes}) => ({
15
15
  props: Object.keys(argTypes),
16
16
  components: { PsButton },
17
17
  template: `
18
- <PsButton v-bind="$props" />
18
+ <div style="display:flex; flex-direction: column;">
19
+ <p>Size: Big</p>
20
+ <div style="display: flex; flex-direction: column; gap: 10px;">
21
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
22
+ <span style="text-align: center; color: red;">Solid Style</span>
23
+ <PsButton label='Left Icon' layout='solid' icon='verified' iconPosition='left'/>
24
+ <PsButton label='Right Icon' layout='solid' icon='verified' iconPosition='right'/>
25
+ <PsButton label='Text Only' layout='solid' />
26
+ <PsButton label='Disabled' layout='solid' icon='verified' iconPosition='left' disabled/>
27
+ </div>
28
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
29
+ <span style="text-align: center; color: blue;">Outline Style</span>
30
+ <PsButton label='Left Icon' layout='outline' icon='verified' iconPosition='left'/>
31
+ <PsButton label='Right Icon' layout='outline' icon='verified' iconPosition='right'/>
32
+ <PsButton label='Text Only' layout='outline'/>
33
+ <PsButton label='Disabled' layout='outline' icon='verified' iconPosition='left' disabled/>
34
+ </div>
35
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
36
+ <span style="text-align: center; color: brown;">Ghost Style</span>
37
+ <PsButton label='Left Icon' layout='ghost' icon='verified' iconPosition='left'/>
38
+ <PsButton label='Right Icon' layout='ghost' icon='verified' iconPosition='right'/>
39
+ <PsButton label='Text Only' layout='ghost' />
40
+ <PsButton label='Disabled' layout='ghost' icon='verified' iconPosition='left' disabled/>
41
+ </div>
42
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
43
+ <span style="text-align: center; color: green;">Only-Text Style</span>
44
+ <PsButton label='Left Icon' layout='onlytext' icon='verified' iconPosition='left'/>
45
+ <PsButton label='Right Icon' layout='onlytext' icon='verified' iconPosition='right'/>
46
+ <PsButton label='Text Only' layout='onlytext'/>
47
+ <PsButton label='Disabled' layout='onlytext' icon='verified' iconPosition='left' disabled/>
48
+ </div>
49
+ </div>
50
+ <p>Size: Medium</p>
51
+ <div style="display: flex; flex-direction: column; gap: 10px;">
52
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
53
+ <span style="text-align: center; color: red;">Solid Style</span>
54
+ <PsButton label='Left Icon' layout='solid' icon='verified' iconPosition='left' size='medium'/>
55
+ <PsButton label='Right Icon' layout='solid' icon='verified' iconPosition='right' size='medium'/>
56
+ <PsButton label='Text Only' layout='solid' size='medium'/>
57
+ <PsButton label='Disabled' layout='solid' icon='verified' iconPosition='left' disabled size='medium'/>
58
+ </div>
59
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
60
+ <span style="text-align: center; color: blue;">Outline Style</span>
61
+ <PsButton label='Left Icon' layout='outline' icon='verified' iconPosition='left' size='medium'/>
62
+ <PsButton label='Right Icon' layout='outline' icon='verified' iconPosition='right' size='medium'/>
63
+ <PsButton label='Text Only' layout='outline' size='medium'/>
64
+ <PsButton label='Disabled' layout='outline' icon='verified' iconPosition='left' disabled size='medium'/>
65
+ </div>
66
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
67
+ <span style="text-align: center; color: brown;">Ghost Style</span>
68
+ <PsButton label='Left Icon' layout='ghost' icon='verified' iconPosition='left' size='medium'/>
69
+ <PsButton label='Right Icon' layout='ghost' icon='verified' iconPosition='right' size='medium'/>
70
+ <PsButton label='Text Only' layout='ghost' size='medium'/>
71
+ <PsButton label='Disabled' layout='ghost' icon='verified' iconPosition='left' disabled size='medium'/>
72
+ </div>
73
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
74
+ <span style="text-align: center; color: green;">Only-Text Style</span>
75
+ <PsButton label='Left Icon' layout='onlytext' icon='verified' iconPosition='left' size='medium'/>
76
+ <PsButton label='Right Icon' layout='onlytext' icon='verified' iconPosition='right' size='medium'/>
77
+ <PsButton label='Text Only' layout='onlytext' size='medium'/>
78
+ <PsButton label='Disabled' layout='onlytext' disabled icon='verified' iconPosition='left'size='medium'/>
79
+ </div>
80
+ </div>
81
+ <p>Size: Small</p>
82
+ <div style="display: flex; flex-direction: column; gap: 10px;">
83
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
84
+ <span style="text-align: center; color: red;">Solid Style</span>
85
+ <PsButton label='Left Icon' layout='solid' icon='verified' iconPosition='left' size='small'/>
86
+ <PsButton label='Right Icon' layout='solid' icon='verified' iconPosition='right' size='small'/>
87
+ <PsButton label='Text Only' layout='solid' size='small'/>
88
+ <PsButton label='Disabled' layout='solid' icon='verified' iconPosition='left' disabled size='small'/>
89
+ </div>
90
+ <div style="display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; justify-items: center; align-items: center;" >
91
+ <span style="text-align: center; color: green;">Only-Text Style</span>
92
+ <PsButton label='Left Icon' layout='onlytext' icon='verified' iconPosition='left' size='small'/>
93
+ <PsButton label='Right Icon' layout='onlytext' icon='verified' iconPosition='right' size='small'/>
94
+ <PsButton label='Text Only' layout='onlytext' size='small'/>
95
+ <PsButton label='Disabled' layout='onlytext' disabled icon='verified' iconPosition='left'size='small'/>
96
+ </div>
97
+ </div>
98
+ </div>
19
99
  `
20
100
  })
21
101
 
22
- export const Solid = Template.bind({})
23
- Solid.args = {
24
- label: 'Solid button',
25
- size: 'big',
26
- disabled: false,
27
- iconRight: 'add_circle'
28
- }
29
-
30
- export const Outline = Template.bind({})
31
- Outline.args = {
32
- label: 'Outline button',
33
- size: 'big',
34
- disabled: false,
35
- icon: 'add_circle',
36
- outline: true
37
- }
38
-
39
- export const Ghost = Template.bind({})
40
- Ghost.args = {
41
- label: 'Ghost button',
42
- size: 'big',
43
- disabled: false,
44
- ghost: true
45
- }
46
-
47
- export const TextOnly = Template.bind({})
48
- TextOnly.args = {
49
- label: 'TextOnly button',
50
- disabled: false,
51
- icon: 'add_circle',
52
- size: 'big',
53
- textOnly: true,
54
- }
102
+ export const Default = TemplateDefault.bind({})
@@ -0,0 +1,16 @@
1
+ import PsCardInfos from '../components/badges-and-tags/PsCardInfos.vue'
2
+
3
+ export default {
4
+ title: 'Components/CardInfos',
5
+ component: PsCardInfos,
6
+ argTypes: {},
7
+ };
8
+
9
+ const Template = (args, { argTypes }) => ({
10
+ props: Object.keys(argTypes),
11
+ components: { PsCardInfos },
12
+ template: '<PsCardInfos v-bind="$props" />',
13
+ });
14
+
15
+ export const CardInfos = Template.bind({})
16
+ CardInfos.args = {}