@policystudio/policy-studio-ui-vue 1.1.90-beta.12 → 1.1.90-beta.18

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 (231) hide show
  1. package/.eslintrc.js +2 -1
  2. package/.github/workflows/deploy-storybook.yml +4 -4
  3. package/.nvmrc +1 -0
  4. package/dist/css/psui_styles_output.css +6986 -0
  5. package/dist/index.d.ts +50 -0
  6. package/dist/index.js +53 -63
  7. package/dist/index.js.map +1 -1
  8. package/dist/util/GeneralFunctions.d.ts +3 -0
  9. package/dist/util/GeneralFunctions.js.map +1 -1
  10. package/dist/util/directives.d.ts +1 -0
  11. package/dist/util/directives.js +22 -0
  12. package/dist/util/directives.js.map +1 -0
  13. package/dist/util/eventBus.d.ts +7 -0
  14. package/dist/util/eventBus.js +8 -0
  15. package/dist/util/eventBus.js.map +1 -0
  16. package/dist/util/imageLoader.d.ts +6 -0
  17. package/dist/util/imageLoader.js.map +1 -1
  18. package/package.json +9 -23
  19. package/src/assets/scss/components/PsDataTable.scss +1 -1
  20. package/src/components/accordion/PsAccordionItem.vue +75 -75
  21. package/src/components/badges-and-tags/PsBadgeWithIcon.vue +31 -34
  22. package/src/components/badges-and-tags/PsCardInfos.vue +40 -41
  23. package/src/components/badges-and-tags/PsChartLegend.vue +47 -51
  24. package/src/components/badges-and-tags/PsClimateZoneBadge.vue +14 -19
  25. package/src/components/badges-and-tags/PsCostEffectBar.vue +24 -56
  26. package/src/components/badges-and-tags/PsDateCardInfo.vue +17 -18
  27. package/src/components/badges-and-tags/PsHighlightRippleDot.vue +3 -2
  28. package/src/components/badges-and-tags/PsMiniTag.vue +39 -41
  29. package/src/components/badges-and-tags/PsProgressBar.vue +72 -68
  30. package/src/components/badges-and-tags/PsTagScope.vue +17 -22
  31. package/src/components/badges-and-tags/PsTestimonialCard.vue +20 -26
  32. package/src/components/buttons/PsButton.vue +61 -62
  33. package/src/components/chips/PsChips.vue +98 -101
  34. package/src/components/controls/PsCheckbox.vue +84 -84
  35. package/src/components/controls/PsCheckboxSimple.vue +95 -95
  36. package/src/components/controls/PsDraggable.vue +53 -55
  37. package/src/components/controls/PsInlineSelector.vue +99 -99
  38. package/src/components/controls/PsRadioButton.vue +59 -58
  39. package/src/components/controls/PsRadioButtonSimple.vue +79 -75
  40. package/src/components/controls/PsSlider.vue +185 -176
  41. package/src/components/controls/PsSwitch.vue +51 -52
  42. package/src/components/controls/PsToggle.vue +53 -50
  43. package/src/components/data-graphics/PsBarChart.vue +19 -21
  44. package/src/components/datatable/PsDataTable.vue +56 -60
  45. package/src/components/datatable/PsDataTableItem.vue +14 -28
  46. package/src/components/forms/PsDropdown.vue +164 -162
  47. package/src/components/forms/PsDropdownList.vue +132 -129
  48. package/src/components/forms/PsInput.vue +155 -153
  49. package/src/components/forms/PsInputSelect.vue +91 -92
  50. package/src/components/forms/PsInputTextArea.vue +71 -71
  51. package/src/components/navigations/PsBreadcrumb.vue +26 -34
  52. package/src/components/notifications/PsDialog.vue +57 -56
  53. package/src/components/notifications/PsSimpleAlert.vue +28 -29
  54. package/src/components/notifications/PsToast.vue +40 -39
  55. package/src/components/table-results/PsTableResults.vue +452 -458
  56. package/src/components/table-results/PsTableResultsBody.vue +66 -67
  57. package/src/components/table-results/PsTableResultsHead.vue +62 -56
  58. package/src/components/table-results/PsTableResultsHeadComparison.vue +62 -56
  59. package/src/components/table-results/PsTableResultsHeadFlexible.vue +63 -56
  60. package/src/components/table-results/PsTableResultsRow.vue +55 -56
  61. package/src/components/tabs/PsTabHeader.vue +106 -100
  62. package/src/components/tooltip/PsDialogTooltip.vue +96 -101
  63. package/src/components/tooltip/PsRichTooltip.vue +42 -45
  64. package/src/components/tooltip/PsTooltip.vue +111 -116
  65. package/src/components/ui/PsDotLoader.vue +1 -5
  66. package/src/components/ui/PsIcon.vue +126 -129
  67. package/src/index.ts +57 -71
  68. package/src/tsconfig.json +12 -0
  69. package/src/{shims-vue.d.ts → types/index.d.ts} +0 -5
  70. package/src/util/{GeneralFunctions.ts → GeneralFunctions.js} +0 -3
  71. package/src/util/directives.ts +24 -0
  72. package/src/util/eventBus.js +10 -0
  73. package/src/util/{imageLoader.ts → imageLoader.js} +7 -8
  74. package/tailwind.config.js +1 -1
  75. package/tsconfig.json +15 -17
  76. package/.storybook/PolicyStudio.ts +0 -11
  77. package/.storybook/eventBus.ts +0 -26
  78. package/.storybook/main.ts +0 -21
  79. package/.storybook/manager.ts +0 -7
  80. package/.storybook/preview.ts +0 -17
  81. package/dist/contents/ComparisonData.js +0 -376
  82. package/dist/contents/ComparisonData.js.map +0 -1
  83. package/dist/contents/FlexibleData.js +0 -501
  84. package/dist/contents/FlexibleData.js.map +0 -1
  85. package/dist/contents/ResultsData.js +0 -530
  86. package/dist/contents/ResultsData.js.map +0 -1
  87. package/dist/css/psui_styles.css +0 -4647
  88. package/dist/stories/Accordion.stories.js +0 -56
  89. package/dist/stories/Accordion.stories.js.map +0 -1
  90. package/dist/stories/BadgeWithIcon.stories.js +0 -28
  91. package/dist/stories/BadgeWithIcon.stories.js.map +0 -1
  92. package/dist/stories/BarChart.stories.js +0 -16
  93. package/dist/stories/BarChart.stories.js.map +0 -1
  94. package/dist/stories/Breadcrumb.stories.js +0 -21
  95. package/dist/stories/Breadcrumb.stories.js.map +0 -1
  96. package/dist/stories/Button.stories.js +0 -44
  97. package/dist/stories/Button.stories.js.map +0 -1
  98. package/dist/stories/CardInfos.stories.js +0 -13
  99. package/dist/stories/CardInfos.stories.js.map +0 -1
  100. package/dist/stories/ChartLegend.stories.js +0 -13
  101. package/dist/stories/ChartLegend.stories.js.map +0 -1
  102. package/dist/stories/Checkbox.stories.js +0 -44
  103. package/dist/stories/Checkbox.stories.js.map +0 -1
  104. package/dist/stories/CheckboxSimple.stories.js +0 -48
  105. package/dist/stories/CheckboxSimple.stories.js.map +0 -1
  106. package/dist/stories/Chips.stories.js +0 -27
  107. package/dist/stories/Chips.stories.js.map +0 -1
  108. package/dist/stories/ClimateZoneBadge.stories.js +0 -15
  109. package/dist/stories/ClimateZoneBadge.stories.js.map +0 -1
  110. package/dist/stories/CostEffectBar.stories.js +0 -21
  111. package/dist/stories/CostEffectBar.stories.js.map +0 -1
  112. package/dist/stories/Datatable.stories.js +0 -45
  113. package/dist/stories/Datatable.stories.js.map +0 -1
  114. package/dist/stories/DateCardInfo.stories.js +0 -18
  115. package/dist/stories/DateCardInfo.stories.js.map +0 -1
  116. package/dist/stories/Dialog.stories.js +0 -127
  117. package/dist/stories/Dialog.stories.js.map +0 -1
  118. package/dist/stories/Draggable.stories.js +0 -20
  119. package/dist/stories/Draggable.stories.js.map +0 -1
  120. package/dist/stories/Dropdown.stories.js +0 -98
  121. package/dist/stories/Dropdown.stories.js.map +0 -1
  122. package/dist/stories/DropdownList.stories.js +0 -208
  123. package/dist/stories/DropdownList.stories.js.map +0 -1
  124. package/dist/stories/Header.stories.js +0 -39
  125. package/dist/stories/Header.stories.js.map +0 -1
  126. package/dist/stories/HighlightRippleDot.stories.js +0 -13
  127. package/dist/stories/HighlightRippleDot.stories.js.map +0 -1
  128. package/dist/stories/Icon.stories.js +0 -19
  129. package/dist/stories/Icon.stories.js.map +0 -1
  130. package/dist/stories/InlineSelector.stories.js +0 -16
  131. package/dist/stories/InlineSelector.stories.js.map +0 -1
  132. package/dist/stories/Input.stories.js +0 -235
  133. package/dist/stories/Input.stories.js.map +0 -1
  134. package/dist/stories/InputSelect.stories.js +0 -28
  135. package/dist/stories/InputSelect.stories.js.map +0 -1
  136. package/dist/stories/InputTextArea.stories.js +0 -23
  137. package/dist/stories/InputTextArea.stories.js.map +0 -1
  138. package/dist/stories/MiniTag.stories.js +0 -44
  139. package/dist/stories/MiniTag.stories.js.map +0 -1
  140. package/dist/stories/Playground.stories.js +0 -14
  141. package/dist/stories/Playground.stories.js.map +0 -1
  142. package/dist/stories/ProgressBar.stories.js +0 -21
  143. package/dist/stories/ProgressBar.stories.js.map +0 -1
  144. package/dist/stories/RadioButton.stories.js +0 -36
  145. package/dist/stories/RadioButton.stories.js.map +0 -1
  146. package/dist/stories/RadioButtonSimple.stories.js +0 -40
  147. package/dist/stories/RadioButtonSimple.stories.js.map +0 -1
  148. package/dist/stories/SimpleAlert.stories.js +0 -19
  149. package/dist/stories/SimpleAlert.stories.js.map +0 -1
  150. package/dist/stories/Slider.stories.js +0 -70
  151. package/dist/stories/Slider.stories.js.map +0 -1
  152. package/dist/stories/Switch.stories.js +0 -35
  153. package/dist/stories/Switch.stories.js.map +0 -1
  154. package/dist/stories/TabHeader.stories.js +0 -48
  155. package/dist/stories/TabHeader.stories.js.map +0 -1
  156. package/dist/stories/TableResults.stories.js +0 -717
  157. package/dist/stories/TableResults.stories.js.map +0 -1
  158. package/dist/stories/TagScope.stories.js +0 -16
  159. package/dist/stories/TagScope.stories.js.map +0 -1
  160. package/dist/stories/TestimonialCard.stories.js +0 -24
  161. package/dist/stories/TestimonialCard.stories.js.map +0 -1
  162. package/dist/stories/Toast.stories.js +0 -51
  163. package/dist/stories/Toast.stories.js.map +0 -1
  164. package/dist/stories/Toggle.stories.js +0 -42
  165. package/dist/stories/Toggle.stories.js.map +0 -1
  166. package/dist/stories/Tooltip.stories.js +0 -108
  167. package/dist/stories/Tooltip.stories.js.map +0 -1
  168. package/postcss.config.js +0 -8
  169. package/src/assets/images/multifamily-units.svg +0 -10
  170. package/src/assets/images/policy-studio.svg +0 -15
  171. package/src/components/playground/PsScrollBar.vue +0 -320
  172. package/src/contents/ComparisonData.ts +0 -378
  173. package/src/contents/FlexibleData.ts +0 -502
  174. package/src/contents/ResultsData.ts +0 -531
  175. package/src/stories/Accordion.stories.ts +0 -59
  176. package/src/stories/BadgeWithIcon.stories.ts +0 -31
  177. package/src/stories/BarChart.stories.ts +0 -17
  178. package/src/stories/Breadcrumb.stories.ts +0 -22
  179. package/src/stories/Button.stories.ts +0 -48
  180. package/src/stories/Button.vue +0 -59
  181. package/src/stories/CardInfos.stories.ts +0 -15
  182. package/src/stories/ChartLegend.stories.ts +0 -15
  183. package/src/stories/Checkbox.stories.ts +0 -45
  184. package/src/stories/CheckboxSimple.stories.ts +0 -49
  185. package/src/stories/Chips.stories.ts +0 -33
  186. package/src/stories/ClimateZoneBadge.stories.ts +0 -18
  187. package/src/stories/Colors.mdx +0 -70
  188. package/src/stories/CostEffectBar.stories.ts +0 -24
  189. package/src/stories/Datatable.stories.ts +0 -53
  190. package/src/stories/DateCardInfo.stories.ts +0 -20
  191. package/src/stories/Dialog.stories.ts +0 -131
  192. package/src/stories/Draggable.stories.ts +0 -23
  193. package/src/stories/Dropdown.stories.ts +0 -100
  194. package/src/stories/DropdownList.stories.ts +0 -213
  195. package/src/stories/ElevationSystem.mdx +0 -41
  196. package/src/stories/Header.stories.ts +0 -42
  197. package/src/stories/Header.vue +0 -77
  198. package/src/stories/HighlightRippleDot.stories.ts +0 -16
  199. package/src/stories/Icon.stories.ts +0 -23
  200. package/src/stories/InlineSelector.stories.ts +0 -18
  201. package/src/stories/Input.stories.ts +0 -243
  202. package/src/stories/InputSelect.stories.ts +0 -31
  203. package/src/stories/InputTextArea.stories.ts +0 -25
  204. package/src/stories/Introduction.mdx +0 -211
  205. package/src/stories/MiniTag.stories.ts +0 -59
  206. package/src/stories/Playground.stories.ts +0 -16
  207. package/src/stories/ProgressBar.stories.ts +0 -24
  208. package/src/stories/RadioButton.stories.ts +0 -40
  209. package/src/stories/RadioButtonSimple.stories.ts +0 -43
  210. package/src/stories/SimpleAlert.stories.ts +0 -22
  211. package/src/stories/Slider.stories.ts +0 -79
  212. package/src/stories/Switch.stories.ts +0 -39
  213. package/src/stories/TabHeader.stories.ts +0 -57
  214. package/src/stories/TableResults.stories.ts +0 -728
  215. package/src/stories/TagScope.stories.ts +0 -17
  216. package/src/stories/TestimonialCard.stories.ts +0 -27
  217. package/src/stories/Toast.stories.ts +0 -52
  218. package/src/stories/Toggle.stories.ts +0 -48
  219. package/src/stories/Tooltip.stories.ts +0 -114
  220. package/src/stories/Typography.mdx +0 -212
  221. package/src/stories/assets/code-brackets.svg +0 -1
  222. package/src/stories/assets/colors.svg +0 -1
  223. package/src/stories/assets/comments.svg +0 -1
  224. package/src/stories/assets/direction.svg +0 -1
  225. package/src/stories/assets/flow.svg +0 -1
  226. package/src/stories/assets/plugin.svg +0 -1
  227. package/src/stories/assets/repo.svg +0 -1
  228. package/src/stories/assets/stackalt.svg +0 -1
  229. package/src/stories/button.css +0 -30
  230. package/src/stories/header.css +0 -32
  231. package/webpack.config.js +0 -36
@@ -1,16 +1,16 @@
1
1
  <template>
2
2
  <div
3
3
  class="psui-el-input-select"
4
- :class="[getComponentClass, {'selected':selectedClass}, {'disabled':disabled}]"
4
+ :class="[getComponentClass, { selected: selectedClass }, { disabled: disabled }]"
5
5
  >
6
6
  <label
7
7
  :for="label"
8
8
  v-if="label"
9
9
  >{{ label }}</label>
10
10
  <div class="psui-el-input-select-wrapper">
11
- <select
11
+ <select
12
12
  :name="label"
13
- :id="label"
13
+ :id="label"
14
14
  v-model="childValue"
15
15
  >
16
16
  <option
@@ -37,97 +37,96 @@
37
37
  </div>
38
38
  </template>
39
39
 
40
- <script>
40
+ <script setup>
41
+ import { defineProps, ref, computed, defineEmits } from 'vue'
41
42
 
42
- export default {
43
- name: 'PsInputSelect',
44
- props: {
45
- /**
46
- * It sets the items which will be rendered within the select input.
47
- */
48
- items: {
49
- required: true
50
- },
51
- value: {
52
- default: '',
53
- required: true
54
- },
55
- /**
56
- * It sets the value label of the select input if needed.
57
- */
58
- label: {
59
- default: ''
60
- },
61
- /**
62
- * It sets a o optional label below the select input.
63
- */
64
- optionalLabel:{
65
- default:''
66
- },
67
- /**
68
- * It sets the key label of your items if needed.
69
- */
70
- keyLabel: {
71
- default: 'label'
72
- },
73
- /**
74
- * It sets the key value of yout items if needed.
75
- */
76
- keyValue: {
77
- default: 'value'
78
- },
79
- /**
80
- * It disables the select input. All mouse events are disabled.
81
- */
82
- disabled: {
83
- type: Boolean,
84
- default: false
85
- },
86
- /**
87
- * It sets the layout of the select input. eg: default and mini.
88
- */
89
- layout:{
90
- type: String,
91
- default: 'default',
92
- validator: (value) => ['default','mini'].includes(value)
93
- }
43
+ const props = defineProps({
44
+ /**
45
+ * It sets the items which will be rendered within the select input.
46
+ */
47
+ items: {
48
+ required: true,
94
49
  },
95
- data(){
96
- return {
97
- selectedClass: false,
98
- }
50
+ value: {
51
+ default: '',
52
+ required: true,
99
53
  },
100
- computed: {
101
- getComponentClass(){
102
- return `layout-${this.layout}`
103
- },
104
- childValue: {
105
- get() {
106
- return this.value
107
- },
108
- set(value) {
109
- if(this.isString) return this.$emit('input', value)
110
- const finded = find(this.items, { [this.keyValue]: value })
111
- this.$emit('input', value)
112
- this.$emit('change', finded)
113
- this.selectedClass = true
114
- }
115
- },
116
- isString() {
117
- return this.items.length > 0 && typeof this.items[0] === 'string'
118
- },
119
- getItems() {
120
- if (this.items.length > 0 && typeof this.items[0] === 'string') {
121
- return this.items.map((item) => {
122
- return {
123
- [this.keyLabel]: item,
124
- [this.keyValue]: item,
125
- }
126
- })
127
- } else {
128
- return this.items
129
- }
130
- },
54
+ /**
55
+ * It sets the value label of the select input if needed.
56
+ */
57
+ label: {
58
+ default: '',
59
+ },
60
+ /**
61
+ * It sets a o optional label below the select input.
62
+ */
63
+ optionalLabel: {
64
+ default: '',
65
+ },
66
+ /**
67
+ * It sets the key label of your items if needed.
68
+ */
69
+ keyLabel: {
70
+ default: 'label',
71
+ },
72
+ /**
73
+ * It sets the key value of yout items if needed.
74
+ */
75
+ keyValue: {
76
+ default: 'value',
77
+ },
78
+ /**
79
+ * It disables the select input. All mouse events are disabled.
80
+ */
81
+ disabled: {
82
+ type: Boolean,
83
+ default: false,
84
+ },
85
+ /**
86
+ * It sets the layout of the select input. eg: default and mini.
87
+ */
88
+ layout: {
89
+ type: String,
90
+ default: 'default',
91
+ validator: (value) => ['default', 'mini'].includes(value),
92
+ },
93
+ })
94
+
95
+ const emit = defineEmits('input', 'change')
96
+
97
+ const selectedClass = ref(false)
98
+
99
+ const getComponentClass = computed(() => {
100
+ return `layout-${props.layout}`
101
+ })
102
+
103
+ const childValue = computed({
104
+ get() {
105
+ return props.value
131
106
  },
132
- }
107
+ set(value) {
108
+ if (isString.value) return emit('input', value)
109
+ const finded = find(props.items, { [props.keyValue]: value })
110
+ emit('input', value)
111
+ emit('change', finded)
112
+ selectedClass.value = true
113
+ },
114
+ })
115
+
116
+ const isString = computed(() => {
117
+ return props.items.length > 0 && typeof props.items[0] === 'string'
118
+ })
119
+
120
+ const getItems = computed(() => {
121
+ if (props.items.length > 0 && typeof props.items[0] === 'string') {
122
+ return props.items.map((item) => {
123
+ return {
124
+ [props.keyLabel]: item,
125
+ [props.keyValue]: item,
126
+ }
127
+ })
128
+ } else {
129
+ return props.items
130
+ }
131
+ })
133
132
  </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  class="psui-el-input-textarea"
4
- :class="[{'disabled':disabled}]"
4
+ :class="[{ disabled: disabled }]"
5
5
  >
6
6
  <div class="psui-el-input-textarea-wrapper">
7
7
  <label
@@ -15,8 +15,8 @@
15
15
  :value="value"
16
16
  @focus="onInputFocus"
17
17
  @blur="onInputBlur"
18
- @input="$emit('input', $event)"
19
- @change="$emit('change', $event)"
18
+ @input="emit('input', $event)"
19
+ @change="emit('change', $event)"
20
20
  :rows="rows"
21
21
  :placeholder="placeholder"
22
22
  :readonly="disabled"
@@ -31,74 +31,74 @@
31
31
  </div>
32
32
  </template>
33
33
 
34
- <script>
35
- export default {
36
- name: 'PsInputTextArea',
37
- props: {
38
- /**
39
- * It sets the placeholder of the textarea input.
40
- */
41
- placeholder: {
42
- type: String,
43
- default: ''
44
- },
45
- /**
46
- * It sets the value selected of the textarea input.
47
- */
48
- value: {
49
- required: true,
50
- },
51
- /**
52
- * It sets the label of the textarea input.
53
- */
54
- label: {
55
- type: String,
56
- },
57
- /**
58
- * It sets a optional label if needed.
59
- */
60
- optionalLabel:{
61
- type: String,
62
- },
63
- /**
64
- * It sets aria-required property. eg: true or false.
65
- */
66
- required:{
67
- type: Boolean,
68
- default:true
69
- },
70
- /**
71
- * It sets the type of autocapitalize. See mdn web-doc for full information. default: sentences.
72
- */
73
- autocapitalize: {
74
- type: String,
75
- default: 'sentences'
76
- },
77
- /**
78
- * It sets the size of the textarea input.
79
- */
80
- rows: {
81
- type: Number,
82
- default: 5
83
- },
84
- /**
85
- * It disabled the textarea input. All mouse events are disabled.
86
- */
87
- disabled: {
88
- type: Boolean,
89
- default: false,
90
- }
34
+ <script setup>
35
+ import { defineProps, defineEmits } from 'vue'
36
+
37
+ defineProps({
38
+ /**
39
+ * It sets the placeholder of the textarea input.
40
+ */
41
+ placeholder: {
42
+ type: String,
43
+ default: '',
44
+ },
45
+ /**
46
+ * It sets the value selected of the textarea input.
47
+ */
48
+ value: {
49
+ required: true,
50
+ },
51
+ /**
52
+ * It sets the label of the textarea input.
53
+ */
54
+ label: {
55
+ type: String,
56
+ default: '',
57
+ },
58
+ /**
59
+ * It sets a optional label if needed.
60
+ */
61
+ optionalLabel: {
62
+ type: String,
63
+ default: '',
64
+ },
65
+ /**
66
+ * It sets aria-required property. eg: true or false.
67
+ */
68
+ required: {
69
+ type: Boolean,
70
+ default: true,
71
+ },
72
+ /**
73
+ * It sets the type of autocapitalize. See mdn web-doc for full information. default: sentences.
74
+ */
75
+ autocapitalize: {
76
+ type: String,
77
+ default: 'sentences',
78
+ },
79
+ /**
80
+ * It sets the size of the textarea input.
81
+ */
82
+ rows: {
83
+ type: Number,
84
+ default: 5,
91
85
  },
92
- methods: {
93
- onInputFocus($event) {
94
- this.isFocus = true
95
- this.$emit('focus', $event)
96
- },
97
- onInputBlur($event) {
98
- this.isFocus = false
99
- this.$emit('blur', $event)
100
- }
101
- }
86
+ /**
87
+ * It disabled the textarea input. All mouse events are disabled.
88
+ */
89
+ disabled: {
90
+ type: Boolean,
91
+ default: false,
92
+ },
93
+ })
94
+
95
+ const emit = defineEmits(['focus', 'blur', 'input', 'change'])
96
+
97
+ const onInputFocus = ($event) => {
98
+ emit('focus', $event)
102
99
  }
103
- </script>
104
100
 
101
+ const onInputBlur = ($event) => {
102
+ emit('blur', $event)
103
+ }
104
+ </script>
@@ -1,4 +1,4 @@
1
- <template>
1
+ <template>
2
2
  <nav
3
3
  v-if="items.length > 0"
4
4
  aria-label="breadcrumb"
@@ -13,7 +13,6 @@
13
13
  <router-link
14
14
  v-if="item.route && !item.isReset"
15
15
  :to="item.route"
16
- @click="onNavigate(item)"
17
16
  >
18
17
  {{ item.title }}
19
18
  </router-link>
@@ -21,7 +20,7 @@
21
20
  <span
22
21
  v-else-if="item.isReset"
23
22
  class="psui-flex psui-items-center psui-cursor-pointer psui-text-blue-60 psui-font-bold"
24
- @click="$emit('reset-state', item)"
23
+ @click="emit('reset-state', item)"
25
24
  >
26
25
  <PsIcon
27
26
  size="18"
@@ -32,8 +31,8 @@
32
31
  {{ item.title }}
33
32
  </span>
34
33
 
35
- <span
36
- v-else
34
+ <span
35
+ v-else
37
36
  :title="item.title"
38
37
  >
39
38
  {{ item.title }}
@@ -43,36 +42,29 @@
43
42
  </nav>
44
43
  </template>
45
44
 
46
- <script>
45
+ <script setup>
47
46
  import PsIcon from '../ui/PsIcon.vue'
48
- export default {
49
- name: 'PsBreadcrumb',
50
- components: { PsIcon },
51
- props: {
52
- /**
53
- * It sets the items which will be rendered.
54
- */
55
- items: {
56
- type: [Array, Boolean],
57
- },
58
- /**
59
- * It sets the li style.
60
- */
61
- liClass: {
62
- type: String,
63
- default: 'psui-text-small psui-text-gray-60'
64
- }
47
+ import { defineProps, defineEmits } from 'vue'
48
+
49
+ defineProps({
50
+ /**
51
+ * It sets the items which will be rendered.
52
+ */
53
+ items: {
54
+ type: [Array, Boolean],
55
+ default: () => [],
65
56
  },
66
- methods: {
67
- onNavigate(item) {
68
- if (item.route === this.$route.path) {
69
- this.$parent.closeDrawer()
70
- }
71
- },
72
- }
73
- }
74
- </script>
57
+ /**
58
+ * It sets the li style.
59
+ */
60
+ liClass: {
61
+ type: String,
62
+ default: 'psui-text-small psui-text-gray-60',
63
+ },
64
+ })
65
+
66
+ const emit = defineEmits(['reset-state'])
75
67
 
76
- <style>
68
+ </script>
77
69
 
78
- </style>
70
+ <style></style>
@@ -2,11 +2,11 @@
2
2
  <div
3
3
  class="psui-el-dialog"
4
4
  :class="getComponentClass"
5
- >
5
+ >
6
6
  <div class="psui-el-dialog-icon">
7
7
  <i class="material-icons-round">{{ icon }}</i>
8
8
  </div>
9
- <div class="psui-el-dialog-wrapper">
9
+ <div class="psui-el-dialog-wrapper">
10
10
  <div class="psui-el-dialog-default">
11
11
  <slot>
12
12
  <p class="psui-el-dialog-message">
@@ -19,8 +19,8 @@
19
19
  </div>
20
20
  </div>
21
21
  <button
22
- class="psui-el-dialog-close"
23
- v-if="hasClose"
22
+ class="psui-el-dialog-close"
23
+ v-if="hasClose"
24
24
  @click="onClose"
25
25
  >
26
26
  <i class="material-icons-round">close</i>
@@ -28,61 +28,62 @@
28
28
  </div>
29
29
  </template>
30
30
 
31
- <script>
31
+ <script setup>
32
32
  // Figma - 3. Inline Dialog https://www.figma.com/file/Tto8hrNlSfuPcwd1pfqogF/%E2%9A%A1%EF%B8%8F-Design-System?node-id=3694%3A55841
33
- export default {
34
- name: 'PsDialog',
35
- props: {
36
- /**
37
- * It sets the theme of the dialog. eg: informative, success and alert.
38
- */
39
- theme: {
40
- type: String,
41
- default: 'informative',
42
- validator: (value) => ['informative', 'success', 'alert'].includes(value)
43
- },
44
- /**
45
- * It set the which will be displayed when component is rendered.
46
- */
47
- message: {
48
- type: String,
49
- },
50
- /**
51
- * It sets the direction of the items within the dialog. See Figma Notifications for full information.
52
- */
53
- layout:{
54
- type: String,
55
- default: 'horizontal',
56
- validator: (value) => ['horizontal', 'vertical'].includes(value)
57
- },
58
- /**
59
- * It sets a close button if needed.
60
- */
61
- hasClose: {
62
- type: Boolean,
63
- default: true
64
- },
65
- /**
66
- * It sets the text key to get the svg icon in Google Fonts. Make sure to get the correct description of your icon on https://fonts.google.com/.
67
- */
68
- icon: {
69
- type: String,
70
- default: 'info'
71
- }
33
+
34
+ import { defineProps, defineEmits, computed } from 'vue'
35
+
36
+ const props = defineProps({
37
+ /**
38
+ * It sets the theme of the dialog. eg: informative, success and alert.
39
+ */
40
+ theme: {
41
+ type: String,
42
+ default: 'informative',
43
+ validator: (value) => ['informative', 'success', 'alert'].includes(value),
44
+ },
45
+ /**
46
+ * It set the which will be displayed when component is rendered.
47
+ */
48
+ message: {
49
+ type: String,
50
+ default: '',
51
+ },
52
+ /**
53
+ * It sets the direction of the items within the dialog. See Figma Notifications for full information.
54
+ */
55
+ layout: {
56
+ type: String,
57
+ default: 'horizontal',
58
+ validator: (value) => ['horizontal', 'vertical'].includes(value),
59
+ },
60
+ /**
61
+ * It sets a close button if needed.
62
+ */
63
+ hasClose: {
64
+ type: Boolean,
65
+ default: true,
72
66
  },
73
- emits:['close'],
74
- computed: {
75
- getComponentClass() {
76
- return [`layout-${this.layout}`, `theme-${this.theme}`, `close-${this.hasClose ? 'on' : 'off'}` ]
77
- }
67
+ /**
68
+ * It sets the text key to get the svg icon in Google Fonts. Make sure to get the correct description of your icon on https://fonts.google.com/.
69
+ */
70
+ icon: {
71
+ type: String,
72
+ default: 'info',
78
73
  },
79
- methods:{
80
- onClose(){
81
- this.$emit('close')
82
- }
83
- }
74
+ })
75
+
76
+ const emit = defineEmits(['close'])
77
+
78
+ const getComponentClass = computed(() => {
79
+ return [`layout-${props.layout}`, `theme-${props.theme}`, `close-${props.hasClose ? 'on' : 'off'}`]
80
+ })
81
+
82
+ const onClose = () => {
83
+ emit('close')
84
84
  }
85
85
  </script>
86
86
 
87
- <style> /* Please, use the file src/assets/scss/components/PsDialog.scss */</style>
88
-
87
+ <style>
88
+ /* Please, use the file src/assets/scss/components/PsDialog.scss */
89
+ </style>
@@ -2,7 +2,7 @@
2
2
  <div
3
3
  class="psui-el-simple-alert"
4
4
  v-bind="$attrs"
5
- @click.stop="$emit('click')"
5
+ @click.stop="emit('click')"
6
6
  >
7
7
  <PsIcon
8
8
  :icon="icon"
@@ -15,41 +15,40 @@
15
15
  <button
16
16
  class="psui-el-simple-alert-button"
17
17
  :class="buttonClass"
18
- @click.stop="$emit('close')"
18
+ @click.stop="emit('close')"
19
19
  >
20
20
  close
21
21
  </button>
22
22
  </div>
23
23
  </template>
24
24
 
25
- <script>
25
+ <script setup>
26
26
  import PsIcon from '../ui/PsIcon.vue'
27
+ import { defineProps, defineEmits } from 'vue'
27
28
 
29
+ defineProps({
30
+ message: {
31
+ type: String,
32
+ default: '',
33
+ },
34
+ icon: {
35
+ type: String,
36
+ default: 'info',
37
+ },
38
+ iconClass: {
39
+ type: String,
40
+ default: '',
41
+ },
42
+ buttonClass: {
43
+ type: String,
44
+ default: '',
45
+ },
46
+ iconSize: {
47
+ type: [Number, String],
48
+ default: 24,
49
+ },
50
+ })
51
+
52
+ const emit = defineEmits(['click', 'close'])
28
53
 
29
- export default {
30
- name: 'PsSimpleAlert',
31
- components: { PsIcon },
32
- props: {
33
- message: {
34
- type: String,
35
- default: ''
36
- },
37
- icon: {
38
- type: String,
39
- default: 'info'
40
- },
41
- iconClass:{
42
- type:String,
43
- default: ''
44
- },
45
- buttonClass:{
46
- type:String,
47
- default: ''
48
- },
49
- iconSize:{
50
- type: [Number, String],
51
- default: 24
52
- }
53
- },
54
- }
55
54
  </script>