@persona/design-system 0.1.6 → 0.1.7

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 (597) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{Action-DSg3yZck.d.mts → Action-DkNqzc2X.d.mts} +3 -3
  3. package/dist/{Action-uduFOh2m.d.cts → Action-z1rV4qON.d.cts} +3 -3
  4. package/dist/Action.d.cts +1 -1
  5. package/dist/Action.d.mts +1 -1
  6. package/dist/Attribute.d.mts +3 -3
  7. package/dist/{Badge-CvdUyXSH.cjs → Badge-DAGPU4-e.cjs} +1 -4
  8. package/dist/{Badge-CvdUyXSH.cjs.map → Badge-DAGPU4-e.cjs.map} +1 -1
  9. package/dist/{Badge-pq6B-3ue.mjs → Badge-DRn_r6is.mjs} +1 -4
  10. package/dist/{Badge-pq6B-3ue.mjs.map → Badge-DRn_r6is.mjs.map} +1 -1
  11. package/dist/Breadcrumb-BOxfam3E.d.cts +31 -0
  12. package/dist/Breadcrumb-On7pOpgt.d.mts +31 -0
  13. package/dist/Breadcrumb.d.cts +2 -0
  14. package/dist/Breadcrumb.d.mts +2 -0
  15. package/dist/Breadcrumbs.d.cts +20 -0
  16. package/dist/Breadcrumbs.d.mts +20 -0
  17. package/dist/{Button-DcTUxRNI.d.mts → Button-DXsYU5qU.d.mts} +2 -2
  18. package/dist/Button.d.mts +1 -1
  19. package/dist/CalendarBase.d.mts +1 -1
  20. package/dist/{Card-CrQL0hXm.d.cts → Card-DnmrsQWi.d.cts} +2 -2
  21. package/dist/{Card-YzGS3nQI.d.mts → Card-IOBCsfke.d.mts} +3 -3
  22. package/dist/Card.d.cts +1 -1
  23. package/dist/Card.d.mts +1 -1
  24. package/dist/Card2.d.cts +1 -1
  25. package/dist/Card2.d.mts +1 -1
  26. package/dist/{Checkbox-UWdk4pqb.mjs → Checkbox-BghGF-iW.mjs} +2 -2
  27. package/dist/{Checkbox-UWdk4pqb.mjs.map → Checkbox-BghGF-iW.mjs.map} +1 -1
  28. package/dist/{Checkbox-BmjK0Wac.d.cts → Checkbox-DfI0Xp3y.d.cts} +1 -1
  29. package/dist/{Checkbox-B83WfsOZ.cjs → Checkbox-DhxpxzGp.cjs} +2 -2
  30. package/dist/{Checkbox-B83WfsOZ.cjs.map → Checkbox-DhxpxzGp.cjs.map} +1 -1
  31. package/dist/{Checkbox-Bc2kzl9q.d.mts → Checkbox-MUC37dLY.d.mts} +1 -1
  32. package/dist/Checkbox.d.cts +1 -1
  33. package/dist/Checkbox.d.mts +1 -1
  34. package/dist/CheckboxGroupField.d.cts +1 -1
  35. package/dist/CheckboxGroupField.d.mts +1 -1
  36. package/dist/{Combobox-R3_NDBi3.cjs → Combobox-4Bi9-N1p.cjs} +12 -7
  37. package/dist/Combobox-4Bi9-N1p.cjs.map +1 -0
  38. package/dist/{Combobox-Dx1u-L1A.d.cts → Combobox-5rAFq_52.d.cts} +3 -3
  39. package/dist/{Combobox-DtD1XXaf.d.mts → Combobox-Bedo_GIj.d.mts} +3 -3
  40. package/dist/{Combobox-I44W5oX0.mjs → Combobox-CeKMrlxy.mjs} +12 -7
  41. package/dist/Combobox-CeKMrlxy.mjs.map +1 -0
  42. package/dist/Combobox.d.cts +2 -2
  43. package/dist/Combobox.d.mts +2 -2
  44. package/dist/{ComboboxBase-d98GJD-k.d.cts → ComboboxBase-BoR9DVwe.d.cts} +6 -5
  45. package/dist/{ComboboxBase-sRVxlTJw.d.mts → ComboboxBase-DGZUdsQa.d.mts} +8 -7
  46. package/dist/ComboboxBase.d.cts +1 -1
  47. package/dist/ComboboxBase.d.mts +1 -1
  48. package/dist/{ComboboxMultiSelect-CRHf5TI-.d.cts → ComboboxMultiSelect-CnI6sFAF.d.cts} +2 -2
  49. package/dist/{ComboboxMultiSelect-CdLQDBMN.d.mts → ComboboxMultiSelect-DMWPiBrE.d.mts} +2 -2
  50. package/dist/ComboboxMultiSelect.d.cts +1 -1
  51. package/dist/ComboboxMultiSelect.d.mts +1 -1
  52. package/dist/{ComboboxSingleSelect-CxiQ2o6t.d.mts → ComboboxSingleSelect-CcppU_hq.d.mts} +4 -4
  53. package/dist/{ComboboxSingleSelect-DvK8QioK.d.cts → ComboboxSingleSelect-Japejm0g.d.cts} +4 -4
  54. package/dist/ComboboxSingleSelect.d.cts +1 -1
  55. package/dist/ComboboxSingleSelect.d.mts +1 -1
  56. package/dist/{CompactBar-k-rhZ5Z-.d.mts → CompactBar-2cpJD7qg.d.mts} +3 -3
  57. package/dist/{CompactBar-ODUl2Q6G.d.cts → CompactBar-DTsGo1zU.d.cts} +3 -3
  58. package/dist/CompactBar.d.cts +1 -1
  59. package/dist/CompactBar.d.mts +1 -1
  60. package/dist/{ConfigFormGroup-_yCksmZo.mjs → ConfigFormGroup-DISUwz5j.mjs} +2 -2
  61. package/dist/{ConfigFormGroup-_yCksmZo.mjs.map → ConfigFormGroup-DISUwz5j.mjs.map} +1 -1
  62. package/dist/{ConfigFormGroup-BhO9nm3P.cjs → ConfigFormGroup-DVRhkS2L.cjs} +2 -2
  63. package/dist/{ConfigFormGroup-BhO9nm3P.cjs.map → ConfigFormGroup-DVRhkS2L.cjs.map} +1 -1
  64. package/dist/{ControlBar-oT-I2y6E.d.cts → ControlBar-BGmXymCB.d.cts} +2 -2
  65. package/dist/{ControlBar-9m-DNImB.d.mts → ControlBar-DXyl1gjc.d.mts} +2 -2
  66. package/dist/ControlBar.d.cts +1 -1
  67. package/dist/ControlBar.d.mts +1 -1
  68. package/dist/DataTable.d.cts +3 -3
  69. package/dist/DataTable.d.mts +3 -3
  70. package/dist/DateField.d.cts +1 -1
  71. package/dist/DateField.d.mts +1 -1
  72. package/dist/DatePicker.d.cts +1 -1
  73. package/dist/DatePicker.d.mts +1 -1
  74. package/dist/DateRangePicker.d.cts +6 -1
  75. package/dist/DateRangePicker.d.mts +6 -1
  76. package/dist/{DropdownButton-BS1QfVX_.mjs → DropdownButton-B397h6ka.mjs} +2 -2
  77. package/dist/{DropdownButton-BS1QfVX_.mjs.map → DropdownButton-B397h6ka.mjs.map} +1 -1
  78. package/dist/{DropdownButton-Dpiy5v-R.cjs → DropdownButton-Du6dwZVL.cjs} +2 -2
  79. package/dist/{DropdownButton-Dpiy5v-R.cjs.map → DropdownButton-Du6dwZVL.cjs.map} +1 -1
  80. package/dist/DropdownButton.d.cts +1 -1
  81. package/dist/DropdownButton.d.mts +2 -2
  82. package/dist/{DropdownMenu-COkpUmIO.d.mts → DropdownMenu-5qIgQ14A.d.mts} +2 -2
  83. package/dist/{DropdownMenu-CeqZAxjs.cjs → DropdownMenu-CfJxgWN5.cjs} +2 -2
  84. package/dist/{DropdownMenu-CeqZAxjs.cjs.map → DropdownMenu-CfJxgWN5.cjs.map} +1 -1
  85. package/dist/{DropdownMenu-D1E1jpZu.d.cts → DropdownMenu-FIYz6oAo.d.cts} +2 -2
  86. package/dist/{DropdownMenu-cN_AnKAT.mjs → DropdownMenu-cnkoGc7C.mjs} +2 -2
  87. package/dist/{DropdownMenu-cN_AnKAT.mjs.map → DropdownMenu-cnkoGc7C.mjs.map} +1 -1
  88. package/dist/DropdownMenu.d.cts +1 -1
  89. package/dist/DropdownMenu.d.mts +1 -1
  90. package/dist/{ErrorProps-DBw1_Z0a.d.mts → ErrorProps-BosuK6zJ.d.cts} +1 -1
  91. package/dist/{ErrorProps-DLdVsYlk.d.cts → ErrorProps-iEj4BIVA.d.mts} +1 -1
  92. package/dist/ErrorProps.d.cts +1 -1
  93. package/dist/ErrorProps.d.mts +1 -1
  94. package/dist/{FormControl-fK4HA_yF.mjs → FormControl-ArDcvmir.mjs} +3 -3
  95. package/dist/{FormControl-fK4HA_yF.mjs.map → FormControl-ArDcvmir.mjs.map} +1 -1
  96. package/dist/{FormControl-OqBTbSwv.d.cts → FormControl-BrsML00L.d.cts} +2 -2
  97. package/dist/{FormControl-DjxkL5Ft.cjs → FormControl-Czt95h2L.cjs} +3 -3
  98. package/dist/{FormControl-DjxkL5Ft.cjs.map → FormControl-Czt95h2L.cjs.map} +1 -1
  99. package/dist/{FormControl-vfFzrYhv.d.mts → FormControl-DnsC4vTX.d.mts} +2 -2
  100. package/dist/FormControl.d.cts +1 -1
  101. package/dist/FormControl.d.mts +1 -1
  102. package/dist/FormControlLabel.d.mts +1 -1
  103. package/dist/{FormField-24UPuoL6.d.mts → FormField-BddCs6P0.d.mts} +2 -2
  104. package/dist/{FormField-Cqwi_PyR.d.cts → FormField-DoSXvnJ3.d.cts} +2 -2
  105. package/dist/FormField.d.cts +1 -1
  106. package/dist/FormField.d.mts +1 -1
  107. package/dist/{Header-WNGlG541.d.mts → Header-B-Us54dR.d.mts} +1 -1
  108. package/dist/{Header-D8oDtnIL.d.cts → Header-CkZvzbzL.d.cts} +1 -1
  109. package/dist/Header.d.cts +1 -1
  110. package/dist/Header.d.mts +1 -1
  111. package/dist/{HelperTooltip-oXdyk2At.d.cts → HelperTooltip-C1CYMpJP.d.cts} +2 -2
  112. package/dist/{HelperTooltip-Bd5pQLqL.d.mts → HelperTooltip-CofPKyZh.d.mts} +2 -2
  113. package/dist/HelperTooltip.d.cts +1 -1
  114. package/dist/HelperTooltip.d.mts +1 -1
  115. package/dist/{HoverCopyableField-DyW2iZuo.cjs → HoverCopyableField-B_WNB7Qp.cjs} +8 -8
  116. package/dist/HoverCopyableField-B_WNB7Qp.cjs.map +1 -0
  117. package/dist/{HoverCopyableField-DBkYvwii.mjs → HoverCopyableField-DR575ayC.mjs} +4 -4
  118. package/dist/HoverCopyableField-DR575ayC.mjs.map +1 -0
  119. package/dist/{IconButton-DggxojBH.d.mts → IconButton-Dnnlf9uO.d.mts} +2 -2
  120. package/dist/IconButton.d.mts +1 -1
  121. package/dist/ImageTile.d.cts +1 -1
  122. package/dist/ImageTile.d.mts +1 -1
  123. package/dist/InlineCombobox.d.mts +5 -2
  124. package/dist/InlineInput.d.mts +4 -1
  125. package/dist/{Input-DW7oacjc.d.mts → Input-4KeYlOWM.d.mts} +4 -4
  126. package/dist/{Input-DQS-BEym.cjs → Input-BDLUq-pK.cjs} +2 -2
  127. package/dist/{Input-DQS-BEym.cjs.map → Input-BDLUq-pK.cjs.map} +1 -1
  128. package/dist/{Input-XppkvfUf.d.cts → Input-CEcTvtX2.d.cts} +2 -2
  129. package/dist/{Input-Bl7633Ux.mjs → Input-PWfwMSJ7.mjs} +2 -2
  130. package/dist/{Input-Bl7633Ux.mjs.map → Input-PWfwMSJ7.mjs.map} +1 -1
  131. package/dist/Input.d.cts +1 -1
  132. package/dist/Input.d.mts +1 -1
  133. package/dist/{InputProps-DQpb2_E3.d.mts → InputProps-CTLG2Tr0.d.mts} +2 -2
  134. package/dist/{InputProps-7rEMxBED.d.cts → InputProps-DNlik5IZ.d.cts} +2 -2
  135. package/dist/InputProps.d.cts +1 -1
  136. package/dist/InputProps.d.mts +1 -1
  137. package/dist/{ListBox-B4uoo_PT.cjs → ListBox-BCscLcYL.cjs} +7 -7
  138. package/dist/ListBox-BCscLcYL.cjs.map +1 -0
  139. package/dist/{ListBox-B7sbubm5.mjs → ListBox-CDNOJmvz.mjs} +7 -7
  140. package/dist/{ListBox-B4uoo_PT.cjs.map → ListBox-CDNOJmvz.mjs.map} +1 -1
  141. package/dist/{ListBox-CVvKa5sc.d.mts → ListBox-DZIAlPbc.d.mts} +3 -3
  142. package/dist/{ListBox-DeVmbXeC.d.cts → ListBox-WyZvseo5.d.cts} +2 -2
  143. package/dist/ListBox.d.cts +1 -1
  144. package/dist/ListBox.d.mts +1 -1
  145. package/dist/ListBoxField.d.cts +2 -2
  146. package/dist/ListBoxField.d.mts +2 -2
  147. package/dist/{LoadingShimmer-b430vgof.mjs → LoadingShimmer-Bu6KtQ06.mjs} +1 -1
  148. package/dist/{LoadingShimmer-b430vgof.mjs.map → LoadingShimmer-Bu6KtQ06.mjs.map} +1 -1
  149. package/dist/{LoadingShimmer-uG2UzYQd.cjs → LoadingShimmer-CUjbAqGd.cjs} +1 -1
  150. package/dist/{LoadingShimmer-uG2UzYQd.cjs.map → LoadingShimmer-CUjbAqGd.cjs.map} +1 -1
  151. package/dist/LoadingShimmer.d.mts +1 -1
  152. package/dist/MaskedInput.d.cts +2 -2
  153. package/dist/MaskedInput.d.mts +1 -1
  154. package/dist/{Menu-CSgCXX0k.d.mts → Menu-BJ5c7HGD.d.mts} +2 -2
  155. package/dist/{Menu-C_NOsHAm.d.cts → Menu-BKMxOXkj.d.cts} +3 -3
  156. package/dist/{Menu-BLbEcodU.cjs → Menu-BXic-30n.cjs} +1 -1
  157. package/dist/{Menu-BLbEcodU.cjs.map → Menu-BXic-30n.cjs.map} +1 -1
  158. package/dist/{Menu-BbSyWxFD.mjs → Menu-CVuFAxl2.mjs} +1 -1
  159. package/dist/{Menu-BbSyWxFD.mjs.map → Menu-CVuFAxl2.mjs.map} +1 -1
  160. package/dist/Menu.d.cts +1 -1
  161. package/dist/Menu.d.mts +1 -1
  162. package/dist/Modal.d.cts +10 -5
  163. package/dist/Modal.d.mts +11 -6
  164. package/dist/{PageSelector-mn6q4SKY.d.mts → PageSelector-CMoV-cHa.d.mts} +3 -3
  165. package/dist/{PageSelector-COqR1tdA.d.cts → PageSelector-DoROR_Uh.d.cts} +3 -3
  166. package/dist/PageSelector.d.cts +1 -1
  167. package/dist/PageSelector.d.mts +1 -1
  168. package/dist/{Pagination-CeoHVtYD.d.cts → Pagination-B97xQ-Wk.d.cts} +2 -2
  169. package/dist/{Pagination-F8ofIWnG.mjs → Pagination-Cj08JRG9.mjs} +4 -3
  170. package/dist/{Pagination-F8ofIWnG.mjs.map → Pagination-Cj08JRG9.mjs.map} +1 -1
  171. package/dist/{Pagination-DEZFb552.cjs → Pagination-D4IVVj3S.cjs} +4 -3
  172. package/dist/Pagination-D4IVVj3S.cjs.map +1 -0
  173. package/dist/{Pagination-BUjpYIwq.d.mts → Pagination-QWNK_hH7.d.mts} +2 -2
  174. package/dist/Pagination.d.cts +1 -1
  175. package/dist/Pagination.d.mts +1 -1
  176. package/dist/{Pii-B_gBVAak.mjs → Pii-Bxh6_R4T.mjs} +1 -1
  177. package/dist/{Pii-B_gBVAak.mjs.map → Pii-Bxh6_R4T.mjs.map} +1 -1
  178. package/dist/{Pii--c8IxKI0.cjs → Pii-D-Ry7L0t.cjs} +1 -1
  179. package/dist/{Pii--c8IxKI0.cjs.map → Pii-D-Ry7L0t.cjs.map} +1 -1
  180. package/dist/{Popover-jHZICnQt.cjs → Popover-BAv7BujW.cjs} +1 -1
  181. package/dist/{Popover-jHZICnQt.cjs.map → Popover-BAv7BujW.cjs.map} +1 -1
  182. package/dist/{Popover-D4_aqKlm.mjs → Popover-D0QY5f-J.mjs} +1 -1
  183. package/dist/{Popover-D4_aqKlm.mjs.map → Popover-D0QY5f-J.mjs.map} +1 -1
  184. package/dist/{PseudoClassProps--MiDp2l2.d.mts → PseudoClassProps-ySXCGUEQ.d.mts} +1 -1
  185. package/dist/PseudoClassProps.d.mts +1 -1
  186. package/dist/{Radio-DnnJl87b.mjs → Radio-C9DevagH.mjs} +2 -2
  187. package/dist/{Radio-DnnJl87b.mjs.map → Radio-C9DevagH.mjs.map} +1 -1
  188. package/dist/{Radio-BN9FLRHy.cjs → Radio-nw846eRv.cjs} +2 -2
  189. package/dist/{Radio-BN9FLRHy.cjs.map → Radio-nw846eRv.cjs.map} +1 -1
  190. package/dist/{RadioGroup-BDHhFlmy.mjs → RadioGroup-B3hRbIWF.mjs} +2 -2
  191. package/dist/{RadioGroup-BDHhFlmy.mjs.map → RadioGroup-B3hRbIWF.mjs.map} +1 -1
  192. package/dist/{RadioGroup-BDO3pTgP.d.cts → RadioGroup-D_H1B7JV.d.cts} +1 -1
  193. package/dist/{RadioGroup-D28hdlhz.cjs → RadioGroup-DmGVJCgT.cjs} +2 -2
  194. package/dist/{RadioGroup-D28hdlhz.cjs.map → RadioGroup-DmGVJCgT.cjs.map} +1 -1
  195. package/dist/{RadioGroup-DfhvXpi3.d.mts → RadioGroup-nhMXEbCx.d.mts} +1 -1
  196. package/dist/RadioGroup.d.cts +1 -1
  197. package/dist/RadioGroup.d.mts +1 -1
  198. package/dist/{SearchInput-B6d2Qyzb.d.cts → SearchInput-CAHYPQVX.d.cts} +2 -2
  199. package/dist/{SearchInput-2lsv5_R6.d.mts → SearchInput-s6qGC2WZ.d.mts} +2 -2
  200. package/dist/SearchInput.d.cts +1 -1
  201. package/dist/SearchInput.d.mts +1 -1
  202. package/dist/Section.d.mts +1 -1
  203. package/dist/{SectionHeading-BLDimf5d.d.mts → SectionHeading-CDBQ4m9E.d.mts} +2 -2
  204. package/dist/{SectionHeading-DZyfNPn0.d.cts → SectionHeading-D-L4uPoX.d.cts} +2 -2
  205. package/dist/SectionHeading.d.cts +1 -1
  206. package/dist/SectionHeading.d.mts +1 -1
  207. package/dist/{SegmentedControl-pRkMcMXe.mjs → SegmentedControl-B1ZLgu61.mjs} +2 -2
  208. package/dist/{SegmentedControl-pRkMcMXe.mjs.map → SegmentedControl-B1ZLgu61.mjs.map} +1 -1
  209. package/dist/{SegmentedControl-1QD2zH3l.d.mts → SegmentedControl-BYuXohIp.d.cts} +1 -1
  210. package/dist/{SegmentedControl-C51htGBp.d.cts → SegmentedControl-CE845gnm.d.mts} +1 -1
  211. package/dist/{SegmentedControl-DTkFgjac.cjs → SegmentedControl-CIJz0oxY.cjs} +2 -2
  212. package/dist/{SegmentedControl-DTkFgjac.cjs.map → SegmentedControl-CIJz0oxY.cjs.map} +1 -1
  213. package/dist/SegmentedControl.d.cts +1 -1
  214. package/dist/SegmentedControl.d.mts +1 -1
  215. package/dist/{Select-BysJW9mH.d.mts → Select-BMEwCfbv.d.mts} +3 -3
  216. package/dist/{Select-Fg2z5J-p.mjs → Select-ByTgXOlU.mjs} +4 -4
  217. package/dist/{Select-Fg2z5J-p.mjs.map → Select-ByTgXOlU.mjs.map} +1 -1
  218. package/dist/{Select-CowngLd7.cjs → Select-C65bfYeT.cjs} +4 -4
  219. package/dist/{Select-CowngLd7.cjs.map → Select-C65bfYeT.cjs.map} +1 -1
  220. package/dist/{Select-XN23Ui_j.d.cts → Select-NcaURrGZ.d.cts} +3 -3
  221. package/dist/Select.d.cts +1 -1
  222. package/dist/Select.d.mts +1 -1
  223. package/dist/{Spinner-DaSlM4kU.cjs → Spinner-B6bx70yR.cjs} +1 -1
  224. package/dist/{Spinner-DaSlM4kU.cjs.map → Spinner-B6bx70yR.cjs.map} +1 -1
  225. package/dist/{Spinner-D9-u_5zS.mjs → Spinner-BEPF42RW.mjs} +1 -1
  226. package/dist/{Spinner-D9-u_5zS.mjs.map → Spinner-BEPF42RW.mjs.map} +1 -1
  227. package/dist/{Stack-B5VYkPBe.d.cts → Stack-D979gYU9.d.cts} +1 -1
  228. package/dist/{Stack-Du7tLSPC.d.mts → Stack-UMhJ6F_3.d.mts} +1 -1
  229. package/dist/Stack.d.cts +1 -1
  230. package/dist/Stack.d.mts +1 -1
  231. package/dist/{Sticker-XfyoDEod.d.mts → Sticker-DjF9VJQB.d.mts} +4 -4
  232. package/dist/{Sticker-D9HjFQ6e.d.cts → Sticker-N8XZnv7M.d.cts} +3 -3
  233. package/dist/Sticker.d.cts +1 -1
  234. package/dist/Sticker.d.mts +1 -1
  235. package/dist/Tab.d.mts +1 -1
  236. package/dist/{TabBar-D8WCGYd5.cjs → TabBar-BpHMYvNb.cjs} +4 -2
  237. package/dist/TabBar-BpHMYvNb.cjs.map +1 -0
  238. package/dist/{TabBar-CAv10XAF.mjs → TabBar-ByusqAXF.mjs} +4 -2
  239. package/dist/TabBar-ByusqAXF.mjs.map +1 -0
  240. package/dist/TabBarIconButton.d.mts +1 -1
  241. package/dist/{Table-B3FJsvXP.cjs → Table-C9rjUVpn.cjs} +2 -2
  242. package/dist/{Table-B3FJsvXP.cjs.map → Table-C9rjUVpn.cjs.map} +1 -1
  243. package/dist/{Table-CGtyWI6V.mjs → Table-CNs8p8hL.mjs} +2 -2
  244. package/dist/{Table-CGtyWI6V.mjs.map → Table-CNs8p8hL.mjs.map} +1 -1
  245. package/dist/{Table-D4SMuVIR.d.cts → Table-D3nyiZt0.d.mts} +1 -1
  246. package/dist/{Table-C8D4lpSa.d.mts → Table-DJZtluW3.d.cts} +1 -1
  247. package/dist/Table.d.cts +1 -1
  248. package/dist/Table.d.mts +1 -1
  249. package/dist/{TableBody-0cd50RuX.d.mts → TableBody-BFPF07n4.d.cts} +1 -1
  250. package/dist/{TableBody-BLmn5h3y.d.cts → TableBody-DpRjZgzU.d.mts} +1 -1
  251. package/dist/TableBody.d.cts +1 -1
  252. package/dist/TableBody.d.mts +1 -1
  253. package/dist/{TableBox-CPCWzwSl.mjs → TableBox-DIJffyts.mjs} +227 -59
  254. package/dist/TableBox-DIJffyts.mjs.map +1 -0
  255. package/dist/{TableBox-D_B9atn2.cjs → TableBox-DO-yToJk.cjs} +226 -58
  256. package/dist/TableBox-DO-yToJk.cjs.map +1 -0
  257. package/dist/TableBox.d.cts +2 -2
  258. package/dist/TableBox.d.mts +2 -2
  259. package/dist/{TableBoxCell-CEvOcGYa.d.mts → TableBoxCell-D1bjYv7b.d.mts} +27 -10
  260. package/dist/{TableBoxCell-DJz423uN.d.cts → TableBoxCell-DOQ8PnAT.d.cts} +27 -10
  261. package/dist/TableBoxCell.d.cts +1 -1
  262. package/dist/TableBoxCell.d.mts +1 -1
  263. package/dist/TableBoxField.d.cts +20 -5
  264. package/dist/TableBoxField.d.mts +19 -5
  265. package/dist/{TableBoxRow-CZwVgei6.d.cts → TableBoxRow-BUK5RjRA.d.cts} +12 -3
  266. package/dist/{TableBoxRow-LyHvITwZ.d.mts → TableBoxRow-CTR14HJF.d.mts} +12 -3
  267. package/dist/TableBoxRow.d.cts +1 -1
  268. package/dist/TableBoxRow.d.mts +1 -1
  269. package/dist/{TableBoxRowActions-C8SAxrYG.d.mts → TableBoxRowActions-BoMt5d0b.d.mts} +2 -2
  270. package/dist/{TableBoxRowActions-VDAOxNDG.d.cts → TableBoxRowActions-CKgUEH38.d.cts} +2 -2
  271. package/dist/TableBoxRowActions.d.cts +1 -1
  272. package/dist/TableBoxRowActions.d.mts +1 -1
  273. package/dist/TableBoxRowContext.d.mts +5 -3
  274. package/dist/TableCell.d.cts +1 -1
  275. package/dist/TableCell.d.mts +1 -1
  276. package/dist/{TableControls-B4gpAvl7.d.mts → TableControls-BZyiqk9V.d.mts} +3 -3
  277. package/dist/{TableControls-BG0OKwjj.d.cts → TableControls-Bkd3jhC1.d.cts} +3 -3
  278. package/dist/{TableControls-B2ZsNlr6.mjs → TableControls-BkdSeQvt.mjs} +8 -8
  279. package/dist/{TableControls-B2ZsNlr6.mjs.map → TableControls-BkdSeQvt.mjs.map} +1 -1
  280. package/dist/{TableControls-B7QEAzru.cjs → TableControls-DcbnNqeK.cjs} +8 -8
  281. package/dist/{TableControls-B7QEAzru.cjs.map → TableControls-DcbnNqeK.cjs.map} +1 -1
  282. package/dist/TableControls.d.cts +1 -1
  283. package/dist/TableControls.d.mts +1 -1
  284. package/dist/{TableControlsContext-NdzzGevw.d.mts → TableControlsContext-CleTWT7z.d.mts} +2 -2
  285. package/dist/{TableControlsContext-CanIAaLW.d.cts → TableControlsContext-D6XpuRVw.d.cts} +2 -2
  286. package/dist/TableControlsContext.d.cts +1 -1
  287. package/dist/TableControlsContext.d.mts +1 -1
  288. package/dist/{TableHead-CuHNOeCj.d.mts → TableHead-CTsZNRJm.d.cts} +1 -1
  289. package/dist/{TableHead-roexW17v.d.cts → TableHead-wl78HqPT.d.mts} +1 -1
  290. package/dist/TableHead.d.cts +1 -1
  291. package/dist/TableHead.d.mts +1 -1
  292. package/dist/{TableHeaderCell-Cflho9R2.d.mts → TableHeaderCell-B2yiOw4w.d.mts} +1 -1
  293. package/dist/{TableHeaderCell-BTGuqVXy.d.cts → TableHeaderCell-UoY92mzR.d.cts} +1 -1
  294. package/dist/TableHeaderCell.d.cts +1 -1
  295. package/dist/TableHeaderCell.d.mts +1 -1
  296. package/dist/{TableLayout-BvVsuUVb.d.cts → TableLayout-GyRS-Awa.d.cts} +1 -1
  297. package/dist/{TableLayout-D9BGrjRs.d.mts → TableLayout-_TWUnffx.d.mts} +1 -1
  298. package/dist/TableLayout.d.cts +1 -1
  299. package/dist/TableLayout.d.mts +1 -1
  300. package/dist/{TableRow-BfGJSGZH.d.cts → TableRow-BVzduO4G.d.cts} +1 -1
  301. package/dist/{TableRow-CjQmDmfx.d.mts → TableRow-C-faHbkL.d.mts} +2 -2
  302. package/dist/TableRow.d.cts +1 -1
  303. package/dist/TableRow.d.mts +1 -1
  304. package/dist/TableTH.d.cts +1 -1
  305. package/dist/TableTH.d.mts +1 -1
  306. package/dist/{TableViewConfigurationDropdown-DMeFkVUa.d.mts → TableViewConfigurationDropdown-D2TM2wCv.d.mts} +2 -2
  307. package/dist/{TableViewConfigurationDropdown-BaQ1IsYM.d.cts → TableViewConfigurationDropdown-u3-prEHJ.d.cts} +2 -2
  308. package/dist/TableViewConfigurationDropdown.d.cts +1 -1
  309. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  310. package/dist/{Text-CPd0r0w2.d.mts → Text-D3FXEnG6.d.mts} +3 -3
  311. package/dist/Text.d.mts +1 -1
  312. package/dist/{TextArea-CJJlw3rV.mjs → TextArea-DIPeBLkr.mjs} +2 -2
  313. package/dist/{TextArea-CJJlw3rV.mjs.map → TextArea-DIPeBLkr.mjs.map} +1 -1
  314. package/dist/{TextArea-p3oek3Zq.cjs → TextArea-DVHi0K7M.cjs} +2 -2
  315. package/dist/{TextArea-p3oek3Zq.cjs.map → TextArea-DVHi0K7M.cjs.map} +1 -1
  316. package/dist/{TextArea-Dl9_Zizx.d.cts → TextArea-KpDoXg-5.d.cts} +2 -2
  317. package/dist/{TextArea-J1MD_8rK.d.mts → TextArea-weASn4Hq.d.mts} +2 -2
  318. package/dist/TextArea.d.cts +1 -1
  319. package/dist/TextArea.d.mts +1 -1
  320. package/dist/{TextUnderlineTooltip-D8GFsk5C.d.mts → TextUnderlineTooltip-Cep5cgEQ.d.mts} +2 -2
  321. package/dist/{TextUnderlineTooltip-BDMs4iXn.d.cts → TextUnderlineTooltip-cSMjZOuB.d.cts} +2 -2
  322. package/dist/TextUnderlineTooltip.d.cts +1 -1
  323. package/dist/TextUnderlineTooltip.d.mts +1 -1
  324. package/dist/Tile.d.cts +1 -1
  325. package/dist/Tile.d.mts +1 -1
  326. package/dist/Toast.d.cts +1 -1
  327. package/dist/Toast.d.mts +1 -1
  328. package/dist/{Toggle-CY67yh4T.d.mts → Toggle-BQCOJZjZ.d.mts} +1 -1
  329. package/dist/{Toggle-7o-n5vF6.cjs → Toggle-CTtrhzsV.cjs} +2 -2
  330. package/dist/{Toggle-7o-n5vF6.cjs.map → Toggle-CTtrhzsV.cjs.map} +1 -1
  331. package/dist/{Toggle-Dw4hisXm.d.cts → Toggle-CYQE1Nk_.d.cts} +1 -1
  332. package/dist/{Toggle-DOo0cLmI.mjs → Toggle-CfjUQlcK.mjs} +2 -2
  333. package/dist/{Toggle-DOo0cLmI.mjs.map → Toggle-CfjUQlcK.mjs.map} +1 -1
  334. package/dist/Toggle.d.cts +1 -1
  335. package/dist/Toggle.d.mts +1 -1
  336. package/dist/{Tooltip-CE1oH6Iz.d.cts → Tooltip-BhGRP9QA.d.cts} +2 -2
  337. package/dist/{Tooltip-DtWJO_kU.d.mts → Tooltip-DRgufW3i.d.mts} +2 -2
  338. package/dist/Tooltip.d.cts +1 -1
  339. package/dist/Tooltip.d.mts +1 -1
  340. package/dist/{TruncatedText-BBoWmFii.d.mts → TruncatedText-Cy8NpHzm.d.mts} +1 -1
  341. package/dist/{TruncatedText-DMpR-yaJ.d.cts → TruncatedText-D8f3AiBL.d.cts} +1 -1
  342. package/dist/components/Attribute/index.cjs +2 -2
  343. package/dist/components/Attribute/index.mjs +4 -4
  344. package/dist/components/Attribute/index.mjs.map +1 -1
  345. package/dist/components/Badge/index.cjs +1 -1
  346. package/dist/components/Badge/index.mjs +1 -1
  347. package/dist/components/Breadcrumbs/index.cjs +275 -0
  348. package/dist/components/Breadcrumbs/index.cjs.map +1 -0
  349. package/dist/components/Breadcrumbs/index.d.cts +2 -0
  350. package/dist/components/Breadcrumbs/index.d.mts +2 -0
  351. package/dist/components/Breadcrumbs/index.mjs +268 -0
  352. package/dist/components/Breadcrumbs/index.mjs.map +1 -0
  353. package/dist/components/Button/index.d.mts +2 -2
  354. package/dist/components/ButtonGroup/index.cjs +1 -1
  355. package/dist/components/ButtonGroup/index.mjs +1 -1
  356. package/dist/components/Card/index.d.cts +2 -2
  357. package/dist/components/Card/index.d.mts +2 -2
  358. package/dist/components/CardV2/index.cjs +6 -23
  359. package/dist/components/CardV2/index.cjs.map +1 -1
  360. package/dist/components/CardV2/index.d.cts +1 -1
  361. package/dist/components/CardV2/index.d.mts +1 -1
  362. package/dist/components/CardV2/index.mjs +4 -21
  363. package/dist/components/CardV2/index.mjs.map +1 -1
  364. package/dist/components/Checkbox/index.cjs +1 -1
  365. package/dist/components/Checkbox/index.d.cts +1 -1
  366. package/dist/components/Checkbox/index.d.mts +1 -1
  367. package/dist/components/Checkbox/index.mjs +1 -1
  368. package/dist/components/Combobox/index.cjs +1 -1
  369. package/dist/components/Combobox/index.d.cts +2 -2
  370. package/dist/components/Combobox/index.d.mts +2 -2
  371. package/dist/components/Combobox/index.mjs +1 -1
  372. package/dist/components/ConfigFormGroup/index.cjs +2 -2
  373. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  374. package/dist/components/DataTable/TableControls/index.cjs +1 -1
  375. package/dist/components/DataTable/TableControls/index.d.cts +5 -5
  376. package/dist/components/DataTable/TableControls/index.d.mts +5 -5
  377. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  378. package/dist/components/DataTable/index.cjs +8 -9
  379. package/dist/components/DataTable/index.cjs.map +1 -1
  380. package/dist/components/DataTable/index.mjs +8 -9
  381. package/dist/components/DataTable/index.mjs.map +1 -1
  382. package/dist/components/DataTable/types.d.cts +2 -2
  383. package/dist/components/DataTable/types.d.mts +2 -2
  384. package/dist/components/DatePicker/index.cjs +54 -23
  385. package/dist/components/DatePicker/index.cjs.map +1 -1
  386. package/dist/components/DatePicker/index.mjs +54 -23
  387. package/dist/components/DatePicker/index.mjs.map +1 -1
  388. package/dist/components/DropdownButton/index.cjs +1 -1
  389. package/dist/components/DropdownButton/index.mjs +1 -1
  390. package/dist/components/DropdownMenu/index.cjs +1 -1
  391. package/dist/components/DropdownMenu/index.d.cts +1 -1
  392. package/dist/components/DropdownMenu/index.d.mts +1 -1
  393. package/dist/components/DropdownMenu/index.mjs +1 -1
  394. package/dist/components/FormControl/index.cjs +2 -2
  395. package/dist/components/FormControl/index.d.cts +2 -2
  396. package/dist/components/FormControl/index.d.mts +2 -2
  397. package/dist/components/FormControl/index.mjs +2 -2
  398. package/dist/components/FormField/index.cjs +44 -26
  399. package/dist/components/FormField/index.cjs.map +1 -1
  400. package/dist/components/FormField/index.d.cts +3 -3
  401. package/dist/components/FormField/index.d.mts +3 -3
  402. package/dist/components/FormField/index.mjs +45 -27
  403. package/dist/components/FormField/index.mjs.map +1 -1
  404. package/dist/components/HoverCopyableField/index.cjs +1 -1
  405. package/dist/components/HoverCopyableField/index.mjs +1 -1
  406. package/dist/components/ImageTile/index.cjs +3 -3
  407. package/dist/components/ImageTile/index.mjs +3 -3
  408. package/dist/components/Input/index.cjs +1 -1
  409. package/dist/components/Input/index.d.cts +1 -1
  410. package/dist/components/Input/index.d.mts +1 -1
  411. package/dist/components/Input/index.mjs +1 -1
  412. package/dist/components/ListBox/index.cjs +1 -1
  413. package/dist/components/ListBox/index.d.cts +1 -1
  414. package/dist/components/ListBox/index.d.mts +1 -1
  415. package/dist/components/ListBox/index.mjs +1 -1
  416. package/dist/components/LoadingShimmer/index.cjs +1 -1
  417. package/dist/components/LoadingShimmer/index.mjs +1 -1
  418. package/dist/components/MaskedInput/index.cjs +1 -1
  419. package/dist/components/MaskedInput/index.mjs +1 -1
  420. package/dist/components/Menu/index.cjs +1 -1
  421. package/dist/components/Menu/index.d.cts +1 -1
  422. package/dist/components/Menu/index.d.mts +1 -1
  423. package/dist/components/Menu/index.mjs +1 -1
  424. package/dist/components/Modal/index.cjs +7 -3
  425. package/dist/components/Modal/index.cjs.map +1 -1
  426. package/dist/components/Modal/index.d.cts +2 -2
  427. package/dist/components/Modal/index.d.mts +2 -2
  428. package/dist/components/Modal/index.mjs +7 -3
  429. package/dist/components/Modal/index.mjs.map +1 -1
  430. package/dist/components/Pagination/index.cjs +1 -1
  431. package/dist/components/Pagination/index.d.cts +3 -3
  432. package/dist/components/Pagination/index.d.mts +3 -3
  433. package/dist/components/Pagination/index.mjs +1 -1
  434. package/dist/components/Pii/index.cjs +1 -1
  435. package/dist/components/Pii/index.mjs +1 -1
  436. package/dist/components/Popover/index.cjs +1 -1
  437. package/dist/components/Popover/index.mjs +1 -1
  438. package/dist/components/Radio/index.cjs +1 -1
  439. package/dist/components/Radio/index.mjs +1 -1
  440. package/dist/components/RadioGroup/index.cjs +1 -1
  441. package/dist/components/RadioGroup/index.d.cts +1 -1
  442. package/dist/components/RadioGroup/index.d.mts +1 -1
  443. package/dist/components/RadioGroup/index.mjs +1 -1
  444. package/dist/components/SegmentedControl/index.cjs +1 -1
  445. package/dist/components/SegmentedControl/index.d.cts +1 -1
  446. package/dist/components/SegmentedControl/index.d.mts +1 -1
  447. package/dist/components/SegmentedControl/index.mjs +1 -1
  448. package/dist/components/Select/index.cjs +1 -1
  449. package/dist/components/Select/index.d.cts +1 -1
  450. package/dist/components/Select/index.d.mts +1 -1
  451. package/dist/components/Select/index.mjs +1 -1
  452. package/dist/components/Spinner/index.cjs +1 -1
  453. package/dist/components/Spinner/index.mjs +1 -1
  454. package/dist/components/Stack/index.d.cts +1 -1
  455. package/dist/components/Stack/index.d.mts +1 -1
  456. package/dist/components/Sticker/index.d.cts +1 -1
  457. package/dist/components/Sticker/index.d.mts +1 -1
  458. package/dist/components/TabBar/index.cjs +1 -1
  459. package/dist/components/TabBar/index.mjs +1 -1
  460. package/dist/components/Table/index.cjs +1 -1
  461. package/dist/components/Table/index.d.cts +7 -7
  462. package/dist/components/Table/index.d.mts +7 -7
  463. package/dist/components/Table/index.mjs +1 -1
  464. package/dist/components/TableBox/index.cjs +1 -1
  465. package/dist/components/TableBox/index.d.cts +2 -2
  466. package/dist/components/TableBox/index.d.mts +2 -2
  467. package/dist/components/TableBox/index.mjs +1 -1
  468. package/dist/components/Text/index.d.mts +1 -1
  469. package/dist/components/TextArea/index.cjs +1 -1
  470. package/dist/components/TextArea/index.d.cts +1 -1
  471. package/dist/components/TextArea/index.d.mts +1 -1
  472. package/dist/components/TextArea/index.mjs +1 -1
  473. package/dist/components/Toggle/index.cjs +1 -1
  474. package/dist/components/Toggle/index.d.cts +1 -1
  475. package/dist/components/Toggle/index.d.mts +1 -1
  476. package/dist/components/Toggle/index.mjs +1 -1
  477. package/dist/components/Tooltip/index.d.cts +3 -3
  478. package/dist/components/Tooltip/index.d.mts +3 -3
  479. package/dist/{constants-D5CkrHza.d.cts → constants-DVwPpTt5.d.mts} +1 -1
  480. package/dist/{constants-CnkpDWTv.d.mts → constants-kwVsjw8O.d.cts} +1 -1
  481. package/dist/constants.d.cts +1 -1
  482. package/dist/constants.d.mts +1 -1
  483. package/dist/helpers.d.cts +1 -1
  484. package/dist/helpers.d.mts +1 -1
  485. package/dist/{index-BwWgmaXZ.d.mts → index-BPnJP0jZ.d.mts} +3 -3
  486. package/dist/{index-Bp3vEph6.d.cts → index-_tQRydn9.d.cts} +3 -3
  487. package/dist/index.d.cts +1 -1
  488. package/dist/index.d.mts +1 -1
  489. package/dist/index2.d.cts +1 -1
  490. package/dist/index2.d.mts +1 -1
  491. package/dist/{input-Bm_anD8X.d.cts → input-BkzqXwn7.d.cts} +2 -2
  492. package/dist/{input-FEaQ66an.d.mts → input-DrG6mA0V.d.mts} +3 -3
  493. package/dist/inputFields.d.cts +10 -10
  494. package/dist/inputFields.d.mts +10 -10
  495. package/dist/intersperse-Gxwgpbk8.cjs +26 -0
  496. package/dist/intersperse-Gxwgpbk8.cjs.map +1 -0
  497. package/dist/intersperse-yd3oMrQl.mjs +21 -0
  498. package/dist/intersperse-yd3oMrQl.mjs.map +1 -0
  499. package/dist/lib/PDSProvider.d.mts +1 -1
  500. package/dist/lib/TruncatedText.d.cts +1 -1
  501. package/dist/lib/TruncatedText.d.mts +1 -1
  502. package/dist/lib/TruncatedTextWithTooltip.d.cts +1 -1
  503. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  504. package/dist/lib/message.d.cts +1 -1
  505. package/dist/lib/message.d.mts +1 -1
  506. package/dist/lib/pseudoClass.d.mts +1 -1
  507. package/dist/{message-SITKO6JZ.d.mts → message-BfJ87aIU.d.mts} +1 -1
  508. package/dist/{message-CWEGi3Xg.d.cts → message-C2286H-r.d.cts} +1 -1
  509. package/dist/mixins/focus.d.mts +1 -1
  510. package/dist/mixins/hoverable.d.mts +2 -2
  511. package/dist/mixins/input.d.cts +1 -1
  512. package/dist/mixins/input.d.mts +1 -1
  513. package/dist/mixins/menuItem.d.mts +2 -2
  514. package/dist/mixins/text.d.mts +1 -1
  515. package/dist/{text-BEKhEWTa.d.mts → text-CtoDqqAO.d.mts} +1 -1
  516. package/dist/{theme-q9fNLtcA.d.mts → theme-Bx2sn3Lt.d.mts} +1 -1
  517. package/dist/theme.d.mts +1 -1
  518. package/dist/{types-BG21GgBe.d.cts → types-B34lbI2k.d.mts} +1 -1
  519. package/dist/{types-ChCqSD9N.d.mts → types-C_AUGurs.d.cts} +1 -1
  520. package/dist/{types-CmnKGG5I.d.cts → types-CuCT-YnX.d.cts} +1 -1
  521. package/dist/{types-DMjr-u_o.d.mts → types-DTak9UTv.d.mts} +1 -1
  522. package/dist/types.d.cts +1 -1
  523. package/dist/types.d.mts +1 -1
  524. package/dist/types2.d.cts +1 -1
  525. package/dist/types2.d.mts +1 -1
  526. package/dist/useColumnWidthLock.d.mts +2 -2
  527. package/dist/useDelayedInlineEditError.d.mts +12 -0
  528. package/dist/{useFormField-BpYf3CAW.cjs → useFormField-B98dmreO.cjs} +2 -2
  529. package/dist/{useFormField-BpYf3CAW.cjs.map → useFormField-B98dmreO.cjs.map} +1 -1
  530. package/dist/{useFormField-DLGEZ1kD.d.cts → useFormField-BE0rTBF1.d.mts} +2 -2
  531. package/dist/{useFormField-CVmt-ti2.d.mts → useFormField-CaIdE7JQ.d.cts} +2 -2
  532. package/dist/{useFormField-D0RTrPld.mjs → useFormField-eftOPiXj.mjs} +2 -2
  533. package/dist/{useFormField-D0RTrPld.mjs.map → useFormField-eftOPiXj.mjs.map} +1 -1
  534. package/dist/useFormField.d.cts +1 -1
  535. package/dist/useFormField.d.mts +1 -1
  536. package/dist/{useFormGroup-DQJdKaL9.cjs → useFormGroup-BE7v9eAj.cjs} +1 -1
  537. package/dist/{useFormGroup-DQJdKaL9.cjs.map → useFormGroup-BE7v9eAj.cjs.map} +1 -1
  538. package/dist/{useFormGroup-z0epBxXn.mjs → useFormGroup-BMukAMAd.mjs} +1 -1
  539. package/dist/{useFormGroup-z0epBxXn.mjs.map → useFormGroup-BMukAMAd.mjs.map} +1 -1
  540. package/dist/{useTableBoxDragAndDrop-DXqy_AMP.d.mts → useTableBoxDragAndDrop--QBq2FQh.d.cts} +1 -1
  541. package/dist/{useTableBoxDragAndDrop-hrESBhKb.d.cts → useTableBoxDragAndDrop-BTtv9PEt.d.mts} +1 -1
  542. package/dist/useTableBoxDragAndDrop.d.cts +1 -1
  543. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  544. package/dist/useTruncation.d.mts +1 -1
  545. package/dist/{utilities-C8Jf-xpi.d.cts → utilities-DqO6Sh94.d.cts} +1 -1
  546. package/dist/{utilities-DT-Hh45R.d.mts → utilities-SMbDe8oK.d.mts} +1 -1
  547. package/dist/utilities.d.cts +1 -1
  548. package/dist/utilities.d.mts +1 -1
  549. package/dist/variables/spacing.cjs +1 -1
  550. package/dist/variables/spacing.cjs.map +1 -1
  551. package/dist/variables/spacing.d.cts +1 -1
  552. package/dist/variables/spacing.d.mts +1 -1
  553. package/dist/variables/spacing.mjs +1 -1
  554. package/dist/variables/spacing.mjs.map +1 -1
  555. package/package.json +11 -2
  556. package/dist/Combobox-I44W5oX0.mjs.map +0 -1
  557. package/dist/Combobox-R3_NDBi3.cjs.map +0 -1
  558. package/dist/HoverCopyableField-DBkYvwii.mjs.map +0 -1
  559. package/dist/HoverCopyableField-DyW2iZuo.cjs.map +0 -1
  560. package/dist/ListBox-B7sbubm5.mjs.map +0 -1
  561. package/dist/Pagination-DEZFb552.cjs.map +0 -1
  562. package/dist/TabBar-CAv10XAF.mjs.map +0 -1
  563. package/dist/TabBar-D8WCGYd5.cjs.map +0 -1
  564. package/dist/TableBox-CPCWzwSl.mjs.map +0 -1
  565. package/dist/TableBox-D_B9atn2.cjs.map +0 -1
  566. /package/dist/{index-1-AkepUA.d.mts → index-B2KLYYkM.d.cts} +0 -0
  567. /package/dist/{index-BIAn8oQh.d.cts → index-B5cbLMbC2.d.cts} +0 -0
  568. /package/dist/{index-BlwcRiXv.d.cts → index-BCsiC0tv.d.cts} +0 -0
  569. /package/dist/{index-C4zERU4O.d.cts → index-BPiqSRRl.d.mts} +0 -0
  570. /package/dist/{index-CDAfh8Ew.d.cts → index-BR1oNnaF.d.cts} +0 -0
  571. /package/dist/{index-CIABef8t.d.mts → index-BTImeehL2.d.mts} +0 -0
  572. /package/dist/{index-CMuRFTR3.d.mts → index-C0NRIDsj2.d.cts} +0 -0
  573. /package/dist/{index-CP2eJYlK.d.mts → index-C3kE54DD.d.mts} +0 -0
  574. /package/dist/{index-CTBW75wG2.d.cts → index-C8k_zgEm.d.cts} +0 -0
  575. /package/dist/{index-CiBIKhMu.d.cts → index-CEqOS-7M.d.mts} +0 -0
  576. /package/dist/{index-Cii4Qb1X.d.mts → index-CROz1VSV.d.mts} +0 -0
  577. /package/dist/{index-CspKFJM1.d.cts → index-CWt1yJ75.d.cts} +0 -0
  578. /package/dist/{index-CswGToRr2.d.mts → index-CmCelmEL.d.cts} +0 -0
  579. /package/dist/{index-D4ELpJXS.d.cts → index-CmUzJ4E-2.d.cts} +0 -0
  580. /package/dist/{index-D6CnpA_r.d.cts → index-CsuikFeJ.d.mts} +0 -0
  581. /package/dist/{index-D9XihFV1.d.mts → index-CtCMUyZA.d.cts} +0 -0
  582. /package/dist/{index-DBQaKYAL2.d.cts → index-Cz6N-KeS.d.cts} +0 -0
  583. /package/dist/{index-DFKoAoY2.d.cts → index-D-BciAtf.d.cts} +0 -0
  584. /package/dist/{index-DLoAMD9J.d.cts → index-D2HUTZ-d.d.cts} +0 -0
  585. /package/dist/{index-DWfPppPU.d.mts → index-D5tSVhTd.d.mts} +0 -0
  586. /package/dist/{index-DZlqSwCF.d.mts → index-DeEmP3Jc.d.cts} +0 -0
  587. /package/dist/{index-Dflz2i1X.d.mts → index-DeVKzGce.d.mts} +0 -0
  588. /package/dist/{index-Dpmi5zcN.d.cts → index-DrZ2Dh-H.d.cts} +0 -0
  589. /package/dist/{index-DwBYcw1r.d.cts → index-DxSM7VXJ.d.cts} +0 -0
  590. /package/dist/{index-PWQavSPf.d.mts → index-FtE8MXJ_.d.mts} +0 -0
  591. /package/dist/{index-VmEFGBxN.d.cts → index-JuxZj_Qp2.d.mts} +0 -0
  592. /package/dist/{index-_1bfRgi2.d.cts → index-NKYLt_R9.d.mts} +0 -0
  593. /package/dist/{index-dC-i2r_u.d.cts → index-Oio5ygqN.d.mts} +0 -0
  594. /package/dist/{index-e6k85DKM.d.mts → index-VWno75SQ.d.mts} +0 -0
  595. /package/dist/{index-kDNN3kX_2.d.mts → index-_wQ5ClJU.d.cts} +0 -0
  596. /package/dist/{index-qCd8f7Um.d.cts → index-lQ_hGQ08.d.cts} +0 -0
  597. /package/dist/{index-uTS5iDq_.d.cts → index-zO0Ly4bS.d.cts} +0 -0
@@ -8,12 +8,12 @@ const require_Tooltip = require("./Tooltip-vylydKVv.cjs");
8
8
  const require_lib_zindex = require("./lib/zindex.cjs");
9
9
  const require_Stack = require("./Stack-BF-9YjA1.cjs");
10
10
  const require_IconButton = require("./IconButton-DNy7g5zh.cjs");
11
- const require_Menu = require("./Menu-BLbEcodU.cjs");
12
- const require_Input = require("./Input-DQS-BEym.cjs");
11
+ const require_Input = require("./Input-BDLUq-pK.cjs");
13
12
  const require_components_Input_index = require("./components/Input/index.cjs");
14
- const require_Popover = require("./Popover-jHZICnQt.cjs");
15
- const require_TabBar = require("./TabBar-D8WCGYd5.cjs");
16
- const require_Toggle = require("./Toggle-7o-n5vF6.cjs");
13
+ const require_Menu = require("./Menu-BXic-30n.cjs");
14
+ const require_Popover = require("./Popover-BAv7BujW.cjs");
15
+ const require_TabBar = require("./TabBar-BpHMYvNb.cjs");
16
+ const require_Toggle = require("./Toggle-CTtrhzsV.cjs");
17
17
  let _persona_design_tokens = require("@persona/design-tokens");
18
18
  let styled_components = require("styled-components");
19
19
  let styled_components$1 = require_chunk.__toESM(styled_components, 1);
@@ -22,9 +22,9 @@ let react = require("react");
22
22
  let react_jsx_runtime = require("react/jsx-runtime");
23
23
  let _persona_icons = require("@persona/icons");
24
24
  let _persona_icons_12px = require("@persona/icons/12px");
25
- let react_aria = require("react-aria");
26
- let lodash_fp_js = require("lodash/fp.js");
27
25
  let lodash = require("lodash");
26
+ let lodash_fp_js = require("lodash/fp.js");
27
+ let react_aria = require("react-aria");
28
28
  let fuse_js = require("fuse.js");
29
29
  fuse_js = require_chunk.__toESM(fuse_js);
30
30
  let _persona_icons_24px = require("@persona/icons/24px");
@@ -1077,4 +1077,4 @@ Object.defineProperty(exports, "useTableControls", {
1077
1077
  }
1078
1078
  });
1079
1079
 
1080
- //# sourceMappingURL=TableControls-B7QEAzru.cjs.map
1080
+ //# sourceMappingURL=TableControls-DcbnNqeK.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableControls-B7QEAzru.cjs","names":["Label","Spacing","Input","isActive","isFocused","isHovered","isNotDisabled","noop","SmallSearchIcon","SearchIcon","InputGroup","Tooltip","HStack","Spacing","Paragraph","Button","SearchIcon","FilterIcon","IconButton","Tab","MenuList","TabBar","Spacing","StyledTab","MoreIcon","Popover","Stack","Input","MenuItem","CopyIcon","RotateCcwIcon","SaveIcon","TrashIcon","LockedIcon","Button","CirclePlusIcon","HStack","FilterIcon","Stack","Spacing","DragIcon","Color","Spacing","Card","Button","SettingsIcon","Tooltip","Popover","Z_INDICES","Fuse","Label","Spacer","Paragraph","DragDropContext","Droppable","Draggable","Toggle"],"sources":["../components/DataTable/FormControlLabel/FormControlLabel.ts","../components/DataTable/SearchInput/SearchInput.tsx","../components/DataTable/TableControls/CompactBar.tsx","../components/DataTable/TableControls/utils/positioning.ts","../components/DataTable/TableControls/ControlBar.tsx","../components/DataTable/TableControls/TableControls.tsx","../components/DataTable/dnd/StyledIconDrag.tsx","../components/DataTable/dnd/utils.ts","../components/DataTable/TableControls/TableViewConfigurationDropdown.tsx","../components/DataTable/TableControls/TableControlsContext.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { Label } from 'design-system/components/Text';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nconst FormControlLabel = styled(Label).attrs(() => ({ size: 'md', weight: 'bold' }))<{\n isDisabled?: boolean;\n}>`\n margin-bottom: ${Spacing[2]};\n transition: ${TransitionDuration.Fast};\n display: inline-block;\n\n ${({ theme, isDisabled }) => css`\n color: ${isDisabled ? theme.color.text.disabled : theme.color.text.primary};\n `}\n`;\n\nexport default FormControlLabel;\n","import { noop } from 'lodash';\nimport {\n type ChangeEvent,\n type FocusEventHandler,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { SearchIcon } from '@persona/icons';\nimport { SearchIcon as SmallSearchIcon } from '@persona/icons/12px';\nimport FormControlLabel from 'design-system/components/DataTable/FormControlLabel/FormControlLabel';\nimport Input, { InputGroup } from 'design-system/components/Input';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { isActive, isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport type { InputSizes } from 'design-system/mixins/input';\n\nconst SearchBar = styled.div``;\n\ninterface StyledInputProps {\n flattenDisplay: boolean;\n}\n\nconst StyledInput = styled(Input)<StyledInputProps>`\n ${({ theme, flattenDisplay }) =>\n flattenDisplay &&\n css`\n border-width: 0px;\n\n &${isActive}, &${isFocused}, &${isHovered}&${isNotDisabled}, &${isHovered}&${isFocused} {\n border-color: ${theme.color.border.input};\n box-shadow: none;\n }\n `}\n`;\n\nexport interface OmniSearchProps {\n className?: string;\n title?: ReactNode;\n handleInput: (value: string) => void;\n id?: string;\n value: string;\n placeholder: string;\n dataTest?: string;\n autoFocus?: boolean;\n useClearIcon?: boolean;\n leftIcon?: ReactNode;\n handleOnFocus?: () => void;\n onBlur?: FocusEventHandler<HTMLInputElement>;\n disabled?: boolean;\n disabledTooltip?: string;\n flattenDisplay?: boolean;\n size?: InputSizes;\n maxLength?: number;\n}\n\nconst SearchInput = ({\n className,\n title = 'Search',\n handleInput,\n handleOnFocus = noop,\n onBlur = noop,\n id,\n value,\n placeholder,\n dataTest,\n autoFocus,\n useClearIcon = false,\n disabled = false,\n disabledTooltip,\n size = 'md',\n leftIcon = size === 'sm' ? <SmallSearchIcon /> : <SearchIcon />,\n flattenDisplay = false,\n maxLength,\n}: OmniSearchProps) => {\n // We duplicate state and track it separately here. This allows us to:\n // 1. immediately update the <input/> value\n // 2. do a debounced update of the actual state\n // We expect the callback passed to this input to be a debounced that updates\n // props.value.\n const [innerValue, setInnerValue] = useState<string>(value);\n const handleChange = useCallback(\n ({ target }: ChangeEvent<HTMLInputElement>): void => {\n setInnerValue(target.value);\n handleInput(target.value);\n },\n [handleInput, setInnerValue],\n );\n\n useEffect(() => {\n setInnerValue(value);\n }, [value]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleClear = useCallback(() => {\n setInnerValue('');\n handleInput('');\n handleOnFocus();\n inputRef.current?.focus();\n }, [handleInput, handleOnFocus, inputRef, setInnerValue]);\n\n const canClear = useClearIcon && !!innerValue;\n\n const searchBar = (\n <SearchBar className={className} data-test={dataTest}>\n {title != null && <FormControlLabel htmlFor={id}>{title}</FormControlLabel>}\n <InputGroup\n leftIcon={leftIcon}\n onClear={\n canClear\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n handleClear();\n }\n : undefined\n }\n size={size}\n >\n <StyledInput\n id={id}\n onChange={handleChange}\n placeholder={placeholder}\n value={innerValue}\n autoFocus={autoFocus}\n ref={inputRef}\n onFocus={handleOnFocus}\n onBlur={onBlur}\n disabled={disabled}\n maxLength={maxLength}\n flattenDisplay={flattenDisplay}\n />\n </InputGroup>\n </SearchBar>\n );\n\n // The disabled <input> doesn't emit hover events, but the SearchBar wrapper does, so the tooltip\n // surfaces the reason the search is unavailable without taking up layout room.\n return disabled && disabledTooltip ? (\n <Tooltip trigger={searchBar} side='top'>\n {disabledTooltip}\n </Tooltip>\n ) : (\n searchBar\n );\n};\n\nexport default SearchInput;\n","import { useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { FilterIcon, SearchIcon } from '@persona/icons';\nimport Button from 'design-system/components/Button';\nimport SearchInput from 'design-system/components/DataTable/SearchInput';\nimport { HStack } from 'design-system/components/Stack';\nimport { Paragraph } from 'design-system/components/Text';\n\nimport type { ControlBarProps } from './ControlBar';\n\nexport const DataTableCompactBar = styled(HStack)`\n border-bottom: 1px solid ${({ theme }) => theme.color.border.secondary};\n padding-bottom: ${Spacing[1]};\n`;\n\nconst CompactSearchInput = styled(SearchInput)<{ $autoExpand: boolean }>`\n width: ${({ $autoExpand }) => ($autoExpand ? '100%' : '240px')};\n margin-right: ${Spacing[1]};\n`;\n\ntype CompactBarProps = Pick<\n ControlBarProps,\n | 'title'\n | 'searchProps'\n | 'showFilters'\n | 'setShowFilters'\n | 'filtersId'\n | 'isLoading'\n | 'propertiesButton'\n | 'tableActions'\n | 'data-tour-target'\n | 'filterPanel'\n>;\n\n/**\n * Compact variant of the ControlBar.\n * Not intended to be used by itself.\n *\n * Tested using the ControlBar specs.\n *\n * @see ControlBar.tsx\n * @see ControlBar.spec.tsx\n */\nconst CompactBar: React.FC<CompactBarProps> = ({\n title,\n searchProps,\n showFilters,\n setShowFilters,\n filtersId,\n isLoading,\n propertiesButton,\n tableActions,\n 'data-tour-target': dataTourTarget,\n filterPanel,\n}) => {\n const autoExpandSearch = !title;\n const [showSearch, setShowSearch] = useState<boolean>(autoExpandSearch);\n\n return (\n <>\n <DataTableCompactBar data-tour-target={dataTourTarget} justify='space-between' align='center'>\n {title && (\n <Paragraph size='md' weight='bold' color='primary'>\n {title}\n </Paragraph>\n )}\n\n <HStack\n spacing={Spacing[1]}\n align='center'\n justify='right'\n style={autoExpandSearch ? { width: '100%' } : { marginLeft: 'auto' }}\n >\n <HStack spacing={Spacing[1]} align='center' style={{ width: '100%' }}>\n {searchProps &&\n (showSearch ? (\n <CompactSearchInput\n title={null}\n size='sm'\n $autoExpand={autoExpandSearch}\n autoFocus={!autoExpandSearch}\n onBlur={\n autoExpandSearch\n ? undefined\n : () => {\n if (!searchProps.value) {\n setShowSearch(false);\n }\n }\n }\n useClearIcon\n {...searchProps}\n />\n ) : (\n <Button\n id='table-controls__compact-search-toggle'\n variant='text'\n width='icon'\n size='sm'\n aria-label='Show search bar'\n onClick={() => setShowSearch(true)}\n >\n <SearchIcon />\n </Button>\n ))}\n\n {setShowFilters && (\n <Button\n id='table-controls__view-tab-filters'\n variant='text'\n onClick={() => setShowFilters?.(!showFilters)}\n aria-label={showFilters ? 'Hide filters' : 'Show filters'}\n aria-expanded={showFilters}\n aria-controls={filtersId}\n disabled={isLoading}\n active={showFilters}\n width='icon'\n size='sm'\n >\n <FilterIcon />\n </Button>\n )}\n\n {propertiesButton}\n </HStack>\n\n {tableActions && Array.isArray(tableActions)\n ? tableActions.map((action) => (\n <Button\n id={`table-controls__compact-action-${action.label.toLowerCase().replace(/\\s+/g, '-')}`}\n key={action.label}\n variant='basic'\n size='sm'\n width='auto'\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))\n : tableActions}\n </HStack>\n </DataTableCompactBar>\n {showFilters && filterPanel}\n </>\n );\n};\n\nexport default CompactBar;\n","/**\n * Check if a child rect is contained within a parent rect.\n * @param parent - The parent rect.\n * @param child - The child rect.\n * @returns True if the child rect is contained within the parent rect, false otherwise.\n */\nexport const rectContainsRect = (parent: DOMRect, child: DOMRect) => {\n return (\n child.top >= parent.top &&\n child.bottom <= parent.bottom &&\n child.left >= parent.left &&\n child.right <= parent.right\n );\n};\n","import {\n type CSSProperties,\n type FC,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport {\n CirclePlusIcon,\n CopyIcon,\n FilterIcon,\n MoreIcon,\n RotateCcwIcon,\n SaveIcon,\n TrashIcon,\n} from '@persona/icons';\nimport { LockedIcon } from '@persona/icons/12px';\nimport Button, { IconButton } from 'design-system/components/Button';\nimport SearchInput, { type OmniSearchProps } from 'design-system/components/DataTable/SearchInput';\nimport Input from 'design-system/components/Input';\nimport { MenuItem, MenuList } from 'design-system/components/Menu';\nimport Popover from 'design-system/components/Popover';\nimport Stack, { HStack } from 'design-system/components/Stack';\nimport TabBar, { StyledTab, Tab } from 'design-system/components/TabBar';\n\nimport CompactBar from './CompactBar';\nimport { rectContainsRect } from './utils/positioning';\n\nconst TAB_ID_PREFIX = 'table-controls__view-tab_';\nconst OVERFLOW_TAB_ID_PREFIX = 'table-controls__view-tab-overflow_';\n\nfunction enterProxiesClick(e: React.KeyboardEvent<HTMLDivElement>) {\n if (e.key === 'Enter') {\n e.target.dispatchEvent(new Event('click', { bubbles: true }));\n }\n}\n\ninterface TableViewConfig {\n id: string;\n name: string;\n}\n\ninterface EventHandlers {\n /**\n * Called when the duplicate view button is clicked. If not provided, the duplicate view button will not be displayed.\n *\n * @returns Promise<{ id: string }> - The id of the newly created view\n */\n onDuplicateView?: (viewId: string) => Promise<{ id: string } | void>;\n /**\n * Called when the delete view button is clicked. If not provided, the delete view button will not be displayed.\n */\n onDeleteView?: (viewId: string) => Promise<void>;\n /**\n * Called when a view tab is selected\n */\n onSelectView?: (viewId: string | null) => void;\n /**\n * Called when the reset view button is clicked. If not provided, the reset view button will not be displayed.\n */\n onResetCurrentView?: () => void;\n /**\n * Called when the save view button is clicked. If not provided, the save view button will not be displayed.\n */\n onSaveView?: () => Promise<void>;\n /**\n * Called when the add view button is clicked. If not provided, the add view button will not be displayed.\n *\n * @returns Promise<{ id: string }> - The id of the newly created view\n */\n onAddView?: () => Promise<{ id: string } | void>;\n /**\n * Called when the view name is changed. If not provided, the view name will not be editable.\n */\n onViewNameChange?: (viewId: string, name: string) => void;\n /**\n * Called when the selection is cleared\n */\n onClearSelection?: () => void;\n}\n\nexport interface ControlBarProps extends EventHandlers {\n /**\n * Preset views that are not editable by the user.\n */\n presetViews?: TableViewConfig[];\n /**\n * Table view tabs\n */\n views?: TableViewConfig[];\n /**\n * Current table view id\n */\n currentView?: string | null;\n /**\n * Whether the filters have been changed and can be saved\n */\n isViewDirty?: boolean;\n /**\n * Whether the user has permission to edit views\n */\n canEditViews?: boolean;\n /**\n * Whether to show filters\n */\n showFilters?: boolean;\n /**\n * Called when the filters are toggled\n */\n setShowFilters?: (show: boolean) => void;\n /**\n * Search props\n */\n searchProps?: Omit<OmniSearchProps, 'size'>;\n /**\n * The id of the filters container\n */\n filtersId?: string;\n /**\n * Properties button\n */\n propertiesButton?: React.ReactNode;\n /**\n * Table actions\n */\n tableActions?:\n | React.ReactNode\n | { label: string; onClick: React.MouseEventHandler<HTMLButtonElement> }[];\n /**\n * Whether the table is loading\n */\n isLoading?: boolean;\n /**\n * Whether to show the views bar\n */\n showViews?: boolean;\n /**\n * The ids of the selected rows\n */\n selectedRows?: string[];\n /**\n * Bulk actions to display when there are selected rows.\n */\n bulkActions?: (\n | {\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n onClick: (selectedRows: string[], clearSelection: () => void) => void | Promise<void>;\n }\n | {\n 'aria-label': string;\n icon: React.ReactNode;\n disabled?: boolean;\n onClick: (selectedRows: string[], clearSelection: () => void) => void | Promise<void>;\n }\n )[];\n /**\n * The title of the table\n */\n title?: string;\n /**\n * The data-tour-target of the table\n */\n 'data-tour-target'?: string;\n /**\n * Whether to use compact spacing and styling.\n * The compact variant does not support views.\n */\n compact?: boolean;\n\n /** Use this to handle errors that occur in the control bar.\n * This can be helpful if you want to trigger a toast message.\n */\n onError?: (error: Error) => void;\n\n /**\n * Content to render in the filter panel area below the controls row.\n * Rendered when showFilters is true.\n */\n filterPanel?: React.ReactNode;\n}\n\nconst AddViewButton = styled(IconButton)`\n color: ${({ theme }) => theme.color.text.secondary};\n`;\n\nconst LockedTab = styled(Tab)`\n svg {\n height: 12px;\n width: 12px;\n }\n`;\n\nconst OverflowMenuList = styled(MenuList)`\n max-height: 300px;\n overflow: auto;\n`;\n\nconst ExpandedSearchInput = styled(SearchInput)`\n flex-basis: 440px;\n flex-grow: 1;\n`;\n\nconst ViewsBar = styled(TabBar)<{ $isAddingView: boolean }>`\n ${AddViewButton} {\n /* Shows button when view is in progress of being added */\n opacity: ${({ $isAddingView }) => ($isAddingView ? 1 : 0)};\n }\n\n &:hover,\n &:hover:focus,\n &:focus-within {\n ${AddViewButton} {\n opacity: 1;\n }\n }\n`;\n\nconst TabOverflowContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n position: absolute;\n height: 32px;\n`;\n\n/**\n * Base props for the SavedViewTab component\n * These are the props that must be passed to TabOverflow so it can render a SavedViewTab\n */\ninterface BaseSavedViewTabProps extends EventHandlers {\n canEditViews: boolean;\n isViewDirty: boolean;\n showTabContextMenu: boolean;\n setShowTabContextMenu: (show: boolean) => void;\n handleNameChange: (view: TableViewConfig, newName: string) => void;\n}\n\nconst SavedViewTab = ({\n view,\n selected,\n tabIdPrefix = TAB_ID_PREFIX,\n canEditViews,\n handleNameChange,\n onDuplicateView,\n onDeleteView,\n onSelectView,\n onResetCurrentView,\n onSaveView,\n isViewDirty,\n showTabContextMenu,\n setShowTabContextMenu,\n className,\n ...rest\n}: BaseSavedViewTabProps & {\n tabIdPrefix?: string;\n view: TableViewConfig;\n selected: boolean;\n className?: string;\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const tab = (\n <StyledTab\n id={`${tabIdPrefix}${view.id}`}\n selected={selected}\n aria-selected={selected}\n role='tab'\n onClick={!selected ? () => onSelectView?.(view.id) : undefined}\n suffixIcon={selected && canEditViews ? <MoreIcon /> : undefined}\n className={className}\n {...rest}\n >\n {view.name}\n </StyledTab>\n );\n\n if (canEditViews && selected) {\n return (\n <Popover\n trigger={tab}\n open={showTabContextMenu}\n onOpenChange={(open) => {\n if (selected) {\n setShowTabContextMenu(open);\n }\n if (!open && inputRef.current) {\n handleNameChange?.(view, inputRef.current.value);\n }\n }}\n contentProps={{ align: 'start', padding: Spacing[2] }}\n >\n <Stack spacing={Spacing[3]}>\n <Input\n defaultValue={view.name}\n onBlur={(e) => handleNameChange?.(view, e.currentTarget.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleNameChange?.(view, e.currentTarget.value);\n }\n }}\n disabled={!handleNameChange}\n ref={inputRef}\n />\n <MenuList padding={Spacing[0]}>\n {onDuplicateView && (\n <MenuItem\n id='table-controls__view__menu-duplicate'\n prefixIcon={<CopyIcon />}\n onClick={async () => {\n const newTableView = await onDuplicateView(view.id);\n if (newTableView) {\n const { id } = newTableView;\n if (view.id !== id) {\n onSelectView?.(id);\n setShowTabContextMenu(true);\n }\n }\n }}\n onKeyDown={enterProxiesClick}\n >\n Duplicate\n </MenuItem>\n )}\n {canEditViews && onResetCurrentView && (\n <MenuItem\n id='table-controls__view__menu-reset'\n prefixIcon={<RotateCcwIcon />}\n onClick={onResetCurrentView}\n onKeyDown={enterProxiesClick}\n >\n Reset\n </MenuItem>\n )}\n {canEditViews && onSaveView && (\n <MenuItem\n id='table-controls__view__menu-save'\n prefixIcon={<SaveIcon />}\n disabled={!isViewDirty}\n onClick={() => {\n void onSaveView();\n setShowTabContextMenu(false);\n }}\n onKeyDown={enterProxiesClick}\n >\n Save\n </MenuItem>\n )}\n {onDeleteView && (\n <MenuItem\n id='table-controls__view__menu-delete'\n prefixIcon={<TrashIcon />}\n onClick={async () => {\n await onDeleteView(view.id);\n setShowTabContextMenu(false);\n }}\n onKeyDown={enterProxiesClick}\n >\n Delete\n </MenuItem>\n )}\n </MenuList>\n </Stack>\n </Popover>\n );\n }\n\n return tab;\n};\n\ninterface LockedViewTabProps {\n id: string;\n /**\n * Whether the tab is selected. If true, the tab will not be clickable.\n */\n selected?: boolean;\n /**\n * Called when the tab is clicked. If the tab is selected, the click will be ignored.\n */\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n children: React.ReactNode;\n}\n\n/**\n * A tab that is locked and does not support editing or actions.\n */\nconst LockedViewTab = ({ id, selected, onClick, children, ...props }: LockedViewTabProps) => {\n return (\n <LockedTab\n id={id}\n selected={selected}\n onClick={selected ? undefined : onClick}\n suffixIcon={<LockedIcon />}\n {...props}\n >\n {children}\n </LockedTab>\n );\n};\n\nconst OverflowSavedViewTab = styled(SavedViewTab)`\n margin-left: ${Spacing[2]};\n`;\n\nconst TabOverflow = forwardRef<\n HTMLDivElement,\n BaseSavedViewTabProps & {\n hiddenViews: TableViewConfig[];\n currentView: string | null | undefined;\n handleAddView: (() => void) | null;\n lastVisibleViewElement: HTMLElement | null;\n }\n>(function TabOverflow(\n {\n hiddenViews,\n currentView: currentViewId,\n handleAddView,\n onSelectView,\n canEditViews,\n lastVisibleViewElement,\n ...rest\n },\n ref,\n) {\n const [filter, setFilter] = useState('');\n const [openPopover, setOpenPopover] = useState<boolean>(false);\n\n const currentView = useMemo(() => {\n return hiddenViews.find((view) => view.id === currentViewId);\n }, [currentViewId, hiddenViews]);\n\n const filteredViews = useMemo(\n () =>\n hiddenViews.filter(\n (view) =>\n view.name.toLowerCase().includes(filter.toLowerCase()) && view.id !== currentView?.id,\n ),\n [hiddenViews, filter, currentView],\n );\n\n const overflowContainerStyle = useMemo<CSSProperties | undefined>(() => {\n if (!lastVisibleViewElement) {\n return undefined;\n }\n\n return { left: lastVisibleViewElement.offsetLeft + lastVisibleViewElement.offsetWidth + 8 };\n }, [lastVisibleViewElement]);\n\n return (\n <TabOverflowContainer ref={ref} style={overflowContainerStyle}>\n {currentView && (\n <OverflowSavedViewTab\n view={currentView}\n canEditViews={canEditViews}\n selected={true}\n tabIdPrefix={OVERFLOW_TAB_ID_PREFIX}\n {...rest}\n />\n )}\n {/* Edge case when the current view is the first hidden view */}\n {hiddenViews.length === 1 && currentView && hiddenViews[0].id !== currentView.id ? null : (\n <Popover\n trigger={\n <Button variant='basic' size='sm' width='auto'>\n {currentView ? hiddenViews.length - 1 : hiddenViews.length} more&hellip;\n </Button>\n }\n contentProps={{ align: 'start', padding: Spacing[2] }}\n open={openPopover}\n onOpenChange={(open) => {\n if (!open) {\n setFilter('');\n }\n setOpenPopover(open);\n }}\n >\n <Input\n value={filter}\n onChange={(e) => setFilter(e.target.value)}\n placeholder='Search for a view...'\n />\n <OverflowMenuList padding={Spacing[0]}>\n {filteredViews.map((view) => {\n return (\n <MenuItem\n key={view.id}\n id={`${OVERFLOW_TAB_ID_PREFIX}${view.id}`}\n onClick={() => {\n onSelectView?.(view.id);\n setOpenPopover(false);\n }}\n onKeyDown={enterProxiesClick}\n >\n {view.name}\n </MenuItem>\n );\n })}\n </OverflowMenuList>\n </Popover>\n )}\n {canEditViews && handleAddView && (\n <AddViewButton\n id={`${OVERFLOW_TAB_ID_PREFIX}overflow-new`}\n onClick={handleAddView}\n size='md'\n aria-label='Add new view'\n >\n <CirclePlusIcon />\n </AddViewButton>\n )}\n </TabOverflowContainer>\n );\n});\n\n/**\n * Force the add button to be visible when the product tour is active\n */\nconst ProductTourStyles = createGlobalStyle`\n body:has(#react-joyride-portal) {\n [data-tour-target='saved-views-add-button'] {\n opacity: 1;\n }\n }\n`;\n\nconst ControlBar: FC<ControlBarProps> = ({\n presetViews,\n currentView,\n onSelectView,\n views,\n onAddView,\n onDuplicateView,\n onDeleteView,\n onViewNameChange,\n onSaveView,\n isViewDirty,\n canEditViews,\n showFilters,\n setShowFilters,\n searchProps,\n filtersId,\n propertiesButton,\n tableActions,\n isLoading,\n showViews,\n selectedRows = [],\n bulkActions,\n onResetCurrentView,\n onClearSelection,\n title,\n 'data-tour-target': dataTourTarget,\n compact,\n onError,\n filterPanel,\n}) => {\n const tabListRef = useRef<HTMLDivElement>(null);\n const tabOverflowRef = useRef<HTMLDivElement>(null);\n // The same could be done to get the visible views to only render them but that causes other jittery problems\n const [hiddenViews, setHiddenViews] = useState<TableViewConfig[]>([]);\n const [showTabContextMenu, setShowTabContextMenu] = useState<boolean>(false);\n const [isAddingView, setIsAddingView] = useState<boolean>(false);\n const [lastVisibleViewElement, setLastVisibleViewElement] = useState<HTMLElement | null>(null);\n const [tabOverflowWidth, setTabOverflowWidth] = useState<number | null>(null);\n\n const onResize = useCallback(() => {\n if (!tabListRef.current) {\n return;\n }\n\n const containerRect = tabListRef.current.getBoundingClientRect();\n const tabListContainer = tabListRef.current;\n const tabElements = Array.from(\n tabListContainer.querySelectorAll('[data-tab-view]'),\n ) as HTMLElement[];\n\n // Skip if the last element is not overflowing\n if (\n tabElements.length === 0 ||\n rectContainsRect(containerRect, tabElements[tabElements.length - 1].getBoundingClientRect())\n ) {\n setHiddenViews([]);\n return;\n }\n\n // Find first element that overflows the container\n const firstHiddenIndex = tabElements.findIndex(\n (el) => !rectContainsRect(containerRect, el.getBoundingClientRect()),\n );\n\n if (firstHiddenIndex === -1) {\n setLastVisibleViewElement(null);\n } else {\n const lastVisibleViewElement = tabElements[firstHiddenIndex - 1];\n if (lastVisibleViewElement) {\n setLastVisibleViewElement(lastVisibleViewElement);\n }\n }\n\n const newHiddenViews = firstHiddenIndex === -1 ? [] : views?.slice(firstHiddenIndex);\n setHiddenViews(newHiddenViews || []);\n\n const tabOverflowWidth = tabOverflowRef.current?.getBoundingClientRect().width;\n if (tabOverflowWidth) {\n setTabOverflowWidth(tabOverflowWidth);\n }\n }, [setHiddenViews, views]);\n\n // Set up ResizeObserver to watch for container size changes\n useLayoutEffect(() => {\n if (!showViews || !tabListRef.current) {\n return;\n }\n\n const resizeObserver = new ResizeObserver(() => {\n onResize();\n });\n\n resizeObserver.observe(tabListRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [onResize, showViews]);\n\n // Update hidden tabs when views change. This needs to fire when we initially load the page, then again when the views load, and also when a view is added or removed\n useLayoutEffect(() => {\n if (showViews) {\n onResize();\n }\n }, [onResize, showViews, views]);\n\n const currentViewHidden = useMemo(() => {\n if (currentView) {\n return !!hiddenViews.find((view) => view.id === currentView);\n }\n return false;\n }, [currentView, hiddenViews]);\n\n const handleAddView = async () => {\n try {\n setIsAddingView(true);\n if (onAddView) {\n const view = await onAddView();\n\n // Occurs if there is an error adding the view\n if (!view || !view.id) {\n return;\n }\n\n if (currentView !== view.id) {\n onSelectView?.(view.id);\n }\n\n setShowTabContextMenu(true);\n }\n } catch {\n onError?.(new Error('Error adding view'));\n } finally {\n setIsAddingView(false);\n }\n };\n\n const handleNameChange = (view: TableViewConfig, newName: string) => {\n if (canEditViews && view.name !== newName) {\n onViewNameChange?.(view.id, newName);\n }\n };\n\n // Compact variant with simplified layout\n if (compact) {\n // todo(joseph): add bulk actions\n return (\n <CompactBar\n data-tour-target={dataTourTarget}\n title={title}\n searchProps={searchProps}\n showFilters={showFilters}\n setShowFilters={setShowFilters}\n filtersId={filtersId}\n isLoading={isLoading}\n propertiesButton={propertiesButton}\n tableActions={tableActions}\n filterPanel={filterPanel}\n />\n );\n }\n\n // Generate persistent bulk action buttons\n const bulkActionButtons = bulkActions?.map((action, index) => {\n const key = 'label' in action ? action.label : `action-${index}`;\n const isDisabled = selectedRows.length === 0 || action.disabled === true;\n const selectedCount = selectedRows.length;\n\n const clearSelection = () => {\n onClearSelection?.();\n };\n\n if ('icon' in action && 'aria-label' in action) {\n // Icon-only action\n return (\n <IconButton\n key={key}\n size='sm'\n aria-label={action['aria-label']}\n onClick={async () => {\n await action.onClick(selectedRows, clearSelection);\n }}\n disabled={isDisabled}\n >\n {action.icon}\n </IconButton>\n );\n }\n\n // Append count to label if rows are selected\n const displayLabel =\n 'label' in action && selectedCount > 0\n ? `${action.label} (${selectedCount})`\n : 'label' in action\n ? action.label\n : '';\n\n return (\n <Button\n id={`table-controls__view-tab-bulk-action-${index}`}\n variant='basic'\n size='sm'\n width='auto'\n key={key}\n onClick={async () => {\n await action.onClick(selectedRows, clearSelection);\n }}\n disabled={isDisabled}\n >\n {displayLabel}\n </Button>\n );\n });\n\n const showViewsBar =\n title || showViews || (canEditViews && onSaveView) || tableActions || bulkActions;\n\n return (\n <>\n <ProductTourStyles />\n {showViewsBar && (\n <ViewsBar\n ref={tabListRef}\n title={title}\n maxTabChars={25}\n $isAddingView={isAddingView}\n data-tour-target={dataTourTarget}\n actions={\n <HStack\n spacing={Spacing[3]}\n align='center'\n style={tabOverflowWidth ? { paddingLeft: `${tabOverflowWidth + 16}px` } : undefined}\n >\n {canEditViews && onSaveView && (\n <Button\n id='table-controls__view-tab-save'\n onClick={onSaveView}\n aria-label='Save current view'\n disabled={!isViewDirty || isLoading}\n size='sm'\n variant='basic'\n width='auto'\n data-tour-target='saved-views-save-button'\n >\n Save view\n </Button>\n )}\n {bulkActionButtons}\n {tableActions}\n </HStack>\n }\n >\n {showViews && (\n <>\n <LockedViewTab\n id={`${TAB_ID_PREFIX}default`}\n selected={!currentView}\n onClick={() => onSelectView?.(null)}\n data-tour-target='saved-views-default-view'\n >\n Default view\n </LockedViewTab>\n {presetViews?.map((view) => {\n const selected = view.id === currentView;\n return (\n <LockedViewTab\n key={view.id}\n id={`${TAB_ID_PREFIX}preset-${view.id}`}\n selected={selected}\n onClick={() => onSelectView?.(view.id)}\n >\n {view.name}\n </LockedViewTab>\n );\n })}\n {views?.map((view) => {\n return (\n <SavedViewTab\n key={view.id}\n view={view}\n canEditViews={canEditViews ?? false}\n handleNameChange={handleNameChange}\n onDuplicateView={onDuplicateView}\n onDeleteView={onDeleteView}\n onSelectView={onSelectView}\n onResetCurrentView={onResetCurrentView}\n onSaveView={onSaveView}\n isViewDirty={isViewDirty ?? false}\n selected={view.id === currentView}\n showTabContextMenu={showTabContextMenu && !currentViewHidden}\n setShowTabContextMenu={setShowTabContextMenu}\n data-tab-view\n />\n );\n })}\n {canEditViews && onAddView && (\n <AddViewButton\n id='table-controls__view-tab-new'\n size='md'\n onClick={handleAddView}\n aria-label='Add new view'\n data-tour-target='saved-views-add-button'\n >\n <CirclePlusIcon />\n </AddViewButton>\n )}\n {hiddenViews.length > 0 && (\n <TabOverflow\n ref={tabOverflowRef}\n hiddenViews={hiddenViews}\n currentView={currentView}\n onSelectView={onSelectView}\n canEditViews={canEditViews ?? false}\n handleAddView={onAddView ? handleAddView : null}\n handleNameChange={handleNameChange}\n onDuplicateView={onDuplicateView}\n onDeleteView={onDeleteView}\n onResetCurrentView={onResetCurrentView}\n onSaveView={onSaveView}\n isViewDirty={isViewDirty ?? false}\n showTabContextMenu={showTabContextMenu && currentViewHidden}\n setShowTabContextMenu={setShowTabContextMenu}\n lastVisibleViewElement={lastVisibleViewElement}\n />\n )}\n </>\n )}\n </ViewsBar>\n )}\n <HStack align='center' spacing={Spacing[2]} justify='right'>\n {searchProps && (\n <ExpandedSearchInput title={null} useClearIcon {...searchProps} size='md' />\n )}\n {setShowFilters && (\n <Button\n id='table-controls__view-tab-filters'\n variant='basic'\n onClick={() => setShowFilters?.(!showFilters)}\n aria-label={showFilters ? 'Hide filters' : 'Show filters'}\n aria-expanded={showFilters}\n aria-controls={filtersId}\n disabled={isLoading}\n active={showFilters}\n width='icon'\n size='md'\n data-tour-target='table-filters-toggle-button'\n >\n <FilterIcon />\n </Button>\n )}\n {propertiesButton}\n </HStack>\n {showFilters && filterPanel}\n </>\n );\n};\n\nexport default ControlBar;\n","import { type ReactNode, useMemo, useState } from 'react';\nimport { useId } from 'react-aria';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport {\n ControlBar,\n TableViewConfigurationDropdown,\n type ControlBarProps,\n} from 'design-system/components/DataTable/TableControls';\nimport Stack from 'design-system/components/Stack';\n\nimport type { AttributeColumn } from './types';\n\nexport interface TableControlsProps extends ControlBarProps {\n defaultShowFilters?: boolean;\n className?: string;\n tableActions?: ReactNode;\n propertiesButton?: ReactNode;\n isLoading?: boolean;\n\n /**\n * Whether to show filters always. If true, the filter row toggle button will not be rendered.\n */\n showFiltersAlways?: boolean;\n\n /**\n * Whether to display table views tab bar\n */\n showViews?: boolean;\n\n /**\n * Whether to use compact spacing and styling.\n * The compact variant does not support views.\n */\n compact?: boolean;\n\n /**\n * Column configuration options for the table.\n * If provided, displays a settings button to configure visible columns.\n */\n columnConfigurationProps?: {\n columnConfiguration: AttributeColumn[];\n attributeOptions: AttributeColumn[];\n updateColumnConfiguration: (newConfiguration: AttributeColumn[]) => void;\n };\n}\n\nconst TableControls = ({\n filterPanel,\n searchProps,\n defaultShowFilters,\n showFilters: controlledShowFilters,\n setShowFilters: controlledSetShowFilters,\n className,\n tableActions,\n propertiesButton,\n isLoading,\n showViews,\n canEditViews,\n onSelectView,\n views,\n currentView,\n onAddView,\n onViewNameChange,\n onDuplicateView,\n onDeleteView,\n onSaveView,\n isViewDirty,\n selectedRows,\n bulkActions,\n onClearSelection,\n title,\n presetViews,\n compact,\n columnConfigurationProps,\n showFiltersAlways = false,\n onError,\n 'data-tour-target': dataTourTarget,\n}: TableControlsProps) => {\n const filtersId = useId();\n const [internalShowFilters, internalSetShowFilters] = useState(defaultShowFilters ?? false);\n const showFilters = controlledShowFilters != null ? controlledShowFilters : internalShowFilters;\n const setShowFilters =\n controlledSetShowFilters != null ? controlledSetShowFilters : internalSetShowFilters;\n\n // Create enhanced properties button that includes column configuration if provided\n const enhancedPropertiesButton = useMemo(() => {\n if (!columnConfigurationProps && !propertiesButton) {\n return undefined;\n }\n\n const elements = [];\n\n // Add original properties button if provided\n if (propertiesButton) {\n elements.push(propertiesButton);\n }\n\n // Add column configuration dropdown if provided\n if (columnConfigurationProps) {\n elements.push(\n <TableViewConfigurationDropdown\n key='column-config'\n disabled={false}\n {...columnConfigurationProps}\n />,\n );\n }\n\n // Return single element or fragment with multiple elements\n if (elements.length === 1) {\n return elements[0];\n }\n\n return <StyledEnhancedPropertiesButton>{elements}</StyledEnhancedPropertiesButton>;\n }, [columnConfigurationProps, propertiesButton]);\n\n return (\n <Container className={className}>\n <ControlBar\n showViews={compact ? false : showViews}\n views={compact ? undefined : views}\n onSelectView={compact ? undefined : onSelectView}\n currentView={compact ? undefined : currentView}\n onAddView={compact ? undefined : onAddView}\n onDeleteView={compact ? undefined : onDeleteView}\n onDuplicateView={compact ? undefined : onDuplicateView}\n onViewNameChange={compact ? undefined : onViewNameChange}\n onSaveView={compact ? undefined : onSaveView}\n isViewDirty={isViewDirty}\n canEditViews={compact ? false : canEditViews}\n showFilters={showFilters}\n setShowFilters={filterPanel != null && !showFiltersAlways ? setShowFilters : undefined}\n filtersId={filtersId}\n searchProps={searchProps}\n propertiesButton={enhancedPropertiesButton}\n tableActions={tableActions}\n isLoading={isLoading}\n selectedRows={selectedRows}\n bulkActions={bulkActions}\n onClearSelection={onClearSelection}\n title={title}\n data-tour-target={dataTourTarget}\n presetViews={compact ? undefined : presetViews}\n compact={compact}\n onError={onError}\n filterPanel={filterPanel}\n />\n </Container>\n );\n};\n\nexport default TableControls;\n\nconst Container = styled(Stack)`\n margin-bottom: ${Spacing[2]};\n`;\n\nconst StyledEnhancedPropertiesButton = styled.div`\n display: flex;\n gap: ${Spacing[1]};\n`;\n","import styled, { css } from 'styled-components';\n\nimport { Color } from '@persona/design-tokens';\nimport { DragIcon } from '@persona/icons/24px';\n\n// StyledIconDrag is an IconDrag which changes color as you hover over it\nexport const StyledIconDrag = styled(DragIcon)<{\n $active: boolean;\n $hover?: boolean;\n $shouldHide?: boolean;\n $horizontal?: boolean;\n}>`\n display: ${({ $shouldHide = false }) => ($shouldHide ? 'none' : 'inline')};\n\n ${({ $horizontal = false }) =>\n $horizontal\n ? css`\n transform: rotate(90deg);\n `\n : ''}\n\n ${({ $active = false, $hover = false }) =>\n $active\n ? css`\n cursor: grabbing;\n opacity: 1;\n `\n : $hover\n ? css`\n cursor: grab;\n opacity: 1;\n `\n : css`\n cursor: normal;\n opacity: 0.4;\n `}\n\n transition: opacity 0.2s ease-in-out;\n\n path {\n stroke: ${Color.CoreSlate1000};\n stroke-width: 1px;\n }\n`;\n","/**\n * reorder returns a reordered version of the inputed list by swapping the element\n * at startIndex with the one at endIndex\n */\nexport function reorder<A>(list: A[], startIndex: number, endIndex: number): A[] {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n}\n","import {\n DragDropContext,\n Draggable,\n Droppable,\n type DropResult,\n type ResponderProvided,\n} from '@hello-pangea/dnd';\nimport Fuse from 'fuse.js';\nimport { union } from 'lodash/fp';\nimport { type ComponentProps, forwardRef, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { SettingsIcon } from '@persona/icons';\nimport Button from 'design-system/components/Button';\nimport Card from 'design-system/components/Card';\nimport { StyledIconDrag } from 'design-system/components/DataTable/dnd/StyledIconDrag';\nimport { reorder } from 'design-system/components/DataTable/dnd/utils';\nimport SearchInput from 'design-system/components/DataTable/SearchInput';\nimport Popover from 'design-system/components/Popover';\nimport Spacer from 'design-system/components/Spacer';\nimport { Label, Paragraph } from 'design-system/components/Text';\nimport Toggle from 'design-system/components/Toggle';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { Z_INDICES } from 'design-system/lib/zindex';\n\nimport type { AttributeColumn } from './types';\n\nconst DndSection = styled('div')`\n max-height: 400px;\n\n overflow: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst DndItemWrapper = styled('div')`\n background: white;\n width: 100%;\n border-bottom: 1px solid ${({ theme }) => theme.color.border.secondary};\n padding: ${Spacing[2]} ${Spacing[2]};\n\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: left;\n`;\n\nconst SuffixContainer = styled('div')`\n padding-left: ${Spacing[2]};\n margin-left: auto;\n align-self: center;\n`;\n\nconst SearchContainer = styled.div`\n display: flex;\n`;\n\nconst StyledSearchInput = styled(SearchInput)`\n width: 100%;\n`;\n\nconst PopoverCard = styled(Card)`\n width: 300px;\n padding: ${Spacing[4]};\n`;\n\nconst TriggerIconButton = forwardRef<HTMLButtonElement, ComponentProps<typeof Button>>(\n function TriggerIconButton({ disabled, ...elemProps }, ref) {\n return (\n <Button\n disabled={disabled}\n width='icon'\n variant='basic'\n size='md'\n {...elemProps}\n ref={ref}\n data-tour-target='table-properties-button'\n aria-label='Table Properties'\n >\n <SettingsIcon />\n </Button>\n );\n },\n);\n\nconst TooltipButtonWrapper = styled('div')`\n display: inline-block;\n`;\n\nexport interface TableViewConfigurationDropdownProps extends TableViewConfigurationProps {\n disabled: boolean;\n disabledTooltipMessage?: string;\n size?: 'sm' | 'md';\n variant?: 'basic' | 'text';\n}\n\nconst TableViewConfigurationDropdown = ({\n disabled = false,\n disabledTooltipMessage = 'Your role does not have permission to configure the view.',\n size = 'md',\n variant = 'basic',\n ...props\n}: TableViewConfigurationDropdownProps) => {\n return disabled ? (\n <Tooltip\n trigger={\n // NB: this wrapping div is needed to properly display the tooltip. The library we're using, floating-ui\n // doesn't support displaying tooltips on disabled buttons.\n <TooltipButtonWrapper>\n <TriggerIconButton disabled={true} size={size} variant={variant} />\n </TooltipButtonWrapper>\n }\n >\n {disabledTooltipMessage}\n </Tooltip>\n ) : (\n <Popover>\n <Popover.Trigger asChild>\n <TriggerIconButton disabled={false} size={size} variant={variant} />\n </Popover.Trigger>\n <Popover.Content\n style={{ zIndex: Z_INDICES.dropdown }}\n sideOffset={8}\n side='bottom'\n align='end'\n >\n <PopoverCard elevated>\n <TableViewConfiguration {...props} />\n </PopoverCard>\n </Popover.Content>\n </Popover>\n );\n};\n\nexport interface TableViewConfigurationProps {\n columnConfiguration: AttributeColumn[];\n attributeOptions: AttributeColumn[];\n updateColumnConfiguration: (newConfiguration: AttributeColumn[]) => void;\n getColumnDisabled?: (columnId: string, shownColumnIds: string[]) => boolean;\n}\n\nexport const TableViewConfiguration = ({\n columnConfiguration,\n attributeOptions,\n updateColumnConfiguration,\n getColumnDisabled,\n}: TableViewConfigurationProps) => {\n const [searchTerm, setSearchTerm] = useState<string>('');\n\n const fuse = useMemo(() => {\n const fuseOptions = {\n shouldSort: false,\n threshold: 0.4,\n location: 0,\n distance: 100,\n minMatchCharLength: 1,\n keys: [{ name: 'label', weight: 1.0 }],\n };\n return new Fuse(attributeOptions, fuseOptions);\n }, [attributeOptions]);\n\n // NB: we do this to make sure that attributes that exist in the column configuration but NOT the standardized options still show up in the menu.\n // Options are deduped.\n const allOptions = useMemo(\n () => union(attributeOptions, columnConfiguration),\n [attributeOptions, columnConfiguration],\n );\n\n const filteredSearchOptions =\n searchTerm === '' ? allOptions : fuse.search(searchTerm).map(({ item }) => item);\n\n const hiddenAttributes = useMemo(() => {\n return filteredSearchOptions.filter((attribute) => {\n const columnConfigurationKeys = columnConfiguration.map((c) => c.key);\n return !columnConfigurationKeys.includes(attribute.key);\n });\n }, [columnConfiguration, filteredSearchOptions]);\n\n const filteredShownAttributes = useMemo(() => {\n return columnConfiguration.filter((column) =>\n filteredSearchOptions.map((o) => o.key).includes(column.key),\n );\n }, [columnConfiguration, filteredSearchOptions]);\n\n const handleDragEnd = (result: DropResult, _provided: ResponderProvided) => {\n const { destination, source } = result;\n if (\n !destination ||\n (destination.droppableId === source.droppableId && destination.index === source.index)\n ) {\n return;\n }\n\n const reorderedColumns = reorder(columnConfiguration, source.index, destination.index);\n updateColumnConfiguration(reorderedColumns);\n };\n\n const generateShownAttributesToggle = (column: AttributeColumn) => () => {\n const updatedAttributes = columnConfiguration.filter((a) => a.key !== column.key);\n updateColumnConfiguration(updatedAttributes);\n };\n\n const generateHiddenAttributesToggle = (column: AttributeColumn) => () => {\n const updatedAttributes = columnConfiguration.concat(column);\n updateColumnConfiguration(updatedAttributes);\n };\n\n const shownColumnIds = useMemo(() => {\n return columnConfiguration.map((c) => c.key);\n }, [columnConfiguration]);\n\n const shownDndItemProps: AttributeDndProps[] = filteredShownAttributes.map((column, index) => {\n const isDisabledByDefault = columnConfiguration.length === 1;\n const isDisabledByCustom = getColumnDisabled?.(column.key, shownColumnIds) ?? false;\n const shouldDisableDragForColumn =\n isDisabledByCustom && index === filteredShownAttributes.length - 1;\n const result: AttributeDndProps = {\n column: column,\n index: index,\n isDisabled: isDisabledByDefault || isDisabledByCustom,\n isToggled: true,\n shouldDisableDrag: shouldDisableDragForColumn,\n handleToggle: generateShownAttributesToggle(column),\n };\n return result;\n });\n\n const hiddenDndItemProps: AttributeDndProps[] = hiddenAttributes.map((column, index) => {\n const result: AttributeDndProps = {\n column: column,\n index: index,\n isToggled: false,\n shouldDisableDrag: true,\n handleToggle: generateHiddenAttributesToggle(column),\n };\n return result;\n });\n\n return (\n <div>\n <Label size='lg' weight='bold'>\n Configure columns\n </Label>\n <Spacer height={2} />\n <SearchContainer>\n <StyledSearchInput\n title={null}\n value={searchTerm}\n handleInput={setSearchTerm}\n size='md'\n placeholder='Search by item...'\n dataTest='checklist-item-panel-item-table__search'\n />\n </SearchContainer>\n <Spacer height={2} />\n {shownDndItemProps.length > 0 || hiddenDndItemProps.length > 0 ? (\n <DndSection>\n {shownDndItemProps.length > 0 && (\n <div>\n <Paragraph>Shown attributes</Paragraph>\n {/* Issue with @hello-pangea/dnd and transformed parent elements: https://github.com/hello-pangea/dnd/blob/main/docs/guides/reparenting.md\n We have to use the renderClone API to get the dragging working correctly. This has to do with one of the parent elements being a Popover. */}\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable\n droppableId='cases-view__configure-shown-columns'\n renderClone={(provided, _snapshot, rubric) => {\n return (\n <div\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n ref={provided.innerRef}\n >\n <AttributeDnd {...shownDndItemProps[rubric.source.index]} />\n </div>\n );\n }}\n >\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {shownDndItemProps.map((props, idx) => {\n return (\n <Draggable\n key={`${props.column.key}`}\n draggableId={props.column.key}\n index={idx}\n isDragDisabled={props.shouldDisableDrag}\n >\n {(provided) => {\n return (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <AttributeDnd {...props} />\n </div>\n );\n }}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n </div>\n )}\n <Spacer height={2} />\n {hiddenDndItemProps.length > 0 && (\n <div>\n <Paragraph>Hidden attributes</Paragraph>\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable\n droppableId='cases-view__configure-hidden-columns'\n renderClone={(provided, _snapshot, rubric) => {\n return (\n <div\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n ref={provided.innerRef}\n >\n <AttributeDnd {...hiddenDndItemProps[rubric.source.index]} />\n </div>\n );\n }}\n >\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {hiddenDndItemProps.map((props, idx) => {\n return (\n <Draggable\n key={`${props.column.key}`}\n draggableId={props.column.key}\n index={idx}\n isDragDisabled={props.shouldDisableDrag}\n >\n {(provided) => {\n return (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <AttributeDnd {...props} />\n </div>\n );\n }}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n </div>\n )}\n </DndSection>\n ) : (\n <div>\n <Paragraph>No matching attributes</Paragraph>\n </div>\n )}\n </div>\n );\n};\n\nconst OverflowText = styled('div')`\n max-width: 160px;\n flex-wrap: wrap;\n display: flex;\n`;\n\ninterface AttributeDndProps {\n column: AttributeColumn;\n index: number;\n isDisabled?: boolean;\n isToggled: boolean;\n shouldDisableDrag: boolean;\n handleToggle: () => void;\n}\n\nconst AttributeDnd = ({\n column,\n index,\n isDisabled = false,\n isToggled,\n shouldDisableDrag,\n handleToggle,\n}: AttributeDndProps) => {\n return (\n <DndItemWrapper key={`${column.key}-${index}`}>\n <StyledIconDrag $active $shouldHide={shouldDisableDrag} />\n <OverflowText>\n <Paragraph color='primary' size='sm'>\n {column.label}\n </Paragraph>\n </OverflowText>\n <SuffixContainer>\n <Toggle\n value={isToggled}\n disabled={isDisabled}\n onChange={handleToggle}\n aria-label={isToggled ? `Hide ${column.label}` : `Show ${column.label}`}\n />\n </SuffixContainer>\n </DndItemWrapper>\n );\n};\n\nexport default TableViewConfigurationDropdown;\n","import { type ReactNode, createElement, createContext, useContext } from 'react';\n\nimport type { BaseActiveFilter, BaseFilterConfig } from './types';\n\nexport interface TableControlsContextProps<\n TFilter extends BaseFilterConfig = BaseFilterConfig,\n TActiveFilter extends BaseActiveFilter<TFilter> = BaseActiveFilter<TFilter>,\n> {\n filters: TFilter[];\n activeFilters: TActiveFilter[];\n setActiveFilters: (filters: TActiveFilter[]) => void;\n}\n\nconst TableControlsContext = createContext<TableControlsContextProps>({\n filters: [],\n activeFilters: [],\n setActiveFilters: () => {},\n});\n\nexport function useTableControls<\n TFilter extends BaseFilterConfig = BaseFilterConfig,\n TActiveFilter extends BaseActiveFilter<TFilter> = BaseActiveFilter<TFilter>,\n>(): TableControlsContextProps<TFilter, TActiveFilter> {\n return useContext(TableControlsContext) as unknown as TableControlsContextProps<\n TFilter,\n TActiveFilter\n >;\n}\n\nexport function TableControlsProvider<\n TFilter extends BaseFilterConfig = BaseFilterConfig,\n TActiveFilter extends BaseActiveFilter<TFilter> = BaseActiveFilter<TFilter>,\n>({\n children,\n ...value\n}: TableControlsContextProps<TFilter, TActiveFilter> & { children: ReactNode }) {\n return createElement(\n TableControlsContext.Provider,\n { value: value as unknown as TableControlsContextProps },\n children,\n );\n}\n\nexport default TableControlsContext;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,mBAAmB,CAAA,GAAA,oBAAA,SAAOA,aAAAA,MAAM,CAAC,aAAa;CAAE,MAAM;CAAM,QAAQ;CAAQ,EAAE;mBAGjEC,uBAAAA,QAAQ,GAAG;wBACU;;;KAGnC,EAAE,OAAO,iBAAiB,oBAAA,GAAG;aACrB,aAAa,MAAM,MAAM,KAAK,WAAW,MAAM,MAAM,KAAK,QAAQ;IAC3E;;;;ACKJ,MAAM,YAAY,kBAAA,QAAO,GAAG;AAM5B,MAAM,cAAc,CAAA,GAAA,kBAAA,SAAOC,+BAAAA,QAAM;KAC5B,EAAE,OAAO,qBACV,kBACA,kBAAA,GAAG;;;SAGEC,wBAAAA,SAAS,KAAKC,wBAAAA,UAAU,KAAKC,wBAAAA,UAAU,GAAGC,wBAAAA,cAAc,KAAKD,wBAAAA,UAAU,GAAGD,wBAAAA,UAAU;wBACrE,MAAM,MAAM,OAAO,MAAM;;;MAG3C;;AAuBN,MAAM,eAAe,EACnB,WACA,QAAQ,UACR,aACA,gBAAgBG,OAAAA,MAChB,SAASA,OAAAA,MACT,IACA,OACA,aACA,UACA,WACA,eAAe,OACf,WAAW,OACX,iBACA,OAAO,MACP,WAAW,SAAS,OAAO,iBAAA,GAAA,kBAAA,KAACC,oBAAAA,YAAD,EAAmB,CAAA,GAAG,iBAAA,GAAA,kBAAA,KAACC,eAAAA,YAAD,EAAc,CAAA,EAC/D,iBAAiB,OACjB,gBACqB;CAMrB,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAAkC,MAAM;CAC3D,MAAM,gBAAA,GAAA,MAAA,cACH,EAAE,aAAkD;AACnD,gBAAc,OAAO,MAAM;AAC3B,cAAY,OAAO,MAAM;IAE3B,CAAC,aAAa,cAAc,CAC7B;AAED,EAAA,GAAA,MAAA,iBAAgB;AACd,gBAAc,MAAM;IACnB,CAAC,MAAM,CAAC;CAEX,MAAM,YAAA,GAAA,MAAA,QAAoC,KAAK;CAE/C,MAAM,eAAA,GAAA,MAAA,mBAAgC;AACpC,gBAAc,GAAG;AACjB,cAAY,GAAG;AACf,iBAAe;AACf,WAAS,SAAS,OAAO;IACxB;EAAC;EAAa;EAAe;EAAU;EAAc,CAAC;CAIzD,MAAM,YACJ,iBAAA,GAAA,kBAAA,MAAC,WAAD;EAAsB;EAAW,aAAW;YAA5C,CACG,SAAS,QAAQ,iBAAA,GAAA,kBAAA,KAAC,kBAAD;GAAkB,SAAS;aAAK;GAAyB,CAAA,EAC3E,iBAAA,GAAA,kBAAA,KAACC,cAAAA,YAAD;GACY;GACV,SAPW,gBAAgB,CAAC,CAAC,cAStB,MAAM;AACL,MAAE,gBAAgB;AAClB,MAAE,iBAAiB;AACnB,iBAAa;OAEf,KAAA;GAEA;aAEN,iBAAA,GAAA,kBAAA,KAAC,aAAD;IACM;IACJ,UAAU;IACG;IACb,OAAO;IACI;IACX,KAAK;IACL,SAAS;IACD;IACE;IACC;IACK;IAChB,CAAA;GACS,CAAA,CACH;;AAKd,QAAO,YAAY,kBACjB,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD;EAAS,SAAS;EAAW,MAAK;YAC/B;EACO,CAAA,GAEV;;;;ACvIJ,MAAa,sBAAsB,CAAA,GAAA,kBAAA,SAAOC,cAAAA,OAAO;8BACnB,EAAE,YAAY,MAAM,MAAM,OAAO,UAAU;oBACrDC,uBAAAA,QAAQ,GAAG;;AAG/B,MAAM,qBAAqB,CAAA,GAAA,kBAAA,SAAO,YAAY;YAClC,EAAE,kBAAmB,cAAc,SAAS,QAAS;kBAC/CA,uBAAAA,QAAQ,GAAG;;;;;;;;;;;AA0B7B,MAAM,cAAyC,EAC7C,OACA,aACA,aACA,gBACA,WACA,WACA,kBACA,cACA,oBAAoB,gBACpB,kBACI;CACJ,MAAM,mBAAmB,CAAC;CAC1B,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAAmC,iBAAiB;AAEvE,QACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,MAAC,qBAAD;EAAqB,oBAAkB;EAAgB,SAAQ;EAAgB,OAAM;YAArF,CACG,SACC,iBAAA,GAAA,kBAAA,KAACC,aAAAA,WAAD;GAAW,MAAK;GAAK,QAAO;GAAO,OAAM;aACtC;GACS,CAAA,EAGd,iBAAA,GAAA,kBAAA,MAACF,cAAAA,QAAD;GACE,SAASC,uBAAAA,QAAQ;GACjB,OAAM;GACN,SAAQ;GACR,OAAO,mBAAmB,EAAE,OAAO,QAAQ,GAAG,EAAE,YAAY,QAAQ;aAJtE,CAME,iBAAA,GAAA,kBAAA,MAACD,cAAAA,QAAD;IAAQ,SAASC,uBAAAA,QAAQ;IAAI,OAAM;IAAS,OAAO,EAAE,OAAO,QAAQ;cAApE;KACG,gBACE,aACC,iBAAA,GAAA,kBAAA,KAAC,oBAAD;MACE,OAAO;MACP,MAAK;MACL,aAAa;MACb,WAAW,CAAC;MACZ,QACE,mBACI,KAAA,UACM;AACJ,WAAI,CAAC,YAAY,MACf,eAAc,MAAM;;MAI9B,cAAA;MACA,GAAI;MACJ,CAAA,GAEF,iBAAA,GAAA,kBAAA,KAACE,mBAAAA,QAAD;MACE,IAAG;MACH,SAAQ;MACR,OAAM;MACN,MAAK;MACL,cAAW;MACX,eAAe,cAAc,KAAK;gBAElC,iBAAA,GAAA,kBAAA,KAACC,eAAAA,YAAD,EAAc,CAAA;MACP,CAAA;KAGZ,kBACC,iBAAA,GAAA,kBAAA,KAACD,mBAAAA,QAAD;MACE,IAAG;MACH,SAAQ;MACR,eAAe,iBAAiB,CAAC,YAAY;MAC7C,cAAY,cAAc,iBAAiB;MAC3C,iBAAe;MACf,iBAAe;MACf,UAAU;MACV,QAAQ;MACR,OAAM;MACN,MAAK;gBAEL,iBAAA,GAAA,kBAAA,KAACE,eAAAA,YAAD,EAAc,CAAA;MACP,CAAA;KAGV;KACM;OAER,gBAAgB,MAAM,QAAQ,aAAa,GACxC,aAAa,KAAK,WAChB,iBAAA,GAAA,kBAAA,KAACF,mBAAAA,QAAD;IACE,IAAI,kCAAkC,OAAO,MAAM,aAAa,CAAC,QAAQ,QAAQ,IAAI;IAErF,SAAQ;IACR,MAAK;IACL,OAAM;IACN,SAAS,OAAO;cAEf,OAAO;IACD,EAPF,OAAO,MAOL,CACT,GACF,aACG;KACW;KACrB,eAAe,YACf,EAAA,CAAA;;;;;;;;;;AC3IP,MAAa,oBAAoB,QAAiB,UAAmB;AACnE,QACE,MAAM,OAAO,OAAO,OACpB,MAAM,UAAU,OAAO,UACvB,MAAM,QAAQ,OAAO,QACrB,MAAM,SAAS,OAAO;;;;ACuB1B,MAAM,gBAAgB;AACtB,MAAM,yBAAyB;AAE/B,SAAS,kBAAkB,GAAwC;AACjE,KAAI,EAAE,QAAQ,QACZ,GAAE,OAAO,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,MAAM,CAAC,CAAC;;AAsJjE,MAAM,gBAAgB,CAAA,GAAA,kBAAA,SAAOG,mBAAAA,WAAW;YAC5B,EAAE,YAAY,MAAM,MAAM,KAAK,UAAU;;AAGrD,MAAM,YAAY,CAAA,GAAA,kBAAA,SAAOC,eAAAA,IAAI;;;;;;AAO7B,MAAM,mBAAmB,CAAA,GAAA,kBAAA,SAAOC,aAAAA,SAAS;;;;AAKzC,MAAM,sBAAsB,CAAA,GAAA,kBAAA,SAAO,YAAY;;;;AAK/C,MAAM,WAAW,CAAA,GAAA,kBAAA,SAAOC,eAAAA,OAAO;IAC3B,cAAc;;gBAEF,EAAE,oBAAqB,gBAAgB,IAAI,EAAG;;;;;;MAMxD,cAAc;;;;;AAMpB,MAAM,uBAAuB,kBAAA,QAAO,GAAG;;;SAG9BC,uBAAAA,QAAQ,GAAG;;;;AAiBpB,MAAM,gBAAgB,EACpB,MACA,UACA,cAAc,eACd,cACA,kBACA,iBACA,cACA,cACA,oBACA,YACA,aACA,oBACA,uBACA,WACA,GAAG,WAMC;CACJ,MAAM,YAAA,GAAA,MAAA,QAAoC,KAAK;CAE/C,MAAM,MACJ,iBAAA,GAAA,kBAAA,KAACC,eAAAA,WAAD;EACE,IAAI,GAAG,cAAc,KAAK;EAChB;EACV,iBAAe;EACf,MAAK;EACL,SAAS,CAAC,iBAAiB,eAAe,KAAK,GAAG,GAAG,KAAA;EACrD,YAAY,YAAY,eAAe,iBAAA,GAAA,kBAAA,KAACC,eAAAA,UAAD,EAAY,CAAA,GAAG,KAAA;EAC3C;EACX,GAAI;YAEH,KAAK;EACI,CAAA;AAGd,KAAI,gBAAgB,SAClB,QACE,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,iBAAD;EACE,SAAS;EACT,MAAM;EACN,eAAe,SAAS;AACtB,OAAI,SACF,uBAAsB,KAAK;AAE7B,OAAI,CAAC,QAAQ,SAAS,QACpB,oBAAmB,MAAM,SAAS,QAAQ,MAAM;;EAGpD,cAAc;GAAE,OAAO;GAAS,SAASH,uBAAAA,QAAQ;GAAI;YAErD,iBAAA,GAAA,kBAAA,MAACI,cAAAA,OAAD;GAAO,SAASJ,uBAAAA,QAAQ;aAAxB,CACE,iBAAA,GAAA,kBAAA,KAACK,+BAAAA,SAAD;IACE,cAAc,KAAK;IACnB,SAAS,MAAM,mBAAmB,MAAM,EAAE,cAAc,MAAM;IAC9D,YAAY,MAAM;AAChB,SAAI,EAAE,QAAQ,QACZ,oBAAmB,MAAM,EAAE,cAAc,MAAM;;IAGnD,UAAU,CAAC;IACX,KAAK;IACL,CAAA,EACF,iBAAA,GAAA,kBAAA,MAACP,aAAAA,UAAD;IAAU,SAASE,uBAAAA,QAAQ;cAA3B;KACG,mBACC,iBAAA,GAAA,kBAAA,KAACM,aAAAA,UAAD;MACE,IAAG;MACH,YAAY,iBAAA,GAAA,kBAAA,KAACC,eAAAA,UAAD,EAAY,CAAA;MACxB,SAAS,YAAY;OACnB,MAAM,eAAe,MAAM,gBAAgB,KAAK,GAAG;AACnD,WAAI,cAAc;QAChB,MAAM,EAAE,OAAO;AACf,YAAI,KAAK,OAAO,IAAI;AAClB,wBAAe,GAAG;AAClB,+BAAsB,KAAK;;;;MAIjC,WAAW;gBACZ;MAEU,CAAA;KAEZ,gBAAgB,sBACf,iBAAA,GAAA,kBAAA,KAACD,aAAAA,UAAD;MACE,IAAG;MACH,YAAY,iBAAA,GAAA,kBAAA,KAACE,eAAAA,eAAD,EAAiB,CAAA;MAC7B,SAAS;MACT,WAAW;gBACZ;MAEU,CAAA;KAEZ,gBAAgB,cACf,iBAAA,GAAA,kBAAA,KAACF,aAAAA,UAAD;MACE,IAAG;MACH,YAAY,iBAAA,GAAA,kBAAA,KAACG,eAAAA,UAAD,EAAY,CAAA;MACxB,UAAU,CAAC;MACX,eAAe;AACR,mBAAY;AACjB,6BAAsB,MAAM;;MAE9B,WAAW;gBACZ;MAEU,CAAA;KAEZ,gBACC,iBAAA,GAAA,kBAAA,KAACH,aAAAA,UAAD;MACE,IAAG;MACH,YAAY,iBAAA,GAAA,kBAAA,KAACI,eAAAA,WAAD,EAAa,CAAA;MACzB,SAAS,YAAY;AACnB,aAAM,aAAa,KAAK,GAAG;AAC3B,6BAAsB,MAAM;;MAE9B,WAAW;gBACZ;MAEU,CAAA;KAEJ;MACL;;EACA,CAAA;AAId,QAAO;;;;;AAmBT,MAAM,iBAAiB,EAAE,IAAI,UAAU,SAAS,UAAU,GAAG,YAAgC;AAC3F,QACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EACM;EACM;EACV,SAAS,WAAW,KAAA,IAAY;EAChC,YAAY,iBAAA,GAAA,kBAAA,KAACC,oBAAAA,YAAD,EAAc,CAAA;EAC1B,GAAI;EAEH;EACS,CAAA;;AAIhB,MAAM,uBAAuB,CAAA,GAAA,kBAAA,SAAO,aAAa;iBAChCX,uBAAAA,QAAQ,GAAG;;AAG5B,MAAM,eAAA,GAAA,MAAA,YAQJ,SAAS,YACT,EACE,aACA,aAAa,eACb,eACA,cACA,cACA,wBACA,GAAG,QAEL,KACA;CACA,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,UAAsB,GAAG;CACxC,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAAoC,MAAM;CAE9D,MAAM,eAAA,GAAA,MAAA,eAA4B;AAChC,SAAO,YAAY,MAAM,SAAS,KAAK,OAAO,cAAc;IAC3D,CAAC,eAAe,YAAY,CAAC;CAEhC,MAAM,iBAAA,GAAA,MAAA,eAEF,YAAY,QACT,SACC,KAAK,KAAK,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,IAAI,KAAK,OAAO,aAAa,GACtF,EACH;EAAC;EAAa;EAAQ;EAAY,CACnC;AAUD,QACE,iBAAA,GAAA,kBAAA,MAAC,sBAAD;EAA2B;EAAK,QAAA,GAAA,MAAA,eATsC;AACtE,OAAI,CAAC,uBACH;AAGF,UAAO,EAAE,MAAM,uBAAuB,aAAa,uBAAuB,cAAc,GAAG;KAC1F,CAAC,uBAAuB,CAGoC;YAA7D;GACG,eACC,iBAAA,GAAA,kBAAA,KAAC,sBAAD;IACE,MAAM;IACQ;IACd,UAAU;IACV,aAAa;IACb,GAAI;IACJ,CAAA;GAGH,YAAY,WAAW,KAAK,eAAe,YAAY,GAAG,OAAO,YAAY,KAAK,OACjF,iBAAA,GAAA,kBAAA,MAACG,gBAAAA,iBAAD;IACE,SACE,iBAAA,GAAA,kBAAA,MAACS,mBAAAA,QAAD;KAAQ,SAAQ;KAAQ,MAAK;KAAK,OAAM;eAAxC,CACG,cAAc,YAAY,SAAS,IAAI,YAAY,QAAO,SACpD;;IAEX,cAAc;KAAE,OAAO;KAAS,SAASZ,uBAAAA,QAAQ;KAAI;IACrD,MAAM;IACN,eAAe,SAAS;AACtB,SAAI,CAAC,KACH,WAAU,GAAG;AAEf,oBAAe,KAAK;;cAZxB,CAeE,iBAAA,GAAA,kBAAA,KAACK,+BAAAA,SAAD;KACE,OAAO;KACP,WAAW,MAAM,UAAU,EAAE,OAAO,MAAM;KAC1C,aAAY;KACZ,CAAA,EACF,iBAAA,GAAA,kBAAA,KAAC,kBAAD;KAAkB,SAASL,uBAAAA,QAAQ;eAChC,cAAc,KAAK,SAAS;AAC3B,aACE,iBAAA,GAAA,kBAAA,KAACM,aAAAA,UAAD;OAEE,IAAI,GAAG,yBAAyB,KAAK;OACrC,eAAe;AACb,uBAAe,KAAK,GAAG;AACvB,uBAAe,MAAM;;OAEvB,WAAW;iBAEV,KAAK;OACG,EATJ,KAAK,GASD;OAEb;KACe,CAAA,CACX;;GAEX,gBAAgB,iBACf,iBAAA,GAAA,kBAAA,KAAC,eAAD;IACE,IAAI,GAAG,uBAAuB;IAC9B,SAAS;IACT,MAAK;IACL,cAAW;cAEX,iBAAA,GAAA,kBAAA,KAACO,eAAAA,gBAAD,EAAkB,CAAA;IACJ,CAAA;GAEG;;EAEzB;;;;AAKF,MAAM,oBAAoB,kBAAA,iBAAiB;;;;;;;AAQ3C,MAAM,cAAmC,EACvC,aACA,aACA,cACA,OACA,WACA,iBACA,cACA,kBACA,YACA,aACA,cACA,aACA,gBACA,aACA,WACA,kBACA,cACA,WACA,WACA,eAAe,EAAE,EACjB,aACA,oBACA,kBACA,OACA,oBAAoB,gBACpB,SACA,SACA,kBACI;CACJ,MAAM,cAAA,GAAA,MAAA,QAAoC,KAAK;CAC/C,MAAM,kBAAA,GAAA,MAAA,QAAwC,KAAK;CAEnD,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAA8C,EAAE,CAAC;CACrE,MAAM,CAAC,oBAAoB,0BAAA,GAAA,MAAA,UAA2C,MAAM;CAC5E,MAAM,CAAC,cAAc,oBAAA,GAAA,MAAA,UAAqC,MAAM;CAChE,MAAM,CAAC,wBAAwB,8BAAA,GAAA,MAAA,UAA0D,KAAK;CAC9F,MAAM,CAAC,kBAAkB,wBAAA,GAAA,MAAA,UAA+C,KAAK;CAE7E,MAAM,YAAA,GAAA,MAAA,mBAA6B;AACjC,MAAI,CAAC,WAAW,QACd;EAGF,MAAM,gBAAgB,WAAW,QAAQ,uBAAuB;EAChE,MAAM,mBAAmB,WAAW;EACpC,MAAM,cAAc,MAAM,KACxB,iBAAiB,iBAAiB,kBAAkB,CACrD;AAGD,MACE,YAAY,WAAW,KACvB,iBAAiB,eAAe,YAAY,YAAY,SAAS,GAAG,uBAAuB,CAAC,EAC5F;AACA,kBAAe,EAAE,CAAC;AAClB;;EAIF,MAAM,mBAAmB,YAAY,WAClC,OAAO,CAAC,iBAAiB,eAAe,GAAG,uBAAuB,CAAC,CACrE;AAED,MAAI,qBAAqB,GACvB,2BAA0B,KAAK;OAC1B;GACL,MAAM,yBAAyB,YAAY,mBAAmB;AAC9D,OAAI,uBACF,2BAA0B,uBAAuB;;AAKrD,kBADuB,qBAAqB,KAAK,EAAE,GAAG,OAAO,MAAM,iBAAiB,KACnD,EAAE,CAAC;EAEpC,MAAM,mBAAmB,eAAe,SAAS,uBAAuB,CAAC;AACzE,MAAI,iBACF,qBAAoB,iBAAiB;IAEtC,CAAC,gBAAgB,MAAM,CAAC;AAG3B,EAAA,GAAA,MAAA,uBAAsB;AACpB,MAAI,CAAC,aAAa,CAAC,WAAW,QAC5B;EAGF,MAAM,iBAAiB,IAAI,qBAAqB;AAC9C,aAAU;IACV;AAEF,iBAAe,QAAQ,WAAW,QAAQ;AAE1C,eAAa;AACX,kBAAe,YAAY;;IAE5B,CAAC,UAAU,UAAU,CAAC;AAGzB,EAAA,GAAA,MAAA,uBAAsB;AACpB,MAAI,UACF,WAAU;IAEX;EAAC;EAAU;EAAW;EAAM,CAAC;CAEhC,MAAM,qBAAA,GAAA,MAAA,eAAkC;AACtC,MAAI,YACF,QAAO,CAAC,CAAC,YAAY,MAAM,SAAS,KAAK,OAAO,YAAY;AAE9D,SAAO;IACN,CAAC,aAAa,YAAY,CAAC;CAE9B,MAAM,gBAAgB,YAAY;AAChC,MAAI;AACF,mBAAgB,KAAK;AACrB,OAAI,WAAW;IACb,MAAM,OAAO,MAAM,WAAW;AAG9B,QAAI,CAAC,QAAQ,CAAC,KAAK,GACjB;AAGF,QAAI,gBAAgB,KAAK,GACvB,gBAAe,KAAK,GAAG;AAGzB,0BAAsB,KAAK;;UAEvB;AACN,6BAAU,IAAI,MAAM,oBAAoB,CAAC;YACjC;AACR,mBAAgB,MAAM;;;CAI1B,MAAM,oBAAoB,MAAuB,YAAoB;AACnE,MAAI,gBAAgB,KAAK,SAAS,QAChC,oBAAmB,KAAK,IAAI,QAAQ;;AAKxC,KAAI,QAEF,QACE,iBAAA,GAAA,kBAAA,KAAC,YAAD;EACE,oBAAkB;EACX;EACM;EACA;EACG;EACL;EACA;EACO;EACJ;EACD;EACb,CAAA;CAKN,MAAM,oBAAoB,aAAa,KAAK,QAAQ,UAAU;EAC5D,MAAM,MAAM,WAAW,SAAS,OAAO,QAAQ,UAAU;EACzD,MAAM,aAAa,aAAa,WAAW,KAAK,OAAO,aAAa;EACpE,MAAM,gBAAgB,aAAa;EAEnC,MAAM,uBAAuB;AAC3B,uBAAoB;;AAGtB,MAAI,UAAU,UAAU,gBAAgB,OAEtC,QACE,iBAAA,GAAA,kBAAA,KAACjB,mBAAAA,YAAD;GAEE,MAAK;GACL,cAAY,OAAO;GACnB,SAAS,YAAY;AACnB,UAAM,OAAO,QAAQ,cAAc,eAAe;;GAEpD,UAAU;aAET,OAAO;GACG,EATN,IASM;EAKjB,MAAM,eACJ,WAAW,UAAU,gBAAgB,IACjC,GAAG,OAAO,MAAM,IAAI,cAAc,KAClC,WAAW,SACT,OAAO,QACP;AAER,SACE,iBAAA,GAAA,kBAAA,KAACgB,mBAAAA,QAAD;GACE,IAAI,wCAAwC;GAC5C,SAAQ;GACR,MAAK;GACL,OAAM;GAEN,SAAS,YAAY;AACnB,UAAM,OAAO,QAAQ,cAAc,eAAe;;GAEpD,UAAU;aAET;GACM,EAPF,IAOE;GAEX;AAKF,QACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAAC,mBAAD,EAAqB,CAAA;GAJvB,SAAS,aAAc,gBAAgB,cAAe,gBAAgB,gBAMlE,iBAAA,GAAA,kBAAA,KAAC,UAAD;GACE,KAAK;GACE;GACP,aAAa;GACb,eAAe;GACf,oBAAkB;GAClB,SACE,iBAAA,GAAA,kBAAA,MAACE,cAAAA,QAAD;IACE,SAASd,uBAAAA,QAAQ;IACjB,OAAM;IACN,OAAO,mBAAmB,EAAE,aAAa,GAAG,mBAAmB,GAAG,KAAK,GAAG,KAAA;cAH5E;KAKG,gBAAgB,cACf,iBAAA,GAAA,kBAAA,KAACY,mBAAAA,QAAD;MACE,IAAG;MACH,SAAS;MACT,cAAW;MACX,UAAU,CAAC,eAAe;MAC1B,MAAK;MACL,SAAQ;MACR,OAAM;MACN,oBAAiB;gBAClB;MAEQ,CAAA;KAEV;KACA;KACM;;aAGV,aACC,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;IACE,iBAAA,GAAA,kBAAA,KAAC,eAAD;KACE,IAAI,GAAG,cAAc;KACrB,UAAU,CAAC;KACX,eAAe,eAAe,KAAK;KACnC,oBAAiB;eAClB;KAEe,CAAA;IACf,aAAa,KAAK,SAAS;KAC1B,MAAM,WAAW,KAAK,OAAO;AAC7B,YACE,iBAAA,GAAA,kBAAA,KAAC,eAAD;MAEE,IAAI,GAAG,cAAc,SAAS,KAAK;MACzB;MACV,eAAe,eAAe,KAAK,GAAG;gBAErC,KAAK;MACQ,EANT,KAAK,GAMI;MAElB;IACD,OAAO,KAAK,SAAS;AACpB,YACE,iBAAA,GAAA,kBAAA,KAAC,cAAD;MAEQ;MACN,cAAc,gBAAgB;MACZ;MACD;MACH;MACA;MACM;MACR;MACZ,aAAa,eAAe;MAC5B,UAAU,KAAK,OAAO;MACtB,oBAAoB,sBAAsB,CAAC;MACpB;MACvB,iBAAA;MACA,EAdK,KAAK,GAcV;MAEJ;IACD,gBAAgB,aACf,iBAAA,GAAA,kBAAA,KAAC,eAAD;KACE,IAAG;KACH,MAAK;KACL,SAAS;KACT,cAAW;KACX,oBAAiB;eAEjB,iBAAA,GAAA,kBAAA,KAACC,eAAAA,gBAAD,EAAkB,CAAA;KACJ,CAAA;IAEjB,YAAY,SAAS,KACpB,iBAAA,GAAA,kBAAA,KAAC,aAAD;KACE,KAAK;KACQ;KACA;KACC;KACd,cAAc,gBAAgB;KAC9B,eAAe,YAAY,gBAAgB;KACzB;KACD;KACH;KACM;KACR;KACZ,aAAa,eAAe;KAC5B,oBAAoB,sBAAsB;KACnB;KACC;KACxB,CAAA;IAEH,EAAA,CAAA;GAEI,CAAA;EAEb,iBAAA,GAAA,kBAAA,MAACC,cAAAA,QAAD;GAAQ,OAAM;GAAS,SAASd,uBAAAA,QAAQ;GAAI,SAAQ;aAApD;IACG,eACC,iBAAA,GAAA,kBAAA,KAAC,qBAAD;KAAqB,OAAO;KAAM,cAAA;KAAa,GAAI;KAAa,MAAK;KAAO,CAAA;IAE7E,kBACC,iBAAA,GAAA,kBAAA,KAACY,mBAAAA,QAAD;KACE,IAAG;KACH,SAAQ;KACR,eAAe,iBAAiB,CAAC,YAAY;KAC7C,cAAY,cAAc,iBAAiB;KAC3C,iBAAe;KACf,iBAAe;KACf,UAAU;KACV,QAAQ;KACR,OAAM;KACN,MAAK;KACL,oBAAiB;eAEjB,iBAAA,GAAA,kBAAA,KAACG,eAAAA,YAAD,EAAc,CAAA;KACP,CAAA;IAEV;IACM;;EACR,eAAe;EACf,EAAA,CAAA;;;;ACr0BP,MAAM,iBAAiB,EACrB,aACA,aACA,oBACA,aAAa,uBACb,gBAAgB,0BAChB,WACA,cACA,kBACA,WACA,WACA,cACA,cACA,OACA,aACA,WACA,kBACA,iBACA,cACA,YACA,aACA,cACA,aACA,kBACA,OACA,aACA,SACA,0BACA,oBAAoB,OACpB,SACA,oBAAoB,qBACI;CACxB,MAAM,aAAA,GAAA,WAAA,QAAmB;CACzB,MAAM,CAAC,qBAAqB,2BAAA,GAAA,MAAA,UAAmC,sBAAsB,MAAM;CAC3F,MAAM,cAAc,yBAAyB,OAAO,wBAAwB;CAC5E,MAAM,iBACJ,4BAA4B,OAAO,2BAA2B;CAGhE,MAAM,4BAAA,GAAA,MAAA,eAAyC;AAC7C,MAAI,CAAC,4BAA4B,CAAC,iBAChC;EAGF,MAAM,WAAW,EAAE;AAGnB,MAAI,iBACF,UAAS,KAAK,iBAAiB;AAIjC,MAAI,yBACF,UAAS,KACP,iBAAA,GAAA,kBAAA,KAAC,gCAAD;GAEE,UAAU;GACV,GAAI;GACJ,EAHI,gBAGJ,CACH;AAIH,MAAI,SAAS,WAAW,EACtB,QAAO,SAAS;AAGlB,SAAO,iBAAA,GAAA,kBAAA,KAAC,gCAAD,EAAA,UAAiC,UAA0C,CAAA;IACjF,CAAC,0BAA0B,iBAAiB,CAAC;AAEhD,QACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EAAsB;YACpB,iBAAA,GAAA,kBAAA,KAAC,YAAD;GACE,WAAW,UAAU,QAAQ;GAC7B,OAAO,UAAU,KAAA,IAAY;GAC7B,cAAc,UAAU,KAAA,IAAY;GACpC,aAAa,UAAU,KAAA,IAAY;GACnC,WAAW,UAAU,KAAA,IAAY;GACjC,cAAc,UAAU,KAAA,IAAY;GACpC,iBAAiB,UAAU,KAAA,IAAY;GACvC,kBAAkB,UAAU,KAAA,IAAY;GACxC,YAAY,UAAU,KAAA,IAAY;GACrB;GACb,cAAc,UAAU,QAAQ;GACnB;GACb,gBAAgB,eAAe,QAAQ,CAAC,oBAAoB,iBAAiB,KAAA;GAClE;GACE;GACb,kBAAkB;GACJ;GACH;GACG;GACD;GACK;GACX;GACP,oBAAkB;GAClB,aAAa,UAAU,KAAA,IAAY;GAC1B;GACA;GACI;GACb,CAAA;EACQ,CAAA;;AAMhB,MAAM,YAAY,CAAA,GAAA,kBAAA,SAAOC,cAAAA,MAAM;mBACZC,uBAAAA,QAAQ,GAAG;;AAG9B,MAAM,iCAAiC,kBAAA,QAAO,GAAG;;SAExCA,uBAAAA,QAAQ,GAAG;;;;AC3JpB,MAAa,iBAAiB,CAAA,GAAA,oBAAA,SAAOC,oBAAAA,SAAS;cAMhC,EAAE,cAAc,YAAa,cAAc,SAAS,SAAU;;KAEvE,EAAE,cAAc,YACjB,cACI,oBAAA,GAAG;;YAGH,GAAG;;KAEN,EAAE,UAAU,OAAO,SAAS,YAC7B,UACI,oBAAA,GAAG;;;YAIH,SACE,oBAAA,GAAG;;;cAIH,oBAAA,GAAG;;;YAGD;;;;;cAKEC,uBAAAA,MAAM,cAAc;;;;;;;;;;ACpClC,SAAgB,QAAW,MAAW,YAAoB,UAAuB;CAC/E,MAAM,SAAS,MAAM,KAAK,KAAK;CAC/B,MAAM,CAAC,WAAW,OAAO,OAAO,YAAY,EAAE;AAC9C,QAAO,OAAO,UAAU,GAAG,QAAQ;AAEnC,QAAO;;;;ACmBT,MAAM,aAAa,CAAA,GAAA,kBAAA,SAAO,MAAM;;;;;;;;AAShC,MAAM,iBAAiB,CAAA,GAAA,kBAAA,SAAO,MAAM;;;8BAGN,EAAE,YAAY,MAAM,MAAM,OAAO,UAAU;aAC5DC,uBAAAA,QAAQ,GAAG,GAAGA,uBAAAA,QAAQ,GAAG;;;;;;;AAQtC,MAAM,kBAAkB,CAAA,GAAA,kBAAA,SAAO,MAAM;kBACnBA,uBAAAA,QAAQ,GAAG;;;;AAK7B,MAAM,kBAAkB,kBAAA,QAAO,GAAG;;;AAIlC,MAAM,oBAAoB,CAAA,GAAA,kBAAA,SAAO,YAAY;;;AAI7C,MAAM,cAAc,CAAA,GAAA,kBAAA,SAAOC,aAAAA,aAAK;;aAEnBD,uBAAAA,QAAQ,GAAG;;AAGxB,MAAM,qBAAA,GAAA,MAAA,YACJ,SAAS,kBAAkB,EAAE,UAAU,GAAG,aAAa,KAAK;AAC1D,QACE,iBAAA,GAAA,kBAAA,KAACE,mBAAAA,QAAD;EACY;EACV,OAAM;EACN,SAAQ;EACR,MAAK;EACL,GAAI;EACC;EACL,oBAAiB;EACjB,cAAW;YAEX,iBAAA,GAAA,kBAAA,KAACC,eAAAA,cAAD,EAAgB,CAAA;EACT,CAAA;EAGd;AAED,MAAM,uBAAuB,CAAA,GAAA,kBAAA,SAAO,MAAM;;;AAW1C,MAAM,kCAAkC,EACtC,WAAW,OACX,yBAAyB,6DACzB,OAAO,MACP,UAAU,SACV,GAAG,YACsC;AACzC,QAAO,WACL,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD;EACE,SAGE,iBAAA,GAAA,kBAAA,KAAC,sBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAC,mBAAD;GAAmB,UAAU;GAAY;GAAe;GAAW,CAAA,EAC9C,CAAA;YAGxB;EACO,CAAA,GAEV,iBAAA,GAAA,kBAAA,MAACC,gBAAAA,iBAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAACA,gBAAAA,gBAAQ,SAAT;EAAiB,SAAA;YACf,iBAAA,GAAA,kBAAA,KAAC,mBAAD;GAAmB,UAAU;GAAa;GAAe;GAAW,CAAA;EACpD,CAAA,EAClB,iBAAA,GAAA,kBAAA,KAACA,gBAAAA,gBAAQ,SAAT;EACE,OAAO,EAAE,QAAQC,mBAAAA,UAAU,UAAU;EACrC,YAAY;EACZ,MAAK;EACL,OAAM;YAEN,iBAAA,GAAA,kBAAA,KAAC,aAAD;GAAa,UAAA;aACX,iBAAA,GAAA,kBAAA,KAAC,wBAAD,EAAwB,GAAI,OAAS,CAAA;GACzB,CAAA;EACE,CAAA,CACV,EAAA,CAAA;;AAWd,MAAa,0BAA0B,EACrC,qBACA,kBACA,2BACA,wBACiC;CACjC,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAAkC,GAAG;CAExD,MAAM,QAAA,GAAA,MAAA,eAAqB;AASzB,SAAO,IAAIC,QAAAA,QAAK,kBAAkB;GAPhC,YAAY;GACZ,WAAW;GACX,UAAU;GACV,UAAU;GACV,oBAAoB;GACpB,MAAM,CAAC;IAAE,MAAM;IAAS,QAAQ;IAAK,CAAC;GAEK,CAAC;IAC7C,CAAC,iBAAiB,CAAC;CAItB,MAAM,cAAA,GAAA,MAAA,gBAAA,GAAA,aAAA,OACQ,kBAAkB,oBAAoB,EAClD,CAAC,kBAAkB,oBAAoB,CACxC;CAED,MAAM,wBACJ,eAAe,KAAK,aAAa,KAAK,OAAO,WAAW,CAAC,KAAK,EAAE,WAAW,KAAK;CAElF,MAAM,oBAAA,GAAA,MAAA,eAAiC;AACrC,SAAO,sBAAsB,QAAQ,cAAc;AAEjD,UAAO,CADyB,oBAAoB,KAAK,MAAM,EAAE,IAClC,CAAC,SAAS,UAAU,IAAI;IACvD;IACD,CAAC,qBAAqB,sBAAsB,CAAC;CAEhD,MAAM,2BAAA,GAAA,MAAA,eAAwC;AAC5C,SAAO,oBAAoB,QAAQ,WACjC,sBAAsB,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS,OAAO,IAAI,CAC7D;IACA,CAAC,qBAAqB,sBAAsB,CAAC;CAEhD,MAAM,iBAAiB,QAAoB,cAAiC;EAC1E,MAAM,EAAE,aAAa,WAAW;AAChC,MACE,CAAC,eACA,YAAY,gBAAgB,OAAO,eAAe,YAAY,UAAU,OAAO,MAEhF;AAIF,4BADyB,QAAQ,qBAAqB,OAAO,OAAO,YAAY,MACtC,CAAC;;CAG7C,MAAM,iCAAiC,iBAAkC;AAEvE,4BAD0B,oBAAoB,QAAQ,MAAM,EAAE,QAAQ,OAAO,IAClC,CAAC;;CAG9C,MAAM,kCAAkC,iBAAkC;AAExE,4BAD0B,oBAAoB,OAAO,OACV,CAAC;;CAG9C,MAAM,kBAAA,GAAA,MAAA,eAA+B;AACnC,SAAO,oBAAoB,KAAK,MAAM,EAAE,IAAI;IAC3C,CAAC,oBAAoB,CAAC;CAEzB,MAAM,oBAAyC,wBAAwB,KAAK,QAAQ,UAAU;EAC5F,MAAM,sBAAsB,oBAAoB,WAAW;EAC3D,MAAM,qBAAqB,oBAAoB,OAAO,KAAK,eAAe,IAAI;EAC9E,MAAM,6BACJ,sBAAsB,UAAU,wBAAwB,SAAS;AASnE,SAAO;GAPG;GACD;GACP,YAAY,uBAAuB;GACnC,WAAW;GACX,mBAAmB;GACnB,cAAc,8BAA8B,OAAO;GAExC;GACb;CAEF,MAAM,qBAA0C,iBAAiB,KAAK,QAAQ,UAAU;AAQtF,SAAO;GANG;GACD;GACP,WAAW;GACX,mBAAmB;GACnB,cAAc,+BAA+B,OAAO;GAEzC;GACb;AAEF,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAACC,aAAAA,OAAD;GAAO,MAAK;GAAK,QAAO;aAAO;GAEvB,CAAA;EACR,iBAAA,GAAA,kBAAA,KAACC,eAAAA,gBAAD,EAAQ,QAAQ,GAAK,CAAA;EACrB,iBAAA,GAAA,kBAAA,KAAC,iBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAC,mBAAD;GACE,OAAO;GACP,OAAO;GACP,aAAa;GACb,MAAK;GACL,aAAY;GACZ,UAAS;GACT,CAAA,EACc,CAAA;EAClB,iBAAA,GAAA,kBAAA,KAACA,eAAAA,gBAAD,EAAQ,QAAQ,GAAK,CAAA;EACpB,kBAAkB,SAAS,KAAK,mBAAmB,SAAS,IAC3D,iBAAA,GAAA,kBAAA,MAAC,YAAD,EAAA,UAAA;GACG,kBAAkB,SAAS,KAC1B,iBAAA,GAAA,kBAAA,MAAC,OAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAACC,aAAAA,WAAD,EAAA,UAAW,oBAA4B,CAAA,EAGvC,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,iBAAD;IAAiB,WAAW;cAC1B,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;KACE,aAAY;KACZ,cAAc,UAAU,WAAW,WAAW;AAC5C,aACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;OACE,GAAI,SAAS;OACb,GAAI,SAAS;OACb,KAAK,SAAS;iBAEd,iBAAA,GAAA,kBAAA,KAAC,cAAD,EAAc,GAAI,kBAAkB,OAAO,OAAO,QAAU,CAAA;OACxD,CAAA;;gBAIR,aAAa;AACb,aACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;OAAK,KAAK,SAAS;OAAU,GAAI,SAAS;iBAA1C,CACG,kBAAkB,KAAK,OAAO,QAAQ;AACrC,eACE,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;SAEE,aAAa,MAAM,OAAO;SAC1B,OAAO;SACP,gBAAgB,MAAM;oBAEpB,aAAa;AACb,iBACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;WACE,KAAK,SAAS;WACd,GAAI,SAAS;WACb,GAAI,SAAS;qBAEb,iBAAA,GAAA,kBAAA,KAAC,cAAD,EAAc,GAAI,OAAS,CAAA;WACvB,CAAA;;SAGA,EAhBL,GAAG,MAAM,OAAO,MAgBX;SAEd,EACD,SAAS,YACN;;;KAGA,CAAA;IACI,CAAA,CACd,EAAA,CAAA;GAER,iBAAA,GAAA,kBAAA,KAACJ,eAAAA,gBAAD,EAAQ,QAAQ,GAAK,CAAA;GACpB,mBAAmB,SAAS,KAC3B,iBAAA,GAAA,kBAAA,MAAC,OAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAACC,aAAAA,WAAD,EAAA,UAAW,qBAA6B,CAAA,EACxC,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,iBAAD;IAAiB,WAAW;cAC1B,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;KACE,aAAY;KACZ,cAAc,UAAU,WAAW,WAAW;AAC5C,aACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;OACE,GAAI,SAAS;OACb,GAAI,SAAS;OACb,KAAK,SAAS;iBAEd,iBAAA,GAAA,kBAAA,KAAC,cAAD,EAAc,GAAI,mBAAmB,OAAO,OAAO,QAAU,CAAA;OACzD,CAAA;;gBAIR,aAAa;AACb,aACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;OAAK,KAAK,SAAS;OAAU,GAAI,SAAS;iBAA1C,CACG,mBAAmB,KAAK,OAAO,QAAQ;AACtC,eACE,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;SAEE,aAAa,MAAM,OAAO;SAC1B,OAAO;SACP,gBAAgB,MAAM;oBAEpB,aAAa;AACb,iBACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;WACE,KAAK,SAAS;WACd,GAAI,SAAS;WACb,GAAI,SAAS;qBAEb,iBAAA,GAAA,kBAAA,KAAC,cAAD,EAAc,GAAI,OAAS,CAAA;WACvB,CAAA;;SAGA,EAhBL,GAAG,MAAM,OAAO,MAgBX;SAEd,EACD,SAAS,YACN;;;KAGA,CAAA;IACI,CAAA,CACd,EAAA,CAAA;GAEG,EAAA,CAAA,GAEb,iBAAA,GAAA,kBAAA,KAAC,OAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACH,aAAAA,WAAD,EAAA,UAAW,0BAAkC,CAAA,EACzC,CAAA;EAEJ,EAAA,CAAA;;AAIV,MAAM,eAAe,CAAA,GAAA,kBAAA,SAAO,MAAM;;;;;AAelC,MAAM,gBAAgB,EACpB,QACA,OACA,aAAa,OACb,WACA,mBACA,mBACuB;AACvB,QACE,iBAAA,GAAA,kBAAA,MAAC,gBAAD,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;GAAgB,SAAA;GAAQ,aAAa;GAAqB,CAAA;EAC1D,iBAAA,GAAA,kBAAA,KAAC,cAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACA,aAAAA,WAAD;GAAW,OAAM;GAAU,MAAK;aAC7B,OAAO;GACE,CAAA,EACC,CAAA;EACf,iBAAA,GAAA,kBAAA,KAAC,iBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACI,eAAAA,QAAD;GACE,OAAO;GACP,UAAU;GACV,UAAU;GACV,cAAY,YAAY,QAAQ,OAAO,UAAU,QAAQ,OAAO;GAChE,CAAA,EACc,CAAA;EACH,EAAA,EAfI,GAAG,OAAO,IAAI,GAAG,QAerB;;;;AChZrB,MAAM,wBAAA,GAAA,MAAA,eAAgE;CACpE,SAAS,EAAE;CACX,eAAe,EAAE;CACjB,wBAAwB;CACzB,CAAC;AAEF,SAAgB,mBAGuC;AACrD,SAAA,GAAA,MAAA,YAAkB,qBAAqB;;AAMzC,SAAgB,sBAGd,EACA,UACA,GAAG,SAC2E;AAC9E,SAAA,GAAA,MAAA,eACE,qBAAqB,UACrB,EAAS,OAA+C,EACxD,SACD"}
1
+ {"version":3,"file":"TableControls-DcbnNqeK.cjs","names":["Label","Spacing","Input","isActive","isFocused","isHovered","isNotDisabled","noop","SmallSearchIcon","SearchIcon","InputGroup","Tooltip","HStack","Spacing","Paragraph","Button","SearchIcon","FilterIcon","IconButton","Tab","MenuList","TabBar","Spacing","StyledTab","MoreIcon","Popover","Stack","Input","MenuItem","CopyIcon","RotateCcwIcon","SaveIcon","TrashIcon","LockedIcon","Button","CirclePlusIcon","HStack","FilterIcon","Stack","Spacing","DragIcon","Color","Spacing","Card","Button","SettingsIcon","Tooltip","Popover","Z_INDICES","Fuse","Label","Spacer","Paragraph","DragDropContext","Droppable","Draggable","Toggle"],"sources":["../components/DataTable/FormControlLabel/FormControlLabel.ts","../components/DataTable/SearchInput/SearchInput.tsx","../components/DataTable/TableControls/CompactBar.tsx","../components/DataTable/TableControls/utils/positioning.ts","../components/DataTable/TableControls/ControlBar.tsx","../components/DataTable/TableControls/TableControls.tsx","../components/DataTable/dnd/StyledIconDrag.tsx","../components/DataTable/dnd/utils.ts","../components/DataTable/TableControls/TableViewConfigurationDropdown.tsx","../components/DataTable/TableControls/TableControlsContext.ts"],"sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { Label } from 'design-system/components/Text';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nconst FormControlLabel = styled(Label).attrs(() => ({ size: 'md', weight: 'bold' }))<{\n isDisabled?: boolean;\n}>`\n margin-bottom: ${Spacing[2]};\n transition: ${TransitionDuration.Fast};\n display: inline-block;\n\n ${({ theme, isDisabled }) => css`\n color: ${isDisabled ? theme.color.text.disabled : theme.color.text.primary};\n `}\n`;\n\nexport default FormControlLabel;\n","import { noop } from 'lodash';\nimport {\n type ChangeEvent,\n type FocusEventHandler,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { SearchIcon } from '@persona/icons';\nimport { SearchIcon as SmallSearchIcon } from '@persona/icons/12px';\nimport FormControlLabel from 'design-system/components/DataTable/FormControlLabel/FormControlLabel';\nimport Input, { InputGroup } from 'design-system/components/Input';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { isActive, isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport type { InputSizes } from 'design-system/mixins/input';\n\nconst SearchBar = styled.div``;\n\ninterface StyledInputProps {\n flattenDisplay: boolean;\n}\n\nconst StyledInput = styled(Input)<StyledInputProps>`\n ${({ theme, flattenDisplay }) =>\n flattenDisplay &&\n css`\n border-width: 0px;\n\n &${isActive}, &${isFocused}, &${isHovered}&${isNotDisabled}, &${isHovered}&${isFocused} {\n border-color: ${theme.color.border.input};\n box-shadow: none;\n }\n `}\n`;\n\nexport interface OmniSearchProps {\n className?: string;\n title?: ReactNode;\n handleInput: (value: string) => void;\n id?: string;\n value: string;\n placeholder: string;\n dataTest?: string;\n autoFocus?: boolean;\n useClearIcon?: boolean;\n leftIcon?: ReactNode;\n handleOnFocus?: () => void;\n onBlur?: FocusEventHandler<HTMLInputElement>;\n disabled?: boolean;\n disabledTooltip?: string;\n flattenDisplay?: boolean;\n size?: InputSizes;\n maxLength?: number;\n}\n\nconst SearchInput = ({\n className,\n title = 'Search',\n handleInput,\n handleOnFocus = noop,\n onBlur = noop,\n id,\n value,\n placeholder,\n dataTest,\n autoFocus,\n useClearIcon = false,\n disabled = false,\n disabledTooltip,\n size = 'md',\n leftIcon = size === 'sm' ? <SmallSearchIcon /> : <SearchIcon />,\n flattenDisplay = false,\n maxLength,\n}: OmniSearchProps) => {\n // We duplicate state and track it separately here. This allows us to:\n // 1. immediately update the <input/> value\n // 2. do a debounced update of the actual state\n // We expect the callback passed to this input to be a debounced that updates\n // props.value.\n const [innerValue, setInnerValue] = useState<string>(value);\n const handleChange = useCallback(\n ({ target }: ChangeEvent<HTMLInputElement>): void => {\n setInnerValue(target.value);\n handleInput(target.value);\n },\n [handleInput, setInnerValue],\n );\n\n useEffect(() => {\n setInnerValue(value);\n }, [value]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleClear = useCallback(() => {\n setInnerValue('');\n handleInput('');\n handleOnFocus();\n inputRef.current?.focus();\n }, [handleInput, handleOnFocus, inputRef, setInnerValue]);\n\n const canClear = useClearIcon && !!innerValue;\n\n const searchBar = (\n <SearchBar className={className} data-test={dataTest}>\n {title != null && <FormControlLabel htmlFor={id}>{title}</FormControlLabel>}\n <InputGroup\n leftIcon={leftIcon}\n onClear={\n canClear\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n handleClear();\n }\n : undefined\n }\n size={size}\n >\n <StyledInput\n id={id}\n onChange={handleChange}\n placeholder={placeholder}\n value={innerValue}\n autoFocus={autoFocus}\n ref={inputRef}\n onFocus={handleOnFocus}\n onBlur={onBlur}\n disabled={disabled}\n maxLength={maxLength}\n flattenDisplay={flattenDisplay}\n />\n </InputGroup>\n </SearchBar>\n );\n\n // The disabled <input> doesn't emit hover events, but the SearchBar wrapper does, so the tooltip\n // surfaces the reason the search is unavailable without taking up layout room.\n return disabled && disabledTooltip ? (\n <Tooltip trigger={searchBar} side='top'>\n {disabledTooltip}\n </Tooltip>\n ) : (\n searchBar\n );\n};\n\nexport default SearchInput;\n","import { useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { FilterIcon, SearchIcon } from '@persona/icons';\nimport Button from 'design-system/components/Button';\nimport SearchInput from 'design-system/components/DataTable/SearchInput';\nimport { HStack } from 'design-system/components/Stack';\nimport { Paragraph } from 'design-system/components/Text';\n\nimport type { ControlBarProps } from './ControlBar';\n\nexport const DataTableCompactBar = styled(HStack)`\n border-bottom: 1px solid ${({ theme }) => theme.color.border.secondary};\n padding-bottom: ${Spacing[1]};\n`;\n\nconst CompactSearchInput = styled(SearchInput)<{ $autoExpand: boolean }>`\n width: ${({ $autoExpand }) => ($autoExpand ? '100%' : '240px')};\n margin-right: ${Spacing[1]};\n`;\n\ntype CompactBarProps = Pick<\n ControlBarProps,\n | 'title'\n | 'searchProps'\n | 'showFilters'\n | 'setShowFilters'\n | 'filtersId'\n | 'isLoading'\n | 'propertiesButton'\n | 'tableActions'\n | 'data-tour-target'\n | 'filterPanel'\n>;\n\n/**\n * Compact variant of the ControlBar.\n * Not intended to be used by itself.\n *\n * Tested using the ControlBar specs.\n *\n * @see ControlBar.tsx\n * @see ControlBar.spec.tsx\n */\nconst CompactBar: React.FC<CompactBarProps> = ({\n title,\n searchProps,\n showFilters,\n setShowFilters,\n filtersId,\n isLoading,\n propertiesButton,\n tableActions,\n 'data-tour-target': dataTourTarget,\n filterPanel,\n}) => {\n const autoExpandSearch = !title;\n const [showSearch, setShowSearch] = useState<boolean>(autoExpandSearch);\n\n return (\n <>\n <DataTableCompactBar data-tour-target={dataTourTarget} justify='space-between' align='center'>\n {title && (\n <Paragraph size='md' weight='bold' color='primary'>\n {title}\n </Paragraph>\n )}\n\n <HStack\n spacing={Spacing[1]}\n align='center'\n justify='right'\n style={autoExpandSearch ? { width: '100%' } : { marginLeft: 'auto' }}\n >\n <HStack spacing={Spacing[1]} align='center' style={{ width: '100%' }}>\n {searchProps &&\n (showSearch ? (\n <CompactSearchInput\n title={null}\n size='sm'\n $autoExpand={autoExpandSearch}\n autoFocus={!autoExpandSearch}\n onBlur={\n autoExpandSearch\n ? undefined\n : () => {\n if (!searchProps.value) {\n setShowSearch(false);\n }\n }\n }\n useClearIcon\n {...searchProps}\n />\n ) : (\n <Button\n id='table-controls__compact-search-toggle'\n variant='text'\n width='icon'\n size='sm'\n aria-label='Show search bar'\n onClick={() => setShowSearch(true)}\n >\n <SearchIcon />\n </Button>\n ))}\n\n {setShowFilters && (\n <Button\n id='table-controls__view-tab-filters'\n variant='text'\n onClick={() => setShowFilters?.(!showFilters)}\n aria-label={showFilters ? 'Hide filters' : 'Show filters'}\n aria-expanded={showFilters}\n aria-controls={filtersId}\n disabled={isLoading}\n active={showFilters}\n width='icon'\n size='sm'\n >\n <FilterIcon />\n </Button>\n )}\n\n {propertiesButton}\n </HStack>\n\n {tableActions && Array.isArray(tableActions)\n ? tableActions.map((action) => (\n <Button\n id={`table-controls__compact-action-${action.label.toLowerCase().replace(/\\s+/g, '-')}`}\n key={action.label}\n variant='basic'\n size='sm'\n width='auto'\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))\n : tableActions}\n </HStack>\n </DataTableCompactBar>\n {showFilters && filterPanel}\n </>\n );\n};\n\nexport default CompactBar;\n","/**\n * Check if a child rect is contained within a parent rect.\n * @param parent - The parent rect.\n * @param child - The child rect.\n * @returns True if the child rect is contained within the parent rect, false otherwise.\n */\nexport const rectContainsRect = (parent: DOMRect, child: DOMRect) => {\n return (\n child.top >= parent.top &&\n child.bottom <= parent.bottom &&\n child.left >= parent.left &&\n child.right <= parent.right\n );\n};\n","import {\n type CSSProperties,\n type FC,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport {\n CirclePlusIcon,\n CopyIcon,\n FilterIcon,\n MoreIcon,\n RotateCcwIcon,\n SaveIcon,\n TrashIcon,\n} from '@persona/icons';\nimport { LockedIcon } from '@persona/icons/12px';\nimport Button, { IconButton } from 'design-system/components/Button';\nimport SearchInput, { type OmniSearchProps } from 'design-system/components/DataTable/SearchInput';\nimport Input from 'design-system/components/Input';\nimport { MenuItem, MenuList } from 'design-system/components/Menu';\nimport Popover from 'design-system/components/Popover';\nimport Stack, { HStack } from 'design-system/components/Stack';\nimport TabBar, { StyledTab, Tab } from 'design-system/components/TabBar';\n\nimport CompactBar from './CompactBar';\nimport { rectContainsRect } from './utils/positioning';\n\nconst TAB_ID_PREFIX = 'table-controls__view-tab_';\nconst OVERFLOW_TAB_ID_PREFIX = 'table-controls__view-tab-overflow_';\n\nfunction enterProxiesClick(e: React.KeyboardEvent<HTMLDivElement>) {\n if (e.key === 'Enter') {\n e.target.dispatchEvent(new Event('click', { bubbles: true }));\n }\n}\n\ninterface TableViewConfig {\n id: string;\n name: string;\n}\n\ninterface EventHandlers {\n /**\n * Called when the duplicate view button is clicked. If not provided, the duplicate view button will not be displayed.\n *\n * @returns Promise<{ id: string }> - The id of the newly created view\n */\n onDuplicateView?: (viewId: string) => Promise<{ id: string } | void>;\n /**\n * Called when the delete view button is clicked. If not provided, the delete view button will not be displayed.\n */\n onDeleteView?: (viewId: string) => Promise<void>;\n /**\n * Called when a view tab is selected\n */\n onSelectView?: (viewId: string | null) => void;\n /**\n * Called when the reset view button is clicked. If not provided, the reset view button will not be displayed.\n */\n onResetCurrentView?: () => void;\n /**\n * Called when the save view button is clicked. If not provided, the save view button will not be displayed.\n */\n onSaveView?: () => Promise<void>;\n /**\n * Called when the add view button is clicked. If not provided, the add view button will not be displayed.\n *\n * @returns Promise<{ id: string }> - The id of the newly created view\n */\n onAddView?: () => Promise<{ id: string } | void>;\n /**\n * Called when the view name is changed. If not provided, the view name will not be editable.\n */\n onViewNameChange?: (viewId: string, name: string) => void;\n /**\n * Called when the selection is cleared\n */\n onClearSelection?: () => void;\n}\n\nexport interface ControlBarProps extends EventHandlers {\n /**\n * Preset views that are not editable by the user.\n */\n presetViews?: TableViewConfig[];\n /**\n * Table view tabs\n */\n views?: TableViewConfig[];\n /**\n * Current table view id\n */\n currentView?: string | null;\n /**\n * Whether the filters have been changed and can be saved\n */\n isViewDirty?: boolean;\n /**\n * Whether the user has permission to edit views\n */\n canEditViews?: boolean;\n /**\n * Whether to show filters\n */\n showFilters?: boolean;\n /**\n * Called when the filters are toggled\n */\n setShowFilters?: (show: boolean) => void;\n /**\n * Search props\n */\n searchProps?: Omit<OmniSearchProps, 'size'>;\n /**\n * The id of the filters container\n */\n filtersId?: string;\n /**\n * Properties button\n */\n propertiesButton?: React.ReactNode;\n /**\n * Table actions\n */\n tableActions?:\n | React.ReactNode\n | { label: string; onClick: React.MouseEventHandler<HTMLButtonElement> }[];\n /**\n * Whether the table is loading\n */\n isLoading?: boolean;\n /**\n * Whether to show the views bar\n */\n showViews?: boolean;\n /**\n * The ids of the selected rows\n */\n selectedRows?: string[];\n /**\n * Bulk actions to display when there are selected rows.\n */\n bulkActions?: (\n | {\n label: string;\n icon?: React.ReactNode;\n disabled?: boolean;\n onClick: (selectedRows: string[], clearSelection: () => void) => void | Promise<void>;\n }\n | {\n 'aria-label': string;\n icon: React.ReactNode;\n disabled?: boolean;\n onClick: (selectedRows: string[], clearSelection: () => void) => void | Promise<void>;\n }\n )[];\n /**\n * The title of the table\n */\n title?: string;\n /**\n * The data-tour-target of the table\n */\n 'data-tour-target'?: string;\n /**\n * Whether to use compact spacing and styling.\n * The compact variant does not support views.\n */\n compact?: boolean;\n\n /** Use this to handle errors that occur in the control bar.\n * This can be helpful if you want to trigger a toast message.\n */\n onError?: (error: Error) => void;\n\n /**\n * Content to render in the filter panel area below the controls row.\n * Rendered when showFilters is true.\n */\n filterPanel?: React.ReactNode;\n}\n\nconst AddViewButton = styled(IconButton)`\n color: ${({ theme }) => theme.color.text.secondary};\n`;\n\nconst LockedTab = styled(Tab)`\n svg {\n height: 12px;\n width: 12px;\n }\n`;\n\nconst OverflowMenuList = styled(MenuList)`\n max-height: 300px;\n overflow: auto;\n`;\n\nconst ExpandedSearchInput = styled(SearchInput)`\n flex-basis: 440px;\n flex-grow: 1;\n`;\n\nconst ViewsBar = styled(TabBar)<{ $isAddingView: boolean }>`\n ${AddViewButton} {\n /* Shows button when view is in progress of being added */\n opacity: ${({ $isAddingView }) => ($isAddingView ? 1 : 0)};\n }\n\n &:hover,\n &:hover:focus,\n &:focus-within {\n ${AddViewButton} {\n opacity: 1;\n }\n }\n`;\n\nconst TabOverflowContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n position: absolute;\n height: 32px;\n`;\n\n/**\n * Base props for the SavedViewTab component\n * These are the props that must be passed to TabOverflow so it can render a SavedViewTab\n */\ninterface BaseSavedViewTabProps extends EventHandlers {\n canEditViews: boolean;\n isViewDirty: boolean;\n showTabContextMenu: boolean;\n setShowTabContextMenu: (show: boolean) => void;\n handleNameChange: (view: TableViewConfig, newName: string) => void;\n}\n\nconst SavedViewTab = ({\n view,\n selected,\n tabIdPrefix = TAB_ID_PREFIX,\n canEditViews,\n handleNameChange,\n onDuplicateView,\n onDeleteView,\n onSelectView,\n onResetCurrentView,\n onSaveView,\n isViewDirty,\n showTabContextMenu,\n setShowTabContextMenu,\n className,\n ...rest\n}: BaseSavedViewTabProps & {\n tabIdPrefix?: string;\n view: TableViewConfig;\n selected: boolean;\n className?: string;\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const tab = (\n <StyledTab\n id={`${tabIdPrefix}${view.id}`}\n selected={selected}\n aria-selected={selected}\n role='tab'\n onClick={!selected ? () => onSelectView?.(view.id) : undefined}\n suffixIcon={selected && canEditViews ? <MoreIcon /> : undefined}\n className={className}\n {...rest}\n >\n {view.name}\n </StyledTab>\n );\n\n if (canEditViews && selected) {\n return (\n <Popover\n trigger={tab}\n open={showTabContextMenu}\n onOpenChange={(open) => {\n if (selected) {\n setShowTabContextMenu(open);\n }\n if (!open && inputRef.current) {\n handleNameChange?.(view, inputRef.current.value);\n }\n }}\n contentProps={{ align: 'start', padding: Spacing[2] }}\n >\n <Stack spacing={Spacing[3]}>\n <Input\n defaultValue={view.name}\n onBlur={(e) => handleNameChange?.(view, e.currentTarget.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleNameChange?.(view, e.currentTarget.value);\n }\n }}\n disabled={!handleNameChange}\n ref={inputRef}\n />\n <MenuList padding={Spacing[0]}>\n {onDuplicateView && (\n <MenuItem\n id='table-controls__view__menu-duplicate'\n prefixIcon={<CopyIcon />}\n onClick={async () => {\n const newTableView = await onDuplicateView(view.id);\n if (newTableView) {\n const { id } = newTableView;\n if (view.id !== id) {\n onSelectView?.(id);\n setShowTabContextMenu(true);\n }\n }\n }}\n onKeyDown={enterProxiesClick}\n >\n Duplicate\n </MenuItem>\n )}\n {canEditViews && onResetCurrentView && (\n <MenuItem\n id='table-controls__view__menu-reset'\n prefixIcon={<RotateCcwIcon />}\n onClick={onResetCurrentView}\n onKeyDown={enterProxiesClick}\n >\n Reset\n </MenuItem>\n )}\n {canEditViews && onSaveView && (\n <MenuItem\n id='table-controls__view__menu-save'\n prefixIcon={<SaveIcon />}\n disabled={!isViewDirty}\n onClick={() => {\n void onSaveView();\n setShowTabContextMenu(false);\n }}\n onKeyDown={enterProxiesClick}\n >\n Save\n </MenuItem>\n )}\n {onDeleteView && (\n <MenuItem\n id='table-controls__view__menu-delete'\n prefixIcon={<TrashIcon />}\n onClick={async () => {\n await onDeleteView(view.id);\n setShowTabContextMenu(false);\n }}\n onKeyDown={enterProxiesClick}\n >\n Delete\n </MenuItem>\n )}\n </MenuList>\n </Stack>\n </Popover>\n );\n }\n\n return tab;\n};\n\ninterface LockedViewTabProps {\n id: string;\n /**\n * Whether the tab is selected. If true, the tab will not be clickable.\n */\n selected?: boolean;\n /**\n * Called when the tab is clicked. If the tab is selected, the click will be ignored.\n */\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n children: React.ReactNode;\n}\n\n/**\n * A tab that is locked and does not support editing or actions.\n */\nconst LockedViewTab = ({ id, selected, onClick, children, ...props }: LockedViewTabProps) => {\n return (\n <LockedTab\n id={id}\n selected={selected}\n onClick={selected ? undefined : onClick}\n suffixIcon={<LockedIcon />}\n {...props}\n >\n {children}\n </LockedTab>\n );\n};\n\nconst OverflowSavedViewTab = styled(SavedViewTab)`\n margin-left: ${Spacing[2]};\n`;\n\nconst TabOverflow = forwardRef<\n HTMLDivElement,\n BaseSavedViewTabProps & {\n hiddenViews: TableViewConfig[];\n currentView: string | null | undefined;\n handleAddView: (() => void) | null;\n lastVisibleViewElement: HTMLElement | null;\n }\n>(function TabOverflow(\n {\n hiddenViews,\n currentView: currentViewId,\n handleAddView,\n onSelectView,\n canEditViews,\n lastVisibleViewElement,\n ...rest\n },\n ref,\n) {\n const [filter, setFilter] = useState('');\n const [openPopover, setOpenPopover] = useState<boolean>(false);\n\n const currentView = useMemo(() => {\n return hiddenViews.find((view) => view.id === currentViewId);\n }, [currentViewId, hiddenViews]);\n\n const filteredViews = useMemo(\n () =>\n hiddenViews.filter(\n (view) =>\n view.name.toLowerCase().includes(filter.toLowerCase()) && view.id !== currentView?.id,\n ),\n [hiddenViews, filter, currentView],\n );\n\n const overflowContainerStyle = useMemo<CSSProperties | undefined>(() => {\n if (!lastVisibleViewElement) {\n return undefined;\n }\n\n return { left: lastVisibleViewElement.offsetLeft + lastVisibleViewElement.offsetWidth + 8 };\n }, [lastVisibleViewElement]);\n\n return (\n <TabOverflowContainer ref={ref} style={overflowContainerStyle}>\n {currentView && (\n <OverflowSavedViewTab\n view={currentView}\n canEditViews={canEditViews}\n selected={true}\n tabIdPrefix={OVERFLOW_TAB_ID_PREFIX}\n {...rest}\n />\n )}\n {/* Edge case when the current view is the first hidden view */}\n {hiddenViews.length === 1 && currentView && hiddenViews[0].id !== currentView.id ? null : (\n <Popover\n trigger={\n <Button variant='basic' size='sm' width='auto'>\n {currentView ? hiddenViews.length - 1 : hiddenViews.length} more&hellip;\n </Button>\n }\n contentProps={{ align: 'start', padding: Spacing[2] }}\n open={openPopover}\n onOpenChange={(open) => {\n if (!open) {\n setFilter('');\n }\n setOpenPopover(open);\n }}\n >\n <Input\n value={filter}\n onChange={(e) => setFilter(e.target.value)}\n placeholder='Search for a view...'\n />\n <OverflowMenuList padding={Spacing[0]}>\n {filteredViews.map((view) => {\n return (\n <MenuItem\n key={view.id}\n id={`${OVERFLOW_TAB_ID_PREFIX}${view.id}`}\n onClick={() => {\n onSelectView?.(view.id);\n setOpenPopover(false);\n }}\n onKeyDown={enterProxiesClick}\n >\n {view.name}\n </MenuItem>\n );\n })}\n </OverflowMenuList>\n </Popover>\n )}\n {canEditViews && handleAddView && (\n <AddViewButton\n id={`${OVERFLOW_TAB_ID_PREFIX}overflow-new`}\n onClick={handleAddView}\n size='md'\n aria-label='Add new view'\n >\n <CirclePlusIcon />\n </AddViewButton>\n )}\n </TabOverflowContainer>\n );\n});\n\n/**\n * Force the add button to be visible when the product tour is active\n */\nconst ProductTourStyles = createGlobalStyle`\n body:has(#react-joyride-portal) {\n [data-tour-target='saved-views-add-button'] {\n opacity: 1;\n }\n }\n`;\n\nconst ControlBar: FC<ControlBarProps> = ({\n presetViews,\n currentView,\n onSelectView,\n views,\n onAddView,\n onDuplicateView,\n onDeleteView,\n onViewNameChange,\n onSaveView,\n isViewDirty,\n canEditViews,\n showFilters,\n setShowFilters,\n searchProps,\n filtersId,\n propertiesButton,\n tableActions,\n isLoading,\n showViews,\n selectedRows = [],\n bulkActions,\n onResetCurrentView,\n onClearSelection,\n title,\n 'data-tour-target': dataTourTarget,\n compact,\n onError,\n filterPanel,\n}) => {\n const tabListRef = useRef<HTMLDivElement>(null);\n const tabOverflowRef = useRef<HTMLDivElement>(null);\n // The same could be done to get the visible views to only render them but that causes other jittery problems\n const [hiddenViews, setHiddenViews] = useState<TableViewConfig[]>([]);\n const [showTabContextMenu, setShowTabContextMenu] = useState<boolean>(false);\n const [isAddingView, setIsAddingView] = useState<boolean>(false);\n const [lastVisibleViewElement, setLastVisibleViewElement] = useState<HTMLElement | null>(null);\n const [tabOverflowWidth, setTabOverflowWidth] = useState<number | null>(null);\n\n const onResize = useCallback(() => {\n if (!tabListRef.current) {\n return;\n }\n\n const containerRect = tabListRef.current.getBoundingClientRect();\n const tabListContainer = tabListRef.current;\n const tabElements = Array.from(\n tabListContainer.querySelectorAll('[data-tab-view]'),\n ) as HTMLElement[];\n\n // Skip if the last element is not overflowing\n if (\n tabElements.length === 0 ||\n rectContainsRect(containerRect, tabElements[tabElements.length - 1].getBoundingClientRect())\n ) {\n setHiddenViews([]);\n return;\n }\n\n // Find first element that overflows the container\n const firstHiddenIndex = tabElements.findIndex(\n (el) => !rectContainsRect(containerRect, el.getBoundingClientRect()),\n );\n\n if (firstHiddenIndex === -1) {\n setLastVisibleViewElement(null);\n } else {\n const lastVisibleViewElement = tabElements[firstHiddenIndex - 1];\n if (lastVisibleViewElement) {\n setLastVisibleViewElement(lastVisibleViewElement);\n }\n }\n\n const newHiddenViews = firstHiddenIndex === -1 ? [] : views?.slice(firstHiddenIndex);\n setHiddenViews(newHiddenViews || []);\n\n const tabOverflowWidth = tabOverflowRef.current?.getBoundingClientRect().width;\n if (tabOverflowWidth) {\n setTabOverflowWidth(tabOverflowWidth);\n }\n }, [setHiddenViews, views]);\n\n // Set up ResizeObserver to watch for container size changes\n useLayoutEffect(() => {\n if (!showViews || !tabListRef.current) {\n return;\n }\n\n const resizeObserver = new ResizeObserver(() => {\n onResize();\n });\n\n resizeObserver.observe(tabListRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [onResize, showViews]);\n\n // Update hidden tabs when views change. This needs to fire when we initially load the page, then again when the views load, and also when a view is added or removed\n useLayoutEffect(() => {\n if (showViews) {\n onResize();\n }\n }, [onResize, showViews, views]);\n\n const currentViewHidden = useMemo(() => {\n if (currentView) {\n return !!hiddenViews.find((view) => view.id === currentView);\n }\n return false;\n }, [currentView, hiddenViews]);\n\n const handleAddView = async () => {\n try {\n setIsAddingView(true);\n if (onAddView) {\n const view = await onAddView();\n\n // Occurs if there is an error adding the view\n if (!view || !view.id) {\n return;\n }\n\n if (currentView !== view.id) {\n onSelectView?.(view.id);\n }\n\n setShowTabContextMenu(true);\n }\n } catch {\n onError?.(new Error('Error adding view'));\n } finally {\n setIsAddingView(false);\n }\n };\n\n const handleNameChange = (view: TableViewConfig, newName: string) => {\n if (canEditViews && view.name !== newName) {\n onViewNameChange?.(view.id, newName);\n }\n };\n\n // Compact variant with simplified layout\n if (compact) {\n // todo(joseph): add bulk actions\n return (\n <CompactBar\n data-tour-target={dataTourTarget}\n title={title}\n searchProps={searchProps}\n showFilters={showFilters}\n setShowFilters={setShowFilters}\n filtersId={filtersId}\n isLoading={isLoading}\n propertiesButton={propertiesButton}\n tableActions={tableActions}\n filterPanel={filterPanel}\n />\n );\n }\n\n // Generate persistent bulk action buttons\n const bulkActionButtons = bulkActions?.map((action, index) => {\n const key = 'label' in action ? action.label : `action-${index}`;\n const isDisabled = selectedRows.length === 0 || action.disabled === true;\n const selectedCount = selectedRows.length;\n\n const clearSelection = () => {\n onClearSelection?.();\n };\n\n if ('icon' in action && 'aria-label' in action) {\n // Icon-only action\n return (\n <IconButton\n key={key}\n size='sm'\n aria-label={action['aria-label']}\n onClick={async () => {\n await action.onClick(selectedRows, clearSelection);\n }}\n disabled={isDisabled}\n >\n {action.icon}\n </IconButton>\n );\n }\n\n // Append count to label if rows are selected\n const displayLabel =\n 'label' in action && selectedCount > 0\n ? `${action.label} (${selectedCount})`\n : 'label' in action\n ? action.label\n : '';\n\n return (\n <Button\n id={`table-controls__view-tab-bulk-action-${index}`}\n variant='basic'\n size='sm'\n width='auto'\n key={key}\n onClick={async () => {\n await action.onClick(selectedRows, clearSelection);\n }}\n disabled={isDisabled}\n >\n {displayLabel}\n </Button>\n );\n });\n\n const showViewsBar =\n title || showViews || (canEditViews && onSaveView) || tableActions || bulkActions;\n\n return (\n <>\n <ProductTourStyles />\n {showViewsBar && (\n <ViewsBar\n ref={tabListRef}\n title={title}\n maxTabChars={25}\n $isAddingView={isAddingView}\n data-tour-target={dataTourTarget}\n actions={\n <HStack\n spacing={Spacing[3]}\n align='center'\n style={tabOverflowWidth ? { paddingLeft: `${tabOverflowWidth + 16}px` } : undefined}\n >\n {canEditViews && onSaveView && (\n <Button\n id='table-controls__view-tab-save'\n onClick={onSaveView}\n aria-label='Save current view'\n disabled={!isViewDirty || isLoading}\n size='sm'\n variant='basic'\n width='auto'\n data-tour-target='saved-views-save-button'\n >\n Save view\n </Button>\n )}\n {bulkActionButtons}\n {tableActions}\n </HStack>\n }\n >\n {showViews && (\n <>\n <LockedViewTab\n id={`${TAB_ID_PREFIX}default`}\n selected={!currentView}\n onClick={() => onSelectView?.(null)}\n data-tour-target='saved-views-default-view'\n >\n Default view\n </LockedViewTab>\n {presetViews?.map((view) => {\n const selected = view.id === currentView;\n return (\n <LockedViewTab\n key={view.id}\n id={`${TAB_ID_PREFIX}preset-${view.id}`}\n selected={selected}\n onClick={() => onSelectView?.(view.id)}\n >\n {view.name}\n </LockedViewTab>\n );\n })}\n {views?.map((view) => {\n return (\n <SavedViewTab\n key={view.id}\n view={view}\n canEditViews={canEditViews ?? false}\n handleNameChange={handleNameChange}\n onDuplicateView={onDuplicateView}\n onDeleteView={onDeleteView}\n onSelectView={onSelectView}\n onResetCurrentView={onResetCurrentView}\n onSaveView={onSaveView}\n isViewDirty={isViewDirty ?? false}\n selected={view.id === currentView}\n showTabContextMenu={showTabContextMenu && !currentViewHidden}\n setShowTabContextMenu={setShowTabContextMenu}\n data-tab-view\n />\n );\n })}\n {canEditViews && onAddView && (\n <AddViewButton\n id='table-controls__view-tab-new'\n size='md'\n onClick={handleAddView}\n aria-label='Add new view'\n data-tour-target='saved-views-add-button'\n >\n <CirclePlusIcon />\n </AddViewButton>\n )}\n {hiddenViews.length > 0 && (\n <TabOverflow\n ref={tabOverflowRef}\n hiddenViews={hiddenViews}\n currentView={currentView}\n onSelectView={onSelectView}\n canEditViews={canEditViews ?? false}\n handleAddView={onAddView ? handleAddView : null}\n handleNameChange={handleNameChange}\n onDuplicateView={onDuplicateView}\n onDeleteView={onDeleteView}\n onResetCurrentView={onResetCurrentView}\n onSaveView={onSaveView}\n isViewDirty={isViewDirty ?? false}\n showTabContextMenu={showTabContextMenu && currentViewHidden}\n setShowTabContextMenu={setShowTabContextMenu}\n lastVisibleViewElement={lastVisibleViewElement}\n />\n )}\n </>\n )}\n </ViewsBar>\n )}\n <HStack align='center' spacing={Spacing[2]} justify='right'>\n {searchProps && (\n <ExpandedSearchInput title={null} useClearIcon {...searchProps} size='md' />\n )}\n {setShowFilters && (\n <Button\n id='table-controls__view-tab-filters'\n variant='basic'\n onClick={() => setShowFilters?.(!showFilters)}\n aria-label={showFilters ? 'Hide filters' : 'Show filters'}\n aria-expanded={showFilters}\n aria-controls={filtersId}\n disabled={isLoading}\n active={showFilters}\n width='icon'\n size='md'\n data-tour-target='table-filters-toggle-button'\n >\n <FilterIcon />\n </Button>\n )}\n {propertiesButton}\n </HStack>\n {showFilters && filterPanel}\n </>\n );\n};\n\nexport default ControlBar;\n","import { type ReactNode, useMemo, useState } from 'react';\nimport { useId } from 'react-aria';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport {\n ControlBar,\n TableViewConfigurationDropdown,\n type ControlBarProps,\n} from 'design-system/components/DataTable/TableControls';\nimport Stack from 'design-system/components/Stack';\n\nimport type { AttributeColumn } from './types';\n\nexport interface TableControlsProps extends ControlBarProps {\n defaultShowFilters?: boolean;\n className?: string;\n tableActions?: ReactNode;\n propertiesButton?: ReactNode;\n isLoading?: boolean;\n\n /**\n * Whether to show filters always. If true, the filter row toggle button will not be rendered.\n */\n showFiltersAlways?: boolean;\n\n /**\n * Whether to display table views tab bar\n */\n showViews?: boolean;\n\n /**\n * Whether to use compact spacing and styling.\n * The compact variant does not support views.\n */\n compact?: boolean;\n\n /**\n * Column configuration options for the table.\n * If provided, displays a settings button to configure visible columns.\n */\n columnConfigurationProps?: {\n columnConfiguration: AttributeColumn[];\n attributeOptions: AttributeColumn[];\n updateColumnConfiguration: (newConfiguration: AttributeColumn[]) => void;\n };\n}\n\nconst TableControls = ({\n filterPanel,\n searchProps,\n defaultShowFilters,\n showFilters: controlledShowFilters,\n setShowFilters: controlledSetShowFilters,\n className,\n tableActions,\n propertiesButton,\n isLoading,\n showViews,\n canEditViews,\n onSelectView,\n views,\n currentView,\n onAddView,\n onViewNameChange,\n onDuplicateView,\n onDeleteView,\n onSaveView,\n isViewDirty,\n selectedRows,\n bulkActions,\n onClearSelection,\n title,\n presetViews,\n compact,\n columnConfigurationProps,\n showFiltersAlways = false,\n onError,\n 'data-tour-target': dataTourTarget,\n}: TableControlsProps) => {\n const filtersId = useId();\n const [internalShowFilters, internalSetShowFilters] = useState(defaultShowFilters ?? false);\n const showFilters = controlledShowFilters != null ? controlledShowFilters : internalShowFilters;\n const setShowFilters =\n controlledSetShowFilters != null ? controlledSetShowFilters : internalSetShowFilters;\n\n // Create enhanced properties button that includes column configuration if provided\n const enhancedPropertiesButton = useMemo(() => {\n if (!columnConfigurationProps && !propertiesButton) {\n return undefined;\n }\n\n const elements = [];\n\n // Add original properties button if provided\n if (propertiesButton) {\n elements.push(propertiesButton);\n }\n\n // Add column configuration dropdown if provided\n if (columnConfigurationProps) {\n elements.push(\n <TableViewConfigurationDropdown\n key='column-config'\n disabled={false}\n {...columnConfigurationProps}\n />,\n );\n }\n\n // Return single element or fragment with multiple elements\n if (elements.length === 1) {\n return elements[0];\n }\n\n return <StyledEnhancedPropertiesButton>{elements}</StyledEnhancedPropertiesButton>;\n }, [columnConfigurationProps, propertiesButton]);\n\n return (\n <Container className={className}>\n <ControlBar\n showViews={compact ? false : showViews}\n views={compact ? undefined : views}\n onSelectView={compact ? undefined : onSelectView}\n currentView={compact ? undefined : currentView}\n onAddView={compact ? undefined : onAddView}\n onDeleteView={compact ? undefined : onDeleteView}\n onDuplicateView={compact ? undefined : onDuplicateView}\n onViewNameChange={compact ? undefined : onViewNameChange}\n onSaveView={compact ? undefined : onSaveView}\n isViewDirty={isViewDirty}\n canEditViews={compact ? false : canEditViews}\n showFilters={showFilters}\n setShowFilters={filterPanel != null && !showFiltersAlways ? setShowFilters : undefined}\n filtersId={filtersId}\n searchProps={searchProps}\n propertiesButton={enhancedPropertiesButton}\n tableActions={tableActions}\n isLoading={isLoading}\n selectedRows={selectedRows}\n bulkActions={bulkActions}\n onClearSelection={onClearSelection}\n title={title}\n data-tour-target={dataTourTarget}\n presetViews={compact ? undefined : presetViews}\n compact={compact}\n onError={onError}\n filterPanel={filterPanel}\n />\n </Container>\n );\n};\n\nexport default TableControls;\n\nconst Container = styled(Stack)`\n margin-bottom: ${Spacing[2]};\n`;\n\nconst StyledEnhancedPropertiesButton = styled.div`\n display: flex;\n gap: ${Spacing[1]};\n`;\n","import styled, { css } from 'styled-components';\n\nimport { Color } from '@persona/design-tokens';\nimport { DragIcon } from '@persona/icons/24px';\n\n// StyledIconDrag is an IconDrag which changes color as you hover over it\nexport const StyledIconDrag = styled(DragIcon)<{\n $active: boolean;\n $hover?: boolean;\n $shouldHide?: boolean;\n $horizontal?: boolean;\n}>`\n display: ${({ $shouldHide = false }) => ($shouldHide ? 'none' : 'inline')};\n\n ${({ $horizontal = false }) =>\n $horizontal\n ? css`\n transform: rotate(90deg);\n `\n : ''}\n\n ${({ $active = false, $hover = false }) =>\n $active\n ? css`\n cursor: grabbing;\n opacity: 1;\n `\n : $hover\n ? css`\n cursor: grab;\n opacity: 1;\n `\n : css`\n cursor: normal;\n opacity: 0.4;\n `}\n\n transition: opacity 0.2s ease-in-out;\n\n path {\n stroke: ${Color.CoreSlate1000};\n stroke-width: 1px;\n }\n`;\n","/**\n * reorder returns a reordered version of the inputed list by swapping the element\n * at startIndex with the one at endIndex\n */\nexport function reorder<A>(list: A[], startIndex: number, endIndex: number): A[] {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n}\n","import {\n DragDropContext,\n Draggable,\n Droppable,\n type DropResult,\n type ResponderProvided,\n} from '@hello-pangea/dnd';\nimport Fuse from 'fuse.js';\nimport { union } from 'lodash/fp';\nimport { type ComponentProps, forwardRef, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { SettingsIcon } from '@persona/icons';\nimport Button from 'design-system/components/Button';\nimport Card from 'design-system/components/Card';\nimport { StyledIconDrag } from 'design-system/components/DataTable/dnd/StyledIconDrag';\nimport { reorder } from 'design-system/components/DataTable/dnd/utils';\nimport SearchInput from 'design-system/components/DataTable/SearchInput';\nimport Popover from 'design-system/components/Popover';\nimport Spacer from 'design-system/components/Spacer';\nimport { Label, Paragraph } from 'design-system/components/Text';\nimport Toggle from 'design-system/components/Toggle';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { Z_INDICES } from 'design-system/lib/zindex';\n\nimport type { AttributeColumn } from './types';\n\nconst DndSection = styled('div')`\n max-height: 400px;\n\n overflow: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst DndItemWrapper = styled('div')`\n background: white;\n width: 100%;\n border-bottom: 1px solid ${({ theme }) => theme.color.border.secondary};\n padding: ${Spacing[2]} ${Spacing[2]};\n\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: left;\n`;\n\nconst SuffixContainer = styled('div')`\n padding-left: ${Spacing[2]};\n margin-left: auto;\n align-self: center;\n`;\n\nconst SearchContainer = styled.div`\n display: flex;\n`;\n\nconst StyledSearchInput = styled(SearchInput)`\n width: 100%;\n`;\n\nconst PopoverCard = styled(Card)`\n width: 300px;\n padding: ${Spacing[4]};\n`;\n\nconst TriggerIconButton = forwardRef<HTMLButtonElement, ComponentProps<typeof Button>>(\n function TriggerIconButton({ disabled, ...elemProps }, ref) {\n return (\n <Button\n disabled={disabled}\n width='icon'\n variant='basic'\n size='md'\n {...elemProps}\n ref={ref}\n data-tour-target='table-properties-button'\n aria-label='Table Properties'\n >\n <SettingsIcon />\n </Button>\n );\n },\n);\n\nconst TooltipButtonWrapper = styled('div')`\n display: inline-block;\n`;\n\nexport interface TableViewConfigurationDropdownProps extends TableViewConfigurationProps {\n disabled: boolean;\n disabledTooltipMessage?: string;\n size?: 'sm' | 'md';\n variant?: 'basic' | 'text';\n}\n\nconst TableViewConfigurationDropdown = ({\n disabled = false,\n disabledTooltipMessage = 'Your role does not have permission to configure the view.',\n size = 'md',\n variant = 'basic',\n ...props\n}: TableViewConfigurationDropdownProps) => {\n return disabled ? (\n <Tooltip\n trigger={\n // NB: this wrapping div is needed to properly display the tooltip. The library we're using, floating-ui\n // doesn't support displaying tooltips on disabled buttons.\n <TooltipButtonWrapper>\n <TriggerIconButton disabled={true} size={size} variant={variant} />\n </TooltipButtonWrapper>\n }\n >\n {disabledTooltipMessage}\n </Tooltip>\n ) : (\n <Popover>\n <Popover.Trigger asChild>\n <TriggerIconButton disabled={false} size={size} variant={variant} />\n </Popover.Trigger>\n <Popover.Content\n style={{ zIndex: Z_INDICES.dropdown }}\n sideOffset={8}\n side='bottom'\n align='end'\n >\n <PopoverCard elevated>\n <TableViewConfiguration {...props} />\n </PopoverCard>\n </Popover.Content>\n </Popover>\n );\n};\n\nexport interface TableViewConfigurationProps {\n columnConfiguration: AttributeColumn[];\n attributeOptions: AttributeColumn[];\n updateColumnConfiguration: (newConfiguration: AttributeColumn[]) => void;\n getColumnDisabled?: (columnId: string, shownColumnIds: string[]) => boolean;\n}\n\nexport const TableViewConfiguration = ({\n columnConfiguration,\n attributeOptions,\n updateColumnConfiguration,\n getColumnDisabled,\n}: TableViewConfigurationProps) => {\n const [searchTerm, setSearchTerm] = useState<string>('');\n\n const fuse = useMemo(() => {\n const fuseOptions = {\n shouldSort: false,\n threshold: 0.4,\n location: 0,\n distance: 100,\n minMatchCharLength: 1,\n keys: [{ name: 'label', weight: 1.0 }],\n };\n return new Fuse(attributeOptions, fuseOptions);\n }, [attributeOptions]);\n\n // NB: we do this to make sure that attributes that exist in the column configuration but NOT the standardized options still show up in the menu.\n // Options are deduped.\n const allOptions = useMemo(\n () => union(attributeOptions, columnConfiguration),\n [attributeOptions, columnConfiguration],\n );\n\n const filteredSearchOptions =\n searchTerm === '' ? allOptions : fuse.search(searchTerm).map(({ item }) => item);\n\n const hiddenAttributes = useMemo(() => {\n return filteredSearchOptions.filter((attribute) => {\n const columnConfigurationKeys = columnConfiguration.map((c) => c.key);\n return !columnConfigurationKeys.includes(attribute.key);\n });\n }, [columnConfiguration, filteredSearchOptions]);\n\n const filteredShownAttributes = useMemo(() => {\n return columnConfiguration.filter((column) =>\n filteredSearchOptions.map((o) => o.key).includes(column.key),\n );\n }, [columnConfiguration, filteredSearchOptions]);\n\n const handleDragEnd = (result: DropResult, _provided: ResponderProvided) => {\n const { destination, source } = result;\n if (\n !destination ||\n (destination.droppableId === source.droppableId && destination.index === source.index)\n ) {\n return;\n }\n\n const reorderedColumns = reorder(columnConfiguration, source.index, destination.index);\n updateColumnConfiguration(reorderedColumns);\n };\n\n const generateShownAttributesToggle = (column: AttributeColumn) => () => {\n const updatedAttributes = columnConfiguration.filter((a) => a.key !== column.key);\n updateColumnConfiguration(updatedAttributes);\n };\n\n const generateHiddenAttributesToggle = (column: AttributeColumn) => () => {\n const updatedAttributes = columnConfiguration.concat(column);\n updateColumnConfiguration(updatedAttributes);\n };\n\n const shownColumnIds = useMemo(() => {\n return columnConfiguration.map((c) => c.key);\n }, [columnConfiguration]);\n\n const shownDndItemProps: AttributeDndProps[] = filteredShownAttributes.map((column, index) => {\n const isDisabledByDefault = columnConfiguration.length === 1;\n const isDisabledByCustom = getColumnDisabled?.(column.key, shownColumnIds) ?? false;\n const shouldDisableDragForColumn =\n isDisabledByCustom && index === filteredShownAttributes.length - 1;\n const result: AttributeDndProps = {\n column: column,\n index: index,\n isDisabled: isDisabledByDefault || isDisabledByCustom,\n isToggled: true,\n shouldDisableDrag: shouldDisableDragForColumn,\n handleToggle: generateShownAttributesToggle(column),\n };\n return result;\n });\n\n const hiddenDndItemProps: AttributeDndProps[] = hiddenAttributes.map((column, index) => {\n const result: AttributeDndProps = {\n column: column,\n index: index,\n isToggled: false,\n shouldDisableDrag: true,\n handleToggle: generateHiddenAttributesToggle(column),\n };\n return result;\n });\n\n return (\n <div>\n <Label size='lg' weight='bold'>\n Configure columns\n </Label>\n <Spacer height={2} />\n <SearchContainer>\n <StyledSearchInput\n title={null}\n value={searchTerm}\n handleInput={setSearchTerm}\n size='md'\n placeholder='Search by item...'\n dataTest='checklist-item-panel-item-table__search'\n />\n </SearchContainer>\n <Spacer height={2} />\n {shownDndItemProps.length > 0 || hiddenDndItemProps.length > 0 ? (\n <DndSection>\n {shownDndItemProps.length > 0 && (\n <div>\n <Paragraph>Shown attributes</Paragraph>\n {/* Issue with @hello-pangea/dnd and transformed parent elements: https://github.com/hello-pangea/dnd/blob/main/docs/guides/reparenting.md\n We have to use the renderClone API to get the dragging working correctly. This has to do with one of the parent elements being a Popover. */}\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable\n droppableId='cases-view__configure-shown-columns'\n renderClone={(provided, _snapshot, rubric) => {\n return (\n <div\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n ref={provided.innerRef}\n >\n <AttributeDnd {...shownDndItemProps[rubric.source.index]} />\n </div>\n );\n }}\n >\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {shownDndItemProps.map((props, idx) => {\n return (\n <Draggable\n key={`${props.column.key}`}\n draggableId={props.column.key}\n index={idx}\n isDragDisabled={props.shouldDisableDrag}\n >\n {(provided) => {\n return (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <AttributeDnd {...props} />\n </div>\n );\n }}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n </div>\n )}\n <Spacer height={2} />\n {hiddenDndItemProps.length > 0 && (\n <div>\n <Paragraph>Hidden attributes</Paragraph>\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable\n droppableId='cases-view__configure-hidden-columns'\n renderClone={(provided, _snapshot, rubric) => {\n return (\n <div\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n ref={provided.innerRef}\n >\n <AttributeDnd {...hiddenDndItemProps[rubric.source.index]} />\n </div>\n );\n }}\n >\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {hiddenDndItemProps.map((props, idx) => {\n return (\n <Draggable\n key={`${props.column.key}`}\n draggableId={props.column.key}\n index={idx}\n isDragDisabled={props.shouldDisableDrag}\n >\n {(provided) => {\n return (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <AttributeDnd {...props} />\n </div>\n );\n }}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n </div>\n )}\n </DndSection>\n ) : (\n <div>\n <Paragraph>No matching attributes</Paragraph>\n </div>\n )}\n </div>\n );\n};\n\nconst OverflowText = styled('div')`\n max-width: 160px;\n flex-wrap: wrap;\n display: flex;\n`;\n\ninterface AttributeDndProps {\n column: AttributeColumn;\n index: number;\n isDisabled?: boolean;\n isToggled: boolean;\n shouldDisableDrag: boolean;\n handleToggle: () => void;\n}\n\nconst AttributeDnd = ({\n column,\n index,\n isDisabled = false,\n isToggled,\n shouldDisableDrag,\n handleToggle,\n}: AttributeDndProps) => {\n return (\n <DndItemWrapper key={`${column.key}-${index}`}>\n <StyledIconDrag $active $shouldHide={shouldDisableDrag} />\n <OverflowText>\n <Paragraph color='primary' size='sm'>\n {column.label}\n </Paragraph>\n </OverflowText>\n <SuffixContainer>\n <Toggle\n value={isToggled}\n disabled={isDisabled}\n onChange={handleToggle}\n aria-label={isToggled ? `Hide ${column.label}` : `Show ${column.label}`}\n />\n </SuffixContainer>\n </DndItemWrapper>\n );\n};\n\nexport default TableViewConfigurationDropdown;\n","import { type ReactNode, createElement, createContext, useContext } from 'react';\n\nimport type { BaseActiveFilter, BaseFilterConfig } from './types';\n\nexport interface TableControlsContextProps<\n TFilter extends BaseFilterConfig = BaseFilterConfig,\n TActiveFilter extends BaseActiveFilter<TFilter> = BaseActiveFilter<TFilter>,\n> {\n filters: TFilter[];\n activeFilters: TActiveFilter[];\n setActiveFilters: (filters: TActiveFilter[]) => void;\n}\n\nconst TableControlsContext = createContext<TableControlsContextProps>({\n filters: [],\n activeFilters: [],\n setActiveFilters: () => {},\n});\n\nexport function useTableControls<\n TFilter extends BaseFilterConfig = BaseFilterConfig,\n TActiveFilter extends BaseActiveFilter<TFilter> = BaseActiveFilter<TFilter>,\n>(): TableControlsContextProps<TFilter, TActiveFilter> {\n return useContext(TableControlsContext) as unknown as TableControlsContextProps<\n TFilter,\n TActiveFilter\n >;\n}\n\nexport function TableControlsProvider<\n TFilter extends BaseFilterConfig = BaseFilterConfig,\n TActiveFilter extends BaseActiveFilter<TFilter> = BaseActiveFilter<TFilter>,\n>({\n children,\n ...value\n}: TableControlsContextProps<TFilter, TActiveFilter> & { children: ReactNode }) {\n return createElement(\n TableControlsContext.Provider,\n { value: value as unknown as TableControlsContextProps },\n children,\n );\n}\n\nexport default TableControlsContext;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { n as TableControlsProps, t as TableControls } from "./TableControls-BG0OKwjj.cjs";
1
+ import { n as TableControlsProps, t as TableControls } from "./TableControls-Bkd3jhC1.cjs";
2
2
  export { TableControlsProps, TableControls as default };
@@ -1,2 +1,2 @@
1
- import { n as TableControlsProps, t as TableControls } from "./TableControls-B4gpAvl7.mjs";
1
+ import { n as TableControlsProps, t as TableControls } from "./TableControls-BZyiqk9V.mjs";
2
2
  export { TableControlsProps, TableControls as default };
@@ -1,4 +1,4 @@
1
- import { n as BaseActiveFilter, r as BaseFilterConfig } from "./types-ChCqSD9N.mjs";
1
+ import { n as BaseActiveFilter, r as BaseFilterConfig } from "./types-B34lbI2k.mjs";
2
2
  import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
@@ -18,4 +18,4 @@ declare function TableControlsProvider<TFilter extends BaseFilterConfig = BaseFi
18
18
  }): _$react.FunctionComponentElement<_$react.ProviderProps<TableControlsContextProps<BaseFilterConfig, BaseActiveFilter<BaseFilterConfig>>>>;
19
19
  //#endregion
20
20
  export { useTableControls as i, TableControlsContextProps as n, TableControlsProvider as r, TableControlsContext as t };
21
- //# sourceMappingURL=TableControlsContext-NdzzGevw.d.mts.map
21
+ //# sourceMappingURL=TableControlsContext-CleTWT7z.d.mts.map
@@ -1,4 +1,4 @@
1
- import { n as BaseActiveFilter, r as BaseFilterConfig } from "./types-BG21GgBe.cjs";
1
+ import { n as BaseActiveFilter, r as BaseFilterConfig } from "./types-C_AUGurs.cjs";
2
2
  import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
@@ -18,4 +18,4 @@ declare function TableControlsProvider<TFilter extends BaseFilterConfig = BaseFi
18
18
  }): _$react.FunctionComponentElement<_$react.ProviderProps<TableControlsContextProps<BaseFilterConfig, BaseActiveFilter<BaseFilterConfig>>>>;
19
19
  //#endregion
20
20
  export { useTableControls as i, TableControlsContextProps as n, TableControlsProvider as r, TableControlsContext as t };
21
- //# sourceMappingURL=TableControlsContext-CanIAaLW.d.cts.map
21
+ //# sourceMappingURL=TableControlsContext-D6XpuRVw.d.cts.map
@@ -1,2 +1,2 @@
1
- import { i as useTableControls, n as TableControlsContextProps, r as TableControlsProvider, t as TableControlsContext } from "./TableControlsContext-CanIAaLW.cjs";
1
+ import { i as useTableControls, n as TableControlsContextProps, r as TableControlsProvider, t as TableControlsContext } from "./TableControlsContext-D6XpuRVw.cjs";
2
2
  export { TableControlsContextProps, TableControlsProvider, TableControlsContext as default, useTableControls };
@@ -1,2 +1,2 @@
1
- import { i as useTableControls, n as TableControlsContextProps, r as TableControlsProvider, t as TableControlsContext } from "./TableControlsContext-NdzzGevw.mjs";
1
+ import { i as useTableControls, n as TableControlsContextProps, r as TableControlsProvider, t as TableControlsContext } from "./TableControlsContext-CleTWT7z.mjs";
2
2
  export { TableControlsContextProps, TableControlsProvider, TableControlsContext as default, useTableControls };
@@ -9,4 +9,4 @@ declare const TableHead: _$styled_components0.StyledComponent<"thead", any, {
9
9
  } & TableHeadProps, "role">;
10
10
  //#endregion
11
11
  export { TableHead as t };
12
- //# sourceMappingURL=TableHead-CuHNOeCj.d.mts.map
12
+ //# sourceMappingURL=TableHead-CTsZNRJm.d.cts.map
@@ -9,4 +9,4 @@ declare const TableHead: _$styled_components0.StyledComponent<"thead", any, {
9
9
  } & TableHeadProps, "role">;
10
10
  //#endregion
11
11
  export { TableHead as t };
12
- //# sourceMappingURL=TableHead-roexW17v.d.cts.map
12
+ //# sourceMappingURL=TableHead-wl78HqPT.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as TableHead } from "./TableHead-roexW17v.cjs";
1
+ import { t as TableHead } from "./TableHead-CTsZNRJm.cjs";
2
2
  export = TableHead;
@@ -1,2 +1,2 @@
1
- import { t as TableHead } from "./TableHead-CuHNOeCj.mjs";
1
+ import { t as TableHead } from "./TableHead-wl78HqPT.mjs";
2
2
  export { TableHead as default };
@@ -14,4 +14,4 @@ interface TableIconContainerProps {
14
14
  declare const TableHeaderCell: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "ref"> & TableHeaderCellProps & TableIconContainerProps & _$react.RefAttributes<HTMLTableCellElement>>;
15
15
  //#endregion
16
16
  export { TableHeaderCell as t };
17
- //# sourceMappingURL=TableHeaderCell-Cflho9R2.d.mts.map
17
+ //# sourceMappingURL=TableHeaderCell-B2yiOw4w.d.mts.map
@@ -14,4 +14,4 @@ interface TableIconContainerProps {
14
14
  declare const TableHeaderCell: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "ref"> & TableHeaderCellProps & TableIconContainerProps & _$react.RefAttributes<HTMLTableCellElement>>;
15
15
  //#endregion
16
16
  export { TableHeaderCell as t };
17
- //# sourceMappingURL=TableHeaderCell-BTGuqVXy.d.cts.map
17
+ //# sourceMappingURL=TableHeaderCell-UoY92mzR.d.cts.map
@@ -1,2 +1,2 @@
1
- import { t as TableHeaderCell } from "./TableHeaderCell-BTGuqVXy.cjs";
1
+ import { t as TableHeaderCell } from "./TableHeaderCell-UoY92mzR.cjs";
2
2
  export = TableHeaderCell;
@@ -1,2 +1,2 @@
1
- import { t as TableHeaderCell } from "./TableHeaderCell-Cflho9R2.mjs";
1
+ import { t as TableHeaderCell } from "./TableHeaderCell-B2yiOw4w.mjs";
2
2
  export { TableHeaderCell as default };
@@ -16,4 +16,4 @@ interface TableLayoutProps {
16
16
  declare const TableLayout: FC<PropsWithChildren<TableLayoutProps>>;
17
17
  //#endregion
18
18
  export { TableLayout as t };
19
- //# sourceMappingURL=TableLayout-BvVsuUVb.d.cts.map
19
+ //# sourceMappingURL=TableLayout-GyRS-Awa.d.cts.map
@@ -16,4 +16,4 @@ interface TableLayoutProps {
16
16
  declare const TableLayout: FC<PropsWithChildren<TableLayoutProps>>;
17
17
  //#endregion
18
18
  export { TableLayout as t };
19
- //# sourceMappingURL=TableLayout-D9BGrjRs.d.mts.map
19
+ //# sourceMappingURL=TableLayout-_TWUnffx.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as TableLayout } from "./TableLayout-BvVsuUVb.cjs";
1
+ import { t as TableLayout } from "./TableLayout-GyRS-Awa.cjs";
2
2
  export = TableLayout;
@@ -1,2 +1,2 @@
1
- import { t as TableLayout } from "./TableLayout-D9BGrjRs.mjs";
1
+ import { t as TableLayout } from "./TableLayout-_TWUnffx.mjs";
2
2
  export { TableLayout as default };
@@ -10,4 +10,4 @@ declare const TableRow: _$styled_components0.StyledComponent<"tr", any, {
10
10
  } & TableRowProps, "role">;
11
11
  //#endregion
12
12
  export { TableRowProps as n, TableRow as t };
13
- //# sourceMappingURL=TableRow-BfGJSGZH.d.cts.map
13
+ //# sourceMappingURL=TableRow-BVzduO4G.d.cts.map
@@ -1,4 +1,4 @@
1
- import { t as PseudoClassProps } from "./PseudoClassProps--MiDp2l2.mjs";
1
+ import { t as PseudoClassProps } from "./PseudoClassProps-ySXCGUEQ.mjs";
2
2
  import * as _$styled_components0 from "styled-components";
3
3
 
4
4
  //#region components/Table/TableRow.d.ts
@@ -10,4 +10,4 @@ declare const TableRow: _$styled_components0.StyledComponent<"tr", any, {
10
10
  } & TableRowProps, "role">;
11
11
  //#endregion
12
12
  export { TableRowProps as n, TableRow as t };
13
- //# sourceMappingURL=TableRow-CjQmDmfx.d.mts.map
13
+ //# sourceMappingURL=TableRow-C-faHbkL.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as TableRowProps, t as TableRow } from "./TableRow-BfGJSGZH.cjs";
1
+ import { n as TableRowProps, t as TableRow } from "./TableRow-BVzduO4G.cjs";
2
2
  export { TableRowProps, TableRow as default };
@@ -1,2 +1,2 @@
1
- import { n as TableRowProps, t as TableRow } from "./TableRow-CjQmDmfx.mjs";
1
+ import { n as TableRowProps, t as TableRow } from "./TableRow-C-faHbkL.mjs";
2
2
  export { TableRowProps, TableRow as default };