@leaflink/stash 42.5.0 → 42.5.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 (227) hide show
  1. package/README.md +24 -3
  2. package/dist/ActionsDropdown.js +15 -20
  3. package/dist/ActionsDropdown.js.map +1 -1
  4. package/dist/AddressSelect.js +34 -45
  5. package/dist/AddressSelect.js.map +1 -1
  6. package/dist/Alert.js +11 -13
  7. package/dist/Alert.js.map +1 -1
  8. package/dist/AppNavigationItem.js +4 -6
  9. package/dist/AppNavigationItem.js.map +1 -1
  10. package/dist/AppTopbar.js +13 -15
  11. package/dist/AppTopbar.js.map +1 -1
  12. package/dist/ButtonGroup.js +12 -14
  13. package/dist/ButtonGroup.js.map +1 -1
  14. package/dist/CardMedia.js +9 -11
  15. package/dist/CardMedia.js.map +1 -1
  16. package/dist/Carousel.js +41 -44
  17. package/dist/Carousel.js.map +1 -1
  18. package/dist/Checkbox.js +9 -11
  19. package/dist/Checkbox.js.map +1 -1
  20. package/dist/ChevronToggle.js +2 -4
  21. package/dist/ChevronToggle.js.map +1 -1
  22. package/dist/Chip.js +4 -6
  23. package/dist/Chip.js.map +1 -1
  24. package/dist/ContextSwitcher.js +12 -17
  25. package/dist/ContextSwitcher.js.map +1 -1
  26. package/dist/Copy.js +19 -24
  27. package/dist/Copy.js.map +1 -1
  28. package/dist/CurrencyInput.js +8 -13
  29. package/dist/CurrencyInput.js.map +1 -1
  30. package/dist/DataView.js +48 -59
  31. package/dist/DataView.js.map +1 -1
  32. package/dist/DataViewFilters.js +87 -97
  33. package/dist/DataViewFilters.js.map +1 -1
  34. package/dist/DataViewSortButton.js +14 -18
  35. package/dist/DataViewSortButton.js.map +1 -1
  36. package/dist/DataViewToolbar.js +12 -14
  37. package/dist/DataViewToolbar.js.map +1 -1
  38. package/dist/DatePicker.js +8 -18
  39. package/dist/DatePicker.js.map +1 -1
  40. package/dist/Dialog.js +6 -9
  41. package/dist/Dialog.js.map +1 -1
  42. package/dist/Dropdown.js +15 -20
  43. package/dist/Dropdown.js.map +1 -1
  44. package/dist/EmptyState.js +10 -13
  45. package/dist/EmptyState.js.map +1 -1
  46. package/dist/Field.js +3 -6
  47. package/dist/Field.js.map +1 -1
  48. package/dist/{Field.vue_vue_type_script_setup_true_lang-c864abd3.js → Field.vue_vue_type_script_setup_true_lang-475832fe.js} +2 -2
  49. package/dist/{Field.vue_vue_type_script_setup_true_lang-c864abd3.js.map → Field.vue_vue_type_script_setup_true_lang-475832fe.js.map} +1 -1
  50. package/dist/FileUpload.js +27 -30
  51. package/dist/FileUpload.js.map +1 -1
  52. package/dist/FilterChip.js +10 -13
  53. package/dist/FilterChip.js.map +1 -1
  54. package/dist/FilterDrawerItem.js +5 -8
  55. package/dist/FilterDrawerItem.js.map +1 -1
  56. package/dist/FilterDropdown.js +73 -88
  57. package/dist/FilterDropdown.js.map +1 -1
  58. package/dist/FilterSelect.js +15 -18
  59. package/dist/FilterSelect.js.map +1 -1
  60. package/dist/Filters.js +67 -78
  61. package/dist/Filters.js.map +1 -1
  62. package/dist/HttpError.js +4 -7
  63. package/dist/HttpError.js.map +1 -1
  64. package/dist/Icon.js +236 -14
  65. package/dist/Icon.js.map +1 -1
  66. package/dist/Icon.vue.d.ts +2 -2
  67. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js +11 -0
  68. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js.map +1 -0
  69. package/dist/IconLabel.js +4 -6
  70. package/dist/IconLabel.js.map +1 -1
  71. package/dist/Illustration.js +6 -8
  72. package/dist/Illustration.js.map +1 -1
  73. package/dist/Image.js +39 -49
  74. package/dist/Image.js.map +1 -1
  75. package/dist/InlineEdit.js +10 -12
  76. package/dist/InlineEdit.js.map +1 -1
  77. package/dist/Input.js +50 -55
  78. package/dist/Input.js.map +1 -1
  79. package/dist/InputOptions.js +20 -29
  80. package/dist/InputOptions.js.map +1 -1
  81. package/dist/Label.js +1 -4
  82. package/dist/Label.js.map +1 -1
  83. package/dist/LicenseChip.js +7 -9
  84. package/dist/LicenseChip.js.map +1 -1
  85. package/dist/ListItem.js +11 -13
  86. package/dist/ListItem.js.map +1 -1
  87. package/dist/ListView.js +47 -58
  88. package/dist/ListView.js.map +1 -1
  89. package/dist/Metric.js +6 -8
  90. package/dist/Metric.js.map +1 -1
  91. package/dist/Modal.js +16 -19
  92. package/dist/Modal.js.map +1 -1
  93. package/dist/Modals.js +16 -26
  94. package/dist/Modals.js.map +1 -1
  95. package/dist/ModalsPlugin.js +12 -22
  96. package/dist/ModalsPlugin.js.map +1 -1
  97. package/dist/ObfuscateText.js +7 -9
  98. package/dist/ObfuscateText.js.map +1 -1
  99. package/dist/PageNavigation.js +25 -29
  100. package/dist/PageNavigation.js.map +1 -1
  101. package/dist/Paginate.js +29 -31
  102. package/dist/Paginate.js.map +1 -1
  103. package/dist/QuickAction.js +13 -15
  104. package/dist/QuickAction.js.map +1 -1
  105. package/dist/RadioGroup.js +86 -89
  106. package/dist/RadioGroup.js.map +1 -1
  107. package/dist/SearchBar.js +18 -20
  108. package/dist/SearchBar.js.map +1 -1
  109. package/dist/Select.js +13 -23
  110. package/dist/Select.js.map +1 -1
  111. package/dist/SelectStatus.js +26 -36
  112. package/dist/SelectStatus.js.map +1 -1
  113. package/dist/Step.js +19 -21
  114. package/dist/Step.js.map +1 -1
  115. package/dist/Switch.js +8 -10
  116. package/dist/Switch.js.map +1 -1
  117. package/dist/Tab.js +25 -30
  118. package/dist/Tab.js.map +1 -1
  119. package/dist/Table.js +19 -21
  120. package/dist/Table.js.map +1 -1
  121. package/dist/TableCell.js +21 -22
  122. package/dist/TableCell.js.map +1 -1
  123. package/dist/TableHeaderCell.js +4 -4
  124. package/dist/TableHeaderRow.js +7 -9
  125. package/dist/TableHeaderRow.js.map +1 -1
  126. package/dist/TableRow.js +22 -24
  127. package/dist/TableRow.js.map +1 -1
  128. package/dist/Tabs.js +11 -16
  129. package/dist/Tabs.js.map +1 -1
  130. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-ba383fda.js → Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js} +3 -3
  131. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-ba383fda.js.map → Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js.map} +1 -1
  132. package/dist/Textarea.js +10 -13
  133. package/dist/Textarea.js.map +1 -1
  134. package/dist/Toast.js +8 -10
  135. package/dist/Toast.js.map +1 -1
  136. package/dist/Toasts.js +14 -25
  137. package/dist/Toasts.js.map +1 -1
  138. package/dist/ToastsPlugin.js +14 -25
  139. package/dist/ToastsPlugin.js.map +1 -1
  140. package/dist/components.css +1 -1
  141. package/dist/index.js +53 -62
  142. package/dist/index.js.map +1 -1
  143. package/dist/locale.js +12 -15
  144. package/dist/locale.js.map +1 -1
  145. package/dist/{searchFuzzy-13c124f8.js → searchFuzzy-74a7de1c.js} +2 -2
  146. package/dist/{searchFuzzy-13c124f8.js.map → searchFuzzy-74a7de1c.js.map} +1 -1
  147. package/dist/storage.js +6 -11
  148. package/dist/storage.js.map +1 -1
  149. package/dist/tailwind-base.d.ts +1 -0
  150. package/dist/tailwind-base.js +1 -0
  151. package/dist/tailwind-base.js.map +1 -1
  152. package/dist/tooltip.js +21 -26
  153. package/dist/tooltip.js.map +1 -1
  154. package/dist/useGoogleMaps.js +91 -226
  155. package/dist/useGoogleMaps.js.map +1 -1
  156. package/dist/useModals.js +21 -31
  157. package/dist/useModals.js.map +1 -1
  158. package/dist/useSearch.js +17 -22
  159. package/dist/useSearch.js.map +1 -1
  160. package/dist/useToasts.js +25 -36
  161. package/dist/useToasts.js.map +1 -1
  162. package/dist/useValidation.js +79 -108
  163. package/dist/useValidation.js.map +1 -1
  164. package/dist/utils/calculateElementOverflow.js +9 -14
  165. package/dist/utils/calculateElementOverflow.js.map +1 -1
  166. package/dist/utils/createQueryString.js +9 -15
  167. package/dist/utils/createQueryString.js.map +1 -1
  168. package/dist/utils/helpers.js +46 -59
  169. package/dist/utils/helpers.js.map +1 -1
  170. package/dist/utils/i18n.js +17 -20
  171. package/dist/utils/i18n.js.map +1 -1
  172. package/dist/utils/searchFuzzy.js +7 -12
  173. package/dist/utils/searchFuzzy.js.map +1 -1
  174. package/dist/utils/storage.js +10 -15
  175. package/dist/utils/storage.js.map +1 -1
  176. package/dist/viewable.js +26 -34
  177. package/dist/viewable.js.map +1 -1
  178. package/package.json +2 -4
  179. package/tailwind-base.ts +1 -0
  180. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js +0 -243
  181. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js.map +0 -1
  182. package/dist/_MapCache-65811284.js +0 -188
  183. package/dist/_MapCache-65811284.js.map +0 -1
  184. package/dist/_Uint8Array-06e4d083.js +0 -66
  185. package/dist/_Uint8Array-06e4d083.js.map +0 -1
  186. package/dist/_baseAssignValue-dd1499b4.js +0 -22
  187. package/dist/_baseAssignValue-dd1499b4.js.map +0 -1
  188. package/dist/_baseIsEqual-d594c87f.js +0 -171
  189. package/dist/_baseIsEqual-d594c87f.js.map +0 -1
  190. package/dist/_createCompounder-ae01a723.js +0 -245
  191. package/dist/_createCompounder-ae01a723.js.map +0 -1
  192. package/dist/_getAllKeys-5e735d41.js +0 -44
  193. package/dist/_getAllKeys-5e735d41.js.map +0 -1
  194. package/dist/_getPrototype-3e6fccd6.js +0 -7
  195. package/dist/_getPrototype-3e6fccd6.js.map +0 -1
  196. package/dist/_getTag-4db47fa6.js +0 -47
  197. package/dist/_getTag-4db47fa6.js.map +0 -1
  198. package/dist/_initCloneObject-161353b9.js +0 -88
  199. package/dist/_initCloneObject-161353b9.js.map +0 -1
  200. package/dist/_overArg-6d920d99.js +0 -9
  201. package/dist/_overArg-6d920d99.js.map +0 -1
  202. package/dist/capitalize-667d9f60.js +0 -42
  203. package/dist/capitalize-667d9f60.js.map +0 -1
  204. package/dist/cloneDeep-5bc375b0.js +0 -146
  205. package/dist/cloneDeep-5bc375b0.js.map +0 -1
  206. package/dist/debounce-6aca1ca9.js +0 -86
  207. package/dist/debounce-6aca1ca9.js.map +0 -1
  208. package/dist/get-27d90892.js +0 -66
  209. package/dist/get-27d90892.js.map +0 -1
  210. package/dist/identity-452d03fd.js +0 -20
  211. package/dist/identity-452d03fd.js.map +0 -1
  212. package/dist/isArrayLike-09233e52.js +0 -61
  213. package/dist/isArrayLike-09233e52.js.map +0 -1
  214. package/dist/isEmpty-2fbad344.js +0 -23
  215. package/dist/isEmpty-2fbad344.js.map +0 -1
  216. package/dist/isEqual-fca467fb.js +0 -8
  217. package/dist/isEqual-fca467fb.js.map +0 -1
  218. package/dist/isObjectLike-54341556.js +0 -39
  219. package/dist/isObjectLike-54341556.js.map +0 -1
  220. package/dist/isPlainObject-55c7f916.js +0 -16
  221. package/dist/isPlainObject-55c7f916.js.map +0 -1
  222. package/dist/merge-b14fad9d.js +0 -124
  223. package/dist/merge-b14fad9d.js.map +0 -1
  224. package/dist/toString-7d5bf363.js +0 -29
  225. package/dist/toString-7d5bf363.js.map +0 -1
  226. package/dist/uniqueId-847efe53.js +0 -10
  227. package/dist/uniqueId-847efe53.js.map +0 -1
@@ -1,8 +1,6 @@
1
1
  import { defineComponent as m, computed as r, ref as b, openBlock as n, createElementBlock as s, normalizeClass as p, Fragment as g, renderList as $, withModifiers as y, toDisplayString as B } from "vue";
2
- import { u as h } from "./uniqueId-847efe53.js";
2
+ import h from "lodash-es/uniqueId";
3
3
  import { _ as k } from "./_plugin-vue_export-helper-dad06003.js";
4
- import "./toString-7d5bf363.js";
5
- import "./isObjectLike-54341556.js";
6
4
  const C = ["data-test"], G = ["data-test", "disabled", "onClick"], w = {
7
5
  name: "ll-button-group"
8
6
  }, D = /* @__PURE__ */ m({
@@ -18,10 +16,10 @@ const C = ["data-test"], G = ["data-test", "disabled", "onClick"], w = {
18
16
  setup(v, { emit: _ }) {
19
17
  const e = v, u = r(() => e.options.length === 1), i = r(() => e.allowDeactivate || u.value), a = b(e.options.find((t) => t.active) || null);
20
18
  function f(t) {
21
- var l;
22
- i.value && ((l = a.value) == null ? void 0 : l.id) === t.id ? a.value = null : a.value = t, _("input", a.value);
19
+ var o;
20
+ i.value && ((o = a.value) == null ? void 0 : o.id) === t.id ? a.value = null : a.value = t, _("input", a.value);
23
21
  }
24
- return (t, l) => (n(), s("div", {
22
+ return (t, o) => (n(), s("div", {
25
23
  class: p([
26
24
  "flex",
27
25
  t.$style.buttonGroup,
@@ -31,16 +29,16 @@ const C = ["data-test"], G = ["data-test", "disabled", "onClick"], w = {
31
29
  ]),
32
30
  "data-test": `button-group-${t.$props.groupName}`
33
31
  }, [
34
- (n(!0), s(g, null, $(e.options, (o) => {
32
+ (n(!0), s(g, null, $(e.options, (l) => {
35
33
  var c, d;
36
34
  return n(), s("button", {
37
- key: `${e.groupName}-${o.id}`,
38
- class: p([t.$style.button, { [t.$style.active]: ((c = a.value) == null ? void 0 : c.id) === o.id }]),
39
- "data-test": `${e.groupName}-button-${((d = a.value) == null ? void 0 : d.id) === o.id ? "active" : "inactive"}`,
35
+ key: `${e.groupName}-${l.id}`,
36
+ class: p([t.$style.button, { [t.$style.active]: ((c = a.value) == null ? void 0 : c.id) === l.id }]),
37
+ "data-test": `${e.groupName}-button-${((d = a.value) == null ? void 0 : d.id) === l.id ? "active" : "inactive"}`,
40
38
  tabindex: 0,
41
39
  disabled: e.disabled,
42
- onClick: y((E) => f(o), ["prevent"])
43
- }, B(o.text), 11, G);
40
+ onClick: y((E) => f(l), ["prevent"])
41
+ }, B(l.text), 11, G);
44
42
  }), 128))
45
43
  ], 10, C));
46
44
  }
@@ -52,8 +50,8 @@ const C = ["data-test"], G = ["data-test", "disabled", "onClick"], w = {
52
50
  "can-deactivate": "_can-deactivate_15lt7_215"
53
51
  }, z = {
54
52
  $style: q
55
- }, A = /* @__PURE__ */ k(D, [["__cssModules", z]]);
53
+ }, j = /* @__PURE__ */ k(D, [["__cssModules", z]]);
56
54
  export {
57
- A as default
55
+ j as default
58
56
  };
59
57
  //# sourceMappingURL=ButtonGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","sources":["../src/components/ButtonGroup/ButtonGroup.vue"],"sourcesContent":["<script lang=\"ts\">\n /**\n * @deprecated use RadioGroup instead with `variant=\"button\"`.\n * RadioGroup uses pretty much the same API as the ButtonGroup,\n * but every button is a radio element which makes more sense semantically.\n */\n export default {\n name: 'll-button-group',\n };\n</script>\n\n<script lang=\"ts\" setup>\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, ref } from 'vue';\n\n export interface ButtonGroupOption {\n id: string;\n active?: boolean;\n text: string;\n }\n\n export interface ButtonGroupProps {\n /**\n * A name for the group, useful when multiple ButtonGroups exist on the page\n */\n groupName?: string;\n\n /**\n * The list of buttons to render\n */\n options: ButtonGroupOption[];\n\n /**\n * Whether the group should expand to the parent's width\n */\n fullWidth?: boolean;\n\n /**\n * Whether the entire group should be disabled\n */\n disabled?: boolean;\n\n /**\n * Whether the active button can be deactivated\n */\n allowDeactivate?: boolean;\n }\n\n const props = withDefaults(defineProps<ButtonGroupProps>(), {\n groupName: uniqueId(),\n fullWidth: false,\n disabled: false,\n allowDeactivate: false,\n });\n\n const emit =\n defineEmits<{\n (e: 'input', activeButton: ButtonGroupOption | null): void;\n }>();\n\n const isSingleButton = computed(() => props.options.length === 1);\n\n const canDeactivate = computed(() => props.allowDeactivate || isSingleButton.value);\n\n const activeButton = ref(props.options.find((o) => o.active) || null);\n\n function onClick(clickedOption: ButtonGroupOption) {\n if (canDeactivate.value && activeButton.value?.id === clickedOption.id) {\n activeButton.value = null;\n } else {\n activeButton.value = clickedOption;\n }\n\n emit('input', activeButton.value);\n }\n</script>\n\n<template>\n <div\n :class=\"[\n 'flex',\n $style.buttonGroup,\n { 'w-full': props.fullWidth },\n { [$style.single]: isSingleButton },\n { [$style['can-deactivate']]: canDeactivate },\n ]\"\n :data-test=\"`button-group-${$props.groupName}`\"\n >\n <button\n v-for=\"option in props.options\"\n :key=\"`${props.groupName}-${option.id}`\"\n :class=\"[$style.button, { [$style.active]: activeButton?.id === option.id }]\"\n :data-test=\"`${props.groupName}-button-${activeButton?.id === option.id ? 'active' : 'inactive'}`\"\n :tabindex=\"0\"\n :disabled=\"props.disabled\"\n @click.prevent=\"onClick(option)\"\n >\n {{ option.text }}\n </button>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n // full width buttons\n .buttonGroup:global(.w-full) > button {\n flex: 1 1 50%;\n max-width: 100%;\n }\n\n .button {\n border: 1px solid var(--color-ice);\n border-radius: 0;\n font-weight: var(--font-weight-semibold);\n line-height: var(--line-height-body);\n min-width: 100px;\n padding: 7px 8px;\n }\n\n .single .button {\n border: 1px solid var(--color-ice-700);\n color: var(--color-ice-700);\n }\n\n .button:focus,\n .button:hover {\n border: 1px solid var(--color-blue) !important;\n color: var(--color-blue);\n z-index: 1;\n }\n\n .button.active {\n background-color: var(--color-blue-100);\n border: 1px solid var(--color-blue) !important;\n color: var(--color-blue);\n cursor: default;\n z-index: 1;\n }\n\n .button.active + button {\n border-left: 1px solid transparent;\n }\n\n .single .button.active,\n .can-deactivate .button.active {\n cursor: pointer;\n }\n\n .button[disabled] {\n color: var(--color-ice);\n cursor: default;\n pointer-events: none;\n }\n\n .button:focus {\n box-shadow: none;\n outline: 0;\n }\n\n .button:not(:first-child) {\n margin-left: -1px;\n }\n\n .button:not(:last-child) {\n border-right: 1px solid transparent;\n }\n\n .button:first-child {\n border-bottom-left-radius: var(--border-radius);\n border-top-left-radius: var(--border-radius);\n }\n\n .button:last-child {\n border-bottom-right-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n</style>\n"],"names":["isSingleButton","computed","props","canDeactivate","activeButton","ref","o","onClick","clickedOption","_a","emit"],"mappings":";;;;;uEAMiB;AAAA,EACb,MAAM;AACR;;;;;;;;;;;iBAoDMA,IAAiBC,EAAS,MAAMC,EAAM,QAAQ,WAAW,CAAC,GAE1DC,IAAgBF,EAAS,MAAMC,EAAM,mBAAmBF,EAAe,KAAK,GAE5EI,IAAeC,EAAIH,EAAM,QAAQ,KAAK,CAACI,MAAMA,EAAE,MAAM,KAAK,IAAI;AAEpE,aAASC,EAAQC,GAAkC;;AACjD,MAAIL,EAAc,WAASM,IAAAL,EAAa,UAAb,gBAAAK,EAAoB,QAAOD,EAAc,KAClEJ,EAAa,QAAQ,OAErBA,EAAa,QAAQI,GAGlBE,EAAA,SAASN,EAAa,KAAK;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ButtonGroup.js","sources":["../src/components/ButtonGroup/ButtonGroup.vue"],"sourcesContent":["<script lang=\"ts\">\n /**\n * @deprecated use RadioGroup instead with `variant=\"button\"`.\n * RadioGroup uses pretty much the same API as the ButtonGroup,\n * but every button is a radio element which makes more sense semantically.\n */\n export default {\n name: 'll-button-group',\n };\n</script>\n\n<script lang=\"ts\" setup>\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, ref } from 'vue';\n\n export interface ButtonGroupOption {\n id: string;\n active?: boolean;\n text: string;\n }\n\n export interface ButtonGroupProps {\n /**\n * A name for the group, useful when multiple ButtonGroups exist on the page\n */\n groupName?: string;\n\n /**\n * The list of buttons to render\n */\n options: ButtonGroupOption[];\n\n /**\n * Whether the group should expand to the parent's width\n */\n fullWidth?: boolean;\n\n /**\n * Whether the entire group should be disabled\n */\n disabled?: boolean;\n\n /**\n * Whether the active button can be deactivated\n */\n allowDeactivate?: boolean;\n }\n\n const props = withDefaults(defineProps<ButtonGroupProps>(), {\n groupName: uniqueId(),\n fullWidth: false,\n disabled: false,\n allowDeactivate: false,\n });\n\n const emit =\n defineEmits<{\n (e: 'input', activeButton: ButtonGroupOption | null): void;\n }>();\n\n const isSingleButton = computed(() => props.options.length === 1);\n\n const canDeactivate = computed(() => props.allowDeactivate || isSingleButton.value);\n\n const activeButton = ref(props.options.find((o) => o.active) || null);\n\n function onClick(clickedOption: ButtonGroupOption) {\n if (canDeactivate.value && activeButton.value?.id === clickedOption.id) {\n activeButton.value = null;\n } else {\n activeButton.value = clickedOption;\n }\n\n emit('input', activeButton.value);\n }\n</script>\n\n<template>\n <div\n :class=\"[\n 'flex',\n $style.buttonGroup,\n { 'w-full': props.fullWidth },\n { [$style.single]: isSingleButton },\n { [$style['can-deactivate']]: canDeactivate },\n ]\"\n :data-test=\"`button-group-${$props.groupName}`\"\n >\n <button\n v-for=\"option in props.options\"\n :key=\"`${props.groupName}-${option.id}`\"\n :class=\"[$style.button, { [$style.active]: activeButton?.id === option.id }]\"\n :data-test=\"`${props.groupName}-button-${activeButton?.id === option.id ? 'active' : 'inactive'}`\"\n :tabindex=\"0\"\n :disabled=\"props.disabled\"\n @click.prevent=\"onClick(option)\"\n >\n {{ option.text }}\n </button>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n // full width buttons\n .buttonGroup:global(.w-full) > button {\n flex: 1 1 50%;\n max-width: 100%;\n }\n\n .button {\n border: 1px solid var(--color-ice);\n border-radius: 0;\n font-weight: var(--font-weight-semibold);\n line-height: var(--line-height-body);\n min-width: 100px;\n padding: 7px 8px;\n }\n\n .single .button {\n border: 1px solid var(--color-ice-700);\n color: var(--color-ice-700);\n }\n\n .button:focus,\n .button:hover {\n border: 1px solid var(--color-blue) !important;\n color: var(--color-blue);\n z-index: 1;\n }\n\n .button.active {\n background-color: var(--color-blue-100);\n border: 1px solid var(--color-blue) !important;\n color: var(--color-blue);\n cursor: default;\n z-index: 1;\n }\n\n .button.active + button {\n border-left: 1px solid transparent;\n }\n\n .single .button.active,\n .can-deactivate .button.active {\n cursor: pointer;\n }\n\n .button[disabled] {\n color: var(--color-ice);\n cursor: default;\n pointer-events: none;\n }\n\n .button:focus {\n box-shadow: none;\n outline: 0;\n }\n\n .button:not(:first-child) {\n margin-left: -1px;\n }\n\n .button:not(:last-child) {\n border-right: 1px solid transparent;\n }\n\n .button:first-child {\n border-bottom-left-radius: var(--border-radius);\n border-top-left-radius: var(--border-radius);\n }\n\n .button:last-child {\n border-bottom-right-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n</style>\n"],"names":["isSingleButton","computed","props","canDeactivate","activeButton","ref","o","onClick","clickedOption","_a","emit"],"mappings":";;;uEAMiB;AAAA,EACb,MAAM;AACR;;;;;;;;;;;iBAoDMA,IAAiBC,EAAS,MAAMC,EAAM,QAAQ,WAAW,CAAC,GAE1DC,IAAgBF,EAAS,MAAMC,EAAM,mBAAmBF,EAAe,KAAK,GAE5EI,IAAeC,EAAIH,EAAM,QAAQ,KAAK,CAACI,MAAMA,EAAE,MAAM,KAAK,IAAI;AAEpE,aAASC,EAAQC,GAAkC;;AACjD,MAAIL,EAAc,WAASM,IAAAL,EAAa,UAAb,gBAAAK,EAAoB,QAAOD,EAAc,KAClEJ,EAAa,QAAQ,OAErBA,EAAa,QAAQI,GAGlBE,EAAA,SAASN,EAAa,KAAK;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/CardMedia.js CHANGED
@@ -1,11 +1,9 @@
1
- import { defineComponent as m, ref as a, useCssModule as u, openBlock as l, createElementBlock as c, normalizeClass as n, unref as i, createVNode as p, createCommentVNode as _, createElementVNode as f } from "vue";
1
+ import { defineComponent as m, ref as a, useCssModule as u, openBlock as l, createElementBlock as c, normalizeClass as n, unref as d, createVNode as p, createCommentVNode as _, createElementVNode as f } from "vue";
2
2
  import w from "./Icon.js";
3
3
  import { _ as z } from "./_plugin-vue_export-helper-dad06003.js";
4
- import "./Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js";
5
- import "./uniqueId-847efe53.js";
6
- import "./toString-7d5bf363.js";
7
- import "./isObjectLike-54341556.js";
4
+ import "lodash-es/uniqueId";
8
5
  import "./index-79ce320f.js";
6
+ import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
9
7
  const h = {
10
8
  class: "stash-card-media",
11
9
  "data-test": "stash-card-media"
@@ -15,16 +13,16 @@ const h = {
15
13
  src: {},
16
14
  alt: {}
17
15
  },
18
- setup(d) {
19
- const t = d, s = a(!0), o = a(!1), r = u();
16
+ setup(i) {
17
+ const t = i, s = a(!0), o = a(!1), r = u();
20
18
  return (E, e) => (l(), c("div", h, [
21
19
  s.value || o.value ? (l(), c("div", {
22
20
  key: 0,
23
- class: n([i(r).placeholder, "tw-bg-ice-200 tw-flex tw-items-center tw-justify-center tw-rounded-t tw-w-full"])
21
+ class: n([d(r).placeholder, "tw-bg-ice-200 tw-flex tw-items-center tw-justify-center tw-rounded-t tw-w-full"])
24
22
  }, [
25
23
  p(w, {
26
24
  name: "image",
27
- class: n(i(r).iconSize)
25
+ class: n(d(r).iconSize)
28
26
  }, null, 8, ["class"])
29
27
  ], 2)) : _("", !0),
30
28
  f("img", {
@@ -41,8 +39,8 @@ const h = {
41
39
  iconSize: g
42
40
  }, y = {
43
41
  $style: x
44
- }, I = /* @__PURE__ */ z(C, [["__cssModules", y]]);
42
+ }, b = /* @__PURE__ */ z(C, [["__cssModules", y]]);
45
43
  export {
46
- I as default
44
+ b as default
47
45
  };
48
46
  //# sourceMappingURL=CardMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardMedia.js","sources":["../src/components/CardMedia/CardMedia.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ref, useCssModule } from 'vue';\n\n import Icon from '../Icon/Icon.vue';\n\n export interface CardMediaProps {\n /**\n * The image source.\n */\n src: string;\n /**\n * The image alternative text.\n */\n alt?: string;\n }\n\n const isLoading = ref(true);\n\n const hasErrored = ref(false);\n\n const props = defineProps<CardMediaProps>();\n\n const classes = useCssModule();\n</script>\n\n<template>\n <div class=\"stash-card-media\" data-test=\"stash-card-media\">\n <div\n v-if=\"isLoading || hasErrored\"\n :class=\"classes.placeholder\"\n class=\"tw-bg-ice-200 tw-flex tw-items-center tw-justify-center tw-rounded-t tw-w-full\"\n >\n <Icon name=\"image\" :class=\"classes.iconSize\" />\n </div>\n <img\n :src=\"props.src\"\n class=\"tw-w-full tw-rounded-t\"\n :alt=\"props.alt\"\n @load=\"() => (isLoading = false)\"\n @error=\"() => (hasErrored = true)\"\n />\n </div>\n</template>\n\n<style module>\n .placeholder {\n height: 300px;\n width: 100%;\n }\n\n .iconSize {\n width: 189px;\n height: 189px;\n }\n</style>\n"],"names":["isLoading","ref","hasErrored","classes","useCssModule"],"mappings":";;;;;;;;;;;;;;;;;;iBAgBQA,IAAYC,EAAI,EAAI,GAEpBC,IAAaD,EAAI,EAAK,GAItBE,IAAUC;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardMedia.js","sources":["../src/components/CardMedia/CardMedia.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ref, useCssModule } from 'vue';\n\n import Icon from '../Icon/Icon.vue';\n\n export interface CardMediaProps {\n /**\n * The image source.\n */\n src: string;\n /**\n * The image alternative text.\n */\n alt?: string;\n }\n\n const isLoading = ref(true);\n\n const hasErrored = ref(false);\n\n const props = defineProps<CardMediaProps>();\n\n const classes = useCssModule();\n</script>\n\n<template>\n <div class=\"stash-card-media\" data-test=\"stash-card-media\">\n <div\n v-if=\"isLoading || hasErrored\"\n :class=\"classes.placeholder\"\n class=\"tw-bg-ice-200 tw-flex tw-items-center tw-justify-center tw-rounded-t tw-w-full\"\n >\n <Icon name=\"image\" :class=\"classes.iconSize\" />\n </div>\n <img\n :src=\"props.src\"\n class=\"tw-w-full tw-rounded-t\"\n :alt=\"props.alt\"\n @load=\"() => (isLoading = false)\"\n @error=\"() => (hasErrored = true)\"\n />\n </div>\n</template>\n\n<style module>\n .placeholder {\n height: 300px;\n width: 100%;\n }\n\n .iconSize {\n width: 189px;\n height: 189px;\n }\n</style>\n"],"names":["isLoading","ref","hasErrored","classes","useCssModule"],"mappings":";;;;;;;;;;;;;;;;iBAgBQA,IAAYC,EAAI,EAAI,GAEpBC,IAAaD,EAAI,EAAK,GAItBE,IAAUC;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/Carousel.js CHANGED
@@ -1,16 +1,13 @@
1
1
  import { defineComponent as Y, inject as b, reactive as M, ref as d, h as S, provide as A, onMounted as Me, nextTick as Ie, onUnmounted as Ee, computed as xe, watch as ae, cloneVNode as _e, Fragment as P, useAttrs as je, openBlock as x, createElementBlock as C, createVNode as De, unref as _, mergeProps as Be, withCtx as oe, createBlock as ke, createCommentVNode as Re, renderList as le, renderSlot as Pe, createElementVNode as Ae, normalizeClass as H } from "vue";
2
2
  import { t as E } from "./locale.js";
3
3
  import { _ as Ve } from "./_plugin-vue_export-helper-dad06003.js";
4
- import "./get-27d90892.js";
5
- import "./isObjectLike-54341556.js";
6
- import "./toString-7d5bf363.js";
7
- import "./_MapCache-65811284.js";
4
+ import "lodash-es/get";
8
5
  /**
9
6
  * Vue 3 Carousel 0.3.1
10
7
  * (c) 2023
11
8
  * @license MIT
12
9
  */
13
- const f = {
10
+ const p = {
14
11
  itemsToShow: 1,
15
12
  itemsToScroll: 1,
16
13
  modelValue: 0,
@@ -38,49 +35,49 @@ const f = {
38
35
  }, Te = {
39
36
  // count of items to showed per view
40
37
  itemsToShow: {
41
- default: f.itemsToShow,
38
+ default: p.itemsToShow,
42
39
  type: Number
43
40
  },
44
41
  // count of items to be scrolled
45
42
  itemsToScroll: {
46
- default: f.itemsToScroll,
43
+ default: p.itemsToScroll,
47
44
  type: Number
48
45
  },
49
46
  // control infinite scrolling mode
50
47
  wrapAround: {
51
- default: f.wrapAround,
48
+ default: p.wrapAround,
52
49
  type: Boolean
53
50
  },
54
51
  // control max drag
55
52
  throttle: {
56
- default: f.throttle,
53
+ default: p.throttle,
57
54
  type: Number
58
55
  },
59
56
  // control snap position alignment
60
57
  snapAlign: {
61
- default: f.snapAlign,
58
+ default: p.snapAlign,
62
59
  validator(t) {
63
60
  return ["start", "end", "center", "center-even", "center-odd"].includes(t);
64
61
  }
65
62
  },
66
63
  // sliding transition time in ms
67
64
  transition: {
68
- default: f.transition,
65
+ default: p.transition,
69
66
  type: Number
70
67
  },
71
68
  // an object to store breakpoints
72
69
  breakpoints: {
73
- default: f.breakpoints,
70
+ default: p.breakpoints,
74
71
  type: Object
75
72
  },
76
73
  // time to auto advance slides in ms
77
74
  autoplay: {
78
- default: f.autoplay,
75
+ default: p.autoplay,
79
76
  type: Number
80
77
  },
81
78
  // pause autoplay when mouse hover over the carousel
82
79
  pauseAutoplayOnHover: {
83
- default: f.pauseAutoplayOnHover,
80
+ default: p.pauseAutoplayOnHover,
84
81
  type: Boolean
85
82
  },
86
83
  // slide number number of initial slide
@@ -90,24 +87,24 @@ const f = {
90
87
  },
91
88
  // toggle mouse dragging.
92
89
  mouseDrag: {
93
- default: f.mouseDrag,
90
+ default: p.mouseDrag,
94
91
  type: Boolean
95
92
  },
96
93
  // toggle mouse dragging.
97
94
  touchDrag: {
98
- default: f.touchDrag,
95
+ default: p.touchDrag,
99
96
  type: Boolean
100
97
  },
101
98
  // control snap position alignment
102
99
  dir: {
103
- default: f.dir,
100
+ default: p.dir,
104
101
  validator(t) {
105
102
  return ["rtl", "ltr"].includes(t);
106
103
  }
107
104
  },
108
105
  // aria-labels and additional text labels
109
106
  i18n: {
110
- default: f.i18n,
107
+ default: p.i18n,
111
108
  type: Object
112
109
  },
113
110
  // an object to pass all settings
@@ -222,7 +219,7 @@ function Ye(t = "", n = {}) {
222
219
  var We = Y({
223
220
  name: "ARIA",
224
221
  setup() {
225
- const t = b("config", M(Object.assign({}, f))), n = b("currentSlide", d(0)), e = b("slidesCount", d(0));
222
+ const t = b("config", M(Object.assign({}, p))), n = b("currentSlide", d(0)), e = b("slidesCount", d(0));
226
223
  return () => S("div", {
227
224
  class: ["carousel__liveregion", "carousel__sr-only"],
228
225
  "aria-live": "polite",
@@ -237,8 +234,8 @@ var We = Y({
237
234
  props: Te,
238
235
  setup(t, { slots: n, emit: e, expose: l }) {
239
236
  var s;
240
- const r = d(null), c = d([]), h = d(0), v = d(0), o = M(Object.assign({}, f));
241
- let u = Object.assign({}, f), w;
237
+ const r = d(null), c = d([]), h = d(0), v = d(0), o = M(Object.assign({}, p));
238
+ let u = Object.assign({}, p), w;
242
239
  const i = d((s = t.modelValue) !== null && s !== void 0 ? s : 0), g = d(0), j = d(0), T = d(0), D = d(0);
243
240
  let I, W;
244
241
  A("config", o), A("slidesCount", v), A("currentSlide", i), A("maxSlide", T), A("minSlide", D), A("slideWidth", h);
@@ -248,15 +245,15 @@ var We = Y({
248
245
  function V() {
249
246
  if (!w || !Object.keys(w).length)
250
247
  return;
251
- const a = Object.keys(w).map((p) => Number(p)).sort((p, k) => +k - +p);
248
+ const a = Object.keys(w).map((f) => Number(f)).sort((f, k) => +k - +f);
252
249
  let m = Object.assign({}, u);
253
- a.some((p) => {
254
- const k = window.matchMedia(`(min-width: ${p}px)`).matches;
255
- return k && (m = Object.assign(Object.assign({}, m), w[p])), k;
250
+ a.some((f) => {
251
+ const k = window.matchMedia(`(min-width: ${f}px)`).matches;
252
+ return k && (m = Object.assign(Object.assign({}, m), w[f])), k;
256
253
  }), ce(m);
257
254
  }
258
255
  function ce(a) {
259
- Object.entries(a).forEach(([m, p]) => o[m] = p);
256
+ Object.entries(a).forEach(([m, f]) => o[m] = f);
260
257
  }
261
258
  const de = He(() => {
262
259
  V(), B();
@@ -288,22 +285,22 @@ var We = Y({
288
285
  X.value = !1;
289
286
  };
290
287
  function ve(a) {
291
- ["INPUT", "TEXTAREA", "SELECT"].includes(a.target.tagName) || (y = a.type === "touchstart", y || a.preventDefault(), !(!y && a.button !== 0 || O.value) && ($.x = y ? a.touches[0].clientX : a.clientX, $.y = y ? a.touches[0].clientY : a.clientY, document.addEventListener(y ? "touchmove" : "mousemove", pe, !0), document.addEventListener(y ? "touchend" : "mouseup", fe, !0)));
288
+ ["INPUT", "TEXTAREA", "SELECT"].includes(a.target.tagName) || (y = a.type === "touchstart", y || a.preventDefault(), !(!y && a.button !== 0 || O.value) && ($.x = y ? a.touches[0].clientX : a.clientX, $.y = y ? a.touches[0].clientY : a.clientY, document.addEventListener(y ? "touchmove" : "mousemove", fe, !0), document.addEventListener(y ? "touchend" : "mouseup", pe, !0)));
292
289
  }
293
- const pe = ze((a) => {
290
+ const fe = ze((a) => {
294
291
  q.value = !0, U.x = y ? a.touches[0].clientX : a.clientX, U.y = y ? a.touches[0].clientY : a.clientY;
295
- const m = U.x - $.x, p = U.y - $.y;
296
- N.y = p, N.x = m;
292
+ const m = U.x - $.x, f = U.y - $.y;
293
+ N.y = f, N.x = m;
297
294
  }, o.throttle);
298
- function fe() {
299
- const a = o.dir === "rtl" ? -1 : 1, m = Math.sign(N.x) * 0.4, p = Math.round(N.x / h.value + m) * a;
300
- if (p && !y) {
295
+ function pe() {
296
+ const a = o.dir === "rtl" ? -1 : 1, m = Math.sign(N.x) * 0.4, f = Math.round(N.x / h.value + m) * a;
297
+ if (f && !y) {
301
298
  const k = (Z) => {
302
299
  Z.stopPropagation(), window.removeEventListener("click", k, !0);
303
300
  };
304
301
  window.addEventListener("click", k, !0);
305
302
  }
306
- L(i.value - p), N.x = 0, N.y = 0, q.value = !1, document.removeEventListener(y ? "touchmove" : "mousemove", pe, !0), document.removeEventListener(y ? "touchend" : "mouseup", fe, !0);
303
+ L(i.value - f), N.x = 0, N.y = 0, q.value = !1, document.removeEventListener(y ? "touchmove" : "mousemove", fe, !0), document.removeEventListener(y ? "touchend" : "mouseup", pe, !0);
307
304
  }
308
305
  function ge() {
309
306
  !o.autoplay || o.autoplay <= 0 || (I = setInterval(() => {
@@ -327,12 +324,12 @@ var We = Y({
327
324
  slidesCount: v.value
328
325
  }), O.value = !0, g.value = i.value, i.value = m, W = setTimeout(() => {
329
326
  if (o.wrapAround) {
330
- const p = ie({
327
+ const f = ie({
331
328
  val: m,
332
329
  max: T.value,
333
330
  min: 0
334
331
  });
335
- p !== i.value && (i.value = p, e("loop", {
332
+ f !== i.value && (i.value = f, e("loop", {
336
333
  currentSlideIndex: i.value,
337
334
  slidingToIndex: a
338
335
  }));
@@ -403,7 +400,7 @@ var We = Y({
403
400
  return () => {
404
401
  const a = Ce(K == null ? void 0 : K(ye)), m = (Q == null ? void 0 : Q(ye)) || [];
405
402
  a.forEach((ee, te) => ee.props.index = te);
406
- let p = a;
403
+ let f = a;
407
404
  if (o.wrapAround) {
408
405
  const ee = a.map((ne, R) => _e(ne, {
409
406
  index: -a.length + R,
@@ -414,7 +411,7 @@ var We = Y({
414
411
  isClone: !0,
415
412
  key: `clone-after-${R}`
416
413
  }));
417
- p = [...ee, ...a, ...te];
414
+ f = [...ee, ...a, ...te];
418
415
  }
419
416
  c.value = a, v.value = Math.max(a.length, 1);
420
417
  const k = S("ol", {
@@ -422,7 +419,7 @@ var We = Y({
422
419
  style: Le.value,
423
420
  onMousedownCapture: o.mouseDrag ? ve : null,
424
421
  onTouchstartPassiveCapture: o.touchDrag ? ve : null
425
- }, p), Z = S("div", { class: "carousel__viewport" }, k);
422
+ }, f), Z = S("div", { class: "carousel__viewport" }, k);
426
423
  return S("section", {
427
424
  ref: r,
428
425
  class: {
@@ -454,7 +451,7 @@ function qe(t) {
454
451
  return t in se;
455
452
  }
456
453
  const ue = (t) => {
457
- const n = b("config", M(Object.assign({}, f))), e = String(t.name), l = `icon${e.charAt(0).toUpperCase() + e.slice(1)}`;
454
+ const n = b("config", M(Object.assign({}, p))), e = String(t.name), l = `icon${e.charAt(0).toUpperCase() + e.slice(1)}`;
458
455
  if (!e || typeof e != "string" || !qe(e))
459
456
  return;
460
457
  const s = Fe[e], r = S("path", { d: s }), c = n.i18n[l] || t.title || e, h = S("title", c);
@@ -467,7 +464,7 @@ const ue = (t) => {
467
464
  };
468
465
  ue.props = { name: String, title: String };
469
466
  const Je = (t, { slots: n, attrs: e }) => {
470
- const { next: l, prev: s } = n || {}, r = b("config", M(Object.assign({}, f))), c = b("maxSlide", d(1)), h = b("minSlide", d(1)), v = b("currentSlide", d(1)), o = b("nav", {}), { dir: u, wrapAround: w, i18n: i } = r, g = u === "rtl", j = S("button", {
467
+ const { next: l, prev: s } = n || {}, r = b("config", M(Object.assign({}, p))), c = b("maxSlide", d(1)), h = b("minSlide", d(1)), v = b("currentSlide", d(1)), o = b("nav", {}), { dir: u, wrapAround: w, i18n: i } = r, g = u === "rtl", j = S("button", {
471
468
  type: "button",
472
469
  class: [
473
470
  "carousel__prev",
@@ -501,7 +498,7 @@ var Ke = Y({
501
498
  }
502
499
  },
503
500
  setup(t, { slots: n }) {
504
- const e = b("config", M(Object.assign({}, f))), l = b("currentSlide", d(0)), s = b("slidesToScroll", d(0)), r = b("isSliding", d(!1)), c = () => t.index === l.value, h = () => t.index === l.value - 1, v = () => t.index === l.value + 1, o = () => {
501
+ const e = b("config", M(Object.assign({}, p))), l = b("currentSlide", d(0)), s = b("slidesToScroll", d(0)), r = b("isSliding", d(!1)), c = () => t.index === l.value, h = () => t.index === l.value - 1, v = () => t.index === l.value + 1, o = () => {
505
502
  const u = Math.floor(s.value), w = Math.ceil(s.value + e.itemsToShow - 1);
506
503
  return t.index >= u && t.index <= w;
507
504
  };
@@ -640,8 +637,8 @@ const Qe = ["src", "title"], Ze = {
640
637
  ], 64));
641
638
  }
642
639
  });
643
- const ct = /* @__PURE__ */ Ve(nt, [["__scopeId", "data-v-274b7c1c"]]);
640
+ const it = /* @__PURE__ */ Ve(nt, [["__scopeId", "data-v-274b7c1c"]]);
644
641
  export {
645
- ct as default
642
+ it as default
646
643
  };
647
644
  //# sourceMappingURL=Carousel.js.map