@leaflink/stash 51.9.3 → 51.11.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 (375) hide show
  1. package/assets/icons/cloud-share.svg +1 -0
  2. package/assets/spritesheet.svg +1 -1
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/Accordion.vue.d.ts +7 -38
  5. package/dist/ActionsDropdown.js +2 -2
  6. package/dist/ActionsDropdown.js.map +1 -1
  7. package/dist/ActionsDropdown.vue.d.ts +0 -74
  8. package/dist/AddressSelect.js +56 -60
  9. package/dist/AddressSelect.js.map +1 -1
  10. package/dist/AddressSelect.vue.d.ts +8 -65
  11. package/dist/Alert.js.map +1 -1
  12. package/dist/Alert.vue.d.ts +4 -41
  13. package/dist/AppNavigationItem.js.map +1 -1
  14. package/dist/AppNavigationItem.vue.d.ts +5 -32
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppSidebar.vue.d.ts +8 -35
  17. package/dist/AppTopbar.js +1 -1
  18. package/dist/AppTopbar.js.map +1 -1
  19. package/dist/AppTopbar.vue.d.ts +4 -33
  20. package/dist/Avatar.js.map +1 -1
  21. package/dist/Avatar.vue.d.ts +5 -44
  22. package/dist/Backdrop.js.map +1 -1
  23. package/dist/Backdrop.vue.d.ts +1 -1
  24. package/dist/Badge.js.map +1 -1
  25. package/dist/Badge.vue.d.ts +6 -55
  26. package/dist/Box.vue.d.ts +3 -36
  27. package/dist/Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map +1 -1
  28. package/dist/Button.js.map +1 -1
  29. package/dist/Button.vue.d.ts +5 -50
  30. package/dist/ButtonGroup.js +33 -37
  31. package/dist/ButtonGroup.js.map +1 -1
  32. package/dist/ButtonGroup.vue.d.ts +6 -39
  33. package/dist/Card.js.map +1 -1
  34. package/dist/Card.vue.d.ts +5 -32
  35. package/dist/CardContent.js.map +1 -1
  36. package/dist/CardContent.vue.d.ts +1 -1
  37. package/dist/CardFooter.js.map +1 -1
  38. package/dist/CardFooter.vue.d.ts +1 -1
  39. package/dist/CardHeader.js.map +1 -1
  40. package/dist/CardHeader.vue.d.ts +2 -15
  41. package/dist/CardMedia.js.map +1 -1
  42. package/dist/CardMedia.vue.d.ts +2 -15
  43. package/dist/Carousel.js +66 -72
  44. package/dist/Carousel.js.map +1 -1
  45. package/dist/Carousel.vue.d.ts +10 -10
  46. package/dist/Checkbox.js.map +1 -1
  47. package/dist/Checkbox.vue.d.ts +8 -53
  48. package/dist/ChevronToggle.vue.d.ts +7 -34
  49. package/dist/ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js.map +1 -1
  50. package/dist/Chip.js.map +1 -1
  51. package/dist/Chip.vue.d.ts +10 -52
  52. package/dist/ConfirmationCodeInput.js +40 -44
  53. package/dist/ConfirmationCodeInput.js.map +1 -1
  54. package/dist/ConfirmationCodeInput.vue.d.ts +8 -43
  55. package/dist/ContextSwitcher.js.map +1 -1
  56. package/dist/ContextSwitcher.vue.d.ts +6 -41
  57. package/dist/Copy.js.map +1 -1
  58. package/dist/Copy.vue.d.ts +3 -34
  59. package/dist/CurrencyInput.js +20 -21
  60. package/dist/CurrencyInput.js.map +1 -1
  61. package/dist/CurrencyInput.vue.d.ts +125 -46
  62. package/dist/CustomRender.js.map +1 -1
  63. package/dist/DataView.js +94 -96
  64. package/dist/DataView.js.map +1 -1
  65. package/dist/DataView.keys-aSOnA4AD.js.map +1 -1
  66. package/dist/DataView.vue.d.ts +15 -57
  67. package/dist/DataViewFilters.js +127 -139
  68. package/dist/DataViewFilters.js.map +1 -1
  69. package/dist/DataViewFilters.keys-BLu07FiP.js.map +1 -1
  70. package/dist/DataViewFilters.vue.d.ts +9 -54
  71. package/dist/DataViewSortButton.js +2 -2
  72. package/dist/DataViewSortButton.js.map +1 -1
  73. package/dist/DataViewSortButton.vue.d.ts +3 -30
  74. package/dist/DataViewToolbar.js +146 -71
  75. package/dist/DataViewToolbar.js.map +1 -1
  76. package/dist/DataViewToolbar.vue.d.ts +106 -40
  77. package/dist/DatePicker.js +4524 -4636
  78. package/dist/DatePicker.js.map +1 -1
  79. package/dist/DatePicker.vue.d.ts +32 -81
  80. package/dist/DescriptionList.js.map +1 -1
  81. package/dist/DescriptionList.vue.d.ts +3 -32
  82. package/dist/DescriptionListDetail.js.map +1 -1
  83. package/dist/DescriptionListDetail.vue.d.ts +1 -1
  84. package/dist/DescriptionListGroup.js.map +1 -1
  85. package/dist/DescriptionListGroup.vue.d.ts +1 -1
  86. package/dist/DescriptionListTerm.js.map +1 -1
  87. package/dist/DescriptionListTerm.vue.d.ts +1 -1
  88. package/dist/Dialog.js.map +1 -1
  89. package/dist/Dialog.vue.d.ts +10 -53
  90. package/dist/Divider.js.map +1 -1
  91. package/dist/Dropdown.js +89 -95
  92. package/dist/Dropdown.js.map +1 -1
  93. package/dist/Dropdown.vue.d.ts +12 -48
  94. package/dist/EmptyState.js +1 -1
  95. package/dist/EmptyState.js.map +1 -1
  96. package/dist/EmptyState.vue.d.ts +5 -62
  97. package/dist/Expand.vue.d.ts +10 -40
  98. package/dist/Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js.map +1 -1
  99. package/dist/Field.vue.d.ts +4 -53
  100. package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +1 -1
  101. package/dist/FileUpload.js +72 -74
  102. package/dist/FileUpload.js.map +1 -1
  103. package/dist/FileUpload.vue.d.ts +10 -44
  104. package/dist/FilterChip.js.map +1 -1
  105. package/dist/FilterChip.vue.d.ts +6 -41
  106. package/dist/FilterDrawerItem.js +21 -21
  107. package/dist/FilterDrawerItem.js.map +1 -1
  108. package/dist/FilterDrawerItem.vue.d.ts +6 -23
  109. package/dist/FilterDropdown.js +63 -69
  110. package/dist/FilterDropdown.js.map +1 -1
  111. package/dist/FilterDropdown.vue.d.ts +122 -35
  112. package/dist/FilterSelect.js.map +1 -1
  113. package/dist/FilterSelect.vue.d.ts +4 -31
  114. package/dist/Filters.js +157 -164
  115. package/dist/Filters.js.map +1 -1
  116. package/dist/Filters.vue.d.ts +0 -2190
  117. package/dist/HttpError.js +7 -7
  118. package/dist/HttpError.js.map +1 -1
  119. package/dist/HttpError.vue.d.ts +4 -41
  120. package/dist/Icon.js +16 -15
  121. package/dist/Icon.js.map +1 -1
  122. package/dist/Icon.vue.d.ts +4 -37
  123. package/dist/IconLabel.js.map +1 -1
  124. package/dist/IconLabel.vue.d.ts +6 -41
  125. package/dist/Illustration.js +2 -2
  126. package/dist/Illustration.vue.d.ts +3 -42
  127. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js} +11 -11
  128. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js.map} +1 -1
  129. package/dist/Image.js +2 -2
  130. package/dist/Image.vue.d.ts +5 -40
  131. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js} +37 -41
  132. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map → Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js.map} +1 -1
  133. package/dist/InlineEdit.js.map +1 -1
  134. package/dist/InlineEdit.vue.d.ts +126 -47
  135. package/dist/Input.js.map +1 -1
  136. package/dist/Input.vue.d.ts +12 -45
  137. package/dist/InputOptions.js +66 -69
  138. package/dist/InputOptions.js.map +1 -1
  139. package/dist/InputOptions.vue.d.ts +10 -55
  140. package/dist/IntegrationIcon.js +7 -7
  141. package/dist/IntegrationIcon.js.map +1 -1
  142. package/dist/IntegrationIcon.vue.d.ts +3 -36
  143. package/dist/Label.vue.d.ts +3 -42
  144. package/dist/Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map +1 -1
  145. package/dist/LicenseChip.js.map +1 -1
  146. package/dist/LicenseChip.vue.d.ts +3 -30
  147. package/dist/ListItem.js.map +1 -1
  148. package/dist/ListItem.vue.d.ts +0 -294
  149. package/dist/ListItemCell.js.map +1 -1
  150. package/dist/ListItemCell.vue.d.ts +0 -21
  151. package/dist/ListView.js +4 -7
  152. package/dist/ListView.js.map +1 -1
  153. package/dist/ListView.types.d.ts +0 -29
  154. package/dist/ListView.vue.d.ts +0 -5496
  155. package/dist/Loading.js +2 -2
  156. package/dist/Loading.js.map +1 -1
  157. package/dist/Loading.vue.d.ts +1 -1
  158. package/dist/Logo.js +1 -1
  159. package/dist/Logo.vue.d.ts +6 -41
  160. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js} +17 -17
  161. package/dist/Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js.map +1 -0
  162. package/dist/Menu.js.map +1 -1
  163. package/dist/Menu.vue.d.ts +1 -1
  164. package/dist/MenuItem.js.map +1 -1
  165. package/dist/MenuItem.vue.d.ts +1 -1
  166. package/dist/MenusPlugin-B4jpNe7x.js +12 -0
  167. package/dist/{MenusPlugin-Bk6UW6o9.js.map → MenusPlugin-B4jpNe7x.js.map} +1 -1
  168. package/dist/Metric.js.map +1 -1
  169. package/dist/Metric.vue.d.ts +3 -34
  170. package/dist/Modal.js +62 -64
  171. package/dist/Modal.js.map +1 -1
  172. package/dist/Modal.vue.d.ts +13 -60
  173. package/dist/Modals.js +17 -18
  174. package/dist/Modals.js.map +1 -1
  175. package/dist/ModalsPlugin.js +11 -11
  176. package/dist/ModalsPlugin.js.map +1 -1
  177. package/dist/Module.js.map +1 -1
  178. package/dist/Module.keys-CEsrW2f0.js.map +1 -1
  179. package/dist/Module.types-B1FfGGac.js.map +1 -1
  180. package/dist/Module.vue.d.ts +2 -29
  181. package/dist/ModuleContent.js.map +1 -1
  182. package/dist/ModuleContent.vue.d.ts +3 -3
  183. package/dist/ModuleFooter.js.map +1 -1
  184. package/dist/ModuleFooter.vue.d.ts +1 -1
  185. package/dist/ModuleHeader.js.map +1 -1
  186. package/dist/ModuleHeader.vue.d.ts +5 -39
  187. package/dist/MoreActions.js +489 -0
  188. package/dist/MoreActions.js.map +1 -0
  189. package/dist/MoreActions.vue.d.ts +203 -0
  190. package/dist/ObfuscateText.js.map +1 -1
  191. package/dist/ObfuscateText.vue.d.ts +3 -40
  192. package/dist/PageContent.js.map +1 -1
  193. package/dist/PageContent.vue.d.ts +3 -30
  194. package/dist/PageHeader.js.map +1 -1
  195. package/dist/PageHeader.vue.d.ts +6 -35
  196. package/dist/PageNavigation.js +50 -50
  197. package/dist/PageNavigation.js.map +1 -1
  198. package/dist/PageNavigation.vue.d.ts +7 -36
  199. package/dist/Paginate.js.map +1 -1
  200. package/dist/Paginate.vue.d.ts +5 -40
  201. package/dist/PlaidLink.js.map +1 -1
  202. package/dist/PlaidLink.vue.d.ts +12 -49
  203. package/dist/QuickAction.js.map +1 -1
  204. package/dist/QuickAction.vue.d.ts +3 -16
  205. package/dist/Radio.js.map +1 -1
  206. package/dist/Radio.vue.d.ts +0 -93
  207. package/dist/RadioGroup.js +94 -101
  208. package/dist/RadioGroup.js.map +1 -1
  209. package/dist/RadioGroup.vue.d.ts +116 -42
  210. package/dist/RadioNew.js +96 -99
  211. package/dist/RadioNew.js.map +1 -1
  212. package/dist/RadioNew.vue.d.ts +7 -48
  213. package/dist/RangeInput.js.map +1 -1
  214. package/dist/RangeInput.vue.d.ts +1 -1
  215. package/dist/SearchBar.js +38 -39
  216. package/dist/SearchBar.js.map +1 -1
  217. package/dist/SearchBar.vue.d.ts +127 -44
  218. package/dist/SectionHeader.js.map +1 -1
  219. package/dist/SectionHeader.vue.d.ts +6 -37
  220. package/dist/Select.js +171 -183
  221. package/dist/Select.js.map +1 -1
  222. package/dist/Select.vue.d.ts +23 -102
  223. package/dist/SelectStatus.js +38 -38
  224. package/dist/SelectStatus.js.map +1 -1
  225. package/dist/SelectStatus.vue.d.ts +227 -47
  226. package/dist/Skeleton.js.map +1 -1
  227. package/dist/Skeleton.vue.d.ts +3 -34
  228. package/dist/Step.js +44 -44
  229. package/dist/Step.js.map +1 -1
  230. package/dist/Step.vue.d.ts +4 -43
  231. package/dist/Stepper.js.map +1 -1
  232. package/dist/Stepper.vue.d.ts +9 -44
  233. package/dist/Switch.js.map +1 -1
  234. package/dist/Switch.vue.d.ts +8 -47
  235. package/dist/Tab.js +9 -9
  236. package/dist/Tab.js.map +1 -1
  237. package/dist/Tab.vue.d.ts +2 -15
  238. package/dist/TabPanel.js.map +1 -1
  239. package/dist/TabPanel.vue.d.ts +3 -30
  240. package/dist/Table.js +53 -59
  241. package/dist/Table.js.map +1 -1
  242. package/dist/Table.keys-LHQf6FEH.js.map +1 -1
  243. package/dist/Table.vue.d.ts +3 -50
  244. package/dist/TableCell.js +1 -1
  245. package/dist/TableCell.js.map +1 -1
  246. package/dist/TableCell.vue.d.ts +3 -32
  247. package/dist/TableHeaderCell.js +1 -1
  248. package/dist/TableHeaderCell.js.map +1 -1
  249. package/dist/TableHeaderCell.vue.d.ts +3 -30
  250. package/dist/TableHeaderRow.js +47 -45
  251. package/dist/TableHeaderRow.js.map +1 -1
  252. package/dist/TableHeaderRow.vue.d.ts +5 -34
  253. package/dist/TableRow.js +60 -61
  254. package/dist/TableRow.js.map +1 -1
  255. package/dist/TableRow.vue.d.ts +7 -48
  256. package/dist/Tabs.js +2 -2
  257. package/dist/Tabs.vue.d.ts +4 -31
  258. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js +78 -0
  259. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js.map +1 -0
  260. package/dist/TextEditor.js +2414 -2420
  261. package/dist/TextEditor.js.map +1 -1
  262. package/dist/TextEditor.vue.d.ts +9 -40
  263. package/dist/Textarea.js +69 -69
  264. package/dist/Textarea.js.map +1 -1
  265. package/dist/Textarea.vue.d.ts +9 -44
  266. package/dist/Thumbnail.js +1 -1
  267. package/dist/Thumbnail.js.map +1 -1
  268. package/dist/Thumbnail.vue.d.ts +4 -4
  269. package/dist/ThumbnailEmpty.js.map +1 -1
  270. package/dist/ThumbnailEmpty.vue.d.ts +1 -1
  271. package/dist/ThumbnailGroup.js.map +1 -1
  272. package/dist/ThumbnailGroup.keys-EJ4qFNhx.js.map +1 -1
  273. package/dist/ThumbnailGroup.vue.d.ts +26 -22
  274. package/dist/Timeline.js.map +1 -1
  275. package/dist/Timeline.vue.d.ts +3 -32
  276. package/dist/TimelineItem.js.map +1 -1
  277. package/dist/TimelineItem.vue.d.ts +1 -1
  278. package/dist/Toast.js.map +1 -1
  279. package/dist/Toast.vue.d.ts +3 -30
  280. package/dist/Toasts.js.map +1 -1
  281. package/dist/ToastsPlugin.js +11 -11
  282. package/dist/ToastsPlugin.js.map +1 -1
  283. package/dist/Tooltip.js +29 -30
  284. package/dist/Tooltip.js.map +1 -1
  285. package/dist/Tooltip.vue.d.ts +11 -43
  286. package/dist/colors-DDDVvqfQ.js.map +1 -1
  287. package/dist/components.css +1 -1
  288. package/dist/constants.js.map +1 -1
  289. package/dist/directives/autofocus.js.map +1 -1
  290. package/dist/directives/clickoutside.js.map +1 -1
  291. package/dist/directives/observe.js.map +1 -1
  292. package/dist/directives/sticky.js.map +1 -1
  293. package/dist/directives/tooltip.js +3 -3
  294. package/dist/directives/tooltip.js.map +1 -1
  295. package/dist/directives/viewable.js +39 -44
  296. package/dist/directives/viewable.js.map +1 -1
  297. package/dist/{floating-ui.vue-pzUuloyX.js → floating-ui.vue-CL01Y9ER.js} +2 -2
  298. package/dist/{floating-ui.vue-pzUuloyX.js.map → floating-ui.vue-CL01Y9ER.js.map} +1 -1
  299. package/dist/formatDateTime-DG7kBc2T.js +1414 -0
  300. package/dist/{formatDateTime-Dz8bXV0R.js.map → formatDateTime-DG7kBc2T.js.map} +1 -1
  301. package/dist/index-D6bxWkZ1.js.map +1 -1
  302. package/dist/index-XZqpB2_R.js +294 -0
  303. package/dist/{index-ConQ3o31.js.map → index-XZqpB2_R.js.map} +1 -1
  304. package/dist/index.js +99 -104
  305. package/dist/index.js.map +1 -1
  306. package/dist/isDefined-DzVx0B6k.js.map +1 -1
  307. package/dist/keys-BEdEsanp.js.map +1 -1
  308. package/dist/keys-C8Zfr_By.js.map +1 -1
  309. package/dist/locale.js.map +1 -1
  310. package/dist/misc-CHQs-G03.js.map +1 -1
  311. package/dist/obfuscateText.d.ts +1 -1
  312. package/dist/parseISO-wlfIB_QJ.js.map +1 -1
  313. package/dist/searchFuzzy-DBDE6jkd.js +408 -0
  314. package/dist/{searchFuzzy-DRasJ33G.js.map → searchFuzzy-DBDE6jkd.js.map} +1 -1
  315. package/dist/statusLevels-D8EgtE_L.js.map +1 -1
  316. package/dist/storage.js.map +1 -1
  317. package/dist/tailwind-base.d.ts +18 -0
  318. package/dist/tailwind-base.js +19 -9
  319. package/dist/tailwind-base.js.map +1 -1
  320. package/dist/toTimeZone-Coq1oPTt.js.map +1 -1
  321. package/dist/useConfirmBeforeClosing.js.map +1 -1
  322. package/dist/useDialog.d.ts +2 -2
  323. package/dist/useDialog.js +21 -25
  324. package/dist/useDialog.js.map +1 -1
  325. package/dist/useGoogleMaps.js +108 -110
  326. package/dist/useGoogleMaps.js.map +1 -1
  327. package/dist/useMediaQuery.d.ts +0 -6
  328. package/dist/useMediaQuery.js +11 -15
  329. package/dist/useMediaQuery.js.map +1 -1
  330. package/dist/useModals.d.ts +1 -1
  331. package/dist/useModals.js.map +1 -1
  332. package/dist/usePaginationStats-d_q39naC.js.map +1 -1
  333. package/dist/usePlaidLink.js +20 -27
  334. package/dist/usePlaidLink.js.map +1 -1
  335. package/dist/useScriptTag.js.map +1 -1
  336. package/dist/useSearch.js +13 -13
  337. package/dist/useSearch.js.map +1 -1
  338. package/dist/useSelection.js +56 -56
  339. package/dist/useSelection.js.map +1 -1
  340. package/dist/useSortable.js +54 -63
  341. package/dist/useSortable.js.map +1 -1
  342. package/dist/useStepper.d.ts +2 -2
  343. package/dist/useStepper.js +36 -40
  344. package/dist/useStepper.js.map +1 -1
  345. package/dist/useToasts.js +23 -23
  346. package/dist/useToasts.js.map +1 -1
  347. package/dist/useValidation.js +96 -100
  348. package/dist/useValidation.js.map +1 -1
  349. package/dist/utils/calculateElementOverflow.js +4 -4
  350. package/dist/utils/calculateElementOverflow.js.map +1 -1
  351. package/dist/utils/colorScheme.js +2 -2
  352. package/dist/utils/colorScheme.js.map +1 -1
  353. package/dist/utils/createQueryString.js.map +1 -1
  354. package/dist/utils/createValidDate.js.map +1 -1
  355. package/dist/utils/formatDateTime.js +1 -1
  356. package/dist/utils/getContrastingTextColor.js.map +1 -1
  357. package/dist/utils/helpers.js.map +1 -1
  358. package/dist/utils/i18n.js.map +1 -1
  359. package/dist/utils/normalizeDate.js.map +1 -1
  360. package/dist/utils/obfuscateText.js +6 -6
  361. package/dist/utils/obfuscateText.js.map +1 -1
  362. package/dist/utils/searchFuzzy.js +1 -1
  363. package/dist/utils/storage.js +23 -23
  364. package/dist/utils/storage.js.map +1 -1
  365. package/package.json +12 -13
  366. package/tailwind-base.ts +12 -1
  367. package/types/vite.d.ts +7 -0
  368. package/types/vitest.d.ts +7 -0
  369. package/dist/Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map +0 -1
  370. package/dist/MenusPlugin-Bk6UW6o9.js +0 -12
  371. package/dist/Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js +0 -159
  372. package/dist/Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js.map +0 -1
  373. package/dist/formatDateTime-Dz8bXV0R.js +0 -1418
  374. package/dist/index-ConQ3o31.js +0 -128
  375. package/dist/searchFuzzy-DRasJ33G.js +0 -409
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderRow.js","sources":["../src/components/TableHeaderRow/TableHeaderRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { inject, ref, watchEffect } from 'vue';\n\n import { t } from '../../locale';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.keys';\n import { TABLE_INJECTION } from '../Table/Table.vue';\n import TableHeaderCell from '../TableHeaderCell/TableHeaderCell.vue';\n\n export interface TableHeaderRowProps {\n allRowsSelected?: boolean;\n someRowsSelected?: boolean;\n }\n\n const props = withDefaults(defineProps<TableHeaderRowProps>(), {\n allRowsSelected: false,\n someRowsSelected: false,\n });\n\n const emit = defineEmits<{\n (e: 'select'): void;\n }>();\n\n const tableInjection = inject(TABLE_INJECTION.key);\n\n if (!tableInjection) {\n throw new Error('TableHeaderRow must be used within a Table component');\n }\n\n const { hasCustomExpandToggle, isExpandable, isSelectable } = tableInjection;\n\n const { hasToolbar } = inject(DATA_VIEW_INJECTION.key, DATA_VIEW_INJECTION.defaults);\n\n const checkboxKey = ref(0);\n const headerRow = ref();\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 watchEffect(() => {\n // Whenever a Table is selectable _and_ is within a DataView with a toolbar, we pick the first header cell and add a colspan=2.\n // After a Table is mounted, if for whatever reason the conditions are changed for useSelection, the header needs to watch it.\n // This being a watch guarantees that colspan is properly applied whenever conditions are met and revert back when they aren't anymore.\n if (headerRow.value) {\n if (hasToolbar?.value && isSelectable.value) {\n headerRow.value.getElementsByTagName('th')[0].setAttribute('colspan', 2);\n } else {\n headerRow.value.getElementsByTagName('th')[0].setAttribute('colspan', 1);\n }\n }\n });\n</script>\n\n<template>\n <tr ref=\"headerRow\" class=\"stash-table-header-row\" data-test=\"stash-table-header-row\">\n <TableHeaderCell\n v-if=\"!hasToolbar && isSelectable\"\n class=\"stash-table-header-row__selection-cell tw-min-w-[48px]\"\n :class=\"$style['row-control-cell']\"\n >\n <Checkbox\n :key=\"checkboxKey\"\n :class=\"$style['row-selection-checkbox']\"\n :checked=\"props.allRowsSelected\"\n :indeterminate=\"props.someRowsSelected && !props.allRowsSelected\"\n :title=\"t('ll.selectAll')\"\n @update:indeterminate=\"onSelect\"\n @update:checked=\"onSelect\"\n />\n </TableHeaderCell>\n <TableHeaderCell\n v-if=\"isExpandable && !hasCustomExpandToggle\"\n :class=\"$style['row-control-cell']\"\n data-test=\"table-row-header-expansion-cell\"\n />\n <!-- @slot default -->\n <slot></slot>\n </tr>\n</template>\n\n<style module>\n .row-selection-checkbox label {\n padding: 0;\n min-height: theme('spacing.6');\n vertical-align: middle;\n }\n\n .row-control-cell {\n border-right: 0;\n }\n</style>\n"],"names":["props","__props","emit","__emit","tableInjection","inject","TABLE_INJECTION","hasCustomExpandToggle","isExpandable","isSelectable","hasToolbar","DATA_VIEW_INJECTION","checkboxKey","ref","headerRow","onSelect","watchEffect"],"mappings":";;;;;;;;;;;;;;;;;;AAcE,UAAMA,IAAQC,GAKRC,IAAOC,GAIPC,IAAiBC,EAAOC,EAAgB,GAAG;AAEjD,QAAI,CAACF;AACG,YAAA,IAAI,MAAM,sDAAsD;AAGxE,UAAM,EAAE,uBAAAG,GAAuB,cAAAC,GAAc,cAAAC,EAAiB,IAAAL,GAExD,EAAE,YAAAM,EAAW,IAAIL,EAAOM,EAAoB,KAAKA,EAAoB,QAAQ,GAE7EC,IAAcC,EAAI,CAAC,GACnBC,IAAYD,EAAI;AAEtB,aAASE,IAAW;AAClB,MAAAb,EAAK,QAAQ,GAODU,EAAA;AAAA,IAAA;AAGd,WAAAI,EAAY,MAAM;AAIhB,MAAIF,EAAU,UACRJ,KAAA,QAAAA,EAAY,SAASD,EAAa,QAC1BK,EAAA,MAAM,qBAAqB,IAAI,EAAE,CAAC,EAAE,aAAa,WAAW,CAAC,IAE7DA,EAAA,MAAM,qBAAqB,IAAI,EAAE,CAAC,EAAE,aAAa,WAAW,CAAC;AAAA,IAE3E,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableHeaderRow.js","sources":["../src/components/TableHeaderRow/TableHeaderRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { inject, ref } from 'vue';\n\n import { t } from '../../locale';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.keys';\n import { TABLE_INJECTION } from '../Table/Table.vue';\n import TableHeaderCell from '../TableHeaderCell/TableHeaderCell.vue';\n\n export interface TableHeaderRowProps {\n allRowsSelected?: boolean;\n someRowsSelected?: boolean;\n }\n\n const props = withDefaults(defineProps<TableHeaderRowProps>(), {\n allRowsSelected: false,\n someRowsSelected: false,\n });\n\n const emit = defineEmits<{\n (e: 'select'): void;\n }>();\n\n const tableInjection = inject(TABLE_INJECTION.key);\n\n if (!tableInjection) {\n throw new Error('TableHeaderRow must be used within a Table component');\n }\n\n const { hasCustomExpandToggle, isExpandable, isSelectable } = tableInjection;\n\n const { hasToolbar } = inject(DATA_VIEW_INJECTION.key, DATA_VIEW_INJECTION.defaults);\n\n const checkboxKey = ref(0);\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</script>\n\n<template>\n <tr class=\"stash-table-header-row\" data-test=\"stash-table-header-row\">\n <!-- This is just an empty cell to ensure proper alignment. \"Select all\" control should be in the toolbar. -->\n <TableHeaderCell\n v-if=\"hasToolbar && isSelectable\"\n class=\"stash-table-header-row__selection-cell-empty\"\n :class=\"$style['row-control-cell']\"\n data-test=\"table-row-header|selection-cell-empty\"\n />\n\n <TableHeaderCell\n v-if=\"!hasToolbar && isSelectable\"\n class=\"stash-table-header-row__selection-cell tw-min-w-[48px]\"\n :class=\"$style['row-control-cell']\"\n data-test=\"table-row-header|selection-cell\"\n >\n <Checkbox\n v-if=\"!hasToolbar\"\n :key=\"checkboxKey\"\n :class=\"$style['row-selection-checkbox']\"\n :checked=\"props.allRowsSelected\"\n :indeterminate=\"props.someRowsSelected && !props.allRowsSelected\"\n :title=\"t('ll.selectAll')\"\n @update:indeterminate=\"onSelect\"\n @update:checked=\"onSelect\"\n />\n </TableHeaderCell>\n\n <TableHeaderCell\n v-if=\"isExpandable && !hasCustomExpandToggle\"\n :class=\"$style['row-control-cell']\"\n data-test=\"table-row-header-expansion-cell\"\n />\n <!-- @slot default -->\n <slot></slot>\n </tr>\n</template>\n\n<style module>\n .row-selection-checkbox label {\n padding: 0;\n min-height: theme('spacing.6');\n vertical-align: middle;\n }\n\n .row-control-cell {\n border-right: 0;\n }\n</style>\n"],"names":["props","__props","emit","__emit","tableInjection","inject","TABLE_INJECTION","hasCustomExpandToggle","isExpandable","isSelectable","hasToolbar","DATA_VIEW_INJECTION","checkboxKey","ref","onSelect","_openBlock","_createElementBlock","_hoisted_1","_unref","_createBlock","TableHeaderCell","_normalizeClass","$style","Checkbox","t","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAcE,UAAMA,IAAQC,GAKRC,IAAOC,GAIPC,IAAiBC,EAAOC,EAAgB,GAAG;AAEjD,QAAI,CAACF;AACH,YAAM,IAAI,MAAM,sDAAsD;AAGxE,UAAM,EAAE,uBAAAG,GAAuB,cAAAC,GAAc,cAAAC,EAAA,IAAiBL,GAExD,EAAE,YAAAM,EAAA,IAAeL,EAAOM,EAAoB,KAAKA,EAAoB,QAAQ,GAE7EC,IAAcC,EAAI,CAAC;AAEzB,aAASC,IAAW;AAClB,MAAAZ,EAAK,QAAQ,GAObU,EAAY;AAAA,IACd;sBAIAG,EAAA,GAAAC,EAkCK,MAlCLC,GAkCK;AAAA,MA/BKC,EAAAR,CAAA,KAAcQ,EAAAT,CAAA,UADtBU,EAKEC,GAAA;AAAA;QAHA,OAAKC,EAAA,CAAC,gDACEC,EAAAA,OAAM,kBAAA,CAAA,CAAA;AAAA,QACd,aAAU;AAAA,MAAA;MAIH,CAAAJ,EAAAR,CAAA,KAAcQ,EAAAT,CAAA,UADvBU,EAgBkBC,GAAA;AAAA;QAdhB,OAAKC,EAAA,CAAC,0DACEC,EAAAA,OAAM,kBAAA,CAAA,CAAA;AAAA,QACd,aAAU;AAAA,MAAA;mBAEV,MASE;AAAA,UAROJ,EAAAR,CAAA,sBADTS,EASEI,GAAA;AAAA,YAPC,KAAKX,EAAA;AAAA,YACL,SAAOU,EAAAA,OAAM,wBAAA,CAAA;AAAA,YACb,SAAStB,EAAM;AAAA,YACf,eAAeA,EAAM,oBAAgB,CAAKA,EAAM;AAAA,YAChD,OAAOkB,EAAAM,CAAA,EAAC,cAAA;AAAA,YACR,0BAAsBV;AAAA,YACtB,oBAAgBA;AAAA,UAAA;;;;MAKbI,EAAAV,CAAA,MAAiBU,EAAAX,CAAA,UADzBY,EAIEC,GAAA;AAAA;QAFC,SAAOE,EAAAA,OAAM,kBAAA,CAAA;AAAA,QACd,aAAU;AAAA,MAAA;MAGZG,EAAaC,EAAA,QAAA,SAAA;AAAA,IAAA;;;;;;;;"}
@@ -1,56 +1,27 @@
1
1
  import { ComponentOptionsMixin } from 'vue';
2
2
  import { ComponentProvideOptions } from 'vue';
3
3
  import { DefineComponent } from 'vue';
4
- import { ExtractPropTypes } from 'vue';
5
- import { PropType } from 'vue';
6
4
  import { PublicProps } from 'vue';
7
5
 
8
- declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
-
10
- declare type __VLS_Prettify<T> = {
11
- [K in keyof T]: T[K];
12
- } & {};
13
-
14
- declare type __VLS_TypePropsToRuntimeProps<T> = {
15
- [K in keyof T]-?: {} extends Pick<T, K> ? {
16
- type: PropType<__VLS_NonUndefinedable<T[K]>>;
17
- } : {
18
- type: PropType<T[K]>;
19
- required: true;
20
- };
21
- };
22
-
23
- declare type __VLS_WithDefaults<P, D> = {
24
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
25
- default: D[K];
26
- }> : P[K];
27
- };
28
-
29
6
  declare type __VLS_WithTemplateSlots<T, S> = T & {
30
7
  new (): {
31
8
  $slots: S;
32
9
  };
33
10
  };
34
11
 
35
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableHeaderRowProps>, {
36
- allRowsSelected: boolean;
37
- someRowsSelected: boolean;
38
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
39
- select: () => void;
40
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableHeaderRowProps>, {
41
- allRowsSelected: boolean;
42
- someRowsSelected: boolean;
43
- }>>> & Readonly<{
12
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<TableHeaderRowProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
13
+ select: () => any;
14
+ }, string, PublicProps, Readonly<TableHeaderRowProps> & Readonly<{
44
15
  onSelect?: (() => any) | undefined;
45
16
  }>, {
46
17
  allRowsSelected: boolean;
47
18
  someRowsSelected: boolean;
48
- }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
19
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLTableRowElement>, {
49
20
  default?(_: {}): any;
50
21
  }>;
51
22
  export default _default;
52
23
 
53
- export declare interface TableHeaderRowProps {
24
+ declare interface TableHeaderRowProps {
54
25
  allRowsSelected?: boolean;
55
26
  someRowsSelected?: boolean;
56
27
  }
package/dist/TableRow.js CHANGED
@@ -1,13 +1,13 @@
1
- import { defineComponent as A, useAttrs as D, useCssModule as M, useSlots as V, inject as j, ref as P, computed as C, watch as q, createElementBlock as x, openBlock as r, Fragment as z, createElementVNode as F, createCommentVNode as w, mergeProps as J, unref as e, createBlock as k, renderSlot as E, normalizeClass as c, withCtx as _, createVNode as b } from "vue";
1
+ import { defineComponent as A, useAttrs as D, useCssModule as M, useSlots as V, inject as j, ref as P, computed as k, watch as q, createElementBlock as w, openBlock as r, Fragment as z, createElementVNode as F, createCommentVNode as p, mergeProps as J, unref as e, createBlock as E, renderSlot as y, normalizeClass as n, withCtx as x, createVNode as _ } from "vue";
2
2
  import L from "lodash-es/uniqueId";
3
- import { t as m } from "./locale.js";
3
+ import { t as b } from "./locale.js";
4
4
  import O from "./Checkbox.js";
5
5
  import { _ as U } from "./ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js";
6
6
  import { _ as G } from "./Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js";
7
7
  import "lodash-es/cloneDeep";
8
8
  import "./DataView.keys-aSOnA4AD.js";
9
- import "./Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js";
10
- import y from "./TableCell.js";
9
+ import "./Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js";
10
+ import g from "./TableCell.js";
11
11
  import { T as H } from "./Table.keys-LHQf6FEH.js";
12
12
  import { _ as K } from "./_plugin-vue_export-helper-CHgC5LLL.js";
13
13
  const Q = /* @__PURE__ */ A({
@@ -22,83 +22,82 @@ const Q = /* @__PURE__ */ A({
22
22
  },
23
23
  emits: ["update:isSelected", "update:isExpanded"],
24
24
  setup(S, { emit: T }) {
25
- const t = S, f = T, B = D(), o = M(), i = V(), h = j(H.key);
26
- if (!h)
25
+ const t = S, h = T, B = D(), o = M(), m = V(), f = j(H.key);
26
+ if (!f)
27
27
  throw new Error("TableRow must be used within a Table component");
28
- const { hasActions: R, hasCustomExpandToggle: g, isExpandable: $, isSelectable: u, layout: d } = h, l = P(t.isExpanded), n = C(() => $.value && !!i.expansion), I = C(() => {
29
- var s;
30
- let a = ((s = i.default) == null ? void 0 : s.call(i, { toggleExpand: p }).length) ?? 0;
31
- return u.value && (a += 1), n.value && !g.value && (a += 1), a;
32
- }), v = L("table-row-");
33
- function p(a) {
34
- if (!n.value)
28
+ const { hasActions: R, hasCustomExpandToggle: v, isExpandable: $, isSelectable: u, layout: i } = f, l = P(t.isExpanded), s = k(() => $.value && !!m.expansion), I = k(() => {
29
+ let a = m.default?.({ toggleExpand: d }).length ?? 0;
30
+ return u.value && (a += 1), s.value && !v.value && (a += 1), a;
31
+ }), C = L("table-row-");
32
+ function d(a) {
33
+ if (!s.value)
35
34
  throw new Error("Cannot call `toggleExpand` on a non-expandable row. Provide an `expansion` slot.");
36
- const s = typeof a == "boolean" ? a : !l.value;
37
- l.value = s, f("update:isExpanded", s);
35
+ const c = typeof a == "boolean" ? a : !l.value;
36
+ l.value = c, h("update:isExpanded", c);
38
37
  }
39
38
  return q(
40
39
  () => t.isExpanded,
41
- () => p(t.isExpanded)
42
- ), (a, s) => (r(), x(z, null, [
40
+ () => d(t.isExpanded)
41
+ ), (a, c) => (r(), w(z, null, [
43
42
  F("tr", J({
44
43
  class: ["stash-table-row", [
45
44
  e(o).root,
46
- e(o)[`layout--${e(d)}`],
45
+ e(o)[`layout--${e(i)}`],
47
46
  {
48
- [e(o)["is-expandable"]]: n.value,
47
+ [e(o)["is-expandable"]]: s.value,
49
48
  [e(o)["is-expanded"]]: l.value,
50
49
  [e(o)["root--hidden-divider"]]: a.hideExpansionDivider,
51
- "tw-p-gutter": e(d) === "stack",
52
- "tw-mb-6 tw-shadow lg:tw-mb-0 lg:tw-shadow-none": e(d) === "stack" && !n.value,
53
- "tw-pt-[60px]": e(R) && e(d) === "stack" && !e(u),
50
+ "tw-p-gutter": e(i) === "stack",
51
+ "tw-mb-6 tw-shadow lg:tw-mb-0 lg:tw-shadow-none": e(i) === "stack" && !s.value,
52
+ "tw-pt-[60px]": e(R) && e(i) === "stack" && !e(u),
54
53
  "stash-table-row--accent": t.accentColor,
55
54
  "tw-relative": t.accentColor
56
55
  }
57
56
  ]],
58
57
  "data-test": "stash-table-row"
59
58
  }, e(B)), [
60
- e(u) ? (r(), k(y, {
59
+ e(u) ? (r(), E(g, {
61
60
  key: 0,
62
61
  "is-control": "",
63
- class: c(["stash-table-row__selection-cell tw-min-w-[48px]", e(o)["row-control-cell"]]),
62
+ class: n(["stash-table-row__selection-cell tw-min-w-[48px]", e(o)["row-control-cell"]]),
64
63
  "data-test": "stash-table-row|selection-cell"
65
64
  }, {
66
- default: _(() => [
67
- b(O, {
68
- class: c(e(o)["row-selection-checkbox"]),
65
+ default: x(() => [
66
+ _(O, {
67
+ class: n(e(o)["row-selection-checkbox"]),
69
68
  checked: t.isSelected,
70
69
  disabled: t.isSelectDisabled,
71
- title: e(m)("ll.select.self"),
72
- "onUpdate:checked": s[0] || (s[0] = (N) => f("update:isSelected", N))
70
+ title: e(b)("ll.select.self"),
71
+ "onUpdate:checked": c[0] || (c[0] = (N) => h("update:isSelected", N))
73
72
  }, null, 8, ["class", "checked", "disabled", "title"])
74
73
  ]),
75
74
  _: 1
76
- }, 8, ["class"])) : w("", !0),
77
- n.value && !e(g) ? (r(), k(y, {
75
+ }, 8, ["class"])) : p("", !0),
76
+ s.value && !e(v) ? (r(), E(g, {
78
77
  key: 1,
79
- class: c(["stash-table-row__toggle-expansion-cell tw-px-0", e(o)["row-control-cell"]]),
78
+ class: n(["stash-table-row__toggle-expansion-cell tw-px-0", e(o)["row-control-cell"]]),
80
79
  "data-test": "stash-table-row|custom-expansion-cell",
81
80
  "is-control": ""
82
81
  }, {
83
- default: _(() => [
84
- b(U, {
85
- "aria-controls": e(v),
86
- "aria-label": l.value ? e(m)("ll.table.collapseRow") : e(m)("ll.table.expandRow"),
82
+ default: x(() => [
83
+ _(U, {
84
+ "aria-controls": e(C),
85
+ "aria-label": l.value ? e(b)("ll.table.collapseRow") : e(b)("ll.table.expandRow"),
87
86
  direction: l.value ? "up" : "down",
88
87
  "is-expanded": l.value,
89
- onClick: p
88
+ onClick: d
90
89
  }, null, 8, ["aria-controls", "aria-label", "direction", "is-expanded"])
91
90
  ]),
92
91
  _: 1
93
- }, 8, ["class"])) : w("", !0),
94
- E(a.$slots, "default", {
92
+ }, 8, ["class"])) : p("", !0),
93
+ y(a.$slots, "default", {
95
94
  isRowExpanded: l.value,
96
- toggleExpand: p
95
+ toggleExpand: d
97
96
  }),
98
- t.accentColor ? (r(), x("div", {
97
+ t.accentColor ? (r(), w("div", {
99
98
  key: 2,
100
99
  "data-test": "stash-table-row|accent",
101
- class: c({
100
+ class: n({
102
101
  "tw-absolute": t.accentColor,
103
102
  [`tw-bg-${t.accentColor}`]: t.accentColor,
104
103
  "tw-block": t.accentColor,
@@ -107,40 +106,40 @@ const Q = /* @__PURE__ */ A({
107
106
  "tw-top-0": t.accentColor,
108
107
  "tw-left-0": t.accentColor
109
108
  })
110
- }, null, 2)) : w("", !0)
109
+ }, null, 2)) : p("", !0)
111
110
  ], 16),
112
- n.value ? (r(), x("tr", {
111
+ s.value ? (r(), w("tr", {
113
112
  key: 0,
114
- class: c(["stash-table-row stash-table-row--expandable", e(o)["row-expansion"]]),
113
+ class: n(["stash-table-row stash-table-row--expandable", e(o)["row-expansion"]]),
115
114
  "data-test": "stash-table-row|expansion-row"
116
115
  }, [
117
- b(G, {
116
+ _(G, {
118
117
  is: "td",
119
- id: e(v),
120
- class: c(["tw-border-none tw-bg-white tw-px-3 tw-py-0", e(o)["row-expansion-content"]]),
118
+ id: e(C),
119
+ class: n(["tw-border-none tw-bg-white tw-px-3 tw-py-0", e(o)["row-expansion-content"]]),
121
120
  "data-test": "stash-table-row|expansion-cell",
122
121
  colspan: I.value,
123
122
  "is-expanded": l.value
124
123
  }, {
125
- default: _(() => [
126
- E(a.$slots, "expansion")
124
+ default: x(() => [
125
+ y(a.$slots, "expansion")
127
126
  ]),
128
127
  _: 3
129
128
  }, 8, ["id", "class", "colspan", "is-expanded"])
130
- ], 2)) : w("", !0)
129
+ ], 2)) : p("", !0)
131
130
  ], 64));
132
131
  }
133
- }), W = "_root_ngiw1_2", X = {
132
+ }), W = "_root_1h1vo_2", X = {
134
133
  root: W,
135
- "is-expandable": "_is-expandable_ngiw1_9",
136
- "root--hidden-divider": "_root--hidden-divider_ngiw1_14",
137
- "is-expanded": "_is-expanded_ngiw1_14",
138
- "layout--scroll": "_layout--scroll_ngiw1_22",
139
- "layout--stack": "_layout--stack_ngiw1_36",
140
- "row-selection-checkbox": "_row-selection-checkbox_ngiw1_56",
141
- "row-control-cell": "_row-control-cell_ngiw1_62",
142
- "row-expansion-content": "_row-expansion-content_ngiw1_73",
143
- "row-expansion": "_row-expansion_ngiw1_73"
134
+ "is-expandable": "_is-expandable_1h1vo_9",
135
+ "root--hidden-divider": "_root--hidden-divider_1h1vo_14",
136
+ "is-expanded": "_is-expanded_1h1vo_14",
137
+ "layout--scroll": "_layout--scroll_1h1vo_22",
138
+ "layout--stack": "_layout--stack_1h1vo_36",
139
+ "row-selection-checkbox": "_row-selection-checkbox_1h1vo_56",
140
+ "row-control-cell": "_row-control-cell_1h1vo_61",
141
+ "row-expansion-content": "_row-expansion-content_1h1vo_72",
142
+ "row-expansion": "_row-expansion_1h1vo_72"
144
143
  }, Y = {
145
144
  $style: X
146
145
  }, pe = /* @__PURE__ */ K(Q, [["__cssModules", Y]]);
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sources":["../src/components/TableRow/TableRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, inject, ref, useAttrs, useCssModule, watch } from 'vue';\n\n import { StashCommonColor } from '../../../types/colors';\n import { t } from '../../locale';\n import Checkbox, { CheckboxProps } from '../Checkbox/Checkbox.vue';\n import ChevronToggle from '../ChevronToggle/ChevronToggle.vue';\n import Expand from '../Expand/Expand.vue';\n import { TABLE_INJECTION } from '../Table/Table.vue';\n import TableCell from '../TableCell/TableCell.vue';\n\n defineOptions({ inheritAttrs: false });\n\n export interface TableRowProps {\n hideExpansionDivider?: boolean;\n isExpanded?: boolean;\n isSelected?: boolean;\n isSelectDisabled?: boolean;\n /**\n * The accent color for the TableRow.\n */\n accentColor?: StashCommonColor;\n }\n\n const props = withDefaults(defineProps<TableRowProps>(), {\n /**\n * If true, hides the divider between the parent row and expansion row\n */\n hideExpansionDivider: false,\n isExpanded: false,\n isSelected: false,\n isSelectDisabled: false,\n accentColor: undefined,\n });\n\n const emit = defineEmits<{\n 'update:isSelected': [isChecked: CheckboxProps['checked']];\n 'update:isExpanded': [isExpanded: boolean];\n }>();\n\n const attrs = useAttrs();\n const classes = useCssModule();\n const slots = defineSlots<{\n default(props: { isRowExpanded?: boolean; toggleExpand: (value?: boolean) => void }): unknown[];\n expansion(): unknown[];\n }>();\n\n const tableInjection = inject(TABLE_INJECTION.key);\n\n if (!tableInjection) {\n throw new Error('TableRow must be used within a Table component');\n }\n\n const { hasActions, hasCustomExpandToggle, isExpandable, isSelectable, layout } = tableInjection;\n\n const isRowExpanded = ref(props.isExpanded);\n const isRowExpandable = computed(() => isExpandable.value && !!slots.expansion);\n\n const childCellCount = computed(() => {\n let count = slots.default?.({ toggleExpand }).length ?? 0;\n\n if (isSelectable.value) {\n count += 1;\n }\n\n if (isRowExpandable.value && !hasCustomExpandToggle.value) {\n count += 1;\n }\n\n return count;\n });\n const rowId = uniqueId('table-row-');\n\n function toggleExpand(value?: boolean) {\n if (!isRowExpandable.value) {\n throw new Error('Cannot call `toggleExpand` on a non-expandable row. Provide an `expansion` slot.');\n }\n\n const isExpanded = typeof value === 'boolean' ? value : !isRowExpanded.value;\n\n isRowExpanded.value = isExpanded;\n emit('update:isExpanded', isExpanded);\n }\n\n watch(\n () => props.isExpanded,\n () => toggleExpand(props.isExpanded),\n );\n</script>\n\n<template>\n <tr\n class=\"stash-table-row\"\n :class=\"[\n classes.root,\n classes[`layout--${layout}`],\n {\n [classes['is-expandable']]: isRowExpandable,\n [classes['is-expanded']]: isRowExpanded,\n [classes['root--hidden-divider']]: hideExpansionDivider,\n 'tw-p-gutter': layout === 'stack',\n 'tw-mb-6 tw-shadow lg:tw-mb-0 lg:tw-shadow-none': layout === 'stack' && !isRowExpandable,\n 'tw-pt-[60px]': hasActions && layout === 'stack' && !isSelectable,\n 'stash-table-row--accent': props.accentColor,\n 'tw-relative': props.accentColor,\n },\n ]\"\n data-test=\"stash-table-row\"\n v-bind=\"attrs\"\n >\n <TableCell\n v-if=\"isSelectable\"\n is-control\n class=\"stash-table-row__selection-cell tw-min-w-[48px]\"\n :class=\"classes['row-control-cell']\"\n data-test=\"stash-table-row|selection-cell\"\n >\n <Checkbox\n :class=\"classes['row-selection-checkbox']\"\n :checked=\"props.isSelected\"\n :disabled=\"props.isSelectDisabled\"\n :title=\"t('ll.select.self')\"\n @update:checked=\"emit('update:isSelected', $event)\"\n />\n </TableCell>\n <TableCell\n v-if=\"isRowExpandable && !hasCustomExpandToggle\"\n class=\"stash-table-row__toggle-expansion-cell tw-px-0\"\n data-test=\"stash-table-row|custom-expansion-cell\"\n is-control\n :class=\"classes['row-control-cell']\"\n >\n <ChevronToggle\n :aria-controls=\"rowId\"\n :aria-label=\"isRowExpanded ? t('ll.table.collapseRow') : t('ll.table.expandRow')\"\n :direction=\"isRowExpanded ? 'up' : 'down'\"\n :is-expanded=\"isRowExpanded\"\n @click=\"toggleExpand\"\n />\n </TableCell>\n <!-- @slot default -->\n <slot :is-row-expanded=\"isRowExpanded\" :toggle-expand=\"toggleExpand\"></slot>\n <!-- Displays a 4px accent on the left of the table row -->\n <div\n v-if=\"props.accentColor\"\n data-test=\"stash-table-row|accent\"\n :class=\"{\n 'tw-absolute': props.accentColor,\n [`tw-bg-${props.accentColor}`]: props.accentColor,\n 'tw-block': props.accentColor,\n 'tw-h-full': props.accentColor,\n 'tw-w-1': props.accentColor,\n 'tw-top-0': props.accentColor,\n 'tw-left-0': props.accentColor,\n }\"\n ></div>\n </tr>\n <tr\n v-if=\"isRowExpandable\"\n class=\"stash-table-row stash-table-row--expandable\"\n :class=\"classes['row-expansion']\"\n data-test=\"stash-table-row|expansion-row\"\n >\n <Expand\n is=\"td\"\n :id=\"rowId\"\n class=\"tw-border-none tw-bg-white tw-px-3 tw-py-0\"\n data-test=\"stash-table-row|expansion-cell\"\n :class=\"classes['row-expansion-content']\"\n :colspan=\"childCellCount\"\n :is-expanded=\"isRowExpanded\"\n >\n <!-- @slot expansion, for expandable content -->\n <slot name=\"expansion\"></slot>\n </Expand>\n </tr>\n</template>\n\n<style module>\n .root {\n border: 0;\n }\n\n /**\n * Only takes effect when hideExpansionDivider is true, for a softer collapse transition as the bottom border re-appears\n */\n .is-expandable > td {\n border-bottom-color: var(--color-ice-200);\n transition: border-bottom-color 0.5s;\n }\n\n .root--hidden-divider.is-expanded > td {\n transition: border-bottom-color 0s;\n /**\n * Removes the grey cell background for 'control' cells at lower breakpoints, letting the white of the tr come through.\n */\n border-bottom-color: transparent;\n }\n\n .layout--scroll {\n border-radius: 0;\n box-shadow: none !important;\n margin: 0;\n }\n\n .layout--scroll:last-of-type {\n border: 0;\n }\n\n .layout--scroll:last-of-type td {\n border-bottom: none;\n }\n\n .layout--stack {\n align-items: stretch;\n background-color: var(--color-white);\n column-gap: var(--grid-gutter);\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n position: relative;\n row-gap: var(--grid-gutter);\n }\n\n .layout--stack:not(.is-expanded) {\n border-radius: theme('borderRadius.DEFAULT');\n transition: border-radius 0.5s;\n }\n\n .layout--stack.is-expanded {\n border-top-left-radius: theme('borderRadius.DEFAULT');\n border-top-right-radius: theme('borderRadius.DEFAULT');\n }\n\n .row-selection-checkbox label {\n padding: 0;\n min-height: theme('spacing.6');\n vertical-align: middle;\n }\n\n .layout--stack .row-control-cell {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n /* On mobile, display controls on their own row, pushing other cells below */\n .row-control-cell + :not(.row-control-cell) {\n grid-column-start: 1;\n }\n\n .row-expansion-content {\n box-shadow: inset 0 -1px 0 0 var(--color-ice-200);\n }\n\n .layout--stack + .row-expansion,\n .layout--stack + .row-expansion > .row-expansion-content {\n display: block;\n }\n\n .layout--stack + .row-expansion > .row-expansion-content {\n border-top: 1px solid var(--color-ice-200);\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n margin-bottom: theme('spacing.6');\n }\n\n .layout--stack.root--hidden-divider + .row-expansion > .row-expansion-content {\n border-top: none;\n }\n\n /* On large screens, match the styles for layout-SCROLL */\n @media screen('lg') {\n .layout--stack {\n align-items: unset;\n background-color: unset;\n border: 0;\n border-bottom: 1px solid var(--color-ice-200);\n border-radius: 0;\n box-shadow: none;\n column-gap: unset;\n display: table-row;\n grid-template-columns: unset;\n row-gap: unset;\n }\n\n .layout--stack:last-of-type {\n border-bottom: 0;\n }\n\n .layout--stack .row-control-cell {\n display: table-cell;\n }\n\n .layout--stack + .row-expansion {\n display: table-row;\n }\n\n .layout--stack + .row-expansion > .row-expansion-content {\n border-top: unset;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n display: table-cell;\n margin-bottom: unset;\n }\n\n .row-control-cell + :not(.row-control-cell) {\n grid-column-start: unset;\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","attrs","useAttrs","classes","useCssModule","slots","_useSlots","tableInjection","inject","TABLE_INJECTION","hasActions","hasCustomExpandToggle","isExpandable","isSelectable","layout","isRowExpanded","ref","isRowExpandable","computed","childCellCount","count","_a","toggleExpand","rowId","uniqueId","value","isExpanded","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBE,UAAMA,IAAQC,GAWRC,IAAOC,GAKPC,IAAQC,EAAS,GACjBC,IAAUC,EAAa,GACvBC,IAAQC,EAGV,GAEEC,IAAiBC,EAAOC,EAAgB,GAAG;AAEjD,QAAI,CAACF;AACG,YAAA,IAAI,MAAM,gDAAgD;AAGlE,UAAM,EAAE,YAAAG,GAAY,uBAAAC,GAAuB,cAAAC,GAAc,cAAAC,GAAc,QAAAC,MAAWP,GAE5EQ,IAAgBC,EAAInB,EAAM,UAAU,GACpCoB,IAAkBC,EAAS,MAAMN,EAAa,SAAS,CAAC,CAACP,EAAM,SAAS,GAExEc,IAAiBD,EAAS,MAAM;;AACpC,UAAIE,MAAQC,IAAAhB,EAAM,YAAN,gBAAAgB,EAAA,KAAAhB,GAAgB,EAAE,cAAAiB,EAAc,GAAE,WAAU;AAExD,aAAIT,EAAa,UACNO,KAAA,IAGPH,EAAgB,SAAS,CAACN,EAAsB,UACzCS,KAAA,IAGJA;AAAA,IAAA,CACR,GACKG,IAAQC,EAAS,YAAY;AAEnC,aAASF,EAAaG,GAAiB;AACjC,UAAA,CAACR,EAAgB;AACb,cAAA,IAAI,MAAM,kFAAkF;AAGpG,YAAMS,IAAa,OAAOD,KAAU,YAAYA,IAAQ,CAACV,EAAc;AAEvE,MAAAA,EAAc,QAAQW,GACtB3B,EAAK,qBAAqB2B,CAAU;AAAA,IAAA;AAGtC,WAAAC;AAAA,MACE,MAAM9B,EAAM;AAAA,MACZ,MAAMyB,EAAazB,EAAM,UAAU;AAAA,IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableRow.js","sources":["../src/components/TableRow/TableRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, inject, ref, useAttrs, useCssModule, watch } from 'vue';\n\n import { StashCommonColor } from '../../../types/colors';\n import { t } from '../../locale';\n import Checkbox, { CheckboxProps } from '../Checkbox/Checkbox.vue';\n import ChevronToggle from '../ChevronToggle/ChevronToggle.vue';\n import Expand from '../Expand/Expand.vue';\n import { TABLE_INJECTION } from '../Table/Table.vue';\n import TableCell from '../TableCell/TableCell.vue';\n\n defineOptions({ inheritAttrs: false });\n\n export interface TableRowProps {\n hideExpansionDivider?: boolean;\n isExpanded?: boolean;\n isSelected?: boolean;\n isSelectDisabled?: boolean;\n /**\n * The accent color for the TableRow.\n */\n accentColor?: StashCommonColor;\n }\n\n const props = withDefaults(defineProps<TableRowProps>(), {\n /**\n * If true, hides the divider between the parent row and expansion row\n */\n hideExpansionDivider: false,\n isExpanded: false,\n isSelected: false,\n isSelectDisabled: false,\n accentColor: undefined,\n });\n\n const emit = defineEmits<{\n 'update:isSelected': [isChecked: CheckboxProps['checked']];\n 'update:isExpanded': [isExpanded: boolean];\n }>();\n\n const attrs = useAttrs();\n const classes = useCssModule();\n const slots = defineSlots<{\n default(props: { isRowExpanded?: boolean; toggleExpand: (value?: boolean) => void }): unknown[];\n expansion(): unknown[];\n }>();\n\n const tableInjection = inject(TABLE_INJECTION.key);\n\n if (!tableInjection) {\n throw new Error('TableRow must be used within a Table component');\n }\n\n const { hasActions, hasCustomExpandToggle, isExpandable, isSelectable, layout } = tableInjection;\n\n const isRowExpanded = ref(props.isExpanded);\n const isRowExpandable = computed(() => isExpandable.value && !!slots.expansion);\n\n const childCellCount = computed(() => {\n let count = slots.default?.({ toggleExpand }).length ?? 0;\n\n if (isSelectable.value) {\n count += 1;\n }\n\n if (isRowExpandable.value && !hasCustomExpandToggle.value) {\n count += 1;\n }\n\n return count;\n });\n const rowId = uniqueId('table-row-');\n\n function toggleExpand(value?: boolean) {\n if (!isRowExpandable.value) {\n throw new Error('Cannot call `toggleExpand` on a non-expandable row. Provide an `expansion` slot.');\n }\n\n const isExpanded = typeof value === 'boolean' ? value : !isRowExpanded.value;\n\n isRowExpanded.value = isExpanded;\n emit('update:isExpanded', isExpanded);\n }\n\n watch(\n () => props.isExpanded,\n () => toggleExpand(props.isExpanded),\n );\n</script>\n\n<template>\n <tr\n class=\"stash-table-row\"\n :class=\"[\n classes.root,\n classes[`layout--${layout}`],\n {\n [classes['is-expandable']]: isRowExpandable,\n [classes['is-expanded']]: isRowExpanded,\n [classes['root--hidden-divider']]: hideExpansionDivider,\n 'tw-p-gutter': layout === 'stack',\n 'tw-mb-6 tw-shadow lg:tw-mb-0 lg:tw-shadow-none': layout === 'stack' && !isRowExpandable,\n 'tw-pt-[60px]': hasActions && layout === 'stack' && !isSelectable,\n 'stash-table-row--accent': props.accentColor,\n 'tw-relative': props.accentColor,\n },\n ]\"\n data-test=\"stash-table-row\"\n v-bind=\"attrs\"\n >\n <TableCell\n v-if=\"isSelectable\"\n is-control\n class=\"stash-table-row__selection-cell tw-min-w-[48px]\"\n :class=\"classes['row-control-cell']\"\n data-test=\"stash-table-row|selection-cell\"\n >\n <Checkbox\n :class=\"classes['row-selection-checkbox']\"\n :checked=\"props.isSelected\"\n :disabled=\"props.isSelectDisabled\"\n :title=\"t('ll.select.self')\"\n @update:checked=\"emit('update:isSelected', $event)\"\n />\n </TableCell>\n <TableCell\n v-if=\"isRowExpandable && !hasCustomExpandToggle\"\n class=\"stash-table-row__toggle-expansion-cell tw-px-0\"\n data-test=\"stash-table-row|custom-expansion-cell\"\n is-control\n :class=\"classes['row-control-cell']\"\n >\n <ChevronToggle\n :aria-controls=\"rowId\"\n :aria-label=\"isRowExpanded ? t('ll.table.collapseRow') : t('ll.table.expandRow')\"\n :direction=\"isRowExpanded ? 'up' : 'down'\"\n :is-expanded=\"isRowExpanded\"\n @click=\"toggleExpand\"\n />\n </TableCell>\n <!-- @slot default -->\n <slot :is-row-expanded=\"isRowExpanded\" :toggle-expand=\"toggleExpand\"></slot>\n <!-- Displays a 4px accent on the left of the table row -->\n <div\n v-if=\"props.accentColor\"\n data-test=\"stash-table-row|accent\"\n :class=\"{\n 'tw-absolute': props.accentColor,\n [`tw-bg-${props.accentColor}`]: props.accentColor,\n 'tw-block': props.accentColor,\n 'tw-h-full': props.accentColor,\n 'tw-w-1': props.accentColor,\n 'tw-top-0': props.accentColor,\n 'tw-left-0': props.accentColor,\n }\"\n ></div>\n </tr>\n <tr\n v-if=\"isRowExpandable\"\n class=\"stash-table-row stash-table-row--expandable\"\n :class=\"classes['row-expansion']\"\n data-test=\"stash-table-row|expansion-row\"\n >\n <Expand\n is=\"td\"\n :id=\"rowId\"\n class=\"tw-border-none tw-bg-white tw-px-3 tw-py-0\"\n data-test=\"stash-table-row|expansion-cell\"\n :class=\"classes['row-expansion-content']\"\n :colspan=\"childCellCount\"\n :is-expanded=\"isRowExpanded\"\n >\n <!-- @slot expansion, for expandable content -->\n <slot name=\"expansion\"></slot>\n </Expand>\n </tr>\n</template>\n\n<style module>\n .root {\n border: 0;\n }\n\n /**\n * Only takes effect when hideExpansionDivider is true, for a softer collapse transition as the bottom border re-appears\n */\n .is-expandable > td {\n border-bottom-color: var(--color-ice-200);\n transition: border-bottom-color 0.5s;\n }\n\n .root--hidden-divider.is-expanded > td {\n transition: border-bottom-color 0s;\n /**\n * Removes the grey cell background for 'control' cells at lower breakpoints, letting the white of the tr come through.\n */\n border-bottom-color: transparent;\n }\n\n .layout--scroll {\n border-radius: 0;\n box-shadow: none !important;\n margin: 0;\n }\n\n .layout--scroll:last-of-type {\n border: 0;\n }\n\n .layout--scroll:last-of-type td {\n border-bottom: none;\n }\n\n .layout--stack {\n align-items: stretch;\n background-color: var(--color-white);\n column-gap: var(--grid-gutter);\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n position: relative;\n row-gap: var(--grid-gutter);\n }\n\n .layout--stack:not(.is-expanded) {\n border-radius: theme('borderRadius.DEFAULT');\n transition: border-radius 0.5s;\n }\n\n .layout--stack.is-expanded {\n border-top-left-radius: theme('borderRadius.DEFAULT');\n border-top-right-radius: theme('borderRadius.DEFAULT');\n }\n\n .row-selection-checkbox label {\n padding: 0;\n vertical-align: middle;\n }\n\n .layout--stack .row-control-cell {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n /* On mobile, display controls on their own row, pushing other cells below */\n .row-control-cell + :not(.row-control-cell) {\n grid-column-start: 1;\n }\n\n .row-expansion-content {\n box-shadow: inset 0 -1px 0 0 var(--color-ice-200);\n }\n\n .layout--stack + .row-expansion,\n .layout--stack + .row-expansion > .row-expansion-content {\n display: block;\n }\n\n .layout--stack + .row-expansion > .row-expansion-content {\n border-top: 1px solid var(--color-ice-200);\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n margin-bottom: theme('spacing.6');\n }\n\n .layout--stack.root--hidden-divider + .row-expansion > .row-expansion-content {\n border-top: none;\n }\n\n /* On large screens, match the styles for layout-SCROLL */\n @media screen('lg') {\n .layout--stack {\n align-items: unset;\n background-color: unset;\n border: 0;\n border-bottom: 1px solid var(--color-ice-200);\n border-radius: 0;\n box-shadow: none;\n column-gap: unset;\n display: table-row;\n grid-template-columns: unset;\n row-gap: unset;\n }\n\n .layout--stack:last-of-type {\n border-bottom: 0;\n }\n\n .layout--stack .row-control-cell {\n display: table-cell;\n }\n\n .layout--stack + .row-expansion {\n display: table-row;\n }\n\n .layout--stack + .row-expansion > .row-expansion-content {\n border-top: unset;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n display: table-cell;\n margin-bottom: unset;\n }\n\n .row-control-cell + :not(.row-control-cell) {\n grid-column-start: unset;\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","attrs","useAttrs","classes","useCssModule","slots","_useSlots","tableInjection","inject","TABLE_INJECTION","hasActions","hasCustomExpandToggle","isExpandable","isSelectable","layout","isRowExpanded","ref","isRowExpandable","computed","childCellCount","count","toggleExpand","rowId","uniqueId","value","isExpanded","watch","_createElementVNode","_mergeProps","_unref","hideExpansionDivider","_createBlock","TableCell","_normalizeClass","_createVNode","Checkbox","t","_cache","$event","ChevronToggle","_renderSlot","_ctx","_createElementBlock","Expand"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBE,UAAMA,IAAQC,GAWRC,IAAOC,GAKPC,IAAQC,EAAA,GACRC,IAAUC,EAAA,GACVC,IAAQC,EAAA,GAKRC,IAAiBC,EAAOC,EAAgB,GAAG;AAEjD,QAAI,CAACF;AACH,YAAM,IAAI,MAAM,gDAAgD;AAGlE,UAAM,EAAE,YAAAG,GAAY,uBAAAC,GAAuB,cAAAC,GAAc,cAAAC,GAAc,QAAAC,MAAWP,GAE5EQ,IAAgBC,EAAInB,EAAM,UAAU,GACpCoB,IAAkBC,EAAS,MAAMN,EAAa,SAAS,CAAC,CAACP,EAAM,SAAS,GAExEc,IAAiBD,EAAS,MAAM;AACpC,UAAIE,IAAQf,EAAM,UAAU,EAAE,cAAAgB,EAAA,CAAc,EAAE,UAAU;AAExD,aAAIR,EAAa,UACfO,KAAS,IAGPH,EAAgB,SAAS,CAACN,EAAsB,UAClDS,KAAS,IAGJA;AAAA,IACT,CAAC,GACKE,IAAQC,EAAS,YAAY;AAEnC,aAASF,EAAaG,GAAiB;AACrC,UAAI,CAACP,EAAgB;AACnB,cAAM,IAAI,MAAM,kFAAkF;AAGpG,YAAMQ,IAAa,OAAOD,KAAU,YAAYA,IAAQ,CAACT,EAAc;AAEvE,MAAAA,EAAc,QAAQU,GACtB1B,EAAK,qBAAqB0B,CAAU;AAAA,IACtC;AAEA,WAAAC;AAAA,MACE,MAAM7B,EAAM;AAAA,MACZ,MAAMwB,EAAaxB,EAAM,UAAU;AAAA,IAAA;MAKrC8B,EAiEK,MAjELC,EAiEK;AAAA,QAhEH,QAAM,mBAAiB;AAAA,UACPC,EAAA1B,CAAA,EAAQ;AAAA,UAAY0B,EAAA1B,CAAA,aAAmB0B,EAAAf,CAAA,CAAM,EAAA;AAAA;YAAsB,CAAAe,EAAA1B,CAAA,qBAA2Bc,EAAA;AAAA,YAA0B,CAAAY,EAAA1B,CAAA,mBAAyBY,EAAA;AAAA,YAAwB,CAAAc,EAAA1B,CAAA,4BAAkC2B,EAAAA;AAAAA,2BAA6CD,EAAAf,CAAA,MAAM;AAAA,YAAwE,kDAAAe,EAAAf,CAAA,kBAAuBG,EAAA;AAAA,4BAAyCY,EAAAnB,CAAA,KAAcmB,EAAAf,CAAA,MAAM,WAAA,CAAiBe,EAAAhB,CAAA;AAAA,YAAiD,2BAAAhB,EAAM;AAAA,YAAoC,eAAAA,EAAM;AAAA,UAAA;AAAA;QAc5hB,aAAU;AAAA,MAAA,GACFgC,EAAA5B,CAAA,CAAK,GAAA;AAAA,QAGL4B,EAAAhB,CAAA,UADRkB,EAcYC,GAAA;AAAA;UAZV,cAAA;AAAA,UACA,OAAKC,EAAA,CAAC,mDACEJ,EAAA1B,CAAA,EAAO,kBAAA,CAAA,CAAA;AAAA,UACf,aAAU;AAAA,QAAA;qBAEV,MAME;AAAA,YANF+B,EAMEC,GAAA;AAAA,cALC,SAAON,EAAA1B,CAAA,EAAO,wBAAA,CAAA;AAAA,cACd,SAASN,EAAM;AAAA,cACf,UAAUA,EAAM;AAAA,cAChB,OAAOgC,EAAAO,CAAA,EAAC,gBAAA;AAAA,cACR,oBAAcC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEvC,EAAI,qBAAsBuC,CAAM;AAAA,YAAA;;;;QAI7CrB,EAAA,UAAoBY,EAAAlB,CAAA,UAD5BoB,EAcYC,GAAA;AAAA;UAZV,OAAKC,EAAA,CAAC,kDAGEJ,EAAA1B,CAAA,EAAO,kBAAA,CAAA,CAAA;AAAA,UAFf,aAAU;AAAA,UACV,cAAA;AAAA,QAAA;qBAGA,MAME;AAAA,YANF+B,EAMEK,GAAA;AAAA,cALC,iBAAeV,EAAAP,CAAA;AAAA,cACf,cAAYP,EAAA,QAAgBc,EAAAO,CAAA,4BAA4BP,EAAAO,CAAA,EAAC,oBAAA;AAAA,cACzD,WAAWrB,EAAA,QAAa,OAAA;AAAA,cACxB,eAAaA,EAAA;AAAA,cACb,SAAOM;AAAA,YAAA;;;;QAIZmB,EAA4EC,EAAA,QAAA,WAAA;AAAA,UAArE,eAAiB1B,EAAA;AAAA,UAAgB,cAAAM;AAAA,QAAA;QAGhCxB,EAAM,oBADd6C,EAYO,OAAA;AAAA;UAVL,aAAU;AAAA,UACT,OAAKT,EAAA;AAAA,YAA2B,eAAApC,EAAM;AAAA,YAA+B,CAAA,SAAAA,EAAM,WAAW,EAAA,GAAKA,EAAM;AAAA,YAAiC,YAAAA,EAAM;AAAA,YAAkC,aAAAA,EAAM;AAAA,YAA+B,UAAAA,EAAM;AAAA,YAAiC,YAAAA,EAAM;AAAA,YAAkC,aAAAA,EAAM;AAAA,UAAA;;;MAYjSoB,EAAA,cADRyB,EAkBK,MAAA;AAAA;QAhBH,OAAKT,EAAA,CAAC,+CACEJ,EAAA1B,CAAA,EAAO,eAAA,CAAA,CAAA;AAAA,QACf,aAAU;AAAA,MAAA;QAEV+B,EAWSS,GAAA;AAAA,UAVP,IAAG;AAAA,UACF,IAAId,EAAAP,CAAA;AAAA,UACL,OAAKW,EAAA,CAAC,8CAEEJ,EAAA1B,CAAA,EAAO,uBAAA,CAAA,CAAA;AAAA,UADf,aAAU;AAAA,UAET,SAASgB,EAAA;AAAA,UACT,eAAaJ,EAAA;AAAA,QAAA;qBAGd,MAA8B;AAAA,YAA9ByB,EAA8BC,EAAA,QAAA,WAAA;AAAA,UAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -1,68 +1,27 @@
1
1
  import { ComponentOptionsMixin } from 'vue';
2
2
  import { ComponentProvideOptions } from 'vue';
3
3
  import { DefineComponent } from 'vue';
4
- import { ExtractPropTypes } from 'vue';
5
- import { PropType } from 'vue';
6
4
  import { PublicProps } from 'vue';
7
5
 
8
- declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
-
10
- declare type __VLS_Prettify<T> = {
11
- [K in keyof T]: T[K];
12
- } & {};
13
-
14
- declare type __VLS_TypePropsToRuntimeProps<T> = {
15
- [K in keyof T]-?: {} extends Pick<T, K> ? {
16
- type: PropType<__VLS_NonUndefinedable<T[K]>>;
17
- } : {
18
- type: PropType<T[K]>;
19
- required: true;
20
- };
21
- };
22
-
23
- declare type __VLS_WithDefaults<P, D> = {
24
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
25
- default: D[K];
26
- }> : P[K];
27
- };
28
-
29
6
  declare type __VLS_WithTemplateSlots<T, S> = T & {
30
7
  new (): {
31
8
  $slots: S;
32
9
  };
33
10
  };
34
11
 
35
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableRowProps>, {
36
- /**
37
- * If true, hides the divider between the parent row and expansion row
38
- */
39
- hideExpansionDivider: boolean;
40
- isExpanded: boolean;
41
- isSelected: boolean;
42
- isSelectDisabled: boolean;
43
- accentColor: undefined;
44
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
45
- "update:isSelected": (isChecked: boolean | (string | number)[]) => void;
46
- "update:isExpanded": (isExpanded: boolean) => void;
47
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableRowProps>, {
48
- /**
49
- * If true, hides the divider between the parent row and expansion row
50
- */
51
- hideExpansionDivider: boolean;
52
- isExpanded: boolean;
53
- isSelected: boolean;
54
- isSelectDisabled: boolean;
55
- accentColor: undefined;
56
- }>>> & Readonly<{
12
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<TableRowProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
13
+ "update:isSelected": (isChecked: boolean | (string | number)[]) => any;
14
+ "update:isExpanded": (isExpanded: boolean) => any;
15
+ }, string, PublicProps, Readonly<TableRowProps> & Readonly<{
57
16
  "onUpdate:isSelected"?: ((isChecked: boolean | (string | number)[]) => any) | undefined;
58
17
  "onUpdate:isExpanded"?: ((isExpanded: boolean) => any) | undefined;
59
18
  }>, {
19
+ accentColor: "ice-700" | "white" | "black" | "red-500" | "orange-500" | "blue-500" | "green-500" | "purple-700" | "purple-500" | "purple-100" | "royal-700" | "royal-500" | "royal-100" | "blue-700" | "blue-100" | "teal-700" | "teal-500" | "teal-100" | "green-700" | "green-100" | "seafoam-700" | "seafoam-500" | "seafoam-100" | "yellow-700" | "yellow-500" | "yellow-100" | "orange-700" | "orange-100" | "red-700" | "red-100" | "ice-500" | "ice-200" | "ice-100";
60
20
  isExpanded: boolean;
61
21
  isSelected: boolean;
62
- accentColor: "ice-700" | "purple-700" | "purple-500" | "purple-100" | "royal-700" | "royal-500" | "royal-100" | "blue-700" | "blue-500" | "blue-100" | "teal-700" | "teal-500" | "teal-100" | "green-700" | "green-500" | "green-100" | "seafoam-700" | "seafoam-500" | "seafoam-100" | "yellow-700" | "yellow-500" | "yellow-100" | "orange-700" | "orange-500" | "orange-100" | "red-700" | "red-500" | "red-100" | "ice-500" | "ice-200" | "ice-100" | "white" | "black";
63
22
  hideExpansionDivider: boolean;
64
23
  isSelectDisabled: boolean;
65
- }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, Readonly<{
24
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, Readonly<{
66
25
  default(props: {
67
26
  isRowExpanded?: boolean | undefined;
68
27
  toggleExpand: (value?: boolean | undefined) => void;
@@ -118,7 +77,7 @@ declare enum StashCommonColors {
118
77
  Black = "black"
119
78
  }
120
79
 
121
- export declare interface TableRowProps {
80
+ declare interface TableRowProps {
122
81
  hideExpansionDivider?: boolean;
123
82
  isExpanded?: boolean;
124
83
  isSelected?: boolean;
package/dist/Tabs.js CHANGED
@@ -1,5 +1,5 @@
1
- import { _ as s } from "./Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js";
2
- import { T as c, a as f } from "./Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js";
1
+ import { _ as s } from "./Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js";
2
+ import { T as c, a as f } from "./Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js";
3
3
  import { _ as a } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
4
  const t = {
5
5
  "menu-tab": "_menu-tab_frbn6_2"
@@ -2,49 +2,22 @@ import { ComponentOptionsMixin } from 'vue';
2
2
  import { ComponentProvideOptions } from 'vue';
3
3
  import { ComputedRef } from 'vue';
4
4
  import { DefineComponent } from 'vue';
5
- import { ExtractPropTypes } from 'vue';
6
5
  import { InjectionKey } from 'vue';
7
- import { PropType } from 'vue';
8
6
  import { PublicProps } from 'vue';
9
7
 
10
- declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
11
-
12
- declare type __VLS_Prettify<T> = {
13
- [K in keyof T]: T[K];
14
- } & {};
15
-
16
- declare type __VLS_TypePropsToRuntimeProps<T> = {
17
- [K in keyof T]-?: {} extends Pick<T, K> ? {
18
- type: PropType<__VLS_NonUndefinedable<T[K]>>;
19
- } : {
20
- type: PropType<T[K]>;
21
- required: true;
22
- };
23
- };
24
-
25
- declare type __VLS_WithDefaults<P, D> = {
26
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
27
- default: D[K];
28
- }> : P[K];
29
- };
30
-
31
8
  declare type __VLS_WithTemplateSlots<T, S> = T & {
32
9
  new (): {
33
10
  $slots: S;
34
11
  };
35
12
  };
36
13
 
37
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TabsProps>, {
38
- variant: TabVariant;
39
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
40
- "update:activeTab": (newTabValue: string) => void;
41
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TabsProps>, {
42
- variant: TabVariant;
43
- }>>> & Readonly<{
14
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<TabsProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
15
+ "update:activeTab": (newTabValue: string) => any;
16
+ }, string, PublicProps, Readonly<TabsProps> & Readonly<{
44
17
  "onUpdate:activeTab"?: ((newTabValue: string) => any) | undefined;
45
18
  }>, {
46
19
  variant: "line" | "enclosed";
47
- }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
20
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>, {
48
21
  default?(_: {}): any;
49
22
  }>;
50
23
  export default _default;
@@ -0,0 +1,78 @@
1
+ import { defineComponent as f, computed as a, provide as T, createElementBlock as h, openBlock as _, createVNode as n, unref as i, normalizeClass as r, withCtx as c, createElementVNode as x, createTextVNode as y, toDisplayString as g, renderSlot as C } from "vue";
2
+ import { t as l } from "./locale.js";
3
+ import I from "./Icon.js";
4
+ import N from "./MoreActions.js";
5
+ const k = Object.freeze({
6
+ key: Symbol("TABS_INJECTION_KEY")
7
+ });
8
+ var d = /* @__PURE__ */ ((e) => (e.Line = "line", e.Enclosed = "enclosed", e))(d || {});
9
+ const E = {
10
+ class: "stash-tabs tw-relative",
11
+ role: "tabList",
12
+ "data-test": "stash-tabs"
13
+ }, A = ["aria-expanded", "onClick"], z = /* @__PURE__ */ f({
14
+ __name: "Tabs",
15
+ props: {
16
+ activeTab: {},
17
+ variant: { default: d.Line }
18
+ },
19
+ emits: ["update:activeTab"],
20
+ setup(e, { emit: m }) {
21
+ const p = m, o = e, s = a({
22
+ get() {
23
+ return o.activeTab;
24
+ },
25
+ set(t) {
26
+ p("update:activeTab", t);
27
+ }
28
+ });
29
+ function u(t) {
30
+ s.value = t;
31
+ }
32
+ const v = a(() => `tab-${s.value}`);
33
+ return T(k.key, {
34
+ activeTab: a(() => s.value),
35
+ variant: a(() => o.variant),
36
+ setActiveTab: u
37
+ }), (t, S) => (_(), h("div", E, [
38
+ n(N, {
39
+ class: r(["stash-tabs-list tw-flex tw-items-end", {
40
+ "stash-tabs-list--line": t.variant === "line",
41
+ "stash-tabs-list--enclosed": t.variant === "enclosed",
42
+ "tw-gap-6": t.variant === "line"
43
+ }]),
44
+ "more-button-text": i(l)("ll.more"),
45
+ "dropdown-mode": "custom",
46
+ "auto-style-dropdown-items": "",
47
+ "active-item-id": v.value,
48
+ "actions-container-class": {
49
+ "tw-gap-0": t.variant === "enclosed",
50
+ "tw-gap-6": t.variant === "line"
51
+ }
52
+ }, {
53
+ actions: c(() => [
54
+ C(t.$slots, "default")
55
+ ]),
56
+ toggle: c(({ toggle: b, isOpen: w }) => [
57
+ x("button", {
58
+ "aria-haspopup": "menu",
59
+ "aria-expanded": w,
60
+ class: r(["tw-flex tw-cursor-pointer tw-items-center tw-justify-center tw-border-solid tw-px-6 tw-py-1.5 tw-text-sm tw-font-medium tw-text-blue-500 hover:tw-text-blue-700", { "tw-border-t-4 tw-border-transparent": o.variant === "enclosed" }]),
61
+ type: "button",
62
+ onClick: b
63
+ }, [
64
+ y(g(i(l)("ll.more")) + " ", 1),
65
+ n(I, { name: "caret-down" })
66
+ ], 10, A)
67
+ ]),
68
+ _: 3
69
+ }, 8, ["class", "more-button-text", "active-item-id", "actions-container-class"])
70
+ ]));
71
+ }
72
+ });
73
+ export {
74
+ k as T,
75
+ z as _,
76
+ d as a
77
+ };
78
+ //# sourceMappingURL=Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.vue_vue_type_script_setup_true_lang-BlJVDr7o.js","sources":["../src/components/Tabs/keys.ts","../src/components/Tabs/models.ts","../src/components/Tabs/Tabs.vue"],"sourcesContent":["import { Injection } from '../../../types/utils';\nimport { TabsInjection } from './models';\n\nexport const TABS_INJECTION: Injection<TabsInjection> = Object.freeze({\n key: Symbol('TABS_INJECTION_KEY'),\n});\n","import { ComputedRef } from 'vue';\n\nexport enum TabVariant {\n Line = 'line',\n Enclosed = 'enclosed',\n}\n\nexport type TabVariants = `${TabVariant}`;\n\nexport interface TabsInjection {\n activeTab: ComputedRef<string>;\n variant: ComputedRef<TabVariants>;\n setActiveTab: (newTabValue: string) => void;\n}\n","<script lang=\"ts\">\n import { TabVariant, TabVariants } from './models';\n\n export * from './keys';\n export * from './models';\n\n export interface TabsProps {\n /**\n * The currently active tab value\n */\n activeTab: string;\n\n /**\n * Tabs variant\n */\n variant?: TabVariants;\n }\n</script>\n\n<script setup lang=\"ts\">\n import { computed, provide } from 'vue';\n\n import { t } from '../../locale';\n import Icon from '../Icon/Icon.vue';\n import MoreActions from '../MoreActions/MoreActions.vue';\n import { TABS_INJECTION } from './keys';\n\n const emit = defineEmits<{\n (e: 'update:activeTab', newTabValue: TabsProps['activeTab']): void;\n }>();\n\n const props = withDefaults(defineProps<TabsProps>(), {\n variant: TabVariant.Line,\n });\n\n const currentActiveTab = computed({\n get() {\n return props.activeTab;\n },\n set(nv: TabsProps['activeTab']) {\n emit('update:activeTab', nv);\n },\n });\n\n function setActiveTab(newTabValue) {\n currentActiveTab.value = newTabValue;\n }\n\n const activeItemId = computed(() => `tab-${currentActiveTab.value}`);\n\n provide(TABS_INJECTION.key, {\n activeTab: computed(() => currentActiveTab.value),\n variant: computed(() => props.variant),\n setActiveTab,\n });\n</script>\n\n<template>\n <div class=\"stash-tabs tw-relative\" role=\"tabList\" data-test=\"stash-tabs\">\n <MoreActions\n class=\"stash-tabs-list tw-flex tw-items-end\"\n :class=\"{\n 'stash-tabs-list--line': variant === 'line',\n 'stash-tabs-list--enclosed': variant === 'enclosed',\n 'tw-gap-6': variant === 'line',\n }\"\n :more-button-text=\"t('ll.more')\"\n dropdown-mode=\"custom\"\n auto-style-dropdown-items\n :active-item-id=\"activeItemId\"\n :actions-container-class=\"{\n 'tw-gap-0': variant === 'enclosed',\n 'tw-gap-6': variant === 'line',\n }\"\n >\n <template #actions>\n <slot></slot>\n </template>\n <template #toggle=\"{ toggle, isOpen }\">\n <button\n aria-haspopup=\"menu\"\n :aria-expanded=\"isOpen\"\n class=\"tw-flex tw-cursor-pointer tw-items-center tw-justify-center tw-border-solid tw-px-6 tw-py-1.5 tw-text-sm tw-font-medium tw-text-blue-500 hover:tw-text-blue-700\"\n :class=\"{ 'tw-border-t-4 tw-border-transparent': props.variant === 'enclosed' }\"\n type=\"button\"\n @click=\"toggle\"\n >\n {{ t('ll.more') }}\n <Icon name=\"caret-down\" />\n </button>\n </template>\n </MoreActions>\n </div>\n</template>\n\n<style module>\n .menu-tab > a {\n /* prevents the global link styles to overwrite the overflowed tab styles */\n &,\n &:hover,\n &:focus {\n color: inherit;\n }\n }\n</style>\n"],"names":["TABS_INJECTION","TabVariant","emit","__emit","props","__props","currentActiveTab","computed","nv","setActiveTab","newTabValue","activeItemId","provide","_openBlock","_createElementBlock","_hoisted_1","_createVNode","MoreActions","variant","_unref","t","_renderSlot","_ctx","_withCtx","toggle","isOpen","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","Icon"],"mappings":";;;;AAGO,MAAMA,IAA2C,OAAO,OAAO;AAAA,EACpE,KAAK,OAAO,oBAAoB;AAClC,CAAC;ACHM,IAAKC,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,WAAW,YAFDA,IAAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;ACyBV,UAAMC,IAAOC,GAIPC,IAAQC,GAIRC,IAAmBC,EAAS;AAAA,MAChC,MAAM;AACJ,eAAOH,EAAM;AAAA,MACf;AAAA,MACA,IAAII,GAA4B;AAC9B,QAAAN,EAAK,oBAAoBM,CAAE;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,aAASC,EAAaC,GAAa;AACjC,MAAAJ,EAAiB,QAAQI;AAAA,IAC3B;AAEA,UAAMC,IAAeJ,EAAS,MAAM,OAAOD,EAAiB,KAAK,EAAE;AAEnE,WAAAM,EAAQZ,EAAe,KAAK;AAAA,MAC1B,WAAWO,EAAS,MAAMD,EAAiB,KAAK;AAAA,MAChD,SAASC,EAAS,MAAMH,EAAM,OAAO;AAAA,MACrC,cAAAK;AAAA,IAAA,CACD,cAIDI,EAAA,GAAAC,EAkCM,OAlCNC,GAkCM;AAAA,MAjCJC,EAgCcC,GAAA;AAAA,QA/BZ,UAAM,wCAAsC;AAAA,mCACDC,EAAAA,YAAO;AAAA,uCAAkDA,EAAAA,YAAO;AAAA,sBAAqCA,EAAAA,YAAO;AAAA,QAAA;QAKtJ,oBAAkBC,EAAAC,CAAA,EAAC,SAAA;AAAA,QACpB,iBAAc;AAAA,QACd,6BAAA;AAAA,QACC,kBAAgBT,EAAA;AAAA,QAChB,2BAAuB;AAAA,sBAAwBO,EAAAA,YAAO;AAAA,sBAAqCA,EAAAA,YAAO;AAAA,QAAA;AAAA;QAKxF,WACT,MAAa;AAAA,UAAbG,EAAaC,EAAA,QAAA,SAAA;AAAA,QAAA;QAEJ,QAAMC,EACf,CAUS,EAXU,QAAAC,GAAQ,QAAAC,QAAM;AAAA,UACjCC,EAUS,UAAA;AAAA,YATP,iBAAc;AAAA,YACb,iBAAeD;AAAA,YAChB,OAAKE,EAAA,CAAC,mKAAiK,EAAA,uCACtHvB,EAAM,YAAO,WAAA,CAAA,CAAA;AAAA,YAC9D,MAAK;AAAA,YACJ,SAAOoB;AAAA,UAAA;YAELI,EAAAC,EAAAV,EAAAC,CAAA,gBAAe,KAClB,CAAA;AAAA,YAAAJ,EAA0Bc,GAAA,EAApB,MAAK,cAAY;AAAA,UAAA;;;;;;;"}