@weni/unnnic-system 3.12.8 → 3.14.0-alpha-teleports.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 (107) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +9 -1
  3. package/dist/{es-62c1e8d3.mjs → es-0d53b5b2.mjs} +1 -1
  4. package/dist/{index-ef197fd5.mjs → index-d7070de8.mjs} +99880 -96723
  5. package/dist/index.d.ts +5588 -1607
  6. package/dist/{pt-br-198b147b.mjs → pt-br-bf4e1f97.mjs} +1 -1
  7. package/dist/style.css +1 -1
  8. package/dist/unnnic.mjs +233 -203
  9. package/dist/unnnic.umd.js +48 -44
  10. package/package.json +3 -2
  11. package/src/assets/scss/tailwind.scss +8 -0
  12. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +1 -1
  13. package/src/components/ChartFunnel/DefaultFunnel/ChartDefaultFunnelBase.vue +2 -1
  14. package/src/components/ChartFunnel/SvgFunnel/ChartFunnelTwoRows.vue +61 -60
  15. package/src/components/Checkbox/Checkbox.vue +1 -1
  16. package/src/components/CheckboxGroup/CheckboxGroup.vue +5 -7
  17. package/src/components/Chip/Chip.vue +1 -1
  18. package/src/components/DatePicker/DatePicker.vue +10 -1
  19. package/src/components/Drawer/Drawer.vue +180 -270
  20. package/src/components/Drawer/__tests__/Drawer.spec.js +32 -43
  21. package/src/components/Drawer/__tests__/__snapshots__/Drawer.spec.js.snap +18 -19
  22. package/src/components/FormElement/FormElement.vue +87 -96
  23. package/src/components/Input/BaseInput.vue +25 -5
  24. package/src/components/Input/Input.scss +2 -1
  25. package/src/components/Input/Input.vue +24 -1
  26. package/src/components/Input/TextInput.vue +64 -25
  27. package/src/components/Input/__test__/TextInput.spec.js +1 -1
  28. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +5 -1
  29. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +7 -1
  30. package/src/components/InputDatePicker/InputDatePicker.vue +68 -73
  31. package/src/components/InputDatePicker/__test__/InputDatePicker.spec.js +31 -24
  32. package/src/components/ModalDialog/ModalDialog.vue +63 -154
  33. package/src/components/ModalDialog/__tests__/ModalDialog.spec.js +30 -210
  34. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +1 -22
  35. package/src/components/MultiSelect/MultSelectOption.vue +49 -0
  36. package/src/components/MultiSelect/__tests__/MultiSelect.spec.js +557 -0
  37. package/src/components/MultiSelect/__tests__/MultiSelectOption.spec.js +229 -0
  38. package/src/components/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +87 -0
  39. package/src/components/MultiSelect/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  40. package/src/components/MultiSelect/index.vue +265 -0
  41. package/src/components/Radio/Radio.vue +6 -12
  42. package/src/components/Radio/__test__/Radio.spec.js +1 -3
  43. package/src/components/RadioGroup/RadioGroup.vue +10 -18
  44. package/src/components/Select/__tests__/Select.spec.js +422 -0
  45. package/src/components/Select/__tests__/SelectItem.spec.js +310 -0
  46. package/src/components/Select/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  47. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +71 -0
  48. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  49. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  50. package/src/components/Select/__tests__/__snapshots__/SelectPopover.spec.js.snap +8 -0
  51. package/src/components/Select/index.vue +308 -0
  52. package/src/components/Switch/Switch.vue +3 -10
  53. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +3 -1
  54. package/src/components/TemplatePreview/TemplatePreview.vue +25 -28
  55. package/src/components/TemplatePreview/TemplatePreviewModal.vue +10 -10
  56. package/src/components/TemplatePreview/types.d.ts +3 -3
  57. package/src/components/Toast/Toast.vue +4 -1
  58. package/src/components/Toast/ToastManager.ts +4 -1
  59. package/src/components/Toast/__tests__/ToastManager.spec.js +10 -6
  60. package/src/components/ToolTip/ToolTip.vue +25 -177
  61. package/src/components/ToolTip/__tests__/ToolTip.spec.js +339 -61
  62. package/src/components/index.ts +62 -6
  63. package/src/components/ui/dialog/Dialog.vue +19 -0
  64. package/src/components/ui/dialog/DialogClose.vue +29 -0
  65. package/src/components/ui/dialog/DialogContent.vue +140 -0
  66. package/src/components/ui/dialog/DialogFooter.vue +50 -0
  67. package/src/components/ui/dialog/DialogHeader.vue +83 -0
  68. package/src/components/ui/dialog/DialogTitle.vue +38 -0
  69. package/src/components/ui/dialog/DialogTrigger.vue +16 -0
  70. package/src/components/ui/dialog/index.ts +7 -0
  71. package/src/components/ui/drawer/Drawer.vue +27 -0
  72. package/src/components/ui/drawer/DrawerClose.vue +31 -0
  73. package/src/components/ui/drawer/DrawerContent.vue +113 -0
  74. package/src/components/ui/drawer/DrawerDescription.vue +40 -0
  75. package/src/components/ui/drawer/DrawerFooter.vue +38 -0
  76. package/src/components/ui/drawer/DrawerHeader.vue +57 -0
  77. package/src/components/ui/drawer/DrawerOverlay.vue +33 -0
  78. package/src/components/ui/drawer/DrawerTitle.vue +37 -0
  79. package/src/components/ui/drawer/DrawerTrigger.vue +31 -0
  80. package/src/components/ui/drawer/index.ts +10 -0
  81. package/src/components/ui/popover/PopoverContent.vue +7 -4
  82. package/src/components/ui/popover/PopoverOption.vue +4 -0
  83. package/src/components/ui/popover/PopoverTrigger.vue +5 -1
  84. package/src/components/ui/tooltip/Tooltip.vue +21 -0
  85. package/src/components/ui/tooltip/TooltipContent.vue +77 -0
  86. package/src/components/ui/tooltip/TooltipTrigger.vue +24 -0
  87. package/src/components/ui/tooltip/index.ts +3 -0
  88. package/src/index.ts +9 -2
  89. package/src/lib/__tests__/teleport-target.spec.ts +73 -0
  90. package/src/lib/layer-manager.ts +64 -0
  91. package/src/lib/teleport-target.ts +46 -0
  92. package/src/locales/en.json +3 -1
  93. package/src/locales/es.json +3 -1
  94. package/src/locales/pt_br.json +3 -1
  95. package/src/stories/Dialog.stories.js +832 -0
  96. package/src/stories/Drawer.stories.js +1 -1
  97. package/src/stories/DrawerNext.stories.js +611 -0
  98. package/src/stories/Input.mdx +3 -0
  99. package/src/stories/LayerManager.docs.mdx +40 -0
  100. package/src/stories/LayerManager.stories.js +407 -0
  101. package/src/stories/ModalDialog.mdx +3 -0
  102. package/src/stories/ModalDialog.stories.js +96 -1
  103. package/src/stories/MultiSelect.stories.js +143 -45
  104. package/src/stories/Select.stories.js +161 -0
  105. package/src/stories/TemplatePreview.stories.js +27 -27
  106. package/src/stories/TemplatePreviewModal.stories.js +31 -31
  107. package/src/components/MultiSelect/MultiSelect.vue +0 -297
@@ -1,297 +0,0 @@
1
- <template>
2
- <div
3
- :class="expand ? 'expand-multiselect' : 'normal-multiselect'"
4
- tabindex="-1"
5
- >
6
- <span
7
- v-if="label"
8
- class="select-permission-label"
9
- >{{ label }}</span
10
- >
11
- <div
12
- class="select-permission"
13
- tabindex="0"
14
- @keypress="handleIsOpenKeyboard"
15
- @click="active = !active"
16
- >
17
- <h6 class="title noselect">{{ inputTitle }}</h6>
18
- <UnnnicIcon
19
- :icon="active ? 'arrow-button-up-1' : 'arrow-button-down-1'"
20
- size="sm"
21
- scheme="neutral-dark"
22
- />
23
- </div>
24
- <div
25
- v-if="active"
26
- v-on-click-outside="onClickOutside"
27
- class="select-content"
28
- tabindex="0"
29
- >
30
- <div>
31
- <template
32
- v-for="(group, indexGroup) in modelValue"
33
- :key="`group-${indexGroup}`"
34
- >
35
- <h6
36
- v-if="!hideGroupTitle"
37
- :key="`title-${indexGroup}`"
38
- class="title"
39
- >
40
- {{ group.title }}
41
- </h6>
42
- <section>
43
- <template
44
- v-for="(item, indexItem) in group.items"
45
- :key="`item-${indexItem}`"
46
- >
47
- <div
48
- v-if="hideRadio"
49
- :key="indexItem + 'input'"
50
- class="unnnic-radio-container unnnic-radio-container--sm"
51
- style="cursor: pointer"
52
- @click="change(indexGroup, indexItem)"
53
- >
54
- <strong>{{ item.title }}</strong>
55
- <span>{{ item.description }}</span>
56
- </div>
57
- <UnnnicRadio
58
- v-else
59
- id=""
60
- :key="'else' + indexItem + 'input'"
61
- name=""
62
- :modelValue="group.selected"
63
- :value="indexItem"
64
- size="sm"
65
- class=""
66
- @update:model-value="change(indexGroup, $event)"
67
- >
68
- <strong>{{ item.title }}</strong>
69
- <span>{{ item.description }}</span>
70
- </UnnnicRadio>
71
- </template>
72
- </section>
73
- </template>
74
- </div>
75
- </div>
76
- </div>
77
- </template>
78
-
79
- <script>
80
- import { vOnClickOutside } from '@vueuse/components';
81
- import UnnnicIcon from '../Icon.vue';
82
- import UnnnicRadio from '../Radio/Radio.vue';
83
-
84
- export default {
85
- name: 'UnnnicMultiSelect',
86
- components: {
87
- UnnnicIcon,
88
- UnnnicRadio,
89
- },
90
- directives: {
91
- onClickOutside: vOnClickOutside,
92
- },
93
- props: {
94
- isOpen: {
95
- default: false,
96
- },
97
- expand: {
98
- default: false,
99
- },
100
- label: {
101
- type: String,
102
- default: '',
103
- },
104
- modelValue: {
105
- type: Array,
106
- default: () => [],
107
- },
108
- inputTitle: {
109
- type: String,
110
- default: 'Teste',
111
- },
112
- hideRadio: {
113
- type: Boolean,
114
- default: false,
115
- },
116
- hideGroupTitle: {
117
- type: Boolean,
118
- default: false,
119
- },
120
- unselectable: {
121
- type: Boolean,
122
- default: false,
123
- },
124
- },
125
-
126
- data() {
127
- return {
128
- active: false,
129
- };
130
- },
131
-
132
- watch: {
133
- isOpen() {
134
- this.active = this.open;
135
- },
136
- },
137
- methods: {
138
- handleIsOpenKeyboard(event) {
139
- if (
140
- document.querySelector('.select-permission:focus-visible') &&
141
- event.keyCode === 32
142
- ) {
143
- this.active = !this.active;
144
- }
145
- },
146
-
147
- onClickOutside() {
148
- if (!this.active) return;
149
- this.active = false;
150
- },
151
-
152
- change(indexGroup, indexSelected) {
153
- this.$emit(
154
- 'update:model-value',
155
- this.modelValue.map((item, index) => {
156
- if (index === indexGroup) {
157
- let selected = indexSelected;
158
- if (this.unselectable && item.selected === indexSelected) {
159
- selected = -1;
160
- }
161
- return { ...item, selected };
162
- }
163
-
164
- return item;
165
- }),
166
- );
167
- },
168
- },
169
- };
170
- </script>
171
-
172
- <style lang="scss" scoped>
173
- @use '@/assets/scss/unnnic' as *;
174
-
175
- .normal-multiselect,
176
- .expand-multiselect {
177
- user-select: none;
178
- }
179
-
180
- .normal-multiselect {
181
- position: relative;
182
- max-width: 319px;
183
-
184
- .select-content {
185
- max-width: 319px;
186
- }
187
- }
188
-
189
- .expand-multiselect {
190
- position: relative;
191
- width: 100%;
192
-
193
- .select-content {
194
- width: 100%;
195
- }
196
- }
197
-
198
- .noselect {
199
- -webkit-touch-callout: none; /* iOS Safari */
200
- -webkit-user-select: none; /* Safari */
201
- -khtml-user-select: none; /* Konqueror HTML */
202
- -moz-user-select: none; /* Old versions of Firefox */
203
- -ms-user-select: none; /* Internet Explorer/Edge */
204
- user-select: none; /* Non-prefixed version, currently
205
- supported by Chrome, Edge, Opera and Firefox */
206
- }
207
-
208
- .select-permission,
209
- .select-content > div {
210
- padding: $unnnic-squish-xs;
211
- background-color: $unnnic-color-neutral-snow;
212
-
213
- border-radius: $unnnic-border-radius-sm;
214
- border: $unnnic-border-width-thinner solid $unnnic-color-neutral-soft;
215
- }
216
- .select-permission {
217
- display: flex;
218
- flex-direction: row;
219
- justify-content: space-between;
220
- align-items: center;
221
- line-height: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
222
-
223
- cursor: pointer;
224
- .icon {
225
- margin-left: $unnnic-spacing-inline-xs;
226
- }
227
- }
228
- .select-permission-label {
229
- display: block;
230
-
231
- color: $unnnic-color-neutral-cloudy;
232
- margin-bottom: $unnnic-spacing-stack-xs;
233
-
234
- font-family: $unnnic-font-family-secondary;
235
- font-size: $unnnic-font-size-body-gt;
236
- line-height: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
237
- }
238
-
239
- .title {
240
- font-family: $unnnic-font-family-secondary;
241
- font-size: $unnnic-font-size-body-gt;
242
- margin: 0;
243
- font-weight: $unnnic-font-weight-regular;
244
- color: $unnnic-color-neutral-dark;
245
- }
246
-
247
- .select-content {
248
- position: absolute;
249
- margin-top: $unnnic-spacing-stack-xs;
250
-
251
- > div {
252
- box-shadow: $unnnic-shadow-level-near;
253
- .title {
254
- margin-bottom: $unnnic-spacing-stack-sm;
255
- }
256
-
257
- & section {
258
- display: flex;
259
- flex-direction: column;
260
-
261
- & + h6 {
262
- margin-top: $unnnic-spacing-stack-sm;
263
- padding-top: $unnnic-spacing-stack-sm;
264
- border-top: $unnnic-border-width-thinner solid
265
- $unnnic-color-neutral-darkest;
266
- }
267
-
268
- strong,
269
- span {
270
- display: block;
271
- font-family: $unnnic-font-family-secondary;
272
- font-size: $unnnic-font-size-body-gt;
273
- }
274
-
275
- strong {
276
- font-weight: $unnnic-font-weight-regular;
277
- }
278
- span {
279
- font-weight: $unnnic-font-weight-light;
280
- }
281
-
282
- .unnnic-radio-container {
283
- & + .unnnic-radio-container {
284
- margin-top: $unnnic-spacing-stack-sm;
285
- padding-top: $unnnic-spacing-stack-sm;
286
- border-top: $unnnic-border-width-thinner solid
287
- $unnnic-color-neutral-lightest;
288
- }
289
-
290
- :deep(.unnnic-icon) {
291
- margin-right: $unnnic-inline-xs;
292
- }
293
- }
294
- }
295
- }
296
- }
297
- </style>