@powerhousedao/design-system 6.2.3-dev.3 → 6.2.3-dev.31

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 (372) hide show
  1. package/dist/{Removed-CO_5C1ce.js → Removed-OP4eTrAN.js} +1 -1
  2. package/dist/{Removed-CO_5C1ce.js.map → Removed-OP4eTrAN.js.map} +1 -1
  3. package/dist/{Tabler-FjvVqX5a.js → Tabler-rjLxlzUV.js} +1 -1
  4. package/dist/{Tabler-FjvVqX5a.js.map → Tabler-rjLxlzUV.js.map} +1 -1
  5. package/dist/button-BYcXvZXr.d.ts +13 -0
  6. package/dist/button-BYcXvZXr.d.ts.map +1 -0
  7. package/dist/{character-counter-BWoglM2P.d.ts → character-counter-BZmZZCHN.d.ts} +2 -1
  8. package/dist/character-counter-BZmZZCHN.d.ts.map +1 -0
  9. package/dist/{checkbox-CGBtXQnI.d.ts → checkbox-BmTXBcCE.d.ts} +4 -4
  10. package/dist/checkbox-BmTXBcCE.d.ts.map +1 -0
  11. package/dist/{checkbox-base-CZo-4eL0.d.ts → checkbox-base-Bm0GPWgm.d.ts} +2 -2
  12. package/dist/checkbox-base-Bm0GPWgm.d.ts.map +1 -0
  13. package/dist/{command-B5BuEBfZ.d.ts → command-DHHTsHfH.d.ts} +15 -15
  14. package/dist/command-DHHTsHfH.d.ts.map +1 -0
  15. package/dist/connect/components/toast/toast.d.ts +8 -10
  16. package/dist/connect/components/toast/toast.d.ts.map +1 -1
  17. package/dist/connect/components/toast/toast.js +4 -4
  18. package/dist/connect/components/toast/toast.js.map +1 -1
  19. package/dist/connect/index.d.ts +327 -354
  20. package/dist/connect/index.d.ts.map +1 -1
  21. package/dist/connect/index.js +263 -145
  22. package/dist/connect/index.js.map +1 -1
  23. package/dist/{content-BHWIqmio.d.ts → content-BMXLcwWY.d.ts} +3 -3
  24. package/dist/content-BMXLcwWY.d.ts.map +1 -0
  25. package/dist/{enum-field-Cct-i2Uz.d.ts → enum-field-qgV9wsyI.d.ts} +5 -5
  26. package/dist/enum-field-qgV9wsyI.d.ts.map +1 -0
  27. package/dist/{form-CKRKn0TQ.d.ts → form-Brj5AQNr.d.ts} +3 -4
  28. package/dist/form-Brj5AQNr.d.ts.map +1 -0
  29. package/dist/{form-description-CYkcMEzm.d.ts → form-description-DJrDJzJi.d.ts} +2 -1
  30. package/dist/form-description-DJrDJzJi.d.ts.map +1 -0
  31. package/dist/{form-group-C8kL6pdZ.d.ts → form-group-Ckd28lpW.d.ts} +2 -1
  32. package/dist/form-group-Ckd28lpW.d.ts.map +1 -0
  33. package/dist/{form-label-b6nQi0XO.d.ts → form-label-C8ghd_lR.d.ts} +2 -1
  34. package/dist/form-label-C8ghd_lR.d.ts.map +1 -0
  35. package/dist/{form-message-Dq72nBXz.d.ts → form-message-CnKUkvlj.d.ts} +2 -1
  36. package/dist/form-message-CnKUkvlj.d.ts.map +1 -0
  37. package/dist/form-server-error-message-D2tFtDZ0.d.ts +6 -0
  38. package/dist/form-server-error-message-D2tFtDZ0.d.ts.map +1 -0
  39. package/dist/{icon-C4QOpsdI.js → icon-01W_S_9A.js} +3 -3
  40. package/dist/{icon-C4QOpsdI.js.map → icon-01W_S_9A.js.map} +1 -1
  41. package/dist/{id-autocomplete-C-hwriS5.d.ts → id-autocomplete-CHvGhffo.d.ts} +3 -3
  42. package/dist/id-autocomplete-CHvGhffo.d.ts.map +1 -0
  43. package/dist/{id-autocomplete-input-container-DFEyPh5p.d.ts → id-autocomplete-input-container-BqRQGpcs.d.ts} +3 -3
  44. package/dist/id-autocomplete-input-container-BqRQGpcs.d.ts.map +1 -0
  45. package/dist/{id-autocomplete-list-EzLpF23C.d.ts → id-autocomplete-list-ChQsiJDg.d.ts} +3 -3
  46. package/dist/id-autocomplete-list-ChQsiJDg.d.ts.map +1 -0
  47. package/dist/{id-autocomplete-list-option-CB5B07Hi.d.ts → id-autocomplete-list-option-MsqKeLXD.d.ts} +3 -3
  48. package/dist/id-autocomplete-list-option-MsqKeLXD.d.ts.map +1 -0
  49. package/dist/{index--hDSfvJT.d.ts → index-C05uhexJ.d.ts} +14 -45
  50. package/dist/index-C05uhexJ.d.ts.map +1 -0
  51. package/dist/index-CpSqVZKp.d.ts +2 -0
  52. package/dist/index-D6Zk5OLV.d.ts +4 -0
  53. package/dist/index-DSknqh8u.d.ts +30 -0
  54. package/dist/index-DU-WgcAh.d.ts +4 -0
  55. package/dist/index-DaRBrjZI.d.ts +3 -0
  56. package/dist/index.d.ts +4 -3
  57. package/dist/index.js +2 -2
  58. package/dist/{input-BpEQjaWV.d.ts → input-WDvjJFqf.d.ts} +2 -2
  59. package/dist/input-WDvjJFqf.d.ts.map +1 -0
  60. package/dist/json-viewer-Kg0IBIt-.d.ts +7 -0
  61. package/dist/json-viewer-Kg0IBIt-.d.ts.map +1 -0
  62. package/dist/{message-list-C4mPpBBa.d.ts → message-list-D8d2ltLd.d.ts} +3 -3
  63. package/dist/message-list-D8d2ltLd.d.ts.map +1 -0
  64. package/dist/{popover-XSBOuSih.d.ts → popover-TvQxa0RU.d.ts} +2 -2
  65. package/dist/popover-TvQxa0RU.d.ts.map +1 -0
  66. package/dist/{radio-eL0Oy86J.d.ts → radio-CTS4WsNy.d.ts} +2 -2
  67. package/dist/radio-CTS4WsNy.d.ts.map +1 -0
  68. package/dist/{radio-group-Bkli6nUz.d.ts → radio-group-CROIwgYz.d.ts} +2 -2
  69. package/dist/radio-group-CROIwgYz.d.ts.map +1 -0
  70. package/dist/{radio-group-field-BN654-SO.d.ts → radio-group-field-CjX_Zt0C.d.ts} +5 -6
  71. package/dist/radio-group-field-CjX_Zt0C.d.ts.map +1 -0
  72. package/dist/{search-autocomplete-BJJkrZ1i.d.ts → search-autocomplete-COvFRZIb.d.ts} +3 -3
  73. package/dist/search-autocomplete-COvFRZIb.d.ts.map +1 -0
  74. package/dist/{select-field-C97QIhUL.d.ts → select-field-BuXjM43L.d.ts} +5 -5
  75. package/dist/select-field-BuXjM43L.d.ts.map +1 -0
  76. package/dist/{selected-content-CGsK5PR4.d.ts → selected-content-C49jmTLU.d.ts} +3 -3
  77. package/dist/selected-content-C49jmTLU.d.ts.map +1 -0
  78. package/dist/{sidebar-DOoE4krt.d.ts → sidebar-4juLhREX.d.ts} +3 -3
  79. package/dist/sidebar-4juLhREX.d.ts.map +1 -0
  80. package/dist/{sidebar-provider-C2eyz9TL.d.ts → sidebar-provider-CMG6WQWo.d.ts} +4 -8
  81. package/dist/sidebar-provider-CMG6WQWo.d.ts.map +1 -0
  82. package/dist/splitted-input-diff-DBkgDh9Q.d.ts +11 -0
  83. package/dist/splitted-input-diff-DBkgDh9Q.d.ts.map +1 -0
  84. package/dist/{src-CVV6HzQZ.js → src-CrUksCLW.js} +17 -14
  85. package/dist/{src-CVV6HzQZ.js.map → src-CrUksCLW.js.map} +1 -1
  86. package/dist/text-field-3j4fLJ-7.d.ts +9 -0
  87. package/dist/text-field-3j4fLJ-7.d.ts.map +1 -0
  88. package/dist/text-input-diff-B7iFyzTK.d.ts +12 -0
  89. package/dist/text-input-diff-B7iFyzTK.d.ts.map +1 -0
  90. package/dist/{text-input-8zXIWHLi.d.ts → text-input-tkqggbWx.d.ts} +5 -6
  91. package/dist/text-input-tkqggbWx.d.ts.map +1 -0
  92. package/dist/{tooltip-BxS9HpML.d.ts → tooltip-B4uQJPUm.d.ts} +3 -4
  93. package/dist/tooltip-B4uQJPUm.d.ts.map +1 -0
  94. package/dist/{types-Bsn62tJB.d.ts → types-BNTIrhb5.d.ts} +2 -1
  95. package/dist/types-BNTIrhb5.d.ts.map +1 -0
  96. package/dist/{types-BTq-St7H.d.ts → types-CpFPFB1a.d.ts} +2 -1
  97. package/dist/types-CpFPFB1a.d.ts.map +1 -0
  98. package/dist/{types-C04Q_Fan.d.ts → types-D4CirgNk.d.ts} +2 -2
  99. package/dist/types-D4CirgNk.d.ts.map +1 -0
  100. package/dist/{types-CNbvfWjh.d.ts → types-DDSmPhHp.d.ts} +3 -3
  101. package/dist/types-DDSmPhHp.d.ts.map +1 -0
  102. package/dist/ui/components/button/button.d.ts +3 -2
  103. package/dist/ui/components/button/button.js +1 -1
  104. package/dist/ui/components/button/button.js.map +1 -1
  105. package/dist/ui/components/character-counter/character-counter.d.ts +3 -2
  106. package/dist/ui/components/character-counter/character-counter.js.map +1 -1
  107. package/dist/ui/components/checkbox/checkbox-base.d.ts +3 -2
  108. package/dist/ui/components/checkbox/checkbox-base.js +1 -1
  109. package/dist/ui/components/checkbox/checkbox-base.js.map +1 -1
  110. package/dist/ui/components/checkbox/checkbox.d.ts +3 -2
  111. package/dist/ui/components/checkbox/checkbox.js +1 -1
  112. package/dist/ui/components/checkbox/checkbox.js.map +1 -1
  113. package/dist/ui/components/command/command.d.ts +3 -2
  114. package/dist/ui/components/command/command.js +8 -8
  115. package/dist/ui/components/command/command.js.map +1 -1
  116. package/dist/ui/components/enum-field/enum-field.d.ts +3 -2
  117. package/dist/ui/components/enum-field/enum-field.js +1 -1
  118. package/dist/ui/components/enum-field/enum-field.js.map +1 -1
  119. package/dist/ui/components/enum-field/types.d.ts +3 -2
  120. package/dist/ui/components/form/form.d.ts +3 -2
  121. package/dist/ui/components/form/form.js +1 -1
  122. package/dist/ui/components/form/form.js.map +1 -1
  123. package/dist/ui/components/form/utils.d.ts +4 -4
  124. package/dist/ui/components/form/utils.d.ts.map +1 -1
  125. package/dist/ui/components/form/utils.js.map +1 -1
  126. package/dist/ui/components/form-description/form-description.d.ts +3 -2
  127. package/dist/ui/components/form-description/form-description.js.map +1 -1
  128. package/dist/ui/components/form-group/form-group.d.ts +3 -2
  129. package/dist/ui/components/form-group/form-group.js.map +1 -1
  130. package/dist/ui/components/form-label/form-label.d.ts +3 -2
  131. package/dist/ui/components/form-label/form-label.js +3 -2
  132. package/dist/ui/components/form-label/form-label.js.map +1 -1
  133. package/dist/ui/components/form-message/form-message.d.ts +3 -2
  134. package/dist/ui/components/form-message/form-message.js.map +1 -1
  135. package/dist/ui/components/form-message/form-server-error-message.d.ts +3 -2
  136. package/dist/ui/components/form-message/form-server-error-message.js.map +1 -1
  137. package/dist/ui/components/form-message/message-list.d.ts +3 -2
  138. package/dist/ui/components/form-message/message-list.js.map +1 -1
  139. package/dist/ui/components/id-autocomplete/id-autocomplete-context.d.ts +3 -5
  140. package/dist/ui/components/id-autocomplete/id-autocomplete-context.d.ts.map +1 -1
  141. package/dist/ui/components/id-autocomplete/id-autocomplete-context.js +1 -1
  142. package/dist/ui/components/id-autocomplete/id-autocomplete-context.js.map +1 -1
  143. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.d.ts +3 -2
  144. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js +2 -2
  145. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js.map +1 -1
  146. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.d.ts +3 -2
  147. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js +2 -2
  148. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js.map +1 -1
  149. package/dist/ui/components/id-autocomplete/id-autocomplete-list.d.ts +3 -2
  150. package/dist/ui/components/id-autocomplete/id-autocomplete-list.js.map +1 -1
  151. package/dist/ui/components/id-autocomplete/id-autocomplete.d.ts +3 -2
  152. package/dist/ui/components/id-autocomplete/id-autocomplete.js +1 -1
  153. package/dist/ui/components/id-autocomplete/id-autocomplete.js.map +1 -1
  154. package/dist/ui/components/id-autocomplete/types.d.ts +3 -2
  155. package/dist/ui/components/id-autocomplete/use-id-autocomplete.d.ts +3 -2
  156. package/dist/ui/components/id-autocomplete/use-id-autocomplete.js.map +1 -1
  157. package/dist/ui/components/index.d.ts +42 -40
  158. package/dist/ui/components/input/input.d.ts +3 -2
  159. package/dist/ui/components/input/input.js +1 -1
  160. package/dist/ui/components/input/input.js.map +1 -1
  161. package/dist/ui/components/input/splitted-input-diff.d.ts +3 -2
  162. package/dist/ui/components/input/splitted-input-diff.js +10 -9
  163. package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
  164. package/dist/ui/components/input/subcomponent/input-diff.d.ts +2 -11
  165. package/dist/ui/components/input/subcomponent/input-diff.d.ts.map +1 -1
  166. package/dist/ui/components/input/subcomponent/input-diff.js.map +1 -1
  167. package/dist/ui/components/input/subcomponent/text-diff.d.ts +3 -12
  168. package/dist/ui/components/input/subcomponent/text-diff.d.ts.map +1 -1
  169. package/dist/ui/components/input/subcomponent/text-diff.js.map +1 -1
  170. package/dist/ui/components/json-viewer/json-viewer.d.ts +3 -2
  171. package/dist/ui/components/json-viewer/json-viewer.js +1 -1
  172. package/dist/ui/components/json-viewer/json-viewer.js.map +1 -1
  173. package/dist/ui/components/popover/popover.d.ts +3 -2
  174. package/dist/ui/components/popover/popover.js +1 -1
  175. package/dist/ui/components/popover/popover.js.map +1 -1
  176. package/dist/ui/components/radio-group-field/radio-group-field.d.ts +3 -2
  177. package/dist/ui/components/radio-group-field/radio-group-field.js +4 -3
  178. package/dist/ui/components/radio-group-field/radio-group-field.js.map +1 -1
  179. package/dist/ui/components/radio-group-field/radio-group.d.ts +3 -2
  180. package/dist/ui/components/radio-group-field/radio-group.js +1 -1
  181. package/dist/ui/components/radio-group-field/radio-group.js.map +1 -1
  182. package/dist/ui/components/radio-group-field/radio.d.ts +3 -2
  183. package/dist/ui/components/radio-group-field/radio.js +1 -1
  184. package/dist/ui/components/radio-group-field/radio.js.map +1 -1
  185. package/dist/ui/components/search-autocomplete/index.d.ts +6 -4
  186. package/dist/ui/components/search-autocomplete/search-autocomplete.d.ts +3 -2
  187. package/dist/ui/components/search-autocomplete/search-autocomplete.js.map +1 -1
  188. package/dist/ui/components/search-autocomplete/types.d.ts +3 -2
  189. package/dist/ui/components/search-autocomplete/use-search-autocomplete.d.ts +3 -2
  190. package/dist/ui/components/search-autocomplete/use-search-autocomplete.js.map +1 -1
  191. package/dist/ui/components/select-field/content.d.ts +3 -2
  192. package/dist/ui/components/select-field/content.js +1 -1
  193. package/dist/ui/components/select-field/content.js.map +1 -1
  194. package/dist/ui/components/select-field/select-field.d.ts +3 -2
  195. package/dist/ui/components/select-field/select-field.js +1 -1
  196. package/dist/ui/components/select-field/select-field.js.map +1 -1
  197. package/dist/ui/components/select-field/selected-content.d.ts +3 -2
  198. package/dist/ui/components/select-field/selected-content.js +1 -1
  199. package/dist/ui/components/select-field/selected-content.js.map +1 -1
  200. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts +3 -4
  201. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts.map +1 -1
  202. package/dist/ui/components/select-field/subcomponents/CommandItemList.js +1 -1
  203. package/dist/ui/components/select-field/subcomponents/CommandItemList.js.map +1 -1
  204. package/dist/ui/components/select-field/use-select-field.d.ts +4 -12
  205. package/dist/ui/components/select-field/use-select-field.d.ts.map +1 -1
  206. package/dist/ui/components/select-field/use-select-field.js.map +1 -1
  207. package/dist/ui/components/sidebar/index.d.ts +6 -4
  208. package/dist/ui/components/sidebar/sidebar.d.ts +3 -2
  209. package/dist/ui/components/sidebar/sidebar.js +1 -1
  210. package/dist/ui/components/sidebar/sidebar.js.map +1 -1
  211. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.d.ts +2 -7
  212. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.d.ts.map +1 -1
  213. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js +1 -1
  214. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js.map +1 -1
  215. package/dist/ui/components/sidebar/subcomponents/sidebar-header.d.ts +2 -2
  216. package/dist/ui/components/sidebar/subcomponents/sidebar-header.d.ts.map +1 -1
  217. package/dist/ui/components/sidebar/subcomponents/sidebar-header.js.map +1 -1
  218. package/dist/ui/components/sidebar/subcomponents/sidebar-item.d.ts +3 -18
  219. package/dist/ui/components/sidebar/subcomponents/sidebar-item.d.ts.map +1 -1
  220. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js +3 -3
  221. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js.map +1 -1
  222. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.d.ts +2 -4
  223. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.d.ts.map +1 -1
  224. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js.map +1 -1
  225. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/index.d.ts +4 -2
  226. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.d.ts +3 -2
  227. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.js +2 -2
  228. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-provider.js.map +1 -1
  229. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.d.ts +7 -8
  230. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.d.ts.map +1 -1
  231. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.js +1 -1
  232. package/dist/ui/components/sidebar/subcomponents/sidebar-provider/sidebar-reducer.js.map +1 -1
  233. package/dist/ui/components/sidebar/subcomponents/sidebar-search/index.d.ts +2 -1
  234. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.d.ts +2 -2
  235. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.d.ts.map +1 -1
  236. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js.map +1 -1
  237. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.d.ts +2 -2
  238. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.d.ts.map +1 -1
  239. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js.map +1 -1
  240. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.d.ts +2 -2
  241. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.d.ts.map +1 -1
  242. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js +1 -1
  243. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js.map +1 -1
  244. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.d.ts +2 -8
  245. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.d.ts.map +1 -1
  246. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js +2 -1
  247. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js.map +1 -1
  248. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.d.ts +2 -4
  249. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.d.ts.map +1 -1
  250. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton.js.map +1 -1
  251. package/dist/ui/components/sidebar/subcomponents/status-icon.d.ts +3 -9
  252. package/dist/ui/components/sidebar/subcomponents/status-icon.d.ts.map +1 -1
  253. package/dist/ui/components/sidebar/subcomponents/status-icon.js +1 -1
  254. package/dist/ui/components/sidebar/subcomponents/status-icon.js.map +1 -1
  255. package/dist/ui/components/sidebar/types.d.ts +3 -2
  256. package/dist/ui/components/sidebar/types.js +1 -1
  257. package/dist/ui/components/sidebar/types.js.map +1 -1
  258. package/dist/ui/components/sidebar/use-ellipsis.d.ts +2 -2
  259. package/dist/ui/components/sidebar/use-ellipsis.d.ts.map +1 -1
  260. package/dist/ui/components/sidebar/use-ellipsis.js.map +1 -1
  261. package/dist/ui/components/sidebar/use-sidebar-resize.d.ts +3 -9
  262. package/dist/ui/components/sidebar/use-sidebar-resize.d.ts.map +1 -1
  263. package/dist/ui/components/sidebar/use-sidebar-resize.js.map +1 -1
  264. package/dist/ui/components/sidebar/utils.d.ts +10 -11
  265. package/dist/ui/components/sidebar/utils.d.ts.map +1 -1
  266. package/dist/ui/components/sidebar/utils.js.map +1 -1
  267. package/dist/ui/components/text-field/text-field.d.ts +3 -2
  268. package/dist/ui/components/text-field/text-field.js +3 -2
  269. package/dist/ui/components/text-field/text-field.js.map +1 -1
  270. package/dist/ui/components/text-input/text-input-diff.d.ts +3 -2
  271. package/dist/ui/components/text-input/text-input-diff.js.map +1 -1
  272. package/dist/ui/components/text-input/text-input.d.ts +3 -2
  273. package/dist/ui/components/text-input/text-input.js +1 -1
  274. package/dist/ui/components/text-input/text-input.js.map +1 -1
  275. package/dist/ui/components/text-input/types.d.ts +3 -2
  276. package/dist/ui/components/tooltip/tooltip.d.ts +3 -2
  277. package/dist/ui/components/tooltip/tooltip.js +1 -1
  278. package/dist/ui/components/tooltip/tooltip.js.map +1 -1
  279. package/dist/ui/components/types.d.ts +3 -2
  280. package/dist/ui/components/value-transformer/value-transformer.d.ts +3 -2
  281. package/dist/ui/components/value-transformer/value-transformer.js +5 -3
  282. package/dist/ui/components/value-transformer/value-transformer.js.map +1 -1
  283. package/dist/ui/components/with-field-validation/with-field-validation.d.ts +3 -2
  284. package/dist/ui/components/with-field-validation/with-field-validation.js +1 -1
  285. package/dist/ui/components/with-field-validation/with-field-validation.js.map +1 -1
  286. package/dist/ui/index.d.ts +44 -42
  287. package/dist/ui/lib/date-picker.d.ts +4 -5
  288. package/dist/ui/lib/date-picker.d.ts.map +1 -1
  289. package/dist/ui/lib/date-picker.js +2 -1
  290. package/dist/ui/lib/date-picker.js.map +1 -1
  291. package/dist/ui/lib/date-time-picker.d.ts +6 -6
  292. package/dist/ui/lib/date-time-picker.d.ts.map +1 -1
  293. package/dist/ui/lib/date-time-picker.js.map +1 -1
  294. package/dist/ui/lib/deep-equal.d.ts +2 -2
  295. package/dist/ui/lib/deep-equal.d.ts.map +1 -1
  296. package/dist/ui/lib/deep-equal.js.map +1 -1
  297. package/dist/ui/lib/index.d.ts +2 -1
  298. package/dist/ui/lib/is-empty.d.ts +2 -2
  299. package/dist/ui/lib/is-empty.d.ts.map +1 -1
  300. package/dist/ui/lib/is-empty.js.map +1 -1
  301. package/dist/ui/lib/shared-value-transformers.d.ts +3 -4
  302. package/dist/ui/lib/shared-value-transformers.d.ts.map +1 -1
  303. package/dist/ui/lib/shared-value-transformers.js.map +1 -1
  304. package/dist/ui/lib/types.d.ts +3 -2
  305. package/dist/ui/lib/value-cast.d.ts +4 -4
  306. package/dist/ui/lib/value-cast.d.ts.map +1 -1
  307. package/dist/ui/lib/value-cast.js +10 -4
  308. package/dist/ui/lib/value-cast.js.map +1 -1
  309. package/dist/ui/types.d.ts +4 -3
  310. package/dist/{use-id-autocomplete-By7YSChC.d.ts → use-id-autocomplete-wdw3CfYc.d.ts} +5 -16
  311. package/dist/use-id-autocomplete-wdw3CfYc.d.ts.map +1 -0
  312. package/dist/{use-search-autocomplete-IfcQ_gKh.d.ts → use-search-autocomplete-vSvcsvcB.d.ts} +5 -6
  313. package/dist/use-search-autocomplete-vSvcsvcB.d.ts.map +1 -0
  314. package/dist/{value-transformer-DQjqtNih.d.ts → value-transformer-BAD6r8Ol.d.ts} +5 -7
  315. package/dist/value-transformer-BAD6r8Ol.d.ts.map +1 -0
  316. package/dist/{with-field-validation-Di5D8vU-.d.ts → with-field-validation-Bt02MQn2.d.ts} +3 -3
  317. package/dist/with-field-validation-Bt02MQn2.d.ts.map +1 -0
  318. package/package.json +8 -9
  319. package/dist/button-C8doazjv.d.ts +0 -15
  320. package/dist/button-C8doazjv.d.ts.map +0 -1
  321. package/dist/character-counter-BWoglM2P.d.ts.map +0 -1
  322. package/dist/checkbox-CGBtXQnI.d.ts.map +0 -1
  323. package/dist/checkbox-base-CZo-4eL0.d.ts.map +0 -1
  324. package/dist/command-B5BuEBfZ.d.ts.map +0 -1
  325. package/dist/content-BHWIqmio.d.ts.map +0 -1
  326. package/dist/enum-field-Cct-i2Uz.d.ts.map +0 -1
  327. package/dist/form-CKRKn0TQ.d.ts.map +0 -1
  328. package/dist/form-description-CYkcMEzm.d.ts.map +0 -1
  329. package/dist/form-group-C8kL6pdZ.d.ts.map +0 -1
  330. package/dist/form-label-b6nQi0XO.d.ts.map +0 -1
  331. package/dist/form-message-Dq72nBXz.d.ts.map +0 -1
  332. package/dist/form-server-error-message-DXbaiTfF.d.ts +0 -7
  333. package/dist/form-server-error-message-DXbaiTfF.d.ts.map +0 -1
  334. package/dist/id-autocomplete-C-hwriS5.d.ts.map +0 -1
  335. package/dist/id-autocomplete-input-container-DFEyPh5p.d.ts.map +0 -1
  336. package/dist/id-autocomplete-list-EzLpF23C.d.ts.map +0 -1
  337. package/dist/id-autocomplete-list-option-CB5B07Hi.d.ts.map +0 -1
  338. package/dist/index--hDSfvJT.d.ts.map +0 -1
  339. package/dist/index--okzibnx.d.ts +0 -1
  340. package/dist/index-BLwMeReG.d.ts +0 -1
  341. package/dist/index-Cw3C7_1f.d.ts +0 -1
  342. package/dist/index-E7Wvm5uX.d.ts +0 -1
  343. package/dist/index-J3R2mDFQ.d.ts +0 -1
  344. package/dist/input-BpEQjaWV.d.ts.map +0 -1
  345. package/dist/json-viewer-DaTgmzkS.d.ts +0 -8
  346. package/dist/json-viewer-DaTgmzkS.d.ts.map +0 -1
  347. package/dist/message-list-C4mPpBBa.d.ts.map +0 -1
  348. package/dist/popover-XSBOuSih.d.ts.map +0 -1
  349. package/dist/radio-eL0Oy86J.d.ts.map +0 -1
  350. package/dist/radio-group-Bkli6nUz.d.ts.map +0 -1
  351. package/dist/radio-group-field-BN654-SO.d.ts.map +0 -1
  352. package/dist/search-autocomplete-BJJkrZ1i.d.ts.map +0 -1
  353. package/dist/select-field-C97QIhUL.d.ts.map +0 -1
  354. package/dist/selected-content-CGsK5PR4.d.ts.map +0 -1
  355. package/dist/sidebar-DOoE4krt.d.ts.map +0 -1
  356. package/dist/sidebar-provider-C2eyz9TL.d.ts.map +0 -1
  357. package/dist/splitted-input-diff-CwPedpov.d.ts +0 -18
  358. package/dist/splitted-input-diff-CwPedpov.d.ts.map +0 -1
  359. package/dist/text-field-DSInH67J.d.ts +0 -10
  360. package/dist/text-field-DSInH67J.d.ts.map +0 -1
  361. package/dist/text-input-8zXIWHLi.d.ts.map +0 -1
  362. package/dist/text-input-diff-B0vLSKQm.d.ts +0 -20
  363. package/dist/text-input-diff-B0vLSKQm.d.ts.map +0 -1
  364. package/dist/tooltip-BxS9HpML.d.ts.map +0 -1
  365. package/dist/types-BTq-St7H.d.ts.map +0 -1
  366. package/dist/types-Bsn62tJB.d.ts.map +0 -1
  367. package/dist/types-C04Q_Fan.d.ts.map +0 -1
  368. package/dist/types-CNbvfWjh.d.ts.map +0 -1
  369. package/dist/use-id-autocomplete-By7YSChC.d.ts.map +0 -1
  370. package/dist/use-search-autocomplete-IfcQ_gKh.d.ts.map +0 -1
  371. package/dist/value-transformer-DQjqtNih.d.ts.map +0 -1
  372. package/dist/with-field-validation-Di5D8vU-.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
- import { _ as DropdownMenuTrigger, c as SidebarHeader, d as PackageAnimation, f as Modal, h as DropdownMenuItem, l as SidebarPanel, m as DropdownMenuContent, n as usePagination, o as Sidebar, p as DropdownMenu, s as SidebarFooter, u as Pagination, v as PowerhouseButton } from "../src-CVV6HzQZ.js";
2
- import { n as getDimensions, t as Icon } from "../icon-C4QOpsdI.js";
1
+ import { _ as DropdownMenuTrigger, c as SidebarHeader, d as PackageAnimation, f as Modal, h as DropdownMenuItem, l as SidebarPanel, m as DropdownMenuContent, n as usePagination, o as Sidebar, p as DropdownMenu, s as SidebarFooter, u as Pagination, v as PowerhouseButton } from "../src-CrUksCLW.js";
2
+ import { n as getDimensions, t as Icon } from "../icon-01W_S_9A.js";
3
3
  import { Popover, PopoverContent, PopoverTrigger } from "../ui/components/popover/popover.js";
4
4
  import { SelectFieldRaw } from "../ui/components/select-field/select-field.js";
5
5
  import { Input } from "../ui/components/input/input.js";
@@ -527,8 +527,9 @@ function ModalButton(props) {
527
527
  const { variant, className, ...rest } = props;
528
528
  const confirmStyle = twMerge(defaultStyle, "bg-primary text-primary-foreground");
529
529
  const cancelStyle = twMerge(defaultStyle, "bg-muted text-muted-foreground");
530
+ const variantStyle = twMerge(variant === "confirm" ? confirmStyle : cancelStyle, className);
530
531
  return /* @__PURE__ */ jsx("button", {
531
- className: twMerge(variant === "confirm" ? confirmStyle : cancelStyle, className),
532
+ className: variantStyle,
532
533
  ...rest
533
534
  });
534
535
  }
@@ -702,7 +703,7 @@ function SchemaTreeSidebar({ schema, tables, selectedTable, onSelectTable, onRef
702
703
  //#endregion
703
704
  //#region src/connect/components/select/select.tsx
704
705
  function fixedForwardRef(render) {
705
- return /* @__PURE__ */ forwardRef(render);
706
+ return /*#__PURE__*/ forwardRef(render);
706
707
  }
707
708
  const ConnectSelect = /* @__PURE__ */ fixedForwardRef(function Select(props, ref) {
708
709
  const { items, value, id, onChange, containerClassName, menuClassName, itemClassName, absolutePositionMenu = false, borderRadius = "6px", listClassName } = props;
@@ -1279,9 +1280,10 @@ function DBExplorer({ schema, getTables, getTableRows, getDefaultSort, pageSize
1279
1280
  ]);
1280
1281
  const handleCopyAll = useCallback(async () => {
1281
1282
  if (!selectedTable) return "";
1283
+ const limit = pagination.total ?? 1e6;
1282
1284
  return rowsToCsv((await getTableRows(selectedTable, {
1283
1285
  schema,
1284
- limit: pagination.total ?? 1e6,
1286
+ limit,
1285
1287
  offset: 0,
1286
1288
  sort,
1287
1289
  filters
@@ -1638,9 +1640,7 @@ const SEQUENCE = [
1638
1640
  }
1639
1641
  ];
1640
1642
  const ANIM_DUR = 460;
1641
- const HOLD = 800;
1642
- const LAST_DROP = 1220;
1643
- const LOOP_TOTAL = LAST_DROP + ANIM_DUR + HOLD + 1040 + ANIM_DUR + 400;
1643
+ const LOOP_TOTAL = 4380;
1644
1644
  const DROP_STYLE = `brickDrop ${ANIM_DUR}ms cubic-bezier(0.28, 1.08, 0.58, 1) forwards`;
1645
1645
  const FALL_STYLE = `brickFall ${ANIM_DUR}ms cubic-bezier(0.28, 1.08, 0.58, 1) forwards`;
1646
1646
  const PATHS = {
@@ -1699,7 +1699,7 @@ function LogoAnimation({ size = 48, className = "" }) {
1699
1699
  clearTimers();
1700
1700
  resetAll();
1701
1701
  SEQUENCE.forEach(({ id, dropDelay }) => runDrop(id, dropDelay));
1702
- const fallStart = LAST_DROP + ANIM_DUR + HOLD;
1702
+ const fallStart = 2480;
1703
1703
  SEQUENCE.forEach(({ id, fallDelay }) => runFall(id, fallStart + fallDelay));
1704
1704
  schedule(startLoop, LOOP_TOTAL);
1705
1705
  }
@@ -1798,7 +1798,7 @@ function Tabs({ children, defaultValue, onValueChange, listClassName }) {
1798
1798
  children: /* @__PURE__ */ jsx(List, {
1799
1799
  className: "flex w-full gap-x-2 rounded-xl p-1 text-sm font-semibold text-foreground outline-none",
1800
1800
  children: React.Children.map(children, (child, _i) => {
1801
- if (!/* @__PURE__ */ React.isValidElement(child)) return;
1801
+ if (!/*#__PURE__*/ React.isValidElement(child)) return;
1802
1802
  const props = child.props;
1803
1803
  const value = resolveTabValue(props);
1804
1804
  return /* @__PURE__ */ jsx(Trigger$2, {
@@ -1812,10 +1812,11 @@ function Tabs({ children, defaultValue, onValueChange, listClassName }) {
1812
1812
  }), /* @__PURE__ */ jsx("div", {
1813
1813
  className: "mt-3 min-h-0 flex-1 rounded-md bg-background",
1814
1814
  children: React.Children.map(children, (child, i) => {
1815
- if (!/* @__PURE__ */ React.isValidElement(child)) return;
1815
+ if (!/*#__PURE__*/ React.isValidElement(child)) return;
1816
+ const value = resolveTabValue(child.props);
1816
1817
  return /* @__PURE__ */ jsx(Content$2, {
1817
1818
  className: "h-full",
1818
- value: resolveTabValue(child.props),
1819
+ value,
1819
1820
  children: child
1820
1821
  }, i);
1821
1822
  })
@@ -1954,7 +1955,8 @@ const getBarHeight = (size = 0) => {
1954
1955
  const formatTimestamp$1 = (isoString) => {
1955
1956
  if (!isoString) return "";
1956
1957
  try {
1957
- return format(parseISO(isoString), "HH:mm, dd, MMMM");
1958
+ const date = parseISO(isoString);
1959
+ return format(date, "HH:mm, dd, MMMM");
1958
1960
  } catch {
1959
1961
  return isoString;
1960
1962
  }
@@ -2239,12 +2241,11 @@ function ToolbarRedoButton(props) {
2239
2241
  }) } = props;
2240
2242
  const { redo, canRedo } = useRedo(document?.header.id);
2241
2243
  const onClick = makeOnClick(document, onClickOverride, redo);
2242
- const disabled = !canRedo;
2243
2244
  return /* @__PURE__ */ jsx(ToolbarButton, {
2244
2245
  "data-testid": "toolbar-redo-button",
2245
2246
  "aria-label": "Redo",
2246
2247
  className,
2247
- disabled,
2248
+ disabled: !canRedo,
2248
2249
  onClick,
2249
2250
  children
2250
2251
  });
@@ -2617,10 +2618,16 @@ function ControlsContainerSlot(props) {
2617
2618
  //#endregion
2618
2619
  //#region src/connect/components/drive-auth-gate/drive-auth-gate.tsx
2619
2620
  function DriveAuthGate(props) {
2620
- const { mode = "login", onLogin, onLogout, className } = props;
2621
- return /* @__PURE__ */ jsx("div", {
2622
- className: twMerge("flex w-[28rem] max-w-[calc(100%-2rem)] flex-col items-center gap-4 rounded-3xl bg-background p-8 text-center shadow-2xl ring-1 ring-black/5 dark:ring-white/10", className),
2623
- children: mode === "login" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
2621
+ const { mode = "login", onLogin, onLogout, onClose, className } = props;
2622
+ return /* @__PURE__ */ jsxs("div", {
2623
+ className: twMerge("relative flex w-[28rem] max-w-[calc(100%-2rem)] flex-col items-center gap-4 rounded-3xl bg-background p-8 text-center shadow-2xl ring-1 ring-black/5 dark:ring-white/10", className),
2624
+ children: [onClose ? /* @__PURE__ */ jsx("button", {
2625
+ type: "button",
2626
+ "aria-label": "Close",
2627
+ onClick: onClose,
2628
+ className: "absolute top-4 right-4 flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
2629
+ children: /* @__PURE__ */ jsx(CloseGlyph, {})
2630
+ }) : null, mode === "login" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
2624
2631
  /* @__PURE__ */ jsx("h2", {
2625
2632
  className: "text-xl font-semibold text-foreground",
2626
2633
  children: "Log in to access this drive"
@@ -2654,7 +2661,21 @@ function DriveAuthGate(props) {
2654
2661
  className: "mt-2 flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-2.5 text-sm font-semibold text-foreground shadow-sm transition-colors hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
2655
2662
  children: "Log out"
2656
2663
  })
2657
- ] })
2664
+ ] })]
2665
+ });
2666
+ }
2667
+ function CloseGlyph() {
2668
+ return /* @__PURE__ */ jsx("svg", {
2669
+ "aria-hidden": "true",
2670
+ focusable: "false",
2671
+ width: 14,
2672
+ height: 14,
2673
+ viewBox: "0 0 14 14",
2674
+ fill: "none",
2675
+ stroke: "currentColor",
2676
+ strokeWidth: 1.5,
2677
+ strokeLinecap: "round",
2678
+ children: /* @__PURE__ */ jsx("path", { d: "M2 2 L12 12 M12 2 L2 12" })
2658
2679
  });
2659
2680
  }
2660
2681
  //#endregion
@@ -2840,7 +2861,7 @@ function UploadFileItemStatusRow(props) {
2840
2861
  }
2841
2862
  //#endregion
2842
2863
  //#region src/connect/components/upload-file-item/upload-file-item.tsx
2843
- const UploadFileItem = /* @__PURE__ */ forwardRef(function UploadFileItem(props, ref) {
2864
+ const UploadFileItem = /*#__PURE__*/ forwardRef(function UploadFileItem(props, ref) {
2844
2865
  const { fileName, fileSize, status, documentType, progress = 0, errorDetails, onClose, onOpenDocument, onFindResolution, className, ...delegatedProps } = props;
2845
2866
  return /* @__PURE__ */ jsxs("div", {
2846
2867
  ref,
@@ -3080,7 +3101,7 @@ function uploadsReducer(state, action) {
3080
3101
  }
3081
3102
  }
3082
3103
  function useUploadTracker(useLocalStorage = false, driveId) {
3083
- const [uploads, dispatch] = useReducer(uploadsReducer, useCallback(() => {
3104
+ const getInitialState = useCallback(() => {
3084
3105
  if (useLocalStorage && driveId) try {
3085
3106
  const stored = localStorage.getItem(`uploadTracker_${driveId}`);
3086
3107
  if (stored) return JSON.parse(stored);
@@ -3090,7 +3111,8 @@ function useUploadTracker(useLocalStorage = false, driveId) {
3090
3111
  return {};
3091
3112
  }
3092
3113
  return {};
3093
- }, [useLocalStorage, driveId])());
3114
+ }, [useLocalStorage, driveId]);
3115
+ const [uploads, dispatch] = useReducer(uploadsReducer, getInitialState());
3094
3116
  useEffect(() => {
3095
3117
  if (useLocalStorage && driveId) try {
3096
3118
  localStorage.setItem(`uploadTracker_${driveId}`, JSON.stringify(uploads));
@@ -3132,11 +3154,12 @@ function useUploadTracker(useLocalStorage = false, driveId) {
3132
3154
  });
3133
3155
  };
3134
3156
  try {
3157
+ const fileNode = await onAddFile(file, parent, progressCallback);
3135
3158
  dispatch({
3136
3159
  type: "SET_FILE_NODE",
3137
3160
  payload: {
3138
3161
  id: fileId,
3139
- fileNode: await onAddFile(file, parent, progressCallback) || void 0
3162
+ fileNode: fileNode || void 0
3140
3163
  }
3141
3164
  });
3142
3165
  } catch (error) {
@@ -3988,7 +4011,7 @@ const Footer = ({ children, className, ...props }) => {
3988
4011
  };
3989
4012
  //#endregion
3990
4013
  //#region src/connect/components/form-input/form-input.tsx
3991
- const FormInput = /* @__PURE__ */ forwardRef(function FormInput(props, ref) {
4014
+ const FormInput = /*#__PURE__*/ forwardRef(function FormInput(props, ref) {
3992
4015
  const { icon, errorMessage, isDirty, containerClassName, inputClassName, errorMessageClassName, hideErrors = false, ...delegatedProps } = props;
3993
4016
  const type = props.type ?? "text";
3994
4017
  const isError = !!errorMessage;
@@ -4086,7 +4109,7 @@ function AddLocalDriveForm(props) {
4086
4109
  }
4087
4110
  //#endregion
4088
4111
  //#region src/connect/components/toggle/toggle.tsx
4089
- const Toggle = /* @__PURE__ */ forwardRef(function Toggle(props, ref) {
4112
+ const Toggle = /*#__PURE__*/ forwardRef(function Toggle(props, ref) {
4090
4113
  return /* @__PURE__ */ jsxs("label", {
4091
4114
  className: "relative cursor-pointer items-center",
4092
4115
  htmlFor: props.id,
@@ -4101,7 +4124,7 @@ const Toggle = /* @__PURE__ */ forwardRef(function Toggle(props, ref) {
4101
4124
  });
4102
4125
  //#endregion
4103
4126
  //#region src/connect/components/form/inputs/available-offline-toggle.tsx
4104
- const AvailableOfflineToggle = /* @__PURE__ */ forwardRef(function AvailableOfflineToggle(props, ref) {
4127
+ const AvailableOfflineToggle = /*#__PURE__*/ forwardRef(function AvailableOfflineToggle(props, ref) {
4105
4128
  return /* @__PURE__ */ jsxs("div", {
4106
4129
  className: "flex items-center rounded-md border border-border bg-background p-3 text-foreground",
4107
4130
  children: [/* @__PURE__ */ jsxs("div", {
@@ -4470,7 +4493,8 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4470
4493
  clearResults();
4471
4494
  setStatus("running");
4472
4495
  try {
4473
- setValidationResult(await onValidate(documentId.trim(), branch.trim() || void 0));
4496
+ const result = await onValidate(documentId.trim(), branch.trim() || void 0);
4497
+ setValidationResult(result);
4474
4498
  setStatus("done");
4475
4499
  } catch (err) {
4476
4500
  setError(err instanceof Error ? err.message : String(err));
@@ -4487,7 +4511,8 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4487
4511
  clearResults();
4488
4512
  setStatus("running");
4489
4513
  try {
4490
- setRebuildResult(await onRebuildKeyframes(documentId.trim(), branch.trim() || void 0));
4514
+ const result = await onRebuildKeyframes(documentId.trim(), branch.trim() || void 0);
4515
+ setRebuildResult(result);
4491
4516
  setStatus("done");
4492
4517
  } catch (err) {
4493
4518
  setError(err instanceof Error ? err.message : String(err));
@@ -4504,7 +4529,8 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4504
4529
  clearResults();
4505
4530
  setStatus("running");
4506
4531
  try {
4507
- setRebuildResult(await onRebuildSnapshots(documentId.trim(), branch.trim() || void 0));
4532
+ const result = await onRebuildSnapshots(documentId.trim(), branch.trim() || void 0);
4533
+ setRebuildResult(result);
4508
4534
  setStatus("done");
4509
4535
  } catch (err) {
4510
4536
  setError(err instanceof Error ? err.message : String(err));
@@ -4941,8 +4967,14 @@ function CreateDocumentWithTypeModal(props) {
4941
4967
  value: PLACEHOLDER_KEY,
4942
4968
  displayValue: "Select document type…"
4943
4969
  }, ...typeItems] : typeItems;
4970
+ const resetTimer = useRef(void 0);
4971
+ useEffect(() => () => {
4972
+ if (resetTimer.current !== void 0) clearTimeout(resetTimer.current);
4973
+ }, []);
4944
4974
  const resetAfterClose = useCallback(() => {
4945
- setTimeout(() => {
4975
+ if (resetTimer.current !== void 0) clearTimeout(resetTimer.current);
4976
+ resetTimer.current = setTimeout(() => {
4977
+ resetTimer.current = void 0;
4946
4978
  setDocumentName("");
4947
4979
  setIsNameValid(false);
4948
4980
  setSelectedKey(PLACEHOLDER_KEY);
@@ -5077,7 +5109,7 @@ function ConnectDeleteItemModal(props) {
5077
5109
  }
5078
5110
  //#endregion
5079
5111
  //#region src/connect/components/form/inputs/drive-name-input.tsx
5080
- const DriveNameInput = /* @__PURE__ */ forwardRef(function DriveNameInput(props, ref) {
5112
+ const DriveNameInput = /*#__PURE__*/ forwardRef(function DriveNameInput(props, ref) {
5081
5113
  return /* @__PURE__ */ jsx(FormInput, {
5082
5114
  ...props,
5083
5115
  icon: props.icon ?? /* @__PURE__ */ jsx(Icon, { name: "Drive" }),
@@ -5461,7 +5493,8 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5461
5493
  const [error, setError] = useState(null);
5462
5494
  const loadProcessors = useCallback(async () => {
5463
5495
  try {
5464
- setProcessors(await getProcessors());
5496
+ const result = await getProcessors();
5497
+ setProcessors(result);
5465
5498
  setError(null);
5466
5499
  } catch (e) {
5467
5500
  setError(e instanceof Error ? e.message : String(e));
@@ -5491,9 +5524,10 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5491
5524
  }
5492
5525
  }, [onRetry, loadProcessors]);
5493
5526
  const handleSort = (columnKey) => {
5527
+ const newDirection = sort?.column === columnKey && sort.direction === "asc" ? "desc" : "asc";
5494
5528
  setSort({
5495
5529
  column: columnKey,
5496
- direction: sort?.column === columnKey && sort.direction === "asc" ? "desc" : "asc"
5530
+ direction: newDirection
5497
5531
  });
5498
5532
  };
5499
5533
  const sortedProcessors = sortProcessors(processors, sort);
@@ -5815,7 +5849,8 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5815
5849
  const [actionInProgress, setActionInProgress] = useState(false);
5816
5850
  const [selectedJob, setSelectedJob] = useState(null);
5817
5851
  const loadState = useCallback(async () => {
5818
- setState(await getQueueState());
5852
+ const newState = await getQueueState();
5853
+ setState(newState);
5819
5854
  setLoading(false);
5820
5855
  }, [getQueueState]);
5821
5856
  useEffect(() => {
@@ -5842,9 +5877,10 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5842
5877
  loadState
5843
5878
  ]);
5844
5879
  const handleSort = (columnKey) => {
5880
+ const newDirection = sort?.column === columnKey && sort.direction === "asc" ? "desc" : "asc";
5845
5881
  setSort({
5846
5882
  column: columnKey,
5847
- direction: sort?.column === columnKey && sort.direction === "asc" ? "desc" : "asc"
5883
+ direction: newDirection
5848
5884
  });
5849
5885
  };
5850
5886
  const sortedJobs = sortJobs([...state.executingJobs.map((job) => ({
@@ -6045,8 +6081,9 @@ const stateStyles = {
6045
6081
  disconnected: "bg-muted text-foreground"
6046
6082
  };
6047
6083
  function ConnectionStateBadge({ state, failureCount }) {
6084
+ const style = stateStyles[state] ?? "bg-muted text-foreground";
6048
6085
  return /* @__PURE__ */ jsxs("span", {
6049
- className: twMerge("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", stateStyles[state] ?? "bg-muted text-foreground"),
6086
+ className: twMerge("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", style),
6050
6087
  children: [state, failureCount > 0 && /* @__PURE__ */ jsxs("span", {
6051
6088
  className: "text-xs opacity-75",
6052
6089
  children: [
@@ -6781,7 +6818,8 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6781
6818
  const columns = useMemo(() => hasRowActions ? [...BASE_COLUMNS, ACTIONS_COLUMN] : BASE_COLUMNS, [hasRowActions]);
6782
6819
  const loadRemotes = useCallback(async () => {
6783
6820
  setLoading(true);
6784
- setRemotes(await getRemotes());
6821
+ const data = await getRemotes();
6822
+ setRemotes(data);
6785
6823
  setLoading(false);
6786
6824
  }, [getRemotes]);
6787
6825
  useEffect(() => {
@@ -6789,7 +6827,10 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6789
6827
  }, [loadRemotes]);
6790
6828
  const handleRefresh = useCallback(async () => {
6791
6829
  await loadRemotes();
6792
- if (selectedRemote) setSelectedRemote(remotes.find((r) => r.meta.id === selectedRemote.meta.id));
6830
+ if (selectedRemote) {
6831
+ const updated = remotes.find((r) => r.meta.id === selectedRemote.meta.id);
6832
+ setSelectedRemote(updated);
6833
+ }
6793
6834
  }, [
6794
6835
  loadRemotes,
6795
6836
  selectedRemote,
@@ -6797,9 +6838,10 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6797
6838
  ]);
6798
6839
  const handleSort = (columnKey) => {
6799
6840
  if (columnKey === "channel" || columnKey === "actions" || columnKey === "status") return;
6841
+ const newDirection = sort?.column === columnKey && sort.direction === "asc" ? "desc" : "asc";
6800
6842
  setSort({
6801
6843
  column: columnKey,
6802
- direction: sort?.column === columnKey && sort.direction === "asc" ? "desc" : "asc"
6844
+ direction: newDirection
6803
6845
  });
6804
6846
  };
6805
6847
  const handleViewChannel = (remote) => {
@@ -7051,7 +7093,8 @@ function WorkerInspector({ getInfo, onRestart }) {
7051
7093
  const [restarting, setRestarting] = useState(false);
7052
7094
  const loadInfo = useCallback(async () => {
7053
7095
  try {
7054
- setInfo(await getInfo());
7096
+ const next = await getInfo();
7097
+ setInfo(next);
7055
7098
  setError(null);
7056
7099
  } catch (e) {
7057
7100
  setError(e instanceof Error ? e.message : String(e));
@@ -7354,10 +7397,12 @@ function ReadRequiredModal(props) {
7354
7397
  useEffect(() => {
7355
7398
  const checkScroll = () => {
7356
7399
  const element = contentRef.current;
7357
- if (element) if (element.scrollHeight > element.clientHeight) {
7358
- setDisableClose(true);
7359
- element.addEventListener("scroll", handleScroll);
7360
- } else setDisableClose(false);
7400
+ if (element) {
7401
+ if (element.scrollHeight > element.clientHeight) {
7402
+ setDisableClose(true);
7403
+ element.addEventListener("scroll", handleScroll);
7404
+ } else setDisableClose(false);
7405
+ }
7361
7406
  };
7362
7407
  const handleScroll = () => {
7363
7408
  const element = contentRef.current;
@@ -7870,6 +7915,7 @@ const VersionPicker = (props) => {
7870
7915
  className: "px-3 py-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase",
7871
7916
  children: "Tags"
7872
7917
  }), filteredTags.map(([tag, ver]) => {
7918
+ const isSelected = selected.kind === "tag" && selected.value === tag;
7873
7919
  return /* @__PURE__ */ jsxs("button", {
7874
7920
  type: "button",
7875
7921
  onClick: () => {
@@ -7880,7 +7926,7 @@ const VersionPicker = (props) => {
7880
7926
  setOpen(false);
7881
7927
  setQuery("");
7882
7928
  },
7883
- className: twMerge("flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs transition-colors", "hover:hover-effect", selected.kind === "tag" && selected.value === tag && "bg-muted font-semibold"),
7929
+ className: twMerge("flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs transition-colors", "hover:hover-effect", isSelected && "bg-muted font-semibold"),
7884
7930
  children: [/* @__PURE__ */ jsx("span", {
7885
7931
  className: "truncate text-foreground",
7886
7932
  children: tag
@@ -7901,6 +7947,7 @@ const VersionPicker = (props) => {
7901
7947
  className: "px-3 py-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase",
7902
7948
  children: "Versions"
7903
7949
  }), filteredVersions.map((ver) => {
7950
+ const isSelected = selected.kind === "version" && selected.value === ver;
7904
7951
  return /* @__PURE__ */ jsx("button", {
7905
7952
  type: "button",
7906
7953
  onClick: () => {
@@ -7911,7 +7958,7 @@ const VersionPicker = (props) => {
7911
7958
  setOpen(false);
7912
7959
  setQuery("");
7913
7960
  },
7914
- className: twMerge("flex w-full items-center px-3 py-1.5 text-left text-xs transition-colors", "hover:hover-effect", selected.kind === "version" && selected.value === ver && "bg-muted font-semibold"),
7961
+ className: twMerge("flex w-full items-center px-3 py-1.5 text-left text-xs transition-colors", "hover:hover-effect", isSelected && "bg-muted font-semibold"),
7915
7962
  children: /* @__PURE__ */ jsxs("span", {
7916
7963
  className: "flex min-w-0 items-center gap-1.5 text-foreground",
7917
7964
  children: [/* @__PURE__ */ jsx("span", {
@@ -8060,6 +8107,14 @@ const PackageManagerListItem = (props) => {
8060
8107
  updateTarget
8061
8108
  ]
8062
8109
  }),
8110
+ registryPackage.sharedDepWarnings && registryPackage.sharedDepWarnings.length > 0 && /* @__PURE__ */ jsxs("span", {
8111
+ className: "inline-flex items-center gap-1 rounded-full border border-warning/40 bg-warning/10 px-2 py-0.5 text-[11px] font-medium text-warning",
8112
+ title: registryPackage.sharedDepWarnings.join("\n"),
8113
+ children: [/* @__PURE__ */ jsx(Icon, {
8114
+ name: "Exclamation",
8115
+ size: 10
8116
+ }), "Shared deps out of date"]
8117
+ }),
8063
8118
  !(canPickVersion && hasVersionMetadata) && registryPackage.version && /* @__PURE__ */ jsxs("span", {
8064
8119
  className: "text-xs font-normal text-muted-foreground",
8065
8120
  children: ["v", registryPackage.version]
@@ -8103,7 +8158,8 @@ const PackageManagerListItem = (props) => {
8103
8158
  items: dropdownItems,
8104
8159
  onItemClick: (id) => {
8105
8160
  if (id === "install") {
8106
- onInstall(canPickVersion && hasVersionMetadata ? buildPackageSpec(registryPackage.name, selected.value) : registryPackage.name).catch(console.error);
8161
+ const spec = canPickVersion && hasVersionMetadata ? buildPackageSpec(registryPackage.name, selected.value) : registryPackage.name;
8162
+ onInstall(spec).catch(console.error);
8107
8163
  return;
8108
8164
  }
8109
8165
  if (id === "update") {
@@ -8619,7 +8675,8 @@ const DocumentState = (props) => {
8619
8675
  const { documentState, onCopyState } = props;
8620
8676
  const [, copy] = useCopyToClipboard();
8621
8677
  function handleCopy() {
8622
- copy(JSON.stringify(documentState, null, 2)).then(() => {
8678
+ const jsonState = JSON.stringify(documentState, null, 2);
8679
+ copy(jsonState).then(() => {
8623
8680
  onCopyState?.();
8624
8681
  }).catch((error) => {
8625
8682
  console.error("Failed to copy document state!", error);
@@ -8633,20 +8690,21 @@ const DocumentState = (props) => {
8633
8690
  };
8634
8691
  //#endregion
8635
8692
  //#region src/connect/components/revision-history/header/scope.tsx
8693
+ function labelFor(scope) {
8694
+ return `${scope.charAt(0).toUpperCase()}${scope.slice(1)} scope`;
8695
+ }
8636
8696
  function Scope(props) {
8637
- const { value, onChange } = props;
8697
+ const { scopes, value, onChange } = props;
8698
+ const items = scopes.map((scope) => ({
8699
+ displayValue: labelFor(scope),
8700
+ value: scope
8701
+ }));
8638
8702
  return /* @__PURE__ */ jsx(ConnectSelect, {
8639
8703
  absolutePositionMenu: true,
8640
8704
  containerClassName: "z-10 w-fit rounded-lg bg-background text-xs text-muted-foreground",
8641
8705
  id: "scope select",
8642
8706
  itemClassName: "grid grid-cols-[auto,auto] gap-1 py-2 text-muted-foreground",
8643
- items: [{
8644
- displayValue: "Global scope",
8645
- value: "global"
8646
- }, {
8647
- displayValue: "Local scope",
8648
- value: "local"
8649
- }],
8707
+ items,
8650
8708
  menuClassName: "min-w-0 text-muted-foreground",
8651
8709
  onChange,
8652
8710
  value
@@ -8655,7 +8713,7 @@ function Scope(props) {
8655
8713
  //#endregion
8656
8714
  //#region src/connect/components/revision-history/header/header.tsx
8657
8715
  function Header(props) {
8658
- const { title, docId, scope, onChangeScope, onClose, className, documentState, onCopyState, onCopyDocId, ...divProps } = props;
8716
+ const { title, docId, scope, scopes, onChangeScope, onClose, className, documentState, onCopyState, onCopyDocId, ...divProps } = props;
8659
8717
  return /* @__PURE__ */ jsxs("header", {
8660
8718
  className: twMerge("flex items-center justify-between bg-transparent", className),
8661
8719
  ...divProps,
@@ -8684,6 +8742,7 @@ function Header(props) {
8684
8742
  /* @__PURE__ */ jsx(Branch, {}),
8685
8743
  /* @__PURE__ */ jsx(Scope, {
8686
8744
  onChange: onChangeScope,
8745
+ scopes,
8687
8746
  value: scope
8688
8747
  })
8689
8748
  ]
@@ -8924,9 +8983,10 @@ function Timestamp(props) {
8924
8983
  const timestampNumber = typeof timestamp === "string" && !timestamp.includes("-") ? parseInt(timestamp) : timestamp;
8925
8984
  const date = new Date(timestampNumber);
8926
8985
  const shortDate = format(date, "HH:mm 'UTC'");
8986
+ const longDate = format(date, "eee, dd MMM yyyy HH:mm:ss 'UTC'");
8927
8987
  return /* @__PURE__ */ jsx(CodePopover, {
8928
8988
  content: /* @__PURE__ */ jsx(FormattedJsonViewer, { value: {
8929
- timestampFormatted: format(date, "eee, dd MMM yyyy HH:mm:ss 'UTC'"),
8989
+ timestampFormatted: longDate,
8930
8990
  timestampUtcMs: timestamp
8931
8991
  } }),
8932
8992
  trigger: /* @__PURE__ */ jsxs("span", {
@@ -8954,7 +9014,7 @@ function _Revision(props) {
8954
9014
  })]
8955
9015
  });
8956
9016
  }
8957
- const Revision = /* @__PURE__ */ memo(_Revision);
9017
+ const Revision = /*#__PURE__*/ memo(_Revision);
8958
9018
  //#endregion
8959
9019
  //#region src/connect/components/revision-history/skip/skip.tsx
8960
9020
  function Skip(props) {
@@ -9049,90 +9109,110 @@ function Day(props) {
9049
9109
  }
9050
9110
  //#endregion
9051
9111
  //#region src/connect/components/revision-history/timeline/timeline.tsx
9112
+ /** How far each row is indented from the timeline's vertical line. */
9113
+ const ROW_INSET = 16;
9114
+ /**
9115
+ * How far the line is inset from the scroll container's clip edge -- exactly
9116
+ * the amount the day marker hangs past it (24 pulled back from a 16 inset
9117
+ * leaves 8 on the wrong side of zero). Without this the ring is sliced in
9118
+ * half, since a scrolling box clips on both axes.
9119
+ */
9120
+ const DAY_MARKER_OVERHANG = 8;
9121
+ /**
9122
+ * The revision timeline, windowed by row.
9123
+ *
9124
+ * The scroll element and the content are deliberately two different
9125
+ * elements. A virtualizer decides what is visible by comparing its scroll
9126
+ * element's viewport against the total content size, so a scroll element
9127
+ * sized to the content is a viewport that shows everything at once: it never
9128
+ * scrolls, every row is "visible", and the whole page renders while still
9129
+ * paying the virtualizer's bookkeeping. The outer element here is therefore
9130
+ * bounded and scrollable, and the inner sizer carries the full height that
9131
+ * the absolutely positioned rows are placed within.
9132
+ */
9052
9133
  function Timeline(props) {
9053
- const { localOperations, globalOperations, scope } = props;
9054
- const operations = scope === "local" ? localOperations : globalOperations;
9055
- const initialNumRowsToShow = 100;
9056
- const allRows = useMemo(() => makeRows(operations), [operations]);
9057
- const [scrollAmount, setScrollAmount] = useState(0);
9058
- const [numRowsToShow, setNumRowsToShow] = useState(initialNumRowsToShow);
9059
- const [rows, setRows] = useState(() => allRows.slice(0, numRowsToShow));
9134
+ const { operations, maxHeight = "70vh" } = props;
9135
+ const rows = useMemo(() => makeRows([...operations]), [operations]);
9060
9136
  const parentRef = useRef(null);
9061
- const hasNextPage = rows.length < allRows.length;
9062
9137
  const rowVirtualizer = useVirtualizer({
9063
9138
  count: rows.length,
9064
9139
  getScrollElement: () => parentRef.current,
9065
- estimateSize: (i) => allRows[i].height,
9066
- gap: 8
9140
+ estimateSize: (i) => rows[i]?.height ?? 0,
9141
+ gap: 8,
9142
+ overscan: 8
9067
9143
  });
9068
- useEffect(() => {
9069
- if (!hasNextPage) return;
9070
- const newNumRevisions = initialNumRowsToShow + Math.floor(scrollAmount / 46);
9071
- setNumRowsToShow((prev) => newNumRevisions > prev ? newNumRevisions : prev);
9072
- }, [scrollAmount, hasNextPage]);
9073
- useEffect(() => {
9074
- setRows(allRows.slice(0, numRowsToShow));
9075
- }, [allRows, numRowsToShow]);
9076
- const handleScroll = (e) => {
9077
- setScrollAmount((prev) => {
9078
- const n = prev + e.deltaY;
9079
- if (n < 0) return 0;
9080
- return n;
9081
- });
9082
- };
9083
- useEffect(() => {
9084
- window.addEventListener("wheel", handleScroll);
9085
- return () => {
9086
- window.removeEventListener("wheel", handleScroll);
9087
- };
9088
- }, []);
9089
9144
  return /* @__PURE__ */ jsx("div", {
9090
- className: "border-l border-border dark:border-none",
9145
+ "data-testid": "revision-timeline",
9091
9146
  ref: parentRef,
9092
9147
  style: {
9093
- height: `${rowVirtualizer.getTotalSize()}px`,
9148
+ maxHeight,
9149
+ overflowY: "auto",
9094
9150
  width: "100%",
9095
9151
  position: "relative"
9096
9152
  },
9097
- children: rowVirtualizer.getVirtualItems().map((virtualRow) => {
9098
- const row = rows[virtualRow.index];
9099
- return /* @__PURE__ */ jsxs("div", {
9100
- style: {
9101
- position: "absolute",
9102
- top: 0,
9103
- left: 16,
9104
- width: "100%",
9105
- height: `${virtualRow.size}px`,
9106
- transform: `translateY(${virtualRow.start}px)`
9107
- },
9108
- children: [
9109
- row.type === "revision" && /* @__PURE__ */ createElement(Revision, {
9110
- ...row,
9111
- key: virtualRow.key
9112
- }),
9113
- row.type === "skip" && /* @__PURE__ */ jsx(Skip, { ...row }, virtualRow.key),
9114
- row.type === "day" && /* @__PURE__ */ jsx(Day, { ...row }, virtualRow.key)
9115
- ]
9116
- }, virtualRow.index);
9153
+ children: /* @__PURE__ */ jsx("div", {
9154
+ className: "border-l border-border dark:border-none",
9155
+ style: {
9156
+ height: `${rowVirtualizer.getTotalSize()}px`,
9157
+ marginLeft: DAY_MARKER_OVERHANG,
9158
+ position: "relative"
9159
+ },
9160
+ children: rowVirtualizer.getVirtualItems().map((virtualRow) => {
9161
+ const row = rows[virtualRow.index];
9162
+ if (!row) return null;
9163
+ return /* @__PURE__ */ jsxs("div", {
9164
+ style: {
9165
+ position: "absolute",
9166
+ top: 0,
9167
+ left: ROW_INSET,
9168
+ right: 0,
9169
+ height: `${virtualRow.size}px`,
9170
+ transform: `translateY(${virtualRow.start}px)`
9171
+ },
9172
+ children: [
9173
+ row.type === "revision" && /* @__PURE__ */ jsx(Revision, { ...row }),
9174
+ row.type === "skip" && /* @__PURE__ */ jsx(Skip, { ...row }),
9175
+ row.type === "day" && /* @__PURE__ */ jsx(Day, { ...row })
9176
+ ]
9177
+ }, virtualRow.key);
9178
+ })
9117
9179
  })
9118
9180
  });
9119
9181
  }
9120
9182
  //#endregion
9121
9183
  //#region src/connect/components/revision-history/revision-history.tsx
9122
- function RevisionHistory(props) {
9123
- const { documentTitle, documentId, globalOperations, localOperations, onClose, itemsPerPage = 100, documentState, onCopyState, onCopyDocId } = props;
9124
- const [scope, setScope] = useState("global");
9125
- const visibleOperations = useMemo(() => {
9126
- return garbageCollect(sortOperations(scope === "global" ? globalOperations : localOperations)).sort((a, b) => b.index - a.index);
9184
+ /** The current, scoped props. */
9185
+ /**
9186
+ * Legacy props: the whole global and local history, toggled inside the
9187
+ * component.
9188
+ * @deprecated Pass one scope's `operations` with `scopes`/`scope`/`onScopeChange` and the loading props. Removed in the next major.
9189
+ */
9190
+ /**
9191
+ * The revision history panel. Pages arrive oldest first while the timeline
9192
+ * renders newest first, so rendering progressively would show operations in
9193
+ * the wrong order until the last page landed and would repaint the whole
9194
+ * timeline on every page in between. Instead the component keeps asking for
9195
+ * the next page, showing "Loading operations…" and a running count, until
9196
+ * the walk completes, then renders the pagination and timeline once.
9197
+ */
9198
+ function ScopedRevisionHistory(props) {
9199
+ const { documentTitle, documentId, operations, isLoading, hasNextPage, onLoadNextPage, scopes, scope, onScopeChange, onClose, itemsPerPage = 100, documentState, onCopyState, onCopyDocId, error } = props;
9200
+ useEffect(() => {
9201
+ if (!hasNextPage || isLoading || error) return;
9202
+ const handle = window.setTimeout(onLoadNextPage, 0);
9203
+ return () => window.clearTimeout(handle);
9127
9204
  }, [
9128
- globalOperations,
9129
- localOperations,
9130
- scope
9205
+ hasNextPage,
9206
+ isLoading,
9207
+ onLoadNextPage,
9208
+ error
9131
9209
  ]);
9210
+ const isWalking = !error && (hasNextPage || isLoading && operations.length === 0);
9211
+ const visibleOperations = useMemo(() => isWalking ? [] : garbageCollect(sortOperations([...operations])).sort((a, b) => b.index - a.index), [operations, isWalking]);
9132
9212
  const { pageItems, pages, goToPage, goToNextPage, goToPreviousPage, goToFirstPage, goToLastPage, hiddenNextPages, isNextPageAvailable, isPreviousPageAvailable } = usePagination(visibleOperations, { itemsPerPage });
9133
- function onChangeScope(scope) {
9213
+ function onChangeScope(nextScope) {
9134
9214
  goToFirstPage();
9135
- setScope(scope);
9215
+ onScopeChange(nextScope);
9136
9216
  }
9137
9217
  const PaginationComponent = visibleOperations.length > itemsPerPage ? /* @__PURE__ */ jsx("div", {
9138
9218
  className: "mt-4 flex w-full justify-end",
@@ -9152,38 +9232,76 @@ function RevisionHistory(props) {
9152
9232
  previousPageLabel: "Previous"
9153
9233
  })
9154
9234
  }) : /* @__PURE__ */ jsx("hr", { className: "h-12 border-none" });
9235
+ const hasOperations = visibleOperations.length > 0;
9155
9236
  return /* @__PURE__ */ jsx(ConnectTooltipProvider, { children: /* @__PURE__ */ jsxs("div", {
9156
9237
  className: "p-6",
9157
- children: [
9158
- /* @__PURE__ */ jsx(Header, {
9159
- docId: documentId,
9160
- onChangeScope,
9161
- onClose,
9162
- scope,
9163
- title: documentTitle,
9164
- documentState,
9165
- onCopyState,
9166
- onCopyDocId
9167
- }),
9238
+ children: [/* @__PURE__ */ jsx(Header, {
9239
+ docId: documentId,
9240
+ onChangeScope,
9241
+ onClose,
9242
+ scope,
9243
+ scopes,
9244
+ title: documentTitle,
9245
+ documentState,
9246
+ onCopyState,
9247
+ onCopyDocId
9248
+ }), isWalking ? /* @__PURE__ */ jsxs("div", {
9249
+ className: "mt-4 flex flex-col items-center rounded-md bg-background p-4",
9250
+ children: [/* @__PURE__ */ jsx("h3", {
9251
+ className: "my-40 text-foreground",
9252
+ children: "Loading operations…"
9253
+ }), operations.length > 0 && /* @__PURE__ */ jsxs("p", {
9254
+ className: "text-xs text-muted-foreground",
9255
+ children: [operations.length, " loaded so far"]
9256
+ })]
9257
+ }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
9168
9258
  PaginationComponent,
9169
- /* @__PURE__ */ jsx("div", {
9170
- className: "mt-4 flex justify-center rounded-md bg-background p-4",
9171
- children: visibleOperations.length > 0 ? /* @__PURE__ */ jsx("div", {
9259
+ /* @__PURE__ */ jsxs("div", {
9260
+ className: "mt-4 flex flex-col items-center rounded-md bg-background p-4",
9261
+ children: [error && /* @__PURE__ */ jsxs("p", {
9262
+ className: "mb-2 text-xs text-destructive",
9263
+ children: ["Could not load the rest of the history: ", error.message]
9264
+ }), hasOperations ? /* @__PURE__ */ jsx("div", {
9172
9265
  className: "grid grid-cols-[minmax(min-content,1018px)]",
9173
- children: /* @__PURE__ */ jsx(Timeline, {
9174
- globalOperations: scope === "global" ? pageItems : [],
9175
- localOperations: scope === "local" ? pageItems : [],
9176
- scope
9177
- })
9178
- }) : /* @__PURE__ */ jsx("h3", {
9266
+ children: /* @__PURE__ */ jsx(Timeline, { operations: pageItems })
9267
+ }) : error ? null : /* @__PURE__ */ jsx("h3", {
9179
9268
  className: "my-40 text-foreground",
9180
9269
  children: "This document has no recorded operations yet."
9181
- })
9270
+ })]
9182
9271
  }),
9183
9272
  PaginationComponent
9184
- ]
9273
+ ] })]
9185
9274
  }) });
9186
9275
  }
9276
+ const LEGACY_SCOPES = ["global", "local"];
9277
+ const noop = () => {};
9278
+ /** Toggles between the whole global and local history loaded up front. */
9279
+ function LegacyRevisionHistory(props) {
9280
+ const { globalOperations, localOperations, ...common } = props;
9281
+ const [scope, setScope] = useState("global");
9282
+ return /* @__PURE__ */ jsx(ScopedRevisionHistory, {
9283
+ ...common,
9284
+ operations: scope === "local" ? localOperations : globalOperations,
9285
+ isLoading: false,
9286
+ hasNextPage: false,
9287
+ onLoadNextPage: noop,
9288
+ scopes: LEGACY_SCOPES,
9289
+ scope,
9290
+ onScopeChange: setScope
9291
+ });
9292
+ }
9293
+ /**
9294
+ * The revision history panel. Pages arrive oldest first while the timeline
9295
+ * renders newest first, so it waits for the whole history to load before
9296
+ * rendering the timeline, showing "Loading operations…" and a running count
9297
+ * in the meantime.
9298
+ *
9299
+ * Also accepts the deprecated `globalOperations`/`localOperations` pair
9300
+ * (see `RevisionHistoryLegacyProps`), toggling between them internally.
9301
+ */
9302
+ function RevisionHistory(props) {
9303
+ return "globalOperations" in props ? /* @__PURE__ */ jsx(LegacyRevisionHistory, { ...props }) : /* @__PURE__ */ jsx(ScopedRevisionHistory, { ...props });
9304
+ }
9187
9305
  //#endregion
9188
9306
  //#region src/connect/components/search-bar/filter-item.tsx
9189
9307
  const FilterItem = (props) => {