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

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 (224) 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/package.json +9 -23
  6. package/src/assets/scss/components/PsDataTable.scss +1 -1
  7. package/src/components/accordion/PsAccordionItem.vue +75 -75
  8. package/src/components/badges-and-tags/PsBadgeWithIcon.vue +31 -34
  9. package/src/components/badges-and-tags/PsCardInfos.vue +40 -41
  10. package/src/components/badges-and-tags/PsChartLegend.vue +47 -51
  11. package/src/components/badges-and-tags/PsClimateZoneBadge.vue +14 -19
  12. package/src/components/badges-and-tags/PsCostEffectBar.vue +24 -56
  13. package/src/components/badges-and-tags/PsDateCardInfo.vue +17 -18
  14. package/src/components/badges-and-tags/PsHighlightRippleDot.vue +3 -2
  15. package/src/components/badges-and-tags/PsMiniTag.vue +39 -41
  16. package/src/components/badges-and-tags/PsProgressBar.vue +72 -68
  17. package/src/components/badges-and-tags/PsTagScope.vue +17 -22
  18. package/src/components/badges-and-tags/PsTestimonialCard.vue +20 -26
  19. package/src/components/buttons/PsButton.vue +61 -62
  20. package/src/components/chips/PsChips.vue +98 -101
  21. package/src/components/controls/PsCheckbox.vue +84 -84
  22. package/src/components/controls/PsCheckboxSimple.vue +95 -95
  23. package/src/components/controls/PsDraggable.vue +53 -55
  24. package/src/components/controls/PsInlineSelector.vue +99 -99
  25. package/src/components/controls/PsRadioButton.vue +59 -58
  26. package/src/components/controls/PsRadioButtonSimple.vue +79 -75
  27. package/src/components/controls/PsSlider.vue +185 -176
  28. package/src/components/controls/PsSwitch.vue +51 -52
  29. package/src/components/controls/PsToggle.vue +53 -50
  30. package/src/components/data-graphics/PsBarChart.vue +19 -21
  31. package/src/components/datatable/PsDataTable.vue +56 -60
  32. package/src/components/datatable/PsDataTableItem.vue +14 -28
  33. package/src/components/forms/PsDropdown.vue +164 -162
  34. package/src/components/forms/PsDropdownList.vue +132 -129
  35. package/src/components/forms/PsInput.vue +155 -153
  36. package/src/components/forms/PsInputSelect.vue +91 -92
  37. package/src/components/forms/PsInputTextArea.vue +71 -71
  38. package/src/components/navigations/PsBreadcrumb.vue +26 -34
  39. package/src/components/notifications/PsDialog.vue +57 -56
  40. package/src/components/notifications/PsSimpleAlert.vue +28 -29
  41. package/src/components/notifications/PsToast.vue +40 -39
  42. package/src/components/table-results/PsTableResults.vue +452 -458
  43. package/src/components/table-results/PsTableResultsBody.vue +66 -67
  44. package/src/components/table-results/PsTableResultsHead.vue +62 -56
  45. package/src/components/table-results/PsTableResultsHeadComparison.vue +62 -56
  46. package/src/components/table-results/PsTableResultsHeadFlexible.vue +63 -56
  47. package/src/components/table-results/PsTableResultsRow.vue +55 -56
  48. package/src/components/tabs/PsTabHeader.vue +106 -100
  49. package/src/components/tooltip/PsDialogTooltip.vue +96 -101
  50. package/src/components/tooltip/PsRichTooltip.vue +42 -45
  51. package/src/components/tooltip/PsTooltip.vue +111 -116
  52. package/src/components/ui/PsDotLoader.vue +1 -5
  53. package/src/components/ui/PsIcon.vue +126 -129
  54. package/src/index.ts +57 -71
  55. package/src/tsconfig.json +12 -0
  56. package/src/{shims-vue.d.ts → types/index.d.ts} +0 -5
  57. package/src/util/{GeneralFunctions.ts → GeneralFunctions.js} +0 -3
  58. package/src/util/directives.ts +24 -0
  59. package/src/util/eventBus.js +10 -0
  60. package/src/util/{imageLoader.ts → imageLoader.js} +7 -8
  61. package/tailwind.config.js +1 -1
  62. package/tsconfig.json +15 -17
  63. package/.storybook/PolicyStudio.ts +0 -11
  64. package/.storybook/eventBus.ts +0 -26
  65. package/.storybook/main.ts +0 -21
  66. package/.storybook/manager.ts +0 -7
  67. package/.storybook/preview.ts +0 -17
  68. package/dist/contents/ComparisonData.js +0 -376
  69. package/dist/contents/ComparisonData.js.map +0 -1
  70. package/dist/contents/FlexibleData.js +0 -501
  71. package/dist/contents/FlexibleData.js.map +0 -1
  72. package/dist/contents/ResultsData.js +0 -530
  73. package/dist/contents/ResultsData.js.map +0 -1
  74. package/dist/css/psui_styles.css +0 -4647
  75. package/dist/index.js +0 -114
  76. package/dist/index.js.map +0 -1
  77. package/dist/stories/Accordion.stories.js +0 -56
  78. package/dist/stories/Accordion.stories.js.map +0 -1
  79. package/dist/stories/BadgeWithIcon.stories.js +0 -28
  80. package/dist/stories/BadgeWithIcon.stories.js.map +0 -1
  81. package/dist/stories/BarChart.stories.js +0 -16
  82. package/dist/stories/BarChart.stories.js.map +0 -1
  83. package/dist/stories/Breadcrumb.stories.js +0 -21
  84. package/dist/stories/Breadcrumb.stories.js.map +0 -1
  85. package/dist/stories/Button.stories.js +0 -44
  86. package/dist/stories/Button.stories.js.map +0 -1
  87. package/dist/stories/CardInfos.stories.js +0 -13
  88. package/dist/stories/CardInfos.stories.js.map +0 -1
  89. package/dist/stories/ChartLegend.stories.js +0 -13
  90. package/dist/stories/ChartLegend.stories.js.map +0 -1
  91. package/dist/stories/Checkbox.stories.js +0 -44
  92. package/dist/stories/Checkbox.stories.js.map +0 -1
  93. package/dist/stories/CheckboxSimple.stories.js +0 -48
  94. package/dist/stories/CheckboxSimple.stories.js.map +0 -1
  95. package/dist/stories/Chips.stories.js +0 -27
  96. package/dist/stories/Chips.stories.js.map +0 -1
  97. package/dist/stories/ClimateZoneBadge.stories.js +0 -15
  98. package/dist/stories/ClimateZoneBadge.stories.js.map +0 -1
  99. package/dist/stories/CostEffectBar.stories.js +0 -21
  100. package/dist/stories/CostEffectBar.stories.js.map +0 -1
  101. package/dist/stories/Datatable.stories.js +0 -45
  102. package/dist/stories/Datatable.stories.js.map +0 -1
  103. package/dist/stories/DateCardInfo.stories.js +0 -18
  104. package/dist/stories/DateCardInfo.stories.js.map +0 -1
  105. package/dist/stories/Dialog.stories.js +0 -127
  106. package/dist/stories/Dialog.stories.js.map +0 -1
  107. package/dist/stories/Draggable.stories.js +0 -20
  108. package/dist/stories/Draggable.stories.js.map +0 -1
  109. package/dist/stories/Dropdown.stories.js +0 -98
  110. package/dist/stories/Dropdown.stories.js.map +0 -1
  111. package/dist/stories/DropdownList.stories.js +0 -208
  112. package/dist/stories/DropdownList.stories.js.map +0 -1
  113. package/dist/stories/Header.stories.js +0 -39
  114. package/dist/stories/Header.stories.js.map +0 -1
  115. package/dist/stories/HighlightRippleDot.stories.js +0 -13
  116. package/dist/stories/HighlightRippleDot.stories.js.map +0 -1
  117. package/dist/stories/Icon.stories.js +0 -19
  118. package/dist/stories/Icon.stories.js.map +0 -1
  119. package/dist/stories/InlineSelector.stories.js +0 -16
  120. package/dist/stories/InlineSelector.stories.js.map +0 -1
  121. package/dist/stories/Input.stories.js +0 -235
  122. package/dist/stories/Input.stories.js.map +0 -1
  123. package/dist/stories/InputSelect.stories.js +0 -28
  124. package/dist/stories/InputSelect.stories.js.map +0 -1
  125. package/dist/stories/InputTextArea.stories.js +0 -23
  126. package/dist/stories/InputTextArea.stories.js.map +0 -1
  127. package/dist/stories/MiniTag.stories.js +0 -44
  128. package/dist/stories/MiniTag.stories.js.map +0 -1
  129. package/dist/stories/Playground.stories.js +0 -14
  130. package/dist/stories/Playground.stories.js.map +0 -1
  131. package/dist/stories/ProgressBar.stories.js +0 -21
  132. package/dist/stories/ProgressBar.stories.js.map +0 -1
  133. package/dist/stories/RadioButton.stories.js +0 -36
  134. package/dist/stories/RadioButton.stories.js.map +0 -1
  135. package/dist/stories/RadioButtonSimple.stories.js +0 -40
  136. package/dist/stories/RadioButtonSimple.stories.js.map +0 -1
  137. package/dist/stories/SimpleAlert.stories.js +0 -19
  138. package/dist/stories/SimpleAlert.stories.js.map +0 -1
  139. package/dist/stories/Slider.stories.js +0 -70
  140. package/dist/stories/Slider.stories.js.map +0 -1
  141. package/dist/stories/Switch.stories.js +0 -35
  142. package/dist/stories/Switch.stories.js.map +0 -1
  143. package/dist/stories/TabHeader.stories.js +0 -48
  144. package/dist/stories/TabHeader.stories.js.map +0 -1
  145. package/dist/stories/TableResults.stories.js +0 -717
  146. package/dist/stories/TableResults.stories.js.map +0 -1
  147. package/dist/stories/TagScope.stories.js +0 -16
  148. package/dist/stories/TagScope.stories.js.map +0 -1
  149. package/dist/stories/TestimonialCard.stories.js +0 -24
  150. package/dist/stories/TestimonialCard.stories.js.map +0 -1
  151. package/dist/stories/Toast.stories.js +0 -51
  152. package/dist/stories/Toast.stories.js.map +0 -1
  153. package/dist/stories/Toggle.stories.js +0 -42
  154. package/dist/stories/Toggle.stories.js.map +0 -1
  155. package/dist/stories/Tooltip.stories.js +0 -108
  156. package/dist/stories/Tooltip.stories.js.map +0 -1
  157. package/dist/util/GeneralFunctions.js +0 -29
  158. package/dist/util/GeneralFunctions.js.map +0 -1
  159. package/dist/util/imageLoader.js +0 -52
  160. package/dist/util/imageLoader.js.map +0 -1
  161. package/postcss.config.js +0 -8
  162. package/src/assets/images/multifamily-units.svg +0 -10
  163. package/src/assets/images/policy-studio.svg +0 -15
  164. package/src/components/playground/PsScrollBar.vue +0 -320
  165. package/src/contents/ComparisonData.ts +0 -378
  166. package/src/contents/FlexibleData.ts +0 -502
  167. package/src/contents/ResultsData.ts +0 -531
  168. package/src/stories/Accordion.stories.ts +0 -59
  169. package/src/stories/BadgeWithIcon.stories.ts +0 -31
  170. package/src/stories/BarChart.stories.ts +0 -17
  171. package/src/stories/Breadcrumb.stories.ts +0 -22
  172. package/src/stories/Button.stories.ts +0 -48
  173. package/src/stories/Button.vue +0 -59
  174. package/src/stories/CardInfos.stories.ts +0 -15
  175. package/src/stories/ChartLegend.stories.ts +0 -15
  176. package/src/stories/Checkbox.stories.ts +0 -45
  177. package/src/stories/CheckboxSimple.stories.ts +0 -49
  178. package/src/stories/Chips.stories.ts +0 -33
  179. package/src/stories/ClimateZoneBadge.stories.ts +0 -18
  180. package/src/stories/Colors.mdx +0 -70
  181. package/src/stories/CostEffectBar.stories.ts +0 -24
  182. package/src/stories/Datatable.stories.ts +0 -53
  183. package/src/stories/DateCardInfo.stories.ts +0 -20
  184. package/src/stories/Dialog.stories.ts +0 -131
  185. package/src/stories/Draggable.stories.ts +0 -23
  186. package/src/stories/Dropdown.stories.ts +0 -100
  187. package/src/stories/DropdownList.stories.ts +0 -213
  188. package/src/stories/ElevationSystem.mdx +0 -41
  189. package/src/stories/Header.stories.ts +0 -42
  190. package/src/stories/Header.vue +0 -77
  191. package/src/stories/HighlightRippleDot.stories.ts +0 -16
  192. package/src/stories/Icon.stories.ts +0 -23
  193. package/src/stories/InlineSelector.stories.ts +0 -18
  194. package/src/stories/Input.stories.ts +0 -243
  195. package/src/stories/InputSelect.stories.ts +0 -31
  196. package/src/stories/InputTextArea.stories.ts +0 -25
  197. package/src/stories/Introduction.mdx +0 -211
  198. package/src/stories/MiniTag.stories.ts +0 -59
  199. package/src/stories/Playground.stories.ts +0 -16
  200. package/src/stories/ProgressBar.stories.ts +0 -24
  201. package/src/stories/RadioButton.stories.ts +0 -40
  202. package/src/stories/RadioButtonSimple.stories.ts +0 -43
  203. package/src/stories/SimpleAlert.stories.ts +0 -22
  204. package/src/stories/Slider.stories.ts +0 -79
  205. package/src/stories/Switch.stories.ts +0 -39
  206. package/src/stories/TabHeader.stories.ts +0 -57
  207. package/src/stories/TableResults.stories.ts +0 -728
  208. package/src/stories/TagScope.stories.ts +0 -17
  209. package/src/stories/TestimonialCard.stories.ts +0 -27
  210. package/src/stories/Toast.stories.ts +0 -52
  211. package/src/stories/Toggle.stories.ts +0 -48
  212. package/src/stories/Tooltip.stories.ts +0 -114
  213. package/src/stories/Typography.mdx +0 -212
  214. package/src/stories/assets/code-brackets.svg +0 -1
  215. package/src/stories/assets/colors.svg +0 -1
  216. package/src/stories/assets/comments.svg +0 -1
  217. package/src/stories/assets/direction.svg +0 -1
  218. package/src/stories/assets/flow.svg +0 -1
  219. package/src/stories/assets/plugin.svg +0 -1
  220. package/src/stories/assets/repo.svg +0 -1
  221. package/src/stories/assets/stackalt.svg +0 -1
  222. package/src/stories/button.css +0 -30
  223. package/src/stories/header.css +0 -32
  224. package/webpack.config.js +0 -36
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <div
3
- class="psui-el-chips"
2
+ <div
3
+ class="psui-el-chips"
4
4
  :class="[getComponentClass, `layout-${layout}`, `type-${type}`]"
5
5
  >
6
6
  <input
@@ -14,16 +14,16 @@
14
14
  <label
15
15
  :disabled="disabled"
16
16
  :for="getInputId"
17
- :class="{'checked':checked && type === 'button'}"
17
+ :class="{'checked': checked && type === 'button' }"
18
18
  >
19
19
  <i
20
20
  v-if="icon"
21
21
  class="psui-el-chips-icon psui-el-chips-icon-prepend"
22
22
  >{{ icon }}</i>
23
23
  {{ label }}
24
- <button
25
- @click="onClose"
26
- v-if="layout === 'rich'"
24
+ <button
25
+ @click="onClose"
26
+ v-if="layout === 'rich'"
27
27
  class="psui-el-chips-close"
28
28
  >
29
29
  <span class="psui-el-chips-icon">close</span>
@@ -32,105 +32,102 @@
32
32
  </div>
33
33
  </template>
34
34
 
35
- <script>
36
- export const type = ['radio', 'checkbox', 'button']
37
- import { randomString } from '../../util/GeneralFunctions'
35
+ <script setup>
36
+ import { defineProps, defineEmits, computed, useAttrs } from 'vue'
38
37
 
39
- export default {
40
- name: 'PsChips',
41
- props: {
42
- /**
43
- * It sets the label of the chips button.
44
- */
45
- label: {
46
- type: String,
47
- default: '',
48
- },
49
- /**
50
- * It sets the type of the chips button. eg: radio, checkbox, button.
51
- */
52
- type: {
53
- type: String,
54
- required: true,
55
- default: 'button',
56
- validator: (type) => ['radio', 'checkbox', 'button'].includes(type)
57
- },
58
- /**
59
- * It sets the layout of the chipsbutton. eg: simple, with-icon, rich.
60
- */
61
- layout: {
62
- type: String,
63
- default: 'simple',
64
- validator: (value) => ['simple', 'with-icon', 'rich'].includes(value)
65
- },
66
- /**
67
- * It sets the text key which will retrieve a icon from Google Fonts. Make sure to get the right description of your icon on https://fonts.google.com/.
68
- */
69
- icon: {
70
- type: String,
71
- default: '',
72
- },
73
- /**
74
- * It sets if the button was checked or not checked.
75
- */
76
- checked: {
77
- type: Boolean,
78
- default: false
79
- },
80
- /**
81
- * It disables the chips button.
82
- */
83
- disabled: {
84
- type: Boolean,
85
- default: false
86
- },
87
- /**
88
- * It sets if the button is active or not.
89
- */
90
- active: {
91
- type: Boolean,
92
- default: false
93
- },
94
- /**
95
- * Add html attributes to the element input
96
- */
97
- inputAttrs: {
98
- type: Object,
99
- default: () => ({})
100
- },
38
+ import { randomString } from '../../util/GeneralFunctions.js'
39
+
40
+ const emit = defineEmits(['click', 'change', 'update:checked', 'close'])
41
+
42
+ const attrs = useAttrs()
43
+
44
+ const props = defineProps({
45
+ /**
46
+ * It sets the label of the chips button.
47
+ */
48
+ label: {
49
+ type: String,
50
+ default: '',
51
+ },
52
+ type: {
53
+ type: String,
54
+ required: true,
55
+ default: 'button',
56
+ validator: (type) => ['radio', 'checkbox', 'button'].includes(type),
57
+ },
58
+ /**
59
+ * It sets the layout of the chipsbutton. eg: simple, with-icon, rich.
60
+ */
61
+ layout: {
62
+ type: String,
63
+ default: 'simple',
64
+ validator: (value) => ['simple', 'with-icon', 'rich'].includes(value),
65
+ },
66
+ /**
67
+ * It sets the text key which will retrieve a icon from Google Fonts. Make sure to get the right description of your icon on https://fonts.google.com/.
68
+ */
69
+ icon: {
70
+ type: String,
71
+ default: '',
72
+ },
73
+ /**
74
+ * It sets if the button was checked or not checked.
75
+ */
76
+ checked: {
77
+ type: Boolean,
78
+ default: false,
101
79
  },
102
- emits: ['click', 'change'],
103
- computed: {
104
- getComponentClass() {
105
- if (this.disabled) {
106
- return 'status-disabled'
107
- } else {
108
- return 'status-resting'
109
- }
110
- },
111
- getInputId() {
112
- if (this?.inputAttrs?.id) {
113
- return this.inputAttrs.id
114
- } else if (this?.$attrs?.id) {
115
- return this.$attrs.id
116
- } else {
117
- return randomString(16)
118
- }
119
- },
80
+ /**
81
+ * It disables the chips button.
82
+ */
83
+ disabled: {
84
+ type: Boolean,
85
+ default: false,
120
86
  },
121
- methods: {
122
- onClick() {
123
- this.$emit('click')
124
- },
125
- onChange(event) {
126
- this.$emit('update:checked', event.target.checked)
127
- this.$emit('change', event)
128
- },
129
- onClose() {
130
- this.$emit('close')
131
- },
87
+ /**
88
+ * It sets if the button is active or not.
89
+ */
90
+ active: {
91
+ type: Boolean,
92
+ default: false,
132
93
  },
94
+ /**
95
+ * Add html attributes to the element input
96
+ */
97
+ inputAttrs: {
98
+ type: Object,
99
+ default: () => ({}),
100
+ },
101
+ })
102
+
103
+ const getComponentClass = computed(() => {
104
+ if (props.disabled) {
105
+ return 'status-disabled'
106
+ } else {
107
+ return 'status-resting'
108
+ }
109
+ })
110
+
111
+ const getInputId = computed(() => {
112
+ if (props?.inputAttrs?.id) {
113
+ return props.inputAttrs.id
114
+ } else if (attrs?.id) {
115
+ return attrs.id
116
+ } else {
117
+ return randomString(16)
118
+ }
119
+ })
120
+
121
+ const onChange = (event) => {
122
+ emit('update:checked', event.target.checked)
123
+ emit('change', event)
124
+ }
125
+
126
+ const onClose = () => {
127
+ emit('close')
133
128
  }
134
129
  </script>
135
130
 
136
- <style> /* Please, use the file src/assets/scss/components/PsChips.scss */</style>
131
+ <style>
132
+ /* Please, use the file src/assets/scss/components/PsChips.scss */
133
+ </style>
@@ -1,100 +1,100 @@
1
1
  <template>
2
- <div
3
- class="psui-el-checkbox"
4
- :class="[getComponentClass, {'disabled':disabled}]"
2
+ <div
3
+ class="psui-el-checkbox"
4
+ :class="[getComponentClass, { disabled: disabled }]"
5
5
  >
6
- <input
7
- :id="getInputId"
8
- type="checkbox"
6
+ <input
7
+ :id="getInputId"
8
+ type="checkbox"
9
9
  :value="inputValue"
10
10
  v-model="model"
11
- :disabled="disabled"
11
+ :disabled="disabled"
12
12
  >
13
- <label
14
- :for="getInputId"
13
+ <label
14
+ :for="getInputId"
15
15
  class="psui-el-checkmark"
16
16
  :class="[labelClasses, 'psui-el-checkmark']"
17
17
  >
18
18
  <span>{{ label }}</span>
19
- </label>
19
+ </label>
20
20
  </div>
21
21
  </template>
22
22
 
23
- <script>
24
- //FIGMA CONTROLS & SELECTORS https://www.figma.com/file/Tto8hrNlSfuPcwd1pfqogF/%E2%9A%A1%EF%B8%8F-Design-System?node-id=1768%3A64852
25
- import { randomString } from '../../util/GeneralFunctions'
23
+ <script setup>
24
+ import { computed, defineEmits } from 'vue'
25
+ import { randomString } from '../../util/GeneralFunctions.js'
26
26
 
27
- export default {
28
- name: 'PsCheckbox',
29
- props: {
30
- /**
31
- * It sets the label of the checkbox input.
32
- */
33
- label: {
34
- type: String,
35
- default: '',
36
- },
37
- /**
38
- * It sets the label classes.
39
- */
40
- labelClasses: {
41
- type: String,
42
- default: ''
43
- },
44
- /**
45
- * It sets the value which should be monitored.
46
- */
47
- inputValue: {
48
- type: [String, Boolean],
49
- },
50
- value:{
51
- type: [Array, Boolean]
52
- },
53
- /**
54
- * It disables the checkbox input.
55
- */
56
- disabled: {
57
- type: Boolean,
58
- default: false,
59
- },
60
- /**
61
- * It set the of the checkbox input. eg: big and small.
62
- */
63
- size: {
64
- type: String,
65
- default: 'big',
66
- validator: (value)=> ['big', 'small'].includes(value)
67
- },
68
- /**
69
- * It set the layout of the checkbox input. eg: default and mixed.
70
- */
71
- layout:{
72
- type: String,
73
- default: 'default',
74
- validator: (value)=> ['default','mixed'].includes(value)
75
- }
27
+ const props = defineProps({
28
+ /**
29
+ * It sets the label of the checkbox input.
30
+ */
31
+ label: {
32
+ type: String,
33
+ default: '',
76
34
  },
77
- computed:{
78
- getComponentClass(){
79
- return `size-${this.size} layout-${this.layout}`
80
- },
81
- getInputId() {
82
- if (this?.inputAttrs?.id) {
83
- return this.inputAttrs.id
84
- } else if (this?.$attrs?.id) {
85
- return this.$attrs.id
86
- } else {
87
- return randomString(16)
88
- }
89
- },
90
- model: {
91
- get(){
92
- return this.value
93
- },
94
- set(value){
95
- this.$emit('input', value)
96
- }
97
- }
35
+ /**
36
+ * It sets the label classes.
37
+ */
38
+ labelClasses: {
39
+ type: String,
40
+ default: '',
98
41
  },
99
- }
42
+ /**
43
+ * It sets the value which should be monitored.
44
+ */
45
+ inputValue: {
46
+ type: [String, Boolean],
47
+ default: '',
48
+ },
49
+ value: {
50
+ type: [Array, Boolean],
51
+ default: false,
52
+ },
53
+ /**
54
+ * It disables the checkbox input.
55
+ */
56
+ disabled: {
57
+ type: Boolean,
58
+ default: false,
59
+ },
60
+ /**
61
+ * It set the of the checkbox input. eg: big and small.
62
+ */
63
+ size: {
64
+ type: String,
65
+ default: 'big',
66
+ validator: (value) => ['big', 'small'].includes(value),
67
+ },
68
+ /**
69
+ * It set the layout of the checkbox input. eg: default and mixed.
70
+ */
71
+ layout: {
72
+ type: String,
73
+ default: 'default',
74
+ validator: (value) => ['default', 'mixed'].includes(value),
75
+ },
76
+ })
77
+
78
+ const emit = defineEmits(['input'])
79
+
80
+ const getInputId = computed(() => {
81
+ if (props.inputAttrs?.id) {
82
+ return props.inputAttrs.id
83
+ } else if (props.$attrs?.id) {
84
+ return props.$attrs.id
85
+ } else {
86
+ return randomString(16)
87
+ }
88
+ })
89
+
90
+ const getComponentClass = computed(() => `size-${props.size} layout-${props.layout}`)
91
+
92
+ const model = computed({
93
+ get() {
94
+ return props.value
95
+ },
96
+ set(newValue) {
97
+ emit('input', newValue)
98
+ },
99
+ })
100
100
  </script>
@@ -1,45 +1,45 @@
1
1
  <template>
2
- <div
2
+ <div
3
3
  v-if="withPrevent"
4
- class="psui-el-checkbox"
5
- :class="[getComponentClass, {'disabled':disabled}]"
4
+ class="psui-el-checkbox"
5
+ :class="[getComponentClass, { disabled: disabled }]"
6
6
  v-bind="getComponentAttrs"
7
- @click.prevent="$emit('click', $event)"
7
+ @click.prevent="emit('click', $event)"
8
8
  >
9
- <input
10
- type="checkbox"
11
- :checked="checked"
9
+ <input
10
+ type="checkbox"
11
+ :checked="checked"
12
12
  :disabled="disabled"
13
13
  :name="label"
14
14
  :id="getInputId"
15
15
  v-bind="inputAttrs"
16
- @change="$emit('change', $event)"
16
+ @change="emit('change', $event)"
17
17
  >
18
- <label
18
+ <label
19
19
  :for="getInputId"
20
20
  class="psui-el-checkmark"
21
21
  >
22
22
  <slot name="content">
23
23
  <span>{{ label }}</span>
24
24
  </slot>
25
- </label>
25
+ </label>
26
26
  </div>
27
- <div
27
+ <div
28
28
  v-else
29
- class="psui-el-checkbox"
30
- :class="[getComponentClass, {'disabled':disabled}]"
29
+ class="psui-el-checkbox"
30
+ :class="[getComponentClass, { disabled: disabled }]"
31
31
  v-bind="getComponentAttrs"
32
32
  >
33
- <input
34
- type="checkbox"
35
- :checked="checked"
33
+ <input
34
+ type="checkbox"
35
+ :checked="checked"
36
36
  :disabled="disabled"
37
37
  :name="label"
38
38
  :id="getInputId"
39
39
  v-bind="inputAttrs"
40
- @change="$emit('change', $event)"
40
+ @change="emit('change', $event)"
41
41
  >
42
- <label
42
+ <label
43
43
  :for="getInputId"
44
44
  class="psui-el-checkmark"
45
45
  :title="showLabelTitle ? label : ''"
@@ -47,89 +47,89 @@
47
47
  <slot name="content">
48
48
  <span>{{ label }}</span>
49
49
  </slot>
50
- </label>
50
+ </label>
51
51
  </div>
52
52
  </template>
53
53
 
54
- <script>
54
+ <script setup>
55
55
  //FIGMA CONTROLS & SELECTORS https://www.figma.com/file/Tto8hrNlSfuPcwd1pfqogF/%E2%9A%A1%EF%B8%8F-Design-System?node-id=1768%3A64852
56
- import { randomString } from '../../util/GeneralFunctions'
56
+ import { randomString } from '../../util/GeneralFunctions.js'
57
+ import { defineProps, defineEmits, computed, useAttrs } from 'vue'
57
58
 
58
- export default {
59
- name: 'PsCheckboxSimple',
60
- props: {
61
- /**
62
- * It sets the label of the checkbox input.
63
- */
64
- label: {
65
- type: String,
66
- },
67
- /**
68
- * It disables the checkbox input.
69
- */
70
- withPrevent: {
71
- type: Boolean,
72
- default: false,
73
- },
59
+ const emit = defineEmits(['change', 'click'])
74
60
 
75
- disabled: {
76
- type: Boolean,
77
- default: false,
78
- },
79
- /**
80
- * Sets the input as checked
81
- */
82
- checked: {
83
- type: Boolean,
84
- default: false
85
- },
86
- /**
87
- * Add html attributes to the element input
88
- */
89
- inputAttrs: {
90
- type: Object,
91
- default: () => ({})
92
- },
93
- /**
94
- * It set the of the checkbox input. eg: big and small.
95
- */
96
- size: {
97
- type: String,
98
- default: 'big',
99
- validator: (value)=> ['big', 'small'].includes(value)
100
- },
101
- /**
102
- * It set the layout of the checkbox input. eg: default and mixed.
103
- */
104
- layout:{
105
- type: String,
106
- default: 'default',
107
- validator: (value)=> ['default','mixed'].includes(value)
108
- },
109
- showLabelTitle: {
110
- type: Boolean,
111
- default: true
112
- }
61
+ const props = defineProps({
62
+ label: {
63
+ type: String,
64
+ default: '',
113
65
  },
114
- inheritAttrs: false,
115
- computed:{
116
- getComponentClass(){
117
- return `size-${this.size} layout-${this.layout}`
118
- },
119
- getInputId() {
120
- if (this?.inputAttrs?.id) {
121
- return this.inputAttrs.id
122
- } else if (this?.$attrs?.id) {
123
- return this.$attrs.id
124
- } else {
125
- return randomString(16)
126
- }
127
- },
128
- getComponentAttrs() {
129
- let componentAttrs = { ... this.$attrs }
130
- delete componentAttrs.id
131
- return componentAttrs
132
- }
66
+ /**
67
+ * It disables the checkbox input.
68
+ */
69
+ withPrevent: {
70
+ type: Boolean,
71
+ default: false,
133
72
  },
134
- }
73
+
74
+ disabled: {
75
+ type: Boolean,
76
+ default: false,
77
+ },
78
+ /**
79
+ * Sets the input as checked
80
+ */
81
+ checked: {
82
+ type: Boolean,
83
+ default: false,
84
+ },
85
+ /**
86
+ * Add html attributes to the element input
87
+ */
88
+ inputAttrs: {
89
+ type: Object,
90
+ default: () => ({}),
91
+ },
92
+ /**
93
+ * It set the of the checkbox input. eg: big and small.
94
+ */
95
+ size: {
96
+ type: String,
97
+ default: 'big',
98
+ validator: (value) => ['big', 'small'].includes(value),
99
+ },
100
+ /**
101
+ * It set the layout of the checkbox input. eg: default and mixed.
102
+ */
103
+ layout: {
104
+ type: String,
105
+ default: 'default',
106
+ validator: (value) => ['default', 'mixed'].includes(value),
107
+ },
108
+ showLabelTitle: {
109
+ type: Boolean,
110
+ default: true,
111
+ },
112
+ })
113
+ const attrs = useAttrs()
114
+
115
+ const getComponentClass = computed(() => {
116
+ return `size-${props.size} layout-${props.layout}`
117
+ })
118
+
119
+
120
+ const getInputId = computed(() => {
121
+ if (props?.inputAttrs?.id) {
122
+ return props.inputAttrs.id
123
+ } else if (attrs?.id) {
124
+ return attrs.id
125
+ } else {
126
+ return randomString(16)
127
+ }
128
+ })
129
+
130
+ const getComponentAttrs = computed(() => {
131
+ let componentAttrs = { ...attrs }
132
+ delete componentAttrs.id
133
+ return componentAttrs
134
+ })
135
135
  </script>