@onereach/ui-components 25.1.3 → 25.1.4-beta.5775.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 (163) hide show
  1. package/dist/esm/{OrAutocomplete-C1ToaRkp.mjs → OrAutocomplete-CF2b_sud.mjs} +7 -7
  2. package/dist/esm/{OrAutocomplete-C1ToaRkp.mjs.map → OrAutocomplete-CF2b_sud.mjs.map} +1 -1
  3. package/dist/esm/{OrCardCollection-8aMbrjmE.mjs → OrCardCollection-CYELPO7W.mjs} +4 -4
  4. package/dist/esm/{OrCardCollection-8aMbrjmE.mjs.map → OrCardCollection-CYELPO7W.mjs.map} +1 -1
  5. package/dist/esm/{OrCode-BQd66v38.mjs → OrCode-C-aENyuR.mjs} +3 -3
  6. package/dist/esm/{OrCode-BQd66v38.mjs.map → OrCode-C-aENyuR.mjs.map} +1 -1
  7. package/dist/esm/{OrConfirm-hPRH5PIY.mjs → OrConfirm-CT16BlWw.mjs} +2 -2
  8. package/dist/esm/{OrConfirm-hPRH5PIY.mjs.map → OrConfirm-CT16BlWw.mjs.map} +1 -1
  9. package/dist/esm/{OrContextMenu-CrpiM2Jq.mjs → OrContextMenu-DG-PfyQa.mjs} +3 -3
  10. package/dist/esm/{OrContextMenu-CrpiM2Jq.mjs.map → OrContextMenu-DG-PfyQa.mjs.map} +1 -1
  11. package/dist/esm/{OrDataGrid-bk1danAp.mjs → OrDataGrid-B8Uv5aT0.mjs} +11 -11
  12. package/dist/esm/{OrDataGrid-bk1danAp.mjs.map → OrDataGrid-B8Uv5aT0.mjs.map} +1 -1
  13. package/dist/esm/{OrDateFormat-RNeTJhfN.mjs → OrDateFormat-JU4vCVQ_.mjs} +2 -2
  14. package/dist/esm/{OrDateFormat-RNeTJhfN.mjs.map → OrDateFormat-JU4vCVQ_.mjs.map} +1 -1
  15. package/dist/esm/{OrDatePicker-C7FejdS-.mjs → OrDatePicker-pp_M6dIS.mjs} +4 -4
  16. package/dist/esm/{OrDatePicker-C7FejdS-.mjs.map → OrDatePicker-pp_M6dIS.mjs.map} +1 -1
  17. package/dist/esm/{OrDateRangePicker-BbaCBJbG.mjs → OrDateRangePicker-DtYfy96I.mjs} +4 -4
  18. package/dist/esm/{OrDateRangePicker-BbaCBJbG.mjs.map → OrDateRangePicker-DtYfy96I.mjs.map} +1 -1
  19. package/dist/esm/{OrDateTimeFormat-C-dCMxgq.mjs → OrDateTimeFormat-DD0o7NO2.mjs} +2 -2
  20. package/dist/esm/{OrDateTimeFormat-C-dCMxgq.mjs.map → OrDateTimeFormat-DD0o7NO2.mjs.map} +1 -1
  21. package/dist/esm/{OrDateTimePicker-ZFrPrPwN.mjs → OrDateTimePicker-Bm1Ykpgv.mjs} +2 -2
  22. package/dist/esm/{OrDateTimePicker-ZFrPrPwN.mjs.map → OrDateTimePicker-Bm1Ykpgv.mjs.map} +1 -1
  23. package/dist/esm/{OrDateTimePicker.vue_vue_type_script_lang-Fl-_-QVp.mjs → OrDateTimePicker.vue_vue_type_script_lang-BL0M-UeT.mjs} +5 -5
  24. package/dist/esm/{OrDateTimePicker.vue_vue_type_script_lang-Fl-_-QVp.mjs.map → OrDateTimePicker.vue_vue_type_script_lang-BL0M-UeT.mjs.map} +1 -1
  25. package/dist/esm/{OrEditorTabs-yT45X6oK.mjs → OrEditorTabs-T4vtJg3r.mjs} +16 -16
  26. package/dist/esm/OrEditorTabs-T4vtJg3r.mjs.map +1 -0
  27. package/dist/esm/{OrFilter-C8d3OmGK.mjs → OrFilter-DuFoI_Sd.mjs} +3 -3
  28. package/dist/esm/{OrFilter-C8d3OmGK.mjs.map → OrFilter-DuFoI_Sd.mjs.map} +1 -1
  29. package/dist/esm/{OrFilterPopover-C8lXb-hJ.mjs → OrFilterPopover-BwHlCPf2.mjs} +3 -3
  30. package/dist/esm/{OrFilterPopover-C8lXb-hJ.mjs.map → OrFilterPopover-BwHlCPf2.mjs.map} +1 -1
  31. package/dist/esm/{OrFilterTrigger-zfcgyC7C.mjs → OrFilterTrigger-Ch293iF_.mjs} +2 -2
  32. package/dist/esm/{OrFilterTrigger-zfcgyC7C.mjs.map → OrFilterTrigger-Ch293iF_.mjs.map} +1 -1
  33. package/dist/esm/{OrIconButton-BlHCLpeW.mjs → OrIconButton-BajZRp1k.mjs} +2 -2
  34. package/dist/esm/{OrIconButton-BlHCLpeW.mjs.map → OrIconButton-BajZRp1k.mjs.map} +1 -1
  35. package/dist/esm/{OrInlineInput-1WPe9sXl.mjs → OrInlineInput-BG3yAs5M.mjs} +2 -2
  36. package/dist/esm/{OrInlineInput-1WPe9sXl.mjs.map → OrInlineInput-BG3yAs5M.mjs.map} +1 -1
  37. package/dist/esm/{OrInlineTextarea-COQceBb0.mjs → OrInlineTextarea-CZVqac2G.mjs} +2 -2
  38. package/dist/esm/{OrInlineTextarea-COQceBb0.mjs.map → OrInlineTextarea-CZVqac2G.mjs.map} +1 -1
  39. package/dist/esm/{OrInput-BqDsy3wR.mjs → OrInput-BrJzxNyE.mjs} +2 -2
  40. package/dist/esm/{OrInput-BqDsy3wR.mjs.map → OrInput-BrJzxNyE.mjs.map} +1 -1
  41. package/dist/esm/{OrList-Gr14z616.mjs → OrList-Ded7wJKj.mjs} +2 -2
  42. package/dist/esm/{OrList-Gr14z616.mjs.map → OrList-Ded7wJKj.mjs.map} +1 -1
  43. package/dist/esm/OrMenu-BNbd6Ajl.mjs +114 -0
  44. package/dist/esm/OrMenu-BNbd6Ajl.mjs.map +1 -0
  45. package/dist/esm/{OrMenuItem-puiy5rFO.mjs → OrMenuItem-ByVkiQvE.mjs} +43 -34
  46. package/dist/esm/OrMenuItem-ByVkiQvE.mjs.map +1 -0
  47. package/dist/esm/{OrModal-CQhwUYFk.mjs → OrModal-Cbi6xMwA.mjs} +2 -2
  48. package/dist/esm/{OrModal-CQhwUYFk.mjs.map → OrModal-Cbi6xMwA.mjs.map} +1 -1
  49. package/dist/esm/{OrNotification-Dz3Tr1wI.mjs → OrNotification-DVQ-x6mP.mjs} +2 -2
  50. package/dist/esm/{OrNotification-Dz3Tr1wI.mjs.map → OrNotification-DVQ-x6mP.mjs.map} +1 -1
  51. package/dist/esm/{OrPagination-ClBRmPjj.mjs → OrPagination-_3SWQ0LY.mjs} +3 -3
  52. package/dist/esm/{OrPagination-ClBRmPjj.mjs.map → OrPagination-_3SWQ0LY.mjs.map} +1 -1
  53. package/dist/esm/{OrPopover-DbygLPtT.mjs → OrPopover-FA8G-paf.mjs} +92 -91
  54. package/dist/esm/OrPopover-FA8G-paf.mjs.map +1 -0
  55. package/dist/esm/{OrRangeSlider-Dim4sU4v.mjs → OrRangeSlider-Bw19Cx4f.mjs} +3 -3
  56. package/dist/esm/{OrRangeSlider-Dim4sU4v.mjs.map → OrRangeSlider-Bw19Cx4f.mjs.map} +1 -1
  57. package/dist/esm/{OrResizeablePanel-DuGgwmhB.mjs → OrResizeablePanel-CKWcCNDY.mjs} +2 -2
  58. package/dist/esm/{OrResizeablePanel-DuGgwmhB.mjs.map → OrResizeablePanel-CKWcCNDY.mjs.map} +1 -1
  59. package/dist/esm/{OrRichTextEditor-DKhL46g9.mjs → OrRichTextEditor-BYEdE945.mjs} +7 -7
  60. package/dist/esm/{OrRichTextEditor-DKhL46g9.mjs.map → OrRichTextEditor-BYEdE945.mjs.map} +1 -1
  61. package/dist/esm/{OrRichTooltip-D8vv5Btb.mjs → OrRichTooltip-CcQpjWtS.mjs} +2 -2
  62. package/dist/esm/{OrRichTooltip-D8vv5Btb.mjs.map → OrRichTooltip-CcQpjWtS.mjs.map} +1 -1
  63. package/dist/esm/{OrSearch-OIfce3Md.mjs → OrSearch-B3zonpwn.mjs} +2 -2
  64. package/dist/esm/{OrSearch-OIfce3Md.mjs.map → OrSearch-B3zonpwn.mjs.map} +1 -1
  65. package/dist/esm/{OrSelect-DPoXgLko.mjs → OrSelect-CDXq3Mvl.mjs} +7 -7
  66. package/dist/esm/{OrSelect-DPoXgLko.mjs.map → OrSelect-CDXq3Mvl.mjs.map} +1 -1
  67. package/dist/esm/{OrSlider-Cec0WpUQ.mjs → OrSlider-XimfcpRY.mjs} +2 -2
  68. package/dist/esm/{OrSlider-Cec0WpUQ.mjs.map → OrSlider-XimfcpRY.mjs.map} +1 -1
  69. package/dist/esm/{OrSlider.vue_vue_type_script_lang-C5rLh1F0.mjs → OrSlider.vue_vue_type_script_lang-yh5NyhYF.mjs} +2 -2
  70. package/dist/esm/{OrSlider.vue_vue_type_script_lang-C5rLh1F0.mjs.map → OrSlider.vue_vue_type_script_lang-yh5NyhYF.mjs.map} +1 -1
  71. package/dist/esm/{OrSorting-Crre3wAt.mjs → OrSorting-DkT8t0gw.mjs} +3 -3
  72. package/dist/esm/{OrSorting-Crre3wAt.mjs.map → OrSorting-DkT8t0gw.mjs.map} +1 -1
  73. package/dist/esm/OrSubMenuItem-TUcrHvBk.mjs +159 -0
  74. package/dist/esm/OrSubMenuItem-TUcrHvBk.mjs.map +1 -0
  75. package/dist/esm/{OrTabs-D4RY2JMk.mjs → OrTabs-BCIxFSeW.mjs} +3 -3
  76. package/dist/esm/{OrTabs-D4RY2JMk.mjs.map → OrTabs-BCIxFSeW.mjs.map} +1 -1
  77. package/dist/esm/{OrTag-BqSIqSCt.mjs → OrTag-BrZ8TIZl.mjs} +2 -2
  78. package/dist/esm/{OrTag-BqSIqSCt.mjs.map → OrTag-BrZ8TIZl.mjs.map} +1 -1
  79. package/dist/esm/{OrTagInput-Bxt-g2Hx.mjs → OrTagInput-BisPLdsU.mjs} +4 -4
  80. package/dist/esm/{OrTagInput-Bxt-g2Hx.mjs.map → OrTagInput-BisPLdsU.mjs.map} +1 -1
  81. package/dist/esm/{OrTags-DxQDW443.mjs → OrTags-CREF3BTr.mjs} +3 -3
  82. package/dist/esm/{OrTags-DxQDW443.mjs.map → OrTags-CREF3BTr.mjs.map} +1 -1
  83. package/dist/esm/{OrTimeFormat-CMYDyfoT.mjs → OrTimeFormat-B2YLCb8H.mjs} +2 -2
  84. package/dist/esm/{OrTimeFormat-CMYDyfoT.mjs.map → OrTimeFormat-B2YLCb8H.mjs.map} +1 -1
  85. package/dist/esm/{OrTimePicker-BO-Vxw21.mjs → OrTimePicker-CZwt1j2S.mjs} +4 -4
  86. package/dist/esm/{OrTimePicker-BO-Vxw21.mjs.map → OrTimePicker-CZwt1j2S.mjs.map} +1 -1
  87. package/dist/esm/{OrTimeRangePicker-MvRUSg_g.mjs → OrTimeRangePicker-zvRke1jb.mjs} +4 -4
  88. package/dist/esm/{OrTimeRangePicker-MvRUSg_g.mjs.map → OrTimeRangePicker-zvRke1jb.mjs.map} +1 -1
  89. package/dist/esm/{OrTooltip-DqwjoE82.mjs → OrTooltip-BIJSpzmX.mjs} +2 -2
  90. package/dist/esm/{OrTooltip-DqwjoE82.mjs.map → OrTooltip-BIJSpzmX.mjs.map} +1 -1
  91. package/dist/esm/components/index.mjs +88 -86
  92. package/dist/esm/components/index.mjs.map +1 -1
  93. package/dist/esm/components/or-autocomplete-v3/index.mjs +1 -1
  94. package/dist/esm/components/or-card-collection-v3/index.mjs +1 -1
  95. package/dist/esm/components/or-code-v3/index.mjs +1 -1
  96. package/dist/esm/components/or-confirm-v3/index.mjs +1 -1
  97. package/dist/esm/components/or-context-menu-v3/index.mjs +1 -1
  98. package/dist/esm/components/or-data-grid-v3/index.mjs +1 -1
  99. package/dist/esm/components/or-date-format-v3/index.mjs +1 -1
  100. package/dist/esm/components/or-date-picker-v3/index.mjs +1 -1
  101. package/dist/esm/components/or-date-range-picker-v3/index.mjs +1 -1
  102. package/dist/esm/components/or-date-time-format-v3/index.mjs +1 -1
  103. package/dist/esm/components/or-date-time-picker-v3/index.mjs +2 -2
  104. package/dist/esm/components/or-editor-tabs-v3/index.mjs +1 -1
  105. package/dist/esm/components/or-filter-popover-v3/index.mjs +1 -1
  106. package/dist/esm/components/or-filter-trigger-v3/index.mjs +1 -1
  107. package/dist/esm/components/or-filter-v3/index.mjs +1 -1
  108. package/dist/esm/components/or-icon-button-v3/index.mjs +1 -1
  109. package/dist/esm/components/or-inline-input-v3/index.mjs +1 -1
  110. package/dist/esm/components/or-inline-textarea-v3/index.mjs +1 -1
  111. package/dist/esm/components/or-input-v3/index.mjs +1 -1
  112. package/dist/esm/components/or-list-v3/index.mjs +1 -1
  113. package/dist/esm/components/or-menu-item-v3/index.mjs +1 -1
  114. package/dist/esm/components/or-menu-v3/index.mjs +1 -1
  115. package/dist/esm/components/or-modal-v3/index.mjs +1 -1
  116. package/dist/esm/components/or-notification-v3/index.mjs +1 -1
  117. package/dist/esm/components/or-pagination-v3/index.mjs +1 -1
  118. package/dist/esm/components/or-popover-v3/index.mjs +1 -1
  119. package/dist/esm/components/or-range-slider-v3/index.mjs +1 -1
  120. package/dist/esm/components/or-resizeable-panel-v3/index.mjs +1 -1
  121. package/dist/esm/components/or-rich-text-editor-v3/index.mjs +1 -1
  122. package/dist/esm/components/or-rich-tooltip-v3/index.mjs +1 -1
  123. package/dist/esm/components/or-search-v3/index.mjs +1 -1
  124. package/dist/esm/components/or-select-v3/index.mjs +1 -1
  125. package/dist/esm/components/or-sidebar-v3/index.mjs +1 -1
  126. package/dist/esm/components/or-slider-v3/index.mjs +2 -2
  127. package/dist/esm/components/or-sorting-v3/index.mjs +1 -1
  128. package/dist/esm/components/or-sub-menu-item-v3/index.mjs +5 -0
  129. package/dist/esm/components/or-sub-menu-item-v3/index.mjs.map +1 -0
  130. package/dist/esm/components/or-tabs-v3/index.mjs +1 -1
  131. package/dist/esm/components/or-tag-input-v3/index.mjs +1 -1
  132. package/dist/esm/components/or-tag-v3/index.mjs +1 -1
  133. package/dist/esm/components/or-tags-v3/index.mjs +1 -1
  134. package/dist/esm/components/or-time-format-v3/index.mjs +1 -1
  135. package/dist/esm/components/or-time-picker-v3/index.mjs +1 -1
  136. package/dist/esm/components/or-time-range-picker-v3/index.mjs +1 -1
  137. package/dist/esm/components/or-toast-v3/index.mjs +1 -1
  138. package/dist/esm/components/or-tooltip-v3/index.mjs +1 -1
  139. package/dist/esm/index.mjs +88 -86
  140. package/dist/esm/index.mjs.map +1 -1
  141. package/dist/esm/{props-BxqD8LGb.mjs → props-r8F44lpX.mjs} +2 -2
  142. package/dist/esm/{props-BxqD8LGb.mjs.map → props-r8F44lpX.mjs.map} +1 -1
  143. package/dist/esm/{types-BwxhurSS.mjs → types-DrGu4wlu.mjs} +2 -2
  144. package/dist/esm/{types-BwxhurSS.mjs.map → types-DrGu4wlu.mjs.map} +1 -1
  145. package/dist/types/components/index.d.ts +1 -0
  146. package/dist/types/components/or-data-grid-v3/OrDataGrid.vue.d.ts +52 -8
  147. package/dist/types/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +40 -6
  148. package/dist/types/components/or-editor-tabs-v3/OrEditorTabs.vue.d.ts +1 -1
  149. package/dist/types/components/or-menu-item-v3/OrMenuItem.vue.d.ts +5 -1
  150. package/dist/types/components/or-menu-v3/OrMenu.vue.d.ts +6 -2
  151. package/dist/types/components/or-pagination-v3/OrPagination.vue.d.ts +26 -4
  152. package/dist/types/components/or-rich-text-editor-v3/OrRichTextEditor.vue.d.ts +13 -2
  153. package/dist/types/components/or-sorting-v3/OrSorting.vue.d.ts +5 -1
  154. package/dist/types/components/or-sub-menu-item-v3/OrSubMenuItem.vue.d.ts +1178 -0
  155. package/dist/types/components/or-sub-menu-item-v3/index.d.ts +1 -0
  156. package/dist/types/components/or-tabs-v3/OrTabs.vue.d.ts +13 -2
  157. package/package.json +4 -5
  158. package/src/components/index.ts +1 -0
  159. package/dist/esm/OrEditorTabs-yT45X6oK.mjs.map +0 -1
  160. package/dist/esm/OrMenu-CJT4Snay.mjs +0 -105
  161. package/dist/esm/OrMenu-CJT4Snay.mjs.map +0 -1
  162. package/dist/esm/OrMenuItem-puiy5rFO.mjs.map +0 -1
  163. package/dist/esm/OrPopover-DbygLPtT.mjs.map +0 -1
@@ -3,16 +3,16 @@ import { useIdAttribute as pe, useControlAttributes as me, useValidationAttribut
3
3
  import { include as be, isNil as j, toArray as G, exclude as ce } from "@onereach/ui-components-common/utils";
4
4
  import { O as ge } from "./OrError-B5ihH6-3.mjs";
5
5
  import { O as Oe } from "./OrHint-NvbZyURY.mjs";
6
- import { O as ke } from "./OrIconButton-BlHCLpeW.mjs";
6
+ import { O as ke } from "./OrIconButton-BajZRp1k.mjs";
7
7
  import { O as Ie } from "./OrInputBox-6ciokFdU.mjs";
8
8
  import { a as he } from "./OrInputBox.vue_vue_type_script_lang-q2L7rmth.mjs";
9
- import { O as we } from "./OrInput-BqDsy3wR.mjs";
9
+ import { O as we } from "./OrInput-BrJzxNyE.mjs";
10
10
  import { O as Se } from "./OrLabel-K7_HgvcK.mjs";
11
11
  import { O as Be } from "./OrLoader-2SaTMxmZ.mjs";
12
- import { O as Ce } from "./OrMenuItem-puiy5rFO.mjs";
13
- import { O as Ae } from "./OrPopover-DbygLPtT.mjs";
14
- import { O as Ve } from "./OrTagInput-Bxt-g2Hx.mjs";
15
- import { T as $e } from "./OrTags-DxQDW443.mjs";
12
+ import { O as Ce } from "./OrMenuItem-ByVkiQvE.mjs";
13
+ import { O as Ae } from "./OrPopover-FA8G-paf.mjs";
14
+ import { O as Ve } from "./OrTagInput-BisPLdsU.mjs";
15
+ import { T as $e } from "./OrTags-CREF3BTr.mjs";
16
16
  import { defineComponent as Me, reactive as Te, ref as m, computed as n, toRef as J, nextTick as Fe, resolveComponent as p, resolveDirective as Pe, openBlock as t, createElementBlock as S, normalizeClass as b, createBlock as f, withCtx as a, renderSlot as c, createTextVNode as O, toDisplayString as k, createCommentVNode as F, withDirectives as P, createSlots as qe, createElementVNode as Q, mergeProps as De, createVNode as B, Fragment as Le, renderList as Re, vShow as W } from "vue";
17
17
  import { computedAsync as Ee, watchTriggerable as ze } from "@vueuse/core";
18
18
  import { _ as Ne } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
@@ -540,4 +540,4 @@ const ko = /* @__PURE__ */ Ne(Ze, [["render", eo]]);
540
540
  export {
541
541
  ko as O
542
542
  };
543
- //# sourceMappingURL=OrAutocomplete-C1ToaRkp.mjs.map
543
+ //# sourceMappingURL=OrAutocomplete-CF2b_sud.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrAutocomplete-C1ToaRkp.mjs","sources":["../../../components/or-autocomplete-v3/src/styles.ts","../../../components/or-autocomplete-v3/src/OrAutocomplete.vue"],"sourcesContent":["export const Autocomplete: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const AutocompleteControl: string[] = [\n // Box\n 'w-full',\n\n // Typography\n 'typography-inherit',\n\n // Theme\n 'theme-background-transparent',\n 'dark:theme-background-transparent-dark',\n\n 'outline-none',\n\n // Theme (placeholder)\n 'placeholder:theme-foreground-outline',\n 'dark:placeholder:theme-foreground-outline-dark',\n];\n\nexport const AutocompleteDropdown: string[] = [\n // Overflow\n 'overflow-y-auto',\n\n // Box\n 'max-h-[172px]', // equals 5 items\n\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n 'theme-border-outline border-1',\n 'dark:theme-border-outline-dark',\n];\n\nexport const AutocompleteDropdownDefault: string[] = [\n // Shape\n 'rounded-b-md',\n\n // Theme\n '!border-t-0',\n];\n\nexport const AutocompleteDropdownFlipped: string[] = [\n // Shape\n 'rounded-t-md',\n\n // Theme\n '!border-b-0',\n];\n\nexport const AutocompleteDropdownItem: string[] = [\n // Typography\n '!typography-body-2-regular',\n\n // Padding Override todo: check design\n 'py-md px-lg md:!pt-[6px] md:pb-[7px]',\n\n // Typography (selected)\n 'selected:!typography-body-2-semibold',\n\n // Theme\n '!theme-foreground-default dark:!theme-foreground-default-dark',\n];\n\nexport const AutocompleteLoader: string[] = [\n // Layout\n 'w-fit',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'text-outline dark:text-outline-dark',\n];\n\nexport const AutocompleteLoaderContainer: string[] = [\n // Spacing\n 'py-md px-lg md:px-sm+ md:py-xs',\n];\n\nexport const AutocompleteInputBoxOpen: string[] = [\n 'rounded-b-0',\n];\n\nexport const AutocompleteInputBoxOpenFlipped: string[] = [\n 'rounded-t-0',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :control-id=\"attributes.id\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <template v-if=\"multiple\">\n <OrTagInput\n :ref=\"'tagInput'\"\n v-model=\"model\"\n v-dropdown-open=\"openMobilePopover\"\n :overflow=\"overflow\"\n :variant=\"variant\"\n :additional-input-box-styles=\"boxOpenStyles\"\n :placeholder=\"placeholder\"\n :error=\"!!error\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :enable-clear=\"enableClear\"\n @input=\"onInput($event)\"\n @focus=\"onFocus($event)\"\n @blur=\"onBlur($event)\"\n >\n <template v-slot:tag=\"{ item }\">\n <slot\n name=\"tag\"\n :item=\"item\"\n >\n {{ item.label }}\n </slot>\n </template>\n </OrTagInput>\n </template>\n\n <template v-else>\n <OrInputBox\n :ref=\"'inputBox'\"\n :class=\"boxOpenStyles\"\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <input\n :ref=\"'control'\"\n v-bind=\"attributes\"\n v-dropdown-open=\"openMobilePopover\"\n :class=\"controlStyles\"\n :type=\"'text'\"\n :value=\"searchText || model\"\n :autocomplete=\"'off'\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @input=\"$emit('input', $event); onInput($event); model = searchText\"\n @keydown=\"$emit('keydown', $event)\"\n @keyup=\"$emit('keyup', $event)\"\n @focus=\"onFocus($event);\"\n @blur=\"onBlur($event);\"\n >\n\n <template\n v-if=\"enableClear && !readonly && !disabled\"\n v-slot:addon\n >\n <template v-if=\"model && model.length > 0\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n @click=\"reset()\"\n />\n </template>\n </template>\n </OrInputBox>\n </template>\n\n <OrPopover\n :ref=\"'popover'\"\n :trigger=\"tagInputRoot || inputBoxRoot\"\n :placement=\"'bottom'\"\n :offset=\"0\"\n :full-width=\"true\"\n :disable-default-styles=\"true\"\n :bottom-sheet-props=\"{ isFullscreen: true }\"\n >\n <div :class=\"dropdownStyles\">\n <template v-if=\"isMobile\">\n <div class=\"py-sm px-lg\">\n <OrTagInput\n v-if=\"multiple\"\n :ref=\"'mobileMultipleControl'\"\n v-model=\"model\"\n :overflow=\"'scroll'\"\n :placeholder=\"placeholder\"\n :error=\"!!error\"\n :enable-clear=\"false\"\n @input=\"onInput($event)\"\n >\n <template v-slot:tag=\"{ item }\">\n <slot\n name=\"tag\"\n :item=\"item\"\n >\n {{ item.label }}\n </slot>\n </template>\n <template v-slot:appendInner>\n <OrIconButton\n :icon=\"'check'\"\n :color=\"'inherit'\"\n @click=\"closeMobilePopover\"\n />\n </template>\n </OrTagInput>\n <OrInput\n v-else\n ref=\"mobileSingleControl\"\n :model-value=\"searchText || (model && model.toString())\"\n :placeholder=\"placeholder\"\n @input=\"$emit('input', $event); onInput($event); model = searchText\"\n >\n <template v-slot:appendInner>\n <OrIconButton\n :icon=\"'check'\"\n :color=\"'inherit'\"\n @click=\"closeMobilePopover\"\n />\n </template>\n </OrInput>\n </div>\n </template>\n <template\n v-if=\"loading\"\n >\n <div :class=\"loaderContainerStyles\">\n <slot name=\"loading\">\n <OrLoader\n :class=\"loaderStyles\"\n variant=\"text\"\n :text=\"loadingText\"\n />\n </slot>\n </div>\n </template>\n <div\n v-else\n :class=\"isMobile ? 'overflow-auto': 'contains'\"\n >\n <OrMenuItem\n v-for=\"(item, i) in filteredItems\"\n :key=\"i\"\n :class=\"dropdownItemStyles\"\n @click=\"add(item)\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n >\n {{ item }}\n </slot>\n </OrMenuItem>\n </div>\n </div>\n </OrPopover>\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { DropdownClose, DropdownOpen } from '@onereach/ui-components-common/directives';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useResponsive, useValidationAttributes } from '@onereach/ui-components-common/hooks';\nimport { SearchFunction } from '@onereach/ui-components-common/types';\nimport { exclude, include, isNil, toArray } from '@onereach/ui-components-common/utils';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrInputV3 as OrInput } from '@onereach/ui-components.or-input-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrLoaderV3 as OrLoader } from '@onereach/ui-components.or-loader-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { OrTagInputV3 as OrTagInput } from '@onereach/ui-components.or-tag-input-v3';\nimport { TagsOverflow } from '@onereach/ui-components.or-tags-v3';\nimport { computedAsync, watchTriggerable } from '@vueuse/core';\nimport { PropType, computed, defineComponent, reactive, ref, toRef, nextTick } from 'vue';\n\nimport * as Styles from './styles';\nimport { AutocompleteModelValue, AutocompleteValue } from './types';\n\nexport default defineComponent({\n name: 'OrAutocomplete',\n\n components: {\n OrError,\n OrHint,\n OrIconButton,\n OrInputBox,\n OrInput,\n OrLabel,\n OrLoader,\n OrMenuItem,\n OrPopover,\n OrTagInput,\n },\n\n directives: {\n DropdownClose,\n DropdownOpen,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<AutocompleteModelValue>,\n default: undefined,\n },\n\n items: {\n type: Array as PropType<AutocompleteValue[]>,\n default: () => [],\n },\n\n multiple: {\n type: Boolean,\n default: false,\n },\n\n overflow: {\n type: String as PropType<`${TagsOverflow}`>,\n default: () => TagsOverflow.Hidden,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n placeholder: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n loadingText: {\n type: String,\n default: 'Loading',\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n enableClear: {\n type: Boolean,\n default: false,\n },\n\n searchFunction: {\n type: Function as PropType<SearchFunction<AutocompleteValue>>,\n\n default: (async (value, items) => {\n return value.length > 0 ? items.filter((item) => new RegExp(value, 'i').test(item)) : [];\n }) as SearchFunction<AutocompleteValue>,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'popover',\n 'popoverState',\n\n 'reset',\n 'clear',\n\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n const attributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n // Refs\n const root = ref<HTMLElement>();\n\n const tagInput = ref<InstanceType<typeof OrTagInput>>();\n const tagInputRoot = computed(() => tagInput.value?.root);\n\n const inputBox = ref<InstanceType<typeof OrInputBox>>();\n const inputBoxRoot = computed(() => inputBox.value?.root);\n\n const control = ref<HTMLElement>();\n const mobileSingleControl = ref<InstanceType<typeof OrInput>>();\n const mobileMultipleControl = ref<InstanceType<typeof OrTagInput>>();\n\n const popover = ref<InstanceType<typeof OrPopover>>();\n const popoverRoot = computed(() => popover.value?.root);\n const popoverState = computed(() => popover.value?.state);\n const popoverFlipped = computed(() => popover.value?.isFlipped);\n\n const activated = ref(false);\n\n // Helpers\n const { isMobile } = useResponsive();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-autocomplete-v3',\n ...Styles.Autocomplete,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const controlStyles = computed(() => [\n ...Styles.AutocompleteControl,\n ]);\n\n const dropdownStyles = computed(() => [\n 'or-autocomplete-popover-v3',\n ...Styles.AutocompleteDropdown,\n ...popover.value?.isFlipped ? Styles.AutocompleteDropdownFlipped : Styles.AutocompleteDropdownDefault,\n ]);\n\n const dropdownItemStyles = computed(() => [\n ...Styles.AutocompleteDropdownItem,\n ]);\n\n const loaderStyles = computed(() => [\n ...Styles.AutocompleteLoader,\n ]);\n\n const loaderContainerStyles = computed(() => [\n ...Styles.AutocompleteLoaderContainer,\n ]);\n\n const boxOpenStyles = computed(() => [\n ...(popoverState.value === 'open' && !isMobile.value ? (popoverFlipped.value ? Styles.AutocompleteInputBoxOpenFlipped : Styles.AutocompleteInputBoxOpen) : []),\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const searchText = ref<string>();\n\n const filteredItems = computedAsync(async () => {\n return searchText.value\n ? (await props.searchFunction(searchText.value, props.items))\n .filter((item) => !model.value?.includes(item))\n : [];\n }, []);\n\n // Handlers\n function onInput(event: InputEvent): void {\n searchText.value = (event.target as HTMLInputElement).value;\n }\n\n // Methods\n function add(value: AutocompleteValue): void {\n if (props.multiple) {\n model.value = include(value, isNil(model.value) ? [] : toArray(model.value));\n } else {\n model.value = value;\n if (isMobile.value) {\n closeMobilePopover();\n }\n }\n\n clear();\n }\n\n function remove(value: AutocompleteValue): void {\n model.value = exclude(value, isNil(model.value) ? [] : toArray(model.value));\n }\n\n function reset(): void {\n model.value = undefined;\n\n clear();\n }\n\n function clear(): void {\n searchText.value = undefined;\n if (isMobile.value) {\n (mobileMultipleControl.value?.clear as unknown as () => void)?.();\n } else {\n (tagInput.value?.clear as unknown as () => void)?.();\n }\n }\n\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n\n function focusMobileControl(): void {\n if (props.multiple) {\n mobileMultipleControl.value?.activate();\n } else {\n mobileSingleControl.value?.focus();\n }\n }\n\n function onFocus(event: FocusEvent): void {\n activated.value = true;\n context.emit('focus', event);\n if (isMobile.value) return;\n triggerPopover();\n }\n\n function onBlur(event: FocusEvent): void {\n activated.value = false;\n context.emit('blur', event);\n }\n\n function openMobilePopover(): void {\n if (!isMobile.value) return;\n if (!props.readonly && !props.disabled) {\n popover.value?.open();\n nextTick(() => {\n setTimeout(() => focusMobileControl());\n });\n }\n }\n\n function closeMobilePopover(): void {\n if (!isMobile.value) return;\n popover.value?.close();\n }\n\n const { trigger: triggerPopover } = watchTriggerable([\n filteredItems,\n toRef(props, 'loading'),\n ], ([items, loading]) => {\n if (isMobile.value) return;\n if ((items.length > 0 || loading) && activated.value) {\n popover.value?.open();\n } else {\n popover.value?.close();\n }\n });\n\n return {\n attributes,\n\n root,\n rootStyles,\n\n tagInput,\n tagInputRoot,\n\n inputBox,\n inputBoxRoot,\n\n boxOpenStyles,\n\n control,\n mobileSingleControl,\n mobileMultipleControl,\n controlStyles,\n\n popover,\n popoverRoot,\n popoverState,\n\n loaderStyles,\n loaderContainerStyles,\n\n dropdownStyles,\n dropdownItemStyles,\n\n model,\n searchText,\n filteredItems,\n activated,\n\n onFocus,\n onBlur,\n onInput,\n\n add,\n remove,\n reset,\n clear,\n triggerPopover,\n openMobilePopover,\n closeMobilePopover,\n focus,\n blur,\n\n isMobile,\n };\n },\n});\n</script>\n"],"names":["Autocomplete","AutocompleteControl","AutocompleteDropdown","AutocompleteDropdownDefault","AutocompleteDropdownFlipped","AutocompleteDropdownItem","AutocompleteLoader","AutocompleteLoaderContainer","AutocompleteInputBoxOpen","AutocompleteInputBoxOpenFlipped","_sfc_main","defineComponent","OrError","OrHint","OrIconButton","OrInputBox","OrInput","OrLabel","OrLoader","OrMenuItem","OrPopover","OrTagInput","DropdownClose","DropdownOpen","TagsOverflow","value","items","item","props","context","attributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","root","ref","tagInput","tagInputRoot","computed","_a","inputBox","inputBoxRoot","control","mobileSingleControl","mobileMultipleControl","popover","popoverRoot","popoverState","popoverFlipped","activated","isMobile","useResponsive","rootStyles","Styles.Autocomplete","InputBoxVariant","controlStyles","Styles.AutocompleteControl","dropdownStyles","Styles.AutocompleteDropdown","Styles.AutocompleteDropdownFlipped","Styles.AutocompleteDropdownDefault","dropdownItemStyles","Styles.AutocompleteDropdownItem","loaderStyles","Styles.AutocompleteLoader","loaderContainerStyles","Styles.AutocompleteLoaderContainer","boxOpenStyles","Styles.AutocompleteInputBoxOpenFlipped","Styles.AutocompleteInputBoxOpen","model","useProxyModelValue","toRef","searchText","filteredItems","computedAsync","onInput","event","add","include","isNil","toArray","closeMobilePopover","clear","remove","exclude","reset","_b","_d","_c","focus","blur","focusMobileControl","onFocus","triggerPopover","onBlur","openMobilePopover","nextTick","watchTriggerable","loading","_hoisted_2","_resolveDirective","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createBlock","_component_OrLabel","_renderSlot","_createCommentVNode","_withDirectives","_component_OrTagInput","_cache","$event","_directive_dropdown_open","_component_OrInputBox","_withCtx","_createElementVNode","_mergeProps","_hoisted_1","_component_OrIconButton","_createVNode","_component_OrPopover","_component_OrInput","_component_OrLoader","_Fragment","_renderList","i","_component_OrMenuItem","_component_OrHint","_component_OrError"],"mappings":"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"}
1
+ {"version":3,"file":"OrAutocomplete-CF2b_sud.mjs","sources":["../../../components/or-autocomplete-v3/src/styles.ts","../../../components/or-autocomplete-v3/src/OrAutocomplete.vue"],"sourcesContent":["export const Autocomplete: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const AutocompleteControl: string[] = [\n // Box\n 'w-full',\n\n // Typography\n 'typography-inherit',\n\n // Theme\n 'theme-background-transparent',\n 'dark:theme-background-transparent-dark',\n\n 'outline-none',\n\n // Theme (placeholder)\n 'placeholder:theme-foreground-outline',\n 'dark:placeholder:theme-foreground-outline-dark',\n];\n\nexport const AutocompleteDropdown: string[] = [\n // Overflow\n 'overflow-y-auto',\n\n // Box\n 'max-h-[172px]', // equals 5 items\n\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n 'theme-border-outline border-1',\n 'dark:theme-border-outline-dark',\n];\n\nexport const AutocompleteDropdownDefault: string[] = [\n // Shape\n 'rounded-b-md',\n\n // Theme\n '!border-t-0',\n];\n\nexport const AutocompleteDropdownFlipped: string[] = [\n // Shape\n 'rounded-t-md',\n\n // Theme\n '!border-b-0',\n];\n\nexport const AutocompleteDropdownItem: string[] = [\n // Typography\n '!typography-body-2-regular',\n\n // Padding Override todo: check design\n 'py-md px-lg md:!pt-[6px] md:pb-[7px]',\n\n // Typography (selected)\n 'selected:!typography-body-2-semibold',\n\n // Theme\n '!theme-foreground-default dark:!theme-foreground-default-dark',\n];\n\nexport const AutocompleteLoader: string[] = [\n // Layout\n 'w-fit',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'text-outline dark:text-outline-dark',\n];\n\nexport const AutocompleteLoaderContainer: string[] = [\n // Spacing\n 'py-md px-lg md:px-sm+ md:py-xs',\n];\n\nexport const AutocompleteInputBoxOpen: string[] = [\n 'rounded-b-0',\n];\n\nexport const AutocompleteInputBoxOpenFlipped: string[] = [\n 'rounded-t-0',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :control-id=\"attributes.id\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <template v-if=\"multiple\">\n <OrTagInput\n :ref=\"'tagInput'\"\n v-model=\"model\"\n v-dropdown-open=\"openMobilePopover\"\n :overflow=\"overflow\"\n :variant=\"variant\"\n :additional-input-box-styles=\"boxOpenStyles\"\n :placeholder=\"placeholder\"\n :error=\"!!error\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :enable-clear=\"enableClear\"\n @input=\"onInput($event)\"\n @focus=\"onFocus($event)\"\n @blur=\"onBlur($event)\"\n >\n <template v-slot:tag=\"{ item }\">\n <slot\n name=\"tag\"\n :item=\"item\"\n >\n {{ item.label }}\n </slot>\n </template>\n </OrTagInput>\n </template>\n\n <template v-else>\n <OrInputBox\n :ref=\"'inputBox'\"\n :class=\"boxOpenStyles\"\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <input\n :ref=\"'control'\"\n v-bind=\"attributes\"\n v-dropdown-open=\"openMobilePopover\"\n :class=\"controlStyles\"\n :type=\"'text'\"\n :value=\"searchText || model\"\n :autocomplete=\"'off'\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @input=\"$emit('input', $event); onInput($event); model = searchText\"\n @keydown=\"$emit('keydown', $event)\"\n @keyup=\"$emit('keyup', $event)\"\n @focus=\"onFocus($event);\"\n @blur=\"onBlur($event);\"\n >\n\n <template\n v-if=\"enableClear && !readonly && !disabled\"\n v-slot:addon\n >\n <template v-if=\"model && model.length > 0\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n @click=\"reset()\"\n />\n </template>\n </template>\n </OrInputBox>\n </template>\n\n <OrPopover\n :ref=\"'popover'\"\n :trigger=\"tagInputRoot || inputBoxRoot\"\n :placement=\"'bottom'\"\n :offset=\"0\"\n :full-width=\"true\"\n :disable-default-styles=\"true\"\n :bottom-sheet-props=\"{ isFullscreen: true }\"\n >\n <div :class=\"dropdownStyles\">\n <template v-if=\"isMobile\">\n <div class=\"py-sm px-lg\">\n <OrTagInput\n v-if=\"multiple\"\n :ref=\"'mobileMultipleControl'\"\n v-model=\"model\"\n :overflow=\"'scroll'\"\n :placeholder=\"placeholder\"\n :error=\"!!error\"\n :enable-clear=\"false\"\n @input=\"onInput($event)\"\n >\n <template v-slot:tag=\"{ item }\">\n <slot\n name=\"tag\"\n :item=\"item\"\n >\n {{ item.label }}\n </slot>\n </template>\n <template v-slot:appendInner>\n <OrIconButton\n :icon=\"'check'\"\n :color=\"'inherit'\"\n @click=\"closeMobilePopover\"\n />\n </template>\n </OrTagInput>\n <OrInput\n v-else\n ref=\"mobileSingleControl\"\n :model-value=\"searchText || (model && model.toString())\"\n :placeholder=\"placeholder\"\n @input=\"$emit('input', $event); onInput($event); model = searchText\"\n >\n <template v-slot:appendInner>\n <OrIconButton\n :icon=\"'check'\"\n :color=\"'inherit'\"\n @click=\"closeMobilePopover\"\n />\n </template>\n </OrInput>\n </div>\n </template>\n <template\n v-if=\"loading\"\n >\n <div :class=\"loaderContainerStyles\">\n <slot name=\"loading\">\n <OrLoader\n :class=\"loaderStyles\"\n variant=\"text\"\n :text=\"loadingText\"\n />\n </slot>\n </div>\n </template>\n <div\n v-else\n :class=\"isMobile ? 'overflow-auto': 'contains'\"\n >\n <OrMenuItem\n v-for=\"(item, i) in filteredItems\"\n :key=\"i\"\n :class=\"dropdownItemStyles\"\n @click=\"add(item)\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n >\n {{ item }}\n </slot>\n </OrMenuItem>\n </div>\n </div>\n </OrPopover>\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { DropdownClose, DropdownOpen } from '@onereach/ui-components-common/directives';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useResponsive, useValidationAttributes } from '@onereach/ui-components-common/hooks';\nimport { SearchFunction } from '@onereach/ui-components-common/types';\nimport { exclude, include, isNil, toArray } from '@onereach/ui-components-common/utils';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrInputV3 as OrInput } from '@onereach/ui-components.or-input-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrLoaderV3 as OrLoader } from '@onereach/ui-components.or-loader-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { OrTagInputV3 as OrTagInput } from '@onereach/ui-components.or-tag-input-v3';\nimport { TagsOverflow } from '@onereach/ui-components.or-tags-v3';\nimport { computedAsync, watchTriggerable } from '@vueuse/core';\nimport { PropType, computed, defineComponent, reactive, ref, toRef, nextTick } from 'vue';\n\nimport * as Styles from './styles';\nimport { AutocompleteModelValue, AutocompleteValue } from './types';\n\nexport default defineComponent({\n name: 'OrAutocomplete',\n\n components: {\n OrError,\n OrHint,\n OrIconButton,\n OrInputBox,\n OrInput,\n OrLabel,\n OrLoader,\n OrMenuItem,\n OrPopover,\n OrTagInput,\n },\n\n directives: {\n DropdownClose,\n DropdownOpen,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<AutocompleteModelValue>,\n default: undefined,\n },\n\n items: {\n type: Array as PropType<AutocompleteValue[]>,\n default: () => [],\n },\n\n multiple: {\n type: Boolean,\n default: false,\n },\n\n overflow: {\n type: String as PropType<`${TagsOverflow}`>,\n default: () => TagsOverflow.Hidden,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n placeholder: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n loadingText: {\n type: String,\n default: 'Loading',\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n enableClear: {\n type: Boolean,\n default: false,\n },\n\n searchFunction: {\n type: Function as PropType<SearchFunction<AutocompleteValue>>,\n\n default: (async (value, items) => {\n return value.length > 0 ? items.filter((item) => new RegExp(value, 'i').test(item)) : [];\n }) as SearchFunction<AutocompleteValue>,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'popover',\n 'popoverState',\n\n 'reset',\n 'clear',\n\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n const attributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n // Refs\n const root = ref<HTMLElement>();\n\n const tagInput = ref<InstanceType<typeof OrTagInput>>();\n const tagInputRoot = computed(() => tagInput.value?.root);\n\n const inputBox = ref<InstanceType<typeof OrInputBox>>();\n const inputBoxRoot = computed(() => inputBox.value?.root);\n\n const control = ref<HTMLElement>();\n const mobileSingleControl = ref<InstanceType<typeof OrInput>>();\n const mobileMultipleControl = ref<InstanceType<typeof OrTagInput>>();\n\n const popover = ref<InstanceType<typeof OrPopover>>();\n const popoverRoot = computed(() => popover.value?.root);\n const popoverState = computed(() => popover.value?.state);\n const popoverFlipped = computed(() => popover.value?.isFlipped);\n\n const activated = ref(false);\n\n // Helpers\n const { isMobile } = useResponsive();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-autocomplete-v3',\n ...Styles.Autocomplete,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const controlStyles = computed(() => [\n ...Styles.AutocompleteControl,\n ]);\n\n const dropdownStyles = computed(() => [\n 'or-autocomplete-popover-v3',\n ...Styles.AutocompleteDropdown,\n ...popover.value?.isFlipped ? Styles.AutocompleteDropdownFlipped : Styles.AutocompleteDropdownDefault,\n ]);\n\n const dropdownItemStyles = computed(() => [\n ...Styles.AutocompleteDropdownItem,\n ]);\n\n const loaderStyles = computed(() => [\n ...Styles.AutocompleteLoader,\n ]);\n\n const loaderContainerStyles = computed(() => [\n ...Styles.AutocompleteLoaderContainer,\n ]);\n\n const boxOpenStyles = computed(() => [\n ...(popoverState.value === 'open' && !isMobile.value ? (popoverFlipped.value ? Styles.AutocompleteInputBoxOpenFlipped : Styles.AutocompleteInputBoxOpen) : []),\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const searchText = ref<string>();\n\n const filteredItems = computedAsync(async () => {\n return searchText.value\n ? (await props.searchFunction(searchText.value, props.items))\n .filter((item) => !model.value?.includes(item))\n : [];\n }, []);\n\n // Handlers\n function onInput(event: InputEvent): void {\n searchText.value = (event.target as HTMLInputElement).value;\n }\n\n // Methods\n function add(value: AutocompleteValue): void {\n if (props.multiple) {\n model.value = include(value, isNil(model.value) ? [] : toArray(model.value));\n } else {\n model.value = value;\n if (isMobile.value) {\n closeMobilePopover();\n }\n }\n\n clear();\n }\n\n function remove(value: AutocompleteValue): void {\n model.value = exclude(value, isNil(model.value) ? [] : toArray(model.value));\n }\n\n function reset(): void {\n model.value = undefined;\n\n clear();\n }\n\n function clear(): void {\n searchText.value = undefined;\n if (isMobile.value) {\n (mobileMultipleControl.value?.clear as unknown as () => void)?.();\n } else {\n (tagInput.value?.clear as unknown as () => void)?.();\n }\n }\n\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n\n function focusMobileControl(): void {\n if (props.multiple) {\n mobileMultipleControl.value?.activate();\n } else {\n mobileSingleControl.value?.focus();\n }\n }\n\n function onFocus(event: FocusEvent): void {\n activated.value = true;\n context.emit('focus', event);\n if (isMobile.value) return;\n triggerPopover();\n }\n\n function onBlur(event: FocusEvent): void {\n activated.value = false;\n context.emit('blur', event);\n }\n\n function openMobilePopover(): void {\n if (!isMobile.value) return;\n if (!props.readonly && !props.disabled) {\n popover.value?.open();\n nextTick(() => {\n setTimeout(() => focusMobileControl());\n });\n }\n }\n\n function closeMobilePopover(): void {\n if (!isMobile.value) return;\n popover.value?.close();\n }\n\n const { trigger: triggerPopover } = watchTriggerable([\n filteredItems,\n toRef(props, 'loading'),\n ], ([items, loading]) => {\n if (isMobile.value) return;\n if ((items.length > 0 || loading) && activated.value) {\n popover.value?.open();\n } else {\n popover.value?.close();\n }\n });\n\n return {\n attributes,\n\n root,\n rootStyles,\n\n tagInput,\n tagInputRoot,\n\n inputBox,\n inputBoxRoot,\n\n boxOpenStyles,\n\n control,\n mobileSingleControl,\n mobileMultipleControl,\n controlStyles,\n\n popover,\n popoverRoot,\n popoverState,\n\n loaderStyles,\n loaderContainerStyles,\n\n dropdownStyles,\n dropdownItemStyles,\n\n model,\n searchText,\n filteredItems,\n activated,\n\n onFocus,\n onBlur,\n onInput,\n\n add,\n remove,\n reset,\n clear,\n triggerPopover,\n openMobilePopover,\n closeMobilePopover,\n focus,\n blur,\n\n isMobile,\n };\n },\n});\n</script>\n"],"names":["Autocomplete","AutocompleteControl","AutocompleteDropdown","AutocompleteDropdownDefault","AutocompleteDropdownFlipped","AutocompleteDropdownItem","AutocompleteLoader","AutocompleteLoaderContainer","AutocompleteInputBoxOpen","AutocompleteInputBoxOpenFlipped","_sfc_main","defineComponent","OrError","OrHint","OrIconButton","OrInputBox","OrInput","OrLabel","OrLoader","OrMenuItem","OrPopover","OrTagInput","DropdownClose","DropdownOpen","TagsOverflow","value","items","item","props","context","attributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","root","ref","tagInput","tagInputRoot","computed","_a","inputBox","inputBoxRoot","control","mobileSingleControl","mobileMultipleControl","popover","popoverRoot","popoverState","popoverFlipped","activated","isMobile","useResponsive","rootStyles","Styles.Autocomplete","InputBoxVariant","controlStyles","Styles.AutocompleteControl","dropdownStyles","Styles.AutocompleteDropdown","Styles.AutocompleteDropdownFlipped","Styles.AutocompleteDropdownDefault","dropdownItemStyles","Styles.AutocompleteDropdownItem","loaderStyles","Styles.AutocompleteLoader","loaderContainerStyles","Styles.AutocompleteLoaderContainer","boxOpenStyles","Styles.AutocompleteInputBoxOpenFlipped","Styles.AutocompleteInputBoxOpen","model","useProxyModelValue","toRef","searchText","filteredItems","computedAsync","onInput","event","add","include","isNil","toArray","closeMobilePopover","clear","remove","exclude","reset","_b","_d","_c","focus","blur","focusMobileControl","onFocus","triggerPopover","onBlur","openMobilePopover","nextTick","watchTriggerable","loading","_hoisted_2","_resolveDirective","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createBlock","_component_OrLabel","_renderSlot","_createCommentVNode","_withDirectives","_component_OrTagInput","_cache","$event","_directive_dropdown_open","_component_OrInputBox","_withCtx","_createElementVNode","_mergeProps","_hoisted_1","_component_OrIconButton","_createVNode","_component_OrPopover","_component_OrInput","_component_OrLoader","_Fragment","_renderList","i","_component_OrMenuItem","_component_OrHint","_component_OrError"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as B, computed as m, openBlock as s, createElementBlock as u, normalizeClass as d, Fragment as E, renderList as L, renderSlot as r, createTextVNode as N, toDisplayString as M, ref as w, watch as p, resolveComponent as c, createElementVNode as S, createBlock as V, createCommentVNode as n, createVNode as $, normalizeProps as O, guardReactiveProps as b, mergeProps as z, withCtx as P } from "vue";
2
- import { O as D } from "./OrIconButton-BlHCLpeW.mjs";
2
+ import { O as D } from "./OrIconButton-BajZRp1k.mjs";
3
3
  import { O as T } from "./OrLoader-2SaTMxmZ.mjs";
4
- import { O as j } from "./OrSearch-OIfce3Md.mjs";
5
- import { O as G } from "./OrSorting-Crre3wAt.mjs";
4
+ import { O as j } from "./OrSearch-B3zonpwn.mjs";
5
+ import { O as G } from "./OrSorting-DkT8t0gw.mjs";
6
6
  import { _ as A } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
7
7
  var k = /* @__PURE__ */ ((e) => (e.Grid = "grid", e.List = "list", e))(k || {});
8
8
  const I = {
@@ -279,4 +279,4 @@ export {
279
279
  I as g,
280
280
  R as l
281
281
  };
282
- //# sourceMappingURL=OrCardCollection-8aMbrjmE.mjs.map
282
+ //# sourceMappingURL=OrCardCollection-CYELPO7W.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrCardCollection-8aMbrjmE.mjs","sources":["../../../components/or-card-collection-v3/src/props.ts","../../../components/or-card-collection-v3/src/styles.ts","../../../components/or-card-collection-v3/src/partials/OrCardCollectionView.vue3.vue","../../../components/or-card-collection-v3/src/OrCardCollection.vue"],"sourcesContent":["import { ViewMode } from './types';\n\nexport enum CardCollectionView {\n Grid = 'grid',\n List = 'list',\n}\n\nexport const gridView: ViewMode = {\n view: CardCollectionView.Grid,\n icon: 'grid_view',\n};\nexport const listView: ViewMode = {\n view: CardCollectionView.List,\n icon: 'view_agenda',\n};\n\nexport const defaultViewModes = [gridView, listView];\n","import { CardCollectionView } from './props';\n\nexport const CardCollection: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'h-full',\n\n // Spacing\n 'gap-md',\n];\n\nexport const CardCollectionToolbar: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const CardCollectionToolbarPanel: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Spacing\n 'gap-lg+',\n];\n\nexport const CardCollectionContent: string[] = [\n // Layout\n 'grid',\n\n // Overflow\n 'overflow-auto',\n\n // Spacing\n 'px-[5px]', // shadow width\n 'py-[5px]',\n];\n\nexport const CardCollectionContentViews: Record<CardCollectionView, string[]> = {\n [CardCollectionView.Grid]: [\n // Layout\n 'grid-cols-1 md:grid-cols-5',\n\n // Spacing\n 'gap-sm md:gap-md',\n ],\n\n [CardCollectionView.List]: [\n // Layout\n 'grid-cols-1',\n\n // Spacing\n 'gap-sm',\n ],\n};\n\nexport const CardCollectionEmptyContentItem: string[] = [\n // Layout\n 'layout-column items-center justify-center h-full',\n];\n","<template>\n <div :class=\"rootStyles\">\n <slot\n v-for=\"(item, index) of items\"\n :key=\"item.key || index\"\n :name=\"'item'\"\n :index=\"index\"\n :item=\"item\"\n :mode=\"mode\"\n >\n {{ item.key }}\n </slot>\n\n <slot\n name=\"viewEnd\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent } from 'vue';\nimport { CardCollectionView } from '../props';\nimport { CardCollectionContent, CardCollectionContentViews } from '../styles';\nimport { CardCollectionItem } from '../types';\n\nexport default defineComponent({\n name: 'OrCardCollectionView',\n\n props: {\n items: {\n type: Array as PropType<CardCollectionItem[]>,\n default: () => [],\n },\n\n mode: {\n type: String as PropType<`${CardCollectionView}`>,\n required: true,\n },\n },\n\n setup(props) {\n // Styles\n const rootStyles = computed(() => [\n ...CardCollectionContent,\n ...CardCollectionContentViews[props.mode],\n ]);\n\n return {\n rootStyles,\n };\n },\n});\n</script>\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"toolbarStyles\">\n <div :class=\"toolbarPanelStyles\">\n <OrSorting\n v-if=\"sortOptions.length\"\n :model-value=\"sort\"\n :options=\"sortOptions\"\n @update:modelValue=\"$emit('sortChange', $event)\"\n />\n <slot name=\"toolbar\" />\n </div>\n <div\n :class=\"toolbarPanelStyles\"\n >\n <slot\n v-if=\"enableSearch\"\n name=\"search\"\n >\n <OrSearch\n :model-value=\"proxySearch\"\n class=\"md:w-[350px]\"\n :placeholder=\"searchPlaceholder\"\n :debounce=\"searchDebounce\"\n @search=\"handleSearch\"\n />\n </slot>\n\n <template v-if=\"viewModes.length > 1\">\n <div class=\"layout-row gap-sm\">\n <OrIconButton\n v-for=\"viewOption in viewModes\"\n :key=\"viewOption.view\"\n :icon=\"viewOption.icon\"\n :size=\"'l'\"\n :selected=\"viewOption.view === proxyView\"\n @click=\"switchView(viewOption.view)\"\n />\n </div>\n </template>\n <slot name=\"addon\" />\n </div>\n </div>\n\n <slot\n name=\"header\"\n v-bind=\"{\n items,\n mode: proxyView,\n }\"\n />\n\n <slot\n v-if=\"items.length && !loading\"\n :name=\"proxyView\"\n v-bind=\"{items}\"\n >\n <OrCardCollectionView\n :items=\"items\"\n :mode=\"proxyView\"\n >\n <template v-slot:item=\"props\">\n <slot\n name=\"item\"\n v-bind=\"props\"\n />\n </template>\n <template v-slot:viewEnd>\n <slot\n name=\"viewEnd\"\n />\n </template>\n </OrCardCollectionView>\n </slot>\n\n <div\n v-if=\"items.length === 0 || loading\"\n :class=\"emptyContainerStyles\"\n >\n <slot\n v-if=\"proxySearch.length > 0 && !loading\"\n name=\"noSearchResults\"\n :search=\"proxySearch\"\n >\n No results\n </slot>\n <slot\n v-if=\"loading\"\n name=\"loading\"\n >\n <OrLoader />\n </slot>\n <slot\n v-if=\"items.length === 0 && proxySearch.length === 0 && !loading\"\n name=\"empty\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, ref, watch } from 'vue';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrLoaderV3 as OrLoader } from '@onereach/ui-components.or-loader-v3';\nimport { OrSearchV3 as OrSearch } from '@onereach/ui-components.or-search-v3';\nimport { OrSortingV3 as OrSorting, SortOption } from '@onereach/ui-components.or-sorting-v3';\nimport OrCardCollectionView from './partials/OrCardCollectionView.vue3.vue';\nimport { defaultViewModes, gridView } from './props';\nimport { CardCollection, CardCollectionToolbar, CardCollectionToolbarPanel, CardCollectionEmptyContentItem } from './styles';\nimport { CardCollectionItem, ViewMode } from './types';\n\nexport default defineComponent({\n name: 'OrCardCollection',\n\n components: {\n OrCardCollectionView,\n OrIconButton,\n OrSorting,\n OrSearch,\n OrLoader,\n },\n\n props: {\n items: {\n type: Array as PropType<CardCollectionItem[]>,\n default: () => [],\n },\n\n view: {\n type: String,\n default: () => gridView.view,\n },\n\n viewModes: {\n type: Array as PropType<ViewMode[]>,\n default: () => defaultViewModes,\n },\n\n sort: {\n type: String,\n default: undefined,\n },\n\n sortOptions: {\n type: Array as PropType<SortOption[]>,\n default: () => [],\n },\n\n search: {\n type: String,\n default: '',\n },\n\n searchPlaceholder: {\n type: String,\n default: undefined,\n },\n\n searchDebounce: {\n type: Number,\n default: undefined,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n enableSearch: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'viewChange',\n 'sortChange',\n 'searchChange',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-card-collection-v3',\n ...CardCollection,\n ]);\n\n const toolbarStyles = computed(() => [\n ...CardCollectionToolbar,\n ]);\n\n const toolbarPanelStyles = computed(() => [\n ...CardCollectionToolbarPanel,\n ]);\n\n const emptyContainerStyles = computed(() => [\n ...CardCollectionEmptyContentItem,\n ]);\n\n // State\n const proxyView = ref(props.view);\n const proxySearch = ref(props.search);\n\n // Methods\n function switchView(view: string): void {\n proxyView.value = view;\n }\n\n function handleSearch(search?: string) {\n proxySearch.value = search || '';\n }\n\n // Effects\n watch(() => props.view, (value) => {\n proxyView.value = value;\n });\n\n watch(proxyView, (value) => {\n context.emit('viewChange', value);\n });\n\n watch(() => props.search, (value) => {\n proxySearch.value = value;\n });\n\n watch(proxySearch, (value) => {\n context.emit('searchChange', value);\n });\n\n return {\n root,\n rootStyles,\n toolbarStyles,\n toolbarPanelStyles,\n emptyContainerStyles,\n proxyView,\n proxySearch,\n switchView,\n handleSearch,\n };\n },\n});\n</script>\n"],"names":["CardCollectionView","gridView","listView","defaultViewModes","CardCollection","CardCollectionToolbar","CardCollectionToolbarPanel","CardCollectionContent","CardCollectionContentViews","CardCollectionEmptyContentItem","_sfc_main$1","defineComponent","props","computed","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","item","index","_renderSlot","_sfc_main","OrCardCollectionView","OrIconButton","OrSorting","OrSearch","OrLoader","context","root","ref","rootStyles","toolbarStyles","toolbarPanelStyles","emptyContainerStyles","proxyView","proxySearch","switchView","view","handleSearch","search","watch","value","_hoisted_1","_resolveComponent","_createBlock","_component_OrSorting","_createCommentVNode","_createElementVNode","_createVNode","_component_OrSearch","viewOption","_component_OrIconButton","_normalizeProps","_guardReactiveProps","_mergeProps","_component_OrCardCollectionView"],"mappings":"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"}
1
+ {"version":3,"file":"OrCardCollection-CYELPO7W.mjs","sources":["../../../components/or-card-collection-v3/src/props.ts","../../../components/or-card-collection-v3/src/styles.ts","../../../components/or-card-collection-v3/src/partials/OrCardCollectionView.vue3.vue","../../../components/or-card-collection-v3/src/OrCardCollection.vue"],"sourcesContent":["import { ViewMode } from './types';\n\nexport enum CardCollectionView {\n Grid = 'grid',\n List = 'list',\n}\n\nexport const gridView: ViewMode = {\n view: CardCollectionView.Grid,\n icon: 'grid_view',\n};\nexport const listView: ViewMode = {\n view: CardCollectionView.List,\n icon: 'view_agenda',\n};\n\nexport const defaultViewModes = [gridView, listView];\n","import { CardCollectionView } from './props';\n\nexport const CardCollection: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'h-full',\n\n // Spacing\n 'gap-md',\n];\n\nexport const CardCollectionToolbar: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const CardCollectionToolbarPanel: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Spacing\n 'gap-lg+',\n];\n\nexport const CardCollectionContent: string[] = [\n // Layout\n 'grid',\n\n // Overflow\n 'overflow-auto',\n\n // Spacing\n 'px-[5px]', // shadow width\n 'py-[5px]',\n];\n\nexport const CardCollectionContentViews: Record<CardCollectionView, string[]> = {\n [CardCollectionView.Grid]: [\n // Layout\n 'grid-cols-1 md:grid-cols-5',\n\n // Spacing\n 'gap-sm md:gap-md',\n ],\n\n [CardCollectionView.List]: [\n // Layout\n 'grid-cols-1',\n\n // Spacing\n 'gap-sm',\n ],\n};\n\nexport const CardCollectionEmptyContentItem: string[] = [\n // Layout\n 'layout-column items-center justify-center h-full',\n];\n","<template>\n <div :class=\"rootStyles\">\n <slot\n v-for=\"(item, index) of items\"\n :key=\"item.key || index\"\n :name=\"'item'\"\n :index=\"index\"\n :item=\"item\"\n :mode=\"mode\"\n >\n {{ item.key }}\n </slot>\n\n <slot\n name=\"viewEnd\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent } from 'vue';\nimport { CardCollectionView } from '../props';\nimport { CardCollectionContent, CardCollectionContentViews } from '../styles';\nimport { CardCollectionItem } from '../types';\n\nexport default defineComponent({\n name: 'OrCardCollectionView',\n\n props: {\n items: {\n type: Array as PropType<CardCollectionItem[]>,\n default: () => [],\n },\n\n mode: {\n type: String as PropType<`${CardCollectionView}`>,\n required: true,\n },\n },\n\n setup(props) {\n // Styles\n const rootStyles = computed(() => [\n ...CardCollectionContent,\n ...CardCollectionContentViews[props.mode],\n ]);\n\n return {\n rootStyles,\n };\n },\n});\n</script>\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"toolbarStyles\">\n <div :class=\"toolbarPanelStyles\">\n <OrSorting\n v-if=\"sortOptions.length\"\n :model-value=\"sort\"\n :options=\"sortOptions\"\n @update:modelValue=\"$emit('sortChange', $event)\"\n />\n <slot name=\"toolbar\" />\n </div>\n <div\n :class=\"toolbarPanelStyles\"\n >\n <slot\n v-if=\"enableSearch\"\n name=\"search\"\n >\n <OrSearch\n :model-value=\"proxySearch\"\n class=\"md:w-[350px]\"\n :placeholder=\"searchPlaceholder\"\n :debounce=\"searchDebounce\"\n @search=\"handleSearch\"\n />\n </slot>\n\n <template v-if=\"viewModes.length > 1\">\n <div class=\"layout-row gap-sm\">\n <OrIconButton\n v-for=\"viewOption in viewModes\"\n :key=\"viewOption.view\"\n :icon=\"viewOption.icon\"\n :size=\"'l'\"\n :selected=\"viewOption.view === proxyView\"\n @click=\"switchView(viewOption.view)\"\n />\n </div>\n </template>\n <slot name=\"addon\" />\n </div>\n </div>\n\n <slot\n name=\"header\"\n v-bind=\"{\n items,\n mode: proxyView,\n }\"\n />\n\n <slot\n v-if=\"items.length && !loading\"\n :name=\"proxyView\"\n v-bind=\"{items}\"\n >\n <OrCardCollectionView\n :items=\"items\"\n :mode=\"proxyView\"\n >\n <template v-slot:item=\"props\">\n <slot\n name=\"item\"\n v-bind=\"props\"\n />\n </template>\n <template v-slot:viewEnd>\n <slot\n name=\"viewEnd\"\n />\n </template>\n </OrCardCollectionView>\n </slot>\n\n <div\n v-if=\"items.length === 0 || loading\"\n :class=\"emptyContainerStyles\"\n >\n <slot\n v-if=\"proxySearch.length > 0 && !loading\"\n name=\"noSearchResults\"\n :search=\"proxySearch\"\n >\n No results\n </slot>\n <slot\n v-if=\"loading\"\n name=\"loading\"\n >\n <OrLoader />\n </slot>\n <slot\n v-if=\"items.length === 0 && proxySearch.length === 0 && !loading\"\n name=\"empty\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, PropType, ref, watch } from 'vue';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrLoaderV3 as OrLoader } from '@onereach/ui-components.or-loader-v3';\nimport { OrSearchV3 as OrSearch } from '@onereach/ui-components.or-search-v3';\nimport { OrSortingV3 as OrSorting, SortOption } from '@onereach/ui-components.or-sorting-v3';\nimport OrCardCollectionView from './partials/OrCardCollectionView.vue3.vue';\nimport { defaultViewModes, gridView } from './props';\nimport { CardCollection, CardCollectionToolbar, CardCollectionToolbarPanel, CardCollectionEmptyContentItem } from './styles';\nimport { CardCollectionItem, ViewMode } from './types';\n\nexport default defineComponent({\n name: 'OrCardCollection',\n\n components: {\n OrCardCollectionView,\n OrIconButton,\n OrSorting,\n OrSearch,\n OrLoader,\n },\n\n props: {\n items: {\n type: Array as PropType<CardCollectionItem[]>,\n default: () => [],\n },\n\n view: {\n type: String,\n default: () => gridView.view,\n },\n\n viewModes: {\n type: Array as PropType<ViewMode[]>,\n default: () => defaultViewModes,\n },\n\n sort: {\n type: String,\n default: undefined,\n },\n\n sortOptions: {\n type: Array as PropType<SortOption[]>,\n default: () => [],\n },\n\n search: {\n type: String,\n default: '',\n },\n\n searchPlaceholder: {\n type: String,\n default: undefined,\n },\n\n searchDebounce: {\n type: Number,\n default: undefined,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n enableSearch: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'viewChange',\n 'sortChange',\n 'searchChange',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-card-collection-v3',\n ...CardCollection,\n ]);\n\n const toolbarStyles = computed(() => [\n ...CardCollectionToolbar,\n ]);\n\n const toolbarPanelStyles = computed(() => [\n ...CardCollectionToolbarPanel,\n ]);\n\n const emptyContainerStyles = computed(() => [\n ...CardCollectionEmptyContentItem,\n ]);\n\n // State\n const proxyView = ref(props.view);\n const proxySearch = ref(props.search);\n\n // Methods\n function switchView(view: string): void {\n proxyView.value = view;\n }\n\n function handleSearch(search?: string) {\n proxySearch.value = search || '';\n }\n\n // Effects\n watch(() => props.view, (value) => {\n proxyView.value = value;\n });\n\n watch(proxyView, (value) => {\n context.emit('viewChange', value);\n });\n\n watch(() => props.search, (value) => {\n proxySearch.value = value;\n });\n\n watch(proxySearch, (value) => {\n context.emit('searchChange', value);\n });\n\n return {\n root,\n rootStyles,\n toolbarStyles,\n toolbarPanelStyles,\n emptyContainerStyles,\n proxyView,\n proxySearch,\n switchView,\n handleSearch,\n };\n },\n});\n</script>\n"],"names":["CardCollectionView","gridView","listView","defaultViewModes","CardCollection","CardCollectionToolbar","CardCollectionToolbarPanel","CardCollectionContent","CardCollectionContentViews","CardCollectionEmptyContentItem","_sfc_main$1","defineComponent","props","computed","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","item","index","_renderSlot","_sfc_main","OrCardCollectionView","OrIconButton","OrSorting","OrSearch","OrLoader","context","root","ref","rootStyles","toolbarStyles","toolbarPanelStyles","emptyContainerStyles","proxyView","proxySearch","switchView","view","handleSearch","search","watch","value","_hoisted_1","_resolveComponent","_createBlock","_component_OrSorting","_createCommentVNode","_createElementVNode","_createVNode","_component_OrSearch","viewOption","_component_OrIconButton","_normalizeProps","_guardReactiveProps","_mergeProps","_component_OrCardCollectionView"],"mappings":";;;;;;AAEY,IAAAA,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,OAAO,QAFGA,IAAAA,KAAA,CAAA,CAAA;AAKL,MAAMC,IAAqB;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR,GACaC,IAAqB;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR,GAEaC,IAAmB,CAACF,GAAUC,CAAQ,GCdtCE,IAA2B;AAAA;AAAA,EAEtC;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AACF,GAEaC,IAAkC;AAAA;AAAA,EAE7C;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AACF,GAEaC,IAAuC;AAAA;AAAA,EAElD;AAAA;AAAA,EAGA;AACF,GAEaC,IAAkC;AAAA;AAAA,EAE7C;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA;AAAA,EACA;AACF,GAEaC,IAAmE;AAAA,EAC9E,CAACR,EAAmB,IAAI,GAAG;AAAA;AAAA,IAEzB;AAAA;AAAA,IAGA;AAAA,EACF;AAAA,EAEA,CAACA,EAAmB,IAAI,GAAG;AAAA;AAAA,IAEzB;AAAA;AAAA,IAGA;AAAA,EACF;AACF,GAEaS,IAA2C;AAAA;AAAA,EAEtD;AACF,GCzCAC,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,MAAMC,GAAO;AAOJ,WAAA;AAAA,MACL,YANiBC,EAAS,MAAM;AAAA,QAChC,GAAGN;AAAA,QACH,GAAGC,EAA2BI,EAAM,IAAI;AAAA,MAAA,CACzC;AAAA,IAGC;AAAA,EAEJ;AACF,CAAC;AAlDY,SAAAE,EAAAC,GAAEC,GAAUC,GAAAC,GAAAC,GAAAC,GAAA;;IACrB,OAAAC,EAAAN,EAAA,UAAA;AAAA,EAAA,GAAA;AAAA,KAEQO,EAAA,EAAK,GAAGC,EAASC,GAAA,MAAAC,EAAAV,EAAA,OAAA,CAAAW,GAAAC,MAEjBC,EAAOb,EAAA,QAAA,QAAA;AAAA,MACZ,KAAIW,EAAM,OAAAC;AAAA,MACV,OAAAA;AAAA,MAAA,MAAAD;AAAA;;;IAKH,CAAA,CAAA,GAAA,GAAA;AAAA;;;iDCqGJG,IAAelB,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,sBAAAmB;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,MAAMjC,EAAS;AAAA,IAC1B;AAAA,IAEA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAME;AAAA,IACjB;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,EACF;AAAA,EAEA,MAAMS,GAAOuB,GAAS;AAEpB,UAAMC,IAAOC,KAGPC,IAAazB,EAAS,MAAM;AAAA,MAChC;AAAA,MACA,GAAGT;AAAA,IAAA,CACJ,GAEKmC,IAAgB1B,EAAS,MAAM;AAAA,MACnC,GAAGR;AAAA,IAAA,CACJ,GAEKmC,IAAqB3B,EAAS,MAAM;AAAA,MACxC,GAAGP;AAAA,IAAA,CACJ,GAEKmC,IAAuB5B,EAAS,MAAM;AAAA,MAC1C,GAAGJ;AAAA,IAAA,CACJ,GAGKiC,IAAYL,EAAIzB,EAAM,IAAI,GAC1B+B,IAAcN,EAAIzB,EAAM,MAAM;AAGpC,aAASgC,EAAWC,GAAoB;AACtC,MAAAH,EAAU,QAAQG;AAAA,IACpB;AAEA,aAASC,EAAaC,GAAiB;AACrC,MAAAJ,EAAY,QAAQI,KAAU;AAAA,IAChC;AAGA,WAAAC,EAAM,MAAMpC,EAAM,MAAM,CAACqC,MAAU;AACjC,MAAAP,EAAU,QAAQO;AAAA,IAAA,CACnB,GAEKD,EAAAN,GAAW,CAACO,MAAU;AAClB,MAAAd,EAAA,KAAK,cAAcc,CAAK;AAAA,IAAA,CACjC,GAEDD,EAAM,MAAMpC,EAAM,QAAQ,CAACqC,MAAU;AACnC,MAAAN,EAAY,QAAQM;AAAA,IAAA,CACrB,GAEKD,EAAAL,GAAa,CAACM,MAAU;AACpB,MAAAd,EAAA,KAAK,gBAAgBc,CAAK;AAAA,IAAA,CACnC,GAEM;AAAA,MACL,MAAAb;AAAA,MACA,YAAAE;AAAA,MACA,eAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,sBAAAC;AAAA,MACA,WAAAC;AAAA,MACA,aAAAC;AAAA,MACA,YAAAC;AAAA,MACA,cAAAE;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC,GA3NcI,IAAM;AAAA,EAAA,KAAA;AAAA;;;yGA/BnBC,EAmGM,UAAA;SAjGE7B,EAAY,GAAAC,EAAA,OAAA;AAAA,IAAA,KAAA;AAAA,IAElB,OAwCMF,EAAAN,EAAA,UAAA;AAAA,EAAA,GAAA;AAAA;MAvCJ,OAQMM,EAAAN,EAAA,aAAA;AAAA,IAAA,GAAA;AAAA;QANI,OAAAM,EAAYN,EAAM,kBAAA;AAAA,MAAA,GAAA;AAAA,QACvBA,EAAA,YAAA,UAAAO,EAAA,GAAW8B,EAAMC,GAAA;AAAA,UACjB,KAAA;AAAA,UACA,eAAAtC,EAAA;AAAA,UAAA,SAAAA,EAAA;AAAA;WAEoB,MAAA,GAAA,CAAA,eAAA,SAAA,CAAA,KAAAuC,EAAA,IAAA,EAAA;AAAA,QAEzB1B,EA6BMb,EAAA,QAAA,SAAA;AAAA,MA5BH,GAAA,CAAA;AAAA,MAAAwC,EAAA,OAAA;AAAA,eAGOlC,EAAYN,EAAA,kBAAA;AAAA,MAAA,GAAA;AAAA,UAGlB,eACGa,EAAAb,EAAW,QAAE,UAAW,EAAA,KAAA,EAAA,GAAA,MAAA;AAAA,UAAAyC,EACnBC,GAAc;AAAA,YACnB,eAAa1C,EAAA;AAAA,YACb,OAAA;AAAA,YACA,aAAQA,EAAA;AAAA,YAAA,UAAAA,EAAA;AAAA;;SAKX,IAAAuC,EAAA,IAAA,EAAA;AAAA,QAAAvC,EAAA,UAAA,SACE,KAOEO,EAAA,GAAAC,EAAA,OAAA2B,GAAA;AAAA,WAAA5B,EALM,KAAUC,EAAKC,GAAA,MAAAC,EAAAV,EAAA,WAAA,CAAA2C,OACdpC,EAAA,GAAe8B,EAAAO,GAAA;AAAA,YACrB,KAAID,EAAK;AAAA,YACT,MAAUA,EAAA;AAAA,YACV,MAAA;AAAA,YAAA,UAAAA,EAAA,SAAA3C,EAAA;AAAA;;QAIP,CAAA,KAAAuC,EAAA,IAAA,EAAA;AAAA;MAIJ,GAAA,CAAA;AAAA,IAAA,GAAA,CAAA;AAAA,MAEyCvC,EAAS,QAAA,UAAA6C,EAAAC,EAAA;AAAA,MAAA,OAAA9C,EAAA;AAAA,MAO1C,MAAMA,EAAA;AAAA,IADd,CAAA,CAAA,CAAA;AAAA,IAKEA,EAAA,MAAA,UAeuB,eAdbA,EAAK,QAAAA,EAAA,WAAA6C,EAAAE,EAAA,EAAA,KAAA,EAAA,GAAA,EAAA,OAAA/C,EAAA,OAAA,CAAA,GAAA,MAAA;AAAA,MAAAyC,EACNO,GAAS;AAAA,QAAA,OAAAhD,EAAA;AAAA,QAEC,MAAIA,EAAA;AAAA,MAAA,GAAA;AAAA;UAMJa,EAAOb,EAGpB,QAAA,QAAA6C,EAAAC,EAAAjD,CAAA,CAAA,CAAA;AAAA,QAAA,CAAA;AAAA;;;;;KAKR,IAAA0C,EAAA,IAAA,EAAA;AAAA,IAAAvC,EAAA,MAAA,WAAA,KAAAA,EAAA,WAAAO,EAAA,GAEUC,EAAA,OAAA;AAAA,MAAA,KAAA;AAAA,MAGA,OAAAF,EAAYN,EAAM,oBAAgB;AAAA,IAAA,GAAA;AAAA,iDAE/BA,EAAW,QAAA,mBAAA;AAAA,QAGf,KAAA;AAAA,QAAA,QAAAA,EAAA;AAAA;;MAEC,CAAA,IADRuC,EAKO,IAAA,EAAA;AAAA,MADLvC,EAAA,UAAAa,EAAAb,EAAA,QAAA,WAAA,EAAA,KAAA,EAAA,GAAA,MAAA;AAAA;MAGM,CAAA,IADRuC,EAGE,IAAA,EAAA;AAAA,MAAAvC,EAAA,MAAA,WAAA,KAAAA,EAAA,YAAA,WAAA,KAAA,CAAAA,EAAA,UAAAa,EAAAb,EAAA,QAAA,SAAA,EAAA,KAAA,EAAA,CAAA,IAAAuC,EAAA,IAAA,EAAA;AAAA;;;;"}
@@ -2,8 +2,8 @@ import { indentWithTab as ro } from "@codemirror/commands";
2
2
  import { Compartment as F, EditorState as H } from "@codemirror/state";
3
3
  import { keymap as no, EditorView as k } from "@codemirror/view";
4
4
  import { useIdAttribute as lo, useControlAttributes as ao, useValidationAttributes as so, useProxyModelValue as io, useTheme as uo } from "@onereach/ui-components-common/hooks";
5
- import { O as co } from "./OrIconButton-BlHCLpeW.mjs";
6
- import { O as mo } from "./OrModal-CQhwUYFk.mjs";
5
+ import { O as co } from "./OrIconButton-BajZRp1k.mjs";
6
+ import { O as mo } from "./OrModal-Cbi6xMwA.mjs";
7
7
  import { basicSetup as fo } from "codemirror";
8
8
  import { defineComponent as D, ref as h, computed as B, resolveComponent as p, openBlock as I, createElementBlock as L, normalizeClass as V, createVNode as v, withCtx as n, renderSlot as a, createTextVNode as g, toDisplayString as C, createElementVNode as W, withDirectives as z, createBlock as R, vShow as J, createCommentVNode as G, reactive as po, toRef as yo, watch as T, onMounted as bo, onUnmounted as ho, createSlots as A, withModifiers as vo } from "vue";
9
9
  import { O as go } from "./OrError-B5ihH6-3.mjs";
@@ -499,4 +499,4 @@ export {
499
499
  c as C,
500
500
  Po as O
501
501
  };
502
- //# sourceMappingURL=OrCode-BQd66v38.mjs.map
502
+ //# sourceMappingURL=OrCode-C-aENyuR.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrCode-BQd66v38.mjs","sources":["../../../components/or-code-v3/src/styles.ts","../../../components/or-code-v3/src/partials/OrCodeControl.vue","../../../components/or-code-v3/src/props.ts","../../../components/or-code-v3/src/OrCode.vue"],"sourcesContent":["export const Code: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControlRoot: string[] = [\n // Layout\n 'layout-column',\n\n // Sizing\n 'h-full',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControl: string[] = [\n // Layout\n 'grid',\n\n // Box\n 'w-full',\n 'h-full',\n\n // Spacing\n '!mx-0',\n '!my-0',\n\n // Theme\n 'theme-background-transparent',\n\n // todo: https://onereach.atlassian.net/browse/UI-580\n 'dark:invert dark:hue-rotate-180',\n];\n\nexport const CodeModal: string[] = [\n // Sizing\n '!h-full',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrLabel\n :control-id=\"controlId\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n\n <OrInputBox\n :class=\"['grow']\"\n :size=\"'m'\"\n :invalid=\"!!error || !!$slots.error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <div\n :ref=\"'control'\"\n :class=\"controlStyles\"\n />\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0 || $slots.error\"\n :disabled=\"disabled\"\n >\n <slot name=\"error\">\n {{ error }}\n </slot>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { CodeControl, CodeControlRoot } from '../styles';\n\nexport default defineComponent({\n name: 'OrCodeControl',\n\n components: {\n OrError,\n OrHint,\n OrInputBox,\n OrLabel,\n },\n\n props: {\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n controlId: {\n type: String,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n },\n\n expose: [\n 'root',\n 'control',\n\n 'focus',\n 'blur',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<HTMLElement>();\n\n // Methods\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n // Styles\n const rootStyles = computed(() => [\n 'or-code-control-v3',\n ...CodeControlRoot,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n return {\n root,\n control,\n rootStyles,\n controlStyles,\n focus,\n blur,\n };\n },\n});\n</script>\n","export enum CodeLanguage {\n HTML = 'html',\n CSS = 'css',\n JS = 'js',\n TS = 'ts',\n JSON = 'json',\n MD = 'md',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrCodeControl\n :ref=\"'control'\"\n :control-id=\"controlAttributes.id\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:label>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n <template v-slot:addon>\n <div :class=\"['layout-row', 'gap-xs']\">\n <slot name=\"addon\" />\n\n <OrIconButton\n v-if=\"enableFullscreen\"\n :icon=\"'fullscreen'\"\n @click.stop=\"openFullscreen()\"\n />\n </div>\n </template>\n <template v-slot:hint>\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <OrModal\n :ref=\"'modal'\"\n :additional-styles=\"modalStyles\"\n :size=\"'l'\"\n >\n <template v-slot:header>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n\n <OrCodeControl\n :ref=\"'fullscreenControl'\"\n :control-id=\"controlAttributes.id\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <template\n v-if=\"$slots.modalFooter\"\n v-slot:footer\n >\n <slot name=\"modalFooter\" />\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\n\n/* Codemirror core */\n\nimport { indentWithTab } from '@codemirror/commands';\nimport { Compartment, EditorState, Extension } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useTheme, useValidationAttributes } from '@onereach/ui-components-common/hooks';\n\n/* Components */\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { basicSetup } from 'codemirror';\nimport { PropType, computed, defineComponent, onMounted, onUnmounted, reactive, ref, toRef, watch } from 'vue';\n\nimport OrCodeControl from './partials/OrCodeControl.vue';\nimport { CodeLanguage } from './props';\nimport { Code, CodeControl, CodeModal } from './styles';\n\nexport default defineComponent({\n name: 'OrCode',\n\n components: {\n OrModal,\n OrCodeControl,\n OrIconButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n language: {\n type: String as PropType<CodeLanguage>,\n default: () => CodeLanguage.JS,\n },\n\n extensions: {\n type: Array as PropType<Extension[]>,\n default: () => [],\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n // todo: review flag prop, seems better to set 'false' default value\n enableFullscreen: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'editorView',\n 'control',\n 'fullscreenControl',\n 'modal',\n\n 'focus',\n 'blur',\n 'openFullscreen',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<InstanceType<typeof OrCodeControl>>();\n const fullscreenControl = ref<InstanceType<typeof OrCodeControl>>();\n\n const modal = ref<InstanceType<typeof OrModal>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-code-v3',\n ...Code,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n const modalStyles = computed(() => [\n ...CodeModal,\n ]);\n\n const addedExtensionCompartment = new Compartment();\n const languageExtensionCompartment = new Compartment();\n const readonlyExtensionCompartment = new Compartment();\n const disabledExtensionCompartment = new Compartment();\n\n // State\n const controlAttributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const getLanguageExtension = async (language: CodeLanguage) => {\n switch (language) {\n case CodeLanguage.HTML:\n return (await import('@codemirror/lang-html')).html();\n\n case CodeLanguage.CSS:\n return (await import('@codemirror/lang-css')).css();\n\n case CodeLanguage.JS:\n return (await import('@codemirror/lang-javascript')).javascript();\n\n case CodeLanguage.TS:\n return (await import('@codemirror/lang-javascript')).javascript({ typescript: true });\n\n case CodeLanguage.JSON:\n return (await import('@codemirror/lang-json')).json();\n\n case CodeLanguage.MD:\n return (await import('@codemirror/lang-markdown')).markdown();\n }\n };\n\n // Methods\n function focus(): void {\n (control.value?.focus as unknown as () => void)?.();\n }\n\n function blur(): void {\n (control.value?.blur as unknown as () => void)?.();\n }\n\n function openFullscreen(): void {\n (modal.value?.open as unknown as () => void)?.();\n }\n\n // #region Codemirror\n const theme = useTheme();\n const defaultExtensions = [\n basicSetup,\n\n keymap.of([\n indentWithTab,\n ]),\n\n EditorView.domEventHandlers({\n input: (event) => {\n context.emit('input', event);\n },\n\n keydown: (event) => {\n context.emit('keydown', event);\n },\n\n keyup: (event) => {\n context.emit('keyup', event);\n },\n\n focus: (event) => {\n context.emit('focus', event);\n },\n\n blur: (event) => {\n context.emit('blur', event);\n },\n }),\n\n EditorView.theme({\n '&': {\n overflow: 'hidden',\n\n color: theme.textColor['on-background'],\n backgroundColor: 'transparent',\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n fontFamily: theme.fontFamily['caption'],\n fontWeight: theme.fontWeight['caption'],\n fontSize: theme.fontSize['caption'],\n lineHeight: theme.lineHeight['caption'],\n },\n\n '.cm-gutters': {\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['primary-opacity-0-12'],\n borderColor: theme.borderColor['outline'],\n\n backdropFilter: 'blur(2px)',\n },\n\n '.cm-activeLineGutter, .cm-activeLine': {\n backgroundColor: theme.backgroundColor['primary-opacity-0-08'],\n },\n }),\n ];\n\n const state = EditorState.create({\n doc: proxyModelValue.value,\n\n extensions: [\n ...defaultExtensions,\n languageExtensionCompartment.of([]),\n addedExtensionCompartment.of(props.extensions),\n readonlyExtensionCompartment.of([EditorState.readOnly.of(props.readonly)]),\n disabledExtensionCompartment.of([EditorView.editable.of(!props.disabled)]),\n ],\n });\n\n const editorView = new EditorView({\n state,\n\n dispatch: (transaction) => {\n editorView.update([\n transaction,\n ]);\n\n if (transaction.docChanged) {\n proxyModelValue.value = String(editorView.state.doc);\n }\n },\n });\n\n watch(proxyModelValue, (value) => {\n if (editorView.composing) return;\n if (editorView.state.doc.toString() === value) return;\n\n const modelValue = value ?? '';\n const { selection } = editorView.state;\n\n editorView!.dispatch({\n changes: {\n from: 0,\n to: editorView!.state.doc.length,\n insert: modelValue,\n },\n\n selection: selection.ranges.some((range) => range.to > modelValue.length) ? { anchor: modelValue.length } : selection,\n });\n });\n\n watch([\n () => props.extensions,\n () => props.language,\n () => props.readonly,\n () => props.disabled,\n ], async ([extensions, language, readonly, disabled], [, prevLanguage, pevReadonly, pevDisabled]) => {\n let effects = [];\n\n if (readonly !== pevReadonly) {\n effects.push(readonlyExtensionCompartment.reconfigure(EditorState.readOnly.of(readonly)));\n }\n\n if (disabled !== pevDisabled) {\n effects.push(disabledExtensionCompartment.reconfigure(EditorView.editable.of(!disabled)));\n }\n\n if (language !== prevLanguage) {\n const languageExt = await getLanguageExtension(language as CodeLanguage);\n\n effects.push(languageExtensionCompartment.reconfigure([languageExt]));\n }\n\n effects.push(addedExtensionCompartment.reconfigure(extensions));\n\n editorView!.dispatch({ effects });\n }, { immediate: true });\n // #endregion\n\n // Effects\n watch(() => modal.value?.state, (value) => {\n setTimeout(() => {\n if (value === 'open') {\n (fullscreenControl.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n } else {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n }\n });\n });\n\n // Lifecycle\n onMounted(() => {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n });\n\n onUnmounted(() => {\n editorView.destroy();\n });\n\n return {\n root,\n editorView,\n control,\n fullscreenControl,\n modal,\n rootStyles,\n controlStyles,\n modalStyles,\n controlAttributes,\n proxyModelValue,\n focus,\n blur,\n openFullscreen,\n };\n },\n});\n</script>\n"],"names":["Code","CodeControlRoot","CodeControl","CodeModal","_sfc_main$1","defineComponent","OrError","OrHint","OrInputBox","OrLabel","root","ref","control","focus","_a","blur","rootStyles","computed","controlStyles","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrLabel","_renderSlot","_createVNode","_component_OrInputBox","_withCtx","_createElementVNode","_withDirectives","_createBlock","_component_OrHint","_createCommentVNode","_component_OrError","CodeLanguage","_sfc_main","OrModal","OrCodeControl","OrIconButton","props","context","fullscreenControl","modal","modalStyles","addedExtensionCompartment","Compartment","languageExtensionCompartment","readonlyExtensionCompartment","disabledExtensionCompartment","controlAttributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","proxyModelValue","useProxyModelValue","toRef","getLanguageExtension","language","_b","openFullscreen","theme","useTheme","defaultExtensions","basicSetup","keymap","indentWithTab","EditorView","event","state","EditorState","editorView","transaction","watch","value","modelValue","selection","range","extensions","readonly","disabled","prevLanguage","pevReadonly","pevDisabled","effects","languageExt","_d","_c","onMounted","onUnmounted","_component_OrCodeControl","_createSlots","_hoisted_1","_component_OrIconButton","_component_OrModal"],"mappings":"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"}
1
+ {"version":3,"file":"OrCode-C-aENyuR.mjs","sources":["../../../components/or-code-v3/src/styles.ts","../../../components/or-code-v3/src/partials/OrCodeControl.vue","../../../components/or-code-v3/src/props.ts","../../../components/or-code-v3/src/OrCode.vue"],"sourcesContent":["export const Code: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControlRoot: string[] = [\n // Layout\n 'layout-column',\n\n // Sizing\n 'h-full',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControl: string[] = [\n // Layout\n 'grid',\n\n // Box\n 'w-full',\n 'h-full',\n\n // Spacing\n '!mx-0',\n '!my-0',\n\n // Theme\n 'theme-background-transparent',\n\n // todo: https://onereach.atlassian.net/browse/UI-580\n 'dark:invert dark:hue-rotate-180',\n];\n\nexport const CodeModal: string[] = [\n // Sizing\n '!h-full',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrLabel\n :control-id=\"controlId\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n\n <OrInputBox\n :class=\"['grow']\"\n :size=\"'m'\"\n :invalid=\"!!error || !!$slots.error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <div\n :ref=\"'control'\"\n :class=\"controlStyles\"\n />\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0 || $slots.error\"\n :disabled=\"disabled\"\n >\n <slot name=\"error\">\n {{ error }}\n </slot>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { CodeControl, CodeControlRoot } from '../styles';\n\nexport default defineComponent({\n name: 'OrCodeControl',\n\n components: {\n OrError,\n OrHint,\n OrInputBox,\n OrLabel,\n },\n\n props: {\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n controlId: {\n type: String,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n },\n\n expose: [\n 'root',\n 'control',\n\n 'focus',\n 'blur',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<HTMLElement>();\n\n // Methods\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n // Styles\n const rootStyles = computed(() => [\n 'or-code-control-v3',\n ...CodeControlRoot,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n return {\n root,\n control,\n rootStyles,\n controlStyles,\n focus,\n blur,\n };\n },\n});\n</script>\n","export enum CodeLanguage {\n HTML = 'html',\n CSS = 'css',\n JS = 'js',\n TS = 'ts',\n JSON = 'json',\n MD = 'md',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrCodeControl\n :ref=\"'control'\"\n :control-id=\"controlAttributes.id\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:label>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n <template v-slot:addon>\n <div :class=\"['layout-row', 'gap-xs']\">\n <slot name=\"addon\" />\n\n <OrIconButton\n v-if=\"enableFullscreen\"\n :icon=\"'fullscreen'\"\n @click.stop=\"openFullscreen()\"\n />\n </div>\n </template>\n <template v-slot:hint>\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <OrModal\n :ref=\"'modal'\"\n :additional-styles=\"modalStyles\"\n :size=\"'l'\"\n >\n <template v-slot:header>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n\n <OrCodeControl\n :ref=\"'fullscreenControl'\"\n :control-id=\"controlAttributes.id\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <template\n v-if=\"$slots.modalFooter\"\n v-slot:footer\n >\n <slot name=\"modalFooter\" />\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\n\n/* Codemirror core */\n\nimport { indentWithTab } from '@codemirror/commands';\nimport { Compartment, EditorState, Extension } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useTheme, useValidationAttributes } from '@onereach/ui-components-common/hooks';\n\n/* Components */\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { basicSetup } from 'codemirror';\nimport { PropType, computed, defineComponent, onMounted, onUnmounted, reactive, ref, toRef, watch } from 'vue';\n\nimport OrCodeControl from './partials/OrCodeControl.vue';\nimport { CodeLanguage } from './props';\nimport { Code, CodeControl, CodeModal } from './styles';\n\nexport default defineComponent({\n name: 'OrCode',\n\n components: {\n OrModal,\n OrCodeControl,\n OrIconButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n language: {\n type: String as PropType<CodeLanguage>,\n default: () => CodeLanguage.JS,\n },\n\n extensions: {\n type: Array as PropType<Extension[]>,\n default: () => [],\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n // todo: review flag prop, seems better to set 'false' default value\n enableFullscreen: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'editorView',\n 'control',\n 'fullscreenControl',\n 'modal',\n\n 'focus',\n 'blur',\n 'openFullscreen',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<InstanceType<typeof OrCodeControl>>();\n const fullscreenControl = ref<InstanceType<typeof OrCodeControl>>();\n\n const modal = ref<InstanceType<typeof OrModal>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-code-v3',\n ...Code,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n const modalStyles = computed(() => [\n ...CodeModal,\n ]);\n\n const addedExtensionCompartment = new Compartment();\n const languageExtensionCompartment = new Compartment();\n const readonlyExtensionCompartment = new Compartment();\n const disabledExtensionCompartment = new Compartment();\n\n // State\n const controlAttributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const getLanguageExtension = async (language: CodeLanguage) => {\n switch (language) {\n case CodeLanguage.HTML:\n return (await import('@codemirror/lang-html')).html();\n\n case CodeLanguage.CSS:\n return (await import('@codemirror/lang-css')).css();\n\n case CodeLanguage.JS:\n return (await import('@codemirror/lang-javascript')).javascript();\n\n case CodeLanguage.TS:\n return (await import('@codemirror/lang-javascript')).javascript({ typescript: true });\n\n case CodeLanguage.JSON:\n return (await import('@codemirror/lang-json')).json();\n\n case CodeLanguage.MD:\n return (await import('@codemirror/lang-markdown')).markdown();\n }\n };\n\n // Methods\n function focus(): void {\n (control.value?.focus as unknown as () => void)?.();\n }\n\n function blur(): void {\n (control.value?.blur as unknown as () => void)?.();\n }\n\n function openFullscreen(): void {\n (modal.value?.open as unknown as () => void)?.();\n }\n\n // #region Codemirror\n const theme = useTheme();\n const defaultExtensions = [\n basicSetup,\n\n keymap.of([\n indentWithTab,\n ]),\n\n EditorView.domEventHandlers({\n input: (event) => {\n context.emit('input', event);\n },\n\n keydown: (event) => {\n context.emit('keydown', event);\n },\n\n keyup: (event) => {\n context.emit('keyup', event);\n },\n\n focus: (event) => {\n context.emit('focus', event);\n },\n\n blur: (event) => {\n context.emit('blur', event);\n },\n }),\n\n EditorView.theme({\n '&': {\n overflow: 'hidden',\n\n color: theme.textColor['on-background'],\n backgroundColor: 'transparent',\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n fontFamily: theme.fontFamily['caption'],\n fontWeight: theme.fontWeight['caption'],\n fontSize: theme.fontSize['caption'],\n lineHeight: theme.lineHeight['caption'],\n },\n\n '.cm-gutters': {\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['primary-opacity-0-12'],\n borderColor: theme.borderColor['outline'],\n\n backdropFilter: 'blur(2px)',\n },\n\n '.cm-activeLineGutter, .cm-activeLine': {\n backgroundColor: theme.backgroundColor['primary-opacity-0-08'],\n },\n }),\n ];\n\n const state = EditorState.create({\n doc: proxyModelValue.value,\n\n extensions: [\n ...defaultExtensions,\n languageExtensionCompartment.of([]),\n addedExtensionCompartment.of(props.extensions),\n readonlyExtensionCompartment.of([EditorState.readOnly.of(props.readonly)]),\n disabledExtensionCompartment.of([EditorView.editable.of(!props.disabled)]),\n ],\n });\n\n const editorView = new EditorView({\n state,\n\n dispatch: (transaction) => {\n editorView.update([\n transaction,\n ]);\n\n if (transaction.docChanged) {\n proxyModelValue.value = String(editorView.state.doc);\n }\n },\n });\n\n watch(proxyModelValue, (value) => {\n if (editorView.composing) return;\n if (editorView.state.doc.toString() === value) return;\n\n const modelValue = value ?? '';\n const { selection } = editorView.state;\n\n editorView!.dispatch({\n changes: {\n from: 0,\n to: editorView!.state.doc.length,\n insert: modelValue,\n },\n\n selection: selection.ranges.some((range) => range.to > modelValue.length) ? { anchor: modelValue.length } : selection,\n });\n });\n\n watch([\n () => props.extensions,\n () => props.language,\n () => props.readonly,\n () => props.disabled,\n ], async ([extensions, language, readonly, disabled], [, prevLanguage, pevReadonly, pevDisabled]) => {\n let effects = [];\n\n if (readonly !== pevReadonly) {\n effects.push(readonlyExtensionCompartment.reconfigure(EditorState.readOnly.of(readonly)));\n }\n\n if (disabled !== pevDisabled) {\n effects.push(disabledExtensionCompartment.reconfigure(EditorView.editable.of(!disabled)));\n }\n\n if (language !== prevLanguage) {\n const languageExt = await getLanguageExtension(language as CodeLanguage);\n\n effects.push(languageExtensionCompartment.reconfigure([languageExt]));\n }\n\n effects.push(addedExtensionCompartment.reconfigure(extensions));\n\n editorView!.dispatch({ effects });\n }, { immediate: true });\n // #endregion\n\n // Effects\n watch(() => modal.value?.state, (value) => {\n setTimeout(() => {\n if (value === 'open') {\n (fullscreenControl.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n } else {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n }\n });\n });\n\n // Lifecycle\n onMounted(() => {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n });\n\n onUnmounted(() => {\n editorView.destroy();\n });\n\n return {\n root,\n editorView,\n control,\n fullscreenControl,\n modal,\n rootStyles,\n controlStyles,\n modalStyles,\n controlAttributes,\n proxyModelValue,\n focus,\n blur,\n openFullscreen,\n };\n },\n});\n</script>\n"],"names":["Code","CodeControlRoot","CodeControl","CodeModal","_sfc_main$1","defineComponent","OrError","OrHint","OrInputBox","OrLabel","root","ref","control","focus","_a","blur","rootStyles","computed","controlStyles","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrLabel","_renderSlot","_createVNode","_component_OrInputBox","_withCtx","_createElementVNode","_withDirectives","_createBlock","_component_OrHint","_createCommentVNode","_component_OrError","CodeLanguage","_sfc_main","OrModal","OrCodeControl","OrIconButton","props","context","fullscreenControl","modal","modalStyles","addedExtensionCompartment","Compartment","languageExtensionCompartment","readonlyExtensionCompartment","disabledExtensionCompartment","controlAttributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","proxyModelValue","useProxyModelValue","toRef","getLanguageExtension","language","_b","openFullscreen","theme","useTheme","defaultExtensions","basicSetup","keymap","indentWithTab","EditorView","event","state","EditorState","editorView","transaction","watch","value","modelValue","selection","range","extensions","readonly","disabled","prevLanguage","pevReadonly","pevDisabled","effects","languageExt","_d","_c","onMounted","onUnmounted","_component_OrCodeControl","_createSlots","_hoisted_1","_component_OrIconButton","_component_OrModal"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { usePopoverState as K } from "@onereach/ui-components-common/hooks";
2
2
  import { O as M } from "./OrButton-C_hXddAf.mjs";
3
3
  import { a as D } from "./OrButton.vue_vue_type_script_lang-W1ictbKz.mjs";
4
- import { O as R } from "./OrInput-BqDsy3wR.mjs";
4
+ import { O as R } from "./OrInput-BrJzxNyE.mjs";
5
5
  import { O as U } from "./OrOverlay-BjrghiC-.mjs";
6
6
  import { useMagicKeys as G, whenever as J, onClickOutside as Q } from "@vueuse/core";
7
7
  import { logicAnd as W } from "@vueuse/math";
@@ -283,4 +283,4 @@ export {
283
283
  s as C,
284
284
  ho as O
285
285
  };
286
- //# sourceMappingURL=OrConfirm-hPRH5PIY.mjs.map
286
+ //# sourceMappingURL=OrConfirm-CT16BlWw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrConfirm-hPRH5PIY.mjs","sources":["../../../components/or-confirm-v3/src/props.ts","../../../components/or-confirm-v3/src/styles.ts","../../../components/or-confirm-v3/src/OrConfirm.vue"],"sourcesContent":["export enum ConfirmType {\n D = 'd', // destructive / dangerous\n C = 'c', // consequential / common\n}\n","import { ConfirmType } from './props';\n\nexport const Confirm: string[] = [\n // Position\n 'fixed md:static',\n\n 'left-0',\n 'right-0',\n 'bottom-0',\n\n // Layout\n 'layout-column',\n\n // Box\n 'w-full md:w-[320px]',\n\n // Spacing\n 'px-lg',\n 'py-lg',\n\n 'gap-md',\n\n // Shape\n 'md:rounded-md',\n\n // Elevation\n 'shadow-modal',\n 'dark:shadow-modal-dark',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const ConfirmHeader: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Typography\n 'typography-headline-3',\n];\n\nexport const ConfirmInput: string[] = [\n // Box\n 'w-full',\n\n // Spacing\n 'mt-md',\n];\n\nexport const ConfirmFooter: string[] = [\n // Spacing\n 'gap-md',\n];\n\nexport const ConfirmFooterTypes: Record<ConfirmType, string[]> = {\n [ConfirmType.C]: [\n // Layout\n 'layout-row',\n ],\n\n [ConfirmType.D]: [\n // Layout\n 'layout-row-reverse',\n ],\n};\n\nexport const ConfirmFooterButtons: string[] = [\n // Layout\n '!grow',\n\n // Box\n 'w-auto md:w-[128px]',\n];\n","<template>\n <OrOverlay\n v-if=\"state === 'open'\"\n :fullscreen=\"true\"\n >\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :role=\"'alertdialog'\"\n >\n <div :class=\"headerStyles\">\n <slot name=\"header\">\n {{ titleText }}\n </slot>\n </div>\n\n <div class=\"grow\">\n <div class=\"overflow-y-auto overflow-x-hidden\">\n <slot />\n </div>\n <div\n v-if=\"confirmationText\"\n :class=\"inputBoxStyles\"\n >\n <OrInput\n :ref=\"'confirmationInput'\"\n v-model=\"confirmationValue\"\n :label=\"textConfirmationLabel\"\n :placeholder=\"textConfirmationPlaceholder\"\n @focus=\"onInputFocus\"\n @blur=\"onInputBlur\"\n />\n </div>\n </div>\n\n <slot\n name=\"footer\"\n :confirm=\"confirm\"\n :cancel=\"close\"\n >\n <div :class=\"footerStyles\">\n <OrButton\n :class=\"buttonsStyles\"\n :variant=\"'outlined'\"\n :disabled=\"loading\"\n @click=\"close()\"\n >\n {{ cancelButtonText }}\n </OrButton>\n\n <OrButton\n :ref=\"'confirmationButton'\"\n :class=\"buttonsStyles\"\n :color=\"confirmButtonColor\"\n :loading=\"loading\"\n :disabled=\"isConfirmationButtonDisabled\"\n @click=\"onConfirmClick\"\n >\n {{ confirmButtonText }}\n </OrButton>\n </div>\n </slot>\n </div>\n </OrOverlay>\n</template>\n\n<script lang=\"ts\">\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { ButtonColor, OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrInputV3 as OrInput } from '@onereach/ui-components.or-input-v3';\nimport { OrOverlayV3 as OrOverlay } from '@onereach/ui-components.or-overlay-v3';\nimport { onClickOutside, useMagicKeys, whenever } from '@vueuse/core';\nimport { logicAnd } from '@vueuse/math';\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\n\nimport { ConfirmType } from './props';\nimport { Confirm, ConfirmFooter, ConfirmFooterButtons, ConfirmFooterTypes, ConfirmHeader, ConfirmInput } from './styles';\n\nexport default defineComponent({\n name: 'OrConfirm',\n\n components: {\n OrOverlay,\n OrButton,\n OrInput,\n },\n\n inheritAttrs: false,\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n titleText: {\n type: String,\n required: false,\n default: null,\n },\n\n confirmButtonText: {\n type: String,\n default: 'Confirm',\n },\n\n autoCloseOnConfirm: {\n type: Boolean,\n default: true,\n },\n\n closeOnClickOutside: {\n type: Boolean,\n default: true,\n },\n\n cancelButtonText: {\n type: String,\n default: 'Cancel',\n },\n\n confirmType: {\n type: String as PropType<`${ConfirmType}`>,\n default: () => ConfirmType.C,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n\n confirmationText: {\n type: String,\n default: undefined,\n },\n\n textConfirmationLabel: {\n type: String,\n default: undefined,\n },\n\n textConfirmationPlaceholder: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n 'confirm',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n\n const confirmationInput = ref<InstanceType<typeof OrInput>>();\n const confirmationButton = ref<InstanceType<typeof OrButton>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-confirm-v3',\n ...Confirm,\n ]);\n\n const headerStyles = computed(() => [\n ...ConfirmHeader,\n ]);\n\n const inputBoxStyles = computed(() => [\n ...ConfirmInput,\n ]);\n\n const footerStyles = computed(() => [\n ...ConfirmFooter,\n ...ConfirmFooterTypes[props.confirmType],\n ]);\n\n const buttonsStyles = computed(() => [\n ...ConfirmFooterButtons,\n ]);\n\n // State\n const { state, open, close } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n const isInputActive = ref(false);\n const confirmationValue = ref('');\n\n watch(state, () => {\n confirmationValue.value = '';\n });\n\n const { escape, enter } = useMagicKeys();\n\n const isInvalid = computed(() => {\n return !!props.confirmationText && props.confirmationText !== confirmationValue.value;\n });\n\n const isConfirmationButtonDisabled = computed(() => !!props.disabled || isInvalid.value);\n\n const confirmButtonColor = computed(() =>\n props.confirmType === ConfirmType.C ? ButtonColor.Primary : ButtonColor.Danger,\n );\n\n // Methods\n function confirm(): void {\n if (!props.disabled && !isInvalid.value) {\n context.emit('confirm');\n }\n }\n\n function onInputFocus(): void {\n isInputActive.value = true;\n }\n\n function onInputBlur(): void {\n isInputActive.value = false;\n }\n\n function onConfirmClick(): void {\n confirm();\n if (props.autoCloseOnConfirm) {\n close();\n }\n }\n // Events\n watch(escape, (val) => {\n if (val) close();\n });\n\n // types here are used for fixing TS2349\n watch(confirmationInput as any, (val: InstanceType<typeof OrInput>) =>\n (val?.focus as (() => void) | undefined)?.());\n\n // types here are used for fixing TS2349\n watch(confirmationButton as any, (val: InstanceType<typeof OrButton>) => {\n if (val && !props.confirmationText) {\n const button = val.root as HTMLButtonElement | undefined;\n button?.focus();\n }\n });\n\n whenever(logicAnd(enter, isInputActive), () => confirm());\n\n // #region Click Outside\n onClickOutside(root, () => {\n props.closeOnClickOutside ? close() : undefined;\n });\n // #endregion\n\n return {\n root,\n confirmationInput,\n confirmationButton,\n confirmationValue,\n confirmButtonColor,\n isInvalid,\n isConfirmationButtonDisabled,\n state,\n isInputActive,\n escape,\n rootStyles,\n headerStyles,\n inputBoxStyles,\n footerStyles,\n buttonsStyles,\n confirm,\n onConfirmClick,\n open,\n close,\n onInputFocus,\n onInputBlur,\n };\n },\n});\n</script>\n"],"names":["ConfirmType","Confirm","ConfirmHeader","ConfirmInput","ConfirmFooter","ConfirmFooterTypes","ConfirmFooterButtons","_sfc_main","defineComponent","OrOverlay","OrButton","OrInput","props","context","root","ref","confirmationInput","confirmationButton","rootStyles","computed","headerStyles","inputBoxStyles","footerStyles","buttonsStyles","state","open","close","usePopoverState","toRef","isInputActive","confirmationValue","watch","escape","enter","useMagicKeys","isInvalid","isConfirmationButtonDisabled","confirmButtonColor","ButtonColor","confirm","onInputFocus","onInputBlur","onConfirmClick","val","_a","button","whenever","logicAnd","onClickOutside","_component_OrOverlay","_resolveComponent","_ctx","_openBlock","_createBlock","_withCtx","_createElementVNode","_mergeProps","_normalizeClass","_hoisted_1","_hoisted_2","_renderSlot","_createElementBlock","_createVNode","_component_OrInput","_cache","$event","_createCommentVNode","_component_OrButton"],"mappings":"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"}
1
+ {"version":3,"file":"OrConfirm-CT16BlWw.mjs","sources":["../../../components/or-confirm-v3/src/props.ts","../../../components/or-confirm-v3/src/styles.ts","../../../components/or-confirm-v3/src/OrConfirm.vue"],"sourcesContent":["export enum ConfirmType {\n D = 'd', // destructive / dangerous\n C = 'c', // consequential / common\n}\n","import { ConfirmType } from './props';\n\nexport const Confirm: string[] = [\n // Position\n 'fixed md:static',\n\n 'left-0',\n 'right-0',\n 'bottom-0',\n\n // Layout\n 'layout-column',\n\n // Box\n 'w-full md:w-[320px]',\n\n // Spacing\n 'px-lg',\n 'py-lg',\n\n 'gap-md',\n\n // Shape\n 'md:rounded-md',\n\n // Elevation\n 'shadow-modal',\n 'dark:shadow-modal-dark',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const ConfirmHeader: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Typography\n 'typography-headline-3',\n];\n\nexport const ConfirmInput: string[] = [\n // Box\n 'w-full',\n\n // Spacing\n 'mt-md',\n];\n\nexport const ConfirmFooter: string[] = [\n // Spacing\n 'gap-md',\n];\n\nexport const ConfirmFooterTypes: Record<ConfirmType, string[]> = {\n [ConfirmType.C]: [\n // Layout\n 'layout-row',\n ],\n\n [ConfirmType.D]: [\n // Layout\n 'layout-row-reverse',\n ],\n};\n\nexport const ConfirmFooterButtons: string[] = [\n // Layout\n '!grow',\n\n // Box\n 'w-auto md:w-[128px]',\n];\n","<template>\n <OrOverlay\n v-if=\"state === 'open'\"\n :fullscreen=\"true\"\n >\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :role=\"'alertdialog'\"\n >\n <div :class=\"headerStyles\">\n <slot name=\"header\">\n {{ titleText }}\n </slot>\n </div>\n\n <div class=\"grow\">\n <div class=\"overflow-y-auto overflow-x-hidden\">\n <slot />\n </div>\n <div\n v-if=\"confirmationText\"\n :class=\"inputBoxStyles\"\n >\n <OrInput\n :ref=\"'confirmationInput'\"\n v-model=\"confirmationValue\"\n :label=\"textConfirmationLabel\"\n :placeholder=\"textConfirmationPlaceholder\"\n @focus=\"onInputFocus\"\n @blur=\"onInputBlur\"\n />\n </div>\n </div>\n\n <slot\n name=\"footer\"\n :confirm=\"confirm\"\n :cancel=\"close\"\n >\n <div :class=\"footerStyles\">\n <OrButton\n :class=\"buttonsStyles\"\n :variant=\"'outlined'\"\n :disabled=\"loading\"\n @click=\"close()\"\n >\n {{ cancelButtonText }}\n </OrButton>\n\n <OrButton\n :ref=\"'confirmationButton'\"\n :class=\"buttonsStyles\"\n :color=\"confirmButtonColor\"\n :loading=\"loading\"\n :disabled=\"isConfirmationButtonDisabled\"\n @click=\"onConfirmClick\"\n >\n {{ confirmButtonText }}\n </OrButton>\n </div>\n </slot>\n </div>\n </OrOverlay>\n</template>\n\n<script lang=\"ts\">\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { ButtonColor, OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrInputV3 as OrInput } from '@onereach/ui-components.or-input-v3';\nimport { OrOverlayV3 as OrOverlay } from '@onereach/ui-components.or-overlay-v3';\nimport { onClickOutside, useMagicKeys, whenever } from '@vueuse/core';\nimport { logicAnd } from '@vueuse/math';\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\n\nimport { ConfirmType } from './props';\nimport { Confirm, ConfirmFooter, ConfirmFooterButtons, ConfirmFooterTypes, ConfirmHeader, ConfirmInput } from './styles';\n\nexport default defineComponent({\n name: 'OrConfirm',\n\n components: {\n OrOverlay,\n OrButton,\n OrInput,\n },\n\n inheritAttrs: false,\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n titleText: {\n type: String,\n required: false,\n default: null,\n },\n\n confirmButtonText: {\n type: String,\n default: 'Confirm',\n },\n\n autoCloseOnConfirm: {\n type: Boolean,\n default: true,\n },\n\n closeOnClickOutside: {\n type: Boolean,\n default: true,\n },\n\n cancelButtonText: {\n type: String,\n default: 'Cancel',\n },\n\n confirmType: {\n type: String as PropType<`${ConfirmType}`>,\n default: () => ConfirmType.C,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n\n confirmationText: {\n type: String,\n default: undefined,\n },\n\n textConfirmationLabel: {\n type: String,\n default: undefined,\n },\n\n textConfirmationPlaceholder: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n 'confirm',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n\n const confirmationInput = ref<InstanceType<typeof OrInput>>();\n const confirmationButton = ref<InstanceType<typeof OrButton>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-confirm-v3',\n ...Confirm,\n ]);\n\n const headerStyles = computed(() => [\n ...ConfirmHeader,\n ]);\n\n const inputBoxStyles = computed(() => [\n ...ConfirmInput,\n ]);\n\n const footerStyles = computed(() => [\n ...ConfirmFooter,\n ...ConfirmFooterTypes[props.confirmType],\n ]);\n\n const buttonsStyles = computed(() => [\n ...ConfirmFooterButtons,\n ]);\n\n // State\n const { state, open, close } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n const isInputActive = ref(false);\n const confirmationValue = ref('');\n\n watch(state, () => {\n confirmationValue.value = '';\n });\n\n const { escape, enter } = useMagicKeys();\n\n const isInvalid = computed(() => {\n return !!props.confirmationText && props.confirmationText !== confirmationValue.value;\n });\n\n const isConfirmationButtonDisabled = computed(() => !!props.disabled || isInvalid.value);\n\n const confirmButtonColor = computed(() =>\n props.confirmType === ConfirmType.C ? ButtonColor.Primary : ButtonColor.Danger,\n );\n\n // Methods\n function confirm(): void {\n if (!props.disabled && !isInvalid.value) {\n context.emit('confirm');\n }\n }\n\n function onInputFocus(): void {\n isInputActive.value = true;\n }\n\n function onInputBlur(): void {\n isInputActive.value = false;\n }\n\n function onConfirmClick(): void {\n confirm();\n if (props.autoCloseOnConfirm) {\n close();\n }\n }\n // Events\n watch(escape, (val) => {\n if (val) close();\n });\n\n // types here are used for fixing TS2349\n watch(confirmationInput as any, (val: InstanceType<typeof OrInput>) =>\n (val?.focus as (() => void) | undefined)?.());\n\n // types here are used for fixing TS2349\n watch(confirmationButton as any, (val: InstanceType<typeof OrButton>) => {\n if (val && !props.confirmationText) {\n const button = val.root as HTMLButtonElement | undefined;\n button?.focus();\n }\n });\n\n whenever(logicAnd(enter, isInputActive), () => confirm());\n\n // #region Click Outside\n onClickOutside(root, () => {\n props.closeOnClickOutside ? close() : undefined;\n });\n // #endregion\n\n return {\n root,\n confirmationInput,\n confirmationButton,\n confirmationValue,\n confirmButtonColor,\n isInvalid,\n isConfirmationButtonDisabled,\n state,\n isInputActive,\n escape,\n rootStyles,\n headerStyles,\n inputBoxStyles,\n footerStyles,\n buttonsStyles,\n confirm,\n onConfirmClick,\n open,\n close,\n onInputFocus,\n onInputBlur,\n };\n },\n});\n</script>\n"],"names":["ConfirmType","Confirm","ConfirmHeader","ConfirmInput","ConfirmFooter","ConfirmFooterTypes","ConfirmFooterButtons","_sfc_main","defineComponent","OrOverlay","OrButton","OrInput","props","context","root","ref","confirmationInput","confirmationButton","rootStyles","computed","headerStyles","inputBoxStyles","footerStyles","buttonsStyles","state","open","close","usePopoverState","toRef","isInputActive","confirmationValue","watch","escape","enter","useMagicKeys","isInvalid","isConfirmationButtonDisabled","confirmButtonColor","ButtonColor","confirm","onInputFocus","onInputBlur","onConfirmClick","val","_a","button","whenever","logicAnd","onClickOutside","_component_OrOverlay","_resolveComponent","_ctx","_openBlock","_createBlock","_withCtx","_createElementVNode","_mergeProps","_normalizeClass","_hoisted_1","_hoisted_2","_renderSlot","_createElementBlock","_createVNode","_component_OrInput","_cache","$event","_createCommentVNode","_component_OrButton"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as d, toRefs as g, watch as O, ref as p, resolveComponent as C, openBlock as v, createBlock as M, withCtx as x, renderSlot as y } from "vue";
2
2
  import { usePopoverState as B } from "@onereach/ui-components-common/hooks";
3
- import { O as P } from "./OrMenu-CJT4Snay.mjs";
4
- import { a as $ } from "./OrPopover-DbygLPtT.mjs";
3
+ import { O as P } from "./OrMenu-BNbd6Ajl.mjs";
4
+ import { a as $ } from "./OrPopover-FA8G-paf.mjs";
5
5
  import "@onereach/ui-components-common/utils";
6
6
  import { _ as S } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
7
7
  const b = d({
@@ -83,4 +83,4 @@ const L = /* @__PURE__ */ S(b, [["render", h]]);
83
83
  export {
84
84
  L as O
85
85
  };
86
- //# sourceMappingURL=OrContextMenu-CrpiM2Jq.mjs.map
86
+ //# sourceMappingURL=OrContextMenu-DG-PfyQa.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrContextMenu-CrpiM2Jq.mjs","sources":["../../../components/or-context-menu-v3/src/OrContextMenu.vue"],"sourcesContent":["<template>\n <OrMenu\n :is-open=\"state === 'open'\"\n :trigger=\"triggerPoint\"\n :placement=\"placement\"\n :offset=\"offset\"\n @update:state=\"$event === 'open' ? open() : close()\"\n >\n <slot :reference=\"reference\" />\n </OrMenu>\n</template>\n\n<script lang=\"ts\">\nimport { VirtualElement } from '@floating-ui/dom';\nimport { PropType, defineComponent, ref, toRefs, watch } from 'vue';\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { PopoverOffset, PopoverPlacement } from '@onereach/ui-components.or-popover-v3';\n\nexport default defineComponent({\n name: 'OrContextMenu',\n\n components: {\n OrMenu,\n },\n\n props: {\n trigger: {\n type: Object as PropType<HTMLElement>,\n default: undefined,\n },\n\n placement: {\n type: String as PropType<`${PopoverPlacement}`>,\n default: () => PopoverPlacement.BottomStart,\n },\n\n offset: {\n type: [Number, Object, Function] as PropType<PopoverOffset>,\n default: 0,\n },\n\n externalControl: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'state',\n\n 'open',\n 'openWith',\n 'close',\n 'toggle',\n ],\n\n setup(props, context) {\n // Props\n const { trigger } = toRefs(props);\n\n watch(trigger, (trigger, prevTrigger) => {\n if (trigger) {\n trigger.addEventListener('contextmenu', onContextMenu);\n }\n\n if (prevTrigger) {\n prevTrigger.removeEventListener('contextmenu', onContextMenu);\n }\n }, { immediate: true });\n\n // State\n const { state, open, close, toggle } = usePopoverState(ref(false), context.emit);\n\n const reference = ref<any>();\n\n const triggerPoint = ref<VirtualElement>();\n\n // Handlers\n function onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n\n triggerPoint.value = {\n getBoundingClientRect: () => new DOMRect(event.x, event.y),\n };\n\n if (!props.externalControl) {\n open();\n }\n }\n\n // Methods\n function openWith(value?: any): void {\n reference.value = value;\n\n open();\n }\n\n return {\n state,\n reference,\n\n open,\n openWith,\n close,\n toggle,\n\n triggerPoint,\n };\n },\n});\n</script>\n"],"names":["_sfc_main","defineComponent","OrMenu","PopoverPlacement","props","context","trigger","toRefs","watch","prevTrigger","onContextMenu","state","open","close","toggle","usePopoverState","ref","reference","triggerPoint","event","openWith","value","_resolveComponent","_openBlock","_createBlock","_component_OrMenu","_ctx","_cache","$event"],"mappings":";;;;;;AAmBA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,QAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAMC,EAAiB;AAAA,IAClC;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM,CAAC,QAAQ,QAAQ,QAAQ;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,IAEA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAMC,GAAOC,GAAS;AAEpB,UAAM,EAAE,SAAAC,EAAA,IAAYC,EAAOH,CAAK;AAE1B,IAAAI,EAAAF,GAAS,CAACA,GAASG,MAAgB;AACvC,MAAIH,KACFA,EAAQ,iBAAiB,eAAeI,CAAa,GAGnDD,KACUA,EAAA,oBAAoB,eAAeC,CAAa;AAAA,IAC9D,GACC,EAAE,WAAW,GAAA,CAAM;AAGhB,UAAA,EAAE,OAAAC,GAAO,MAAAC,GAAM,OAAAC,GAAO,QAAAC,EAAW,IAAAC,EAAgBC,EAAI,EAAK,GAAGX,EAAQ,IAAI,GAEzEY,IAAYD,KAEZE,IAAeF;AAGrB,aAASN,EAAcS,GAAyB;AAC9C,MAAAA,EAAM,eAAe,GAErBD,EAAa,QAAQ;AAAA,QACnB,uBAAuB,MAAM,IAAI,QAAQC,EAAM,GAAGA,EAAM,CAAC;AAAA,MAAA,GAGtDf,EAAM,mBACJQ;IAET;AAGA,aAASQ,EAASC,GAAmB;AACnC,MAAAJ,EAAU,QAAQI,GAEbT;IACP;AAEO,WAAA;AAAA,MACL,OAAAD;AAAA,MACA,WAAAM;AAAA,MAEA,MAAAL;AAAA,MACA,UAAAQ;AAAA,MACA,OAAAP;AAAA,MACA,QAAAC;AAAA,MAEA,cAAAI;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;YApHCI,EAQS,QAAA;AANN,SAAAC,EAAA,GAAqBC,EAAAC,GAAA;AAAA,IACrB,WAAWC,EAAS,UAAA;AAAA,IACpB,SAAQA,EAAA;AAAA,IACR,WAAYA,EAAA;AAAA,IAAA,QAAAA,EAAA;AAAA,sBAEbC,EAA+B,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAA,MAAA,SAAAF,EAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,EAAA,GAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"OrContextMenu-DG-PfyQa.mjs","sources":["../../../components/or-context-menu-v3/src/OrContextMenu.vue"],"sourcesContent":["<template>\n <OrMenu\n :is-open=\"state === 'open'\"\n :trigger=\"triggerPoint\"\n :placement=\"placement\"\n :offset=\"offset\"\n @update:state=\"$event === 'open' ? open() : close()\"\n >\n <slot :reference=\"reference\" />\n </OrMenu>\n</template>\n\n<script lang=\"ts\">\nimport { VirtualElement } from '@floating-ui/dom';\nimport { PropType, defineComponent, ref, toRefs, watch } from 'vue';\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { PopoverOffset, PopoverPlacement } from '@onereach/ui-components.or-popover-v3';\n\nexport default defineComponent({\n name: 'OrContextMenu',\n\n components: {\n OrMenu,\n },\n\n props: {\n trigger: {\n type: Object as PropType<HTMLElement>,\n default: undefined,\n },\n\n placement: {\n type: String as PropType<`${PopoverPlacement}`>,\n default: () => PopoverPlacement.BottomStart,\n },\n\n offset: {\n type: [Number, Object, Function] as PropType<PopoverOffset>,\n default: 0,\n },\n\n externalControl: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'state',\n\n 'open',\n 'openWith',\n 'close',\n 'toggle',\n ],\n\n setup(props, context) {\n // Props\n const { trigger } = toRefs(props);\n\n watch(trigger, (trigger, prevTrigger) => {\n if (trigger) {\n trigger.addEventListener('contextmenu', onContextMenu);\n }\n\n if (prevTrigger) {\n prevTrigger.removeEventListener('contextmenu', onContextMenu);\n }\n }, { immediate: true });\n\n // State\n const { state, open, close, toggle } = usePopoverState(ref(false), context.emit);\n\n const reference = ref<any>();\n\n const triggerPoint = ref<VirtualElement>();\n\n // Handlers\n function onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n\n triggerPoint.value = {\n getBoundingClientRect: () => new DOMRect(event.x, event.y),\n };\n\n if (!props.externalControl) {\n open();\n }\n }\n\n // Methods\n function openWith(value?: any): void {\n reference.value = value;\n\n open();\n }\n\n return {\n state,\n reference,\n\n open,\n openWith,\n close,\n toggle,\n\n triggerPoint,\n };\n },\n});\n</script>\n"],"names":["_sfc_main","defineComponent","OrMenu","PopoverPlacement","props","context","trigger","toRefs","watch","prevTrigger","onContextMenu","state","open","close","toggle","usePopoverState","ref","reference","triggerPoint","event","openWith","value","_resolveComponent","_openBlock","_createBlock","_component_OrMenu","_ctx","_cache","$event"],"mappings":";;;;;;AAmBA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,QAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAMC,EAAiB;AAAA,IAClC;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM,CAAC,QAAQ,QAAQ,QAAQ;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,IAEA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAMC,GAAOC,GAAS;AAEpB,UAAM,EAAE,SAAAC,EAAA,IAAYC,EAAOH,CAAK;AAE1B,IAAAI,EAAAF,GAAS,CAACA,GAASG,MAAgB;AACvC,MAAIH,KACFA,EAAQ,iBAAiB,eAAeI,CAAa,GAGnDD,KACUA,EAAA,oBAAoB,eAAeC,CAAa;AAAA,IAC9D,GACC,EAAE,WAAW,GAAA,CAAM;AAGhB,UAAA,EAAE,OAAAC,GAAO,MAAAC,GAAM,OAAAC,GAAO,QAAAC,EAAW,IAAAC,EAAgBC,EAAI,EAAK,GAAGX,EAAQ,IAAI,GAEzEY,IAAYD,KAEZE,IAAeF;AAGrB,aAASN,EAAcS,GAAyB;AAC9C,MAAAA,EAAM,eAAe,GAErBD,EAAa,QAAQ;AAAA,QACnB,uBAAuB,MAAM,IAAI,QAAQC,EAAM,GAAGA,EAAM,CAAC;AAAA,MAAA,GAGtDf,EAAM,mBACJQ;IAET;AAGA,aAASQ,EAASC,GAAmB;AACnC,MAAAJ,EAAU,QAAQI,GAEbT;IACP;AAEO,WAAA;AAAA,MACL,OAAAD;AAAA,MACA,WAAAM;AAAA,MAEA,MAAAL;AAAA,MACA,UAAAQ;AAAA,MACA,OAAAP;AAAA,MACA,QAAAC;AAAA,MAEA,cAAAI;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;YApHCI,EAQS,QAAA;AANN,SAAAC,EAAA,GAAqBC,EAAAC,GAAA;AAAA,IACrB,WAAWC,EAAS,UAAA;AAAA,IACpB,SAAQA,EAAA;AAAA,IACR,WAAYA,EAAA;AAAA,IAAA,QAAAA,EAAA;AAAA,sBAEbC,EAA+B,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAA,MAAA,SAAAF,EAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,EAAA,GAAA;AAAA;;;;;;;"}