@leaflink/stash 48.16.1 → 48.16.2

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 (270) hide show
  1. package/dist/Accordion.js +1 -1
  2. package/dist/Accordion.js.map +1 -1
  3. package/dist/Accordion.vue.d.ts +8 -9
  4. package/dist/ActionsDropdown.js.map +1 -1
  5. package/dist/ActionsDropdown.vue.d.ts +7 -8
  6. package/dist/AddressSelect.js +42 -38
  7. package/dist/AddressSelect.js.map +1 -1
  8. package/dist/AddressSelect.vue.d.ts +10 -11
  9. package/dist/Alert.js.map +1 -1
  10. package/dist/Alert.vue.d.ts +6 -7
  11. package/dist/AppNavigationItem.js +2 -2
  12. package/dist/AppNavigationItem.js.map +1 -1
  13. package/dist/AppNavigationItem.vue.d.ts +7 -8
  14. package/dist/AppSidebar.js +42 -42
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppSidebar.vue.d.ts +8 -9
  17. package/dist/AppTopbar.js +16 -16
  18. package/dist/AppTopbar.js.map +1 -1
  19. package/dist/AppTopbar.vue.d.ts +8 -9
  20. package/dist/Avatar.js.map +1 -1
  21. package/dist/Avatar.vue.d.ts +7 -8
  22. package/dist/Backdrop.vue.d.ts +3 -5
  23. package/dist/Badge.js +1 -1
  24. package/dist/Badge.js.map +1 -1
  25. package/dist/Badge.vue.d.ts +7 -8
  26. package/dist/Box.vue.d.ts +6 -7
  27. package/dist/Box.vue_vue_type_script_setup_true_lang-69e5176b.js.map +1 -1
  28. package/dist/Button.js.map +1 -1
  29. package/dist/Button.vue.d.ts +7 -8
  30. package/dist/ButtonGroup.js +29 -29
  31. package/dist/ButtonGroup.js.map +1 -1
  32. package/dist/ButtonGroup.vue.d.ts +8 -9
  33. package/dist/Card.js.map +1 -1
  34. package/dist/Card.vue.d.ts +6 -7
  35. package/dist/CardContent.vue.d.ts +3 -5
  36. package/dist/CardFooter.vue.d.ts +3 -5
  37. package/dist/CardHeader.js.map +1 -1
  38. package/dist/CardHeader.vue.d.ts +3 -4
  39. package/dist/CardMedia.js +6 -6
  40. package/dist/CardMedia.js.map +1 -1
  41. package/dist/CardMedia.vue.d.ts +3 -4
  42. package/dist/Carousel.js +249 -249
  43. package/dist/Carousel.js.map +1 -1
  44. package/dist/Carousel.vue.d.ts +9 -9
  45. package/dist/Checkbox.js +27 -27
  46. package/dist/Checkbox.js.map +1 -1
  47. package/dist/Checkbox.vue.d.ts +11 -12
  48. package/dist/ChevronToggle.js +1 -1
  49. package/dist/ChevronToggle.vue.d.ts +8 -9
  50. package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-1591294c.js → ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js} +11 -11
  51. package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-1591294c.js.map → ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js.map} +1 -1
  52. package/dist/Chip.js +30 -30
  53. package/dist/Chip.js.map +1 -1
  54. package/dist/Chip.vue.d.ts +9 -10
  55. package/dist/ConfirmationCodeInput.js +25 -25
  56. package/dist/ConfirmationCodeInput.js.map +1 -1
  57. package/dist/ConfirmationCodeInput.vue.d.ts +8 -9
  58. package/dist/ContextSwitcher.js +18 -18
  59. package/dist/ContextSwitcher.js.map +1 -1
  60. package/dist/ContextSwitcher.vue.d.ts +9 -10
  61. package/dist/Copy.js.map +1 -1
  62. package/dist/Copy.vue.d.ts +6 -7
  63. package/dist/CurrencyInput.js +93 -93
  64. package/dist/CurrencyInput.js.map +1 -1
  65. package/dist/CurrencyInput.vue.d.ts +10 -11
  66. package/dist/CustomRender.vue.d.ts +3 -15
  67. package/dist/DataView.js +97 -97
  68. package/dist/DataView.js.map +1 -1
  69. package/dist/DataView.vue.d.ts +9 -10
  70. package/dist/DataViewFilters.js +153 -150
  71. package/dist/DataViewFilters.js.map +1 -1
  72. package/dist/DataViewFilters.vue.d.ts +9 -10
  73. package/dist/DataViewSortButton.js.map +1 -1
  74. package/dist/DataViewSortButton.vue.d.ts +6 -7
  75. package/dist/DataViewToolbar.js +27 -27
  76. package/dist/DataViewToolbar.js.map +1 -1
  77. package/dist/DataViewToolbar.vue.d.ts +8 -9
  78. package/dist/DatePicker.js +738 -738
  79. package/dist/DatePicker.js.map +1 -1
  80. package/dist/DatePicker.vue.d.ts +11 -12
  81. package/dist/DescriptionList.js.map +1 -1
  82. package/dist/DescriptionList.vue.d.ts +6 -7
  83. package/dist/DescriptionListDetail.vue.d.ts +3 -5
  84. package/dist/DescriptionListGroup.vue.d.ts +3 -5
  85. package/dist/DescriptionListTerm.vue.d.ts +3 -5
  86. package/dist/Dialog.js +44 -44
  87. package/dist/Dialog.js.map +1 -1
  88. package/dist/Dialog.vue.d.ts +10 -11
  89. package/dist/Divider.vue.d.ts +3 -5
  90. package/dist/Dropdown.js +38 -38
  91. package/dist/Dropdown.js.map +1 -1
  92. package/dist/Dropdown.vue.d.ts +9 -10
  93. package/dist/EmptyState.js +20 -20
  94. package/dist/EmptyState.js.map +1 -1
  95. package/dist/EmptyState.vue.d.ts +6 -7
  96. package/dist/Expand.js +1 -1
  97. package/dist/Expand.vue.d.ts +8 -9
  98. package/dist/{Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js → Expand.vue_vue_type_script_setup_true_lang-0f236267.js} +19 -19
  99. package/dist/Expand.vue_vue_type_script_setup_true_lang-0f236267.js.map +1 -0
  100. package/dist/Field.vue.d.ts +6 -7
  101. package/dist/Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js.map +1 -1
  102. package/dist/FileUpload.js +65 -65
  103. package/dist/FileUpload.js.map +1 -1
  104. package/dist/FileUpload.vue.d.ts +10 -11
  105. package/dist/FilterChip.js +27 -27
  106. package/dist/FilterChip.js.map +1 -1
  107. package/dist/FilterChip.vue.d.ts +8 -9
  108. package/dist/FilterDrawerItem.js +26 -26
  109. package/dist/FilterDrawerItem.js.map +1 -1
  110. package/dist/FilterDrawerItem.vue.d.ts +5 -6
  111. package/dist/FilterDropdown.js +49 -49
  112. package/dist/FilterDropdown.js.map +1 -1
  113. package/dist/FilterDropdown.vue.d.ts +8 -9
  114. package/dist/FilterSelect.js +23 -23
  115. package/dist/FilterSelect.js.map +1 -1
  116. package/dist/FilterSelect.vue.d.ts +8 -9
  117. package/dist/Filters.js +112 -104
  118. package/dist/Filters.js.map +1 -1
  119. package/dist/Filters.vue.d.ts +2204 -65
  120. package/dist/HttpError.js +42 -42
  121. package/dist/HttpError.js.map +1 -1
  122. package/dist/HttpError.vue.d.ts +6 -7
  123. package/dist/Icon.js.map +1 -1
  124. package/dist/Icon.vue.d.ts +7 -8
  125. package/dist/IconLabel.js.map +1 -1
  126. package/dist/IconLabel.vue.d.ts +8 -9
  127. package/dist/Illustration.vue.d.ts +6 -7
  128. package/dist/Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js.map +1 -1
  129. package/dist/Image.js +47 -47
  130. package/dist/Image.js.map +1 -1
  131. package/dist/Image.vue.d.ts +6 -7
  132. package/dist/InlineEdit.js +34 -34
  133. package/dist/InlineEdit.js.map +1 -1
  134. package/dist/InlineEdit.vue.d.ts +9 -10
  135. package/dist/Input.js +35 -35
  136. package/dist/Input.js.map +1 -1
  137. package/dist/Input.vue.d.ts +13 -14
  138. package/dist/InputOptions.js +33 -33
  139. package/dist/InputOptions.js.map +1 -1
  140. package/dist/InputOptions.vue.d.ts +8 -9
  141. package/dist/IntegrationIcon.js.map +1 -1
  142. package/dist/IntegrationIcon.vue.d.ts +7 -8
  143. package/dist/Label.vue.d.ts +6 -7
  144. package/dist/Label.vue_vue_type_script_setup_true_lang-4b02087f.js.map +1 -1
  145. package/dist/LicenseChip.js.map +1 -1
  146. package/dist/LicenseChip.vue.d.ts +6 -7
  147. package/dist/ListItem.vue.d.ts +225 -95
  148. package/dist/ListItemCell.vue.d.ts +4 -16
  149. package/dist/ListView.js +1 -1
  150. package/dist/ListView.vue.d.ts +5072 -470
  151. package/dist/Loading.js +16 -16
  152. package/dist/Loading.js.map +1 -1
  153. package/dist/Loading.vue.d.ts +3 -5
  154. package/dist/Logo.js +1 -1
  155. package/dist/Logo.vue.d.ts +9 -10
  156. package/dist/Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js +196 -0
  157. package/dist/Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js.map +1 -0
  158. package/dist/Menu.vue.d.ts +3 -5
  159. package/dist/MenuItem.vue.d.ts +3 -5
  160. package/dist/Metric.js.map +1 -1
  161. package/dist/Metric.vue.d.ts +6 -7
  162. package/dist/Modal.js +29 -29
  163. package/dist/Modal.js.map +1 -1
  164. package/dist/Modal.vue.d.ts +8 -9
  165. package/dist/Modals.js +8 -7
  166. package/dist/Modals.js.map +1 -1
  167. package/dist/Modals.vue.d.ts +3 -5
  168. package/dist/Module.js.map +1 -1
  169. package/dist/Module.vue.d.ts +7 -8
  170. package/dist/ModuleContent.vue.d.ts +3 -5
  171. package/dist/ModuleFooter.vue.d.ts +3 -5
  172. package/dist/ModuleHeader.js.map +1 -1
  173. package/dist/ModuleHeader.vue.d.ts +6 -7
  174. package/dist/ObfuscateText.js +1 -1
  175. package/dist/ObfuscateText.js.map +1 -1
  176. package/dist/ObfuscateText.vue.d.ts +6 -7
  177. package/dist/PageContent.vue.d.ts +3 -5
  178. package/dist/PageHeader.js.map +1 -1
  179. package/dist/PageHeader.vue.d.ts +6 -7
  180. package/dist/PageNavigation.js +30 -27
  181. package/dist/PageNavigation.js.map +1 -1
  182. package/dist/PageNavigation.vue.d.ts +8 -9
  183. package/dist/Paginate.js +32 -32
  184. package/dist/Paginate.js.map +1 -1
  185. package/dist/Paginate.vue.d.ts +8 -9
  186. package/dist/PlaidLink.js +29 -29
  187. package/dist/PlaidLink.js.map +1 -1
  188. package/dist/PlaidLink.vue.d.ts +11 -12
  189. package/dist/QuickAction.js.map +1 -1
  190. package/dist/QuickAction.vue.d.ts +4 -5
  191. package/dist/Radio.vue.d.ts +20 -1
  192. package/dist/RadioGroup.js +123 -123
  193. package/dist/RadioGroup.js.map +1 -1
  194. package/dist/RadioGroup.vue.d.ts +10 -11
  195. package/dist/RadioNew.js +102 -102
  196. package/dist/RadioNew.js.map +1 -1
  197. package/dist/RadioNew.vue.d.ts +10 -11
  198. package/dist/RangeInput.vue.d.ts +3 -5
  199. package/dist/SearchBar.js +36 -36
  200. package/dist/SearchBar.js.map +1 -1
  201. package/dist/SearchBar.vue.d.ts +9 -10
  202. package/dist/Select.js +792 -774
  203. package/dist/Select.js.map +1 -1
  204. package/dist/Select.vue.d.ts +14 -15
  205. package/dist/SelectStatus.js +27 -27
  206. package/dist/SelectStatus.js.map +1 -1
  207. package/dist/SelectStatus.vue.d.ts +12 -13
  208. package/dist/Skeleton.js.map +1 -1
  209. package/dist/Skeleton.vue.d.ts +7 -8
  210. package/dist/Step.js.map +1 -1
  211. package/dist/Step.vue.d.ts +7 -8
  212. package/dist/Stepper.js +19 -19
  213. package/dist/Stepper.js.map +1 -1
  214. package/dist/Stepper.vue.d.ts +9 -10
  215. package/dist/Switch.js +25 -25
  216. package/dist/Switch.js.map +1 -1
  217. package/dist/Switch.vue.d.ts +11 -12
  218. package/dist/Tab.js +2 -2
  219. package/dist/Tab.vue.d.ts +3 -4
  220. package/dist/{Tab.vue_vue_type_script_setup_true_lang-69d1b046.js → Tab.vue_vue_type_script_setup_true_lang-9aa53203.js} +5 -3
  221. package/dist/Tab.vue_vue_type_script_setup_true_lang-9aa53203.js.map +1 -0
  222. package/dist/Table.js +3 -3
  223. package/dist/Table.js.map +1 -1
  224. package/dist/{Table.keys-cf93df19.js → Table.keys-83e4f09b.js} +11 -11
  225. package/dist/{Table.keys-cf93df19.js.map → Table.keys-83e4f09b.js.map} +1 -1
  226. package/dist/Table.vue.d.ts +6 -7
  227. package/dist/TableCell.js +1 -1
  228. package/dist/TableCell.js.map +1 -1
  229. package/dist/TableCell.vue.d.ts +6 -7
  230. package/dist/TableHeaderCell.js +12 -12
  231. package/dist/TableHeaderCell.js.map +1 -1
  232. package/dist/TableHeaderCell.vue.d.ts +6 -7
  233. package/dist/TableHeaderRow.js +21 -21
  234. package/dist/TableHeaderRow.js.map +1 -1
  235. package/dist/TableHeaderRow.vue.d.ts +8 -9
  236. package/dist/TableRow.js +42 -42
  237. package/dist/TableRow.js.map +1 -1
  238. package/dist/TableRow.vue.d.ts +8 -9
  239. package/dist/Tabs.js +2 -2
  240. package/dist/Tabs.vue.d.ts +8 -9
  241. package/dist/{Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js → Tabs.vue_used_vue_type_style_index_0_lang.module-3aa36673.js} +37 -37
  242. package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-3aa36673.js.map +1 -0
  243. package/dist/TextEditor.js +565 -565
  244. package/dist/TextEditor.js.map +1 -1
  245. package/dist/TextEditor.vue.d.ts +12 -13
  246. package/dist/Textarea.js +28 -28
  247. package/dist/Textarea.js.map +1 -1
  248. package/dist/Textarea.vue.d.ts +10 -11
  249. package/dist/Timeline.js.map +1 -1
  250. package/dist/Timeline.vue.d.ts +6 -7
  251. package/dist/TimelineItem.js +21 -21
  252. package/dist/TimelineItem.js.map +1 -1
  253. package/dist/TimelineItem.vue.d.ts +13 -6
  254. package/dist/Toast.js +134 -134
  255. package/dist/Toast.js.map +1 -1
  256. package/dist/Toast.vue.d.ts +6 -7
  257. package/dist/Toasts.vue.d.ts +3 -5
  258. package/dist/components.css +1 -1
  259. package/dist/index.js.map +1 -1
  260. package/dist/tailwind-base.js.map +1 -1
  261. package/dist/usePlaidLink.d.ts +1 -6
  262. package/dist/useScriptTag.d.ts +3 -8
  263. package/dist/useStepper.d.ts +7 -2
  264. package/package.json +1 -1
  265. package/tailwind-base.ts +13 -6
  266. package/dist/Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js.map +0 -1
  267. package/dist/Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js +0 -196
  268. package/dist/Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js.map +0 -1
  269. package/dist/Tab.vue_vue_type_script_setup_true_lang-69d1b046.js.map +0 -1
  270. package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { defineComponent as k, useSlots as x, computed as m, ref as C, watchEffect as E, openBlock as a, createElementBlock as o, normalizeClass as B, createVNode as i, Transition as w, withCtx as b, withDirectives as g, withModifiers as O, vShow as y, createElementVNode as v, unref as c, renderSlot as n, createCommentVNode as u, pushScopeId as I, popScopeId as V } from "vue";
2
- import $ from "./useMediaQuery.js";
3
- import z from "./Backdrop.js";
4
- import A from "./Divider.js";
5
- import { _ as N } from "./_plugin-vue_export-helper-dad06003.js";
6
- const j = (t) => (I("data-v-78582cf0"), t = t(), V(), t), D = {
1
+ import { defineComponent as E, useSlots as B, computed as h, ref as C, watchEffect as O, openBlock as s, createElementBlock as a, normalizeClass as V, createVNode as o, Transition as w, withCtx as b, withDirectives as g, withModifiers as $, vShow as y, createElementVNode as d, unref as c, renderSlot as i, createCommentVNode as u } from "vue";
2
+ import z from "./useMediaQuery.js";
3
+ import A from "./Backdrop.js";
4
+ import N from "./Divider.js";
5
+ import { _ as j } from "./_plugin-vue_export-helper-dad06003.js";
6
+ const D = {
7
7
  class: "stash-app-sidebar__aside tw-fixed tw-flex tw-h-screen tw-flex-col tw-bg-purple-500",
8
8
  "data-test": "stash-app-sidebar__aside"
9
9
  }, M = {
@@ -12,75 +12,75 @@ const j = (t) => (I("data-v-78582cf0"), t = t(), V(), t), D = {
12
12
  }, P = {
13
13
  key: 1,
14
14
  class: "tw-px-3 tw-pt-6"
15
- }, L = {
15
+ }, I = {
16
16
  key: 2,
17
17
  class: "tw-pt-6"
18
- }, Q = {
18
+ }, L = {
19
19
  role: "menubar",
20
20
  "aria-orientation": "vertical"
21
- }, T = /* @__PURE__ */ j(() => /* @__PURE__ */ v("div", { class: "tw-flex-1" }, null, -1)), q = /* @__PURE__ */ k({
21
+ }, Q = /* @__PURE__ */ E({
22
22
  __name: "AppSidebar",
23
23
  props: {
24
24
  isOpen: { type: Boolean, default: !1 }
25
25
  },
26
26
  emits: ["dismiss", "update:is-open"],
27
- setup(t, { emit: _ }) {
28
- const f = t, r = x(), l = $("screen and (min-width: 1321px)"), e = m(() => f.isOpen && !l.value), p = C({ height: "", overflow: "" }), h = m(() => f.isOpen || l.value);
27
+ setup(x, { emit: k }) {
28
+ const v = x, n = B(), m = k, r = z("screen and (min-width: 1321px)"), e = h(() => v.isOpen && !r.value), l = C({ height: "", overflow: "" }), f = h(() => v.isOpen || r.value);
29
29
  function S() {
30
- _("dismiss"), _("update:is-open", !1);
30
+ m("dismiss"), m("update:is-open", !1);
31
31
  }
32
- function d() {
32
+ function p() {
33
33
  return document.scrollingElement || document.body;
34
34
  }
35
- return E(() => {
36
- l.value || (e.value && Object.assign(p.value, {
37
- overflow: d().style.overflow,
38
- height: d().style.height
39
- }), Object.assign(d().style, {
40
- overflow: e.value ? "hidden" : p.value.overflow,
35
+ return O(() => {
36
+ r.value || (e.value && Object.assign(l.value, {
37
+ overflow: p().style.overflow,
38
+ height: p().style.height
39
+ }), Object.assign(p().style, {
40
+ overflow: e.value ? "hidden" : l.value.overflow,
41
41
  // Prevents page from scrolling when AppSidebar is open
42
- height: e.value ? "100%" : p.value.height
42
+ height: e.value ? "100%" : l.value.height
43
43
  // Ensures the backdrop covers the entire page when AppSidebar is open
44
44
  }));
45
- }), (s, F) => (a(), o("div", {
45
+ }), (t, _) => (s(), a("div", {
46
46
  id: "stash-app-sidebar",
47
- class: B(["stash-app-sidebar tw-relative", {
48
- "stash-app-sidebar--is-open": h.value,
47
+ class: V(["stash-app-sidebar tw-relative", {
48
+ "stash-app-sidebar--is-open": f.value,
49
49
  "tw-z-modal": e.value,
50
50
  "tw-z-[301]": !e.value
51
51
  }]),
52
52
  "data-test": "stash-app-sidebar"
53
53
  }, [
54
- i(w, { name: "backdrop" }, {
54
+ o(w, { name: "backdrop" }, {
55
55
  default: b(() => [
56
- g(i(z, {
56
+ g(o(A, {
57
57
  class: "stash-app-sidebar__backdrop",
58
- onClick: O(S, ["stop"])
59
- }, null, 8, ["onClick"]), [
58
+ onClick: $(S, ["stop"])
59
+ }, null, 512), [
60
60
  [y, e.value]
61
61
  ])
62
62
  ]),
63
63
  _: 1
64
64
  }),
65
- i(w, { name: "aside" }, {
65
+ o(w, { name: "aside" }, {
66
66
  default: b(() => [
67
- g(v("aside", D, [
68
- i(A, { class: "stash-app-sidebar__divider" }),
69
- c(r)["app-context"] ? (a(), o("div", M, [
70
- n(s.$slots, "app-context", {}, void 0, !0)
67
+ g(d("aside", D, [
68
+ o(N, { class: "stash-app-sidebar__divider" }),
69
+ c(n)["app-context"] ? (s(), a("div", M, [
70
+ i(t.$slots, "app-context", {}, void 0, !0)
71
71
  ])) : u("", !0),
72
- c(r)["company-context"] ? (a(), o("div", P, [
73
- n(s.$slots, "company-context", {}, void 0, !0)
72
+ c(n)["company-context"] ? (s(), a("div", P, [
73
+ i(t.$slots, "company-context", {}, void 0, !0)
74
74
  ])) : u("", !0),
75
- c(r).navigation ? (a(), o("nav", L, [
76
- v("ul", Q, [
77
- n(s.$slots, "navigation", {}, void 0, !0)
75
+ c(n).navigation ? (s(), a("nav", I, [
76
+ d("ul", L, [
77
+ i(t.$slots, "navigation", {}, void 0, !0)
78
78
  ])
79
79
  ])) : u("", !0),
80
- T,
81
- n(s.$slots, "footer", {}, void 0, !0)
80
+ _[0] || (_[0] = d("div", { class: "tw-flex-1" }, null, -1)),
81
+ i(t.$slots, "footer", {}, void 0, !0)
82
82
  ], 512), [
83
- [y, h.value]
83
+ [y, f.value]
84
84
  ])
85
85
  ]),
86
86
  _: 3
@@ -88,8 +88,8 @@ const j = (t) => (I("data-v-78582cf0"), t = t(), V(), t), D = {
88
88
  ], 2));
89
89
  }
90
90
  });
91
- const U = /* @__PURE__ */ N(q, [["__scopeId", "data-v-78582cf0"]]);
91
+ const J = /* @__PURE__ */ j(Q, [["__scopeId", "data-v-f666b942"]]);
92
92
  export {
93
- U as default
93
+ J as default
94
94
  };
95
95
  //# sourceMappingURL=AppSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppSidebar.js","sources":["../src/components/AppSidebar/AppSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, useSlots, watchEffect } from 'vue';\n\n import useMediaQuery from '../../composables/useMediaQuery/useMediaQuery';\n import Backdrop from '../Backdrop/Backdrop.vue';\n import Divider from '../Divider/Divider.vue';\n\n export interface AppSidebarProps {\n /**\n * Controls wether the sidebar is opened or not\n */\n isOpen?: boolean;\n }\n\n const props = withDefaults(defineProps<AppSidebarProps>(), {\n isOpen: false,\n });\n\n const slots = useSlots();\n\n const emit =\n defineEmits<{\n /**\n * @deprecated Use the `update:is-open` event instead\n */\n (e: 'dismiss'): void;\n (e: 'update:is-open', isOpen: boolean): void;\n }>();\n\n const isExtraLargeScreen = useMediaQuery('screen and (min-width: 1321px)');\n const isBackdropVisible = computed(() => props.isOpen && !isExtraLargeScreen.value);\n const initialPageScrollingElementStyle = ref({ height: '', overflow: '' });\n const isSidebarOpen = computed(() => props.isOpen || isExtraLargeScreen.value);\n\n function onBackdropClick() {\n emit('dismiss');\n emit('update:is-open', false);\n }\n\n function getPageScrollingElement() {\n return (document.scrollingElement || document.body) as HTMLElement;\n }\n\n watchEffect(() => {\n if (isExtraLargeScreen.value) {\n return;\n }\n\n if (isBackdropVisible.value) {\n Object.assign(initialPageScrollingElementStyle.value, {\n overflow: getPageScrollingElement().style.overflow,\n height: getPageScrollingElement().style.height,\n });\n }\n\n Object.assign(getPageScrollingElement().style, {\n overflow: isBackdropVisible.value ? 'hidden' : initialPageScrollingElementStyle.value.overflow, // Prevents page from scrolling when AppSidebar is open\n height: isBackdropVisible.value ? '100%' : initialPageScrollingElementStyle.value.height, // Ensures the backdrop covers the entire page when AppSidebar is open\n });\n });\n</script>\n\n<template>\n <div\n id=\"stash-app-sidebar\"\n class=\"stash-app-sidebar tw-relative\"\n :class=\"{\n 'stash-app-sidebar--is-open': isSidebarOpen,\n 'tw-z-modal': isBackdropVisible,\n 'tw-z-[301]': !isBackdropVisible,\n }\"\n data-test=\"stash-app-sidebar\"\n >\n <Transition name=\"backdrop\">\n <Backdrop v-show=\"isBackdropVisible\" class=\"stash-app-sidebar__backdrop\" @click.stop=\"onBackdropClick\" />\n </Transition>\n <Transition name=\"aside\">\n <aside\n v-show=\"isSidebarOpen\"\n class=\"stash-app-sidebar__aside tw-fixed tw-flex tw-h-screen tw-flex-col tw-bg-purple-500\"\n data-test=\"stash-app-sidebar__aside\"\n >\n <Divider class=\"stash-app-sidebar__divider\" />\n <div v-if=\"slots['app-context']\" class=\"tw-px-3 tw-pt-6\">\n <!-- @slot App Context component slot, ideally for rendering the context switcher -->\n <slot name=\"app-context\"></slot>\n </div>\n <div v-if=\"slots['company-context']\" class=\"tw-px-3 tw-pt-6\">\n <!-- @slot Company Context component slot, ideally for rendering the company picker -->\n <slot name=\"company-context\"></slot>\n </div>\n <nav v-if=\"slots['navigation']\" class=\"tw-pt-6\">\n <ul role=\"menubar\" aria-orientation=\"vertical\">\n <!-- @slot Navigation component slot, for rendering navigation items -->\n <slot name=\"navigation\"></slot>\n </ul>\n </nav>\n <div class=\"tw-flex-1\"></div>\n <!-- @slot Footer component slot, for rendering version/environment notes -->\n <slot name=\"footer\"></slot>\n </aside>\n </Transition>\n </div>\n</template>\n\n<style scoped>\n .stash-app-sidebar__aside {\n padding-top: calc(theme('height.topbar') - 1px); /* -1px to compensate for the border height */\n width: theme('width.sidebar');\n }\n\n .stash-app-sidebar__divider::before,\n .stash-app-sidebar__divider::after {\n border-bottom: 1px solid rgb(255 255 255 / 12%);\n }\n\n .backdrop-enter-active,\n .backdrop-leave-active {\n transition: opacity 200ms ease-in-out;\n }\n\n .backdrop-enter-from,\n .backdrop-leave-to {\n opacity: 0;\n }\n\n .aside-enter-active,\n .aside-leave-active {\n transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;\n }\n\n .aside-enter-from,\n .aside-leave-to {\n opacity: 0;\n transform: translateX(-20%);\n }\n</style>\n"],"names":["slots","useSlots","isExtraLargeScreen","useMediaQuery","isBackdropVisible","computed","props","initialPageScrollingElementStyle","ref","isSidebarOpen","onBackdropClick","emit","getPageScrollingElement","watchEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBQA,IAAQC,KAWRC,IAAqBC,EAAc,gCAAgC,GACnEC,IAAoBC,EAAS,MAAMC,EAAM,UAAU,CAACJ,EAAmB,KAAK,GAC5EK,IAAmCC,EAAI,EAAE,QAAQ,IAAI,UAAU,IAAI,GACnEC,IAAgBJ,EAAS,MAAMC,EAAM,UAAUJ,EAAmB,KAAK;AAE7E,aAASQ,IAAkB;AACzB,MAAAC,EAAK,SAAS,GACdA,EAAK,kBAAkB,EAAK;AAAA,IAC9B;AAEA,aAASC,IAA0B;AACzB,aAAA,SAAS,oBAAoB,SAAS;AAAA,IAChD;AAEA,WAAAC,EAAY,MAAM;AAChB,MAAIX,EAAmB,UAInBE,EAAkB,SACb,OAAA,OAAOG,EAAiC,OAAO;AAAA,QACpD,UAAUK,IAA0B,MAAM;AAAA,QAC1C,QAAQA,IAA0B,MAAM;AAAA,MAAA,CACzC,GAGI,OAAA,OAAOA,EAAwB,EAAE,OAAO;AAAA,QAC7C,UAAUR,EAAkB,QAAQ,WAAWG,EAAiC,MAAM;AAAA;AAAA,QACtF,QAAQH,EAAkB,QAAQ,SAASG,EAAiC,MAAM;AAAA;AAAA,MAAA,CACnF;AAAA,IAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"AppSidebar.js","sources":["../src/components/AppSidebar/AppSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, useSlots, watchEffect } from 'vue';\n\n import useMediaQuery from '../../composables/useMediaQuery/useMediaQuery';\n import Backdrop from '../Backdrop/Backdrop.vue';\n import Divider from '../Divider/Divider.vue';\n\n export interface AppSidebarProps {\n /**\n * Controls wether the sidebar is opened or not\n */\n isOpen?: boolean;\n }\n\n const props = withDefaults(defineProps<AppSidebarProps>(), {\n isOpen: false,\n });\n\n const slots = useSlots();\n\n const emit = defineEmits<{\n /**\n * @deprecated Use the `update:is-open` event instead\n */\n (e: 'dismiss'): void;\n (e: 'update:is-open', isOpen: boolean): void;\n }>();\n\n const isExtraLargeScreen = useMediaQuery('screen and (min-width: 1321px)');\n const isBackdropVisible = computed(() => props.isOpen && !isExtraLargeScreen.value);\n const initialPageScrollingElementStyle = ref({ height: '', overflow: '' });\n const isSidebarOpen = computed(() => props.isOpen || isExtraLargeScreen.value);\n\n function onBackdropClick() {\n emit('dismiss');\n emit('update:is-open', false);\n }\n\n function getPageScrollingElement() {\n return (document.scrollingElement || document.body) as HTMLElement;\n }\n\n watchEffect(() => {\n if (isExtraLargeScreen.value) {\n return;\n }\n\n if (isBackdropVisible.value) {\n Object.assign(initialPageScrollingElementStyle.value, {\n overflow: getPageScrollingElement().style.overflow,\n height: getPageScrollingElement().style.height,\n });\n }\n\n Object.assign(getPageScrollingElement().style, {\n overflow: isBackdropVisible.value ? 'hidden' : initialPageScrollingElementStyle.value.overflow, // Prevents page from scrolling when AppSidebar is open\n height: isBackdropVisible.value ? '100%' : initialPageScrollingElementStyle.value.height, // Ensures the backdrop covers the entire page when AppSidebar is open\n });\n });\n</script>\n\n<template>\n <div\n id=\"stash-app-sidebar\"\n class=\"stash-app-sidebar tw-relative\"\n :class=\"{\n 'stash-app-sidebar--is-open': isSidebarOpen,\n 'tw-z-modal': isBackdropVisible,\n 'tw-z-[301]': !isBackdropVisible,\n }\"\n data-test=\"stash-app-sidebar\"\n >\n <Transition name=\"backdrop\">\n <Backdrop v-show=\"isBackdropVisible\" class=\"stash-app-sidebar__backdrop\" @click.stop=\"onBackdropClick\" />\n </Transition>\n <Transition name=\"aside\">\n <aside\n v-show=\"isSidebarOpen\"\n class=\"stash-app-sidebar__aside tw-fixed tw-flex tw-h-screen tw-flex-col tw-bg-purple-500\"\n data-test=\"stash-app-sidebar__aside\"\n >\n <Divider class=\"stash-app-sidebar__divider\" />\n <div v-if=\"slots['app-context']\" class=\"tw-px-3 tw-pt-6\">\n <!-- @slot App Context component slot, ideally for rendering the context switcher -->\n <slot name=\"app-context\"></slot>\n </div>\n <div v-if=\"slots['company-context']\" class=\"tw-px-3 tw-pt-6\">\n <!-- @slot Company Context component slot, ideally for rendering the company picker -->\n <slot name=\"company-context\"></slot>\n </div>\n <nav v-if=\"slots['navigation']\" class=\"tw-pt-6\">\n <ul role=\"menubar\" aria-orientation=\"vertical\">\n <!-- @slot Navigation component slot, for rendering navigation items -->\n <slot name=\"navigation\"></slot>\n </ul>\n </nav>\n <div class=\"tw-flex-1\"></div>\n <!-- @slot Footer component slot, for rendering version/environment notes -->\n <slot name=\"footer\"></slot>\n </aside>\n </Transition>\n </div>\n</template>\n\n<style scoped>\n .stash-app-sidebar__aside {\n padding-top: calc(theme('height.topbar') - 1px); /* -1px to compensate for the border height */\n width: theme('width.sidebar');\n }\n\n .stash-app-sidebar__divider::before,\n .stash-app-sidebar__divider::after {\n border-bottom: 1px solid rgb(255 255 255 / 12%);\n }\n\n .backdrop-enter-active,\n .backdrop-leave-active {\n transition: opacity 200ms ease-in-out;\n }\n\n .backdrop-enter-from,\n .backdrop-leave-to {\n opacity: 0;\n }\n\n .aside-enter-active,\n .aside-leave-active {\n transition: opacity 200ms ease-in-out, transform 200ms ease-in-out;\n }\n\n .aside-enter-from,\n .aside-leave-to {\n opacity: 0;\n transform: translateX(-20%);\n }\n</style>\n"],"names":["props","__props","slots","useSlots","emit","__emit","isExtraLargeScreen","useMediaQuery","isBackdropVisible","computed","initialPageScrollingElementStyle","ref","isSidebarOpen","onBackdropClick","getPageScrollingElement","watchEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAcE,UAAMA,IAAQC,GAIRC,IAAQC,KAERC,IAAOC,GAQPC,IAAqBC,EAAc,gCAAgC,GACnEC,IAAoBC,EAAS,MAAMT,EAAM,UAAU,CAACM,EAAmB,KAAK,GAC5EI,IAAmCC,EAAI,EAAE,QAAQ,IAAI,UAAU,IAAI,GACnEC,IAAgBH,EAAS,MAAMT,EAAM,UAAUM,EAAmB,KAAK;AAE7E,aAASO,IAAkB;AACzB,MAAAT,EAAK,SAAS,GACdA,EAAK,kBAAkB,EAAK;AAAA,IAC9B;AAEA,aAASU,IAA0B;AACzB,aAAA,SAAS,oBAAoB,SAAS;AAAA,IAChD;AAEA,WAAAC,EAAY,MAAM;AAChB,MAAIT,EAAmB,UAInBE,EAAkB,SACb,OAAA,OAAOE,EAAiC,OAAO;AAAA,QACpD,UAAUI,IAA0B,MAAM;AAAA,QAC1C,QAAQA,IAA0B,MAAM;AAAA,MAAA,CACzC,GAGI,OAAA,OAAOA,EAAwB,EAAE,OAAO;AAAA,QAC7C,UAAUN,EAAkB,QAAQ,WAAWE,EAAiC,MAAM;AAAA;AAAA,QACtF,QAAQF,EAAkB,QAAQ,SAASE,EAAiC,MAAM;AAAA;AAAA,MAAA,CACnF;AAAA,IAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,9 @@
1
- import { AllowedComponentProps } from 'vue';
2
- import { ComponentCustomProps } from 'vue';
3
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
4
3
  import { DefineComponent } from 'vue';
5
4
  import { ExtractPropTypes } from 'vue';
6
5
  import { PropType } from 'vue';
7
- import { VNodeProps } from 'vue';
6
+ import { PublicProps } from 'vue';
8
7
 
9
8
  declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
9
 
@@ -40,19 +39,19 @@ export declare interface AppSidebarProps {
40
39
  isOpen?: boolean;
41
40
  }
42
41
 
43
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppSidebarProps>, {
42
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppSidebarProps>, {
44
43
  isOpen: boolean;
45
- }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
44
+ }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
46
45
  dismiss: () => void;
47
46
  "update:is-open": (isOpen: boolean) => void;
48
- }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppSidebarProps>, {
47
+ }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppSidebarProps>, {
49
48
  isOpen: boolean;
50
- }>>> & {
49
+ }>>> & Readonly<{
51
50
  onDismiss?: (() => any) | undefined;
52
51
  "onUpdate:is-open"?: ((isOpen: boolean) => any) | undefined;
53
- }, {
52
+ }>, {
54
53
  isOpen: boolean;
55
- }, {}>, {
54
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
56
55
  "app-context"?(_: {}): any;
57
56
  "company-context"?(_: {}): any;
58
57
  navigation?(_: {}): any;
package/dist/AppTopbar.js CHANGED
@@ -1,16 +1,16 @@
1
- import { defineComponent as p, openBlock as c, createElementBlock as m, createElementVNode as t, normalizeClass as i, createVNode as o, unref as f, renderSlot as r } from "vue";
2
- import h from "./useMediaQuery.js";
3
- import b from "./Icon.js";
4
- import { _ as l } from "./Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js";
1
+ import { defineComponent as c, openBlock as m, createElementBlock as f, createElementVNode as t, normalizeClass as i, createVNode as o, unref as h, renderSlot as r } from "vue";
2
+ import b from "./useMediaQuery.js";
3
+ import u from "./Icon.js";
4
+ import { _ as l } from "./Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js";
5
5
  import "lodash-es/uniqueId";
6
6
  import "./index-9e1095ef.js";
7
7
  import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
8
8
  import "./_plugin-vue_export-helper-dad06003.js";
9
9
  import "@leaflink/snitch";
10
- const u = {
10
+ const x = {
11
11
  "data-test": "stash-app-topbar",
12
12
  class: "stash-app-topbar tw-absolute tw-left-0 tw-top-0"
13
- }, x = ["href"], _ = { class: "tw-flex tw-items-center" }, v = { class: "tw-ml-6" }, g = { class: "tw-hidden tw-pl-3 xl:tw-block" }, V = /* @__PURE__ */ p({
13
+ }, _ = ["href"], v = { class: "tw-flex tw-items-center" }, g = { class: "tw-ml-6" }, k = { class: "tw-hidden tw-pl-3 xl:tw-block" }, j = /* @__PURE__ */ c({
14
14
  __name: "AppTopbar",
15
15
  props: {
16
16
  sidebarOpened: { type: Boolean, default: !1 },
@@ -18,8 +18,8 @@ const u = {
18
18
  },
19
19
  emits: ["toggle-sidebar"],
20
20
  setup(n, { emit: w }) {
21
- const e = n, d = h("screen and (min-width: 1321px)");
22
- return (s, a) => (c(), m("header", u, [
21
+ const e = n, d = w, p = b("screen and (min-width: 1321px)");
22
+ return (s, a) => (m(), f("header", x, [
23
23
  t("div", {
24
24
  class: i(["tw-fixed tw-top-0 tw-flex tw-h-topbar tw-w-sidebar tw-items-center tw-pl-3 xl:tw-text-white", {
25
25
  "tw-z-dialog tw-text-white": e.sidebarOpened,
@@ -28,9 +28,9 @@ const u = {
28
28
  }, [
29
29
  t("button", {
30
30
  class: "xl:tw-hidden",
31
- onClick: a[0] || (a[0] = (k) => w("toggle-sidebar"))
31
+ onClick: a[0] || (a[0] = ($) => d("toggle-sidebar"))
32
32
  }, [
33
- o(b, {
33
+ o(u, {
34
34
  name: "menu",
35
35
  class: "tw-mr-3",
36
36
  "aria-label": "open sidebar navigation"
@@ -46,21 +46,21 @@ const u = {
46
46
  class: "tw-transition-colors tw-duration-500 md:tw-hidden"
47
47
  }, null, 8, ["color"]),
48
48
  o(l, {
49
- color: e.sidebarOpened || f(d) ? "white" : "purple",
49
+ color: e.sidebarOpened || h(p) ? "white" : "purple",
50
50
  class: "tw-hidden md:tw-block"
51
51
  }, null, 8, ["color"])
52
- ], 8, x)
52
+ ], 8, _)
53
53
  ], 2),
54
54
  t("div", {
55
55
  class: i([[s.$attrs.class], "tw-fixed tw-top-0 tw-z-page tw-flex tw-h-topbar tw-w-full tw-flex-row-reverse tw-items-center tw-justify-between tw-bg-white tw-py-3 tw-pl-sidebar tw-pr-3 tw-shadow-md"])
56
56
  }, [
57
- t("div", _, [
57
+ t("div", v, [
58
58
  r(s.$slots, "actions"),
59
- t("div", v, [
59
+ t("div", g, [
60
60
  r(s.$slots, "avatar")
61
61
  ])
62
62
  ]),
63
- t("div", g, [
63
+ t("div", k, [
64
64
  r(s.$slots, "text")
65
65
  ])
66
66
  ], 2)
@@ -68,6 +68,6 @@ const u = {
68
68
  }
69
69
  });
70
70
  export {
71
- V as default
71
+ j as default
72
72
  };
73
73
  //# sourceMappingURL=AppTopbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppTopbar.js","sources":["../src/components/AppTopbar/AppTopbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import useMediaQuery from '../../composables/useMediaQuery/useMediaQuery';\n import Icon from '../Icon/Icon.vue';\n import Logo from '../Logo/Logo.vue';\n\n export interface AppTopbarProps {\n /**\n * Indicates if the AppSidebar is opened or not for styling purposes\n */\n sidebarOpened?: boolean;\n /**\n * Url for the logo anchor wrapper\n */\n href?: string;\n }\n\n const props = withDefaults(defineProps<AppTopbarProps>(), {\n sidebarOpened: false,\n href: '/',\n });\n\n const emit = defineEmits(['toggle-sidebar']);\n const isExtraLargeScreen = useMediaQuery('screen and (min-width: 1321px)');\n</script>\n\n<template>\n <header data-test=\"stash-app-topbar\" class=\"stash-app-topbar tw-absolute tw-left-0 tw-top-0\">\n <div\n class=\"tw-fixed tw-top-0 tw-flex tw-h-topbar tw-w-sidebar tw-items-center tw-pl-3 xl:tw-text-white\"\n :class=\"{\n 'tw-z-dialog tw-text-white': props.sidebarOpened,\n 'tw-z-[401] tw-text-ice-700': !props.sidebarOpened,\n }\"\n >\n <button class=\"xl:tw-hidden\" @click=\"emit('toggle-sidebar')\">\n <Icon name=\"menu\" class=\"tw-mr-3\" aria-label=\"open sidebar navigation\" />\n </button>\n\n <a :href=\"props.href\" class=\"tw-flex tw-items-center tw-text-inherit\">\n <Logo\n :color=\"props.sidebarOpened ? 'white' : 'purple'\"\n variant=\"brandmark\"\n class=\"tw-transition-colors tw-duration-500 md:tw-hidden\"\n />\n <Logo :color=\"props.sidebarOpened || isExtraLargeScreen ? 'white' : 'purple'\" class=\"tw-hidden md:tw-block\" />\n </a>\n </div>\n\n <div\n :class=\"[$attrs.class]\"\n class=\"\n tw-fixed\n tw-top-0\n tw-z-page\n tw-flex\n tw-h-topbar\n tw-w-full\n tw-flex-row-reverse\n tw-items-center\n tw-justify-between\n tw-bg-white\n tw-py-3\n tw-pl-sidebar\n tw-pr-3\n tw-shadow-md\n \"\n >\n <div class=\"tw-flex tw-items-center\">\n <!-- @slot Actions slot, for showing any actions to the left of the avatar -->\n <slot name=\"actions\"></slot>\n <div class=\"tw-ml-6\">\n <!-- @slot Avatar slot, for showing the avatar on the far right of the header -->\n <slot name=\"avatar\"></slot>\n </div>\n </div>\n <div class=\"tw-hidden tw-pl-3 xl:tw-block\">\n <!-- @slot Text slot, for showing informative texts on the left of large viewports -->\n <slot name=\"text\"></slot>\n </div>\n </div>\n </header>\n</template>\n"],"names":["isExtraLargeScreen","useMediaQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;iBAsBQA,IAAqBC,EAAc,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"AppTopbar.js","sources":["../src/components/AppTopbar/AppTopbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import useMediaQuery from '../../composables/useMediaQuery/useMediaQuery';\n import Icon from '../Icon/Icon.vue';\n import Logo from '../Logo/Logo.vue';\n\n export interface AppTopbarProps {\n /**\n * Indicates if the AppSidebar is opened or not for styling purposes\n */\n sidebarOpened?: boolean;\n /**\n * Url for the logo anchor wrapper\n */\n href?: string;\n }\n\n const props = withDefaults(defineProps<AppTopbarProps>(), {\n sidebarOpened: false,\n href: '/',\n });\n\n const emit = defineEmits(['toggle-sidebar']);\n const isExtraLargeScreen = useMediaQuery('screen and (min-width: 1321px)');\n</script>\n\n<template>\n <header data-test=\"stash-app-topbar\" class=\"stash-app-topbar tw-absolute tw-left-0 tw-top-0\">\n <div\n class=\"tw-fixed tw-top-0 tw-flex tw-h-topbar tw-w-sidebar tw-items-center tw-pl-3 xl:tw-text-white\"\n :class=\"{\n 'tw-z-dialog tw-text-white': props.sidebarOpened,\n 'tw-z-[401] tw-text-ice-700': !props.sidebarOpened,\n }\"\n >\n <button class=\"xl:tw-hidden\" @click=\"emit('toggle-sidebar')\">\n <Icon name=\"menu\" class=\"tw-mr-3\" aria-label=\"open sidebar navigation\" />\n </button>\n\n <a :href=\"props.href\" class=\"tw-flex tw-items-center tw-text-inherit\">\n <Logo\n :color=\"props.sidebarOpened ? 'white' : 'purple'\"\n variant=\"brandmark\"\n class=\"tw-transition-colors tw-duration-500 md:tw-hidden\"\n />\n <Logo :color=\"props.sidebarOpened || isExtraLargeScreen ? 'white' : 'purple'\" class=\"tw-hidden md:tw-block\" />\n </a>\n </div>\n\n <div\n :class=\"[$attrs.class]\"\n class=\"tw-fixed tw-top-0 tw-z-page tw-flex tw-h-topbar tw-w-full tw-flex-row-reverse tw-items-center tw-justify-between tw-bg-white tw-py-3 tw-pl-sidebar tw-pr-3 tw-shadow-md\"\n >\n <div class=\"tw-flex tw-items-center\">\n <!-- @slot Actions slot, for showing any actions to the left of the avatar -->\n <slot name=\"actions\"></slot>\n <div class=\"tw-ml-6\">\n <!-- @slot Avatar slot, for showing the avatar on the far right of the header -->\n <slot name=\"avatar\"></slot>\n </div>\n </div>\n <div class=\"tw-hidden tw-pl-3 xl:tw-block\">\n <!-- @slot Text slot, for showing informative texts on the left of large viewports -->\n <slot name=\"text\"></slot>\n </div>\n </div>\n </header>\n</template>\n"],"names":["props","__props","emit","__emit","isExtraLargeScreen","useMediaQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgBE,UAAMA,IAAQC,GAKRC,IAAOC,GACPC,IAAqBC,EAAc,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,9 @@
1
- import { AllowedComponentProps } from 'vue';
2
- import { ComponentCustomProps } from 'vue';
3
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
4
3
  import { DefineComponent } from 'vue';
5
4
  import { ExtractPropTypes } from 'vue';
6
5
  import { PropType } from 'vue';
7
- import { VNodeProps } from 'vue';
6
+ import { PublicProps } from 'vue';
8
7
 
9
8
  declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
9
 
@@ -44,20 +43,20 @@ export declare interface AppTopbarProps {
44
43
  href?: string;
45
44
  }
46
45
 
47
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppTopbarProps>, {
46
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppTopbarProps>, {
48
47
  sidebarOpened: boolean;
49
48
  href: string;
50
- }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
49
+ }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
51
50
  "toggle-sidebar": (...args: any[]) => void;
52
- }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppTopbarProps>, {
51
+ }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AppTopbarProps>, {
53
52
  sidebarOpened: boolean;
54
53
  href: string;
55
- }>>> & {
54
+ }>>> & Readonly<{
56
55
  "onToggle-sidebar"?: ((...args: any[]) => any) | undefined;
57
- }, {
56
+ }>, {
58
57
  href: string;
59
58
  sidebarOpened: boolean;
60
- }, {}>, {
59
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
61
60
  actions?(_: {}): any;
62
61
  avatar?(_: {}): any;
63
62
  text?(_: {}): any;
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sources":["../src/components/Avatar/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, useAttrs, useCssModule } from 'vue';\n\n import { StashCommonColor, StashPrimaryColorGroup } from '../../../types/colors';\n import colorSchemeUtil from '../../utils/colorScheme';\n\n defineOptions({\n name: 'll-avatar',\n });\n\n export interface AvatarProps {\n /**\n * The name of the user will be parsed and have its initial displayed in case the src prop is empty\n */\n name?: string;\n\n /**\n * The color for the chip that determines both the text and bg color. Needs to\n * be one of the brand colors in our design system (not a shade).\n */\n colorScheme?: StashPrimaryColorGroup;\n\n /**\n * The shade of the provided color to use for the background color. This effects the inferred\n * text color unless a specific text color is provided. Currently only `light` and `main`\n * shades are supported. `dark` may be added in the future.\n */\n shade?: 'light' | 'main';\n\n /**\n * The image that will be displayed within the avatar\n */\n src?: string;\n\n /**\n * The alternative text to be displayed in case the image is unavailable\n */\n alt?: string;\n\n /**\n * The background color of the chip. Needs to be one of our design system colors.\n */\n bgColor?: StashCommonColor;\n\n /**\n * The color of the chip text. Needs to be one of our design system colors.\n */\n textColor?: StashCommonColor;\n }\n\n const props = withDefaults(defineProps<AvatarProps>(), {\n src: undefined,\n name: '',\n alt: undefined,\n colorScheme: 'ice',\n shade: 'light',\n bgColor: undefined,\n textColor: undefined,\n });\n\n const attrs = useAttrs();\n const classes = useCssModule();\n\n const computedColors = computed(() =>\n colorSchemeUtil({\n shade: props.shade,\n color: props.colorScheme,\n }),\n );\n\n const initials = computed(() => {\n const [firstName, lastName] = String(props.name).toUpperCase().split(' ');\n const initials = lastName ? firstName.charAt(0) + lastName.charAt(0) : firstName.charAt(0);\n\n return initials;\n });\n\n const isClickable = computed(() => {\n return !!attrs.onClick;\n });\n</script>\n\n<template>\n <img\n v-if=\"props.src\"\n class=\"stash-avatar stash-avatar--image tw-inline-block tw-rounded-full\"\n :class=\"[classes.root, { [classes.clickable]: isClickable }]\"\n :alt=\"props.alt\"\n :src=\"props.src\"\n :tabindex=\"isClickable ? 0 : -1\"\n data-test=\"stash-avatar\"\n v-bind=\"attrs\"\n />\n <div\n v-else\n class=\"\n stash-avatar stash-avatar--initials\n tw-inline-block tw-cursor-default tw-rounded-full tw-text-center tw-font-semibold\n \"\n :class=\"[\n classes.root,\n `tw-text-${props.textColor || computedColors.computedTextColor}`,\n `tw-bg-${props.bgColor || computedColors.computedBgColor}`,\n { [classes.clickable]: isClickable },\n ]\"\n :tabindex=\"isClickable ? 0 : -1\"\n data-test=\"stash-avatar\"\n v-bind=\"attrs\"\n >\n {{ initials }}\n </div>\n</template>\n\n<style module>\n .root {\n font-size: theme('fontSize.sm');\n height: theme('spacing.9');\n line-height: calc(theme('spacing.9') + 2px);\n width: theme('spacing.9');\n }\n\n .clickable:hover,\n .clickable:focus,\n .clickable:active {\n outline: 1px solid var(--color-blue-500);\n outline-offset: -1px;\n }\n\n .clickable:focus,\n .clickable:active {\n box-shadow: 0 0 0 4px rgb(0 114 240 / 15%);\n }\n</style>\n"],"names":["attrs","useAttrs","classes","useCssModule","computedColors","computed","colorSchemeUtil","props","initials","firstName","lastName","isClickable"],"mappings":";;;;;;;;;;;;;;;;iBA4DQA,IAAQC,KACRC,IAAUC,KAEVC,IAAiBC;AAAA,MAAS,MAC9BC,EAAgB;AAAA,QACd,OAAOC,EAAM;AAAA,QACb,OAAOA,EAAM;AAAA,MAAA,CACd;AAAA,IAAA,GAGGC,IAAWH,EAAS,MAAM;AACxB,YAAA,CAACI,GAAWC,CAAQ,IAAI,OAAOH,EAAM,IAAI,EAAE,YAAA,EAAc,MAAM,GAAG;AAGjEC,aAFUE,IAAWD,EAAU,OAAO,CAAC,IAAIC,EAAS,OAAO,CAAC,IAAID,EAAU,OAAO,CAAC;AAAA,IAElF,CACR,GAEKE,IAAcN,EAAS,MACpB,CAAC,CAACL,EAAM,OAChB;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Avatar.js","sources":["../src/components/Avatar/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, useAttrs, useCssModule } from 'vue';\n\n import { StashCommonColor, StashPrimaryColorGroup } from '../../../types/colors';\n import colorSchemeUtil from '../../utils/colorScheme';\n\n defineOptions({\n name: 'll-avatar',\n });\n\n export interface AvatarProps {\n /**\n * The name of the user will be parsed and have its initial displayed in case the src prop is empty\n */\n name?: string;\n\n /**\n * The color for the chip that determines both the text and bg color. Needs to\n * be one of the brand colors in our design system (not a shade).\n */\n colorScheme?: StashPrimaryColorGroup;\n\n /**\n * The shade of the provided color to use for the background color. This effects the inferred\n * text color unless a specific text color is provided. Currently only `light` and `main`\n * shades are supported. `dark` may be added in the future.\n */\n shade?: 'light' | 'main';\n\n /**\n * The image that will be displayed within the avatar\n */\n src?: string;\n\n /**\n * The alternative text to be displayed in case the image is unavailable\n */\n alt?: string;\n\n /**\n * The background color of the chip. Needs to be one of our design system colors.\n */\n bgColor?: StashCommonColor;\n\n /**\n * The color of the chip text. Needs to be one of our design system colors.\n */\n textColor?: StashCommonColor;\n }\n\n const props = withDefaults(defineProps<AvatarProps>(), {\n src: undefined,\n name: '',\n alt: undefined,\n colorScheme: 'ice',\n shade: 'light',\n bgColor: undefined,\n textColor: undefined,\n });\n\n const attrs = useAttrs();\n const classes = useCssModule();\n\n const computedColors = computed(() =>\n colorSchemeUtil({\n shade: props.shade,\n color: props.colorScheme,\n }),\n );\n\n const initials = computed(() => {\n const [firstName, lastName] = String(props.name).toUpperCase().split(' ');\n const initials = lastName ? firstName.charAt(0) + lastName.charAt(0) : firstName.charAt(0);\n\n return initials;\n });\n\n const isClickable = computed(() => {\n return !!attrs.onClick;\n });\n</script>\n\n<template>\n <img\n v-if=\"props.src\"\n class=\"stash-avatar stash-avatar--image tw-inline-block tw-rounded-full\"\n :class=\"[classes.root, { [classes.clickable]: isClickable }]\"\n :alt=\"props.alt\"\n :src=\"props.src\"\n :tabindex=\"isClickable ? 0 : -1\"\n data-test=\"stash-avatar\"\n v-bind=\"attrs\"\n />\n <div\n v-else\n class=\"stash-avatar stash-avatar--initials tw-inline-block tw-cursor-default tw-rounded-full tw-text-center tw-font-semibold\"\n :class=\"[\n classes.root,\n `tw-text-${props.textColor || computedColors.computedTextColor}`,\n `tw-bg-${props.bgColor || computedColors.computedBgColor}`,\n { [classes.clickable]: isClickable },\n ]\"\n :tabindex=\"isClickable ? 0 : -1\"\n data-test=\"stash-avatar\"\n v-bind=\"attrs\"\n >\n {{ initials }}\n </div>\n</template>\n\n<style module>\n .root {\n font-size: theme('fontSize.sm');\n height: theme('spacing.9');\n line-height: calc(theme('spacing.9') + 2px);\n width: theme('spacing.9');\n }\n\n .clickable:hover,\n .clickable:focus,\n .clickable:active {\n outline: 1px solid var(--color-blue-500);\n outline-offset: -1px;\n }\n\n .clickable:focus,\n .clickable:active {\n box-shadow: 0 0 0 4px rgb(0 114 240 / 15%);\n }\n</style>\n"],"names":["props","__props","attrs","useAttrs","classes","useCssModule","computedColors","computed","colorSchemeUtil","initials","firstName","lastName","isClickable"],"mappings":";;;;;;;;;;;;;;;;AAkDE,UAAMA,IAAQC,GAURC,IAAQC,KACRC,IAAUC,KAEVC,IAAiBC;AAAA,MAAS,MAC9BC,EAAgB;AAAA,QACd,OAAOR,EAAM;AAAA,QACb,OAAOA,EAAM;AAAA,MAAA,CACd;AAAA,IAAA,GAGGS,IAAWF,EAAS,MAAM;AACxB,YAAA,CAACG,GAAWC,CAAQ,IAAI,OAAOX,EAAM,IAAI,EAAE,YAAA,EAAc,MAAM,GAAG;AAGjES,aAFUE,IAAWD,EAAU,OAAO,CAAC,IAAIC,EAAS,OAAO,CAAC,IAAID,EAAU,OAAO,CAAC;AAAA,IAElF,CACR,GAEKE,IAAcL,EAAS,MACpB,CAAC,CAACL,EAAM,OAChB;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,9 @@
1
- import { AllowedComponentProps } from 'vue';
2
- import { ComponentCustomProps } from 'vue';
3
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
4
3
  import { DefineComponent } from 'vue';
5
4
  import { ExtractPropTypes } from 'vue';
6
5
  import { PropType } from 'vue';
7
- import { VNodeProps } from 'vue';
6
+ import { PublicProps } from 'vue';
8
7
 
9
8
  declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
9
 
@@ -61,7 +60,7 @@ export declare interface AvatarProps {
61
60
  textColor?: StashCommonColor;
62
61
  }
63
62
 
64
- declare const _default: DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AvatarProps>, {
63
+ declare const _default: DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AvatarProps>, {
65
64
  src: undefined;
66
65
  name: string;
67
66
  alt: undefined;
@@ -69,7 +68,7 @@ declare const _default: DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRunt
69
68
  shade: string;
70
69
  bgColor: undefined;
71
70
  textColor: undefined;
72
- }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AvatarProps>, {
71
+ }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<AvatarProps>, {
73
72
  src: undefined;
74
73
  name: string;
75
74
  alt: undefined;
@@ -77,15 +76,15 @@ declare const _default: DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRunt
77
76
  shade: string;
78
77
  bgColor: undefined;
79
78
  textColor: undefined;
80
- }>>>, {
79
+ }>>> & Readonly<{}>, {
81
80
  name: string;
82
81
  src: string;
83
- alt: string;
84
82
  shade: "main" | "light";
85
83
  colorScheme: StashPrimaryColorGroup;
86
84
  bgColor: "ice-700" | "purple-700" | "purple-500" | "purple-100" | "royal-700" | "royal-500" | "royal-100" | "blue-700" | "blue-500" | "blue-100" | "teal-700" | "teal-500" | "teal-100" | "green-700" | "green-500" | "green-100" | "seafoam-700" | "seafoam-500" | "seafoam-100" | "yellow-700" | "yellow-500" | "yellow-100" | "orange-700" | "orange-500" | "orange-100" | "red-700" | "red-500" | "red-100" | "ice-500" | "ice-200" | "ice-100" | "white" | "black";
87
85
  textColor: "ice-700" | "purple-700" | "purple-500" | "purple-100" | "royal-700" | "royal-500" | "royal-100" | "blue-700" | "blue-500" | "blue-100" | "teal-700" | "teal-500" | "teal-100" | "green-700" | "green-500" | "green-100" | "seafoam-700" | "seafoam-500" | "seafoam-100" | "yellow-700" | "yellow-500" | "yellow-100" | "orange-700" | "orange-500" | "orange-100" | "red-700" | "red-500" | "red-100" | "ice-500" | "ice-200" | "ice-100" | "white" | "black";
88
- }, {}>;
86
+ alt: string;
87
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
89
88
  export default _default;
90
89
 
91
90
  declare type StashCommonColor = `${StashCommonColors}`;
@@ -1,9 +1,7 @@
1
- import { AllowedComponentProps } from 'vue';
2
- import { ComponentCustomProps } from 'vue';
3
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
4
3
  import { DefineComponent } from 'vue';
5
- import { ExtractPropTypes } from 'vue';
6
- import { VNodeProps } from 'vue';
4
+ import { PublicProps } from 'vue';
7
5
 
8
6
  declare type __VLS_WithTemplateSlots<T, S> = T & {
9
7
  new (): {
@@ -11,7 +9,7 @@ declare type __VLS_WithTemplateSlots<T, S> = T & {
11
9
  };
12
10
  };
13
11
 
14
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{}>>, {}, {}>, {
12
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
15
13
  default?(_: {}): any;
16
14
  }>;
17
15
  export default _default;
package/dist/Badge.js CHANGED
@@ -21,7 +21,7 @@ const D = {
21
21
  variant: { default: "standard" }
22
22
  },
23
23
  setup(p) {
24
- const t = p, o = g(), s = l(() => {
24
+ const o = g(), t = p, s = l(() => {
25
25
  const e = parseInt(t.content, 10), a = parseInt(t.max, 10);
26
26
  return e != t.content || a != t.max ? t.content : e > a ? `${a}+` : e;
27
27
  }), d = (e) => e === 0 ? "0" : `${e}px`, f = l(() => ({
package/dist/Badge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sources":["../src/components/Badge/Badge.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, ref, useCssModule, watch } from 'vue';\n\n defineOptions({\n name: 'll-badge',\n });\n\n const classes = useCssModule();\n\n export interface BadgeProps {\n /**\n * If true, the badge will animate when the content changes\n */\n animate?: boolean;\n\n /**\n * Color of the badge\n * Options: 'red' or 'blue'\n */\n color?: 'red' | 'blue';\n\n /**\n * The badge's content\n */\n content?: number | string;\n\n /**\n * Shows a gray badge with content\n */\n isDisabled?: boolean;\n\n /**\n * The max value of the `content` prop. If the value is greater than this, the badge will show the max value and a `+` sign.\n */\n max?: number | string;\n\n /**\n * Offset to adjust the badge's position. It does not apply to inline position badges.\n */\n offset?: {\n top?: number;\n right?: number;\n };\n\n /**\n * Badge position. Options:\n *\n * - inline: shows the badge directly next to the content (on the right), with a left margin of 6px\n * - top-right: will overlap the badge over whatever is passed in the default slot\n */\n position?: 'top-right' | 'inline';\n\n /**\n * The badge will be hidden if the content is `0` unless this prop is set to true.\n */\n showZero?: boolean;\n\n /**\n * Badge variant\n */\n variant?: 'dot' | 'standard';\n }\n\n const props = withDefaults(defineProps<BadgeProps>(), {\n animate: false,\n color: 'red',\n content: undefined,\n isDisabled: false,\n max: 99,\n position: 'top-right',\n offset: () => ({\n top: undefined,\n right: undefined,\n }),\n showZero: false,\n variant: 'standard',\n });\n\n const computedContent = computed(() => {\n const numericContent = parseInt(props.content as string, 10);\n const numericMax = parseInt(props.max as string, 10);\n // We want to compare the values, not the types, so it's okay to use `!=` here. i.e. if '23' = 23, then we know\n // the props are numbers, and we can compare the values. If you pass '23foobar' parseInt will return still return 23\n // but this check will fail like we want it to.\n // eslint-disable-next-line eqeqeq\n if (numericContent != props.content || numericMax != props.max) {\n return props.content;\n }\n\n return numericContent > numericMax ? `${numericMax}+` : numericContent;\n });\n\n const formatOffsetStyleValue = (value: number) => (value === 0 ? '0' : `${value}px`);\n\n const computedOffsetStyle = computed(() => ({\n top: props.offset.top !== undefined ? formatOffsetStyleValue(props.offset.top) : undefined,\n right: props.offset.right !== undefined ? formatOffsetStyleValue(props.offset.right) : undefined,\n }));\n\n const playAnimation = ref(false);\n\n watch(\n () => props.content,\n (value, oldValue) => {\n if (!props.animate) {\n return;\n }\n\n if (oldValue !== value) {\n playAnimation.value = true;\n\n setTimeout(() => {\n playAnimation.value = false;\n }, 1000);\n }\n },\n );\n</script>\n\n<template>\n <span class=\"stash-badge tw-relative tw-inline-block\" data-test=\"stash-badge\">\n <slot />\n <span\n v-show=\"props.variant === 'dot' || computedContent || (computedContent === 0 && props.showZero)\"\n data-test=\"stash-badge|content-wrapper\"\n :class=\"[\n {\n [classes['top-right']]: props.position === 'top-right' && props.variant !== 'dot',\n 'tw-absolute': props.variant === 'dot' || props.position === 'top-right',\n 'tw-ml-1.5': props.position === 'inline',\n },\n ]\"\n :style=\"props.variant === 'dot' || props.position === 'top-right' ? computedOffsetStyle : ''\"\n >\n <span\n data-test=\"stash-badge|content\"\n class=\"\n tw-inline-block\n tw-whitespace-nowrap\n tw-rounded-full\n tw-text-center\n tw-text-[10px]\n tw-font-semibold\n tw-leading-4\n tw-text-white\n \"\n :class=\"[\n {\n 'tw-animate-grow': playAnimation,\n 'tw-bg-red-500': props.color === 'red' && !props.isDisabled,\n 'tw-bg-blue-500': props.color === 'blue' && !props.isDisabled,\n 'tw-absolute': props.variant === 'dot',\n 'tw-bg-ice-200 tw-text-white': props.isDisabled,\n [classes['badge-dot']]: props.variant === 'dot',\n [classes['badge-standard']]: props.variant === 'standard',\n 'tw-px-1.5': props.variant !== 'dot',\n },\n ]\"\n >\n {{ props.variant === 'dot' ? null : computedContent }}\n </span>\n </span>\n </span>\n</template>\n\n<style module>\n .badge-standard {\n height: 15px;\n vertical-align: middle;\n }\n\n .badge-dot {\n border: 2px solid var(--color-ice-100);\n height: 10px;\n right: 0;\n width: 10px;\n }\n\n .top-right {\n top: 0;\n right: 0;\n transform: translateX(50%) translateY(-48%);\n }\n</style>\n"],"names":["classes","useCssModule","computedContent","computed","numericContent","props","numericMax","formatOffsetStyleValue","value","computedOffsetStyle","playAnimation","ref","watch","oldValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;iBAOQA,IAAUC,KAuEVC,IAAkBC,EAAS,MAAM;AACrC,YAAMC,IAAiB,SAASC,EAAM,SAAmB,EAAE,GACrDC,IAAa,SAASD,EAAM,KAAe,EAAE;AAKnD,aAAID,KAAkBC,EAAM,WAAWC,KAAcD,EAAM,MAClDA,EAAM,UAGRD,IAAiBE,IAAa,GAAGA,OAAgBF;AAAA,IAAA,CACzD,GAEKG,IAAyB,CAACC,MAAmBA,MAAU,IAAI,MAAM,GAAGA,OAEpEC,IAAsBN,EAAS,OAAO;AAAA,MAC1C,KAAKE,EAAM,OAAO,QAAQ,SAAYE,EAAuBF,EAAM,OAAO,GAAG,IAAI;AAAA,MACjF,OAAOA,EAAM,OAAO,UAAU,SAAYE,EAAuBF,EAAM,OAAO,KAAK,IAAI;AAAA,IACvF,EAAA,GAEIK,IAAgBC,EAAI,EAAK;AAE/B,WAAAC;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,CAACG,GAAOK,MAAa;AACf,QAACR,EAAM,WAIPQ,MAAaL,MACfE,EAAc,QAAQ,IAEtB,WAAW,MAAM;AACf,UAAAA,EAAc,QAAQ;AAAA,WACrB,GAAI;AAAA,MAEX;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Badge.js","sources":["../src/components/Badge/Badge.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, ref, useCssModule, watch } from 'vue';\n\n defineOptions({\n name: 'll-badge',\n });\n\n const classes = useCssModule();\n\n export interface BadgeProps {\n /**\n * If true, the badge will animate when the content changes\n */\n animate?: boolean;\n\n /**\n * Color of the badge\n * Options: 'red' or 'blue'\n */\n color?: 'red' | 'blue';\n\n /**\n * The badge's content\n */\n content?: number | string;\n\n /**\n * Shows a gray badge with content\n */\n isDisabled?: boolean;\n\n /**\n * The max value of the `content` prop. If the value is greater than this, the badge will show the max value and a `+` sign.\n */\n max?: number | string;\n\n /**\n * Offset to adjust the badge's position. It does not apply to inline position badges.\n */\n offset?: {\n top?: number;\n right?: number;\n };\n\n /**\n * Badge position. Options:\n *\n * - inline: shows the badge directly next to the content (on the right), with a left margin of 6px\n * - top-right: will overlap the badge over whatever is passed in the default slot\n */\n position?: 'top-right' | 'inline';\n\n /**\n * The badge will be hidden if the content is `0` unless this prop is set to true.\n */\n showZero?: boolean;\n\n /**\n * Badge variant\n */\n variant?: 'dot' | 'standard';\n }\n\n const props = withDefaults(defineProps<BadgeProps>(), {\n animate: false,\n color: 'red',\n content: undefined,\n isDisabled: false,\n max: 99,\n position: 'top-right',\n offset: () => ({\n top: undefined,\n right: undefined,\n }),\n showZero: false,\n variant: 'standard',\n });\n\n const computedContent = computed(() => {\n const numericContent = parseInt(props.content as string, 10);\n const numericMax = parseInt(props.max as string, 10);\n // We want to compare the values, not the types, so it's okay to use `!=` here. i.e. if '23' = 23, then we know\n // the props are numbers, and we can compare the values. If you pass '23foobar' parseInt will return still return 23\n // but this check will fail like we want it to.\n // eslint-disable-next-line eqeqeq\n if (numericContent != props.content || numericMax != props.max) {\n return props.content;\n }\n\n return numericContent > numericMax ? `${numericMax}+` : numericContent;\n });\n\n const formatOffsetStyleValue = (value: number) => (value === 0 ? '0' : `${value}px`);\n\n const computedOffsetStyle = computed(() => ({\n top: props.offset.top !== undefined ? formatOffsetStyleValue(props.offset.top) : undefined,\n right: props.offset.right !== undefined ? formatOffsetStyleValue(props.offset.right) : undefined,\n }));\n\n const playAnimation = ref(false);\n\n watch(\n () => props.content,\n (value, oldValue) => {\n if (!props.animate) {\n return;\n }\n\n if (oldValue !== value) {\n playAnimation.value = true;\n\n setTimeout(() => {\n playAnimation.value = false;\n }, 1000);\n }\n },\n );\n</script>\n\n<template>\n <span class=\"stash-badge tw-relative tw-inline-block\" data-test=\"stash-badge\">\n <slot />\n <span\n v-show=\"props.variant === 'dot' || computedContent || (computedContent === 0 && props.showZero)\"\n data-test=\"stash-badge|content-wrapper\"\n :class=\"[\n {\n [classes['top-right']]: props.position === 'top-right' && props.variant !== 'dot',\n 'tw-absolute': props.variant === 'dot' || props.position === 'top-right',\n 'tw-ml-1.5': props.position === 'inline',\n },\n ]\"\n :style=\"props.variant === 'dot' || props.position === 'top-right' ? computedOffsetStyle : ''\"\n >\n <span\n data-test=\"stash-badge|content\"\n class=\"tw-inline-block tw-whitespace-nowrap tw-rounded-full tw-text-center tw-text-[10px] tw-font-semibold tw-leading-4 tw-text-white\"\n :class=\"[\n {\n 'tw-animate-grow': playAnimation,\n 'tw-bg-red-500': props.color === 'red' && !props.isDisabled,\n 'tw-bg-blue-500': props.color === 'blue' && !props.isDisabled,\n 'tw-absolute': props.variant === 'dot',\n 'tw-bg-ice-200 tw-text-white': props.isDisabled,\n [classes['badge-dot']]: props.variant === 'dot',\n [classes['badge-standard']]: props.variant === 'standard',\n 'tw-px-1.5': props.variant !== 'dot',\n },\n ]\"\n >\n {{ props.variant === 'dot' ? null : computedContent }}\n </span>\n </span>\n </span>\n</template>\n\n<style module>\n .badge-standard {\n height: 15px;\n vertical-align: middle;\n }\n\n .badge-dot {\n border: 2px solid var(--color-ice-100);\n height: 10px;\n right: 0;\n width: 10px;\n }\n\n .top-right {\n top: 0;\n right: 0;\n transform: translateX(50%) translateY(-48%);\n }\n</style>\n"],"names":["classes","useCssModule","props","__props","computedContent","computed","numericContent","numericMax","formatOffsetStyleValue","value","computedOffsetStyle","playAnimation","ref","watch","oldValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAOE,UAAMA,IAAUC,KAwDVC,IAAQC,GAeRC,IAAkBC,EAAS,MAAM;AACrC,YAAMC,IAAiB,SAASJ,EAAM,SAAmB,EAAE,GACrDK,IAAa,SAASL,EAAM,KAAe,EAAE;AAKnD,aAAII,KAAkBJ,EAAM,WAAWK,KAAcL,EAAM,MAClDA,EAAM,UAGRI,IAAiBC,IAAa,GAAGA,OAAgBD;AAAA,IAAA,CACzD,GAEKE,IAAyB,CAACC,MAAmBA,MAAU,IAAI,MAAM,GAAGA,OAEpEC,IAAsBL,EAAS,OAAO;AAAA,MAC1C,KAAKH,EAAM,OAAO,QAAQ,SAAYM,EAAuBN,EAAM,OAAO,GAAG,IAAI;AAAA,MACjF,OAAOA,EAAM,OAAO,UAAU,SAAYM,EAAuBN,EAAM,OAAO,KAAK,IAAI;AAAA,IACvF,EAAA,GAEIS,IAAgBC,EAAI,EAAK;AAE/B,WAAAC;AAAA,MACE,MAAMX,EAAM;AAAA,MACZ,CAACO,GAAOK,MAAa;AACf,QAACZ,EAAM,WAIPY,MAAaL,MACfE,EAAc,QAAQ,IAEtB,WAAW,MAAM;AACf,UAAAA,EAAc,QAAQ;AAAA,WACrB,GAAI;AAAA,MAEX;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,9 @@
1
- import { AllowedComponentProps } from 'vue';
2
- import { ComponentCustomProps } from 'vue';
3
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
4
3
  import { DefineComponent } from 'vue';
5
4
  import { ExtractPropTypes } from 'vue';
6
5
  import { PropType } from 'vue';
7
- import { VNodeProps } from 'vue';
6
+ import { PublicProps } from 'vue';
8
7
 
9
8
  declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
9
 
@@ -79,7 +78,7 @@ export declare interface BadgeProps {
79
78
  variant?: 'dot' | 'standard';
80
79
  }
81
80
 
82
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BadgeProps>, {
81
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BadgeProps>, {
83
82
  animate: boolean;
84
83
  color: string;
85
84
  content: undefined;
@@ -92,7 +91,7 @@ declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaul
92
91
  };
93
92
  showZero: boolean;
94
93
  variant: string;
95
- }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BadgeProps>, {
94
+ }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BadgeProps>, {
96
95
  animate: boolean;
97
96
  color: string;
98
97
  content: undefined;
@@ -105,10 +104,10 @@ declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaul
105
104
  };
106
105
  showZero: boolean;
107
106
  variant: string;
108
- }>>>, {
107
+ }>>> & Readonly<{}>, {
108
+ max: string | number;
109
109
  animate: boolean;
110
110
  color: "blue" | "red";
111
- max: string | number;
112
111
  offset: {
113
112
  top?: number | undefined;
114
113
  right?: number | undefined;
@@ -118,7 +117,7 @@ declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaul
118
117
  variant: "standard" | "dot";
119
118
  isDisabled: boolean;
120
119
  showZero: boolean;
121
- }, {}>, {
120
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
122
121
  default?(_: {}): any;
123
122
  }>;
124
123
  export default _default;
package/dist/Box.vue.d.ts CHANGED
@@ -1,10 +1,9 @@
1
- import { AllowedComponentProps } from 'vue';
2
- import { ComponentCustomProps } from 'vue';
3
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
4
3
  import { DefineComponent } from 'vue';
5
4
  import { ExtractPropTypes } from 'vue';
6
5
  import { PropType } from 'vue';
7
- import { VNodeProps } from 'vue';
6
+ import { PublicProps } from 'vue';
8
7
 
9
8
  declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
9
 
@@ -52,22 +51,22 @@ export declare interface BoxProps {
52
51
  radius?: 'none' | 'rounded';
53
52
  }
54
53
 
55
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BoxProps>, {
54
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BoxProps>, {
56
55
  disablePadding: boolean;
57
56
  disableGutters: boolean;
58
57
  disableElevation: boolean;
59
58
  radius: string;
60
- }>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BoxProps>, {
59
+ }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BoxProps>, {
61
60
  disablePadding: boolean;
62
61
  disableGutters: boolean;
63
62
  disableElevation: boolean;
64
63
  radius: string;
65
- }>>>, {
64
+ }>>> & Readonly<{}>, {
66
65
  radius: "none" | "rounded";
67
66
  disablePadding: boolean;
68
67
  disableGutters: boolean;
69
68
  disableElevation: boolean;
70
- }, {}>, {
69
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
71
70
  default?(_: {}): any;
72
71
  }>;
73
72
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"Box.vue_vue_type_script_setup_true_lang-69e5176b.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Box.vue_vue_type_script_setup_true_lang-69e5176b.js","sources":["../src/components/Box/Box.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n defineOptions({\n name: 'll-box',\n });\n\n export interface BoxProps {\n /**\n * Remove the padding around the entire Box.\n */\n disablePadding?: boolean;\n\n /**\n * Remove the padding on the left and right of the Box.\n */\n disableGutters?: boolean;\n\n /**\n * Remove the padding on the left and right of the Box.\n */\n disableElevation?: boolean;\n\n /**\n * Border radius style. Defaults to `rounded`.\n */\n radius?: 'none' | 'rounded';\n }\n\n const props = withDefaults(defineProps<BoxProps>(), {\n disablePadding: false,\n disableGutters: false,\n disableElevation: false,\n radius: 'rounded',\n });\n</script>\n\n<template>\n <section\n class=\"stash-box tw-bg-white\"\n :class=\"{\n 'tw-rounded': props.radius === 'rounded',\n 'tw-p-gutter': !props.disablePadding && !props.disableGutters,\n 'tw-py-gutter': props.disableGutters,\n 'tw-shadow': !props.disableElevation,\n }\"\n data-test=\"stash-box\"\n >\n <!-- @slot default -->\n <slot></slot>\n </section>\n</template>\n"],"names":["props","__props"],"mappings":";;;;;;;;;;;AA2BE,UAAMA,IAAQC;;;;;;;;;;;;;;"}