@leaflink/stash 50.5.0 → 50.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 (155) hide show
  1. package/dist/Accordion.js.map +1 -1
  2. package/dist/ActionsDropdown.js.map +1 -1
  3. package/dist/AddressSelect.js.map +1 -1
  4. package/dist/Alert.js.map +1 -1
  5. package/dist/AppNavigationItem.js.map +1 -1
  6. package/dist/AppSidebar.js.map +1 -1
  7. package/dist/Avatar.js.map +1 -1
  8. package/dist/Badge.js.map +1 -1
  9. package/dist/Button.js.map +1 -1
  10. package/dist/ButtonGroup.js.map +1 -1
  11. package/dist/Card.js.map +1 -1
  12. package/dist/CardMedia.js.map +1 -1
  13. package/dist/Carousel.js.map +1 -1
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/Chip.js.map +1 -1
  16. package/dist/ConfirmationCodeInput.js.map +1 -1
  17. package/dist/ContextSwitcher.js.map +1 -1
  18. package/dist/Copy.js.map +1 -1
  19. package/dist/CurrencyInput.js.map +1 -1
  20. package/dist/CustomRender.js.map +1 -1
  21. package/dist/DataView.js.map +1 -1
  22. package/dist/DataView.keys-C7eaZg2G.js.map +1 -1
  23. package/dist/DataViewFilters.js.map +1 -1
  24. package/dist/DataViewSortButton.js.map +1 -1
  25. package/dist/DataViewToolbar.js +24 -18
  26. package/dist/DataViewToolbar.js.map +1 -1
  27. package/dist/DatePicker.js.map +1 -1
  28. package/dist/DescriptionList.js.map +1 -1
  29. package/dist/DescriptionListDetail.js.map +1 -1
  30. package/dist/DescriptionListGroup.js.map +1 -1
  31. package/dist/DescriptionListTerm.js.map +1 -1
  32. package/dist/Dialog.js.map +1 -1
  33. package/dist/Divider.js.map +1 -1
  34. package/dist/Dropdown.js.map +1 -1
  35. package/dist/EmptyState.js.map +1 -1
  36. package/dist/Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js.map +1 -1
  37. package/dist/Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js.map +1 -1
  38. package/dist/FileUpload.js.map +1 -1
  39. package/dist/FilterChip.js.map +1 -1
  40. package/dist/FilterDrawerItem.js.map +1 -1
  41. package/dist/FilterDropdown.js.map +1 -1
  42. package/dist/FilterSelect.js.map +1 -1
  43. package/dist/Filters.js.map +1 -1
  44. package/dist/HttpError.js.map +1 -1
  45. package/dist/Icon.js.map +1 -1
  46. package/dist/IconLabel.js.map +1 -1
  47. package/dist/Illustration.vue_vue_type_script_setup_true_lang-C3qG3Ty6.js.map +1 -1
  48. package/dist/Image.vue_vue_type_script_setup_true_lang-YUNunj71.js.map +1 -1
  49. package/dist/InlineEdit.js.map +1 -1
  50. package/dist/Input.js.map +1 -1
  51. package/dist/InputOptions.js.map +1 -1
  52. package/dist/IntegrationIcon.js.map +1 -1
  53. package/dist/LicenseChip.js.map +1 -1
  54. package/dist/ListItem.js.map +1 -1
  55. package/dist/ListItemCell.js.map +1 -1
  56. package/dist/ListView.js +2 -2
  57. package/dist/ListView.js.map +1 -1
  58. package/dist/Loading.js.map +1 -1
  59. package/dist/Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js.map +1 -1
  60. package/dist/MenuItem.js.map +1 -1
  61. package/dist/MenusPlugin-Bk6UW6o9.js.map +1 -1
  62. package/dist/Metric.js.map +1 -1
  63. package/dist/Modal.js.map +1 -1
  64. package/dist/Modals.js.map +1 -1
  65. package/dist/ModalsPlugin.js.map +1 -1
  66. package/dist/Module.js.map +1 -1
  67. package/dist/Module.keys-CEsrW2f0.js.map +1 -1
  68. package/dist/ModuleContent.js.map +1 -1
  69. package/dist/ModuleFooter.js.map +1 -1
  70. package/dist/ModuleHeader.js.map +1 -1
  71. package/dist/PageContent.js.map +1 -1
  72. package/dist/PageHeader.js.map +1 -1
  73. package/dist/PageNavigation.js.map +1 -1
  74. package/dist/Paginate.js.map +1 -1
  75. package/dist/PlaidLink.js.map +1 -1
  76. package/dist/QuickAction.js.map +1 -1
  77. package/dist/Radio.js.map +1 -1
  78. package/dist/RadioGroup.js.map +1 -1
  79. package/dist/RadioNew.js.map +1 -1
  80. package/dist/RangeInput.js.map +1 -1
  81. package/dist/SearchBar.js.map +1 -1
  82. package/dist/Select.js +1 -1
  83. package/dist/Select.js.map +1 -1
  84. package/dist/SelectStatus.js.map +1 -1
  85. package/dist/Skeleton.js.map +1 -1
  86. package/dist/Step.js.map +1 -1
  87. package/dist/Stepper.js.map +1 -1
  88. package/dist/Switch.js.map +1 -1
  89. package/dist/Tab.js.map +1 -1
  90. package/dist/Table.js.map +1 -1
  91. package/dist/TableCell.js.map +1 -1
  92. package/dist/TableHeaderCell.js.map +1 -1
  93. package/dist/TableHeaderRow.js.map +1 -1
  94. package/dist/TableRow.js.map +1 -1
  95. package/dist/Tabs.vue_vue_type_script_setup_true_lang-l41hWkV4.js.map +1 -1
  96. package/dist/TextEditor.js +178 -181
  97. package/dist/TextEditor.js.map +1 -1
  98. package/dist/Textarea.js +25 -20
  99. package/dist/Textarea.js.map +1 -1
  100. package/dist/Thumbnail.js.map +1 -1
  101. package/dist/ThumbnailEmpty.js.map +1 -1
  102. package/dist/ThumbnailGroup.js.map +1 -1
  103. package/dist/ThumbnailGroup.keys-D6WL5xQ5.js.map +1 -1
  104. package/dist/TimelineItem.js.map +1 -1
  105. package/dist/Toast.js.map +1 -1
  106. package/dist/Toasts.js.map +1 -1
  107. package/dist/ToastsPlugin.js.map +1 -1
  108. package/dist/Tooltip.js +2 -2
  109. package/dist/Tooltip.js.map +1 -1
  110. package/dist/components.css +2 -2
  111. package/dist/constants.js.map +1 -1
  112. package/dist/directives/autofocus.js.map +1 -1
  113. package/dist/directives/clickoutside.js.map +1 -1
  114. package/dist/directives/observe.js.map +1 -1
  115. package/dist/directives/sticky.js.map +1 -1
  116. package/dist/directives/tooltip.js.map +1 -1
  117. package/dist/directives/viewable.js.map +1 -1
  118. package/dist/{floating-ui.vue-BmfQDqE-.js → floating-ui.vue-pzUuloyX.js} +267 -260
  119. package/dist/floating-ui.vue-pzUuloyX.js.map +1 -0
  120. package/dist/formatDateTime-C8CYECpd.js.map +1 -1
  121. package/dist/index-ConQ3o31.js +128 -0
  122. package/dist/index-ConQ3o31.js.map +1 -0
  123. package/dist/index-D6bxWkZ1.js.map +1 -1
  124. package/dist/index.js.map +1 -1
  125. package/dist/isDefined-DzVx0B6k.js.map +1 -1
  126. package/dist/locale.js.map +1 -1
  127. package/dist/parseISO-wlfIB_QJ.js.map +1 -1
  128. package/dist/searchFuzzy-DKooyZM8.js.map +1 -1
  129. package/dist/tailwind-base.js.map +1 -1
  130. package/dist/toTimeZone-CVE1ZmsS.js.map +1 -1
  131. package/dist/useConfirmBeforeClosing.js.map +1 -1
  132. package/dist/useDialog.js.map +1 -1
  133. package/dist/useGoogleMaps.js.map +1 -1
  134. package/dist/useMediaQuery.js.map +1 -1
  135. package/dist/useModals.js.map +1 -1
  136. package/dist/usePlaidLink.js.map +1 -1
  137. package/dist/useScriptTag.js.map +1 -1
  138. package/dist/useSearch.js.map +1 -1
  139. package/dist/useSelection.js.map +1 -1
  140. package/dist/useSortable.js +1 -1
  141. package/dist/useSortable.js.map +1 -1
  142. package/dist/useStepper.js.map +1 -1
  143. package/dist/useToasts.js.map +1 -1
  144. package/dist/useValidation.js.map +1 -1
  145. package/dist/utils/calculateElementOverflow.js.map +1 -1
  146. package/dist/utils/colorScheme.js.map +1 -1
  147. package/dist/utils/createQueryString.js.map +1 -1
  148. package/dist/utils/getContrastingTextColor.js.map +1 -1
  149. package/dist/utils/helpers.js.map +1 -1
  150. package/dist/utils/i18n.js.map +1 -1
  151. package/dist/utils/storage.js.map +1 -1
  152. package/package.json +1 -1
  153. package/dist/floating-ui.vue-BmfQDqE-.js.map +0 -1
  154. package/dist/index-Bbc2pg2X.js +0 -128
  155. package/dist/index-Bbc2pg2X.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent as $, inject as j, ref as z, computed as x, onBeforeMount as U, openBlock as o, createElementBlock as s, normalizeClass as W, unref as e, createElementVNode as k, createBlock as F, createCommentVNode as n, renderSlot as J, toDisplayString as K, Fragment as L, createVNode as r, withCtx as y } from "vue";
1
+ import { defineComponent as M, inject as $, ref as j, computed as k, onBeforeMount as U, openBlock as o, createElementBlock as s, normalizeClass as W, unref as e, createElementVNode as y, createBlock as F, createCommentVNode as n, renderSlot as J, toDisplayString as K, Fragment as L, createVNode as r, withCtx as x } from "vue";
2
2
  import { t as S } from "./locale.js";
3
3
  import _ from "./Button.js";
4
4
  import O from "./Checkbox.js";
@@ -10,8 +10,8 @@ const q = { class: "tw-flex tw-place-items-center" }, G = { class: "tw-flex tw-i
10
10
  class: "tw-flex tw-items-center"
11
11
  }, Q = {
12
12
  key: 0,
13
- class: "tw-mr-1.5 tw-text-xs"
14
- }, le = /* @__PURE__ */ $({
13
+ class: "tw-mr-1.5"
14
+ }, le = /* @__PURE__ */ M({
15
15
  __name: "DataViewToolbar",
16
16
  props: {
17
17
  allRowsSelected: { type: Boolean, default: !1 },
@@ -34,10 +34,10 @@ const q = { class: "tw-flex tw-place-items-center" }, G = { class: "tw-flex tw-i
34
34
  pageSize: v,
35
35
  totalDataCount: b,
36
36
  goPrevPage: T,
37
- goNextPage: A,
38
- isEmpty: D,
39
- isLoading: I
40
- } = j(B.key, B.defaults), h = z(0), i = x(() => t.radius ? t.radius : d.value ? "none" : m.value === "table" ? t.hasTabsAbove ? "rounded-top-right" : "rounded-top" : "rounded"), M = x(() => {
37
+ goNextPage: z,
38
+ isEmpty: A,
39
+ isLoading: D
40
+ } = $(B.key, B.defaults), h = j(0), i = k(() => t.radius ? t.radius : d.value ? "none" : m.value === "table" ? t.hasTabsAbove ? "rounded-top-right" : "rounded-top" : "rounded"), I = k(() => {
41
41
  const u = v.value * (l.value - 1) + 1, a = Math.min(v.value * l.value, b.value), c = b.value;
42
42
  return S("ll.pageStats", { from: u, to: a, total: c });
43
43
  });
@@ -58,32 +58,35 @@ const q = { class: "tw-flex tw-place-items-center" }, G = { class: "tw-flex tw-i
58
58
  }]),
59
59
  "data-test": "stash-data-view-toolbar"
60
60
  }, [
61
- k("div", q, [
62
- e(R) && !e(D) ? (o(), F(O, {
61
+ y("div", q, [
62
+ e(R) && !e(A) ? (o(), F(O, {
63
63
  key: h.value,
64
64
  checked: t.allRowsSelected,
65
65
  indeterminate: t.someRowsSelected && !t.allRowsSelected,
66
66
  title: e(S)("ll.selectAll"),
67
- disabled: e(I),
67
+ disabled: e(D),
68
68
  "onUpdate:indeterminate": g,
69
69
  "onUpdate:checked": g
70
70
  }, null, 8, ["checked", "indeterminate", "title", "disabled"])) : n("", !0),
71
- k("div", G, [
71
+ y("div", G, [
72
72
  J(u.$slots, "default")
73
73
  ])
74
74
  ]),
75
75
  e(N) ? (o(), s("div", H, [
76
- t.hidePageStats ? n("", !0) : (o(), s("span", Q, K(M.value), 1)),
76
+ t.hidePageStats ? n("", !0) : (o(), s("span", Q, K(I.value), 1)),
77
77
  e(f) > 1 ? (o(), s(L, { key: 1 }, [
78
78
  r(_, {
79
79
  icon: "",
80
- class: "tw-h-9 tw-w-9 tw-p-1.5",
80
+ class: "tw-size-9 tw-p-1.5",
81
81
  "data-test": "button|prev-page",
82
82
  disabled: e(l) === 1,
83
83
  onClick: a[0] || (a[0] = (c) => e(T)({ shouldEmit: !0 }))
84
84
  }, {
85
- default: y(() => [
86
- r(C, { name: "chevron-left" })
85
+ default: x(() => [
86
+ r(C, {
87
+ name: "chevron-left",
88
+ size: "dense"
89
+ })
87
90
  ]),
88
91
  _: 1
89
92
  }, 8, ["disabled"]),
@@ -92,10 +95,13 @@ const q = { class: "tw-flex tw-place-items-center" }, G = { class: "tw-flex tw-i
92
95
  class: "tw-h-9 tw-w-9 tw-p-1.5",
93
96
  "data-test": "button|next-page",
94
97
  disabled: e(l) === e(f),
95
- onClick: a[1] || (a[1] = (c) => e(A)({ shouldEmit: !0 }))
98
+ onClick: a[1] || (a[1] = (c) => e(z)({ shouldEmit: !0 }))
96
99
  }, {
97
- default: y(() => [
98
- r(C, { name: "chevron-right" })
100
+ default: x(() => [
101
+ r(C, {
102
+ name: "chevron-right",
103
+ size: "dense"
104
+ })
99
105
  ]),
100
106
  _: 1
101
107
  }, 8, ["disabled"])
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewToolbar.js","sources":["../src/components/DataViewToolbar/DataViewToolbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, inject, onBeforeMount, ref } from 'vue';\n\n import { t } from '../../locale';\n import Button from '../Button/Button.vue';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.vue';\n import Icon from '../Icon/Icon.vue';\n import { ToolbarRadiuses } from './DataViewToolbar.types';\n\n export interface DataViewToolbarProps {\n /**\n * When DataView has `variant=\"table\"` and Table has `is-selectable` enabled, it provides a way to flag\n * a checkbox whenever all rows are selected, just like the standalone version on TableHeaderRow.\n */\n allRowsSelected?: boolean;\n\n /**\n * Hides the page statistics (ex: \"1 - 12 of 20\") in the toolbar\n */\n hidePageStats?: boolean;\n\n /**\n * Controls the corners of DataViewToolbar with the \"border-radius\" CSS property. The default value is \"rounded\".\n */\n radius?: ToolbarRadiuses;\n\n /**\n * When DataView has variant=\"table\" and Table has `is-selectable` enabled, it provides a way to flag\n * a checkbox whenever one or more, but not all rows are selected, just like the standalone\n * version on TableHeaderRow.\n */\n someRowsSelected?: boolean;\n\n /**\n * When DataView has tabs above it, we need to remove the top left rounded corner\n */\n hasTabsAbove?: boolean;\n }\n\n const props = withDefaults(defineProps<DataViewToolbarProps>(), {\n allRowsSelected: false,\n hidePageStats: false,\n radius: undefined,\n someRowsSelected: false,\n hasTabsAbove: false,\n });\n\n const emit = defineEmits<{\n (e: 'select'): void;\n }>();\n\n const {\n isWithinModule,\n variant: dataViewVariant,\n density,\n currentPage,\n hasToolbar,\n isPaginationEnabled,\n isSelectable,\n pageCount,\n pageSize,\n totalDataCount,\n goPrevPage,\n goNextPage,\n isEmpty,\n isLoading,\n } = inject(DATA_VIEW_INJECTION.key, DATA_VIEW_INJECTION.defaults);\n\n const checkboxKey = ref(0);\n\n const computedRadius = computed<ToolbarRadiuses>(() => {\n if (props.radius) {\n return props.radius;\n }\n\n if (isWithinModule.value) {\n return 'none';\n }\n\n if (dataViewVariant.value === 'table') {\n if (props.hasTabsAbove) {\n return 'rounded-top-right';\n }\n\n return 'rounded-top';\n }\n\n return 'rounded';\n });\n\n // #region pagination\n const pageStats = computed(() => {\n const from = pageSize.value * (currentPage.value - 1) + 1;\n const to = Math.min(pageSize.value * currentPage.value, totalDataCount.value);\n const total = totalDataCount.value;\n\n return t('ll.pageStats', { from, to, total });\n });\n // #endregion pagination\n\n function onSelect() {\n emit('select');\n\n /**\n * In Vue (as of this writing), if a user checks a native checkbox but the v-model is `false` and does not change from `false`, then the checkbox will display as checked even though the v-model is still `false`.\n * Forcing a re-render with a `key` change allows the checkbox to stay unchecked if its v-model is still `false` and its v-model not been changed.\n * To verify that this is necessary, test the \"select all\" checkbox in the SelectionWithSomeDisabled story in Table.story.ts with and without the `key` attribute.\n */\n checkboxKey.value++;\n }\n\n onBeforeMount(() => {\n if (hasToolbar) {\n hasToolbar.value = true;\n }\n });\n</script>\n\n<template>\n <div\n class=\"stash-data-view-toolbar tw-flex tw-min-h-15 tw-items-center tw-justify-between tw-bg-white tw-py-1.5 tw-shadow\"\n :class=\"{\n 'tw-border-t tw-border-ice-200': isWithinModule,\n 'tw-rounded-tr': computedRadius === 'rounded-top-right',\n 'tw-rounded': computedRadius === 'rounded',\n 'tw-rounded-t': computedRadius === 'rounded-top',\n 'tw-mb-3': dataViewVariant !== 'table' && !isWithinModule,\n 'tw-px-0': density === 'compact',\n 'lg:tw-px-3': density === 'comfortable',\n }\"\n data-test=\"stash-data-view-toolbar\"\n >\n <div class=\"tw-flex tw-place-items-center\">\n <Checkbox\n v-if=\"isSelectable && !isEmpty\"\n :key=\"checkboxKey\"\n :checked=\"props.allRowsSelected\"\n :indeterminate=\"props.someRowsSelected && !props.allRowsSelected\"\n :title=\"t('ll.selectAll')\"\n :disabled=\"isLoading\"\n @update:indeterminate=\"onSelect\"\n @update:checked=\"onSelect\"\n />\n <div class=\"tw-flex tw-items-center tw-gap-x-2 lg:tw-gap-x-6\">\n <!-- @slot default -->\n <slot></slot>\n </div>\n </div>\n\n <!-- Pagination -->\n <div v-if=\"isPaginationEnabled\" class=\"tw-flex tw-items-center\">\n <span v-if=\"!props.hidePageStats\" class=\"tw-mr-1.5 tw-text-xs\">\n {{ pageStats }}\n </span>\n <template v-if=\"pageCount > 1\">\n <Button\n icon\n class=\"tw-h-9 tw-w-9 tw-p-1.5\"\n data-test=\"button|prev-page\"\n :disabled=\"currentPage === 1\"\n @click=\"goPrevPage({ shouldEmit: true })\"\n >\n <Icon name=\"chevron-left\" />\n </Button>\n <Button\n icon\n class=\"tw-h-9 tw-w-9 tw-p-1.5\"\n data-test=\"button|next-page\"\n :disabled=\"currentPage === pageCount\"\n @click=\"goNextPage({ shouldEmit: true })\"\n >\n <Icon name=\"chevron-right\" />\n </Button>\n </template>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","isWithinModule","dataViewVariant","density","currentPage","hasToolbar","isPaginationEnabled","isSelectable","pageCount","pageSize","totalDataCount","goPrevPage","goNextPage","isEmpty","isLoading","inject","DATA_VIEW_INJECTION","checkboxKey","ref","computedRadius","computed","pageStats","from","to","total","t","onSelect","onBeforeMount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwCE,UAAMA,IAAQC,GAQRC,IAAOC,GAIP;AAAA,MACJ,gBAAAC;AAAA,MACA,SAASC;AAAA,MACT,SAAAC;AAAA,MACA,aAAAC;AAAA,MACA,YAAAC;AAAA,MACA,qBAAAC;AAAA,MACA,cAAAC;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,YAAAC;AAAA,MACA,YAAAC;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,IACE,IAAAC,EAAOC,EAAoB,KAAKA,EAAoB,QAAQ,GAE1DC,IAAcC,EAAI,CAAC,GAEnBC,IAAiBC,EAA0B,MAC3CvB,EAAM,SACDA,EAAM,SAGXI,EAAe,QACV,SAGLC,EAAgB,UAAU,UACxBL,EAAM,eACD,sBAGF,gBAGF,SACR,GAGKwB,IAAYD,EAAS,MAAM;AAC/B,YAAME,IAAOb,EAAS,SAASL,EAAY,QAAQ,KAAK,GAClDmB,IAAK,KAAK,IAAId,EAAS,QAAQL,EAAY,OAAOM,EAAe,KAAK,GACtEc,IAAQd,EAAe;AAE7B,aAAOe,EAAE,gBAAgB,EAAE,MAAAH,GAAM,IAAAC,GAAI,OAAAC,GAAO;AAAA,IAAA,CAC7C;AAGD,aAASE,IAAW;AAClB,MAAA3B,EAAK,QAAQ,GAODkB,EAAA;AAAA,IACd;AAEA,WAAAU,EAAc,MAAM;AAClB,MAAItB,MACFA,EAAW,QAAQ;AAAA,IACrB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DataViewToolbar.js","sources":["../src/components/DataViewToolbar/DataViewToolbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, inject, onBeforeMount, ref } from 'vue';\n\n import { t } from '../../locale';\n import Button from '../Button/Button.vue';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.vue';\n import Icon from '../Icon/Icon.vue';\n import { ToolbarRadiuses } from './DataViewToolbar.types';\n\n export interface DataViewToolbarProps {\n /**\n * When DataView has `variant=\"table\"` and Table has `is-selectable` enabled, it provides a way to flag\n * a checkbox whenever all rows are selected, just like the standalone version on TableHeaderRow.\n */\n allRowsSelected?: boolean;\n\n /**\n * Hides the page statistics (ex: \"1 - 12 of 20\") in the toolbar\n */\n hidePageStats?: boolean;\n\n /**\n * Controls the corners of DataViewToolbar with the \"border-radius\" CSS property. The default value is \"rounded\".\n */\n radius?: ToolbarRadiuses;\n\n /**\n * When DataView has variant=\"table\" and Table has `is-selectable` enabled, it provides a way to flag\n * a checkbox whenever one or more, but not all rows are selected, just like the standalone\n * version on TableHeaderRow.\n */\n someRowsSelected?: boolean;\n\n /**\n * When DataView has tabs above it, we need to remove the top left rounded corner\n */\n hasTabsAbove?: boolean;\n }\n\n const props = withDefaults(defineProps<DataViewToolbarProps>(), {\n allRowsSelected: false,\n hidePageStats: false,\n radius: undefined,\n someRowsSelected: false,\n hasTabsAbove: false,\n });\n\n const emit = defineEmits<{\n (e: 'select'): void;\n }>();\n\n const {\n isWithinModule,\n variant: dataViewVariant,\n density,\n currentPage,\n hasToolbar,\n isPaginationEnabled,\n isSelectable,\n pageCount,\n pageSize,\n totalDataCount,\n goPrevPage,\n goNextPage,\n isEmpty,\n isLoading,\n } = inject(DATA_VIEW_INJECTION.key, DATA_VIEW_INJECTION.defaults);\n\n const checkboxKey = ref(0);\n\n const computedRadius = computed<ToolbarRadiuses>(() => {\n if (props.radius) {\n return props.radius;\n }\n\n if (isWithinModule.value) {\n return 'none';\n }\n\n if (dataViewVariant.value === 'table') {\n if (props.hasTabsAbove) {\n return 'rounded-top-right';\n }\n\n return 'rounded-top';\n }\n\n return 'rounded';\n });\n\n // #region pagination\n const pageStats = computed(() => {\n const from = pageSize.value * (currentPage.value - 1) + 1;\n const to = Math.min(pageSize.value * currentPage.value, totalDataCount.value);\n const total = totalDataCount.value;\n\n return t('ll.pageStats', { from, to, total });\n });\n // #endregion pagination\n\n function onSelect() {\n emit('select');\n\n /**\n * In Vue (as of this writing), if a user checks a native checkbox but the v-model is `false` and does not change from `false`, then the checkbox will display as checked even though the v-model is still `false`.\n * Forcing a re-render with a `key` change allows the checkbox to stay unchecked if its v-model is still `false` and its v-model not been changed.\n * To verify that this is necessary, test the \"select all\" checkbox in the SelectionWithSomeDisabled story in Table.story.ts with and without the `key` attribute.\n */\n checkboxKey.value++;\n }\n\n onBeforeMount(() => {\n if (hasToolbar) {\n hasToolbar.value = true;\n }\n });\n</script>\n\n<template>\n <div\n class=\"stash-data-view-toolbar tw-flex tw-min-h-15 tw-items-center tw-justify-between tw-bg-white tw-py-1.5 tw-shadow\"\n :class=\"{\n 'tw-border-t tw-border-ice-200': isWithinModule,\n 'tw-rounded-tr': computedRadius === 'rounded-top-right',\n 'tw-rounded': computedRadius === 'rounded',\n 'tw-rounded-t': computedRadius === 'rounded-top',\n 'tw-mb-3': dataViewVariant !== 'table' && !isWithinModule,\n 'tw-px-0': density === 'compact',\n 'lg:tw-px-3': density === 'comfortable',\n }\"\n data-test=\"stash-data-view-toolbar\"\n >\n <div class=\"tw-flex tw-place-items-center\">\n <Checkbox\n v-if=\"isSelectable && !isEmpty\"\n :key=\"checkboxKey\"\n :checked=\"props.allRowsSelected\"\n :indeterminate=\"props.someRowsSelected && !props.allRowsSelected\"\n :title=\"t('ll.selectAll')\"\n :disabled=\"isLoading\"\n @update:indeterminate=\"onSelect\"\n @update:checked=\"onSelect\"\n />\n <div class=\"tw-flex tw-items-center tw-gap-x-2 lg:tw-gap-x-6\">\n <!-- @slot default -->\n <slot></slot>\n </div>\n </div>\n\n <!-- Pagination -->\n <div v-if=\"isPaginationEnabled\" class=\"tw-flex tw-items-center\">\n <span v-if=\"!props.hidePageStats\" class=\"tw-mr-1.5\">\n {{ pageStats }}\n </span>\n <template v-if=\"pageCount > 1\">\n <Button\n icon\n class=\"tw-size-9 tw-p-1.5\"\n data-test=\"button|prev-page\"\n :disabled=\"currentPage === 1\"\n @click=\"goPrevPage({ shouldEmit: true })\"\n >\n <Icon name=\"chevron-left\" size=\"dense\" />\n </Button>\n <Button\n icon\n class=\"tw-h-9 tw-w-9 tw-p-1.5\"\n data-test=\"button|next-page\"\n :disabled=\"currentPage === pageCount\"\n @click=\"goNextPage({ shouldEmit: true })\"\n >\n <Icon name=\"chevron-right\" size=\"dense\" />\n </Button>\n </template>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","isWithinModule","dataViewVariant","density","currentPage","hasToolbar","isPaginationEnabled","isSelectable","pageCount","pageSize","totalDataCount","goPrevPage","goNextPage","isEmpty","isLoading","inject","DATA_VIEW_INJECTION","checkboxKey","ref","computedRadius","computed","pageStats","from","to","total","t","onSelect","onBeforeMount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwCE,UAAMA,IAAQC,GAQRC,IAAOC,GAIP;AAAA,MACJ,gBAAAC;AAAA,MACA,SAASC;AAAA,MACT,SAAAC;AAAA,MACA,aAAAC;AAAA,MACA,YAAAC;AAAA,MACA,qBAAAC;AAAA,MACA,cAAAC;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,YAAAC;AAAA,MACA,YAAAC;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,IACE,IAAAC,EAAOC,EAAoB,KAAKA,EAAoB,QAAQ,GAE1DC,IAAcC,EAAI,CAAC,GAEnBC,IAAiBC,EAA0B,MAC3CvB,EAAM,SACDA,EAAM,SAGXI,EAAe,QACV,SAGLC,EAAgB,UAAU,UACxBL,EAAM,eACD,sBAGF,gBAGF,SACR,GAGKwB,IAAYD,EAAS,MAAM;AAC/B,YAAME,IAAOb,EAAS,SAASL,EAAY,QAAQ,KAAK,GAClDmB,IAAK,KAAK,IAAId,EAAS,QAAQL,EAAY,OAAOM,EAAe,KAAK,GACtEc,IAAQd,EAAe;AAE7B,aAAOe,EAAE,gBAAgB,EAAE,MAAAH,GAAM,IAAAC,GAAI,OAAAC,GAAO;AAAA,IAAA,CAC7C;AAGD,aAASE,IAAW;AAClB,MAAA3B,EAAK,QAAQ,GAODkB,EAAA;AAAA,IAAA;AAGd,WAAAU,EAAc,MAAM;AAClB,MAAItB,MACFA,EAAW,QAAQ;AAAA,IACrB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}