@leaflink/stash 52.0.3 → 53.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +50 -49
  2. package/dist/Accordion.js +16 -16
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/AccordionGroup.js +7 -7
  5. package/dist/AccordionGroup.js.map +1 -1
  6. package/dist/ActionsDropdown.js +16 -16
  7. package/dist/ActionsDropdown.js.map +1 -1
  8. package/dist/AddressSelect.js.map +1 -1
  9. package/dist/AddressSelect.vue.d.ts +1 -1
  10. package/dist/Alert.js +34 -34
  11. package/dist/Alert.js.map +1 -1
  12. package/dist/AppNavigationItem.js +31 -31
  13. package/dist/AppNavigationItem.js.map +1 -1
  14. package/dist/AppSidebar.js +19 -19
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppTopbar.js +32 -32
  17. package/dist/AppTopbar.js.map +1 -1
  18. package/dist/Avatar.js +18 -18
  19. package/dist/Avatar.js.map +1 -1
  20. package/dist/Backdrop.js +5 -5
  21. package/dist/Backdrop.js.map +1 -1
  22. package/dist/Badge.js +38 -38
  23. package/dist/Badge.js.map +1 -1
  24. package/dist/Box.js +1 -1
  25. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js} +6 -6
  26. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js.map} +1 -1
  27. package/dist/Button.js +21 -21
  28. package/dist/Button.js.map +1 -1
  29. package/dist/ButtonGroup.js +26 -26
  30. package/dist/ButtonGroup.js.map +1 -1
  31. package/dist/Card.js +14 -14
  32. package/dist/Card.js.map +1 -1
  33. package/dist/CardContent.js +1 -1
  34. package/dist/CardContent.js.map +1 -1
  35. package/dist/CardFooter.js +1 -1
  36. package/dist/CardFooter.js.map +1 -1
  37. package/dist/CardHeader.js +4 -4
  38. package/dist/CardHeader.js.map +1 -1
  39. package/dist/CardMedia.js +20 -20
  40. package/dist/CardMedia.js.map +1 -1
  41. package/dist/Carousel.js +60 -60
  42. package/dist/Carousel.js.map +1 -1
  43. package/dist/Checkbox.js +30 -30
  44. package/dist/Checkbox.js.map +1 -1
  45. package/dist/Checkbox.vue.d.ts +0 -3
  46. package/dist/Chip.js +33 -33
  47. package/dist/Chip.js.map +1 -1
  48. package/dist/ConfirmationCodeInput.js +72 -72
  49. package/dist/ConfirmationCodeInput.js.map +1 -1
  50. package/dist/ContextSwitcher.js +27 -27
  51. package/dist/ContextSwitcher.js.map +1 -1
  52. package/dist/Copy.js +47 -48
  53. package/dist/Copy.js.map +1 -1
  54. package/dist/CurrencyInput.js +1 -1
  55. package/dist/CurrencyInput.js.map +1 -1
  56. package/dist/CurrencyInput.vue.d.ts +5 -5
  57. package/dist/DataView.js +23 -23
  58. package/dist/DataView.js.map +1 -1
  59. package/dist/DataViewFilters.js +26 -26
  60. package/dist/DataViewFilters.js.map +1 -1
  61. package/dist/DataViewSortButton.js +22 -22
  62. package/dist/DataViewSortButton.js.map +1 -1
  63. package/dist/DataViewToolbar.js +52 -52
  64. package/dist/DataViewToolbar.js.map +1 -1
  65. package/dist/DatePicker.js +10 -10
  66. package/dist/DatePicker.js.map +1 -1
  67. package/dist/DescriptionList.js +2 -2
  68. package/dist/DescriptionList.js.map +1 -1
  69. package/dist/DescriptionListDetail.js +2 -2
  70. package/dist/DescriptionListDetail.js.map +1 -1
  71. package/dist/DescriptionListGroup.js +9 -9
  72. package/dist/DescriptionListGroup.js.map +1 -1
  73. package/dist/DescriptionListTerm.js +8 -8
  74. package/dist/DescriptionListTerm.js.map +1 -1
  75. package/dist/Dialog.js +47 -47
  76. package/dist/Dialog.js.map +1 -1
  77. package/dist/Divider.js +6 -6
  78. package/dist/Divider.js.map +1 -1
  79. package/dist/Dropdown.js +20 -20
  80. package/dist/Dropdown.js.map +1 -1
  81. package/dist/EmptyState.js +26 -26
  82. package/dist/EmptyState.js.map +1 -1
  83. package/dist/Field.js +1 -1
  84. package/dist/{Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js → Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js} +17 -17
  85. package/dist/Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js.map +1 -0
  86. package/dist/FileUpload.js +47 -49
  87. package/dist/FileUpload.js.map +1 -1
  88. package/dist/FilterChip.js +20 -20
  89. package/dist/FilterChip.js.map +1 -1
  90. package/dist/FilterDrawerItem.js +13 -13
  91. package/dist/FilterDrawerItem.js.map +1 -1
  92. package/dist/FilterDropdown.js +27 -27
  93. package/dist/FilterDropdown.js.map +1 -1
  94. package/dist/FilterSelect.js +33 -33
  95. package/dist/FilterSelect.js.map +1 -1
  96. package/dist/Filters.js +29 -29
  97. package/dist/Filters.js.map +1 -1
  98. package/dist/Filters.vue.d.ts +2 -8
  99. package/dist/HttpError.js +29 -29
  100. package/dist/HttpError.js.map +1 -1
  101. package/dist/HttpError.vue.d.ts +0 -3
  102. package/dist/Icon.js +12 -12
  103. package/dist/Icon.js.map +1 -1
  104. package/dist/IconLabel.js +19 -19
  105. package/dist/IconLabel.js.map +1 -1
  106. package/dist/IconLabel.vue.d.ts +1 -1
  107. package/dist/Illustration.js +2 -2
  108. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js} +4 -4
  109. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js.map} +1 -1
  110. package/dist/Image.js +2 -2
  111. package/dist/Image.vue.d.ts +0 -3
  112. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js} +11 -11
  113. package/dist/Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js.map +1 -0
  114. package/dist/InlineEdit.js +8 -8
  115. package/dist/InlineEdit.js.map +1 -1
  116. package/dist/Input.js +29 -29
  117. package/dist/Input.js.map +1 -1
  118. package/dist/InputOptions.js +87 -84
  119. package/dist/InputOptions.js.map +1 -1
  120. package/dist/InputOptions.vue.d.ts +2 -2
  121. package/dist/IntegrationIcon.js +11 -11
  122. package/dist/IntegrationIcon.js.map +1 -1
  123. package/dist/Label.js +1 -1
  124. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js} +16 -16
  125. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js.map} +1 -1
  126. package/dist/ListItem.js +14 -14
  127. package/dist/ListItem.js.map +1 -1
  128. package/dist/ListItem.vue.d.ts +0 -6
  129. package/dist/ListItemCell.js +9 -9
  130. package/dist/ListItemCell.js.map +1 -1
  131. package/dist/ListView.js +138 -141
  132. package/dist/ListView.js.map +1 -1
  133. package/dist/ListView.vue.d.ts +2 -26
  134. package/dist/Loading.js +8 -8
  135. package/dist/Loading.js.map +1 -1
  136. package/dist/Logo.js +1 -1
  137. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js} +3 -3
  138. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js.map} +1 -1
  139. package/dist/Menu.js +5 -5
  140. package/dist/Menu.js.map +1 -1
  141. package/dist/MenuItem.js +12 -12
  142. package/dist/MenuItem.js.map +1 -1
  143. package/dist/Metric.js +24 -24
  144. package/dist/Metric.js.map +1 -1
  145. package/dist/Modal.js +60 -60
  146. package/dist/Modal.js.map +1 -1
  147. package/dist/Modals.js +1 -1
  148. package/dist/Modals.js.map +1 -1
  149. package/dist/Module.js +6 -6
  150. package/dist/Module.js.map +1 -1
  151. package/dist/ModuleContent.js +16 -16
  152. package/dist/ModuleContent.js.map +1 -1
  153. package/dist/ModuleFooter.js +13 -13
  154. package/dist/ModuleFooter.js.map +1 -1
  155. package/dist/ModuleHeader.js +29 -29
  156. package/dist/ModuleHeader.js.map +1 -1
  157. package/dist/MoreActions.js +81 -84
  158. package/dist/MoreActions.js.map +1 -1
  159. package/dist/ObfuscateText.js +4 -4
  160. package/dist/ObfuscateText.js.map +1 -1
  161. package/dist/PageContent.js +13 -13
  162. package/dist/PageContent.js.map +1 -1
  163. package/dist/PageHeader.js +28 -28
  164. package/dist/PageHeader.js.map +1 -1
  165. package/dist/PageNavigation.js +1 -1
  166. package/dist/Paginate.js +45 -45
  167. package/dist/Paginate.js.map +1 -1
  168. package/dist/QuickAction.js +18 -18
  169. package/dist/QuickAction.js.map +1 -1
  170. package/dist/Radio.js +17 -17
  171. package/dist/Radio.js.map +1 -1
  172. package/dist/RadioGroup.js +121 -121
  173. package/dist/RadioGroup.js.map +1 -1
  174. package/dist/RadioNew.js +80 -80
  175. package/dist/RadioNew.js.map +1 -1
  176. package/dist/RadioNew.vue.d.ts +0 -3
  177. package/dist/RangeInput.js +2 -2
  178. package/dist/RangeInput.js.map +1 -1
  179. package/dist/SearchBar.js +9 -9
  180. package/dist/SearchBar.js.map +1 -1
  181. package/dist/SectionHeader.js +14 -14
  182. package/dist/SectionHeader.js.map +1 -1
  183. package/dist/Select.js +369 -366
  184. package/dist/Select.js.map +1 -1
  185. package/dist/SelectStatus.js +26 -26
  186. package/dist/SelectStatus.js.map +1 -1
  187. package/dist/Skeleton.js +20 -20
  188. package/dist/Skeleton.js.map +1 -1
  189. package/dist/Step.js +37 -40
  190. package/dist/Step.js.map +1 -1
  191. package/dist/Stepper.js +17 -17
  192. package/dist/Stepper.js.map +1 -1
  193. package/dist/Switch.js +57 -57
  194. package/dist/Switch.js.map +1 -1
  195. package/dist/Tab.js +17 -19
  196. package/dist/Tab.js.map +1 -1
  197. package/dist/TabPanel.js +1 -1
  198. package/dist/TabPanel.js.map +1 -1
  199. package/dist/Table.js +22 -22
  200. package/dist/Table.js.map +1 -1
  201. package/dist/TableCell.js +32 -32
  202. package/dist/TableCell.js.map +1 -1
  203. package/dist/TableHeaderCell.js +35 -35
  204. package/dist/TableHeaderCell.js.map +1 -1
  205. package/dist/TableHeaderRow.js +10 -10
  206. package/dist/TableHeaderRow.js.map +1 -1
  207. package/dist/TableRow.js +51 -51
  208. package/dist/TableRow.js.map +1 -1
  209. package/dist/Tabs.js +2 -2
  210. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js → Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js} +33 -33
  211. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js.map +1 -0
  212. package/dist/TextEditor.js +8 -8
  213. package/dist/TextEditor.js.map +1 -1
  214. package/dist/Textarea.js +15 -15
  215. package/dist/Textarea.js.map +1 -1
  216. package/dist/Thumbnail.js +41 -41
  217. package/dist/Thumbnail.js.map +1 -1
  218. package/dist/ThumbnailEmpty.js +3 -3
  219. package/dist/ThumbnailEmpty.js.map +1 -1
  220. package/dist/ThumbnailGroup.js +22 -22
  221. package/dist/ThumbnailGroup.js.map +1 -1
  222. package/dist/Timeline.js +3 -3
  223. package/dist/Timeline.js.map +1 -1
  224. package/dist/TimelineItem.js +22 -22
  225. package/dist/TimelineItem.js.map +1 -1
  226. package/dist/Toast.js +29 -29
  227. package/dist/Toast.js.map +1 -1
  228. package/dist/Toast.vue.d.ts +3 -0
  229. package/dist/Toasts.js +11 -11
  230. package/dist/Toasts.js.map +1 -1
  231. package/dist/Tooltip.js +2 -81
  232. package/dist/Tooltip.js.map +1 -1
  233. package/dist/Tooltip.vue.d.ts +1 -1
  234. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js +84 -0
  235. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js.map +1 -0
  236. package/dist/components.css +2 -2
  237. package/dist/constants.d.ts +9 -9
  238. package/dist/constants.js +17 -17
  239. package/dist/constants.js.map +1 -1
  240. package/dist/directives/tooltip.js +2 -2
  241. package/dist/directives/tooltip.js.map +1 -1
  242. package/dist/{index-C14LhAwV.js → index-DBV9Uz0C.js} +3 -3
  243. package/dist/{index-C14LhAwV.js.map → index-DBV9Uz0C.js.map} +1 -1
  244. package/dist/tailwind-base.js.d.ts +12 -0
  245. package/dist/tailwind-base.js.map +1 -1
  246. package/dist/useSortable.js +1 -1
  247. package/dist/utils/helpers.js +15 -15
  248. package/dist/utils/helpers.js.map +1 -1
  249. package/package.json +15 -15
  250. package/styles/backwards-compat.css +373 -2851
  251. package/styles/main.css +8 -0
  252. package/styles/sofia-font.css +23 -27
  253. package/styles/theme.css +1033 -0
  254. package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +0 -1
  255. package/dist/Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map +0 -1
  256. package/dist/Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js.map +0 -1
  257. package/dist/tailwind-base.d.ts +0 -333
  258. package/styles/base.css +0 -902
  259. package/tailwind-base.ts +0 -455
@@ -1,4 +1,4 @@
1
- import { defineComponent as y, useCssModule as D, inject as S, createBlock as n, createCommentVNode as l, openBlock as s, withCtx as o, createElementVNode as c, createElementBlock as f, Fragment as k, renderList as V, unref as t, normalizeClass as b, createVNode as d, createTextVNode as i, toDisplayString as u } from "vue";
1
+ import { defineComponent as y, useCssModule as D, inject as S, createBlock as n, createCommentVNode as l, openBlock as s, withCtx as o, createElementVNode as c, createElementBlock as k, Fragment as w, renderList as V, unref as t, normalizeClass as b, createVNode as d, createTextVNode as i, toDisplayString as u } from "vue";
2
2
  import { t as B } from "./locale.js";
3
3
  import _ from "./Button.js";
4
4
  import "lodash-es/cloneDeep";
@@ -16,11 +16,11 @@ const v = {
16
16
  sortOptions: { default: () => [] }
17
17
  },
18
18
  setup(x) {
19
- const m = x, w = D(), { currentSortId: r, currentSortOrder: a, updateCurrentSort: p } = S(
19
+ const m = x, p = D(), { currentSortId: r, currentSortOrder: a, updateCurrentSort: f } = S(
20
20
  C.key,
21
21
  C.defaults
22
22
  );
23
- return (q, F) => m.sortOptions.length ? (s(), n(E, {
23
+ return (F, J) => m.sortOptions.length ? (s(), n(E, {
24
24
  key: 0,
25
25
  align: "left",
26
26
  class: "stash-data-view-sort-button",
@@ -30,7 +30,7 @@ const v = {
30
30
  d(_, {
31
31
  "icon-label": "",
32
32
  "aria-expanded": e.toString(),
33
- class: "tw-text-blue-500",
33
+ class: "text-blue-500",
34
34
  "data-test": "stash-data-view-sort-button|sort-menu-button",
35
35
  onClick: g
36
36
  }, {
@@ -50,48 +50,48 @@ const v = {
50
50
  ]),
51
51
  default: o(() => [
52
52
  c("ul", v, [
53
- (s(!0), f(k, null, V(m.sortOptions, (e) => (s(), f(k, {
53
+ (s(!0), k(w, null, V(m.sortOptions, (e) => (s(), k(w, {
54
54
  key: e.id
55
55
  }, [
56
56
  c("li", {
57
- class: b(["dropdown__item tw-rounded", [
58
- t(w).dropdown__item,
59
- { "tw-bg-blue-100 tw-text-ice-700": e.id === t(r) && t(a) === "asc" }
57
+ class: b(["dropdown__item rounded", [
58
+ t(p).dropdown__item,
59
+ { "bg-blue-100 text-ice-700": e.id === t(r) && t(a) === "asc" }
60
60
  ]]),
61
- onClick: () => t(p)(e.id, { sortOrder: "asc", shouldEmit: !0 })
61
+ onClick: () => t(f)(e.id, { sortOrder: "asc", shouldEmit: !0 })
62
62
  }, [
63
63
  d(_, {
64
64
  inline: "",
65
- class: "tw-h-9"
65
+ class: "h-9"
66
66
  }, {
67
67
  default: o(() => [
68
68
  i(u(e.labelAsc) + " ", 1),
69
69
  e.id === t(r) && t(a) === "asc" ? (s(), n(h, {
70
70
  key: 0,
71
71
  name: "check",
72
- class: "tw-ml-auto tw-text-blue-500"
72
+ class: "ml-auto text-blue-500"
73
73
  })) : l("", !0)
74
74
  ]),
75
75
  _: 2
76
76
  }, 1024)
77
77
  ], 10, A),
78
78
  c("li", {
79
- class: b(["dropdown__item tw-rounded", [
80
- t(w).dropdown__item,
81
- { "tw-bg-blue-100 tw-text-ice-700": e.id === t(r) && t(a) === "desc" }
79
+ class: b(["dropdown__item rounded", [
80
+ t(p).dropdown__item,
81
+ { "bg-blue-100 text-ice-700": e.id === t(r) && t(a) === "desc" }
82
82
  ]]),
83
- onClick: () => t(p)(e.id, { sortOrder: "desc", shouldEmit: !0 })
83
+ onClick: () => t(f)(e.id, { sortOrder: "desc", shouldEmit: !0 })
84
84
  }, [
85
85
  d(_, {
86
86
  inline: "",
87
- class: "tw-h-9"
87
+ class: "h-9"
88
88
  }, {
89
89
  default: o(() => [
90
90
  i(u(e.labelDesc) + " ", 1),
91
91
  e.id === t(r) && t(a) === "desc" ? (s(), n(h, {
92
92
  key: 0,
93
93
  name: "check",
94
- class: "tw-ml-auto tw-text-blue-500"
94
+ class: "ml-auto text-blue-500"
95
95
  })) : l("", !0)
96
96
  ]),
97
97
  _: 2
@@ -103,11 +103,11 @@ const v = {
103
103
  _: 1
104
104
  })) : l("", !0);
105
105
  }
106
- }), z = "_dropdown__item_ozq17_2", L = {
107
- dropdown__item: z
108
- }, j = {
109
- $style: L
110
- }, U = /* @__PURE__ */ N(T, [["__cssModules", j]]);
106
+ }), L = "_dropdown__item_s4w8l_3", j = {
107
+ dropdown__item: L
108
+ }, z = {
109
+ $style: j
110
+ }, U = /* @__PURE__ */ N(T, [["__cssModules", z]]);
111
111
  export {
112
112
  U as default
113
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewSortButton.js","sources":["../src/components/DataViewSortButton/DataViewSortButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { inject, useCssModule } from 'vue';\n\n import { t } from '../../locale';\n import Button from '../Button/Button.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.vue';\n import Dropdown from '../Dropdown/Dropdown.vue';\n import Icon from '../Icon/Icon.vue';\n import IconLabel from '../IconLabel/IconLabel.vue';\n import { SortOption } from './DataViewSortButton.types';\n\n export interface DataViewToolbarProps {\n /**\n * An array of sort options to display in the dropdown.\n */\n sortOptions?: SortOption[];\n }\n\n const props = withDefaults(defineProps<DataViewToolbarProps>(), {\n sortOptions: () => [],\n });\n const classes = useCssModule();\n\n const { currentSortId, currentSortOrder, updateCurrentSort } = inject(\n DATA_VIEW_INJECTION.key,\n DATA_VIEW_INJECTION.defaults,\n );\n</script>\n\n<template>\n <Dropdown\n v-if=\"props.sortOptions.length\"\n align=\"left\"\n class=\"stash-data-view-sort-button\"\n data-test=\"stash-data-view-sort-button\"\n >\n <template #toggle=\"{ isActive, toggle }\">\n <Button\n icon-label\n :aria-expanded=\"isActive.toString()\"\n class=\"tw-text-blue-500\"\n data-test=\"stash-data-view-sort-button|sort-menu-button\"\n @click=\"toggle\"\n >\n <IconLabel icon=\"sort\" stacked>\n {{ t('ll.sort') }}\n </IconLabel>\n </Button>\n </template>\n <ul class=\"dropdown__list\" data-test=\"stash-data-view-sort-button|sort-menu\">\n <template v-for=\"sortOption in props.sortOptions\" :key=\"sortOption.id\">\n <li\n class=\"dropdown__item tw-rounded\"\n :class=\"[\n classes.dropdown__item,\n { 'tw-bg-blue-100 tw-text-ice-700': sortOption.id === currentSortId && currentSortOrder === 'asc' },\n ]\"\n @click=\"() => updateCurrentSort(sortOption.id, { sortOrder: 'asc', shouldEmit: true })\"\n >\n <Button inline class=\"tw-h-9\">\n {{ sortOption.labelAsc }}\n <Icon\n v-if=\"sortOption.id === currentSortId && currentSortOrder === 'asc'\"\n name=\"check\"\n class=\"tw-ml-auto tw-text-blue-500\"\n />\n </Button>\n </li>\n <li\n class=\"dropdown__item tw-rounded\"\n :class=\"[\n classes.dropdown__item,\n { 'tw-bg-blue-100 tw-text-ice-700': sortOption.id === currentSortId && currentSortOrder === 'desc' },\n ]\"\n @click=\"() => updateCurrentSort(sortOption.id, { sortOrder: 'desc', shouldEmit: true })\"\n >\n <Button inline class=\"tw-h-9\">\n {{ sortOption.labelDesc }}\n <Icon\n v-if=\"sortOption.id === currentSortId && currentSortOrder === 'desc'\"\n name=\"check\"\n class=\"tw-ml-auto tw-text-blue-500\"\n />\n </Button>\n </li>\n </template>\n </ul>\n </Dropdown>\n</template>\n\n<style module>\n .dropdown__item > button {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n</style>\n"],"names":["props","__props","classes","useCssModule","currentSortId","currentSortOrder","updateCurrentSort","inject","DATA_VIEW_INJECTION"],"mappings":";;;;;;;;;;;;;;;;;;AAkBE,UAAMA,IAAQC,GAGRC,IAAUC,EAAA,GAEV,EAAE,eAAAC,GAAe,kBAAAC,GAAkB,mBAAAC,EAAA,IAAsBC;AAAA,MAC7DC,EAAoB;AAAA,MACpBA,EAAoB;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DataViewSortButton.js","sources":["../src/components/DataViewSortButton/DataViewSortButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { inject, useCssModule } from 'vue';\n\n import { t } from '../../locale';\n import Button from '../Button/Button.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.vue';\n import Dropdown from '../Dropdown/Dropdown.vue';\n import Icon from '../Icon/Icon.vue';\n import IconLabel from '../IconLabel/IconLabel.vue';\n import { SortOption } from './DataViewSortButton.types';\n\n export interface DataViewToolbarProps {\n /**\n * An array of sort options to display in the dropdown.\n */\n sortOptions?: SortOption[];\n }\n\n const props = withDefaults(defineProps<DataViewToolbarProps>(), {\n sortOptions: () => [],\n });\n const classes = useCssModule();\n\n const { currentSortId, currentSortOrder, updateCurrentSort } = inject(\n DATA_VIEW_INJECTION.key,\n DATA_VIEW_INJECTION.defaults,\n );\n</script>\n\n<template>\n <Dropdown\n v-if=\"props.sortOptions.length\"\n align=\"left\"\n class=\"stash-data-view-sort-button\"\n data-test=\"stash-data-view-sort-button\"\n >\n <template #toggle=\"{ isActive, toggle }\">\n <Button\n icon-label\n :aria-expanded=\"isActive.toString()\"\n class=\"text-blue-500\"\n data-test=\"stash-data-view-sort-button|sort-menu-button\"\n @click=\"toggle\"\n >\n <IconLabel icon=\"sort\" stacked>\n {{ t('ll.sort') }}\n </IconLabel>\n </Button>\n </template>\n <ul class=\"dropdown__list\" data-test=\"stash-data-view-sort-button|sort-menu\">\n <template v-for=\"sortOption in props.sortOptions\" :key=\"sortOption.id\">\n <li\n class=\"dropdown__item rounded\"\n :class=\"[\n classes.dropdown__item,\n { 'bg-blue-100 text-ice-700': sortOption.id === currentSortId && currentSortOrder === 'asc' },\n ]\"\n @click=\"() => updateCurrentSort(sortOption.id, { sortOrder: 'asc', shouldEmit: true })\"\n >\n <Button inline class=\"h-9\">\n {{ sortOption.labelAsc }}\n <Icon\n v-if=\"sortOption.id === currentSortId && currentSortOrder === 'asc'\"\n name=\"check\"\n class=\"ml-auto text-blue-500\"\n />\n </Button>\n </li>\n <li\n class=\"dropdown__item rounded\"\n :class=\"[\n classes.dropdown__item,\n { 'bg-blue-100 text-ice-700': sortOption.id === currentSortId && currentSortOrder === 'desc' },\n ]\"\n @click=\"() => updateCurrentSort(sortOption.id, { sortOrder: 'desc', shouldEmit: true })\"\n >\n <Button inline class=\"h-9\">\n {{ sortOption.labelDesc }}\n <Icon\n v-if=\"sortOption.id === currentSortId && currentSortOrder === 'desc'\"\n name=\"check\"\n class=\"ml-auto text-blue-500\"\n />\n </Button>\n </li>\n </template>\n </ul>\n </Dropdown>\n</template>\n\n<style module>\n @layer utilities {\n .dropdown__item > button {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n</style>\n"],"names":["props","__props","classes","useCssModule","currentSortId","currentSortOrder","updateCurrentSort","inject","DATA_VIEW_INJECTION"],"mappings":";;;;;;;;;;;;;;;;;;AAkBE,UAAMA,IAAQC,GAGRC,IAAUC,EAAA,GAEV,EAAE,eAAAC,GAAe,kBAAAC,GAAkB,mBAAAC,EAAA,IAAsBC;AAAA,MAC7DC,EAAoB;AAAA,MACpBA,EAAoB;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { ref as J, onMounted as H, nextTick as k, onBeforeUnmount as Q, watch as D, defineComponent as X, useTemplateRef as M, inject as Y, useCssModule as Z, computed as ee, onBeforeMount as te, createElementBlock as w, openBlock as l, normalizeClass as P, unref as e, createElementVNode as oe, createCommentVNode as x, createBlock as L, withCtx as r, renderSlot as R, createVNode as b, createTextVNode as ae, toDisplayString as F, Fragment as se } from "vue";
1
+ import { ref as J, onMounted as H, nextTick as w, onBeforeUnmount as Q, watch as D, defineComponent as X, useTemplateRef as M, inject as Y, useCssModule as Z, computed as ee, onBeforeMount as te, createElementBlock as b, openBlock as l, normalizeClass as P, unref as e, createElementVNode as oe, createCommentVNode as x, createBlock as L, withCtx as r, renderSlot as R, createVNode as v, createTextVNode as ae, toDisplayString as F, Fragment as se } from "vue";
2
2
  import { u as le } from "./usePaginationStats-d_q39naC.js";
3
3
  import { t as y } from "./locale.js";
4
4
  import O from "./Button.js";
@@ -13,20 +13,20 @@ function ce(z) {
13
13
  const { toolbarEl: n, paginationEl: t, checkboxEl: _, isPaginationEnabled: d, isSelectable: c, isEmpty: u } = z, p = J(null);
14
14
  let s = null, o = null;
15
15
  const a = () => {
16
- var h;
16
+ var k;
17
17
  if (!n.value) return;
18
18
  const i = n.value.getBoundingClientRect().width;
19
- let v = 0, g = 0;
20
- d != null && d.value && t.value && (v = t.value.getBoundingClientRect().width), c != null && c.value && !(u != null && u.value) && ((h = _.value) != null && h.$el) && (g = _.value.$el.getBoundingClientRect().width);
21
- const S = window.getComputedStyle(n.value), E = parseFloat(S.paddingLeft) || 0, $ = parseFloat(S.paddingRight) || 0, T = Math.max(0, i - v - g - E - $);
19
+ let g = 0, h = 0;
20
+ d != null && d.value && t.value && (g = t.value.getBoundingClientRect().width), c != null && c.value && !(u != null && u.value) && ((k = _.value) != null && k.$el) && (h = _.value.$el.getBoundingClientRect().width);
21
+ const S = window.getComputedStyle(n.value), E = parseFloat(S.paddingLeft) || 0, $ = parseFloat(S.paddingRight) || 0, T = Math.max(0, i - g - h - E - $);
22
22
  p.value = `${T}px`;
23
23
  }, C = () => {
24
24
  n.value && (s = new ResizeObserver(() => {
25
- k(() => {
25
+ w(() => {
26
26
  a();
27
27
  });
28
28
  }), s.observe(n.value), t.value && (o = new ResizeObserver(() => {
29
- k(() => {
29
+ w(() => {
30
30
  a();
31
31
  });
32
32
  }), o.observe(t.value)));
@@ -34,18 +34,18 @@ function ce(z) {
34
34
  s && (s.disconnect(), s = null), o && (o.disconnect(), o = null);
35
35
  };
36
36
  return H(() => {
37
- k(() => {
37
+ w(() => {
38
38
  a(), C();
39
39
  });
40
40
  }), Q(() => {
41
41
  B();
42
42
  }), D([d, c, u], () => {
43
- k(() => {
43
+ w(() => {
44
44
  a();
45
45
  });
46
46
  }), D(t, (i) => {
47
47
  o && (o.disconnect(), o = null), i && (o = new ResizeObserver(() => {
48
- k(() => {
48
+ w(() => {
49
49
  a();
50
50
  });
51
51
  }), o.observe(i));
@@ -54,17 +54,17 @@ function ce(z) {
54
54
  updateActionsWidth: a
55
55
  };
56
56
  }
57
- const ue = { class: "tw-flex tw-place-items-center" }, pe = {
57
+ const ue = { class: "flex place-items-center" }, pe = {
58
58
  key: 0,
59
59
  ref: "paginationEl",
60
- class: "stash-data-view-toolbar__pagination tw-flex tw-shrink-0 tw-items-center"
60
+ class: "stash-data-view-toolbar__pagination flex shrink-0 items-center"
61
61
  }, me = {
62
62
  key: 0,
63
- class: "tw-mx-1.5"
63
+ class: "mx-1.5"
64
64
  }, fe = {
65
65
  key: 0,
66
- class: "tw-mx-1.5 tw-hidden md:tw-block"
67
- }, we = /* @__PURE__ */ X({
66
+ class: "mx-1.5 hidden md:block"
67
+ }, be = /* @__PURE__ */ X({
68
68
  __name: "DataViewToolbar",
69
69
  props: {
70
70
  allRowsSelected: { type: Boolean, default: !1 },
@@ -84,42 +84,42 @@ const ue = { class: "tw-flex tw-place-items-center" }, pe = {
84
84
  hasToolbar: C,
85
85
  isPaginateNextDisabled: B,
86
86
  isPaginationEnabled: i,
87
- isSelectable: v,
88
- pageCount: g,
87
+ isSelectable: g,
88
+ pageCount: h,
89
89
  pageSize: S,
90
90
  totalDataCount: E,
91
91
  goPrevPage: $,
92
92
  goNextPage: T,
93
- isEmpty: h,
93
+ isEmpty: k,
94
94
  isLoading: V
95
95
  } = Y(j.key, j.defaults), A = J(0), K = Z(), { actionsWidth: q } = ce({
96
96
  toolbarEl: d,
97
97
  paginationEl: c,
98
98
  checkboxEl: u,
99
99
  isPaginationEnabled: i,
100
- isSelectable: v,
101
- isEmpty: h
100
+ isSelectable: g,
101
+ isEmpty: k
102
102
  }), W = ee(() => t.radius ? t.radius : p.value ? "none" : s.value === "table" ? t.hasTabsAbove ? "rounded-top-right" : "rounded-top" : "rounded"), G = le({ currentPage: a, pageSize: S, totalItems: E });
103
103
  function N() {
104
104
  _("select"), A.value++;
105
105
  }
106
106
  return te(() => {
107
107
  C && (C.value = !0);
108
- }), (m, f) => (l(), w("div", {
108
+ }), (m, f) => (l(), b("div", {
109
109
  ref: "toolbarEl",
110
- class: P(["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", {
111
- "tw-border-t tw-border-ice-200": e(p),
112
- "tw-rounded-tr": W.value === "rounded-top-right",
113
- "tw-rounded": W.value === "rounded",
114
- "tw-rounded-t": W.value === "rounded-top",
115
- "tw-mb-3": e(s) !== "table" && !e(p),
116
- "tw-px-3": e(o) === "compact",
117
- "tw-px-3 lg:tw-px-6": e(o) === "comfortable"
110
+ class: P(["stash-data-view-toolbar flex min-h-15 items-center justify-between bg-white py-1.5 shadow", {
111
+ "border-t border-ice-200": e(p),
112
+ "rounded-tr": W.value === "rounded-top-right",
113
+ rounded: W.value === "rounded",
114
+ "rounded-t": W.value === "rounded-top",
115
+ "mb-3": e(s) !== "table" && !e(p),
116
+ "px-3": e(o) === "compact",
117
+ "px-3 lg:px-6": e(o) === "comfortable"
118
118
  }]),
119
119
  "data-test": "stash-data-view-toolbar"
120
120
  }, [
121
121
  oe("div", ue, [
122
- e(v) && !e(h) ? (l(), L(ne, {
122
+ e(g) && !e(k) ? (l(), L(ne, {
123
123
  ref: "checkboxEl",
124
124
  key: A.value,
125
125
  checked: t.allRowsSelected,
@@ -133,17 +133,17 @@ const ue = { class: "tw-flex tw-place-items-center" }, pe = {
133
133
  key: 1,
134
134
  "more-button-align": "together",
135
135
  width: e(q) || void 0,
136
- "actions-container-class": "tw-flex tw-items-center tw-gap-x-2 lg:tw-mr-6 lg:tw-gap-x-6"
136
+ "actions-container-class": "flex items-center gap-x-2 lg:mr-6 lg:gap-x-6"
137
137
  }, {
138
138
  toggle: r(({ toggle: I }) => [
139
- b(O, {
139
+ v(O, {
140
140
  "icon-label": "",
141
- class: "tw-text-blue-500",
141
+ class: "text-blue-500",
142
142
  "data-test": "stash-data-view-sort-button|sort-menu-button",
143
143
  onClick: I
144
144
  }, {
145
145
  default: r(() => [
146
- b(ie, {
146
+ v(ie, {
147
147
  icon: "ellipsis",
148
148
  stacked: ""
149
149
  }, {
@@ -163,47 +163,47 @@ const ue = { class: "tw-flex tw-place-items-center" }, pe = {
163
163
  R(m.$slots, "default")
164
164
  ]),
165
165
  _: 3
166
- }, 8, ["width"])) : (l(), w("div", {
166
+ }, 8, ["width"])) : (l(), b("div", {
167
167
  key: 2,
168
- class: P([e(K).actions, "stash-data-view-toolbar__actions tw-flex tw-items-center tw-gap-x-2 lg:tw-gap-x-4"])
168
+ class: P([e(K).actions, "stash-data-view-toolbar__actions flex items-center gap-x-2 lg:gap-x-4"])
169
169
  }, [
170
170
  R(m.$slots, "default")
171
171
  ], 2))
172
172
  ]),
173
- e(i) ? (l(), w("div", pe, [
173
+ e(i) ? (l(), b("div", pe, [
174
174
  R(m.$slots, "selected-stats", {}, () => [
175
- t.someRowsSelected && t.selectedItemsCount !== void 0 ? (l(), w("span", me, F(e(y)("ll.listView.numberOfTotalSelected", { num: t.selectedItemsCount, total: e(E) })), 1)) : x("", !0)
175
+ t.someRowsSelected && t.selectedItemsCount !== void 0 ? (l(), b("span", me, F(e(y)("ll.listView.numberOfTotalSelected", { num: t.selectedItemsCount, total: e(E) })), 1)) : x("", !0)
176
176
  ]),
177
177
  R(m.$slots, "page-stats", {}, () => [
178
- t.hidePageStats ? x("", !0) : (l(), w("span", fe, F(e(y)("ll.pageStats", e(G))), 1))
178
+ t.hidePageStats ? x("", !0) : (l(), b("span", fe, F(e(y)("ll.pageStats", e(G))), 1))
179
179
  ]),
180
- e(g) > 1 ? (l(), w(se, { key: 0 }, [
181
- b(O, {
180
+ e(h) > 1 ? (l(), b(se, { key: 0 }, [
181
+ v(O, {
182
182
  icon: "",
183
183
  "aria-label": e(y)("ll.previous"),
184
- class: "tw-size-9 tw-p-1.5",
184
+ class: "size-9 p-1.5",
185
185
  "data-test": "button|prev-page",
186
186
  disabled: e(V) || e(a) === 1,
187
187
  onClick: f[0] || (f[0] = (I) => e($)({ shouldEmit: !0 }))
188
188
  }, {
189
189
  default: r(() => [
190
- b(U, {
190
+ v(U, {
191
191
  name: "chevron-left",
192
192
  size: "dense"
193
193
  })
194
194
  ]),
195
195
  _: 1
196
196
  }, 8, ["aria-label", "disabled"]),
197
- b(O, {
197
+ v(O, {
198
198
  icon: "",
199
199
  "aria-label": e(y)("ll.next"),
200
- class: "tw-size-9 tw-p-1.5",
200
+ class: "size-9 p-1.5",
201
201
  "data-test": "button|next-page",
202
- disabled: e(V) || e(B) || e(a) === e(g),
202
+ disabled: e(V) || e(B) || e(a) === e(h),
203
203
  onClick: f[1] || (f[1] = (I) => e(T)({ shouldEmit: !0 }))
204
204
  }, {
205
205
  default: r(() => [
206
- b(U, {
206
+ v(U, {
207
207
  name: "chevron-right",
208
208
  size: "dense"
209
209
  })
@@ -214,11 +214,11 @@ const ue = { class: "tw-flex tw-place-items-center" }, pe = {
214
214
  ], 512)) : x("", !0)
215
215
  ], 2));
216
216
  }
217
- }), be = "_actions_k8z80_2", ve = {
218
- actions: be
219
- }, ge = {
220
- $style: ve
221
- }, $e = /* @__PURE__ */ de(we, [["__cssModules", ge]]);
217
+ }), ve = "_actions_1i7a8_3", ge = {
218
+ actions: ve
219
+ }, he = {
220
+ $style: ge
221
+ }, $e = /* @__PURE__ */ de(be, [["__cssModules", he]]);
222
222
  export {
223
223
  $e as default
224
224
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewToolbar.js","sources":["../src/components/DataViewToolbar/useActionsWidth.ts","../src/components/DataViewToolbar/DataViewToolbar.vue"],"sourcesContent":["import { ComputedRef, nextTick, onBeforeUnmount, onMounted, Ref, ref, ShallowRef, watch } from 'vue';\n\nexport interface UseActionsWidthOptions {\n toolbarEl: ShallowRef<HTMLElement | null>;\n paginationEl: ShallowRef<HTMLElement | null>;\n checkboxEl: ShallowRef<{ $el: HTMLElement } | null>;\n isPaginationEnabled: ComputedRef<boolean> | undefined;\n isSelectable: Ref<boolean> | undefined;\n isEmpty: ComputedRef<boolean> | undefined;\n}\n\nexport function useActionsWidth(options: UseActionsWidthOptions) {\n const { toolbarEl, paginationEl, checkboxEl, isPaginationEnabled, isSelectable, isEmpty } = options;\n\n const actionsWidth = ref<string | null>(null);\n let toolbarResizeObserver: ResizeObserver | null = null;\n let paginationResizeObserver: ResizeObserver | null = null;\n\n const updateActionsWidth = () => {\n if (!toolbarEl.value) return;\n\n const toolbarWidth = toolbarEl.value.getBoundingClientRect().width;\n let paginationWidth = 0;\n let checkboxWidth = 0;\n\n // Calculate pagination width if pagination is enabled\n if (isPaginationEnabled?.value && paginationEl.value) {\n paginationWidth = paginationEl.value.getBoundingClientRect().width;\n }\n\n // Calculate checkbox width if selectable and not empty\n if (isSelectable?.value && !isEmpty?.value && checkboxEl.value?.$el) {\n checkboxWidth = checkboxEl.value.$el.getBoundingClientRect().width;\n }\n\n // Get computed styles to calculate padding\n const computedStyle = window.getComputedStyle(toolbarEl.value);\n const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;\n const paddingRight = parseFloat(computedStyle.paddingRight) || 0;\n\n const availableWidth = Math.max(0, toolbarWidth - paginationWidth - checkboxWidth - paddingLeft - paddingRight);\n actionsWidth.value = `${availableWidth}px`;\n };\n\n const setupResizeObserver = () => {\n if (!toolbarEl.value) return;\n\n // Observe toolbar element\n toolbarResizeObserver = new ResizeObserver(() => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n toolbarResizeObserver.observe(toolbarEl.value);\n\n // Observe pagination element if it exists\n if (paginationEl.value) {\n paginationResizeObserver = new ResizeObserver(() => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n paginationResizeObserver.observe(paginationEl.value);\n }\n };\n\n const cleanupResizeObserver = () => {\n if (toolbarResizeObserver) {\n toolbarResizeObserver.disconnect();\n toolbarResizeObserver = null;\n }\n if (paginationResizeObserver) {\n paginationResizeObserver.disconnect();\n paginationResizeObserver = null;\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n updateActionsWidth();\n setupResizeObserver();\n });\n });\n\n onBeforeUnmount(() => {\n cleanupResizeObserver();\n });\n\n // Watch for changes in conditions that affect element visibility\n watch([isPaginationEnabled, isSelectable, isEmpty], () => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n\n // Watch for pagination element changes to setup/cleanup observer\n watch(paginationEl, (newPaginationEl) => {\n // Cleanup old observer if it exists\n if (paginationResizeObserver) {\n paginationResizeObserver.disconnect();\n paginationResizeObserver = null;\n }\n\n // Setup new observer if pagination element exists\n if (newPaginationEl) {\n paginationResizeObserver = new ResizeObserver(() => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n paginationResizeObserver.observe(newPaginationEl);\n }\n });\n\n return {\n actionsWidth,\n updateActionsWidth,\n };\n}\n","<script setup lang=\"ts\">\n import { computed, inject, onBeforeMount, ref, useCssModule, useTemplateRef } from 'vue';\n\n import usePaginationStats from '../../composables/usePaginationStats/usePaginationStats';\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 IconLabel from '../IconLabel/IconLabel.vue';\n import MoreActions from '../MoreActions/MoreActions.vue';\n import { ToolbarRadiuses } from './DataViewToolbar.types';\n import { useActionsWidth } from './useActionsWidth';\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 * The number of selected items. Used to display selected items count in the toolbar.\n */\n selectedItemsCount?: number;\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 selectedItemsCount: undefined,\n hasTabsAbove: false,\n });\n\n const emit = defineEmits<{\n (e: 'select'): void;\n }>();\n\n // Refs for width calculation\n const toolbarRef = useTemplateRef('toolbarEl');\n const paginationRef = useTemplateRef('paginationEl');\n const checkboxRef = useTemplateRef('checkboxEl');\n\n const {\n isWithinModule,\n variant: dataViewVariant,\n density,\n currentPage,\n hasToolbar,\n isPaginateNextDisabled,\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 const classes = useCssModule();\n\n const { actionsWidth } = useActionsWidth({\n toolbarEl: toolbarRef,\n paginationEl: paginationRef,\n checkboxEl: checkboxRef,\n isPaginationEnabled,\n isSelectable,\n isEmpty,\n });\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 const pageStats = usePaginationStats({ currentPage, pageSize, totalItems: totalDataCount });\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 ref=\"toolbarEl\"\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-3': density === 'compact',\n 'tw-px-3 lg:tw-px-6': 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 ref=\"checkboxEl\"\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 <template v-if=\"$slots['more-actions']\">\n <MoreActions\n more-button-align=\"together\"\n :width=\"actionsWidth || undefined\"\n actions-container-class=\"tw-flex tw-items-center tw-gap-x-2 lg:tw-mr-6 lg:tw-gap-x-6\"\n >\n <template #toggle=\"{ toggle }\">\n <Button\n icon-label\n class=\"tw-text-blue-500\"\n data-test=\"stash-data-view-sort-button|sort-menu-button\"\n @click=\"toggle\"\n >\n <IconLabel icon=\"ellipsis\" stacked> More </IconLabel>\n </Button>\n </template>\n <slot></slot>\n <template #more-actions>\n <slot name=\"more-actions\"></slot>\n </template>\n </MoreActions>\n </template>\n <template v-else>\n <div\n :class=\"classes.actions\"\n class=\"stash-data-view-toolbar__actions tw-flex tw-items-center tw-gap-x-2 lg:tw-gap-x-4\"\n >\n <slot></slot>\n </div>\n </template>\n </div>\n\n <!-- Pagination -->\n <div\n v-if=\"isPaginationEnabled\"\n ref=\"paginationEl\"\n class=\"stash-data-view-toolbar__pagination tw-flex tw-shrink-0 tw-items-center\"\n >\n <slot name=\"selected-stats\">\n <span v-if=\"props.someRowsSelected && props.selectedItemsCount !== undefined\" class=\"tw-mx-1.5\">\n {{ t('ll.listView.numberOfTotalSelected', { num: props.selectedItemsCount, total: totalDataCount }) }}\n </span>\n </slot>\n <slot name=\"page-stats\">\n <span v-if=\"!props.hidePageStats\" class=\"tw-mx-1.5 tw-hidden md:tw-block\">\n {{ t('ll.pageStats', pageStats) }}\n </span>\n </slot>\n <template v-if=\"pageCount > 1\">\n <Button\n icon\n :aria-label=\"t('ll.previous')\"\n class=\"tw-size-9 tw-p-1.5\"\n data-test=\"button|prev-page\"\n :disabled=\"isLoading || currentPage === 1\"\n @click=\"goPrevPage({ shouldEmit: true })\"\n >\n <Icon name=\"chevron-left\" size=\"dense\" />\n </Button>\n <Button\n icon\n :aria-label=\"t('ll.next')\"\n class=\"tw-size-9 tw-p-1.5\"\n data-test=\"button|next-page\"\n :disabled=\"isLoading || isPaginateNextDisabled || 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\n<style module>\n .actions :global(.stash-button) {\n min-width: auto;\n padding: 0 0.5rem;\n\n &:first-child {\n margin-left: -0.5rem;\n }\n }\n</style>\n"],"names":["useActionsWidth","options","toolbarEl","paginationEl","checkboxEl","isPaginationEnabled","isSelectable","isEmpty","actionsWidth","ref","toolbarResizeObserver","paginationResizeObserver","updateActionsWidth","toolbarWidth","paginationWidth","checkboxWidth","_a","computedStyle","paddingLeft","paddingRight","availableWidth","setupResizeObserver","nextTick","cleanupResizeObserver","onMounted","onBeforeUnmount","watch","newPaginationEl","props","__props","emit","__emit","toolbarRef","useTemplateRef","paginationRef","checkboxRef","isWithinModule","dataViewVariant","density","currentPage","hasToolbar","isPaginateNextDisabled","pageCount","pageSize","totalDataCount","goPrevPage","goNextPage","isLoading","inject","DATA_VIEW_INJECTION","checkboxKey","classes","useCssModule","computedRadius","computed","pageStats","usePaginationStats","onSelect","onBeforeMount"],"mappings":"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"}
1
+ {"version":3,"file":"DataViewToolbar.js","sources":["../src/components/DataViewToolbar/useActionsWidth.ts","../src/components/DataViewToolbar/DataViewToolbar.vue"],"sourcesContent":["import { ComputedRef, nextTick, onBeforeUnmount, onMounted, Ref, ref, ShallowRef, watch } from 'vue';\n\nexport interface UseActionsWidthOptions {\n toolbarEl: ShallowRef<HTMLElement | null>;\n paginationEl: ShallowRef<HTMLElement | null>;\n checkboxEl: ShallowRef<{ $el: HTMLElement } | null>;\n isPaginationEnabled: ComputedRef<boolean> | undefined;\n isSelectable: Ref<boolean> | undefined;\n isEmpty: ComputedRef<boolean> | undefined;\n}\n\nexport function useActionsWidth(options: UseActionsWidthOptions) {\n const { toolbarEl, paginationEl, checkboxEl, isPaginationEnabled, isSelectable, isEmpty } = options;\n\n const actionsWidth = ref<string | null>(null);\n let toolbarResizeObserver: ResizeObserver | null = null;\n let paginationResizeObserver: ResizeObserver | null = null;\n\n const updateActionsWidth = () => {\n if (!toolbarEl.value) return;\n\n const toolbarWidth = toolbarEl.value.getBoundingClientRect().width;\n let paginationWidth = 0;\n let checkboxWidth = 0;\n\n // Calculate pagination width if pagination is enabled\n if (isPaginationEnabled?.value && paginationEl.value) {\n paginationWidth = paginationEl.value.getBoundingClientRect().width;\n }\n\n // Calculate checkbox width if selectable and not empty\n if (isSelectable?.value && !isEmpty?.value && checkboxEl.value?.$el) {\n checkboxWidth = checkboxEl.value.$el.getBoundingClientRect().width;\n }\n\n // Get computed styles to calculate padding\n const computedStyle = window.getComputedStyle(toolbarEl.value);\n const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;\n const paddingRight = parseFloat(computedStyle.paddingRight) || 0;\n\n const availableWidth = Math.max(0, toolbarWidth - paginationWidth - checkboxWidth - paddingLeft - paddingRight);\n actionsWidth.value = `${availableWidth}px`;\n };\n\n const setupResizeObserver = () => {\n if (!toolbarEl.value) return;\n\n // Observe toolbar element\n toolbarResizeObserver = new ResizeObserver(() => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n toolbarResizeObserver.observe(toolbarEl.value);\n\n // Observe pagination element if it exists\n if (paginationEl.value) {\n paginationResizeObserver = new ResizeObserver(() => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n paginationResizeObserver.observe(paginationEl.value);\n }\n };\n\n const cleanupResizeObserver = () => {\n if (toolbarResizeObserver) {\n toolbarResizeObserver.disconnect();\n toolbarResizeObserver = null;\n }\n if (paginationResizeObserver) {\n paginationResizeObserver.disconnect();\n paginationResizeObserver = null;\n }\n };\n\n onMounted(() => {\n nextTick(() => {\n updateActionsWidth();\n setupResizeObserver();\n });\n });\n\n onBeforeUnmount(() => {\n cleanupResizeObserver();\n });\n\n // Watch for changes in conditions that affect element visibility\n watch([isPaginationEnabled, isSelectable, isEmpty], () => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n\n // Watch for pagination element changes to setup/cleanup observer\n watch(paginationEl, (newPaginationEl) => {\n // Cleanup old observer if it exists\n if (paginationResizeObserver) {\n paginationResizeObserver.disconnect();\n paginationResizeObserver = null;\n }\n\n // Setup new observer if pagination element exists\n if (newPaginationEl) {\n paginationResizeObserver = new ResizeObserver(() => {\n nextTick(() => {\n updateActionsWidth();\n });\n });\n paginationResizeObserver.observe(newPaginationEl);\n }\n });\n\n return {\n actionsWidth,\n updateActionsWidth,\n };\n}\n","<script setup lang=\"ts\">\n import { computed, inject, onBeforeMount, ref, useCssModule, useTemplateRef } from 'vue';\n\n import usePaginationStats from '../../composables/usePaginationStats/usePaginationStats';\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 IconLabel from '../IconLabel/IconLabel.vue';\n import MoreActions from '../MoreActions/MoreActions.vue';\n import { ToolbarRadiuses } from './DataViewToolbar.types';\n import { useActionsWidth } from './useActionsWidth';\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 * The number of selected items. Used to display selected items count in the toolbar.\n */\n selectedItemsCount?: number;\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 selectedItemsCount: undefined,\n hasTabsAbove: false,\n });\n\n const emit = defineEmits<{\n (e: 'select'): void;\n }>();\n\n // Refs for width calculation\n const toolbarRef = useTemplateRef('toolbarEl');\n const paginationRef = useTemplateRef('paginationEl');\n const checkboxRef = useTemplateRef('checkboxEl');\n\n const {\n isWithinModule,\n variant: dataViewVariant,\n density,\n currentPage,\n hasToolbar,\n isPaginateNextDisabled,\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 const classes = useCssModule();\n\n const { actionsWidth } = useActionsWidth({\n toolbarEl: toolbarRef,\n paginationEl: paginationRef,\n checkboxEl: checkboxRef,\n isPaginationEnabled,\n isSelectable,\n isEmpty,\n });\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 const pageStats = usePaginationStats({ currentPage, pageSize, totalItems: totalDataCount });\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 ref=\"toolbarEl\"\n class=\"stash-data-view-toolbar flex min-h-15 items-center justify-between bg-white py-1.5 shadow\"\n :class=\"{\n 'border-t border-ice-200': isWithinModule,\n 'rounded-tr': computedRadius === 'rounded-top-right',\n rounded: computedRadius === 'rounded',\n 'rounded-t': computedRadius === 'rounded-top',\n 'mb-3': dataViewVariant !== 'table' && !isWithinModule,\n 'px-3': density === 'compact',\n 'px-3 lg:px-6': density === 'comfortable',\n }\"\n data-test=\"stash-data-view-toolbar\"\n >\n <div class=\"flex place-items-center\">\n <Checkbox\n v-if=\"isSelectable && !isEmpty\"\n ref=\"checkboxEl\"\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 <template v-if=\"$slots['more-actions']\">\n <MoreActions\n more-button-align=\"together\"\n :width=\"actionsWidth || undefined\"\n actions-container-class=\"flex items-center gap-x-2 lg:mr-6 lg:gap-x-6\"\n >\n <template #toggle=\"{ toggle }\">\n <Button\n icon-label\n class=\"text-blue-500\"\n data-test=\"stash-data-view-sort-button|sort-menu-button\"\n @click=\"toggle\"\n >\n <IconLabel icon=\"ellipsis\" stacked> More </IconLabel>\n </Button>\n </template>\n <slot></slot>\n <template #more-actions>\n <slot name=\"more-actions\"></slot>\n </template>\n </MoreActions>\n </template>\n <template v-else>\n <div :class=\"classes.actions\" class=\"stash-data-view-toolbar__actions flex items-center gap-x-2 lg:gap-x-4\">\n <slot></slot>\n </div>\n </template>\n </div>\n\n <!-- Pagination -->\n <div\n v-if=\"isPaginationEnabled\"\n ref=\"paginationEl\"\n class=\"stash-data-view-toolbar__pagination flex shrink-0 items-center\"\n >\n <slot name=\"selected-stats\">\n <span v-if=\"props.someRowsSelected && props.selectedItemsCount !== undefined\" class=\"mx-1.5\">\n {{ t('ll.listView.numberOfTotalSelected', { num: props.selectedItemsCount, total: totalDataCount }) }}\n </span>\n </slot>\n <slot name=\"page-stats\">\n <span v-if=\"!props.hidePageStats\" class=\"mx-1.5 hidden md:block\">\n {{ t('ll.pageStats', pageStats) }}\n </span>\n </slot>\n <template v-if=\"pageCount > 1\">\n <Button\n icon\n :aria-label=\"t('ll.previous')\"\n class=\"size-9 p-1.5\"\n data-test=\"button|prev-page\"\n :disabled=\"isLoading || currentPage === 1\"\n @click=\"goPrevPage({ shouldEmit: true })\"\n >\n <Icon name=\"chevron-left\" size=\"dense\" />\n </Button>\n <Button\n icon\n :aria-label=\"t('ll.next')\"\n class=\"size-9 p-1.5\"\n data-test=\"button|next-page\"\n :disabled=\"isLoading || isPaginateNextDisabled || 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\n<style module>\n @layer utilities {\n .actions :global(.stash-button) {\n min-width: auto;\n padding: 0 0.5rem;\n\n &:first-child {\n margin-left: -0.5rem;\n }\n }\n }\n</style>\n"],"names":["useActionsWidth","options","toolbarEl","paginationEl","checkboxEl","isPaginationEnabled","isSelectable","isEmpty","actionsWidth","ref","toolbarResizeObserver","paginationResizeObserver","updateActionsWidth","toolbarWidth","paginationWidth","checkboxWidth","_a","computedStyle","paddingLeft","paddingRight","availableWidth","setupResizeObserver","nextTick","cleanupResizeObserver","onMounted","onBeforeUnmount","watch","newPaginationEl","props","__props","emit","__emit","toolbarRef","useTemplateRef","paginationRef","checkboxRef","isWithinModule","dataViewVariant","density","currentPage","hasToolbar","isPaginateNextDisabled","pageCount","pageSize","totalDataCount","goPrevPage","goNextPage","isLoading","inject","DATA_VIEW_INJECTION","checkboxKey","classes","useCssModule","computedRadius","computed","pageStats","usePaginationStats","onSelect","onBeforeMount"],"mappings":"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"}
@@ -8289,7 +8289,7 @@ function eM(e, t, r, n, a, s) {
8289
8289
  z(o, yr(Cn(e.$attrs)), null, 16)
8290
8290
  ], 64)) : (Y(), be(i, yr(At({ key: 1 }, e.$attrs)), null, 16));
8291
8291
  }
8292
- const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class: "tw-pt-1.5 tw-text-right" }, aM = /* @__PURE__ */ me({
8292
+ const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class: "pt-1.5 text-right" }, aM = /* @__PURE__ */ me({
8293
8293
  __name: "DatePicker",
8294
8294
  props: {
8295
8295
  availableDates: { default: void 0 },
@@ -8387,7 +8387,7 @@ const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class:
8387
8387
  (P = $.target) == null || P.blur();
8388
8388
  }
8389
8389
  return (p, $) => (Y(), L("div", {
8390
- class: te(["tw-relative", p.$style["vc-overrides"]])
8390
+ class: te(["relative", p.$style["vc-overrides"]])
8391
8391
  }, [
8392
8392
  z(w(tM), {
8393
8393
  ref: "calendar",
@@ -8424,7 +8424,7 @@ const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class:
8424
8424
  return [
8425
8425
  V("span", {
8426
8426
  id: w(c),
8427
- class: "tw-sr-only"
8427
+ class: "sr-only"
8428
8428
  }, pe(w(Oa)("ll.datePicker.dateFormat")) + ": " + pe((A = p.format) == null ? void 0 : A.toUpperCase()), 9, rM),
8429
8429
  z(il, At({
8430
8430
  id: r.id,
@@ -8456,7 +8456,7 @@ const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class:
8456
8456
  _: 1
8457
8457
  }, 8, ["class"])) : (Y(), be(Rr, {
8458
8458
  key: 1,
8459
- class: te([p.$style["calendar-icon"], { "tw-cursor-pointer": !p.disabled }]),
8459
+ class: te([p.$style["calendar-icon"], { "cursor-pointer": !p.disabled }]),
8460
8460
  name: l.value ? "recent" : "calendar",
8461
8461
  onClick: (R) => !p.disabled && P()
8462
8462
  }, null, 8, ["class", "name", "onClick"]))
@@ -8477,7 +8477,7 @@ const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class:
8477
8477
  V("div", nM, [
8478
8478
  z(Ca, {
8479
8479
  inline: "",
8480
- class: te(["tw-mx-3 tw-my-1.5", [p.$style["button-today"]]]),
8480
+ class: te(["mx-3 my-1.5", [p.$style["button-today"]]]),
8481
8481
  onClick: M
8482
8482
  }, {
8483
8483
  default: J(() => [
@@ -8491,12 +8491,12 @@ const tM = /* @__PURE__ */ _t(J_, [["render", eM]]), rM = ["id"], nM = { class:
8491
8491
  }, 8, ["attributes", "available-dates", "disabled-dates", "max-date", "min-date", "max-page", "min-page", "mode", "model-value", "popover", "hide-time-header"])
8492
8492
  ], 2));
8493
8493
  }
8494
- }), sM = "_input_1x29w_144", oM = {
8495
- "vc-overrides": "_vc-overrides_1x29w_2",
8496
- "close-button": "_close-button_1x29w_117",
8497
- "button-today": "_button-today_1x29w_123",
8494
+ }), sM = "_input_mj46v_147", oM = {
8495
+ "vc-overrides": "_vc-overrides_mj46v_5",
8496
+ "close-button": "_close-button_mj46v_120",
8497
+ "button-today": "_button-today_mj46v_126",
8498
8498
  input: sM,
8499
- "calendar-icon": "_calendar-icon_1x29w_152"
8499
+ "calendar-icon": "_calendar-icon_mj46v_155"
8500
8500
  }, iM = {
8501
8501
  $style: oM
8502
8502
  }, MM = /* @__PURE__ */ dl(aM, [["__cssModules", iM]]);