@adyen/bento-vue2 1.11.0 → 1.12.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 (221) hide show
  1. package/dist/@types/packages/vue2/src/components/code-snippet/code-snippet.vue.d.ts +1 -1
  2. package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-columns/data-grid-columns.vue.d.ts +11 -0
  3. package/dist/@types/packages/vue2/src/components/data-grid/composables/use-scroller/use-scroller.d.ts +1 -0
  4. package/dist/@types/packages/vue2/src/components/date/date.vue.d.ts +1 -1
  5. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue.d.ts +38 -29
  6. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-options-container/dropdown-options-container.vue.d.ts +43 -1306
  7. package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-small-textbox/dropdown-small-textbox.vue.d.ts +5 -11
  8. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue.d.ts +43 -48
  9. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-avatar/index.d.ts +2 -0
  10. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue.d.ts +43 -44
  11. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/index.d.ts +2 -0
  12. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue.d.ts +43 -43
  13. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-currency/index.d.ts +2 -0
  14. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue.d.ts +43 -43
  15. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-payment-method/index.d.ts +2 -0
  16. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue.d.ts +43 -48
  17. package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-tag/index.d.ts +2 -0
  18. package/dist/@types/packages/vue2/src/components/dropdown/composables/index.d.ts +2 -0
  19. package/dist/@types/packages/vue2/src/components/dropdown/composables/use-display-value.d.ts +2 -0
  20. package/dist/@types/packages/vue2/src/components/dropdown/composables/use-display-value.types.d.ts +28 -0
  21. package/dist/@types/packages/vue2/src/components/dropdown/composables/{useKeyboardNavigation.d.ts → use-keyboard-navigation.d.ts} +3 -13
  22. package/dist/@types/packages/vue2/src/components/dropdown/composables/use-keyboard-navigation.types.d.ts +15 -0
  23. package/dist/@types/packages/vue2/src/components/dropdown/dropdown.vue.d.ts +48 -1674
  24. package/dist/@types/packages/vue2/src/components/dropdown/index.d.ts +6 -5
  25. package/dist/@types/packages/vue2/src/components/filter-bar/components/all-filters-modal/all-filters-modal.vue.d.ts +12 -12
  26. package/dist/@types/packages/vue2/src/components/input-field/input-field.vue.d.ts +1 -1
  27. package/dist/@types/packages/vue2/src/components/internal/listbox/listbox.vue.d.ts +1 -1
  28. package/dist/@types/packages/vue2/src/components/link/link.vue.d.ts +17 -11
  29. package/dist/@types/packages/vue2/src/components/modal/components/base-modal/base-modal.vue.d.ts +16 -60
  30. package/dist/@types/packages/vue2/src/components/modal/components/modal-default/modal-default.vue.d.ts +59 -49
  31. package/dist/@types/packages/vue2/src/components/modal/components/modal-dialog/modal-dialog.vue.d.ts +39 -291
  32. package/dist/@types/packages/vue2/src/components/modal/modal.vue.d.ts +76 -83
  33. package/dist/@types/packages/vue2/src/components/pagination/pagination.vue.d.ts +1 -1
  34. package/dist/@types/packages/vue2/src/components/popper-container/popper-container.vue.d.ts +1 -1
  35. package/dist/@types/packages/vue2/src/components/search-bar/search-bar.vue.d.ts +1 -1
  36. package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item/summary-grid-item.vue.d.ts +3 -3
  37. package/dist/@types/packages/vue2/src/components/textarea/textarea.vue.d.ts +1 -1
  38. package/dist/@types/packages/vue2/src/components/tooltip/tooltip.vue.d.ts +3 -3
  39. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.types.d.ts +6 -0
  40. package/dist/@types/packages/vue2/src/templates/data-grid-template/data-grid-template.vue.d.ts +10 -0
  41. package/dist/@types/packages/vue2/src/templates/data-grid-template/index.d.ts +1 -0
  42. package/dist/accordion.js +2 -2
  43. package/dist/action-bar.js +5 -5
  44. package/dist/alert.js +3 -3
  45. package/dist/assets/base-modal.css +1 -1
  46. package/dist/assets/button.css +1 -1
  47. package/dist/assets/dropdown-default-textbox.css +1 -1
  48. package/dist/assets/dropdown.css +1 -1
  49. package/dist/assets/index10.css +1 -1
  50. package/dist/assets/index11.css +1 -1
  51. package/dist/assets/index12.css +1 -1
  52. package/dist/assets/index13.css +1 -1
  53. package/dist/assets/index14.css +1 -1
  54. package/dist/assets/index15.css +1 -1
  55. package/dist/assets/index16.css +1 -1
  56. package/dist/assets/index17.css +1 -1
  57. package/dist/assets/index18.css +1 -1
  58. package/dist/assets/index19.css +1 -1
  59. package/dist/assets/index2.css +1 -1
  60. package/dist/assets/index20.css +1 -1
  61. package/dist/assets/index21.css +1 -1
  62. package/dist/assets/index22.css +1 -1
  63. package/dist/assets/index23.css +1 -1
  64. package/dist/assets/index24.css +1 -1
  65. package/dist/assets/index25.css +1 -1
  66. package/dist/assets/index26.css +1 -1
  67. package/dist/assets/index27.css +1 -1
  68. package/dist/assets/index28.css +1 -1
  69. package/dist/assets/index29.css +1 -1
  70. package/dist/assets/index3.css +1 -1
  71. package/dist/assets/index30.css +1 -1
  72. package/dist/assets/index31.css +1 -1
  73. package/dist/assets/index32.css +1 -1
  74. package/dist/assets/index33.css +1 -1
  75. package/dist/assets/index34.css +1 -1
  76. package/dist/assets/index35.css +1 -1
  77. package/dist/assets/index36.css +1 -1
  78. package/dist/assets/index37.css +1 -1
  79. package/dist/assets/index38.css +1 -1
  80. package/dist/assets/index39.css +1 -1
  81. package/dist/assets/index4.css +1 -1
  82. package/dist/assets/index40.css +1 -1
  83. package/dist/assets/index41.css +1 -1
  84. package/dist/assets/index42.css +1 -1
  85. package/dist/assets/index43.css +1 -1
  86. package/dist/assets/index44.css +1 -1
  87. package/dist/assets/index45.css +1 -1
  88. package/dist/assets/index46.css +1 -1
  89. package/dist/assets/index5.css +1 -1
  90. package/dist/assets/index6.css +1 -1
  91. package/dist/assets/index7.css +1 -1
  92. package/dist/assets/index8.css +1 -1
  93. package/dist/assets/index9.css +1 -1
  94. package/dist/avatar-image.js +1 -1
  95. package/dist/button.js +5 -5
  96. package/dist/card.js +15 -15
  97. package/dist/card.js.map +1 -1
  98. package/dist/checkbox.js +6 -6
  99. package/dist/chunks/{base-button.bd61ab14.js → base-button.1f07b7c1.js} +2 -2
  100. package/dist/chunks/{base-button.bd61ab14.js.map → base-button.1f07b7c1.js.map} +1 -1
  101. package/dist/chunks/base-modal.9d63bdaf.js +200 -0
  102. package/dist/chunks/base-modal.9d63bdaf.js.map +1 -0
  103. package/dist/chunks/{button-actions-with-menu.767344df.js → button-actions-with-menu.4c5091f4.js} +3 -3
  104. package/dist/chunks/{button-actions-with-menu.767344df.js.map → button-actions-with-menu.4c5091f4.js.map} +1 -1
  105. package/dist/chunks/{button.bb5b4909.js → button.133f145e.js} +2 -2
  106. package/dist/chunks/{button.bb5b4909.js.map → button.133f145e.js.map} +1 -1
  107. package/dist/chunks/{calendar.4ab3c2dc.js → calendar.9a8605d1.js} +8 -7
  108. package/dist/chunks/{calendar.4ab3c2dc.js.map → calendar.9a8605d1.js.map} +1 -1
  109. package/dist/chunks/{checkbox.c684c20a.js → checkbox.d8b810c7.js} +3 -3
  110. package/dist/chunks/{checkbox.c684c20a.js.map → checkbox.d8b810c7.js.map} +1 -1
  111. package/dist/chunks/{controls-group.d25f5044.js → controls-group.bf152dea.js} +3 -3
  112. package/dist/chunks/{controls-group.d25f5044.js.map → controls-group.bf152dea.js.map} +1 -1
  113. package/dist/chunks/{copy.36c058e9.js → copy.68a7d416.js} +4 -4
  114. package/dist/chunks/{copy.36c058e9.js.map → copy.68a7d416.js.map} +1 -1
  115. package/dist/chunks/{dropdown-default-textbox.1cba89ea.js → dropdown-default-textbox.c595fd31.js} +129 -148
  116. package/dist/chunks/dropdown-default-textbox.c595fd31.js.map +1 -0
  117. package/dist/chunks/dropdown.eaee22a3.js +797 -0
  118. package/dist/chunks/dropdown.eaee22a3.js.map +1 -0
  119. package/dist/chunks/{field-label.a0c54b7d.js → field-label.66f52c8f.js} +2 -2
  120. package/dist/chunks/{field-label.a0c54b7d.js.map → field-label.66f52c8f.js.map} +1 -1
  121. package/dist/chunks/{fixed-scroller.5c90f692.js → fixed-scroller.01fc96f7.js} +2 -2
  122. package/dist/chunks/{fixed-scroller.5c90f692.js.map → fixed-scroller.01fc96f7.js.map} +1 -1
  123. package/dist/chunks/{footer-actions.b14cfca8.js → footer-actions.38e99891.js} +3 -3
  124. package/dist/chunks/{footer-actions.b14cfca8.js.map → footer-actions.38e99891.js.map} +1 -1
  125. package/dist/chunks/{index.aaedd8f9.js → index.14758ff7.js} +3 -3
  126. package/dist/chunks/{index.aaedd8f9.js.map → index.14758ff7.js.map} +1 -1
  127. package/dist/chunks/index.18773b0b.js +637 -0
  128. package/dist/chunks/index.18773b0b.js.map +1 -0
  129. package/dist/chunks/{index.7d2ea1de.js → index.2cfe4a09.js} +2 -2
  130. package/dist/chunks/{index.7d2ea1de.js.map → index.2cfe4a09.js.map} +1 -1
  131. package/dist/chunks/{index.1e8c900a.js → index.3b7d40b7.js} +2 -2
  132. package/dist/chunks/{index.1e8c900a.js.map → index.3b7d40b7.js.map} +1 -1
  133. package/dist/chunks/{index.f18f79eb.js → index.45aa17fc.js} +5 -5
  134. package/dist/chunks/{index.f18f79eb.js.map → index.45aa17fc.js.map} +1 -1
  135. package/dist/chunks/{index.b0a89960.js → index.99a2184a.js} +2 -2
  136. package/dist/chunks/{index.b0a89960.js.map → index.99a2184a.js.map} +1 -1
  137. package/dist/chunks/{index.f2223abb.js → index.9b669c12.js} +6 -6
  138. package/dist/chunks/{index.f2223abb.js.map → index.9b669c12.js.map} +1 -1
  139. package/dist/chunks/{index.720f0cbf.js → index.b38a191d.js} +13 -12
  140. package/dist/chunks/{index.720f0cbf.js.map → index.b38a191d.js.map} +1 -1
  141. package/dist/chunks/{index.58282364.js → index.d90c5838.js} +3 -3
  142. package/dist/chunks/{index.58282364.js.map → index.d90c5838.js.map} +1 -1
  143. package/dist/chunks/{index.75f0e99f.js → index.eb527b75.js} +6 -6
  144. package/dist/chunks/{index.75f0e99f.js.map → index.eb527b75.js.map} +1 -1
  145. package/dist/chunks/{listbox-option-tag.9103c011.js → listbox-option-tag.168c794c.js} +3 -3
  146. package/dist/chunks/{listbox-option-tag.9103c011.js.map → listbox-option-tag.168c794c.js.map} +1 -1
  147. package/dist/chunks/{listbox.7cf6d6b4.js → listbox.23c6b393.js} +6 -6
  148. package/dist/chunks/{listbox.7cf6d6b4.js.map → listbox.23c6b393.js.map} +1 -1
  149. package/dist/chunks/{loading-button.fb025a2e.js → loading-button.44d698b9.js} +2 -2
  150. package/dist/chunks/{loading-button.fb025a2e.js.map → loading-button.44d698b9.js.map} +1 -1
  151. package/dist/chunks/{tooltip.f48beb54.js → tooltip.f91b2040.js} +3 -3
  152. package/dist/chunks/{tooltip.f48beb54.js.map → tooltip.f91b2040.js.map} +1 -1
  153. package/dist/chunks/{useCountryItems.6b7985bf.js → use-country-items.6b7985bf.js} +1 -1
  154. package/dist/chunks/use-country-items.6b7985bf.js.map +1 -0
  155. package/dist/code-snippet.js +7 -7
  156. package/dist/code-snippet.js.map +1 -1
  157. package/dist/country.js +2 -2
  158. package/dist/currency.js +1 -1
  159. package/dist/data-grid.js +460 -451
  160. package/dist/data-grid.js.map +1 -1
  161. package/dist/date-picker.js +38 -38
  162. package/dist/date-picker.js.map +1 -1
  163. package/dist/date-range-picker.js +2 -2
  164. package/dist/date.js +1 -1
  165. package/dist/divider.js +1 -1
  166. package/dist/dropdown.js +102 -132
  167. package/dist/dropdown.js.map +1 -1
  168. package/dist/empty-state.js +3 -3
  169. package/dist/filter-bar.js +54 -53
  170. package/dist/filter-bar.js.map +1 -1
  171. package/dist/focus-trap.js +1 -1
  172. package/dist/form-layout.js +2 -2
  173. package/dist/header.js +3 -3
  174. package/dist/index.js +218 -215
  175. package/dist/info-icon.js +3 -3
  176. package/dist/input-field.js +4 -4
  177. package/dist/internal.js +7 -7
  178. package/dist/link.js +38 -28
  179. package/dist/link.js.map +1 -1
  180. package/dist/loading-indicator.js +1 -1
  181. package/dist/menu.js +1 -1
  182. package/dist/modal.js +209 -302
  183. package/dist/modal.js.map +1 -1
  184. package/dist/pagination.js +88 -88
  185. package/dist/pagination.js.map +1 -1
  186. package/dist/payment-method.js +2 -2
  187. package/dist/popover.js +1 -1
  188. package/dist/popper-container.js +1 -1
  189. package/dist/radio-group.js +4 -4
  190. package/dist/search-bar.js +2 -2
  191. package/dist/secondary-nav.js +2 -2
  192. package/dist/segmented-control.js +3 -3
  193. package/dist/sidepanel.js +5 -5
  194. package/dist/status.js +2 -2
  195. package/dist/stepper.js +3 -3
  196. package/dist/structured-list.js +1 -1
  197. package/dist/summary-grid.js +3 -3
  198. package/dist/tabs.js +4 -4
  199. package/dist/tabs.js.map +1 -1
  200. package/dist/tag.js +3 -3
  201. package/dist/textarea.js +4 -4
  202. package/dist/timeline.js +5 -5
  203. package/dist/toast.js +3 -3
  204. package/dist/toggle.js +2 -2
  205. package/dist/tutorial.js +5 -5
  206. package/dist/typography.js +1 -1
  207. package/dist/web-types.json +3739 -3589
  208. package/package.json +2 -2
  209. package/dist/@types/packages/vue2/src/components/dropdown/composables/useDisplayValue.d.ts +0 -2
  210. package/dist/@types/packages/vue2/src/components/dropdown/composables/useDisplayValue.types.d.ts +0 -12
  211. package/dist/@types/packages/vue2/src/components/dropdown/composables/useDropdownSearchFilter.d.ts +0 -3
  212. package/dist/chunks/base-modal.5640a66a.js +0 -222
  213. package/dist/chunks/base-modal.5640a66a.js.map +0 -1
  214. package/dist/chunks/dropdown-default-textbox.1cba89ea.js.map +0 -1
  215. package/dist/chunks/dropdown.4152cc00.js +0 -887
  216. package/dist/chunks/dropdown.4152cc00.js.map +0 -1
  217. package/dist/chunks/index.179d485c.js +0 -635
  218. package/dist/chunks/index.179d485c.js.map +0 -1
  219. package/dist/chunks/useCountryItems.6b7985bf.js.map +0 -1
  220. /package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-options-container/composables/{useDropdownOptionsListbox.d.ts → use-dropdown-options-listbox.d.ts} +0 -0
  221. /package/dist/@types/packages/vue2/src/components/dropdown/components/variants/dropdown-country/composables/{useCountryItems.d.ts → use-country-items.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as H, toRefs as I, computed as l, ref as Y } from "vue";
2
- import { B as K } from "./index.b0a89960.js";
2
+ import { B as K } from "./index.99a2184a.js";
3
3
  import { C as z } from "./checkmark-small.520f01b1.js";
4
4
  import { n as U } from "./_plugin-vue2_normalizer.71e2aa87.js";
5
5
  import { u as Z } from "./use-default-slot-validator.b9bff4c6.js";
@@ -8,7 +8,7 @@ import { g as L } from "./unique-id.a2a2b458.js";
8
8
  import { g as h } from "./get-slot-text.99c3d860.js";
9
9
  import { u as J } from "./i18n.eb5b985b.js";
10
10
  import { u as Q } from "./aria-label.ac9651a5.js";
11
- import { E as W } from "./field-label.a0c54b7d.js";
11
+ import { E as W } from "./field-label.66f52c8f.js";
12
12
  import "../assets/checkbox.css";
13
13
  var c = /* @__PURE__ */ ((a) => (a.UNCHECKED = "unchecked", a.DISABLED = "disabled", a.ERROR = "error", a.READONLY = "readonly", a))(c || {}), s = /* @__PURE__ */ ((a) => (a.UPDATE = "update:model-value", a.INPUT = "input", a))(s || {});
14
14
  let R = 0;
@@ -185,4 +185,4 @@ export {
185
185
  c as a,
186
186
  s as b
187
187
  };
188
- //# sourceMappingURL=checkbox.c684c20a.js.map
188
+ //# sourceMappingURL=checkbox.d8b810c7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.c684c20a.js","sources":["../../src/components/checkbox/checkbox.types.ts","../../node_modules/@adyen/ui-assets-icons-16/dist/vue/minus-small.vue","../../src/components/checkbox/checkbox.vue"],"sourcesContent":["export type BentoMultiCheckboxType = Array<string | number>;\nexport type BentoCheckboxType = boolean | BentoMultiCheckboxType;\n\nexport enum BentoCheckboxState {\n UNCHECKED = 'unchecked',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum BentoCheckboxEvent {\n UPDATE = 'update:model-value',\n INPUT = 'input',\n}\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M4.25 7.25H11.75V8.75H4.25V7.25Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","<template>\n <label class=\"b-checkbox\" :class=\"conditionalClass\">\n <div class=\"b-checkbox__input-container\">\n <!-- Don't change order because it matters for CSS. Icons first -->\n <minus-small-icon v-if=\"isIndeterminate\" class=\"b-checkbox__icon\" svg-title=\"intermediate\" />\n <checkmark-small-icon v-else-if=\"isChecked\" class=\"b-checkbox__icon\" svg-title=\"checked\" />\n <input\n ref=\"input\"\n role=\"checkbox\"\n class=\"b-checkbox__outline\"\n type=\"checkbox\"\n v-bind=\"$attrs\"\n :aria-label=\"computedAriaLabel\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"ariaDescribedBy\"\n :aria-invalid=\"ariaInvalid\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :indeterminate.prop=\"isIndeterminate\"\n :value=\"value\"\n :class=\"conditionalClassOutline\"\n :aria-readonly=\"readonly\"\n @change=\"onChange\"\n @click=\"onClick\"\n />\n </div>\n <span v-if=\"hasSlot('default') || shouldShowErrorMessage\" class=\"b-checkbox__text\">\n <bento-typography v-if=\"hasSlot('default')\" class=\"b-checkbox__label\" el=\"span\" variant=\"body\">\n <slot></slot>\n <bento-typography v-if=\"optional\" class=\"b-checkbox__text-requirement\" el=\"span\">\n ({{ t('optional') }})\n </bento-typography>\n <bento-typography v-else-if=\"required\" class=\"b-checkbox__text-requirement\" el=\"span\">\n ({{ t('required') }})\n </bento-typography>\n </bento-typography>\n <bento-typography\n v-if=\"hasSlot('default') && hasSlot('description')\"\n :id=\"descriptionId\"\n class=\"b-checkbox__description\"\n el=\"span\"\n variant=\"body\"\n >\n <slot name=\"description\"></slot>\n </bento-typography>\n <error-message v-if=\"shouldShowErrorMessage\" :id=\"errorId\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"contentSlotAvailable\" class=\"b-checkbox__content\" el=\"span\" variant=\"body\">\n <slot name=\"content\"></slot>\n </bento-typography>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref, toRefs } from 'vue';\n import {\n BentoCheckboxEvent,\n BentoCheckboxState,\n BentoCheckboxType,\n BentoMultiCheckboxType,\n } from './checkbox.types';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage } from '@/components/internal/error-message';\n import type { HTMLAttributes } from 'vue/types/jsx';\n import CheckmarkSmallIcon from '@adyen/ui-assets-icons-16/vue/checkmark-small';\n import MinusSmallIcon from '@adyen/ui-assets-icons-16/vue/minus-small';\n import { useDefaultSlotValidator, useHasSlot } from '@/composables';\n import { generateUid } from '@/utils/ts/unique-id';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n import { useI18n } from '@/utils/ts/i18n';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { BentoCheckboxGroupItems } from './components/checkbox-group/checkbox-group.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * Checkboxes are used to make a binary choice about an option.\n * The label tag area is also clickable.\n *\n * @usage\n * import { BentoCheckbox } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCheckbox },\n * template: `\n * <bento-checkbox>\n * Label text\n * <template #description>Sub label text</template>\n * </bento-checkbox>\n * `,\n * }\n */\n export default defineComponent({\n name: 'bento-checkbox',\n i18n: { messages },\n components: {\n BentoTypography,\n ErrorMessage,\n CheckmarkSmallIcon,\n MinusSmallIcon,\n },\n model: { prop: 'modelValue' },\n props: {\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n *\n * In the case of multiple checkboxes this value is used as a unique key.\n */\n value: { type: [String, Number], default: null },\n\n /**\n * When handling a single checkbox with a singular state, use a boolean.\n *\n * When handling multiple checkboxes, use an array of keys.\n * These keys exist as a set \"value\" prop for each checkbox.\n */\n modelValue: {\n type: [Boolean, Array] as PropType<BentoCheckboxType | BentoCheckboxGroupItems>,\n default: false,\n },\n\n /**\n * Setting this property to true will disable the checkbox in your form.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Highlights the checkbox is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Setting this property to true will set the checkbox to read only state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Setting this property to true will show the checkbox in error state.\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * Renders the checkbox in an error state with an error message.\n */\n errorMessage: { type: String, default: null },\n\n /**\n * The :indeterminate CSS pseudo-class represents any form element\n * whose state is indeterminate, such as checkboxes which have their HTML indeterminate attribute\n * set to true, radio buttons which are members of a group in which all radio buttons are unchecked,\n * and indeterminate <progress> elements. https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate\n * This property lets you control the input.indeterminate native property.\n */\n indeterminate: { type: Boolean, default: false },\n\n /**\n * @deprecated from version 2.0.0. Use the aria-label attribute instead.\n */\n /**\n * Accessible name for the radio button component. It is strongly recommended to pas this value in case this component is used without a label.\n */\n ariaLabel: { type: String, default: null },\n\n /**\n * Highlights the checkbox is optional.\n */\n optional: { type: Boolean, default: false },\n },\n emits: [BentoCheckboxEvent.UPDATE, BentoCheckboxEvent.INPUT],\n setup(props, { attrs, emit, slots }) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const descriptionId = generateUid('description');\n const errorId = generateUid('error');\n const hasSlot = useHasSlot(slots);\n\n const { disabled, indeterminate, modelValue, readonly, value } = toRefs(props);\n\n const defaultSlotValue = getSlotText(slots)('default');\n const descriptionSlotValue = getSlotText(slots)('description');\n\n useDefaultSlotValidator('bento-checkbox', slots.default, slots.description);\n\n const isCheckboxGroup = computed(() => Array.isArray(modelValue.value));\n const isChecked = computed(() => {\n if (!isCheckboxGroup.value) {\n return modelValue.value as boolean;\n }\n\n return (modelValue.value as BentoMultiCheckboxType).some(item => item === value.value);\n });\n const isIndeterminate = computed(() => indeterminate.value);\n\n const shouldShowError = computed(\n () => !props.disabled && !props.readonly && (props.hasError || !!props.errorMessage)\n );\n const shouldShowErrorMessage = computed(() => !props.disabled && !props.readonly && !!props.errorMessage);\n\n // Content slot logic\n const hasContentSlot = computed(() => hasSlot('content'));\n const isCheckedOrIntermediate = computed(() => isIndeterminate?.value || isChecked?.value);\n const contentSlotAvailable = computed(\n () => hasContentSlot?.value && isCheckboxGroup?.value && isCheckedOrIntermediate?.value\n );\n\n // ARIA fields\n const ariaChecked = computed<HTMLAttributes['aria-checked']>(() =>\n isIndeterminate.value ? 'mixed' : `${!!isChecked.value}`\n );\n\n const ariaDescribedBy = computed<HTMLAttributes['aria-describedby']>(\n () =>\n `${shouldShowErrorMessage.value ? errorId : ''} ${\n defaultSlotValue && descriptionSlotValue ? descriptionId : ''\n }`.trim() || null\n );\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: hasSlot('default')\n ? (getSlotText(slots)('default') as string)\n : t('ariaLabelFallback'),\n });\n\n const ariaInvalid = computed<HTMLAttributes['aria-invalid']>(() => shouldShowError.value);\n\n const conditionalClass = computed(() => ({\n [`b-checkbox--${BentoCheckboxState.DISABLED}`]: disabled.value,\n [`b-checkbox--${BentoCheckboxState.READONLY}`]: readonly.value,\n }));\n const conditionalClassOutline = computed(() => ({\n [`b-checkbox__outline--${BentoCheckboxState.UNCHECKED}`]: !isChecked.value && !isIndeterminate.value,\n [`b-checkbox__outline--${BentoCheckboxState.ERROR}`]: shouldShowError.value,\n [`b-checkbox__outline--${BentoCheckboxState.READONLY}`]: readonly.value,\n }));\n\n // readonly attr doesn't work with checkbox, so we need to manually ignore the click instead\n const onClick = (event: Event) => {\n if (readonly.value) {\n event.preventDefault();\n }\n };\n\n const onChange = (event: Event) => {\n if (disabled.value) {\n return;\n }\n\n const newValue: boolean = (event.target as HTMLInputElement).checked;\n\n if (isCheckboxGroup.value) {\n const newCheckedList = [...(modelValue.value as BentoMultiCheckboxType)];\n const index = newCheckedList.indexOf(value.value);\n\n if (index === -1) {\n newCheckedList.push(value.value);\n } else {\n newCheckedList.splice(index, 1);\n }\n emit(BentoCheckboxEvent.UPDATE, newCheckedList);\n emit(BentoCheckboxEvent.INPUT, newCheckedList);\n } else {\n emit(BentoCheckboxEvent.UPDATE, newValue);\n emit(BentoCheckboxEvent.INPUT, newValue);\n }\n };\n\n return {\n // Values\n descriptionId,\n errorId,\n ariaChecked,\n ariaDescribedBy,\n ariaInvalid,\n computedAriaLabel,\n conditionalClass,\n conditionalClassOutline,\n defaultSlotValue,\n descriptionSlotValue,\n isCheckboxGroup,\n isChecked,\n isIndeterminate,\n shouldShowErrorMessage,\n contentSlotAvailable,\n hasContentSlot,\n\n // Methods\n hasSlot,\n onChange,\n onClick,\n\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./checkbox.scss\" />\n"],"names":["BentoCheckboxState","BentoCheckboxState2","BentoCheckboxEvent","BentoCheckboxEvent2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoTypography","ErrorMessage","CheckmarkSmallIcon","MinusSmallIcon","props","attrs","emit","slots","t","useI18n","descriptionId","generateUid","errorId","hasSlot","useHasSlot","disabled","indeterminate","modelValue","readonly","value","toRefs","defaultSlotValue","getSlotText","descriptionSlotValue","useDefaultSlotValidator","isCheckboxGroup","computed","isChecked","item","isIndeterminate","shouldShowError","shouldShowErrorMessage","hasContentSlot","isCheckedOrIntermediate","contentSlotAvailable","ariaChecked","ariaDescribedBy","ariaLabelAttribute","ref","ariaLabel","computedAriaLabel","useAriaLabel","ariaInvalid","conditionalClass","conditionalClassOutline","event","newValue","newCheckedList","index"],"mappings":"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","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"checkbox.d8b810c7.js","sources":["../../src/components/checkbox/checkbox.types.ts","../../node_modules/@adyen/ui-assets-icons-16/dist/vue/minus-small.vue","../../src/components/checkbox/checkbox.vue"],"sourcesContent":["export type BentoMultiCheckboxType = Array<string | number>;\nexport type BentoCheckboxType = boolean | BentoMultiCheckboxType;\n\nexport enum BentoCheckboxState {\n UNCHECKED = 'unchecked',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum BentoCheckboxEvent {\n UPDATE = 'update:model-value',\n INPUT = 'input',\n}\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M4.25 7.25H11.75V8.75H4.25V7.25Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","<template>\n <label class=\"b-checkbox\" :class=\"conditionalClass\">\n <div class=\"b-checkbox__input-container\">\n <!-- Don't change order because it matters for CSS. Icons first -->\n <minus-small-icon v-if=\"isIndeterminate\" class=\"b-checkbox__icon\" svg-title=\"intermediate\" />\n <checkmark-small-icon v-else-if=\"isChecked\" class=\"b-checkbox__icon\" svg-title=\"checked\" />\n <input\n ref=\"input\"\n role=\"checkbox\"\n class=\"b-checkbox__outline\"\n type=\"checkbox\"\n v-bind=\"$attrs\"\n :aria-label=\"computedAriaLabel\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"ariaDescribedBy\"\n :aria-invalid=\"ariaInvalid\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :indeterminate.prop=\"isIndeterminate\"\n :value=\"value\"\n :class=\"conditionalClassOutline\"\n :aria-readonly=\"readonly\"\n @change=\"onChange\"\n @click=\"onClick\"\n />\n </div>\n <span v-if=\"hasSlot('default') || shouldShowErrorMessage\" class=\"b-checkbox__text\">\n <bento-typography v-if=\"hasSlot('default')\" class=\"b-checkbox__label\" el=\"span\" variant=\"body\">\n <slot></slot>\n <bento-typography v-if=\"optional\" class=\"b-checkbox__text-requirement\" el=\"span\">\n ({{ t('optional') }})\n </bento-typography>\n <bento-typography v-else-if=\"required\" class=\"b-checkbox__text-requirement\" el=\"span\">\n ({{ t('required') }})\n </bento-typography>\n </bento-typography>\n <bento-typography\n v-if=\"hasSlot('default') && hasSlot('description')\"\n :id=\"descriptionId\"\n class=\"b-checkbox__description\"\n el=\"span\"\n variant=\"body\"\n >\n <slot name=\"description\"></slot>\n </bento-typography>\n <error-message v-if=\"shouldShowErrorMessage\" :id=\"errorId\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"contentSlotAvailable\" class=\"b-checkbox__content\" el=\"span\" variant=\"body\">\n <slot name=\"content\"></slot>\n </bento-typography>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref, toRefs } from 'vue';\n import {\n BentoCheckboxEvent,\n BentoCheckboxState,\n BentoCheckboxType,\n BentoMultiCheckboxType,\n } from './checkbox.types';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage } from '@/components/internal/error-message';\n import type { HTMLAttributes } from 'vue/types/jsx';\n import CheckmarkSmallIcon from '@adyen/ui-assets-icons-16/vue/checkmark-small';\n import MinusSmallIcon from '@adyen/ui-assets-icons-16/vue/minus-small';\n import { useDefaultSlotValidator, useHasSlot } from '@/composables';\n import { generateUid } from '@/utils/ts/unique-id';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n import { useI18n } from '@/utils/ts/i18n';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { BentoCheckboxGroupItems } from './components/checkbox-group/checkbox-group.types';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * Checkboxes are used to make a binary choice about an option.\n * The label tag area is also clickable.\n *\n * @usage\n * import { BentoCheckbox } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCheckbox },\n * template: `\n * <bento-checkbox>\n * Label text\n * <template #description>Sub label text</template>\n * </bento-checkbox>\n * `,\n * }\n */\n export default defineComponent({\n name: 'bento-checkbox',\n i18n: { messages },\n components: {\n BentoTypography,\n ErrorMessage,\n CheckmarkSmallIcon,\n MinusSmallIcon,\n },\n model: { prop: 'modelValue' },\n props: {\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n *\n * In the case of multiple checkboxes this value is used as a unique key.\n */\n value: { type: [String, Number], default: null },\n\n /**\n * When handling a single checkbox with a singular state, use a boolean.\n *\n * When handling multiple checkboxes, use an array of keys.\n * These keys exist as a set \"value\" prop for each checkbox.\n */\n modelValue: {\n type: [Boolean, Array] as PropType<BentoCheckboxType | BentoCheckboxGroupItems>,\n default: false,\n },\n\n /**\n * Setting this property to true will disable the checkbox in your form.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Highlights the checkbox is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Setting this property to true will set the checkbox to read only state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Setting this property to true will show the checkbox in error state.\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * Renders the checkbox in an error state with an error message.\n */\n errorMessage: { type: String, default: null },\n\n /**\n * The :indeterminate CSS pseudo-class represents any form element\n * whose state is indeterminate, such as checkboxes which have their HTML indeterminate attribute\n * set to true, radio buttons which are members of a group in which all radio buttons are unchecked,\n * and indeterminate <progress> elements. https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate\n * This property lets you control the input.indeterminate native property.\n */\n indeterminate: { type: Boolean, default: false },\n\n /**\n * @deprecated from version 2.0.0. Use the aria-label attribute instead.\n */\n /**\n * Accessible name for the radio button component. It is strongly recommended to pas this value in case this component is used without a label.\n */\n ariaLabel: { type: String, default: null },\n\n /**\n * Highlights the checkbox is optional.\n */\n optional: { type: Boolean, default: false },\n },\n emits: [BentoCheckboxEvent.UPDATE, BentoCheckboxEvent.INPUT],\n setup(props, { attrs, emit, slots }) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const descriptionId = generateUid('description');\n const errorId = generateUid('error');\n const hasSlot = useHasSlot(slots);\n\n const { disabled, indeterminate, modelValue, readonly, value } = toRefs(props);\n\n const defaultSlotValue = getSlotText(slots)('default');\n const descriptionSlotValue = getSlotText(slots)('description');\n\n useDefaultSlotValidator('bento-checkbox', slots.default, slots.description);\n\n const isCheckboxGroup = computed(() => Array.isArray(modelValue.value));\n const isChecked = computed(() => {\n if (!isCheckboxGroup.value) {\n return modelValue.value as boolean;\n }\n\n return (modelValue.value as BentoMultiCheckboxType).some(item => item === value.value);\n });\n const isIndeterminate = computed(() => indeterminate.value);\n\n const shouldShowError = computed(\n () => !props.disabled && !props.readonly && (props.hasError || !!props.errorMessage)\n );\n const shouldShowErrorMessage = computed(() => !props.disabled && !props.readonly && !!props.errorMessage);\n\n // Content slot logic\n const hasContentSlot = computed(() => hasSlot('content'));\n const isCheckedOrIntermediate = computed(() => isIndeterminate?.value || isChecked?.value);\n const contentSlotAvailable = computed(\n () => hasContentSlot?.value && isCheckboxGroup?.value && isCheckedOrIntermediate?.value\n );\n\n // ARIA fields\n const ariaChecked = computed<HTMLAttributes['aria-checked']>(() =>\n isIndeterminate.value ? 'mixed' : `${!!isChecked.value}`\n );\n\n const ariaDescribedBy = computed<HTMLAttributes['aria-describedby']>(\n () =>\n `${shouldShowErrorMessage.value ? errorId : ''} ${\n defaultSlotValue && descriptionSlotValue ? descriptionId : ''\n }`.trim() || null\n );\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: hasSlot('default')\n ? (getSlotText(slots)('default') as string)\n : t('ariaLabelFallback'),\n });\n\n const ariaInvalid = computed<HTMLAttributes['aria-invalid']>(() => shouldShowError.value);\n\n const conditionalClass = computed(() => ({\n [`b-checkbox--${BentoCheckboxState.DISABLED}`]: disabled.value,\n [`b-checkbox--${BentoCheckboxState.READONLY}`]: readonly.value,\n }));\n const conditionalClassOutline = computed(() => ({\n [`b-checkbox__outline--${BentoCheckboxState.UNCHECKED}`]: !isChecked.value && !isIndeterminate.value,\n [`b-checkbox__outline--${BentoCheckboxState.ERROR}`]: shouldShowError.value,\n [`b-checkbox__outline--${BentoCheckboxState.READONLY}`]: readonly.value,\n }));\n\n // readonly attr doesn't work with checkbox, so we need to manually ignore the click instead\n const onClick = (event: Event) => {\n if (readonly.value) {\n event.preventDefault();\n }\n };\n\n const onChange = (event: Event) => {\n if (disabled.value) {\n return;\n }\n\n const newValue: boolean = (event.target as HTMLInputElement).checked;\n\n if (isCheckboxGroup.value) {\n const newCheckedList = [...(modelValue.value as BentoMultiCheckboxType)];\n const index = newCheckedList.indexOf(value.value);\n\n if (index === -1) {\n newCheckedList.push(value.value);\n } else {\n newCheckedList.splice(index, 1);\n }\n emit(BentoCheckboxEvent.UPDATE, newCheckedList);\n emit(BentoCheckboxEvent.INPUT, newCheckedList);\n } else {\n emit(BentoCheckboxEvent.UPDATE, newValue);\n emit(BentoCheckboxEvent.INPUT, newValue);\n }\n };\n\n return {\n // Values\n descriptionId,\n errorId,\n ariaChecked,\n ariaDescribedBy,\n ariaInvalid,\n computedAriaLabel,\n conditionalClass,\n conditionalClassOutline,\n defaultSlotValue,\n descriptionSlotValue,\n isCheckboxGroup,\n isChecked,\n isIndeterminate,\n shouldShowErrorMessage,\n contentSlotAvailable,\n hasContentSlot,\n\n // Methods\n hasSlot,\n onChange,\n onClick,\n\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./checkbox.scss\" />\n"],"names":["BentoCheckboxState","BentoCheckboxState2","BentoCheckboxEvent","BentoCheckboxEvent2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoTypography","ErrorMessage","CheckmarkSmallIcon","MinusSmallIcon","props","attrs","emit","slots","t","useI18n","descriptionId","generateUid","errorId","hasSlot","useHasSlot","disabled","indeterminate","modelValue","readonly","value","toRefs","defaultSlotValue","getSlotText","descriptionSlotValue","useDefaultSlotValidator","isCheckboxGroup","computed","isChecked","item","isIndeterminate","shouldShowError","shouldShowErrorMessage","hasContentSlot","isCheckedOrIntermediate","contentSlotAvailable","ariaChecked","ariaDescribedBy","ariaLabelAttribute","ref","ariaLabel","computedAriaLabel","useAriaLabel","ariaInvalid","conditionalClass","conditionalClassOutline","event","newValue","newCheckedList","index"],"mappings":"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","x_google_ignoreList":[1]}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as d, useAttrs as p, computed as o } from "vue";
2
- import { d as c, B as u } from "./index.b0a89960.js";
3
- import { F as b } from "./field-label.a0c54b7d.js";
2
+ import { d as c, B as u } from "./index.99a2184a.js";
3
+ import { F as b } from "./field-label.66f52c8f.js";
4
4
  import { n as _ } from "./_plugin-vue2_normalizer.71e2aa87.js";
5
5
  import "../assets/controls-group.css";
6
6
  const f = {}, y = /* @__PURE__ */ d({
@@ -80,4 +80,4 @@ const x = g.exports;
80
80
  export {
81
81
  x as C
82
82
  };
83
- //# sourceMappingURL=controls-group.d25f5044.js.map
83
+ //# sourceMappingURL=controls-group.bf152dea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group.d25f5044.js","sources":["../../src/components/internal/controls-group/controls-group.vue"],"sourcesContent":["<template>\n <fieldset\n class=\"b-controls-group\"\n :class=\"conditionalClasses\"\n :form=\"form\"\n :disabled=\"disabled\"\n :aria-describedby=\"ariaAttributes['aria-describedby']\"\n >\n <legend class=\"b-controls-group__label-container\" :class=\"legendConditionalClasses\">\n <field-label\n v-if=\"label\"\n class=\"b-controls-group__label\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography v-if=\"description\" class=\"b-controls-group__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n\n const attrs = useAttrs();\n\n const props = defineProps({\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * The name of the component to cite when throwing a depreacte error.\n */\n componentName: { type: String, required: true },\n\n /**\n * Sets all child controls of the <fieldset> as disabled.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * The value of the id attribute of a <form> element the <fieldset> is to part of, even if it is not inside the form itself.\n */\n form: { type: String, default: null },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n * The label is shown when `hideLabel` is set to `true` or if `description` is passed\n */\n label: { type: String, required: true },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n });\n\n const ariaAttributes = computed(() => ({\n 'aria-describedby': attrs['aria-describedby']?.toString() as string,\n }));\n\n const conditionalClasses = computed(() => ({\n 'b-controls-group--disabled': props.disabled,\n }));\n\n const legendConditionalClasses = computed(() => {\n const isLabelAndDescriptionPresent = props.label && props.description;\n const shouldShowLabel = isLabelAndDescriptionPresent || props.hideLabel === false;\n\n return {\n 'b-controls-group__label-container--hidden': !shouldShowLabel,\n };\n });\n\n // eslint-disable-next-line eqeqeq -- Needs to show deprecate message when hideLabel is not set and no description available\n const hasNoPropsDefined = !props.description && props.hideLabel == undefined;\n if (hasNoPropsDefined) {\n deprecate(\n `${props.componentName}: The property \\`label\\` will always be rendered by default.`,\n `After version 2.0.0, the label will be shown by default.\n To continue hiding the label set \\`:hide-label=\"true\"\\`. Up until version 2.0.0, to display the label set \\`hide-label=\"false\"\\`.\n \\`label\\` will always be rendered when \\`description\\` is passed alongside with \\`label\\``,\n `2.0.0`\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A controls group components should be used whenever it is necessary to group a set of controls (i.e. radio buttons or checkboxes)\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * NOTE: This component should not be used by itself but more implemented by other exported components\n * @example\n * import { ControlsGroup, BentoCheckbox } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { ControlsGroup, RadioButton },\n * template: `\n * <controls-group\n * label=\"Your group label\"\n * description=\"Description\"\n * >\n * <radio-button\n * disabled\n * value=\"inputRadio\"\n * >\n * Label text\n * </radio-button>\n * <radio-button\n * value=\"inputRadio\"\n * >\n * Another label text\n * </radio-button>\n * </controls-group>\n * `\n * };\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","ariaAttributes","computed","_a","conditionalClasses","props","legendConditionalClasses","hasNoPropsDefined","deprecate"],"mappings":";;;;;AA8II,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA/GAC,IAAAC,EAAA,GAkDAC,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAJ,EAAA,kBAAA,MAAA,gBAAAI,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAG,EAAA;AAAA,IACH,EAAA,GAGxCC,IAAAJ,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPG,EAAA,SAAAA,EAAA,eACAA,EAAA,cAAA;AAAA,IAGkD,EAClD,GAIJE,IAAA,CAAAF,EAAA,eAAAA,EAAA,aAAA;AACA,WAAAE,KACIC;AAAA,MAAA,GAAAH,EAAA;AAAA,MACa;AAAA,MACT;AAAA,IAGA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"controls-group.bf152dea.js","sources":["../../src/components/internal/controls-group/controls-group.vue"],"sourcesContent":["<template>\n <fieldset\n class=\"b-controls-group\"\n :class=\"conditionalClasses\"\n :form=\"form\"\n :disabled=\"disabled\"\n :aria-describedby=\"ariaAttributes['aria-describedby']\"\n >\n <legend class=\"b-controls-group__label-container\" :class=\"legendConditionalClasses\">\n <field-label\n v-if=\"label\"\n class=\"b-controls-group__label\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography v-if=\"description\" class=\"b-controls-group__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </legend>\n <slot />\n </fieldset>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useAttrs } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { FieldLabel } from '@/components/internal/field-label';\n import { deprecate } from '@/utils/ts/deprecate';\n\n const attrs = useAttrs();\n\n const props = defineProps({\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * The name of the component to cite when throwing a depreacte error.\n */\n componentName: { type: String, required: true },\n\n /**\n * Sets all child controls of the <fieldset> as disabled.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * The value of the id attribute of a <form> element the <fieldset> is to part of, even if it is not inside the form itself.\n */\n form: { type: String, default: null },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n * The label is shown when `hideLabel` is set to `true` or if `description` is passed\n */\n label: { type: String, required: true },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n });\n\n const ariaAttributes = computed(() => ({\n 'aria-describedby': attrs['aria-describedby']?.toString() as string,\n }));\n\n const conditionalClasses = computed(() => ({\n 'b-controls-group--disabled': props.disabled,\n }));\n\n const legendConditionalClasses = computed(() => {\n const isLabelAndDescriptionPresent = props.label && props.description;\n const shouldShowLabel = isLabelAndDescriptionPresent || props.hideLabel === false;\n\n return {\n 'b-controls-group__label-container--hidden': !shouldShowLabel,\n };\n });\n\n // eslint-disable-next-line eqeqeq -- Needs to show deprecate message when hideLabel is not set and no description available\n const hasNoPropsDefined = !props.description && props.hideLabel == undefined;\n if (hasNoPropsDefined) {\n deprecate(\n `${props.componentName}: The property \\`label\\` will always be rendered by default.`,\n `After version 2.0.0, the label will be shown by default.\n To continue hiding the label set \\`:hide-label=\"true\"\\`. Up until version 2.0.0, to display the label set \\`hide-label=\"false\"\\`.\n \\`label\\` will always be rendered when \\`description\\` is passed alongside with \\`label\\``,\n `2.0.0`\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * A controls group components should be used whenever it is necessary to group a set of controls (i.e. radio buttons or checkboxes)\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * NOTE: This component should not be used by itself but more implemented by other exported components\n * @example\n * import { ControlsGroup, BentoCheckbox } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { ControlsGroup, RadioButton },\n * template: `\n * <controls-group\n * label=\"Your group label\"\n * description=\"Description\"\n * >\n * <radio-button\n * disabled\n * value=\"inputRadio\"\n * >\n * Label text\n * </radio-button>\n * <radio-button\n * value=\"inputRadio\"\n * >\n * Another label text\n * </radio-button>\n * </controls-group>\n * `\n * };\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./controls-group.scss\" />\n"],"names":["__default__","attrs","useAttrs","ariaAttributes","computed","_a","conditionalClasses","props","legendConditionalClasses","hasNoPropsDefined","deprecate"],"mappings":";;;;;AA8II,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA/GAC,IAAAC,EAAA,GAkDAC,IAAAC,EAAA,MAAA;;AAAA;AAAA,QAAuC,qBAAAC,IAAAJ,EAAA,kBAAA,MAAA,gBAAAI,EAAA;AAAA,MACqB;AAAA,KAAA,GAG5DC,IAAAF,EAAA,OAAA;AAAA,MAA2C,8BAAAG,EAAA;AAAA,IACH,EAAA,GAGxCC,IAAAJ,EAAA,OAII;AAAA,MAAO,6CAAA,EAHPG,EAAA,SAAAA,EAAA,eACAA,EAAA,cAAA;AAAA,IAGkD,EAClD,GAIJE,IAAA,CAAAF,EAAA,eAAAA,EAAA,aAAA;AACA,WAAAE,KACIC;AAAA,MAAA,GAAAH,EAAA;AAAA,MACa;AAAA,MACT;AAAA,IAGA;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as v, ref as s, computed as i } from "vue";
2
- import { a as d } from "./button.bb5b4909.js";
3
- import { c as f } from "./index.58282364.js";
2
+ import { a as d } from "./button.133f145e.js";
3
+ import { c as f } from "./index.d90c5838.js";
4
4
  import { u as y } from "./i18n.eb5b985b.js";
5
5
  import { n as c } from "./_plugin-vue2_normalizer.71e2aa87.js";
6
- import { b as C } from "./tooltip.f48beb54.js";
6
+ import { b as C } from "./tooltip.f91b2040.js";
7
7
  import "../assets/copy.css";
8
8
  var n = /* @__PURE__ */ ((o) => (o.DEFAULT = "default", o.COPYING = "copying", o.ERROR = "error", o))(n || {});
9
9
  let a = 0;
@@ -119,4 +119,4 @@ export {
119
119
  A as C,
120
120
  n as a
121
121
  };
122
- //# sourceMappingURL=copy.36c058e9.js.map
122
+ //# sourceMappingURL=copy.68a7d416.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy.36c058e9.js","sources":["../../src/components/internal/copy/copy.types.ts","../../node_modules/@adyen/ui-assets-icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import type { BentoButton } from '../../button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport type BentoCopyButtonProps = {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n};\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ $t('copied') }}</div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoCopyButtonProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'copy',\n components: { BentoButton, CopyIcon },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button: {\n type: Object as PropType<BentoCopyButtonProps>,\n default: () =>\n ({\n variant: 'tertiary',\n } as BentoCopyButtonProps),\n },\n\n /**\n * Sets the button text of the copy button.\n */\n buttonText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: {\n type: String,\n required: true,\n },\n\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition: {\n type: String as PropType<PopperContainerPosition>,\n default: PopperContainerPosition.TOP,\n },\n },\n setup(props) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async () => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch (e) {\n copyState.value = CopyTooltipState.ERROR;\n }\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n case CopyTooltipState.DEFAULT:\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props?.buttonText ? undefined : t('copy')));\n\n return {\n copyText,\n onClickCopy,\n resetText,\n showScreenReaderAlert,\n svgTitle,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoButton","CopyIcon","BentoTooltipDirective","PopperContainerPosition","props","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;AAEY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACGZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;GCmCAE,IAAAC,EAAA;AAAA,EAAA,MAAA,EAAA,UAAAC,EAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA,EAAA,aAAAC,GAAA,UAAAC,EAAA;AAAA,EACA,YAAA,EAAA,uBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,QAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA,OAAA;AAAA,QAEA,SAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAKA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,iBAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAC,GAAA;AAEA,UAAA,EAAA,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAd,EAAA,OAAA,GAEAe,IAAAD,EAAA,EAAA,GACAE,IAAA,YAAA;AACA,UAAA;AACA,cAAA,UAAA,UAAA,UAAAL,EAAA,IAAA,GACAE,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,MAAA,QAAA;AAEA,QAAAF,EAAA,QAAAb,EAAA;AAAA,MAAA;AAAA,IACA,GAGAiB,IAAA,MAAA;AACA,MAAAJ,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,IAAA,GAGAG,IAAAC,EAAA,MAAA;AACA,cAAAN,EAAA,OAAA;AAAA,QAAA,KAAAb,EAAA;AAEA,iBAAA,EAAA,QAAA;AAAA,QAAA,KAAAA,EAAA;AAEA,iBAAA,EAAA,YAAA;AAAA,QAAA,KAAAA,EAAA;AAAA,QACA;AAEA,iBAAA,EAAA,MAAA;AAAA,MAAA;AAAA,IACA,CAAA,GAGAoB,IAAAD,EAAA,MAAAR,KAAA,QAAAA,EAAA,aAAA,SAAA,EAAA,MAAA,CAAA;AAEA,WAAA;AAAA,MAAA,UAAAO;AAAA,MACA,aAAAF;AAAA,MACA,WAAAC;AAAA,MACA,uBAAAF;AAAA,MACA,UAAAK;AAAA,IACA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"copy.68a7d416.js","sources":["../../src/components/internal/copy/copy.types.ts","../../node_modules/@adyen/ui-assets-icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import type { BentoButton } from '../../button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport type BentoCopyButtonProps = {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n};\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\"/></svg>\n</template>\n<script>\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n<style>\n @import '../css/main.css';\n</style>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ $t('copied') }}</div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoCopyButtonProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'copy',\n components: { BentoButton, CopyIcon },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button: {\n type: Object as PropType<BentoCopyButtonProps>,\n default: () =>\n ({\n variant: 'tertiary',\n } as BentoCopyButtonProps),\n },\n\n /**\n * Sets the button text of the copy button.\n */\n buttonText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: {\n type: String,\n required: true,\n },\n\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition: {\n type: String as PropType<PopperContainerPosition>,\n default: PopperContainerPosition.TOP,\n },\n },\n setup(props) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async () => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch (e) {\n copyState.value = CopyTooltipState.ERROR;\n }\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n case CopyTooltipState.DEFAULT:\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props?.buttonText ? undefined : t('copy')));\n\n return {\n copyText,\n onClickCopy,\n resetText,\n showScreenReaderAlert,\n svgTitle,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoButton","CopyIcon","BentoTooltipDirective","PopperContainerPosition","props","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;AAEY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACGZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;GCmCAE,IAAAC,EAAA;AAAA,EAAA,MAAA,EAAA,UAAAC,EAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA,EAAA,aAAAC,GAAA,UAAAC,EAAA;AAAA,EACA,YAAA,EAAA,uBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,QAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA,OAAA;AAAA,QAEA,SAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAKA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,iBAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAC,GAAA;AAEA,UAAA,EAAA,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAd,EAAA,OAAA,GAEAe,IAAAD,EAAA,EAAA,GACAE,IAAA,YAAA;AACA,UAAA;AACA,cAAA,UAAA,UAAA,UAAAL,EAAA,IAAA,GACAE,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,MAAA,QAAA;AAEA,QAAAF,EAAA,QAAAb,EAAA;AAAA,MAAA;AAAA,IACA,GAGAiB,IAAA,MAAA;AACA,MAAAJ,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,IAAA,GAGAG,IAAAC,EAAA,MAAA;AACA,cAAAN,EAAA,OAAA;AAAA,QAAA,KAAAb,EAAA;AAEA,iBAAA,EAAA,QAAA;AAAA,QAAA,KAAAA,EAAA;AAEA,iBAAA,EAAA,YAAA;AAAA,QAAA,KAAAA,EAAA;AAAA,QACA;AAEA,iBAAA,EAAA,MAAA;AAAA,MAAA;AAAA,IACA,CAAA,GAGAoB,IAAAD,EAAA,MAAAR,KAAA,QAAAA,EAAA,aAAA,SAAA,EAAA,MAAA,CAAA;AAEA,WAAA;AAAA,MAAA,UAAAO;AAAA,MACA,aAAAF;AAAA,MACA,WAAAC;AAAA,MACA,uBAAAF;AAAA,MACA,UAAAK;AAAA,IACA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
@@ -1,31 +1,35 @@
1
- import { defineComponent as x, ref as w, computed as i } from "vue";
2
- import { g as E } from "./unique-id.a2a2b458.js";
3
- import { u as I } from "./use-has-slot.fbeb19ec.js";
4
- import { B as S } from "./index.b0a89960.js";
5
- import { d as O } from "./debounce.b5ef6acf.js";
6
- import { C as D } from "./cross-circle-fill.27580c4b.js";
7
- import { B as N } from "./keyboard-navigation.ca47dfa8.js";
8
- import { n as m } from "./_plugin-vue2_normalizer.71e2aa87.js";
9
- import { s as _ } from "./events.58c00e6d.js";
10
- import { C as h, a as k } from "./chevron-up.81185563.js";
1
+ import { defineComponent as m, useAttrs as h, useSlots as O, ref as D, computed as d, watch as k, nextTick as N } from "vue";
2
+ import { g as L } from "./unique-id.a2a2b458.js";
3
+ import { u as A } from "./use-has-slot.fbeb19ec.js";
4
+ import { B as P } from "./index.99a2184a.js";
5
+ import { d as B } from "./debounce.b5ef6acf.js";
6
+ import { C as R } from "./cross-circle-fill.27580c4b.js";
7
+ import { n as w } from "./_plugin-vue2_normalizer.71e2aa87.js";
8
+ import { s as x } from "./events.58c00e6d.js";
9
+ import { C as V, a as F } from "./chevron-up.81185563.js";
11
10
  import "../assets/dropdown-default-textbox.css";
12
- var r = /* @__PURE__ */ ((t) => (t.DISABLED = "disabled", t.READONLY = "readonly", t.HAS_ITEMS = "has-items", t.OPENED = "opened", t.ERROR = "error", t))(r || {}), n = /* @__PURE__ */ ((t) => (t.OPEN = "open", t.KEYDOWN = "keydown", t.CLOSE = "close", t.INPUT = "input", t.CLEAR = "clear", t))(n || {});
13
- const L = x({
11
+ var i = /* @__PURE__ */ ((o) => (o.DISABLED = "disabled", o.READONLY = "readonly", o.HAS_ITEMS = "has-items", o.OPENED = "opened", o.ERROR = "error", o))(i || {}), l = /* @__PURE__ */ ((o) => (o.OPEN = "open", o.KEYDOWN = "keydown", o.CLOSE = "close", o.INPUT = "input", o.CLEAR = "clear", o))(l || {});
12
+ const T = m({
14
13
  name: "dropdown-base-textbox",
15
- components: { BentoTypography: S, CrossCircleFillIcon: D },
16
- inheritAttrs: !1,
14
+ inheritAttrs: !1
15
+ }), U = /* @__PURE__ */ m({
16
+ ...T,
17
17
  props: {
18
18
  /**
19
19
  * The number of additional items that have been selected in the dropdown.
20
20
  */
21
21
  additionalItemsSelected: { type: [Number, String], default: 0 },
22
22
  /**
23
- * Sets the aria-controls attribute on the textbox. This should correspond to the popover's id that the textbox triggers.
23
+ * If the combobox DOM element should be an `input` element.
24
24
  */
25
- ariaControls: {
26
- type: String,
27
- required: !0
25
+ alwaysComboboxIsInput: {
26
+ type: Boolean,
27
+ default: !1
28
28
  },
29
+ /**
30
+ * Sets the aria-controls attribute on the textbox. This should correspond to the popover's id that the textbox triggers.
31
+ */
32
+ ariaControls: { type: String, required: !0 },
29
33
  /**
30
34
  * Indicates whether the content the textbox triggers is visible or not. Needs to be set accordingly when the textbox is used and changed every time the popover is shown/hidden.
31
35
  */
@@ -36,17 +40,11 @@ const L = x({
36
40
  /**
37
41
  * If no label element is used then the aria-label is be set should be set.
38
42
  */
39
- ariaLabel: {
40
- type: String,
41
- default: null
42
- },
43
+ ariaLabel: { type: String, default: null },
43
44
  /**
44
45
  * Corresponds to the label's id that labels the textbox element.
45
46
  */
46
- ariaLabelledby: {
47
- type: String,
48
- default: null
49
- },
47
+ ariaLabelledby: { type: String, default: null },
50
48
  /**
51
49
  * Custom debounce time for the user type event.
52
50
  */
@@ -62,14 +60,15 @@ const L = x({
62
60
  /**
63
61
  * Sets the possibility to type into the textbox.
64
62
  */
65
- dynamicFiltering: {
66
- type: Boolean,
67
- default: !1
68
- },
63
+ dynamicFiltering: { type: Boolean, default: !1 },
69
64
  /**
70
65
  * Marks the textbox as invalid, rendering an error state
71
66
  */
72
67
  isInvalid: { type: Boolean, default: !1 },
68
+ /*
69
+ * If enabled, the user will be able to select multiple items.
70
+ */
71
+ multiple: { type: Boolean, default: !1 },
73
72
  /**
74
73
  * Indicates if the dropdown is open so that
75
74
  * the respective event can be emitted
@@ -93,31 +92,22 @@ const L = x({
93
92
  /**
94
93
  * Toggles whether to use the slot content select items shown in the textbox in multiple mode.
95
94
  */
96
- showSlotContentInMultiple: { type: Boolean, default: !1 },
97
- /*
98
- * If enabled, the user will be able to select multiple items.
99
- */
100
- multiple: { type: Boolean, default: !1 }
95
+ showSlotContentInMultiple: { type: Boolean, default: !1 }
101
96
  },
102
- emits: [
103
- n.OPEN,
104
- n.CLOSE,
105
- n.INPUT,
106
- n.CLEAR,
107
- n.KEYDOWN
108
- ],
109
- setup(t, { emit: e, slots: l, attrs: a }) {
110
- const s = w(null), u = E("textbox"), p = i(() => ({
111
- [`b-dropdown-base-textbox--${r.DISABLED}`]: t.disabled,
112
- [`b-dropdown-base-textbox--${r.READONLY}`]: t.readonly,
113
- [`b-dropdown-base-textbox--${r.HAS_ITEMS}`]: !!t.additionalItemsSelected
114
- })), b = i(() => t.dynamicFiltering && !!t.value && t.open), f = i(
97
+ setup(o, { emit: e }) {
98
+ const t = o, n = h(), a = O(), p = A(a), u = D(null), c = L("textbox"), b = d(() => ({
99
+ [`b-dropdown-base-textbox--${i.DISABLED}`]: t.disabled,
100
+ [`b-dropdown-base-textbox--${i.READONLY}`]: t.readonly,
101
+ [`b-dropdown-base-textbox--${i.HAS_ITEMS}`]: !!t.additionalItemsSelected
102
+ })), f = d(() => ({
103
+ ["b-dropdown-base-textbox__input--dynamic-filtering"]: t.dynamicFiltering
104
+ })), y = d(() => t.dynamicFiltering && !!t.value && t.open), s = d(
115
105
  () => {
116
- var d;
106
+ var r;
117
107
  return {
118
108
  "aria-haspopup": "listbox",
119
109
  "aria-controls": t.ariaControls,
120
- "aria-describedby": (d = a["aria-describedby"]) == null ? void 0 : d.toString(),
110
+ "aria-describedby": (r = n["aria-describedby"]) == null ? void 0 : r.toString(),
121
111
  "aria-expanded": t.ariaExpanded ? "true" : "false",
122
112
  "aria-labelledby": t.ariaLabelledby,
123
113
  "aria-label": t.ariaLabelledby ? null : t.ariaLabel,
@@ -125,79 +115,70 @@ const L = x({
125
115
  "aria-disabled": t.disabled ? !0 : null
126
116
  };
127
117
  }
128
- ), y = () => {
129
- !t.disabled && !t.readonly && (s.value.focus(), e(n.OPEN));
130
- }, c = () => {
131
- t.open && (s.value.focus(), e(n.CLOSE));
132
- }, o = (d) => t.open && d.target.tagName === "INPUT" ? null : t.open ? c() : y(), v = () => {
133
- e(n.CLEAR), e(n.INPUT, ""), s.value.focus();
134
- }, C = O((d) => {
135
- !t.readonly && !t.disabled ? e(n.INPUT, d.target.value) : (d.preventDefault(), d.stopPropagation());
136
- }, t.debounceTime), g = i(
118
+ ), _ = d(() => t.dynamicFiltering && (t.open || t.alwaysComboboxIsInput));
119
+ k(
120
+ () => _.value,
121
+ () => {
122
+ _.value && !t.alwaysComboboxIsInput && N(() => {
123
+ u.value.focus();
124
+ });
125
+ }
126
+ );
127
+ const C = () => {
128
+ !t.disabled && !t.readonly && (u.value.focus(), e(l.OPEN));
129
+ }, v = () => {
130
+ t.open && (u.value.focus(), e(l.CLOSE));
131
+ }, g = (r) => t.open && r.target.tagName === "INPUT" ? null : t.open ? v() : C(), I = () => {
132
+ e(l.CLEAR), e(l.INPUT, ""), u.value.focus();
133
+ }, S = B((r) => {
134
+ !t.readonly && !t.disabled ? e(l.INPUT, r.target.value) : (r.preventDefault(), r.stopPropagation());
135
+ }, t.debounceTime), E = d(
137
136
  () => t.multiple ? t.selectedValueItem : []
138
137
  );
139
- return {
140
- // Enums
141
- BentoKeyboardNavigationKeyDownEvent: N,
142
- DropdownBaseTextboxEvent: n,
143
- // Values
144
- conditionalClasses: p,
145
- textboxId: u,
146
- textbox: s,
147
- isFiltering: b,
148
- ariaAttributes: f,
149
- selectedValueItems: g,
150
- // Events
151
- onCloseDropdown: c,
152
- onToggleDropdown: o,
153
- onClearSearch: v,
154
- onInputEvent: C,
155
- // Methods
156
- hasSlot: I(l)
157
- };
138
+ return { __sfc: !0, attrs: n, slots: a, hasSlot: p, props: t, emit: e, textbox: u, textboxId: c, conditionalClasses: b, comboboxConditionalClasses: f, isFiltering: y, ariaAttributes: s, shouldShowInput: _, onOpenDropdown: C, onCloseDropdown: v, onToggleDropdown: g, onClearSearch: I, onInputEvent: S, selectedValueItems: E, BentoTypography: P, DropdownBaseTextboxEvent: l, CrossCircleFillIcon: R };
158
139
  }
159
140
  });
160
- var P = function() {
161
- var e = this, l = e._self._c;
162
- return e._self._setupProxy, l("div", { class: e.$attrs.class, attrs: { "data-testid": "textbox-wrapper" }, on: { click: e.onToggleDropdown, keydown: function(a) {
163
- return !a.type.indexOf("key") && e._k(a.keyCode, "escape", void 0, a.key, void 0) ? null : e.onCloseDropdown.apply(null, arguments);
164
- } } }, [l("bento-typography", { staticClass: "b-dropdown-base-textbox", class: e.conditionalClasses, attrs: { el: "div", "data-testid": "base-textbox" } }, [e.dynamicFiltering ? l("input", e._b({ ref: "textbox", staticClass: "b-dropdown-base-textbox__input", attrs: { id: e.textboxId, role: "combobox", type: "text", "aria-autocomplete": "list", disabled: e.disabled ? !0 : null, readonly: e.readonly }, domProps: { value: e.open ? e.value : e.displayValue }, on: { keydown: [function(a) {
165
- return e.$emit(e.DropdownBaseTextboxEvent.KEYDOWN, a);
141
+ var Y = function() {
142
+ var e = this, t = e._self._c, n = e._self._setupProxy;
143
+ return t("div", { class: e.$attrs.class, attrs: { "data-testid": "textbox-wrapper" }, on: { click: n.onToggleDropdown, keydown: function(a) {
144
+ return !a.type.indexOf("key") && e._k(a.keyCode, "escape", void 0, a.key, void 0) ? null : n.onCloseDropdown.apply(null, arguments);
145
+ } } }, [t(n.BentoTypography, { staticClass: "b-dropdown-base-textbox", class: n.conditionalClasses, attrs: { el: "div", "data-testid": "base-textbox" } }, [n.shouldShowInput ? t("input", e._b({ ref: "textbox", staticClass: "b-dropdown-base-textbox__input", attrs: { id: n.textboxId, role: "combobox", type: "text", "aria-autocomplete": "list", disabled: e.disabled ? !0 : null, readonly: e.readonly }, domProps: { value: e.open ? e.value : e.displayValue }, on: { keydown: [function(a) {
146
+ return e.$emit(n.DropdownBaseTextboxEvent.KEYDOWN, a);
166
147
  }, function(a) {
167
- return !a.type.indexOf("key") && e._k(a.keyCode, "enter", 13, a.key, "Enter") ? null : e.onToggleDropdown.apply(null, arguments);
168
- }], input: e.onInputEvent } }, "input", e.ariaAttributes, !1)) : l("div", e._b({ ref: "textbox", staticClass: "b-dropdown-base-textbox__input", attrs: { id: e.textboxId, role: "combobox", tabindex: 0 } }, "div", e.ariaAttributes, !1), [e.selectedValueItem && !e.multiple ? e._t("default", function() {
148
+ return !a.type.indexOf("key") && e._k(a.keyCode, "enter", 13, a.key, "Enter") ? null : n.onToggleDropdown.apply(null, arguments);
149
+ }], input: n.onInputEvent } }, "input", n.ariaAttributes, !1)) : t("div", e._b({ ref: "textbox", staticClass: "b-dropdown-base-textbox__input", class: n.comboboxConditionalClasses, attrs: { id: n.textboxId, role: "combobox", tabindex: 0 } }, "div", n.ariaAttributes, !1), [e.selectedValueItem && !e.multiple ? e._t("default", function() {
169
150
  return [e._v(" " + e._s(e.displayValue) + " ")];
170
- }, null, e.selectedValueItem) : e.selectedValueItem && e.showSlotContentInMultiple ? [l("div", { staticClass: "b-dropdown-base-textbox__input-multiple-selected" }, e._l(e.selectedValueItems, function(a) {
171
- return l("div", { key: a.value }, [l("div", { staticClass: "b-dropdown-base-textbox__input-selected-element" }, [e._t("default", function() {
151
+ }, null, e.selectedValueItem) : e.selectedValueItem && e.showSlotContentInMultiple ? [t("div", { staticClass: "b-dropdown-base-textbox__input-multiple-selected" }, e._l(n.selectedValueItems, function(a) {
152
+ return t("div", { key: a.value }, [t("div", { staticClass: "b-dropdown-base-textbox__input-selected-element" }, [e._t("default", function() {
172
153
  return [e._v(" " + e._s(e.displayValue) + " ")];
173
154
  }, null, a)], 2)]);
174
- }), 0)] : [e._v(e._s(e.displayValue))]], 2), e.additionalItemsSelected ? l("span", { staticClass: "b-dropdown-base-textbox__additional-items" }, [e._v(" " + e._s(e.additionalItemsSelected) + " ")]) : e._e(), e.hasSlot("icon") && !e.isFiltering ? l("span", { staticClass: "b-dropdown-base-textbox__icon", attrs: { "aria-hidden": "true" } }, [e._t("icon")], 2) : e._e(), e.isFiltering ? l("span", { staticClass: "b-dropdown-base-textbox__clear-search", attrs: { tabindex: "0", "data-testid": "clear-search-button" }, on: { click: function(a) {
175
- return a.stopPropagation(), e.onClearSearch.apply(null, arguments);
155
+ }), 0)] : [e._v(e._s(e.displayValue))]], 2), e.additionalItemsSelected ? t("span", { staticClass: "b-dropdown-base-textbox__additional-items" }, [e._v(" " + e._s(e.additionalItemsSelected) + " ")]) : e._e(), n.hasSlot("icon") && !n.isFiltering ? t("span", { staticClass: "b-dropdown-base-textbox__icon", attrs: { "aria-hidden": "true" } }, [e._t("icon")], 2) : e._e(), n.isFiltering ? t("span", { staticClass: "b-dropdown-base-textbox__clear-search", attrs: { tabindex: "0", "data-testid": "clear-search-button" }, on: { click: function(a) {
156
+ return a.stopPropagation(), n.onClearSearch.apply(null, arguments);
176
157
  }, keydown: function(a) {
177
- return !a.type.indexOf("key") && e._k(a.keyCode, "enter", 13, a.key, "Enter") ? null : (a.stopPropagation(), e.onClearSearch.apply(null, arguments));
158
+ return !a.type.indexOf("key") && e._k(a.keyCode, "enter", 13, a.key, "Enter") ? null : (a.stopPropagation(), n.onClearSearch.apply(null, arguments));
178
159
  }, keyup: function(a) {
179
- return !a.type.indexOf("key") && e._k(a.keyCode, "space", 32, a.key, [" ", "Spacebar"]) ? null : e.onClearSearch.apply(null, arguments);
180
- } } }, [l("cross-circle-fill-icon", { attrs: { "svg-title": "clearSearch" } })], 1) : e._e()])], 1);
181
- }, A = [], B = /* @__PURE__ */ m(
182
- L,
183
- P,
184
- A,
160
+ return !a.type.indexOf("key") && e._k(a.keyCode, "space", 32, a.key, [" ", "Spacebar"]) ? null : n.onClearSearch.apply(null, arguments);
161
+ } } }, [t(n.CrossCircleFillIcon, { attrs: { "svg-title": "clearSearch" } })], 1) : e._e()])], 1);
162
+ }, K = [], $ = /* @__PURE__ */ w(
163
+ U,
164
+ Y,
165
+ K,
185
166
  !1,
186
167
  null,
187
- "12a4c6f5",
168
+ "dbc6aa66",
188
169
  null,
189
170
  null
190
171
  );
191
- const R = B.exports, V = x({
172
+ const M = $.exports, W = m({
192
173
  name: "dropdown-default-textbox",
193
- components: { ChevronDownIcon: h, ChevronUpIcon: k, DropdownBaseTextbox: R },
174
+ components: { ChevronDownIcon: V, ChevronUpIcon: F, DropdownBaseTextbox: M },
194
175
  inheritAttrs: !1,
195
176
  emits: [
196
- n.OPEN,
197
- n.CLOSE,
198
- n.INPUT,
199
- n.CLEAR,
200
- n.KEYDOWN
177
+ l.OPEN,
178
+ l.CLOSE,
179
+ l.INPUT,
180
+ l.CLEAR,
181
+ l.KEYDOWN
201
182
  ],
202
183
  props: {
203
184
  /**
@@ -288,66 +269,66 @@ const R = B.exports, V = x({
288
269
  */
289
270
  multiple: { type: Boolean, default: !1 }
290
271
  },
291
- setup(t, { slots: e, emit: l }) {
292
- const a = i(() => ({
293
- [`b-dropdown-default-textbox--${r.ERROR}`]: !t.disabled && !t.readonly && t.isInvalid,
294
- [`b-dropdown-default-textbox--${r.DISABLED}`]: t.disabled,
295
- [`b-dropdown-default-textbox--${r.READONLY}`]: t.readonly,
296
- [`b-dropdown-default-textbox--${r.OPENED}`]: t.open,
297
- "b-dropdown-default-textbox--condensed": t.condensed
298
- })), s = i(() => t.open && !t.disabled && !t.readonly), u = (o) => {
299
- l(n.INPUT, o);
300
- }, p = (o) => {
301
- l(n.KEYDOWN, o);
302
- }, b = (o) => {
303
- _(o), l(n.OPEN);
304
- }, f = (o) => {
305
- _(o), l(n.CLOSE);
306
- }, y = (o) => {
307
- _(o), l(n.CLEAR);
308
- }, c = {
309
- [n.INPUT]: u,
310
- [n.OPEN]: b,
311
- [n.CLOSE]: f,
312
- [n.CLEAR]: y,
313
- [n.KEYDOWN]: p
272
+ setup(o, { slots: e, emit: t }) {
273
+ const n = d(() => ({
274
+ [`b-dropdown-default-textbox--${i.ERROR}`]: !o.disabled && !o.readonly && o.isInvalid,
275
+ [`b-dropdown-default-textbox--${i.DISABLED}`]: o.disabled,
276
+ [`b-dropdown-default-textbox--${i.READONLY}`]: o.readonly,
277
+ [`b-dropdown-default-textbox--${i.OPENED}`]: o.open,
278
+ "b-dropdown-default-textbox--condensed": o.condensed
279
+ })), a = d(() => o.open && !o.disabled && !o.readonly), p = (s) => {
280
+ t(l.INPUT, s);
281
+ }, u = (s) => {
282
+ t(l.KEYDOWN, s);
283
+ }, c = (s) => {
284
+ x(s), t(l.OPEN);
285
+ }, b = (s) => {
286
+ x(s), t(l.CLOSE);
287
+ }, f = (s) => {
288
+ x(s), t(l.CLEAR);
289
+ }, y = {
290
+ [l.INPUT]: p,
291
+ [l.OPEN]: c,
292
+ [l.CLOSE]: b,
293
+ [l.CLEAR]: f,
294
+ [l.KEYDOWN]: u
314
295
  };
315
296
  return {
316
297
  // Enums
317
- DropdownBaseTextboxEvent: n,
298
+ DropdownBaseTextboxEvent: l,
318
299
  // Values
319
- conditionalClasses: a,
320
- isDropdownOpen: s,
300
+ conditionalClasses: n,
301
+ isDropdownOpen: a,
321
302
  slots: e,
322
303
  // Events
323
- listeners: c
304
+ listeners: y
324
305
  };
325
306
  }
326
307
  });
327
- var T = function() {
328
- var e = this, l = e._self._c;
329
- return e._self._setupProxy, l("div", { staticClass: "b-dropdown-default-textbox", class: e.conditionalClasses, attrs: { "data-testid": "default-textbox" } }, [l("dropdown-base-textbox", e._g(e._b({ staticClass: "b-dropdown-default-textbox__textbox", attrs: { value: e.value }, scopedSlots: e._u([e._l(e.slots, function(a, s) {
330
- return { key: s, fn: function(u) {
331
- return [e._t(s, null, null, u)];
308
+ var q = function() {
309
+ var e = this, t = e._self._c;
310
+ return e._self._setupProxy, t("div", { staticClass: "b-dropdown-default-textbox", class: e.conditionalClasses, attrs: { "data-testid": "default-textbox" } }, [t("dropdown-base-textbox", e._g(e._b({ staticClass: "b-dropdown-default-textbox__textbox", attrs: { value: e.value }, scopedSlots: e._u([e._l(e.slots, function(n, a) {
311
+ return { key: a, fn: function(p) {
312
+ return [e._t(a, null, null, p)];
332
313
  } };
333
314
  }), { key: "icon", fn: function() {
334
- return [l("div", { staticClass: "b-dropdown-default-textbox__chevron" }, [l("chevron-up-icon", { directives: [{ name: "show", rawName: "v-show", value: e.isDropdownOpen, expression: "isDropdownOpen" }], attrs: { "svg-title": "opened" } }), l("chevron-down-icon", { directives: [{ name: "show", rawName: "v-show", value: !e.isDropdownOpen, expression: "!isDropdownOpen" }], attrs: { "svg-title": "closed" } })], 1)];
315
+ return [t("div", { staticClass: "b-dropdown-default-textbox__chevron" }, [t("chevron-up-icon", { directives: [{ name: "show", rawName: "v-show", value: e.isDropdownOpen, expression: "isDropdownOpen" }], attrs: { "svg-title": "opened" } }), t("chevron-down-icon", { directives: [{ name: "show", rawName: "v-show", value: !e.isDropdownOpen, expression: "!isDropdownOpen" }], attrs: { "svg-title": "closed" } })], 1)];
335
316
  }, proxy: !0 }], null, !0) }, "dropdown-base-textbox", { ...e.$attrs, ...e.$props }, !1), e.listeners))], 1);
336
- }, F = [], U = /* @__PURE__ */ m(
337
- V,
338
- T,
339
- F,
317
+ }, H = [], j = /* @__PURE__ */ w(
318
+ W,
319
+ q,
320
+ H,
340
321
  !1,
341
322
  null,
342
323
  "dae5b4ed",
343
324
  null,
344
325
  null
345
326
  );
346
- const Q = U.exports;
327
+ const ne = j.exports;
347
328
  export {
348
- R as D,
349
- n as a,
350
- r as b,
351
- Q as c
329
+ i as D,
330
+ l as a,
331
+ M as b,
332
+ ne as c
352
333
  };
353
- //# sourceMappingURL=dropdown-default-textbox.1cba89ea.js.map
334
+ //# sourceMappingURL=dropdown-default-textbox.c595fd31.js.map