@policystudio/policy-studio-ui-vue 1.1.88 → 1.1.90-access.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +75 -67
  3. package/.github/workflows/deploy-storybook.yml +5 -5
  4. package/.nvmrc +1 -0
  5. package/dist/css/psui_styles_output.css +6617 -0
  6. package/dist/index.d.ts +51 -0
  7. package/dist/index.js +106 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/util/GeneralFunctions.d.ts +3 -0
  10. package/dist/util/GeneralFunctions.js +35 -0
  11. package/dist/util/GeneralFunctions.js.map +1 -0
  12. package/dist/util/directives.d.ts +1 -0
  13. package/dist/util/directives.js +22 -0
  14. package/dist/util/directives.js.map +1 -0
  15. package/dist/util/imageLoader.d.ts +6 -0
  16. package/dist/util/imageLoader.js +52 -0
  17. package/dist/util/imageLoader.js.map +1 -0
  18. package/doc/.nvmrc +1 -0
  19. package/doc/.storybook/PolicyStudio.ts +11 -0
  20. package/doc/.storybook/main.ts +27 -0
  21. package/doc/.storybook/manager.ts +7 -0
  22. package/{.storybook/preview.js → doc/.storybook/preview.ts} +2 -3
  23. package/doc/package-lock.json +22653 -0
  24. package/doc/package.json +71 -0
  25. package/doc/shims-vue.d.ts +6 -0
  26. package/{src/stories/Accordion.stories.js → doc/src/stories/Accordion.stories.ts} +4 -5
  27. package/{src/stories/BadgeWithIcon.stories.js → doc/src/stories/BadgeWithIcon.stories.ts} +2 -2
  28. package/{src/stories/BarChart.stories.js → doc/src/stories/BarChart.stories.ts} +2 -2
  29. package/{src/stories/Breadcrumb.stories.js → doc/src/stories/Breadcrumb.stories.ts} +2 -5
  30. package/{src/stories/Button.stories.js → doc/src/stories/Button.stories.ts} +130 -130
  31. package/{src/stories/CardInfos.stories.js → doc/src/stories/CardInfos.stories.ts} +2 -3
  32. package/{src/stories/ChartLegend.stories.js → doc/src/stories/ChartLegend.stories.ts} +2 -3
  33. package/{src/stories/Checkbox.stories.js → doc/src/stories/Checkbox.stories.ts} +2 -2
  34. package/{src/stories/CheckboxSimple.stories.js → doc/src/stories/CheckboxSimple.stories.ts} +2 -2
  35. package/{src/stories/Chips.stories.js → doc/src/stories/Chips.stories.ts} +22 -23
  36. package/{src/stories/ClimateZoneBadge.stories.js → doc/src/stories/ClimateZoneBadge.stories.ts} +3 -2
  37. package/doc/src/stories/Collapse.stories.ts +46 -0
  38. package/{src/stories/CostEffectBar.stories.js → doc/src/stories/CostEffectBar.stories.ts} +3 -2
  39. package/{src/stories/Datatable.stories.js → doc/src/stories/Datatable.stories.ts} +7 -4
  40. package/{src/stories/DateCardInfo.stories.js → doc/src/stories/DateCardInfo.stories.ts} +2 -6
  41. package/{src/stories/Dialog.stories.js → doc/src/stories/Dialog.stories.ts} +2 -2
  42. package/{src/stories/Draggable.stories.js → doc/src/stories/Draggable.stories.ts} +3 -2
  43. package/{src/stories/Dropdown.stories.js → doc/src/stories/Dropdown.stories.ts} +4 -3
  44. package/{src/stories/DropdownList.stories.js → doc/src/stories/DropdownList.stories.ts} +4 -2
  45. package/{src/stories/ElevationSystem.stories.mdx → doc/src/stories/ElevationSystem.mdx} +1 -1
  46. package/{src/stories/HighlightRippleDot.stories.js → doc/src/stories/HighlightRippleDot.stories.ts} +3 -2
  47. package/{src/stories/Icon.stories.js → doc/src/stories/Icon.stories.ts} +3 -1
  48. package/{src/stories/InlineSelector.stories.js → doc/src/stories/InlineSelector.stories.ts} +2 -2
  49. package/{src/stories/Input.stories.js → doc/src/stories/Input.stories.ts} +7 -4
  50. package/{src/stories/InputSelect.stories.js → doc/src/stories/InputSelect.stories.ts} +3 -2
  51. package/{src/stories/InputTextArea.stories.js → doc/src/stories/InputTextArea.stories.ts} +2 -2
  52. package/{src/stories/Introduction.stories.mdx → doc/src/stories/Introduction.mdx} +101 -101
  53. package/{src/stories/MiniTag.stories.js → doc/src/stories/MiniTag.stories.ts} +9 -2
  54. package/{src/stories/ProgressBar.stories.js → doc/src/stories/ProgressBar.stories.ts} +3 -2
  55. package/{src/stories/RadioButton.stories.js → doc/src/stories/RadioButton.stories.ts} +2 -2
  56. package/{src/stories/RadioButtonSimple.stories.js → doc/src/stories/RadioButtonSimple.stories.ts} +2 -2
  57. package/{src/stories/SimpleAlert.stories.js → doc/src/stories/SimpleAlert.stories.ts} +3 -2
  58. package/{src/stories/Slider.stories.js → doc/src/stories/Slider.stories.ts} +6 -2
  59. package/{src/stories/Switch.stories.js → doc/src/stories/Switch.stories.ts} +2 -2
  60. package/{src/stories/TabHeader.stories.js → doc/src/stories/TabHeader.stories.ts} +6 -1
  61. package/{src/stories/TableResults.stories.js → doc/src/stories/TableResults.stories.ts} +11 -7
  62. package/{src/stories/TagScope.stories.js → doc/src/stories/TagScope.stories.ts} +3 -2
  63. package/{src/stories/TestimonialCard.stories.js → doc/src/stories/TestimonialCard.stories.ts} +3 -3
  64. package/{src/stories/Toast.stories.js → doc/src/stories/Toast.stories.ts} +2 -2
  65. package/{src/stories/Toggle.stories.js → doc/src/stories/Toggle.stories.ts} +7 -4
  66. package/{src/stories/Tooltip.stories.js → doc/src/stories/Tooltip.stories.ts} +6 -6
  67. package/{src/stories/Typography.stories.mdx → doc/src/stories/Typography.mdx} +107 -105
  68. package/doc/tsconfig.json +17 -0
  69. package/package.json +43 -39
  70. package/scripts/gulp.js +11 -0
  71. package/scripts/kill-port.sh +12 -0
  72. package/src/App.vue +30 -0
  73. package/src/assets/scss/base.scss +3 -30
  74. package/src/assets/scss/components/PsAccordion.scss +2 -2
  75. package/src/assets/scss/components/PsButton.scss +7 -1
  76. package/src/assets/scss/components/PsChips.scss +12 -7
  77. package/src/assets/scss/components/PsCollapse.scss +71 -0
  78. package/src/assets/scss/components/PsCostEffectBar.scss +4 -4
  79. package/src/assets/scss/components/PsDataTable.scss +1 -1
  80. package/src/assets/scss/components/PsDateCardInfo.scss +4 -5
  81. package/src/assets/scss/components/PsDialog.scss +7 -0
  82. package/src/assets/scss/components/PsDropdownList.scss +1 -1
  83. package/src/assets/scss/components/PsInput.scss +9 -0
  84. package/src/assets/scss/components/PsProgressBar.scss +4 -4
  85. package/src/assets/scss/components/PsTabHeader.scss +57 -2
  86. package/src/assets/scss/components/PsTableResults.scss +53 -22
  87. package/src/assets/scss/components/PsTestimonialCard.scss +1 -1
  88. package/src/assets/scss/components/PsTooltip.scss +149 -145
  89. package/src/components/accordion/PsAccordion.vue +20 -21
  90. package/src/components/accordion/PsAccordionItem.vue +121 -81
  91. package/src/components/badges-and-tags/PsBadgeWithIcon.vue +37 -36
  92. package/src/components/badges-and-tags/PsCardInfos.vue +40 -40
  93. package/src/components/badges-and-tags/PsChartLegend.vue +50 -41
  94. package/src/components/badges-and-tags/PsClimateZoneBadge.vue +13 -19
  95. package/src/components/badges-and-tags/PsCostEffectBar.vue +28 -61
  96. package/src/components/badges-and-tags/PsDateCardInfo.vue +17 -18
  97. package/src/components/badges-and-tags/PsHighlightRippleDot.vue +4 -3
  98. package/src/components/badges-and-tags/PsMiniTag.vue +39 -41
  99. package/src/components/badges-and-tags/PsProgressBar.vue +72 -68
  100. package/src/components/badges-and-tags/PsTagScope.vue +17 -22
  101. package/src/components/badges-and-tags/PsTestimonialCard.vue +25 -30
  102. package/src/components/buttons/PsButton.vue +90 -98
  103. package/src/components/chips/PsChips.vue +118 -103
  104. package/src/components/collapse/PsCollapse.vue +124 -0
  105. package/src/components/controls/PsCheckbox.vue +86 -83
  106. package/src/components/controls/PsCheckboxSimple.vue +97 -97
  107. package/src/components/controls/PsDraggable.vue +100 -99
  108. package/src/components/controls/PsInlineSelector.vue +111 -113
  109. package/src/components/controls/PsRadioButton.vue +72 -60
  110. package/src/components/controls/PsRadioButtonSimple.vue +81 -77
  111. package/src/components/controls/PsSlider.vue +190 -181
  112. package/src/components/controls/PsSwitch.vue +63 -54
  113. package/src/components/controls/PsToggle.vue +62 -57
  114. package/src/components/data-graphics/PsBarChart.vue +22 -23
  115. package/src/components/datatable/PsDataTable.vue +70 -65
  116. package/src/components/datatable/PsDataTableItem.vue +30 -32
  117. package/src/components/forms/PsDropdown.vue +173 -166
  118. package/src/components/forms/PsDropdownList.vue +133 -130
  119. package/src/components/forms/PsInput.vue +163 -146
  120. package/src/components/forms/PsInputSelect.vue +121 -100
  121. package/src/components/forms/PsInputTextArea.vue +84 -74
  122. package/src/components/navigations/PsBreadcrumb.vue +25 -34
  123. package/src/components/notifications/PsDialog.vue +67 -60
  124. package/src/components/notifications/PsSimpleAlert.vue +47 -37
  125. package/src/components/notifications/PsToast.vue +48 -42
  126. package/src/components/table-results/PsTableResults.vue +534 -506
  127. package/src/components/table-results/PsTableResultsBody.vue +69 -68
  128. package/src/components/table-results/PsTableResultsHead.vue +108 -69
  129. package/src/components/table-results/PsTableResultsHeadComparison.vue +88 -69
  130. package/src/components/table-results/PsTableResultsHeadFlexible.vue +112 -72
  131. package/src/components/table-results/PsTableResultsRow.vue +61 -58
  132. package/src/components/tabs/PsTabHeader.vue +138 -116
  133. package/src/components/tooltip/PsDialogTooltip.vue +112 -107
  134. package/src/components/tooltip/PsRichTooltip.vue +46 -43
  135. package/src/components/tooltip/PsTooltip.vue +126 -122
  136. package/src/components/ui/PsDotLoader.vue +6 -10
  137. package/src/components/ui/PsIcon.vue +149 -134
  138. package/src/index.ts +159 -0
  139. package/src/tsconfig.json +12 -0
  140. package/src/types/index.d.ts +6 -0
  141. package/src/util/GeneralFunctions.js +16 -7
  142. package/src/util/directives.ts +24 -0
  143. package/src/util/imageLoader.js +14 -7
  144. package/tailwind.config.js +12 -3
  145. package/tsconfig.json +47 -0
  146. package/.storybook/PolicyStudio.js +0 -10
  147. package/.storybook/eventBus.js +0 -3
  148. package/.storybook/main.js +0 -25
  149. package/.storybook/manager.js +0 -6
  150. package/babel.config.js +0 -3
  151. package/backup-package-lock.json +0 -37194
  152. package/dist/css/psui_styles.css +0 -110890
  153. package/postcss.config.js +0 -8
  154. package/src/components/playground/PsScrollBar.vue +0 -248
  155. package/src/index.js +0 -167
  156. package/src/stories/Playground.stories.js +0 -16
  157. /package/{src → doc/src}/assets/images/multifamily-units.svg +0 -0
  158. /package/{src → doc/src}/assets/images/policy-studio.svg +0 -0
  159. /package/{src/contents/ComparisonData.js → doc/src/contents/ComparisonData.ts} +0 -0
  160. /package/{src/contents/FlexibleData.js → doc/src/contents/FlexibleData.ts} +0 -0
  161. /package/{src/contents/ResultsData.js → doc/src/contents/ResultsData.ts} +0 -0
  162. /package/{src/stories/Colors.stories.mdx → doc/src/stories/Colors.mdx} +0 -0
  163. /package/{src → doc/src}/stories/assets/code-brackets.svg +0 -0
  164. /package/{src → doc/src}/stories/assets/colors.svg +0 -0
  165. /package/{src → doc/src}/stories/assets/comments.svg +0 -0
  166. /package/{src → doc/src}/stories/assets/direction.svg +0 -0
  167. /package/{src → doc/src}/stories/assets/flow.svg +0 -0
  168. /package/{src → doc/src}/stories/assets/plugin.svg +0 -0
  169. /package/{src → doc/src}/stories/assets/repo.svg +0 -0
  170. /package/{src → doc/src}/stories/assets/stackalt.svg +0 -0
@@ -1,125 +1,126 @@
1
1
  <template>
2
2
  <div class="psui-el-draggable">
3
- <div class="psui-el-draggable-wrapper"
3
+ <div
4
+ class="psui-el-draggable-wrapper"
4
5
  v-for="(columnGroup, indexColumnGroup) in getColumns.columnGroups"
5
6
  :key="indexColumnGroup"
6
7
  :ref="indexColumnGroup"
7
8
  :id="`edit-group-${indexColumnGroup}`"
8
9
  >
9
- <PsTooltip
10
- position="top"
11
- :ignoreDialog="!columnGroup.disabled"
12
- class="w-full"
13
- >
14
- <template v-slot:trigger>
15
- <div
16
- class="psui-el-draggable-wrapper-title"
17
- :class="{'psui-opacity-50 psui-pointer-events-none':columnGroup.disabled}"
18
- draggable="true"
19
- @dragstart="$emit('drag-start-group', indexColumnGroup)"
20
- @dragend="$emit('drag-end-group', indexColumnGroup)"
21
- @dragover="$emit('drag-over-group', indexColumnGroup)"
22
- >
23
- <span class="flex psui-items-center">
24
- <p>{{ columnGroup.title }}</p>
25
- <PsIcon
26
- class="psui-el-draggable-wrapper-title-icon"
27
- v-if="columnGroup.hasHelper && columnGroup.hasHelper.showOnEditHideColumns"
28
- icon="info"
29
- size="16"
30
- :icon-classes="columnGroup.disabled ? 'psui-ml-2 psui-text-gray-50':'psui-ml-2 psui-text-blue-50 psui-cursor-pointer'"
31
- @click.native="$emit('column-group-helper', columnGroup.hasHelper)"
32
- />
33
- </span>
34
- <i class="material-icons-round">drag_indicator</i>
35
- </div>
36
-
37
- <div
38
- class="psui-el-draggable-wrapper-list"
39
- :class="{'psui-opacity-50 psui-pointer-events-none':columnGroup.disabled}"
10
+ <PsTooltip
11
+ position="top"
12
+ :ignore-dialog="!columnGroup.disabled"
13
+ class="w-full"
40
14
  >
41
- <div
42
- v-for="(column, indexColumn) in columnGroup.columns"
43
- :key="`edit-columns-column-${indexColumnGroup}-${indexColumn}`"
44
- :id="`edit-columns-column-${indexColumnGroup}-${indexColumn}`"
45
- class="psui-el-draggable-item"
46
- draggable="true"
47
- @dragstart="$emit('drag-start-item', { indexColumnGroup, indexColumn }, $event)"
48
- @dragover="$emit('drag-over-item', { indexColumnGroup, indexColumn }, $event)"
49
- @dragend="$emit('drag-end-item', $event)"
50
- v-tooltip="column.tooltip || undefined"
51
- >
15
+ <template #trigger>
52
16
  <div
53
- class="psui-w-full psui-flex psui-items-center"
17
+ class="psui-el-draggable-wrapper-title"
18
+ :class="{ 'psui-opacity-50 psui-pointer-events-none': columnGroup.disabled }"
19
+ draggable="true"
20
+ @dragstart="emit('drag-start-group', indexColumnGroup)"
21
+ @dragend="emit('drag-end-group', indexColumnGroup)"
22
+ @dragover="emit('drag-over-group', indexColumnGroup)"
54
23
  >
55
- <span class="psui-el-draggable-item-title psui-flex psui-flex-row psui-items-center">
56
- <PsCheckboxSimple
57
- size="small"
58
- :label="column.title"
59
- :class="{'active' : column.isActive}"
60
- :checked="column.isActive"
61
- :disabled="column.isDisabled"
62
- class="psui-el-draggable-item-checkbox"
63
- @change="$emit('on-select-item', { studyKey: getColumns.key, indexColumnGroup, indexColumn, columnGroupKey: columnGroup.key })"
64
- />
24
+ <span class="flex psui-items-center">
25
+ <p>{{ columnGroup.title }}</p>
65
26
  <PsIcon
66
- class="psui-el-draggable-item-title-icon"
67
- v-if="column.hasHelper && column.hasHelper.showOnEditHideColumns"
27
+ class="psui-el-draggable-wrapper-title-icon"
28
+ v-if="columnGroup.hasHelper && columnGroup.hasHelper.showOnEditHideColumns"
68
29
  icon="info"
69
30
  size="16"
70
- :icon-classes="columnGroup.disabled ? 'psui-ml-2 psui-text-gray-50':'psui-ml-2 psui-text-blue-50 psui-cursor-pointer'"
71
- @click.native="$emit('column-helper', column.hasHelper)"
31
+ :icon-classes="columnGroup.disabled ? 'psui-ml-2 psui-text-gray-50' : 'psui-ml-2 psui-text-blue-50 psui-cursor-pointer'"
32
+ @click="emit('column-group-helper', columnGroup.hasHelper)"
72
33
  />
73
34
  </span>
74
- <span class="psui-el-draggable-item-append">
75
- <i class="psui-icon">drag_indicator</i>
76
- </span>
35
+ <i class="material-icons-round">drag_indicator</i>
77
36
  </div>
78
- </div>
79
- </div>
80
- </template>
81
- <template v-slot:content class="!psui-opacity-0">
82
- {{columnGroup.disabledTitle}}
83
- </template>
37
+
38
+ <div
39
+ class="psui-el-draggable-wrapper-list"
40
+ :class="{ 'psui-opacity-50 psui-pointer-events-none': columnGroup.disabled }"
41
+ >
42
+ <div
43
+ v-for="(column, indexColumn) in columnGroup.columns"
44
+ :key="`edit-columns-column-${indexColumnGroup}-${indexColumn}`"
45
+ :id="`edit-columns-column-${indexColumnGroup}-${indexColumn}`"
46
+ class="psui-el-draggable-item"
47
+ draggable="true"
48
+ @dragstart="emit('drag-start-item', { indexColumnGroup, indexColumn }, $event)"
49
+ @dragover="emit('drag-over-item', { indexColumnGroup, indexColumn }, $event)"
50
+ @dragend="emit('drag-end-item', $event)"
51
+ v-tooltip="column.tooltip || undefined"
52
+ >
53
+ <div class="psui-w-full psui-flex psui-items-center">
54
+ <span class="psui-el-draggable-item-title psui-flex psui-flex-row psui-items-center">
55
+ <PsCheckboxSimple
56
+ size="small"
57
+ :label="column.title"
58
+ :class="{ active: column.isActive }"
59
+ :checked="column.isActive"
60
+ :disabled="column.isDisabled"
61
+ class="psui-el-draggable-item-checkbox"
62
+ @change="emit('on-select-item', { studyKey: getColumns.key, indexColumnGroup, indexColumn, columnGroupKey: columnGroup.key })"
63
+ />
64
+ <PsIcon
65
+ class="psui-el-draggable-item-title-icon"
66
+ v-if="column.hasHelper && column.hasHelper.showOnEditHideColumns"
67
+ icon="info"
68
+ size="16"
69
+ :icon-classes="columnGroup.disabled ? 'psui-ml-2 psui-text-gray-50' : 'psui-ml-2 psui-text-blue-50 psui-cursor-pointer'"
70
+ @click="emit('column-helper', column.hasHelper)"
71
+ />
72
+ </span>
73
+ <span class="psui-el-draggable-item-append">
74
+ <i class="psui-icon">drag_indicator</i>
75
+ </span>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </template>
80
+ <template #content>
81
+ {{ columnGroup.disabledTitle }}
82
+ </template>
84
83
  </PsTooltip>
85
84
  </div>
86
85
  </div>
87
86
  </template>
88
87
 
89
- <script>
88
+ <script setup>
90
89
 
91
- export default {
92
- name: 'PsDraggable',
93
- props: {
94
- /**
95
- * It sets the data that will be used.
96
- */
97
- getColumns: {
98
- type: Object,
99
- },
100
- /**
101
- * It sets the module which will be used to set getters and actions.
102
- */
103
- module:{
104
- type: String
105
- },
90
+ const emit = defineEmits([
91
+ 'drag-start-group',
92
+ 'drag-end-group',
93
+ 'drag-over-group',
94
+ 'drag-start-item',
95
+ 'drag-over-item',
96
+ 'drag-end-item',
97
+ 'column-helper',
98
+ 'on-select-item',
99
+ 'column-group-helper',
100
+ ])
106
101
 
107
- /**
108
- * It disables the input. All mouse events are disabled.
109
- */
110
- disabled: {
111
- type: Boolean,
112
- default: false
113
- },
102
+ defineProps({
103
+ /**
104
+ * It sets the data that will be used.
105
+ */
106
+ getColumns: {
107
+ type: Object,
108
+ default: () => ({})
114
109
  },
115
- computed: {
116
- getStatus() {
117
- if (this.column.key == 'compliance_margin') {
118
- return true
119
- } else {
120
- return false
121
- }
122
- },
110
+ /**
111
+ * It sets the module which will be used to set getters and actions.
112
+ */
113
+ module: {
114
+ type: String,
115
+ default: '',
116
+ },
117
+
118
+ /**
119
+ * It disables the input. All mouse events are disabled.
120
+ */
121
+ disabled: {
122
+ type: Boolean,
123
+ default: false,
123
124
  },
124
- }
125
+ })
125
126
  </script>
@@ -1,44 +1,43 @@
1
1
  <template>
2
- <div
2
+ <div
3
3
  class="psui-el-inline-selector"
4
- @keydown.up="$emit('keydown-up', $event)"
5
- @keydown.down="$emit('keydown-down', $event)"
6
- @keydown.enter="$emit('keydown-enter', $event)"
7
- @keydown.tab="$emit('keydown-tab',$event)"
8
- @keydown.esc="$emit('keydown-esc',$event)"
9
- @mouseleave="$emit('mouse-leave',$event)"
4
+ @keydown.up="emit('keydown-up', $event)"
5
+ @keydown.down="emit('keydown-down', $event)"
6
+ @keydown.enter="emit('keydown-enter', $event)"
7
+ @keydown.tab="emit('keydown-tab', $event)"
8
+ @keydown.esc="emit('keydown-esc', $event)"
9
+ @mouseleave="emit('mouse-leave', $event)"
10
10
  >
11
-
12
- <div class='psui-el-inline-selector-input-wrapper'>
11
+ <div class="psui-el-inline-selector-input-wrapper">
13
12
  <span> {{ search ? search : placeholder }} </span>
14
13
  <input
15
14
  ref="input"
16
15
  :label="label"
17
16
  :placeholder="placeholder"
18
- @input="$emit('input', $event)"
19
- @focus="$emit('focus', $event)"
20
- @blur="$emit('blur', $event)"
17
+ @input="emit('input', $event)"
18
+ @focus="emit('focus', $event)"
19
+ @blur="emit('blur', $event)"
21
20
  autocomplete="chrome-off"
22
21
  autocorrect="off"
23
22
  autocapitalize="off"
24
23
  spellcheck="false"
25
- />
24
+ >
26
25
  </div>
27
26
  <transition
28
- enter-active-class="transition ease-out duration-100 transform"
29
- enter-class="opacity-0 scale-95"
30
- enter-to-class="opacity-100 scale-100"
31
- leave-active-class="transition ease-in duration-100 transform"
32
- leave-class="opacity-100 scale-100"
33
- leave-to-class="opacity-0 scale-95"
34
- >
35
- <div
27
+ enter-active-class="transition ease-out duration-100 transform"
28
+ enter-class="opacity-0 scale-95"
29
+ enter-to-class="opacity-100 scale-100"
30
+ leave-active-class="transition ease-in duration-100 transform"
31
+ leave-class="opacity-100 scale-100"
32
+ leave-to-class="opacity-0 scale-95"
33
+ >
34
+ <div
36
35
  v-if="search"
37
- role="menu"
36
+ role="menu"
38
37
  aria-orientation="vertical"
39
38
  class="psui-el-inline-selector-dropdown-wrapper"
40
39
  >
41
- <slot name='loader'></slot>
40
+ <slot name="loader" />
42
41
  <div class="psui-el-inline-selector-dropdown">
43
42
  <div v-if="requestFetched && !jurisdictions.length">
44
43
  <h3>Hmmmm</h3>
@@ -50,12 +49,12 @@
50
49
  v-for="(jurisdiction, index) in jurisdictions"
51
50
  :key="`dropdown-jurisdiction-${jurisdiction.id}`"
52
51
  :id="`jurisdiction-list-item-${index}`"
53
- @click="$emit('click', $event)"
54
- @mouseover="('mouse-over', $event)"
52
+ @click="emit('click', $event)"
53
+ @mouseover="'mouse-over', $event"
55
54
  >
56
- <span >
57
- <h3>{{jurisdiction.title}}</h3>
58
- <h3 >{{jurisdiction.type}}</h3>
55
+ <span>
56
+ <h3>{{ jurisdiction.title }}</h3>
57
+ <h3>{{ jurisdiction.type }}</h3>
59
58
  </span>
60
59
  </li>
61
60
  </ul>
@@ -65,89 +64,88 @@
65
64
  </div>
66
65
  </template>
67
66
 
68
- <script>
69
- export default {
70
- name: 'PsInlineSelector',
71
- props: {
72
- /**
73
- * It sets the default width of the inline selector.
74
- */
75
- width: {
76
- default: 244
77
- },
78
- /**
79
- * It sets if it should receive focus or not when componented is mounted.
80
- */
81
- focusOnMount: {
82
- default: false
83
- },
84
- /**
85
- * It sets if the component should be scrollable.
86
- */
87
- shouldScroll: {
88
- default: false
89
- },
90
- /**
91
- * It sets the label of the component.
92
- */
93
- label: {
94
- type: String,
95
- default: 'Type a City or County'
96
- },
97
- selectOnlyFirstClimateZone: {
98
- type: Boolean,
99
- default: false
100
- },
101
- /**
102
- * It sets the jurisdiction selected.
103
- */
104
- jurisdictionSelected: {
105
- type: [ Object, Boolean ]
106
- },
107
- /**
108
- * It gets and set the data that was written.
109
- */
110
- search: {
111
- type: String,
112
- default: '',
113
- required: true
114
- },
115
- /**
116
- * It provides all the jurisdictions.
117
- */
118
- jurisdictions: {
119
- type: Array,
120
- default: () => [],
121
- required: true
122
- },
123
- /**
124
- * It is a helper for checking if fetching data was successful.
125
- */
126
- requestFetched: {
127
- type: Boolean,
128
- },
129
- showDropDown:{
130
- type: Boolean,
131
- default: true,
132
- },
133
- currentSelected:{
134
- type: Number,
135
- default: 0,
136
- },
137
- /**
138
- * It sets if the component is focused or not.
139
- */
140
- isFocused:{
141
- type: Boolean,
142
- default: false,
143
- },
144
- /**
145
- * It sets the placeholder of the component.
146
- */
147
- placeholder:{
148
- type: String,
149
- }
150
- }
151
- }
152
- </script>
67
+ <script setup>
68
+
69
+ const emit = defineEmits(['keydown-up', 'keydown-down', 'keydown-enter', 'keydown-tab', 'keydown-esc', 'mouse-leave', 'input', 'focus', 'blur', 'click'])
153
70
 
71
+ defineProps({
72
+ /**
73
+ * It sets the default width of the inline selector.
74
+ */
75
+ width: {
76
+ default: 244,
77
+ },
78
+ /**
79
+ * It sets if it should receive focus or not when componented is mounted.
80
+ */
81
+ focusOnMount: {
82
+ default: false,
83
+ },
84
+ /**
85
+ * It sets if the component should be scrollable.
86
+ */
87
+ shouldScroll: {
88
+ default: false,
89
+ },
90
+ /**
91
+ * It sets the label of the component.
92
+ */
93
+ label: {
94
+ type: String,
95
+ default: 'Type a City or County',
96
+ },
97
+ selectOnlyFirstClimateZone: {
98
+ type: Boolean,
99
+ default: false,
100
+ },
101
+ /**
102
+ * It sets the jurisdiction selected.
103
+ */
104
+ jurisdictionSelected: {
105
+ type: [Object, Boolean],
106
+ },
107
+ /**
108
+ * It gets and set the data that was written.
109
+ */
110
+ search: {
111
+ type: String,
112
+ default: '',
113
+ required: true,
114
+ },
115
+ /**
116
+ * It provides all the jurisdictions.
117
+ */
118
+ jurisdictions: {
119
+ type: Array,
120
+ default: () => [],
121
+ required: true,
122
+ },
123
+ /**
124
+ * It is a helper for checking if fetching data was successful.
125
+ */
126
+ requestFetched: {
127
+ type: Boolean,
128
+ },
129
+ showDropDown: {
130
+ type: Boolean,
131
+ default: true,
132
+ },
133
+ currentSelected: {
134
+ type: Number,
135
+ default: 0,
136
+ },
137
+ /**
138
+ * It sets if the component is focused or not.
139
+ */
140
+ isFocused: {
141
+ type: Boolean,
142
+ default: false,
143
+ },
144
+ /**
145
+ * It sets the placeholder of the component.
146
+ */
147
+ placeholder: {
148
+ type: String,
149
+ },
150
+ })
151
+ </script>
@@ -1,71 +1,83 @@
1
1
  <template>
2
- <div class='psui-el-radio' :class="[getComponentClass, {'disabled':disabled}]" >
2
+ <div
3
+ class="psui-el-radio"
4
+ :class="[getComponentClass, { disabled: disabled }]"
5
+ >
3
6
  <input
4
7
  :id="inputId"
5
8
  type="radio"
9
+ :name="inputId"
6
10
  :value="inputValue"
7
11
  v-model="model"
8
- :disabled='disabled'
9
- />
10
- <label :for="inputId" class="psui-el-checkmark"><span>{{ label }}</span></label>
12
+ :disabled="disabled"
13
+ :checked="isChecked"
14
+ >
15
+ <label
16
+ :for="inputId"
17
+ class="psui-el-checkmark"
18
+ ><span>{{ label }}</span></label>
11
19
  </div>
12
-
13
20
  </template>
14
-
15
- <script>
21
+
22
+ <script setup>
16
23
  //FIGMA CONTROLS & SELECTORS https://www.figma.com/file/Tto8hrNlSfuPcwd1pfqogF/%E2%9A%A1%EF%B8%8F-Design-System?node-id=1768%3A64852
17
-
18
- export default {
19
- name: 'PsRadioButton',
20
- props: {
21
- inputId: {
22
- type: String,
23
- default: ''
24
- },
25
- /**
26
- * It sets the label of the radio button.
27
- */
28
- label: {
29
- type: String,
30
- default: '',
31
- },
32
- /**
33
- * It's the value of the checkbox
34
- */
35
- inputValue:{
36
- type: [String, Object],
37
- },
38
- value:{
39
- type: [String, Object]
40
- },
41
- /**
42
- * It disables the radio button. All mouse events are disabled.
43
- */
44
- disabled: {
45
- type: Boolean,
46
- default: false
47
- },
48
- /**
49
- * It sets the size of the radio button. eg: big and small.
50
- */
51
- size: {
52
- type: String,
53
- default: 'big',
54
- validator: (value) => ['big', 'small'].includes(value)
55
- },
24
+ import { computed } from 'vue'
25
+
26
+ const props = defineProps({
27
+ inputId: {
28
+ type: String,
29
+ default: '',
56
30
  },
57
- computed: {
58
- getComponentClass(){
59
- return `size-${this.size}`
60
- },
61
- model: {
62
- get(){
63
- return this.value
64
- },
65
- set(value){
66
- this.$emit('input', value)
67
- }
68
- }
31
+ /**
32
+ * It sets the label of the radio button.
33
+ */
34
+ label: {
35
+ type: String,
36
+ default: '',
69
37
  },
70
- }
71
- </script>
38
+ /**
39
+ * It's the value of the checkbox
40
+ */
41
+ inputValue: {
42
+ type: [String, Object],
43
+ default: '',
44
+ },
45
+ value: {
46
+ type: [String, Object],
47
+ default: '',
48
+ },
49
+ /**
50
+ * It disables the radio button. All mouse events are disabled.
51
+ */
52
+ disabled: {
53
+ type: Boolean,
54
+ default: false,
55
+ },
56
+ /**
57
+ * It sets the size of the radio button. eg: big and small.
58
+ */
59
+ size: {
60
+ type: String,
61
+ default: 'big',
62
+ validator: (value) => ['big', 'small'].includes(value),
63
+ },
64
+ })
65
+
66
+ const emit = defineEmits(['input'])
67
+ const getComponentClass = computed(() => {
68
+ return `size-${props.size}`
69
+ })
70
+
71
+ const model = computed({
72
+ get: () => {
73
+ return props.value
74
+ },
75
+ set: (value) => {
76
+ emit('input', value)
77
+ },
78
+ })
79
+
80
+ const isChecked = computed(() => {
81
+ return props.inputValue === props.value
82
+ })
83
+ </script>