@leaflink/stash 50.11.0 → 50.12.1

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 (204) hide show
  1. package/dist/Accordion.js +30 -31
  2. package/dist/Accordion.js.map +1 -1
  3. package/dist/Accordion.vue.d.ts +6 -1
  4. package/dist/ActionsDropdown.js +2 -2
  5. package/dist/AddressSelect.js +2 -2
  6. package/dist/Alert.js +6 -6
  7. package/dist/AppNavigationItem.js +8 -8
  8. package/dist/AppNavigationItem.vue.d.ts +5 -0
  9. package/dist/AppSidebar.js +9 -9
  10. package/dist/AppSidebar.js.map +1 -1
  11. package/dist/AppTopbar.js +3 -3
  12. package/dist/Avatar.js +3 -3
  13. package/dist/Backdrop.js +2 -2
  14. package/dist/Badge.js +2 -2
  15. package/dist/Box.js +1 -1
  16. package/dist/{Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js → Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js} +3 -3
  17. package/dist/{Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js.map → Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map} +1 -1
  18. package/dist/Button.js +3 -3
  19. package/dist/ButtonGroup.js +4 -4
  20. package/dist/Card.js +7 -7
  21. package/dist/CardContent.js +2 -2
  22. package/dist/CardFooter.js +2 -2
  23. package/dist/CardHeader.js +4 -4
  24. package/dist/CardMedia.js +6 -6
  25. package/dist/Carousel.js +33 -33
  26. package/dist/Carousel.js.map +1 -1
  27. package/dist/Checkbox.js +7 -7
  28. package/dist/ChevronToggle.js +1 -1
  29. package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-DuvluoTi.js → ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js} +3 -3
  30. package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-DuvluoTi.js.map → ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js.map} +1 -1
  31. package/dist/Chip.js +7 -7
  32. package/dist/ConfirmationCodeInput.js +6 -6
  33. package/dist/ContextSwitcher.js +1 -1
  34. package/dist/Copy.js +1 -1
  35. package/dist/CurrencyInput.js +115 -111
  36. package/dist/CurrencyInput.js.map +1 -1
  37. package/dist/DataView.js +102 -98
  38. package/dist/DataView.js.map +1 -1
  39. package/dist/{DataView.keys-C7eaZg2G.js → DataView.keys-aSOnA4AD.js} +2 -1
  40. package/dist/DataView.keys-aSOnA4AD.js.map +1 -0
  41. package/dist/DataView.vue.d.ts +11 -0
  42. package/dist/DataViewFilters.js +4 -4
  43. package/dist/DataViewSortButton.js +11 -11
  44. package/dist/DataViewToolbar.js +61 -60
  45. package/dist/DataViewToolbar.js.map +1 -1
  46. package/dist/DatePicker.js +1080 -1037
  47. package/dist/DatePicker.js.map +1 -1
  48. package/dist/DescriptionList.js +2 -2
  49. package/dist/DescriptionListDetail.js +2 -2
  50. package/dist/DescriptionListGroup.js +2 -2
  51. package/dist/DescriptionListTerm.js +3 -3
  52. package/dist/Dialog.js +1 -1
  53. package/dist/Divider.js +2 -2
  54. package/dist/Dropdown.js +19 -19
  55. package/dist/Dropdown.js.map +1 -1
  56. package/dist/EmptyState.js +2 -2
  57. package/dist/Expand.js +1 -1
  58. package/dist/{Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js → Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js} +5 -5
  59. package/dist/{Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js.map → Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js.map} +1 -1
  60. package/dist/Field.js +1 -1
  61. package/dist/{Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js → Field.vue_vue_type_script_setup_true_lang-DRaKs9Lm.js} +6 -6
  62. package/dist/Field.vue_vue_type_script_setup_true_lang-DRaKs9Lm.js.map +1 -0
  63. package/dist/FileUpload.js +7 -7
  64. package/dist/FilterChip.js +1 -1
  65. package/dist/FilterDrawerItem.js +9 -9
  66. package/dist/FilterDropdown.js +2 -2
  67. package/dist/FilterSelect.js +4 -4
  68. package/dist/Filters.js +18 -18
  69. package/dist/Filters.js.map +1 -1
  70. package/dist/HttpError.js +9 -9
  71. package/dist/Icon.js +2 -2
  72. package/dist/Icon.js.map +1 -1
  73. package/dist/Icon.vue.d.ts +5 -0
  74. package/dist/IconLabel.js +2 -2
  75. package/dist/IconLabel.vue.d.ts +5 -0
  76. package/dist/Illustration.js +2 -2
  77. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-CYddAFtS.js → Illustration.vue_vue_type_script_setup_true_lang-BBqgoJO8.js} +3 -3
  78. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-CYddAFtS.js.map → Illustration.vue_vue_type_script_setup_true_lang-BBqgoJO8.js.map} +1 -1
  79. package/dist/Image.js +2 -2
  80. package/dist/{Image.vue_vue_type_script_setup_true_lang-YUNunj71.js → Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js} +3 -3
  81. package/dist/{Image.vue_vue_type_script_setup_true_lang-YUNunj71.js.map → Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map} +1 -1
  82. package/dist/InlineEdit.js +5 -5
  83. package/dist/InlineEdit.js.map +1 -1
  84. package/dist/Input.js +2 -2
  85. package/dist/InputOptions.js +2 -2
  86. package/dist/InputOptions.js.map +1 -1
  87. package/dist/IntegrationIcon.js +2 -2
  88. package/dist/Label.js +1 -1
  89. package/dist/{Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js → Label.vue_vue_type_script_setup_true_lang-DPnNUfc6.js} +3 -3
  90. package/dist/{Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js.map → Label.vue_vue_type_script_setup_true_lang-DPnNUfc6.js.map} +1 -1
  91. package/dist/LicenseChip.js +2 -2
  92. package/dist/ListItem.js +1 -1
  93. package/dist/ListItemCell.js +2 -2
  94. package/dist/ListView.js +11 -11
  95. package/dist/ListView.js.map +1 -1
  96. package/dist/ListView.vue.d.ts +38 -13
  97. package/dist/Loading.js +2 -2
  98. package/dist/Logo.js +1 -1
  99. package/dist/{Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js → Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js} +4 -4
  100. package/dist/{Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js.map → Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map} +1 -1
  101. package/dist/Menu.js +2 -2
  102. package/dist/MenuItem.js +2 -2
  103. package/dist/Metric.js +5 -5
  104. package/dist/Modal.js +20 -20
  105. package/dist/Modals.js +12 -12
  106. package/dist/Modals.js.map +1 -1
  107. package/dist/Module.js +3 -3
  108. package/dist/ModuleContent.js +3 -3
  109. package/dist/ModuleFooter.js +2 -2
  110. package/dist/ModuleHeader.js +2 -2
  111. package/dist/ModuleHeader.js.map +1 -1
  112. package/dist/ObfuscateText.js +7 -7
  113. package/dist/PageContent.js +3 -3
  114. package/dist/PageHeader.js +6 -6
  115. package/dist/PageNavigation.js +1 -1
  116. package/dist/Paginate.js +73 -55
  117. package/dist/Paginate.js.map +1 -1
  118. package/dist/Paginate.vue.d.ts +12 -1
  119. package/dist/PlaidLink.js +2 -2
  120. package/dist/QuickAction.js +2 -2
  121. package/dist/QuickAction.vue.d.ts +5 -0
  122. package/dist/Radio.js +2 -2
  123. package/dist/RadioGroup.js +2 -2
  124. package/dist/RadioNew.js +1 -1
  125. package/dist/RangeInput.js +2 -2
  126. package/dist/SearchBar.js +4 -4
  127. package/dist/SearchBar.js.map +1 -1
  128. package/dist/Select.js +7 -7
  129. package/dist/Select.js.map +1 -1
  130. package/dist/SelectStatus.js +19 -19
  131. package/dist/SelectStatus.js.map +1 -1
  132. package/dist/SelectStatus.vue.d.ts +5 -0
  133. package/dist/Skeleton.js +4 -4
  134. package/dist/Step.js +19 -19
  135. package/dist/Step.js.map +1 -1
  136. package/dist/Stepper.js +9 -9
  137. package/dist/Switch.js +7 -7
  138. package/dist/Tab.js +4 -4
  139. package/dist/TabPanel.js +2 -2
  140. package/dist/Table.js +6 -6
  141. package/dist/Table.js.map +1 -1
  142. package/dist/TableCell.js +7 -7
  143. package/dist/TableHeaderCell.js +4 -4
  144. package/dist/TableHeaderRow.js +5 -5
  145. package/dist/TableRow.js +5 -5
  146. package/dist/TableRow.js.map +1 -1
  147. package/dist/TableRow.vue.d.ts +12 -8
  148. package/dist/Tabs.js +2 -2
  149. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-NZm1OrRT.js → Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js} +4 -4
  150. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-NZm1OrRT.js.map → Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js.map} +1 -1
  151. package/dist/TextEditor.js +3314 -3291
  152. package/dist/TextEditor.js.map +1 -1
  153. package/dist/TextEditor.vue.d.ts +5 -0
  154. package/dist/Textarea.js +3 -3
  155. package/dist/Textarea.js.map +1 -1
  156. package/dist/Thumbnail.js +7 -7
  157. package/dist/Thumbnail.js.map +1 -1
  158. package/dist/ThumbnailEmpty.js +3 -3
  159. package/dist/ThumbnailGroup.js +6 -6
  160. package/dist/ThumbnailGroup.js.map +1 -1
  161. package/dist/{ThumbnailGroup.keys-D6WL5xQ5.js → ThumbnailGroup.keys-EJ4qFNhx.js} +2 -2
  162. package/dist/{ThumbnailGroup.keys-D6WL5xQ5.js.map → ThumbnailGroup.keys-EJ4qFNhx.js.map} +1 -1
  163. package/dist/Timeline.js +2 -2
  164. package/dist/TimelineItem.js +3 -3
  165. package/dist/Toast.js +277 -280
  166. package/dist/Toast.js.map +1 -1
  167. package/dist/Toasts.js +1 -1
  168. package/dist/Tooltip.js +1 -1
  169. package/dist/components.css +1 -1
  170. package/dist/directives/autofocus.js +2 -2
  171. package/dist/directives/autofocus.js.map +1 -1
  172. package/dist/directives/sticky.js.map +1 -1
  173. package/dist/{formatDateTime-C8CYECpd.js → formatDateTime-Dz8bXV0R.js} +98 -12
  174. package/dist/{formatDateTime-C8CYECpd.js.map → formatDateTime-Dz8bXV0R.js.map} +1 -1
  175. package/dist/index.js +2 -2
  176. package/dist/index.js.map +1 -1
  177. package/dist/locale.js +3 -2
  178. package/dist/locale.js.map +1 -1
  179. package/dist/searchFuzzy-DRasJ33G.js +409 -0
  180. package/dist/{searchFuzzy-DKooyZM8.js.map → searchFuzzy-DRasJ33G.js.map} +1 -1
  181. package/dist/storage.js +3 -3
  182. package/dist/tailwind-base.js +0 -2
  183. package/dist/tailwind-base.js.map +1 -1
  184. package/dist/{toTimeZone-CVE1ZmsS.js → toTimeZone-Coq1oPTt.js} +7 -9
  185. package/dist/{toTimeZone-CVE1ZmsS.js.map → toTimeZone-Coq1oPTt.js.map} +1 -1
  186. package/dist/useModals.js.map +1 -1
  187. package/dist/usePaginationStats-d_q39naC.js +12 -0
  188. package/dist/usePaginationStats-d_q39naC.js.map +1 -0
  189. package/dist/useSearch.js +1 -1
  190. package/dist/useSelection.js +4 -1
  191. package/dist/useSelection.js.map +1 -1
  192. package/dist/useValidation.js +39 -36
  193. package/dist/useValidation.js.map +1 -1
  194. package/dist/utils/formatDateTime.js +2 -2
  195. package/dist/utils/helpers.js +29 -29
  196. package/dist/utils/helpers.js.map +1 -1
  197. package/dist/utils/searchFuzzy.js +1 -1
  198. package/dist/utils/toTimeZone.js +1 -1
  199. package/package.json +42 -20
  200. package/tailwind-base.ts +0 -2
  201. package/types/jsonApi.ts +8 -8
  202. package/dist/DataView.keys-C7eaZg2G.js.map +0 -1
  203. package/dist/Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js.map +0 -1
  204. package/dist/searchFuzzy-DKooyZM8.js +0 -407
@@ -1,4 +1,4 @@
1
- import { defineComponent as g, useCssModule as u, useSlots as h, computed as f, openBlock as t, createElementBlock as s, normalizeClass as n, unref as o, createElementVNode as p, renderSlot as a, createCommentVNode as i, toDisplayString as _ } from "vue";
1
+ import { defineComponent as g, useCssModule as u, useSlots as h, computed as f, createElementBlock as t, openBlock as s, normalizeClass as n, unref as o, createElementVNode as p, createCommentVNode as i, renderSlot as a, toDisplayString as _ } from "vue";
2
2
  import { _ as w } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
3
  const y = { class: "tw-col-span-full tw-flex tw-items-center lg:tw-col-span-1" }, v = {
4
4
  key: 0,
@@ -15,12 +15,12 @@ const y = { class: "tw-col-span-full tw-flex tw-items-center lg:tw-col-span-1" }
15
15
  },
16
16
  setup(m) {
17
17
  const c = m, r = u(), l = h(), d = f(() => !!(l["primary-action"] || l["secondary-action"]));
18
- return (e, H) => (t(), s("header", {
18
+ return (e, H) => (s(), t("header", {
19
19
  class: n(["stash-page-header", [o(r).root, { [o(r).grid]: d.value }]]),
20
20
  "data-test": "stash-page-header"
21
21
  }, [
22
22
  p("div", y, [
23
- o(l).media ? (t(), s("div", {
23
+ o(l).media ? (s(), t("div", {
24
24
  key: 0,
25
25
  class: n(["stash-page-header__media tw-mr-3 tw-self-center", o(r).mediaTest])
26
26
  }, [
@@ -28,14 +28,14 @@ const y = { class: "tw-col-span-full tw-flex tw-items-center lg:tw-col-span-1" }
28
28
  ], 2)) : i("", !0),
29
29
  p("div", null, [
30
30
  a(e.$slots, "title", {}, () => [
31
- c.title ? (t(), s("h1", v, _(c.title), 1)) : i("", !0)
31
+ c.title ? (s(), t("h1", v, _(c.title), 1)) : i("", !0)
32
32
  ]),
33
33
  a(e.$slots, "description", {}, () => [
34
- c.description ? (t(), s("p", k, _(c.description), 1)) : i("", !0)
34
+ c.description ? (s(), t("p", k, _(c.description), 1)) : i("", !0)
35
35
  ])
36
36
  ])
37
37
  ]),
38
- d.value ? (t(), s("div", {
38
+ d.value ? (s(), t("div", {
39
39
  key: 0,
40
40
  class: n(["stash-page-header__actions tw-col-span-full tw-flex lg:tw-col-span-1", o(r).actions])
41
41
  }, [
@@ -1,4 +1,4 @@
1
- import { defineComponent as g, ref as x, watch as I, onMounted as _, openBlock as u, createElementBlock as i, createVNode as T, withCtx as p, Fragment as V, renderList as k, createBlock as N, unref as B, createTextVNode as C, toDisplayString as U } from "vue";
1
+ import { defineComponent as g, ref as x, watch as I, onMounted as _, createElementBlock as i, openBlock as u, createVNode as T, withCtx as p, Fragment as V, renderList as k, createBlock as N, unref as B, createTextVNode as C, toDisplayString as U } from "vue";
2
2
  import y from "@leaflink/snitch";
3
3
  import s from "lodash-es/kebabCase";
4
4
  import { useRoute as P, useRouter as D } from "vue-router";
package/dist/Paginate.js CHANGED
@@ -1,94 +1,112 @@
1
- import { defineComponent as C, useCssModule as w, computed as y, openBlock as i, createElementBlock as l, createElementVNode as c, normalizeClass as o, unref as r, createVNode as g, Fragment as f, renderList as S, createCommentVNode as p, toDisplayString as M } from "vue";
1
+ import { defineComponent as L, useCssModule as M, computed as N, toRef as u, createElementBlock as i, openBlock as l, createElementVNode as d, normalizeClass as o, unref as n, createVNode as _, toDisplayString as m, Fragment as v, renderList as D, createCommentVNode as p } from "vue";
2
+ import { u as E } from "./usePaginationStats-d_q39naC.js";
3
+ import { t as g } from "./locale.js";
2
4
  import h from "./Icon.js";
3
- import { _ as E } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
- const L = {
5
+ import { _ as $ } from "./_plugin-vue_export-helper-CHgC5LLL.js";
6
+ const B = {
5
7
  class: "stash-paginate tw-flex tw-justify-center",
6
8
  "data-test": "stash-paginate"
7
- }, $ = ["onClick"], N = /* @__PURE__ */ C({
9
+ }, V = ["aria-label", "disabled"], F = {
10
+ key: 0,
11
+ class: "tw-mx-3 tw-text-ice-900"
12
+ }, I = ["onClick"], j = ["aria-label", "disabled"], R = /* @__PURE__ */ L({
8
13
  name: "ll-paginate",
9
14
  __name: "Paginate",
10
15
  props: {
11
16
  currentPage: { default: 1 },
12
17
  listLength: { default: 1 },
13
- pageSize: { default: 50 }
18
+ pageSize: { default: 50 },
19
+ isNextDisabled: { type: Boolean, default: !1 },
20
+ variant: { default: "standard" }
14
21
  },
15
22
  emits: ["set-page"],
16
- setup(_, { emit: m }) {
17
- const t = _, v = m, n = w(), s = y(() => Math.ceil(t.listLength / t.pageSize));
18
- function u(e) {
19
- v("set-page", e);
23
+ setup(P, { emit: b }) {
24
+ const t = P, x = b, r = M(), a = N(() => Math.ceil(t.listLength / t.pageSize)), w = t.variant === "stats" ? E({
25
+ currentPage: u(() => t.currentPage),
26
+ pageSize: u(() => t.pageSize),
27
+ totalItems: u(() => t.listLength)
28
+ }) : null;
29
+ function c(e) {
30
+ x("set-page", e);
20
31
  }
21
- function P() {
22
- t.currentPage < s.value && u(t.currentPage + 1);
32
+ function k() {
33
+ t.currentPage < a.value && c(t.currentPage + 1);
23
34
  }
24
- function b() {
25
- t.currentPage > 1 && u(t.currentPage - 1);
35
+ function S() {
36
+ t.currentPage > 1 && c(t.currentPage - 1);
26
37
  }
27
- function z(e) {
28
- const d = Math.abs(t.currentPage - e);
29
- return s.value < 10 || e === 1 || e === s.value || t.currentPage < 6 && e < 8 || s.value - t.currentPage < 5 && s.value - e < 7 || d < 3;
38
+ function y(e) {
39
+ const f = Math.abs(t.currentPage - e);
40
+ return a.value < 10 || e === 1 || e === a.value || t.currentPage < 6 && e < 8 || a.value - t.currentPage < 5 && a.value - e < 7 || f < 3;
30
41
  }
31
- function k(e) {
32
- return s.value > 9 && t.currentPage > 5 && e === 2;
42
+ function C(e) {
43
+ return a.value > 9 && t.currentPage > 5 && e === 2;
33
44
  }
34
- function x(e) {
35
- return s.value > 9 && s.value - t.currentPage > 4 && e === s.value - 1;
45
+ function z(e) {
46
+ return a.value > 9 && a.value - t.currentPage > 4 && e === a.value - 1;
36
47
  }
37
- return (e, d) => (i(), l("div", L, [
38
- c("ul", {
39
- class: o(["stash-paginate__list tw-flex", r(n).pagination]),
48
+ return (e, f) => (l(), i("div", B, [
49
+ d("ul", {
50
+ class: o(["stash-paginate__list tw-flex tw-items-center", n(r).pagination]),
40
51
  "data-test": "stash-paginate|list"
41
52
  }, [
42
- c("button", {
53
+ d("button", {
54
+ "aria-label": n(g)("ll.previous"),
43
55
  "data-test": "stash-paginate|prev-page",
44
- class: o([r(n).prev, { [r(n)["is-disabled"]]: e.currentPage === 1 }]),
45
- onClick: b
56
+ class: o(n(r).prev),
57
+ disabled: t.currentPage === 1,
58
+ onClick: S
46
59
  }, [
47
- g(h, {
60
+ _(h, {
48
61
  size: "small",
49
62
  name: "chevron-left"
50
63
  })
51
- ], 2),
52
- (i(!0), l(f, null, S(s.value, (a) => (i(), l(f, null, [
53
- k(a) ? (i(), l("button", {
54
- key: `${a}-ellipsis`,
55
- "data-test": "stash-paginate|first-ellipsis"
64
+ ], 10, V),
65
+ t.variant === "stats" ? (l(), i("span", F, m(n(g)("ll.pageStats", n(w))), 1)) : (l(!0), i(v, { key: 1 }, D(a.value, (s) => (l(), i(v, null, [
66
+ C(s) ? (l(), i("button", {
67
+ key: `${s}-ellipsis`,
68
+ class: "tw-pointer-events-none",
69
+ "data-test": "stash-paginate|first-ellipsis",
70
+ tabindex: "-1"
56
71
  }, " … ")) : p("", !0),
57
- z(a) ? (i(), l("button", {
58
- key: a,
72
+ y(s) ? (l(), i("button", {
73
+ key: s,
59
74
  "data-test": "stash-paginate|page-number",
60
- class: o({ [r(n)["is-active"]]: e.currentPage === a }),
61
- onClick: (I) => u(a)
62
- }, M(a), 11, $)) : p("", !0),
63
- x(a) ? (i(), l("button", {
64
- key: `${a}-ellipsis`,
65
- "data-test": "stash-paginate|last-ellipsis"
75
+ class: o({ [n(r)["is-active"]]: t.currentPage === s }),
76
+ onClick: (K) => c(s)
77
+ }, m(s), 11, I)) : p("", !0),
78
+ z(s) ? (l(), i("button", {
79
+ key: `${s}-ellipsis`,
80
+ class: "tw-pointer-events-none",
81
+ "data-test": "stash-paginate|last-ellipsis",
82
+ tabindex: "-1"
66
83
  }, " … ")) : p("", !0)
67
84
  ], 64))), 256)),
68
- c("button", {
85
+ d("button", {
86
+ "aria-label": n(g)("ll.next"),
69
87
  "data-test": "stash-paginate|next-page",
70
- class: o([r(n).next, { [r(n)["is-disabled"]]: e.currentPage === s.value }]),
71
- onClick: P
88
+ class: o(n(r).next),
89
+ disabled: t.isNextDisabled || t.currentPage === a.value,
90
+ onClick: k
72
91
  }, [
73
- g(h, {
92
+ _(h, {
74
93
  size: "small",
75
94
  class: "tw-rotate-180",
76
95
  name: "chevron-left"
77
96
  })
78
- ], 2)
97
+ ], 10, j)
79
98
  ], 2)
80
99
  ]));
81
100
  }
82
- }), V = "_pagination_14zhb_2", B = "_prev_14zhb_20", D = "_next_14zhb_25", F = {
83
- pagination: V,
84
- prev: B,
85
- next: D,
86
- "is-active": "_is-active_14zhb_38",
87
- "is-disabled": "_is-disabled_14zhb_51"
88
- }, j = {
89
- $style: F
90
- }, H = /* @__PURE__ */ E(N, [["__cssModules", j]]);
101
+ }), q = "_pagination_104d8_2", A = "_prev_104d8_20", G = "_next_104d8_25", H = {
102
+ pagination: q,
103
+ prev: A,
104
+ next: G,
105
+ "is-active": "_is-active_104d8_38"
106
+ }, J = {
107
+ $style: H
108
+ }, X = /* @__PURE__ */ $(R, [["__cssModules", J]]);
91
109
  export {
92
- H as default
110
+ X as default
93
111
  };
94
112
  //# sourceMappingURL=Paginate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paginate.js","sources":["../src/components/Paginate/Paginate.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, useCssModule } from 'vue';\n\n import Icon from '../Icon/Icon.vue';\n\n defineOptions({\n name: 'll-paginate',\n });\n\n export interface PaginateProps {\n /**\n * Current page number\n */\n currentPage?: number;\n /**\n * Total number of items in list\n */\n listLength?: number;\n /**\n * Number of items per page\n */\n pageSize?: number;\n }\n\n const props = withDefaults(defineProps<PaginateProps>(), {\n currentPage: 1,\n listLength: 1,\n pageSize: 50,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the page number changes.\n */\n (e: 'set-page', pageNumber: number): void;\n }>();\n\n const classes = useCssModule();\n\n const pages = computed(() => Math.ceil(props.listLength / props.pageSize));\n\n /**\n * Emits current page to list view.\n */\n function updatePage(currentPage: number) {\n emit('set-page', currentPage);\n }\n\n /**\n * Sets current page to next page\n */\n function next() {\n if (props.currentPage < pages.value) {\n updatePage(props.currentPage + 1);\n }\n }\n\n /**\n * Sets current page to previous page\n */\n function prev() {\n if (props.currentPage > 1) {\n updatePage(props.currentPage - 1);\n }\n }\n\n /**\n * Determines whether to show page\n * @returns {boolean} - should show page in pagination component\n */\n function shouldShowPage(page: number): boolean {\n const pageDiff = Math.abs(props.currentPage - page);\n\n if (\n pages.value < 10 ||\n page === 1 ||\n page === pages.value ||\n (props.currentPage < 6 && page < 8) ||\n (pages.value - props.currentPage < 5 && pages.value - page < 7) ||\n pageDiff < 3\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Determines whether to show the leading ellipsis\n * @returns {boolean} should show or not\n */\n function shouldShowFirstEllipsis(page: number): boolean {\n return pages.value > 9 && props.currentPage > 5 && page === 2;\n }\n\n /**\n * Determines whether to show the trailing ellipsis\n * @returns {boolean} should show or not\n */\n function shouldShowLastEllipsis(page: number): boolean {\n return pages.value > 9 && pages.value - props.currentPage > 4 && page === pages.value - 1;\n }\n</script>\n\n<template>\n <div class=\"stash-paginate tw-flex tw-justify-center\" data-test=\"stash-paginate\">\n <ul class=\"stash-paginate__list tw-flex\" :class=\"classes.pagination\" data-test=\"stash-paginate|list\">\n <button\n data-test=\"stash-paginate|prev-page\"\n :class=\"[classes.prev, { [classes['is-disabled']]: currentPage === 1 }]\"\n @click=\"prev\"\n >\n <Icon size=\"small\" name=\"chevron-left\" />\n </button>\n <template v-for=\"page in pages\">\n <button\n v-if=\"shouldShowFirstEllipsis(page)\"\n :key=\"`${page}-ellipsis`\"\n data-test=\"stash-paginate|first-ellipsis\"\n >\n &#x2026;\n </button>\n <button\n v-if=\"shouldShowPage(page)\"\n :key=\"page\"\n data-test=\"stash-paginate|page-number\"\n :class=\"{ [classes['is-active']]: currentPage === page }\"\n @click=\"updatePage(page)\"\n >\n {{ page }}\n </button>\n <button v-if=\"shouldShowLastEllipsis(page)\" :key=\"`${page}-ellipsis`\" data-test=\"stash-paginate|last-ellipsis\">\n &#x2026;\n </button>\n </template>\n <button\n data-test=\"stash-paginate|next-page\"\n :class=\"[classes.next, { [classes['is-disabled']]: currentPage === pages }]\"\n @click=\"next\"\n >\n <Icon size=\"small\" class=\"tw-rotate-180\" name=\"chevron-left\" />\n </button>\n </ul>\n </div>\n</template>\n\n<style module>\n .pagination {\n /* Todo: We shouldn't really be making assumptions about the outer spacing of the pagination component */\n margin-top: theme('spacing.12');\n z-index: 0;\n\n a,\n button {\n @apply tw-border tw-border-solid tw-border-ice-200;\n align-items: center;\n background-color: theme('colors.white');\n color: var(--color-blue-500);\n cursor: pointer;\n display: flex;\n height: theme('height.input');\n justify-content: center;\n margin: 0 0 0 -1px;\n width: theme('height.input');\n\n &.prev {\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-top-left-radius: theme('borderRadius.DEFAULT');\n }\n\n &.next {\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n border-top-right-radius: theme('borderRadius.DEFAULT');\n }\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n text-decoration: none;\n }\n\n &.is-active {\n background-color: var(--color-blue-500);\n color: theme('colors.white');\n pointer-events: none;\n z-index: theme('zIndex.control');\n }\n\n &:hover,\n &.is-active {\n @apply tw-border tw-border-solid tw-border-blue-500;\n position: relative;\n }\n\n &.is-disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","classes","useCssModule","pages","computed","updatePage","currentPage","next","prev","shouldShowPage","page","pageDiff","shouldShowFirstEllipsis","shouldShowLastEllipsis"],"mappings":";;;;;;;;;;;;;;;;AAwBE,UAAMA,IAAQC,GAMRC,IAAOC,GAOPC,IAAUC,EAAa,GAEvBC,IAAQC,EAAS,MAAM,KAAK,KAAKP,EAAM,aAAaA,EAAM,QAAQ,CAAC;AAKzE,aAASQ,EAAWC,GAAqB;AACvC,MAAAP,EAAK,YAAYO,CAAW;AAAA,IAAA;AAM9B,aAASC,IAAO;AACV,MAAAV,EAAM,cAAcM,EAAM,SACjBE,EAAAR,EAAM,cAAc,CAAC;AAAA,IAClC;AAMF,aAASW,IAAO;AACV,MAAAX,EAAM,cAAc,KACXQ,EAAAR,EAAM,cAAc,CAAC;AAAA,IAClC;AAOF,aAASY,EAAeC,GAAuB;AAC7C,YAAMC,IAAW,KAAK,IAAId,EAAM,cAAca,CAAI;AAGhD,aAAAP,EAAM,QAAQ,MACdO,MAAS,KACTA,MAASP,EAAM,SACdN,EAAM,cAAc,KAAKa,IAAO,KAChCP,EAAM,QAAQN,EAAM,cAAc,KAAKM,EAAM,QAAQO,IAAO,KAC7DC,IAAW;AAAA,IAKN;AAOT,aAASC,EAAwBF,GAAuB;AACtD,aAAOP,EAAM,QAAQ,KAAKN,EAAM,cAAc,KAAKa,MAAS;AAAA,IAAA;AAO9D,aAASG,EAAuBH,GAAuB;AAC9C,aAAAP,EAAM,QAAQ,KAAKA,EAAM,QAAQN,EAAM,cAAc,KAAKa,MAASP,EAAM,QAAQ;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Paginate.js","sources":["../src/components/Paginate/Paginate.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, toRef, useCssModule } from 'vue';\n\n import usePaginationStats from '../../composables/usePaginationStats/usePaginationStats';\n import { t } from '../../locale';\n import Icon from '../Icon/Icon.vue';\n\n defineOptions({\n name: 'll-paginate',\n });\n\n export interface PaginateProps {\n /**\n * Current page number\n */\n currentPage?: number;\n /**\n * Total number of items in list\n */\n listLength?: number;\n /**\n * Number of items per page\n */\n pageSize?: number;\n /*\n * Optional override for the next button disabled state\n */\n isNextDisabled?: boolean;\n /**\n * Variant of the pagination component\n */\n variant?: 'standard' | 'stats';\n }\n\n const props = withDefaults(defineProps<PaginateProps>(), {\n currentPage: 1,\n listLength: 1,\n pageSize: 50,\n isNextDisabled: false,\n variant: 'standard',\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the page number changes.\n */\n (e: 'set-page', pageNumber: number): void;\n }>();\n\n const classes = useCssModule();\n\n const pageCount = computed(() => Math.ceil(props.listLength / props.pageSize));\n\n const pageStats =\n props.variant === 'stats'\n ? usePaginationStats({\n currentPage: toRef(() => props.currentPage),\n pageSize: toRef(() => props.pageSize),\n totalItems: toRef(() => props.listLength),\n })\n : null;\n\n /**\n * Emits current page to list view.\n */\n function updatePage(currentPage: number) {\n emit('set-page', currentPage);\n }\n\n /**\n * Sets current page to next page\n */\n function next() {\n if (props.currentPage < pageCount.value) {\n updatePage(props.currentPage + 1);\n }\n }\n\n /**\n * Sets current page to previous page\n */\n function prev() {\n if (props.currentPage > 1) {\n updatePage(props.currentPage - 1);\n }\n }\n\n /**\n * Determines whether to show page\n * @returns {boolean} - should show page in pagination component\n */\n function shouldShowPage(page: number): boolean {\n const pageDiff = Math.abs(props.currentPage - page);\n\n if (\n pageCount.value < 10 ||\n page === 1 ||\n page === pageCount.value ||\n (props.currentPage < 6 && page < 8) ||\n (pageCount.value - props.currentPage < 5 && pageCount.value - page < 7) ||\n pageDiff < 3\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Determines whether to show the leading ellipsis\n * @returns {boolean} should show or not\n */\n function shouldShowFirstEllipsis(page: number): boolean {\n return pageCount.value > 9 && props.currentPage > 5 && page === 2;\n }\n\n /**\n * Determines whether to show the trailing ellipsis\n * @returns {boolean} should show or not\n */\n function shouldShowLastEllipsis(page: number): boolean {\n return pageCount.value > 9 && pageCount.value - props.currentPage > 4 && page === pageCount.value - 1;\n }\n</script>\n\n<template>\n <div class=\"stash-paginate tw-flex tw-justify-center\" data-test=\"stash-paginate\">\n <ul\n class=\"stash-paginate__list tw-flex tw-items-center\"\n :class=\"classes.pagination\"\n data-test=\"stash-paginate|list\"\n >\n <button\n :aria-label=\"t('ll.previous')\"\n data-test=\"stash-paginate|prev-page\"\n :class=\"classes.prev\"\n :disabled=\"props.currentPage === 1\"\n @click=\"prev\"\n >\n <Icon size=\"small\" name=\"chevron-left\" />\n </button>\n <span v-if=\"props.variant === 'stats'\" class=\"tw-mx-3 tw-text-ice-900\">\n {{ t('ll.pageStats', pageStats) }}\n </span>\n <template v-for=\"page in pageCount\" v-else>\n <button\n v-if=\"shouldShowFirstEllipsis(page)\"\n :key=\"`${page}-ellipsis`\"\n class=\"tw-pointer-events-none\"\n data-test=\"stash-paginate|first-ellipsis\"\n tabindex=\"-1\"\n >\n &#x2026;\n </button>\n <button\n v-if=\"shouldShowPage(page)\"\n :key=\"page\"\n data-test=\"stash-paginate|page-number\"\n :class=\"{ [classes['is-active']]: props.currentPage === page }\"\n @click=\"updatePage(page)\"\n >\n {{ page }}\n </button>\n <button\n v-if=\"shouldShowLastEllipsis(page)\"\n :key=\"`${page}-ellipsis`\"\n class=\"tw-pointer-events-none\"\n data-test=\"stash-paginate|last-ellipsis\"\n tabindex=\"-1\"\n >\n &#x2026;\n </button>\n </template>\n <button\n :aria-label=\"t('ll.next')\"\n data-test=\"stash-paginate|next-page\"\n :class=\"classes.next\"\n :disabled=\"props.isNextDisabled || props.currentPage === pageCount\"\n @click=\"next\"\n >\n <Icon size=\"small\" class=\"tw-rotate-180\" name=\"chevron-left\" />\n </button>\n </ul>\n </div>\n</template>\n\n<style module>\n .pagination {\n /* Todo: We shouldn't really be making assumptions about the outer spacing of the pagination component */\n margin-top: theme('spacing.12');\n z-index: 0;\n\n a,\n button {\n @apply tw-border tw-border-solid tw-border-ice-200;\n align-items: center;\n background-color: theme('colors.white');\n color: var(--color-blue-500);\n cursor: pointer;\n display: flex;\n height: theme('height.input');\n justify-content: center;\n margin: 0 0 0 -1px;\n width: theme('height.input');\n\n &.prev {\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-top-left-radius: theme('borderRadius.DEFAULT');\n }\n\n &.next {\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n border-top-right-radius: theme('borderRadius.DEFAULT');\n }\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n text-decoration: none;\n }\n\n &.is-active {\n background-color: var(--color-blue-500);\n color: theme('colors.white');\n pointer-events: none;\n z-index: theme('zIndex.control');\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &:not(:disabled):hover,\n &:not(:disabled):focus,\n &.is-active {\n @apply tw-border tw-border-solid tw-border-blue-500;\n position: relative;\n }\n\n &.is-active:focus {\n @apply tw-bg-blue-700 tw-border-blue-700;\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","classes","useCssModule","pageCount","computed","pageStats","usePaginationStats","toRef","updatePage","currentPage","next","prev","shouldShowPage","page","pageDiff","shouldShowFirstEllipsis","shouldShowLastEllipsis"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkCE,UAAMA,IAAQC,GAQRC,IAAOC,GAOPC,IAAUC,EAAa,GAEvBC,IAAYC,EAAS,MAAM,KAAK,KAAKP,EAAM,aAAaA,EAAM,QAAQ,CAAC,GAEvEQ,IACJR,EAAM,YAAY,UACdS,EAAmB;AAAA,MACjB,aAAaC,EAAM,MAAMV,EAAM,WAAW;AAAA,MAC1C,UAAUU,EAAM,MAAMV,EAAM,QAAQ;AAAA,MACpC,YAAYU,EAAM,MAAMV,EAAM,UAAU;AAAA,IACzC,CAAA,IACD;AAKN,aAASW,EAAWC,GAAqB;AACvC,MAAAV,EAAK,YAAYU,CAAW;AAAA,IAAA;AAM9B,aAASC,IAAO;AACV,MAAAb,EAAM,cAAcM,EAAU,SACrBK,EAAAX,EAAM,cAAc,CAAC;AAAA,IAClC;AAMF,aAASc,IAAO;AACV,MAAAd,EAAM,cAAc,KACXW,EAAAX,EAAM,cAAc,CAAC;AAAA,IAClC;AAOF,aAASe,EAAeC,GAAuB;AAC7C,YAAMC,IAAW,KAAK,IAAIjB,EAAM,cAAcgB,CAAI;AAGhD,aAAAV,EAAU,QAAQ,MAClBU,MAAS,KACTA,MAASV,EAAU,SAClBN,EAAM,cAAc,KAAKgB,IAAO,KAChCV,EAAU,QAAQN,EAAM,cAAc,KAAKM,EAAU,QAAQU,IAAO,KACrEC,IAAW;AAAA,IAKN;AAOT,aAASC,EAAwBF,GAAuB;AACtD,aAAOV,EAAU,QAAQ,KAAKN,EAAM,cAAc,KAAKgB,MAAS;AAAA,IAAA;AAOlE,aAASG,EAAuBH,GAAuB;AAC9C,aAAAV,EAAU,QAAQ,KAAKA,EAAU,QAAQN,EAAM,cAAc,KAAKgB,MAASV,EAAU,QAAQ;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -30,18 +30,24 @@ declare const _default: DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VL
30
30
  currentPage: number;
31
31
  listLength: number;
32
32
  pageSize: number;
33
+ isNextDisabled: boolean;
34
+ variant: string;
33
35
  }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
34
36
  "set-page": (pageNumber: number) => void;
35
37
  }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PaginateProps>, {
36
38
  currentPage: number;
37
39
  listLength: number;
38
40
  pageSize: number;
41
+ isNextDisabled: boolean;
42
+ variant: string;
39
43
  }>>> & Readonly<{
40
44
  "onSet-page"?: ((pageNumber: number) => any) | undefined;
41
45
  }>, {
46
+ variant: "standard" | "stats";
42
47
  currentPage: number;
43
- listLength: number;
44
48
  pageSize: number;
49
+ listLength: number;
50
+ isNextDisabled: boolean;
45
51
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
46
52
  export default _default;
47
53
 
@@ -58,6 +64,11 @@ export declare interface PaginateProps {
58
64
  * Number of items per page
59
65
  */
60
66
  pageSize?: number;
67
+ isNextDisabled?: boolean;
68
+ /**
69
+ * Variant of the pagination component
70
+ */
71
+ variant?: 'standard' | 'stats';
61
72
  }
62
73
 
63
74
  export { }
package/dist/PlaidLink.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as y, computed as h, ref as c, openBlock as E, createElementBlock as w, renderSlot as x } from "vue";
1
+ import { defineComponent as y, computed as h, ref as c, createElementBlock as E, openBlock as w, renderSlot as x } from "vue";
2
2
  import s from "@leaflink/snitch";
3
3
  import P from "./usePlaidLink.js";
4
4
  const L = /* @__PURE__ */ y({
@@ -54,7 +54,7 @@ const L = /* @__PURE__ */ y({
54
54
  }
55
55
  return d({
56
56
  handleClick: l
57
- }), (e, o) => (E(), w("span", {
57
+ }), (e, o) => (w(), E("span", {
58
58
  "data-test": "stash-plaid-link",
59
59
  onClick: l
60
60
  }, [
@@ -1,4 +1,4 @@
1
- import { defineComponent as u, useCssModule as _, computed as s, openBlock as d, createBlock as f, resolveDynamicComponent as w, mergeProps as m, unref as p, withCtx as h, createElementVNode as e, createVNode as o, toDisplayString as n } from "vue";
1
+ import { defineComponent as u, useCssModule as _, computed as s, createBlock as d, openBlock as f, resolveDynamicComponent as w, mergeProps as m, unref as p, withCtx as h, createElementVNode as e, createVNode as o, toDisplayString as n } from "vue";
2
2
  import r from "./Icon.js";
3
3
  import { _ as x } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
4
  const b = { class: "tw-flex tw-items-center tw-gap-3" }, k = { class: "tw-flex tw-items-center tw-justify-center tw-rounded tw-bg-blue-100 tw-p-3" }, v = { class: "tw-flex-1" }, g = { class: "tw-text-blue-500" }, y = { class: "tw-text-xs tw-font-normal tw-text-ice-700 lg:tw-mb-0" }, C = /* @__PURE__ */ u({
@@ -16,7 +16,7 @@ const b = { class: "tw-flex tw-items-center tw-gap-3" }, k = { class: "tw-flex t
16
16
  } : t.href ? {
17
17
  href: t.href
18
18
  } : {});
19
- return (B, D) => (d(), f(w(l.value), m(a.value, {
19
+ return (B, D) => (f(), d(w(l.value), m(a.value, {
20
20
  class: ["stash-quick-action tw-rounded tw-p-3 tw-shadow", p(i).root],
21
21
  "data-test": "stash-quick-action"
22
22
  }), {
@@ -22,6 +22,11 @@ export default _default;
22
22
 
23
23
  declare type IconName = (typeof iconNames)[number];
24
24
 
25
+ /**
26
+ * To add a new icon, follow these steps:
27
+ *
28
+ * https://github.com/LeafLink/stash/blob/main/CONTRIBUTING.md#adding-a-new-icon
29
+ */
25
30
  declare const iconNames: readonly ["action-dots", "activity", "alert-bell", "archive", "arrow-down", "arrow-left", "arrow-right", "arrow-up", "badge-discount", "badge-seller-elite", "badge-seller-power", "badge-seller-verified", "book-customer", "building-office", "bulk-add", "calendar-reschedule", "calendar", "camera", "caret-down", "caret-up", "change-log", "check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "circle-check", "circle-close", "circle-dollar", "circle-empty", "circle-info", "circle-partial", "circle-percent", "circle-question-mark", "circle-status", "circle-warning", "clipboard-checkmark", "clipboard-inventory", "close", "combine", "compass", "contact", "contract", "copy", "credit-card", "credit-profile", "dashboard", "document-accept", "document-invoice", "document-recieved", "document-sent", "document-view", "document", "dolly", "download", "edit", "ellipsis", "envelope-open", "envelope", "equals", "export", "figma", "file-csv", "file", "filter-funnel", "filter-line", "flag", "folder", "folder-bar-graph", "folder-orders", "font-bold", "font-clear-format", "font-italic", "font-underline", "gear", "github", "globe", "graph-bar-chart", "graph-line-chart", "graph-pie-chart", "hazard", "hazard-outline", "headset-agent", "headset-mic", "heart-filled", "heart-outline", "help-question-mark", "hide", "history", "home", "image", "import", "keyboard-return", "tier-1", "tier-2", "tier-3", "license-approved", "license-certificate", "lightbulb", "link-add", "link-unlink", "link", "list-bulleted", "list-items", "list-numbered", "loading-big", "loading-empty", "loading-small", "location", "lock-unlock", "lock", "logo-facebook", "logo-instagram", "logo-linkedin", "logo-ll", "logo-metrc", "logo-plaid", "logo-x", "logo-youtube", "logout", "medical", "megaphone-sound", "megaphone", "menu", "message-dispute", "message-reply", "message", "minus", "mj-leaf", "money", "note-add", "note", "open-in-new", "paperclip", "paper-plane", "performance", "phone", "plus", "preview", "print", "product-menu-manage", "product-menu-search", "product-menu", "queue-add", "queue", "recent", "refresh", "register", "reply", "report-download", "sample", "save", "scale-law", "scale-weight", "search", "seed-cycle", "share", "shop-bag-browse", "shop-bag-reorder", "shop-bag", "shop-basket", "shop-cart-add", "shop-cart", "show", "sign-dollar", "sign-percent", "sort", "split", "star-filled", "star-outline", "storefront", "submit", "swap-horizontal", "swap-vertical", "tag-star", "tag", "test-results", "ticket-star", "ticket", "tool-dropper", "tool-wrench", "transfer", "trashcan", "truck", "upload", "user-add", "user-admin", "user-check", "user", "view-card", "view-detailed", "view-list", "warehouse", "working"];
26
31
 
27
32
  export declare interface QuickActionProps {
package/dist/Radio.js CHANGED
@@ -1,4 +1,4 @@
1
- import { useCssModule as d, openBlock as i, createElementBlock as u, normalizeClass as a, withDirectives as c, createElementVNode as s, mergeProps as _, vModelRadio as m, toDisplayString as h } from "vue";
1
+ import { useCssModule as d, createElementBlock as i, openBlock as u, normalizeClass as a, withDirectives as c, createElementVNode as s, mergeProps as _, vModelRadio as m, toDisplayString as h } from "vue";
2
2
  import { _ as f } from "./_plugin-vue_export-helper-CHgC5LLL.js";
3
3
  const p = "_root_ul6uq_2", b = "_label_ul6uq_7", k = "_error_ul6uq_40", y = "_input_ul6uq_45", g = {
4
4
  root: p,
@@ -69,7 +69,7 @@ const p = "_root_ul6uq_2", b = "_label_ul6uq_7", k = "_error_ul6uq_40", y = "_in
69
69
  }
70
70
  }, w = ["id"], E = ["for"];
71
71
  function V(e, l, t, r, S, o) {
72
- return i(), u("div", {
72
+ return u(), i("div", {
73
73
  class: a(["stash-radio", [r.classes.root, { error: t.hasError }]]),
74
74
  "data-test": "ll-radio"
75
75
  }, [
@@ -1,8 +1,8 @@
1
- import { defineComponent as h, inject as k, useCssModule as V, openBlock as o, createElementBlock as n, normalizeClass as p, unref as e, Fragment as B, renderList as g, createElementVNode as i, toDisplayString as $, provide as T, computed as v, createBlock as R, mergeProps as M, withCtx as G, renderSlot as C, resolveDynamicComponent as E } from "vue";
1
+ import { defineComponent as h, inject as k, useCssModule as V, createElementBlock as n, openBlock as o, normalizeClass as p, unref as e, Fragment as B, renderList as g, createElementVNode as i, toDisplayString as $, provide as T, computed as v, createBlock as R, mergeProps as M, withCtx as G, renderSlot as C, resolveDynamicComponent as E } from "vue";
2
2
  import W from "lodash-es/uniqueId";
3
3
  import { R as y } from "./RadioGroup.keys-CqfiKkNz.js";
4
4
  import { _ as x } from "./_plugin-vue_export-helper-CHgC5LLL.js";
5
- import { _ as j } from "./Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js";
5
+ import { _ as j } from "./Field.vue_vue_type_script_setup_true_lang-DRaKs9Lm.js";
6
6
  const D = ["id", "name", "value", "checked", "disabled"], O = ["for"], N = /* @__PURE__ */ h({
7
7
  __name: "VariantButton",
8
8
  setup(u) {
package/dist/RadioNew.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as p, useCssModule as v, openBlock as _, createElementBlock as f, normalizeClass as d, unref as s, createElementVNode as i, toDisplayString as $, withDirectives as W, vShow as C, renderSlot as y, inject as M, computed as r, createBlock as x, resolveDynamicComponent as N, withCtx as D } from "vue";
1
+ import { defineComponent as p, useCssModule as v, createElementBlock as f, openBlock as _, normalizeClass as d, unref as s, createElementVNode as i, toDisplayString as $, withDirectives as W, vShow as C, renderSlot as y, inject as M, computed as r, createBlock as x, resolveDynamicComponent as N, withCtx as D } from "vue";
2
2
  import { R as E } from "./RadioGroup.keys-CqfiKkNz.js";
3
3
  import { _ as h } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
4
  const R = ["id", "name", "value", "checked", "disabled"], T = ["for"], g = /* @__PURE__ */ p({
@@ -1,4 +1,4 @@
1
- import { defineComponent as o, useSlots as n, openBlock as a, createElementBlock as r, renderSlot as s, createVNode as l } from "vue";
1
+ import { defineComponent as o, useSlots as n, createElementBlock as a, openBlock as r, renderSlot as s, createVNode as l } from "vue";
2
2
  import m from "./Icon.js";
3
3
  const p = {
4
4
  "data-test": "stash-range-input",
@@ -9,7 +9,7 @@ const p = {
9
9
  const t = n();
10
10
  if (!(!!t.min && !!t.max))
11
11
  throw new Error("RangeInput: please provide slots for min and max values.");
12
- return (e, u) => (a(), r("div", p, [
12
+ return (e, u) => (r(), a("div", p, [
13
13
  s(e.$slots, "min"),
14
14
  l(m, {
15
15
  name: "transfer",
package/dist/SearchBar.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as C, useSlots as S, ref as i, computed as V, openBlock as h, createBlock as p, normalizeClass as m, withKeys as s, createSlots as I, withCtx as n, createVNode as u, createCommentVNode as T, unref as K, renderSlot as L } from "vue";
1
+ import { defineComponent as C, useSlots as S, ref as i, computed as V, createBlock as h, openBlock as p, withKeys as s, normalizeClass as m, createSlots as I, withCtx as n, createCommentVNode as T, createVNode as u, unref as K, renderSlot as L } from "vue";
2
2
  import { t as f } from "./locale.js";
3
3
  import b from "./Button.js";
4
4
  import v from "./Icon.js";
@@ -28,7 +28,7 @@ const N = /* @__PURE__ */ C({
28
28
  function y() {
29
29
  l("update:model-value", a.value);
30
30
  }
31
- return (r, t) => (h(), p(W, {
31
+ return (r, t) => (p(), h(W, {
32
32
  ref_key: "stashInputRef",
33
33
  ref: d,
34
34
  modelValue: a.value,
@@ -44,7 +44,7 @@ const N = /* @__PURE__ */ C({
44
44
  onKeyup: s(o, ["enter"])
45
45
  }, I({
46
46
  append: n(() => [
47
- a.value ? (h(), p(b, {
47
+ a.value ? (p(), h(b, {
48
48
  key: 0,
49
49
  class: "stash-search-bar__clear-button",
50
50
  disabled: e.isLoading,
@@ -91,7 +91,7 @@ const N = /* @__PURE__ */ C({
91
91
  } : void 0
92
92
  ]), 1032, ["modelValue", "class", "label", "placeholder", "hint-text"]));
93
93
  }
94
- }), q = /* @__PURE__ */ w(N, [["__scopeId", "data-v-43ef4e0f"]]);
94
+ }), q = /* @__PURE__ */ w(N, [["__scopeId", "data-v-005a7e1b"]]);
95
95
  export {
96
96
  q as default
97
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.js","sources":["../src/components/SearchBar/SearchBar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, ref, useSlots } from 'vue';\n\n import { t } from '../../locale';\n import Button from '../Button/Button.vue';\n import Icon from '../Icon/Icon.vue';\n import Input from '../Input/Input.vue';\n\n export interface SearchBarProps {\n /**\n * Indicates loading activity (for example async request) that should prevent search\n */\n isLoading?: boolean;\n\n /**\n * Sets a visual indicator that the search is active\n */\n isWorking?: boolean;\n\n /**\n * The search term\n */\n modelValue?: string;\n\n /**\n * Placeholder text for the input\n */\n placeholder?: string;\n\n /**\n * Label for search bar\n */\n label?: string;\n\n /**\n * Text below the input\n */\n hintText?: string;\n }\n\n defineOptions({\n name: 'll-search-bar',\n });\n\n const props = withDefaults(defineProps<SearchBarProps>(), {\n isLoading: false,\n isWorking: false,\n modelValue: '',\n placeholder: t('ll.search'),\n label: t('ll.search'),\n hintText: undefined,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when searching or clearing the search input\n */\n (e: 'search', searchTerm: string): void;\n\n /**\n * Emitted when the search term changes\n */\n (e: 'update:model-value', searchTerm: string): void;\n }>();\n\n const slots = useSlots();\n const searchTerm = ref(props.modelValue);\n const stashInputRef = ref<InstanceType<typeof Input>>();\n\n const searchTabIndex = computed(() => (searchTerm.value ? 0 : -1));\n\n function onSearch() {\n if (props.isLoading || props.isWorking) {\n return;\n }\n emit('search', searchTerm.value);\n }\n\n function clearSearchTerm() {\n searchTerm.value = '';\n emit('search', '');\n emit('update:model-value', '');\n\n stashInputRef.value?.inputEl?.focus();\n }\n\n function handleChange() {\n emit('update:model-value', searchTerm.value);\n }\n</script>\n\n<template>\n <Input\n ref=\"stashInputRef\"\n v-model=\"searchTerm\"\n class=\"stash-search-bar\"\n :class=\"[{ 'stash-search-bar--value': !!searchTerm }]\"\n :label=\"props.label\"\n :placeholder=\"props.placeholder\"\n :hint-text=\"props.hintText\"\n data-test=\"stash-search-bar\"\n @update:model-value=\"handleChange\"\n @keyup.enter=\"onSearch\"\n >\n <template #append>\n <Button\n v-if=\"searchTerm\"\n class=\"stash-search-bar__clear-button\"\n :disabled=\"props.isLoading\"\n data-test=\"stash-search-bar|clear-button\"\n @click=\"clearSearchTerm\"\n @keyup.enter=\"clearSearchTerm\"\n @keyup.space=\"clearSearchTerm\"\n >\n <Icon name=\"close\" />\n </Button>\n <Button\n :tabindex=\"searchTabIndex\"\n data-test=\"stash-search-bar|search-button\"\n :disabled=\"props.isLoading\"\n class=\"stash-search-bar__search-button\"\n @click=\"onSearch\"\n @keyup.enter=\"onSearch\"\n @keyup.space=\"onSearch\"\n >\n <Icon :class=\"{ 'tw-animate-spin': props.isWorking }\" :name=\"props.isWorking ? 'loading-empty' : 'search'\" />\n </Button>\n </template>\n <template v-if=\"slots.hint\" #hint>\n <!-- @slot Overrides the Input hint-text prop -->\n <slot name=\"hint\"></slot>\n </template>\n </Input>\n</template>\n\n<style scoped>\n .stash-search-bar :deep(input) {\n text-overflow: ellipsis;\n }\n\n .stash-search-bar--value :deep(input) {\n padding-right: 72px;\n }\n\n .stash-search-bar :deep(input):hover {\n border: 1px solid var(--color-blue-500);\n }\n\n .stash-search-bar :deep(.stash-input-append) {\n display: flex;\n justify-content: flex-end;\n width: 72px; /* double the the default width of 36px */\n overflow: visible;\n }\n\n .stash-search-bar__clear-button {\n color: var(--color-ice-700);\n height: theme('spacing.9');\n min-width: theme('spacing.9');\n width: theme('spacing.9');\n background: none;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:focus-visible {\n outline: none;\n box-shadow: none;\n\n & svg {\n border-radius: theme(borderRadius.DEFAULT);\n\n @apply tw-ring-4 tw-ring-blue-500 tw-ring-opacity-15;\n }\n }\n }\n\n .stash-search-bar__clear-button:disabled {\n color: var(--color-ice-500);\n cursor: default;\n }\n\n .stash-search-bar__search-button {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n height: theme('spacing.9');\n min-width: theme('spacing.9');\n width: theme('spacing.9');\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:focus {\n box-shadow: none;\n }\n\n &:disabled {\n border-color: var(--color-ice-500);\n }\n\n &:hover {\n background-color: var(--color-blue-600);\n }\n\n &:active {\n background-color: var(--color-blue-700);\n }\n\n &:focus-visible {\n outline: none;\n border: 1px solid var(--color-blue-900);\n /* Simulating a bigger border so the design does not break */\n box-shadow: inset 0 0 0 1px var(--color-blue-900), 0 0 0 4px rgb(0 114 240 / 15%); /* Unfortunatelly, we have to use RGBA to make the shadow transparent, this is blue-500 */\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","slots","useSlots","searchTerm","ref","stashInputRef","searchTabIndex","computed","onSearch","clearSearchTerm","_b","_a","handleChange"],"mappings":";;;;;;;;;;;;;;;;;;;AA4CE,UAAMA,IAAQC,GASRC,IAAOC,GAYPC,IAAQC,EAAS,GACjBC,IAAaC,EAAIP,EAAM,UAAU,GACjCQ,IAAgBD,EAAgC,GAEhDE,IAAiBC,EAAS,MAAOJ,EAAW,QAAQ,IAAI,EAAG;AAEjE,aAASK,IAAW;AACd,MAAAX,EAAM,aAAaA,EAAM,aAGxBE,EAAA,UAAUI,EAAW,KAAK;AAAA,IAAA;AAGjC,aAASM,IAAkB;;AACzB,MAAAN,EAAW,QAAQ,IACnBJ,EAAK,UAAU,EAAE,GACjBA,EAAK,sBAAsB,EAAE,IAEfW,KAAAC,IAAAN,EAAA,UAAA,gBAAAM,EAAO,YAAP,QAAAD,EAAgB;AAAA,IAAM;AAGtC,aAASE,IAAe;AACjB,MAAAb,EAAA,sBAAsBI,EAAW,KAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SearchBar.js","sources":["../src/components/SearchBar/SearchBar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, ref, useSlots } from 'vue';\n\n import { t } from '../../locale';\n import Button from '../Button/Button.vue';\n import Icon from '../Icon/Icon.vue';\n import Input from '../Input/Input.vue';\n\n export interface SearchBarProps {\n /**\n * Indicates loading activity (for example async request) that should prevent search\n */\n isLoading?: boolean;\n\n /**\n * Sets a visual indicator that the search is active\n */\n isWorking?: boolean;\n\n /**\n * The search term\n */\n modelValue?: string;\n\n /**\n * Placeholder text for the input\n */\n placeholder?: string;\n\n /**\n * Label for search bar\n */\n label?: string;\n\n /**\n * Text below the input\n */\n hintText?: string;\n }\n\n defineOptions({\n name: 'll-search-bar',\n });\n\n const props = withDefaults(defineProps<SearchBarProps>(), {\n isLoading: false,\n isWorking: false,\n modelValue: '',\n placeholder: t('ll.search'),\n label: t('ll.search'),\n hintText: undefined,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when searching or clearing the search input\n */\n (e: 'search', searchTerm: string): void;\n\n /**\n * Emitted when the search term changes\n */\n (e: 'update:model-value', searchTerm: string): void;\n }>();\n\n const slots = useSlots();\n const searchTerm = ref(props.modelValue);\n const stashInputRef = ref<InstanceType<typeof Input>>();\n\n const searchTabIndex = computed(() => (searchTerm.value ? 0 : -1));\n\n function onSearch() {\n if (props.isLoading || props.isWorking) {\n return;\n }\n emit('search', searchTerm.value);\n }\n\n function clearSearchTerm() {\n searchTerm.value = '';\n emit('search', '');\n emit('update:model-value', '');\n\n stashInputRef.value?.inputEl?.focus();\n }\n\n function handleChange() {\n emit('update:model-value', searchTerm.value);\n }\n</script>\n\n<template>\n <Input\n ref=\"stashInputRef\"\n v-model=\"searchTerm\"\n class=\"stash-search-bar\"\n :class=\"[{ 'stash-search-bar--value': !!searchTerm }]\"\n :label=\"props.label\"\n :placeholder=\"props.placeholder\"\n :hint-text=\"props.hintText\"\n data-test=\"stash-search-bar\"\n @update:model-value=\"handleChange\"\n @keyup.enter=\"onSearch\"\n >\n <template #append>\n <Button\n v-if=\"searchTerm\"\n class=\"stash-search-bar__clear-button\"\n :disabled=\"props.isLoading\"\n data-test=\"stash-search-bar|clear-button\"\n @click=\"clearSearchTerm\"\n @keyup.enter=\"clearSearchTerm\"\n @keyup.space=\"clearSearchTerm\"\n >\n <Icon name=\"close\" />\n </Button>\n <Button\n :tabindex=\"searchTabIndex\"\n data-test=\"stash-search-bar|search-button\"\n :disabled=\"props.isLoading\"\n class=\"stash-search-bar__search-button\"\n @click=\"onSearch\"\n @keyup.enter=\"onSearch\"\n @keyup.space=\"onSearch\"\n >\n <Icon :class=\"{ 'tw-animate-spin': props.isWorking }\" :name=\"props.isWorking ? 'loading-empty' : 'search'\" />\n </Button>\n </template>\n <template v-if=\"slots.hint\" #hint>\n <!-- @slot Overrides the Input hint-text prop -->\n <slot name=\"hint\"></slot>\n </template>\n </Input>\n</template>\n\n<style scoped>\n .stash-search-bar :deep(input) {\n text-overflow: ellipsis;\n }\n\n .stash-search-bar--value :deep(input) {\n padding-right: 72px;\n }\n\n .stash-search-bar :deep(input):hover {\n border: 1px solid var(--color-blue-500);\n }\n\n .stash-search-bar :deep(.stash-input-append) {\n display: flex;\n justify-content: flex-end;\n width: 72px; /* double the the default width of 36px */\n overflow: visible;\n }\n\n .stash-search-bar__clear-button {\n color: var(--color-ice-700);\n height: theme('spacing.9');\n min-width: theme('spacing.9');\n width: theme('spacing.9');\n background: none;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:focus-visible {\n outline: none;\n box-shadow: none;\n\n & svg {\n border-radius: theme(borderRadius.DEFAULT);\n\n @apply tw-ring-4 tw-ring-blue-500 tw-ring-opacity-15;\n }\n }\n }\n\n .stash-search-bar__clear-button:disabled {\n color: var(--color-ice-500);\n cursor: default;\n }\n\n .stash-search-bar__search-button {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n height: theme('spacing.9');\n min-width: theme('spacing.9');\n width: theme('spacing.9');\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:focus {\n box-shadow: none;\n }\n\n &:disabled {\n border-color: var(--color-ice-500);\n }\n\n &:hover {\n background-color: var(--color-blue-600);\n }\n\n &:active {\n background-color: var(--color-blue-700);\n }\n\n &:focus-visible {\n outline: none;\n border: 1px solid var(--color-blue-900);\n /* Simulating a bigger border so the design does not break */\n box-shadow:\n inset 0 0 0 1px var(--color-blue-900),\n 0 0 0 4px rgb(0 114 240 / 15%); /* Unfortunatelly, we have to use RGBA to make the shadow transparent, this is blue-500 */\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","slots","useSlots","searchTerm","ref","stashInputRef","searchTabIndex","computed","onSearch","clearSearchTerm","_b","_a","handleChange"],"mappings":";;;;;;;;;;;;;;;;;;;AA4CE,UAAMA,IAAQC,GASRC,IAAOC,GAYPC,IAAQC,EAAS,GACjBC,IAAaC,EAAIP,EAAM,UAAU,GACjCQ,IAAgBD,EAAgC,GAEhDE,IAAiBC,EAAS,MAAOJ,EAAW,QAAQ,IAAI,EAAG;AAEjE,aAASK,IAAW;AACd,MAAAX,EAAM,aAAaA,EAAM,aAGxBE,EAAA,UAAUI,EAAW,KAAK;AAAA,IAAA;AAGjC,aAASM,IAAkB;;AACzB,MAAAN,EAAW,QAAQ,IACnBJ,EAAK,UAAU,EAAE,GACjBA,EAAK,sBAAsB,EAAE,IAEfW,KAAAC,IAAAN,EAAA,UAAA,gBAAAM,EAAO,YAAP,QAAAD,EAAgB;AAAA,IAAM;AAGtC,aAASE,IAAe;AACjB,MAAAb,EAAA,sBAAsBI,EAAW,KAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/Select.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineComponent as Ce, useAttrs as Oe, useSlots as Ie, ref as c, computed as h, watch as U, nextTick as Y, onMounted as Me, onUnmounted as Fe, openBlock as r, createBlock as V, mergeProps as Re, unref as y, createSlots as $e, withCtx as k, createElementVNode as d, toDisplayString as g, createElementBlock as f, Fragment as K, renderList as G, withDirectives as M, normalizeClass as F, withKeys as oe, createCommentVNode as R, renderSlot as j, createTextVNode as $, withModifiers as P, createVNode as S, Teleport as Pe, Transition as ze, normalizeStyle as He, vModelText as Ne, vShow as J } from "vue";
1
+ import { defineComponent as Ce, useAttrs as Oe, useSlots as Ie, ref as c, computed as h, watch as U, nextTick as Y, onMounted as Me, onUnmounted as Fe, createBlock as V, openBlock as r, mergeProps as Re, unref as y, createSlots as $e, withCtx as k, createElementVNode as d, toDisplayString as g, withDirectives as M, createElementBlock as f, Fragment as K, renderList as G, withKeys as oe, normalizeClass as F, createCommentVNode as R, renderSlot as j, createTextVNode as $, withModifiers as P, createVNode as S, Teleport as Pe, Transition as ze, normalizeStyle as He, vModelText as Ne, vShow as J } from "vue";
2
2
  import { u as Ae, a as De, f as Le, o as Ue, s as Ve } from "./floating-ui.vue-pzUuloyX.js";
3
3
  import Ke from "@leaflink/snitch";
4
4
  import Ge from "lodash-es/debounce";
@@ -12,7 +12,7 @@ import Je from "./directives/clickoutside.js";
12
12
  import { D as Qe } from "./MenusPlugin-Bk6UW6o9.js";
13
13
  import ie from "./Chip.js";
14
14
  import z from "./Icon.js";
15
- import { _ as Ze } from "./Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js";
15
+ import { _ as Ze } from "./Field.vue_vue_type_script_setup_true_lang-DRaKs9Lm.js";
16
16
  import { _ as et } from "./_plugin-vue_export-helper-CHgC5LLL.js";
17
17
  const tt = { class: "tw-flex tw-h-input tw-items-center tw-text-sm" }, lt = ["id", "aria-labelledby"], at = ["id", "aria-errormessage", "aria-invalid", "disabled", "multiple", "name"], st = ["selected", "value"], nt = ["aria-controls", "aria-expanded", "aria-label", "aria-disabled"], ot = ["id"], rt = ["onKeypress", "onMousedown"], it = {
18
18
  key: 0,
@@ -179,12 +179,12 @@ const tt = { class: "tw-flex tw-h-input tw-items-center tw-text-sm" }, lt = ["id
179
179
  }, be = (e) => {
180
180
  if (e.keyCode === E.ESCAPE)
181
181
  b();
182
- else if (e.keyCode === E.DOWN && v.value < C.value.length - 1)
183
- u.value && v.value++;
182
+ else if (e.keyCode === E.DOWN && v.value < C.value.length - 1 && u.value)
183
+ v.value++;
184
184
  else if (e.keyCode === E.UP && v.value > 0)
185
185
  u.value && v.value--, x.value && X.value && v.value === 0 && (x.value.scrollTop -= 100);
186
- else if (e.keyCode === E.ENTER && v.value !== -1)
187
- u.value && D(C.value[v.value]);
186
+ else if (e.keyCode === E.ENTER && v.value !== -1 && u.value)
187
+ D(C.value[v.value]);
188
188
  else
189
189
  return;
190
190
  e.preventDefault(), ge(e);
@@ -473,7 +473,7 @@ const tt = { class: "tw-flex tw-h-input tw-items-center tw-text-sm" }, lt = ["id
473
473
  } : void 0
474
474
  ]), 1040, ["class", "error-text", "hint-text"]));
475
475
  }
476
- }), $t = /* @__PURE__ */ et(pt, [["__scopeId", "data-v-8a707e00"]]);
476
+ }), $t = /* @__PURE__ */ et(pt, [["__scopeId", "data-v-514b8e8b"]]);
477
477
  export {
478
478
  $t as default
479
479
  };