@weni/unnnic-system 3.12.2 → 3.12.3-alpha.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 (211) hide show
  1. package/dist/components/Alert/Alert.vue.d.ts +3 -3
  2. package/dist/components/Alert/Version1dot1.vue.d.ts +1 -1
  3. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +92 -18
  4. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +184 -36
  5. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +1 -1
  6. package/dist/components/Button/Button.vue.d.ts +2 -2
  7. package/dist/components/Card/AccountCard.vue.d.ts +2 -2
  8. package/dist/components/Card/Card.vue.d.ts +103 -29
  9. package/dist/components/Card/CardCompany.vue.d.ts +2 -2
  10. package/dist/components/Card/CardStatusesContainer.vue.d.ts +93 -19
  11. package/dist/components/Card/ContentCard.vue.d.ts +1 -1
  12. package/dist/components/Card/DashCard.vue.d.ts +2 -2
  13. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  14. package/dist/components/Card/MarketplaceCard.vue.d.ts +1 -1
  15. package/dist/components/Card/SimpleCard.vue.d.ts +92 -18
  16. package/dist/components/Card/StatusCard.vue.d.ts +1 -1
  17. package/dist/components/Card/TitleCard.vue.d.ts +92 -18
  18. package/dist/components/CardImage/CardImage.vue.d.ts +5 -5
  19. package/dist/components/CardInformation/CardInformation.vue.d.ts +93 -19
  20. package/dist/components/CardProject/CardProject.vue.d.ts +2 -2
  21. package/dist/components/Carousel/Carousel.vue.d.ts +2 -2
  22. package/dist/components/Carousel/TagCarousel.vue.d.ts +2 -2
  23. package/dist/components/ChartBar/ChartBar.vue.d.ts +98 -24
  24. package/dist/components/ChartLine/ChartLine.vue.d.ts +92 -18
  25. package/dist/components/ChatText/ChatText.vue.d.ts +92 -18
  26. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +6 -6
  27. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +92 -18
  28. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +1 -1
  29. package/dist/components/Checkbox/Checkbox.vue.d.ts +3 -3
  30. package/dist/components/DataArea/DataArea.vue.d.ts +92 -18
  31. package/dist/components/DataTable/index.vue.d.ts +1 -1
  32. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  33. package/dist/components/DateFilter/DateFilter.vue.d.ts +94 -15
  34. package/dist/components/Drawer/Drawer.vue.d.ts +37 -207
  35. package/dist/components/Drawer/Drawer.vue.d.ts.map +1 -1
  36. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  37. package/dist/components/FormElement/FormElement.vue.d.ts +6 -6
  38. package/dist/components/ImportCard/ImportCard.vue.d.ts +6 -6
  39. package/dist/components/Input/BaseInput.vue.d.ts +22 -0
  40. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  41. package/dist/components/Input/Input.vue.d.ts +93 -14
  42. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  43. package/dist/components/Input/TextInput.vue.d.ts +54 -3
  44. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  45. package/dist/components/InputNext/InputNext.vue.d.ts +4 -4
  46. package/dist/components/Label/Label.vue.d.ts +1 -1
  47. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  48. package/dist/components/Modal/Modal.vue.d.ts +1 -1
  49. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +209 -35
  50. package/dist/components/ModalDialog/ModalDialog.vue.d.ts.map +1 -1
  51. package/dist/components/ModalNext/ModalNext.vue.d.ts +99 -20
  52. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +12 -12
  53. package/dist/components/MoodRating/MoodRating.vue.d.ts +92 -18
  54. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +18 -18
  55. package/dist/components/Pagination/Pagination.vue.d.ts +6 -6
  56. package/dist/components/Radio/Radio.vue.d.ts +6 -6
  57. package/dist/components/Select/index.vue.d.ts +44 -0
  58. package/dist/components/Select/index.vue.d.ts.map +1 -0
  59. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +63 -12
  60. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +2 -2
  61. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +5 -5
  62. package/dist/components/SelectTime/index.vue.d.ts +55 -4
  63. package/dist/components/Slider/Slider.vue.d.ts +92 -18
  64. package/dist/components/Switch/Switch.vue.d.ts +3 -3
  65. package/dist/components/Tab/Tab.vue.d.ts +92 -18
  66. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  67. package/dist/components/TableNext/TablePagination.vue.d.ts +6 -6
  68. package/dist/components/Tag/DefaultTag.vue.d.ts +1 -1
  69. package/dist/components/Tag/Tag.vue.d.ts +2 -2
  70. package/dist/components/TextArea/TextArea.vue.d.ts +8 -8
  71. package/dist/components/Toast/Toast.vue.d.ts +1 -1
  72. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  73. package/dist/components/ToolTip/ToolTip.vue.d.ts +92 -18
  74. package/dist/components/ToolTip/ToolTip.vue.d.ts.map +1 -1
  75. package/dist/components/Tour/Tour.vue.d.ts +6 -6
  76. package/dist/components/Tour/TourPopover.vue.d.ts +6 -6
  77. package/dist/components/UploadArea/UploadArea.vue.d.ts +6 -6
  78. package/dist/components/ui/dialog/Dialog.vue.d.ts +23 -0
  79. package/dist/components/ui/dialog/Dialog.vue.d.ts.map +1 -0
  80. package/dist/components/ui/dialog/DialogClose.vue.d.ts +19 -0
  81. package/dist/components/ui/dialog/DialogClose.vue.d.ts.map +1 -0
  82. package/dist/components/ui/dialog/DialogContent.vue.d.ts +43 -0
  83. package/dist/components/ui/dialog/DialogContent.vue.d.ts.map +1 -0
  84. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +25 -0
  85. package/dist/components/ui/dialog/DialogFooter.vue.d.ts.map +1 -0
  86. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +29 -0
  87. package/dist/components/ui/dialog/DialogHeader.vue.d.ts.map +1 -0
  88. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +23 -0
  89. package/dist/components/ui/dialog/DialogTitle.vue.d.ts.map +1 -0
  90. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +19 -0
  91. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts.map +1 -0
  92. package/dist/components/ui/dialog/index.d.ts +8 -0
  93. package/dist/components/ui/dialog/index.d.ts.map +1 -0
  94. package/dist/components/ui/drawer/Drawer.vue.d.ts +35 -0
  95. package/dist/components/ui/drawer/Drawer.vue.d.ts.map +1 -0
  96. package/dist/components/ui/drawer/DrawerClose.vue.d.ts +19 -0
  97. package/dist/components/ui/drawer/DrawerClose.vue.d.ts.map +1 -0
  98. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +43 -0
  99. package/dist/components/ui/drawer/DrawerContent.vue.d.ts.map +1 -0
  100. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +23 -0
  101. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts.map +1 -0
  102. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +22 -0
  103. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts.map +1 -0
  104. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +25 -0
  105. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts.map +1 -0
  106. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
  107. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts.map +1 -0
  108. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +23 -0
  109. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts.map +1 -0
  110. package/dist/components/ui/drawer/DrawerTrigger.vue.d.ts +19 -0
  111. package/dist/components/ui/drawer/DrawerTrigger.vue.d.ts.map +1 -0
  112. package/dist/components/ui/drawer/index.d.ts +11 -0
  113. package/dist/components/ui/drawer/index.d.ts.map +1 -0
  114. package/dist/components/ui/popover/PopoverContent.vue.d.ts +2 -2
  115. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  116. package/dist/components/ui/popover/PopoverOption.vue.d.ts +1 -1
  117. package/dist/components/ui/popover/PopoverOption.vue.d.ts.map +1 -1
  118. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts.map +1 -1
  119. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +23 -0
  120. package/dist/components/ui/tooltip/Tooltip.vue.d.ts.map +1 -0
  121. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +31 -0
  122. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts.map +1 -0
  123. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +19 -0
  124. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts.map +1 -0
  125. package/dist/components/ui/tooltip/index.d.ts +4 -0
  126. package/dist/components/ui/tooltip/index.d.ts.map +1 -0
  127. package/dist/{es-40d7aad6.mjs → es-59933601.mjs} +1 -1
  128. package/dist/{index-56b50ff8.mjs → index-4fe9253b.mjs} +99820 -96757
  129. package/dist/lib/layer-manager.d.ts +16 -0
  130. package/dist/lib/layer-manager.d.ts.map +1 -0
  131. package/dist/locales/en.json.d.ts +2 -1
  132. package/dist/locales/es.json.d.ts +2 -1
  133. package/dist/locales/pt_br.json.d.ts +2 -1
  134. package/dist/{pt-br-e6e2313f.mjs → pt-br-10db3200.mjs} +1 -1
  135. package/dist/style.css +1 -1
  136. package/dist/unnnic.mjs +234 -204
  137. package/dist/unnnic.umd.js +48 -44
  138. package/package.json +3 -2
  139. package/src/assets/scss/scheme-colors.scss +223 -223
  140. package/src/assets/scss/tailwind.scss +8 -0
  141. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +1 -1
  142. package/src/components/Checkbox/Checkbox.vue +1 -1
  143. package/src/components/Drawer/Drawer.vue +190 -269
  144. package/src/components/Drawer/__tests__/Drawer.spec.js +37 -46
  145. package/src/components/Drawer/__tests__/__snapshots__/Drawer.spec.js.snap +18 -19
  146. package/src/components/Input/BaseInput.vue +21 -2
  147. package/src/components/Input/Input.scss +2 -3
  148. package/src/components/Input/Input.vue +19 -1
  149. package/src/components/Input/TextInput.vue +58 -22
  150. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +5 -1
  151. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +7 -1
  152. package/src/components/ModalDialog/ModalDialog.vue +64 -148
  153. package/src/components/ModalDialog/__tests__/ModalDialog.spec.js +11 -221
  154. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +1 -22
  155. package/src/components/MultiSelectV2/MultSelectOption.vue +67 -0
  156. package/src/components/MultiSelectV2/__tests__/MultiSelect.spec.js +556 -0
  157. package/src/components/MultiSelectV2/__tests__/MultiSelectOption.spec.js +229 -0
  158. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelect.spec.js.snap +121 -0
  159. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  160. package/src/components/MultiSelectV2/index.vue +224 -0
  161. package/src/components/Select/__tests__/Select.spec.js +422 -0
  162. package/src/components/Select/__tests__/SelectItem.spec.js +330 -0
  163. package/src/components/Select/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  164. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +65 -0
  165. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  166. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  167. package/src/components/Select/__tests__/__snapshots__/SelectPopover.spec.js.snap +8 -0
  168. package/src/components/Select/index.vue +261 -0
  169. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +3 -1
  170. package/src/components/Toast/Toast.vue +16 -9
  171. package/src/components/ToolTip/ToolTip.vue +25 -177
  172. package/src/components/ToolTip/__tests__/ToolTip.spec.js +339 -61
  173. package/src/components/index.ts +60 -4
  174. package/src/components/ui/dialog/Dialog.vue +19 -0
  175. package/src/components/ui/dialog/DialogClose.vue +29 -0
  176. package/src/components/ui/dialog/DialogContent.vue +140 -0
  177. package/src/components/ui/dialog/DialogFooter.vue +50 -0
  178. package/src/components/ui/dialog/DialogHeader.vue +83 -0
  179. package/src/components/ui/dialog/DialogTitle.vue +38 -0
  180. package/src/components/ui/dialog/DialogTrigger.vue +16 -0
  181. package/src/components/ui/dialog/index.ts +7 -0
  182. package/src/components/ui/drawer/Drawer.vue +27 -0
  183. package/src/components/ui/drawer/DrawerClose.vue +37 -0
  184. package/src/components/ui/drawer/DrawerContent.vue +111 -0
  185. package/src/components/ui/drawer/DrawerDescription.vue +40 -0
  186. package/src/components/ui/drawer/DrawerFooter.vue +38 -0
  187. package/src/components/ui/drawer/DrawerHeader.vue +57 -0
  188. package/src/components/ui/drawer/DrawerOverlay.vue +33 -0
  189. package/src/components/ui/drawer/DrawerTitle.vue +37 -0
  190. package/src/components/ui/drawer/DrawerTrigger.vue +31 -0
  191. package/src/components/ui/drawer/index.ts +10 -0
  192. package/src/components/ui/popover/PopoverContent.vue +4 -2
  193. package/src/components/ui/popover/PopoverOption.vue +4 -0
  194. package/src/components/ui/popover/PopoverTrigger.vue +5 -1
  195. package/src/components/ui/tooltip/Tooltip.vue +21 -0
  196. package/src/components/ui/tooltip/TooltipContent.vue +74 -0
  197. package/src/components/ui/tooltip/TooltipTrigger.vue +26 -0
  198. package/src/components/ui/tooltip/index.ts +3 -0
  199. package/src/lib/layer-manager.ts +84 -0
  200. package/src/locales/en.json +2 -1
  201. package/src/locales/es.json +2 -1
  202. package/src/locales/pt_br.json +2 -1
  203. package/src/stories/Dialog.stories.js +832 -0
  204. package/src/stories/Drawer.stories.js +1 -1
  205. package/src/stories/DrawerNext.stories.js +611 -0
  206. package/src/stories/LayerManager.docs.mdx +40 -0
  207. package/src/stories/LayerManager.stories.js +364 -0
  208. package/src/stories/ModalDialog.mdx +3 -0
  209. package/src/stories/ModalDialog.stories.js +1 -1
  210. package/src/stories/MultiSelectV2.stories.js +158 -0
  211. package/src/stories/Select.stories.js +158 -0
@@ -1,23 +1,22 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
3
  exports[`Drawer.vue > Component Rendering > Component Rendering > matches the snapshot 1`] = `
4
- "<aside data-v-196de012="" class="unnnic-drawer" data-testid="drawer">
5
- <section data-v-196de012="" class="unnnic-drawer__overlay" data-testid="overlay"></section>
6
- <transition-stub data-v-196de012="" name="drawer" appear="true" persisted="false" css="true">
7
- <section data-v-196de012="" data-testid="drawer-container" class="unnnic-drawer__container unnnic-drawer__container--md">
8
- <header data-v-196de012="" class="unnnic-drawer__header">
9
- <section data-v-196de012="" class="unnnic-drawer__title-container">
10
- <h1 data-v-196de012="" class="unnnic-drawer__title" data-testid="drawer-title">Test Title</h1>
11
- <p data-v-196de012="" class="unnnic-drawer__description" data-testid="drawer-description">Test Description</p>
12
- </section>
13
- <unnnic-icon-stub data-v-196de012="" filled="false" icon="arrow_back" clickable="true" size="avatar-nano" scheme="neutral-darkest" class="unnnic-drawer__close" data-testid="close-icon"></unnnic-icon-stub>
14
- </header>
15
- <section data-v-196de012="" class="unnnic-drawer__content"></section>
16
- <footer data-v-196de012="" class="unnnic-drawer__footer" data-testid="footer">
17
- <unnnic-button-stub data-v-196de012="" size="large" text="Secondary Action" type="tertiary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="secondary-button"></unnnic-button-stub>
18
- <unnnic-button-stub data-v-196de012="" size="large" text="Primary Action" type="primary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="primary-button"></unnnic-button-stub>
19
- </footer>
20
- </section>
21
- </transition-stub>
22
- </aside>"
4
+ "<div data-v-e761d31f="" data-v-196de012="" disabled="false" defer="false" forcemount="false" data-testid="drawer-container">
5
+ <div data-v-7f241b30="" data-v-e761d31f="" data-state="open" style="pointer-events: auto;" data-vaul-overlay="" data-vaul-snap-points="false" data-vaul-snap-points-overlay="true" class="unnnic-drawer__overlay"></div>
6
+ <div data-v-e761d31f="" data-dismissable-layer="" style="--snap-point-height: 0; --initial-transform: calc(100% + 8px); pointer-events: auto;" tabindex="-1" data-vaul-drawer="" data-vaul-drawer-direction="right" data-vaul-delayed-snap-points="false" data-vaul-snap-points="false" size="medium" showoverlay="true" class="unnnic-drawer__content unnnic-drawer__content--medium unnnic-drawer__container unnnic-drawer__container--md" id="" role="dialog" aria-describedby="reka-dialog-description-v-1" aria-labelledby="reka-dialog-title-v-0" data-state="open">
7
+ <header data-v-39d0dfb8="" data-v-196de012="" class="unnnic-drawer__header unnnic-drawer__header">
8
+ <section data-v-196de012="" class="unnnic-drawer__title-container">
9
+ <h2 data-v-97709962="" data-v-196de012="" id="reka-dialog-title-v-0" class="unnnic-drawer__title unnnic-drawer__title" data-testid="drawer-title">Test Title</h2>
10
+ <p data-v-750ea255="" data-v-196de012="" id="reka-dialog-description-v-1" class="unnnic-drawer__description unnnic-drawer__description" data-testid="drawer-description">Test Description</p>
11
+ </section><button data-v-4a771f40="" data-v-196de012="" type="button" class="unnnic-drawer__close">
12
+ <unnnic-button-stub data-v-196de012="" size="small" text="" type="tertiary" float="false" iconleft="" iconright="" iconcenter="arrow_forward" iconsfilled="false" disabled="false" loading="false" class="unnnic-drawer__close-icon" data-testid="close-icon"></unnnic-button-stub>
13
+ </button>
14
+ </header>
15
+ <section data-v-196de012="" class="unnnic-drawer__content"></section>
16
+ <footer data-v-02ebc5b4="" data-v-196de012="" class="unnnic-drawer__footer unnnic-drawer__footer" data-testid="footer">
17
+ <unnnic-button-stub data-v-196de012="" size="large" text="Secondary Action" type="tertiary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="secondary-button"></unnnic-button-stub>
18
+ <unnnic-button-stub data-v-196de012="" size="large" text="Primary Action" type="primary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="primary-button"></unnnic-button-stub>
19
+ </footer>
20
+ </div>
21
+ </div>"
23
22
  `;
@@ -4,16 +4,18 @@
4
4
  v-mask="mask"
5
5
  v-bind="attributes"
6
6
  :value="fullySanitize(modelValue)"
7
- :class="classes"
7
+ :class="[classes, { focus: forceActiveStatus }]"
8
8
  :type="nativeType"
9
+ :readonly="readonly"
9
10
  />
10
11
  <input
11
12
  v-else
12
13
  v-bind="attributes"
13
14
  :value="fullySanitize(modelValue)"
14
- :class="classes"
15
+ :class="[classes, { focus: forceActiveStatus }]"
15
16
  :type="nativeType"
16
17
  :maxlength="maxlength"
18
+ :readonly="readonly"
17
19
  />
18
20
  </template>
19
21
 
@@ -49,10 +51,19 @@ export default {
49
51
  },
50
52
  hasIconLeft: Boolean,
51
53
  hasIconRight: Boolean,
54
+ hasClearIcon: Boolean,
52
55
  maxlength: {
53
56
  type: Number,
54
57
  default: null,
55
58
  },
59
+ readonly: {
60
+ type: Boolean,
61
+ default: false,
62
+ },
63
+ forceActiveStatus: {
64
+ type: Boolean,
65
+ default: false,
66
+ },
56
67
  },
57
68
  emits: ['update:modelValue'],
58
69
  data() {
@@ -77,6 +88,7 @@ export default {
77
88
  {
78
89
  'input--has-icon-left': this.hasIconLeft,
79
90
  'input--has-icon-right': this.hasIconRight,
91
+ 'input--has-clear-icon': this.hasClearIcon,
80
92
  },
81
93
  ];
82
94
  },
@@ -117,6 +129,13 @@ export default {
117
129
 
118
130
  &.input--has-icon-right {
119
131
  padding-right: $unnnic-space-10;
132
+ &.input--has-clear-icon {
133
+ padding-right: $unnnic-space-10 + $unnnic-space-6;
134
+ }
135
+ }
136
+
137
+ &.input--has-clear-icon {
138
+ padding-right: $unnnic-space-10;
120
139
  }
121
140
 
122
141
  &.error {
@@ -9,9 +9,8 @@
9
9
  caret-color: $unnnic-color-fg-muted;
10
10
  font: $unnnic-font-body;
11
11
 
12
- transition: border-color 0.1s ease-in-out;
13
-
14
- &:focus {
12
+ &:focus,
13
+ &.focus {
15
14
  border-color: $unnnic-color-border-active;
16
15
  }
17
16
 
@@ -13,6 +13,7 @@
13
13
  v-bind="$attrs"
14
14
  v-model="val"
15
15
  class="unnnic-form-input"
16
+ :forceActiveStatus="forceActiveStatus"
16
17
  :placeholder="placeholder"
17
18
  :iconLeft="iconLeft"
18
19
  :iconRight="iconRight"
@@ -25,6 +26,9 @@
25
26
  :nativeType="nativeType"
26
27
  :maxlength="maxlength"
27
28
  :disabled="disabled"
29
+ :readonly="readonly"
30
+ :showClear="showClear"
31
+ @clear="$emit('clear')"
28
32
  />
29
33
 
30
34
  <template
@@ -127,8 +131,22 @@ export default {
127
131
  type: Boolean,
128
132
  default: false,
129
133
  },
134
+ readonly: {
135
+ type: Boolean,
136
+ default: false,
137
+ },
138
+ forceActiveStatus: {
139
+ type: Boolean,
140
+ default: false,
141
+ },
142
+ showClear: {
143
+ type: Boolean,
144
+ default: false,
145
+ },
130
146
  },
131
- emits: ['update:modelValue'],
147
+
148
+ emits: ['update:modelValue', 'clear'],
149
+
132
150
  data() {
133
151
  return {
134
152
  val: this.modelValue,
@@ -12,7 +12,10 @@
12
12
  class="input-itself"
13
13
  :hasIconLeft="!!iconLeft"
14
14
  :hasIconRight="!!iconRight || allowTogglePassword"
15
+ :hasClearIcon="showClear"
15
16
  :maxlength="maxlength"
17
+ :readonly="readonly"
18
+ :forceActiveStatus="forceActiveStatus"
16
19
  @focus="onFocus"
17
20
  @blur="onBlur"
18
21
  />
@@ -27,18 +30,28 @@
27
30
  @click="onIconLeftClick"
28
31
  />
29
32
 
30
- <UnnnicIcon
31
- v-if="iconRightSvg"
32
- :scheme="iconScheme"
33
- :icon="iconRightSvg"
34
- size="ant"
35
- :clickable="iconRightClickable || allowTogglePassword"
36
- :class="[
37
- 'icon-right',
38
- { clickable: iconRightClickable || allowTogglePassword },
39
- ]"
40
- @click="onIconRightClick"
41
- />
33
+ <section class="icon-right-container">
34
+ <UnnnicIcon
35
+ v-if="showClear"
36
+ class="icon-clear"
37
+ :scheme="iconScheme"
38
+ icon="close"
39
+ size="ant"
40
+ clickable
41
+ @click.stop="onClearClick"
42
+ />
43
+
44
+ <UnnnicIcon
45
+ v-if="iconRightSvg"
46
+ :scheme="iconScheme"
47
+ :icon="iconRightSvg"
48
+ size="ant"
49
+ :clickable="iconRightClickable || allowTogglePassword"
50
+ class="icon-right"
51
+ :class="{ clickable: iconRightClickable || allowTogglePassword }"
52
+ @click="onIconRightClick"
53
+ />
54
+ </section>
42
55
  </div>
43
56
  </template>
44
57
 
@@ -103,8 +116,20 @@ export default {
103
116
  type: Boolean,
104
117
  default: false,
105
118
  },
119
+ readonly: {
120
+ type: Boolean,
121
+ default: false,
122
+ },
123
+ forceActiveStatus: {
124
+ type: Boolean,
125
+ default: false,
126
+ },
127
+ showClear: {
128
+ type: Boolean,
129
+ default: false,
130
+ },
106
131
  },
107
- emits: ['icon-left-click', 'icon-right-click'],
132
+ emits: ['icon-left-click', 'icon-right-click', 'clear'],
108
133
  data() {
109
134
  return {
110
135
  isFocused: false,
@@ -128,7 +153,6 @@ export default {
128
153
  if (this.isDisabled) {
129
154
  return 'fg-muted';
130
155
  }
131
-
132
156
  return 'fg-base';
133
157
  },
134
158
 
@@ -154,6 +178,10 @@ export default {
154
178
  if (this.iconLeftClickable) this.$emit('icon-left-click');
155
179
  },
156
180
 
181
+ onClearClick() {
182
+ this.$emit('clear');
183
+ },
184
+
157
185
  onIconRightClick() {
158
186
  if (this.attributes.disabled) return;
159
187
  if (this.allowTogglePassword) this.showPassword = !this.showPassword;
@@ -171,25 +199,33 @@ export default {
171
199
  }
172
200
 
173
201
  .icon {
174
- &-left,
175
- &-right {
176
- &:not(.clickable) {
177
- pointer-events: none;
178
- }
179
- }
180
-
181
202
  &-left {
182
203
  position: absolute;
183
204
  top: 50%;
184
205
  transform: translateY(-50%);
185
206
  left: $unnnic-space-4;
207
+
208
+ &:not(.clickable) {
209
+ pointer-events: none;
210
+ }
186
211
  }
187
212
 
188
- &-right {
213
+ &-right-container {
189
214
  position: absolute;
190
215
  top: 50%;
191
216
  transform: translateY(-50%);
192
217
  right: $unnnic-space-4;
218
+
219
+ display: flex;
220
+ align-items: center;
221
+ gap: $unnnic-space-2;
222
+
223
+ .icon-clear {
224
+ cursor: pointer;
225
+ }
226
+ .icon-right:not(.clickable) {
227
+ pointer-events: none;
228
+ }
193
229
  }
194
230
  }
195
231
  </style>
@@ -6,7 +6,11 @@ exports[`Input.vue > matches the snapshot 1`] = `
6
6
  <p data-v-7f222291="" class="unnnic-label__label">Sample Label</p>
7
7
  <!--v-if-->
8
8
  </section>
9
- <div data-v-a0d36167="" data-v-d890ad85="" class="text-input size--md unnnic-form-input" hascloudycolor="false" mask="####-####"><input data-v-86533b41="" data-v-a0d36167="" class="unnnic-form-input input-itself input size-md normal input--has-icon-left input--has-icon-right unnnic-form-input input-itself" hascloudycolor="false" placeholder="Enter text" iconleft="search" iconright="clear" iconleftclickable="true" iconrightclickable="true" type="text" value=""><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-left clickable" data-testid="material-icon" translate="no">search</span><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-right clickable" data-testid="material-icon" translate="no">clear</span></div>
9
+ <div data-v-a0d36167="" data-v-d890ad85="" class="text-input size--md unnnic-form-input" hascloudycolor="false" mask="####-####"><input data-v-86533b41="" data-v-a0d36167="" class="unnnic-form-input input-itself input size-md normal input--has-icon-left input--has-icon-right unnnic-form-input input-itself" hascloudycolor="false" placeholder="Enter text" iconleft="search" iconright="clear" iconleftclickable="true" iconrightclickable="true" showclear="false" type="text" value=""><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-left clickable" data-testid="material-icon" translate="no">search</span>
10
+ <section data-v-a0d36167="" class="icon-right-container">
11
+ <!--v-if--><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-right clickable" data-testid="material-icon" translate="no">clear</span>
12
+ </section>
13
+ </div>
10
14
  <section data-v-9f8d6c86="" class="unnnic-form-element__hints-container">
11
15
  <section data-v-9f8d6c86="" class="unnnic-form-element__message-container">
12
16
  <p data-v-9f8d6c86="" class="unnnic-form-element__message">Error message</p>
@@ -1,3 +1,9 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`TextInput.vue > matches the snapshot 1`] = `"<div data-v-a0d36167="" class="text-input size--md"><input data-v-86533b41="" data-v-a0d36167="" placeholder="Enter text" iconleft="search" iconright="clear" iconleftclickable="true" iconrightclickable="true" allowtogglepassword="false" class="input-itself input size-md normal input--has-icon-left input--has-icon-right input-itself" type="text" value=""><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-left clickable" data-testid="material-icon" translate="no">search</span><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-right clickable" data-testid="material-icon" translate="no">clear</span></div>"`;
3
+ exports[`TextInput.vue > matches the snapshot 1`] = `
4
+ "<div data-v-a0d36167="" class="text-input size--md"><input data-v-86533b41="" data-v-a0d36167="" placeholder="Enter text" iconleft="search" iconright="clear" iconleftclickable="true" iconrightclickable="true" allowtogglepassword="false" showclear="false" class="input-itself input size-md normal input--has-icon-left input--has-icon-right input-itself" type="text" value=""><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-left clickable" data-testid="material-icon" translate="no">search</span>
5
+ <section data-v-a0d36167="" class="icon-right-container">
6
+ <!--v-if--><span data-v-26446d8e="" data-v-a0d36167="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable icon-right clickable" data-testid="material-icon" translate="no">clear</span>
7
+ </section>
8
+ </div>"
9
+ `;
@@ -1,64 +1,47 @@
1
1
  <template>
2
- <section
3
- v-if="modelValue"
4
- class="unnnic-modal-dialog"
5
- data-testid="modal-dialog"
2
+ <UnnnicDialog
3
+ :open="modelValue"
4
+ @update:open="$emit('update:modelValue', $event)"
6
5
  >
7
- <section
8
- class="unnnic-modal-dialog__overlay"
9
- data-testid="modal-overlay"
10
- @click.stop="!persistent && close()"
11
- />
12
- <section
13
- :class="[
14
- 'unnnic-modal-dialog__container',
15
- `unnnic-modal-dialog__container--${size}`,
16
- ]"
17
- data-testid="modal-container"
6
+ <UnnnicDialogContent
7
+ v-bind="$attrs"
8
+ :size="size === 'sm' ? 'small' : size === 'lg' ? 'large' : 'medium'"
9
+ :parentClass="['unnnic-modal-dialog', $attrs.class]"
10
+ class="unnnic-modal-dialog__container"
11
+ data-testid="modal-dialog"
12
+ @escape-key-down="persistentHandler"
13
+ @pointer-down-outside="persistentHandler"
18
14
  >
19
15
  <section
20
- v-if="$slots.leftSidebar"
21
- class="unnnic-modal-dialog__container__left-sidebar"
16
+ :class="[
17
+ 'unnnic-modal-dialog__container__body',
18
+ {
19
+ 'unnnic-modal-dialog__container__body--left-sidebar':
20
+ $slots.leftSidebar,
21
+ },
22
+ ]"
22
23
  >
23
- <slot name="leftSidebar" />
24
- </section>
25
-
26
- <section class="unnnic-modal-dialog__container__body">
27
- <header
24
+ <section
25
+ v-if="$slots.leftSidebar"
26
+ class="unnnic-modal-dialog__container__left-sidebar"
27
+ >
28
+ <slot name="leftSidebar" />
29
+ </section>
30
+ <UnnnicDialogHeader
28
31
  v-if="title"
29
- class="unnnic-modal-dialog__container__header"
32
+ :closeButton="showCloseIcon"
33
+ :type="type"
30
34
  >
31
- <section class="unnnic-modal-dialog__container__title-container">
32
- <UnnnicIcon
33
- v-if="icon || type"
34
- data-testid="title-icon"
35
- class="unnnic-modal-dialog__container__title-icon"
36
- :icon="icon || iconsMapper[type]?.icon"
37
- :scheme="iconScheme || iconsMapper[type]?.scheme"
38
- size="md"
39
- />
40
- <h1
41
- class="unnnic-modal-dialog__container__title-text"
42
- data-testid="title-text"
43
- >
44
- {{ title }}
45
- </h1>
46
- </section>
47
- <UnnnicIcon
48
- v-if="showCloseIcon"
49
- data-testid="close-icon"
50
- icon="close"
51
- clickable
52
- scheme="neutral-cloudy"
53
- @click="close()"
54
- />
55
- </header>
35
+ <UnnnicDialogTitle>
36
+ {{ title }}
37
+ </UnnnicDialogTitle>
38
+ </UnnnicDialogHeader>
56
39
  <section class="unnnic-modal-dialog__container__content">
57
40
  <slot></slot>
58
41
  </section>
59
- <section
42
+
43
+ <UnnnicDialogFooter
60
44
  v-if="primaryButtonProps.text"
61
- data-testid="actions-section"
62
45
  :class="[
63
46
  'unnnic-modal-dialog__container__actions',
64
47
  {
@@ -66,6 +49,8 @@
66
49
  showActionsDivider,
67
50
  },
68
51
  ]"
52
+ :divider="showActionsDivider"
53
+ data-testid="actions-section"
69
54
  >
70
55
  <UnnnicButton
71
56
  v-if="!hideSecondaryButton"
@@ -92,23 +77,32 @@
92
77
  class="unnnic-modal-dialog__container__actions__primary-button"
93
78
  @click.stop="$emit('primaryButtonClick')"
94
79
  />
95
- </section>
80
+ </UnnnicDialogFooter>
96
81
  </section>
97
- </section>
98
- </section>
82
+ </UnnnicDialogContent>
83
+ </UnnnicDialog>
99
84
  </template>
100
85
 
101
86
  <script>
102
- import UnnnicIcon from '../Icon.vue';
103
87
  import UnnnicButton from '../Button/Button.vue';
104
88
  import UnnnicI18n from '../../mixins/i18n';
89
+ import UnnnicDialog from '../ui/dialog/Dialog.vue';
90
+ import UnnnicDialogContent from '../ui/dialog/DialogContent.vue';
91
+ import UnnnicDialogHeader from '../ui/dialog/DialogHeader.vue';
92
+ import UnnnicDialogTitle from '../ui/dialog/DialogTitle.vue';
93
+ import UnnnicDialogFooter from '../ui/dialog/DialogFooter.vue';
105
94
 
106
95
  export default {
107
96
  name: 'UnnnicModalDialog',
108
97
  components: {
109
- UnnnicIcon,
110
98
  UnnnicButton,
99
+ UnnnicDialog,
100
+ UnnnicDialogContent,
101
+ UnnnicDialogHeader,
102
+ UnnnicDialogTitle,
103
+ UnnnicDialogFooter,
111
104
  },
105
+ inheritAttrs: false,
112
106
  mixins: [UnnnicI18n],
113
107
  props: {
114
108
  modelValue: {
@@ -177,11 +171,6 @@ export default {
177
171
  es: 'Cancelar',
178
172
  },
179
173
  },
180
- iconsMapper: {
181
- success: { icon: 'check_circle', scheme: 'aux-green-500' },
182
- warning: { icon: 'warning', scheme: 'aux-red-500' },
183
- attention: { icon: 'error', scheme: 'aux-yellow-500' },
184
- },
185
174
  primaryButtonTypeMapper: {
186
175
  success: 'primary',
187
176
  warning: 'warning',
@@ -201,91 +190,39 @@ export default {
201
190
  updateBodyOverflow(isHidden) {
202
191
  document.body.style.overflow = isHidden ? 'hidden' : '';
203
192
  },
193
+ persistentHandler(event) {
194
+ if (this.persistent) {
195
+ event.preventDefault();
196
+ }
197
+ },
204
198
  },
205
199
  };
206
200
  </script>
207
201
 
208
202
  <style lang="scss" scoped>
209
203
  @use '@/assets/scss/unnnic' as *;
210
- * {
211
- margin: 0;
212
- padding: 0;
213
- box-sizing: border-box;
214
- }
215
- .unnnic-modal-dialog {
216
- width: 100vw;
217
- height: 100vh;
218
- position: fixed;
219
- left: 0;
220
- top: 0;
221
- display: flex;
222
- justify-content: center;
223
- align-items: center;
224
- z-index: 9999;
225
-
226
- &__overlay {
227
- position: absolute;
228
- width: 100%;
229
- height: 100%;
230
- background-color: rgba(0, 0, 0, 0.4);
231
- }
232
- }
233
-
234
204
  .unnnic-modal-dialog__container {
235
- display: flex;
236
- background: $unnnic-color-neutral-white;
237
- border-radius: $unnnic-spacing-xs;
238
- box-shadow: $unnnic-shadow-level-near;
239
- position: fixed;
240
- max-height: calc(100vh - $unnnic-spacing-giant);
241
- overflow: hidden;
242
-
243
- &--sm {
244
- width: 400px;
245
- }
246
- &--md {
247
- width: 600px;
248
- }
249
- &--lg {
250
- width: 800px;
251
- }
252
-
253
205
  &__left-sidebar {
254
206
  background-color: $unnnic-color-neutral-black;
255
207
  color: $unnnic-color-neutral-white;
208
+
209
+ grid-area: left-sidebar;
210
+ grid-row: span 3;
256
211
  }
257
212
 
258
213
  &__body {
259
214
  flex: 1;
260
215
  display: flex;
261
216
  flex-direction: column;
262
- }
263
-
264
- &__header {
265
- display: flex;
266
- justify-content: space-between;
267
- align-items: center;
268
- border-bottom: 1px solid $unnnic-color-neutral-soft;
269
- padding: $unnnic-spacing-md;
270
- flex-shrink: 0;
271
- }
272
217
 
273
- &__title-container {
274
- display: flex;
275
- align-items: center;
276
- gap: $unnnic-spacing-ant;
277
- }
278
-
279
- &__title-icon {
280
- font-size: 28px;
281
- }
218
+ overflow-y: auto;
282
219
 
283
- &__title-text {
284
- font-family: $unnnic-font-family-secondary;
285
- font-size: $unnnic-font-size-title-sm;
286
- font-weight: $unnnic-font-weight-black;
287
- line-height: 28px;
288
- color: $unnnic-color-neutral-darkest;
220
+ &--left-sidebar {
221
+ border-radius: $unnnic-radius-4 0 0 $unnnic-radius-4;
222
+ display: grid;
223
+ grid-template-columns: auto 1fr;
224
+ grid-template-areas: 'left-sidebar content';
225
+ }
289
226
  }
290
227
 
291
228
  &__content {
@@ -309,26 +246,5 @@ export default {
309
246
  border-radius: $unnnic-border-radius-pill;
310
247
  }
311
248
  }
312
-
313
- &__actions {
314
- display: grid;
315
- grid-template-columns: 1fr 1fr;
316
- grid-template-areas: 'secondary-button primary-button';
317
- gap: $unnnic-spacing-sm;
318
- padding: $unnnic-spacing-md;
319
- flex-shrink: 0;
320
-
321
- &--divider {
322
- border-top: 1px solid $unnnic-color-neutral-soft;
323
- }
324
-
325
- &__secondary-button {
326
- grid-area: secondary-button;
327
- }
328
-
329
- &__primary-button {
330
- grid-area: primary-button;
331
- }
332
- }
333
249
  }
334
250
  </style>