cursedbelt 1.0.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/dist/client/index.js +1 -1
  2. package/dist/core/category/index.d.ts.map +1 -1
  3. package/dist/core/category/index.js +2 -1
  4. package/dist/core/category/index.js.map +1 -1
  5. package/dist/core/category/types.js +1 -1
  6. package/dist/core/category/types.js.map +1 -1
  7. package/dist/core/file-tree/fileTreeModel.d.ts +49 -0
  8. package/dist/core/file-tree/fileTreeModel.d.ts.map +1 -1
  9. package/dist/core/file-tree/fileTreeModel.js +84 -0
  10. package/dist/core/file-tree/fileTreeModel.js.map +1 -1
  11. package/dist/core/layout/index.js +1 -1
  12. package/dist/core/layout/index.js.map +1 -1
  13. package/dist/core/media/index.js +1 -1
  14. package/dist/core/media/index.js.map +1 -1
  15. package/dist/core/media/types.js +1 -1
  16. package/dist/core/media/types.js.map +1 -1
  17. package/dist/core/media/uploadLimits.js +1 -1
  18. package/dist/core/media/uploadLimits.js.map +1 -1
  19. package/dist/core/sharing/model.d.ts +1 -1
  20. package/dist/ctgr/index.js +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/react/activity-bar/ActivityBar.d.ts +17 -0
  24. package/dist/react/activity-bar/ActivityBar.d.ts.map +1 -1
  25. package/dist/react/activity-bar/ActivityBar.js.map +1 -1
  26. package/dist/react/analytics/index.d.ts +1 -1
  27. package/dist/react/analytics/index.js +1 -1
  28. package/dist/react/chat/MessageComposer.d.ts.map +1 -1
  29. package/dist/react/chat/MessageComposer.js +5 -4
  30. package/dist/react/chat/MessageComposer.js.map +1 -1
  31. package/dist/react/components/Button.d.ts.map +1 -1
  32. package/dist/react/components/Button.js +3 -2
  33. package/dist/react/components/Button.js.map +1 -1
  34. package/dist/react/components/Checkbox.d.ts +19 -3
  35. package/dist/react/components/Checkbox.d.ts.map +1 -1
  36. package/dist/react/components/Checkbox.js +29 -12
  37. package/dist/react/components/Checkbox.js.map +1 -1
  38. package/dist/react/components/CodeArea.d.ts.map +1 -1
  39. package/dist/react/components/CodeArea.js +2 -1
  40. package/dist/react/components/CodeArea.js.map +1 -1
  41. package/dist/react/components/Collapsible.d.ts.map +1 -1
  42. package/dist/react/components/Collapsible.js +2 -1
  43. package/dist/react/components/Collapsible.js.map +1 -1
  44. package/dist/react/components/ComboboxField.d.ts.map +1 -1
  45. package/dist/react/components/ComboboxField.js +3 -2
  46. package/dist/react/components/ComboboxField.js.map +1 -1
  47. package/dist/react/components/CopyButton.d.ts.map +1 -1
  48. package/dist/react/components/CopyButton.js +2 -1
  49. package/dist/react/components/CopyButton.js.map +1 -1
  50. package/dist/react/components/DataTable/ColumnChecklist.d.ts.map +1 -1
  51. package/dist/react/components/DataTable/ColumnChecklist.js +2 -1
  52. package/dist/react/components/DataTable/ColumnChecklist.js.map +1 -1
  53. package/dist/react/components/DataTable/Pagination.d.ts.map +1 -1
  54. package/dist/react/components/DataTable/Pagination.js +2 -1
  55. package/dist/react/components/DataTable/Pagination.js.map +1 -1
  56. package/dist/react/components/DataTable/SortHeader.d.ts.map +1 -1
  57. package/dist/react/components/DataTable/SortHeader.js +2 -1
  58. package/dist/react/components/DataTable/SortHeader.js.map +1 -1
  59. package/dist/react/components/DataTable/TableFilterBuilder.d.ts +61 -0
  60. package/dist/react/components/DataTable/TableFilterBuilder.d.ts.map +1 -0
  61. package/dist/react/components/DataTable/{FilterBuilder.js → TableFilterBuilder.js} +26 -3
  62. package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -0
  63. package/dist/react/components/DataTable/Toolbar.d.ts +1 -1
  64. package/dist/react/components/DataTable/Toolbar.js +3 -3
  65. package/dist/react/components/DataTable/Toolbar.js.map +1 -1
  66. package/dist/react/components/DataTable/cells/LinkCell.d.ts.map +1 -1
  67. package/dist/react/components/DataTable/cells/LinkCell.js +2 -1
  68. package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -1
  69. package/dist/react/components/DataTable/index.d.ts +1 -1
  70. package/dist/react/components/DataTable/index.d.ts.map +1 -1
  71. package/dist/react/components/DataTable/index.js +4 -1
  72. package/dist/react/components/DataTable/index.js.map +1 -1
  73. package/dist/react/components/DragHandle.d.ts.map +1 -1
  74. package/dist/react/components/DragHandle.js +2 -1
  75. package/dist/react/components/DragHandle.js.map +1 -1
  76. package/dist/react/components/EmojiField.d.ts.map +1 -1
  77. package/dist/react/components/EmojiField.js +2 -1
  78. package/dist/react/components/EmojiField.js.map +1 -1
  79. package/dist/react/components/EventTimeline.d.ts +3 -2
  80. package/dist/react/components/EventTimeline.d.ts.map +1 -1
  81. package/dist/react/components/EventTimeline.js +3 -2
  82. package/dist/react/components/EventTimeline.js.map +1 -1
  83. package/dist/react/components/IconButton.d.ts +1 -1
  84. package/dist/react/components/IconButton.js +1 -1
  85. package/dist/react/components/InfoHint.d.ts.map +1 -1
  86. package/dist/react/components/InfoHint.js +5 -4
  87. package/dist/react/components/InfoHint.js.map +1 -1
  88. package/dist/react/components/InheritBadge.js +1 -1
  89. package/dist/react/components/InheritBadge.js.map +1 -1
  90. package/dist/react/components/InlineEditableText.d.ts.map +1 -1
  91. package/dist/react/components/InlineEditableText.js +2 -1
  92. package/dist/react/components/InlineEditableText.js.map +1 -1
  93. package/dist/react/components/MeterList.d.ts.map +1 -1
  94. package/dist/react/components/MeterList.js +2 -1
  95. package/dist/react/components/MeterList.js.map +1 -1
  96. package/dist/react/components/PathText.d.ts +2 -2
  97. package/dist/react/components/PathText.d.ts.map +1 -1
  98. package/dist/react/components/PathText.js +2 -1
  99. package/dist/react/components/PathText.js.map +1 -1
  100. package/dist/react/components/RatingField.d.ts.map +1 -1
  101. package/dist/react/components/RatingField.js +2 -1
  102. package/dist/react/components/RatingField.js.map +1 -1
  103. package/dist/react/components/SecretInput.js +3 -2
  104. package/dist/react/components/SecretInput.js.map +1 -1
  105. package/dist/react/components/SegmentedControl.d.ts.map +1 -1
  106. package/dist/react/components/SegmentedControl.js +2 -1
  107. package/dist/react/components/SegmentedControl.js.map +1 -1
  108. package/dist/react/components/StarRating.d.ts.map +1 -1
  109. package/dist/react/components/StarRating.js +9 -5
  110. package/dist/react/components/StarRating.js.map +1 -1
  111. package/dist/react/components/StatStrip.d.ts.map +1 -1
  112. package/dist/react/components/StatStrip.js +2 -1
  113. package/dist/react/components/StatStrip.js.map +1 -1
  114. package/dist/react/components/StatTile.d.ts.map +1 -1
  115. package/dist/react/components/StatTile.js +3 -2
  116. package/dist/react/components/StatTile.js.map +1 -1
  117. package/dist/react/components/Tabs.d.ts.map +1 -1
  118. package/dist/react/components/Tabs.js +2 -1
  119. package/dist/react/components/Tabs.js.map +1 -1
  120. package/dist/react/components/TruncatedText.d.ts +2 -1
  121. package/dist/react/components/TruncatedText.d.ts.map +1 -1
  122. package/dist/react/components/TruncatedText.js +2 -1
  123. package/dist/react/components/TruncatedText.js.map +1 -1
  124. package/dist/react/components/calendar/MonthGrid.d.ts.map +1 -1
  125. package/dist/react/components/calendar/MonthGrid.js +2 -1
  126. package/dist/react/components/calendar/MonthGrid.js.map +1 -1
  127. package/dist/react/components/calendar/WeekView.d.ts.map +1 -1
  128. package/dist/react/components/calendar/WeekView.js +2 -1
  129. package/dist/react/components/calendar/WeekView.js.map +1 -1
  130. package/dist/react/components/revealOnHover.d.ts.map +1 -1
  131. package/dist/react/components/revealOnHover.js +2 -1
  132. package/dist/react/components/revealOnHover.js.map +1 -1
  133. package/dist/react/file-tree/FileTree.d.ts +50 -1
  134. package/dist/react/file-tree/FileTree.d.ts.map +1 -1
  135. package/dist/react/file-tree/FileTree.js +234 -6
  136. package/dist/react/file-tree/FileTree.js.map +1 -1
  137. package/dist/react/file-tree/fileTree.css +52 -0
  138. package/dist/react/filter-rail/FilterRail.d.ts.map +1 -1
  139. package/dist/react/filter-rail/FilterRail.js +5 -4
  140. package/dist/react/filter-rail/FilterRail.js.map +1 -1
  141. package/dist/react/folder-tree/FolderTreeRail.d.ts.map +1 -1
  142. package/dist/react/folder-tree/FolderTreeRail.js +2 -1
  143. package/dist/react/folder-tree/FolderTreeRail.js.map +1 -1
  144. package/dist/react/index.d.ts +5 -1
  145. package/dist/react/index.d.ts.map +1 -1
  146. package/dist/react/index.js +5 -1
  147. package/dist/react/index.js.map +1 -1
  148. package/dist/react/layoutEngine/index.js +1 -1
  149. package/dist/react/layoutEngine/index.js.map +1 -1
  150. package/dist/react/lib/field.d.ts.map +1 -1
  151. package/dist/react/lib/field.js +3 -2
  152. package/dist/react/lib/field.js.map +1 -1
  153. package/dist/react/lib/floatingStyles.d.ts.map +1 -1
  154. package/dist/react/lib/floatingStyles.js +2 -1
  155. package/dist/react/lib/floatingStyles.js.map +1 -1
  156. package/dist/react/lib/tapTarget.d.ts +96 -0
  157. package/dist/react/lib/tapTarget.d.ts.map +1 -0
  158. package/dist/react/lib/tapTarget.js +96 -0
  159. package/dist/react/lib/tapTarget.js.map +1 -0
  160. package/dist/react/media/VideoTrimmer.d.ts +1 -1
  161. package/dist/react/media/VideoTrimmer.js +1 -1
  162. package/dist/react/media/denseGallery.css +3 -3
  163. package/dist/react/media/ffmpegWasm.js +2 -2
  164. package/dist/react/media/ffmpegWasm.js.map +1 -1
  165. package/dist/react/media/videoPlayer.css +42 -0
  166. package/dist/react/namespace/NamespaceTargetCapsule.d.ts +2 -2
  167. package/dist/react/namespace/NamespaceTargetCapsule.d.ts.map +1 -1
  168. package/dist/react/nav/BreadcrumbTrail.d.ts.map +1 -1
  169. package/dist/react/nav/BreadcrumbTrail.js +4 -3
  170. package/dist/react/nav/BreadcrumbTrail.js.map +1 -1
  171. package/dist/react/nav/HubTileGrid.d.ts.map +1 -1
  172. package/dist/react/nav/HubTileGrid.js +2 -1
  173. package/dist/react/nav/HubTileGrid.js.map +1 -1
  174. package/dist/react/nav/SideNav.d.ts.map +1 -1
  175. package/dist/react/nav/SideNav.js +4 -3
  176. package/dist/react/nav/SideNav.js.map +1 -1
  177. package/dist/react/nav/SideNavCustomize.d.ts.map +1 -1
  178. package/dist/react/nav/SideNavCustomize.js +2 -1
  179. package/dist/react/nav/SideNavCustomize.js.map +1 -1
  180. package/dist/react/palette/CommandPalette.d.ts.map +1 -1
  181. package/dist/react/palette/CommandPalette.js +3 -2
  182. package/dist/react/palette/CommandPalette.js.map +1 -1
  183. package/dist/server/drivers/pooledControlStores.pg.test.js +1 -0
  184. package/dist/server/drivers/pooledControlStores.pg.test.js.map +1 -1
  185. package/dist/server/drivers/pooledIdentityStore.pg.test.js +1 -0
  186. package/dist/server/drivers/pooledIdentityStore.pg.test.js.map +1 -1
  187. package/dist/server/drivers/retentionPolicy.pg.test.js +1 -0
  188. package/dist/server/drivers/retentionPolicy.pg.test.js.map +1 -1
  189. package/dist/server/guard/argon2Binding.d.ts +1 -1
  190. package/dist/server/guard/argon2Binding.js +1 -1
  191. package/dist/server/incidents/store.d.ts +3 -3
  192. package/dist/server/index.js +1 -1
  193. package/dist/server/index.js.map +1 -1
  194. package/dist/server/master-lock/masterLock.d.ts +1 -1
  195. package/dist/server/media-bun/index.js +1 -1
  196. package/dist/server/media-bun/index.js.map +1 -1
  197. package/dist/server/paths/appDataHome.d.ts +20 -0
  198. package/dist/server/paths/appDataHome.d.ts.map +1 -0
  199. package/dist/server/paths/appDataHome.js +69 -0
  200. package/dist/server/paths/appDataHome.js.map +1 -0
  201. package/dist/server/retention/archive.d.ts +3 -4
  202. package/dist/server/retention/archive.d.ts.map +1 -1
  203. package/dist/server/retention/archive.js +20 -15
  204. package/dist/server/retention/archive.js.map +1 -1
  205. package/dist/server/retention/index.d.ts +1 -1
  206. package/dist/server/retention/index.js +1 -1
  207. package/dist/server/retention/policy.d.ts +2 -2
  208. package/dist/server/retention/policy.d.ts.map +1 -1
  209. package/dist/server/retention/policy.js +1 -1
  210. package/dist/server/retention/store.d.ts.map +1 -1
  211. package/dist/server/retention/store.js +27 -20
  212. package/dist/server/retention/store.js.map +1 -1
  213. package/dist/server/runtime/localHost.d.ts +10 -5
  214. package/dist/server/runtime/localHost.d.ts.map +1 -1
  215. package/dist/server/runtime/localHost.js +12 -8
  216. package/dist/server/runtime/localHost.js.map +1 -1
  217. package/dist/server/runtime/meterRollup.pg.test.js +1 -0
  218. package/dist/server/runtime/meterRollup.pg.test.js.map +1 -1
  219. package/dist/server/runtime/recipe.d.ts +4 -4
  220. package/dist/server/runtime/retentionJob.pg.test.js +1 -0
  221. package/dist/server/runtime/retentionJob.pg.test.js.map +1 -1
  222. package/dist/server/search/pgSearchProvider.pg.test.js +1 -0
  223. package/dist/server/search/pgSearchProvider.pg.test.js.map +1 -1
  224. package/dist/shared/errors.d.ts +1 -1
  225. package/dist/shared/errors.js +1 -1
  226. package/dist/styles-static.css +391 -0
  227. package/dist/styles.css +27 -0
  228. package/package.json +19 -167
  229. package/scripts/generateStaticStyles.ts +122 -0
  230. package/scripts/publicSurface.ts +455 -0
  231. package/scripts/testTmpRoot.ts +34 -5
  232. package/src/client/index.ts +1 -1
  233. package/src/core/category/index.ts +2 -1
  234. package/src/core/category/types.ts +1 -1
  235. package/src/core/file-tree/fileTreeModel.spec.ts +134 -0
  236. package/src/core/file-tree/fileTreeModel.ts +104 -0
  237. package/src/core/layout/index.ts +1 -1
  238. package/src/core/media/index.ts +1 -1
  239. package/src/core/media/types.ts +1 -1
  240. package/src/core/media/uploadLimits.ts +1 -1
  241. package/src/core/sharing/model.ts +1 -1
  242. package/src/ctgr/index.ts +1 -1
  243. package/src/declaredDepsAreImported.spec.ts +87 -0
  244. package/src/demoFixture.spec.ts +133 -0
  245. package/src/index.ts +1 -1
  246. package/src/lockfileIsTracked.spec.ts +50 -0
  247. package/src/namedSubpathsResolve.spec.ts +119 -0
  248. package/src/publicSurface.spec.ts +72 -0
  249. package/src/react/activity-bar/ActivityBar.tsx +17 -0
  250. package/src/react/analytics/index.ts +1 -1
  251. package/src/react/chat/MessageComposer.tsx +5 -4
  252. package/src/react/components/Button.tsx +3 -2
  253. package/src/react/components/Checkbox.spec.tsx +51 -0
  254. package/src/react/components/Checkbox.tsx +68 -26
  255. package/src/react/components/CodeArea.tsx +2 -1
  256. package/src/react/components/CodeChip.spec.tsx +2 -2
  257. package/src/react/components/Collapsible.tsx +2 -1
  258. package/src/react/components/ComboboxField.tsx +3 -2
  259. package/src/react/components/CopyButton.tsx +2 -1
  260. package/src/react/components/CopyableText.spec.tsx +1 -1
  261. package/src/react/components/DataTable/ColumnChecklist.tsx +2 -1
  262. package/src/react/components/DataTable/Pagination.tsx +2 -1
  263. package/src/react/components/DataTable/SortHeader.tsx +2 -1
  264. package/src/react/components/DataTable/{FilterBuilder.tsx → TableFilterBuilder.tsx} +33 -5
  265. package/src/react/components/DataTable/Toolbar.tsx +3 -3
  266. package/src/react/components/DataTable/cells/LinkCell.tsx +2 -1
  267. package/src/react/components/DataTable/index.ts +8 -1
  268. package/src/react/components/DragHandle.tsx +2 -1
  269. package/src/react/components/EmojiField.tsx +2 -1
  270. package/src/react/components/EventTimeline.tsx +3 -2
  271. package/src/react/components/FileLocation.spec.tsx +1 -1
  272. package/src/react/components/IconButton.tsx +1 -1
  273. package/src/react/components/InfoHint.tsx +5 -4
  274. package/src/react/components/InheritBadge.tsx +1 -1
  275. package/src/react/components/InlineEditableText.tsx +2 -1
  276. package/src/react/components/MeterList.tsx +2 -1
  277. package/src/react/components/PathText.tsx +4 -3
  278. package/src/react/components/RatingField.tsx +2 -1
  279. package/src/react/components/SecretInput.tsx +3 -3
  280. package/src/react/components/SegmentedControl.tsx +2 -2
  281. package/src/react/components/StarRating.spec.tsx +2 -2
  282. package/src/react/components/StarRating.tsx +9 -5
  283. package/src/react/components/StatStrip.tsx +2 -1
  284. package/src/react/components/StatTile.tsx +3 -3
  285. package/src/react/components/Tabs.spec.tsx +3 -2
  286. package/src/react/components/Tabs.tsx +2 -1
  287. package/src/react/components/TruncatedText.tsx +2 -1
  288. package/src/react/components/calendar/MonthGrid.spec.tsx +2 -1
  289. package/src/react/components/calendar/MonthGrid.tsx +2 -1
  290. package/src/react/components/calendar/WeekView.tsx +2 -1
  291. package/src/react/components/revealOnHover.ts +3 -2
  292. package/src/react/file-tree/FileTree.spec.tsx +248 -0
  293. package/src/react/file-tree/FileTree.tsx +304 -4
  294. package/src/react/file-tree/fileTree.css +52 -0
  295. package/src/react/file-tree/fileTreeGeometry.fixture.json +151 -0
  296. package/src/react/file-tree/fileTreeGeometry.spec.ts +33 -52
  297. package/src/react/filter-rail/FilterRail.spec.tsx +2 -1
  298. package/src/react/filter-rail/FilterRail.tsx +5 -4
  299. package/src/react/folder-tree/FolderTreeRail.tsx +2 -1
  300. package/src/react/index.ts +13 -3
  301. package/src/react/layoutEngine/index.ts +1 -1
  302. package/src/react/layoutEngine/types.ts +1 -1
  303. package/src/react/lib/field.ts +4 -2
  304. package/src/react/lib/floatingStyles.spec.ts +2 -1
  305. package/src/react/lib/floatingStyles.ts +3 -1
  306. package/src/react/lib/tapTarget.ts +100 -0
  307. package/src/react/media/MaskPainter.tsx +2 -2
  308. package/src/react/media/VideoTrimmer.tsx +1 -1
  309. package/src/react/media/denseGallery.css +3 -3
  310. package/src/react/media/ffmpegWasm.ts +2 -2
  311. package/src/react/media/videoPlayer.css +42 -0
  312. package/src/react/namespace/NamespaceTargetCapsule.tsx +2 -2
  313. package/src/react/nav/BreadcrumbTrail.tsx +4 -3
  314. package/src/react/nav/HubTileGrid.tsx +2 -1
  315. package/src/react/nav/SideNav.tsx +4 -3
  316. package/src/react/nav/SideNavCustomize.tsx +2 -1
  317. package/src/react/palette/CommandPalette.tsx +3 -2
  318. package/src/server/ctgr.ts +1 -1
  319. package/src/server/drivers/pooledControlStores.pg.test.ts +1 -0
  320. package/src/server/drivers/pooledIdentityStore.pg.test.ts +1 -0
  321. package/src/server/drivers/retentionPolicy.pg.test.ts +1 -0
  322. package/src/server/guard/argon2Binding.ts +1 -1
  323. package/src/server/incidents/store.ts +3 -3
  324. package/src/server/index.ts +1 -1
  325. package/src/server/master-lock/masterLock.spec.ts +18 -2
  326. package/src/server/master-lock/masterLock.ts +1 -1
  327. package/src/server/media-bun/image.spec.ts +1 -0
  328. package/src/server/media-bun/index.ts +1 -1
  329. package/src/server/media-bun/video.spec.ts +1 -0
  330. package/src/server/paths/appDataHome.spec.ts +87 -0
  331. package/src/server/paths/appDataHome.ts +84 -0
  332. package/src/server/retention/archive.spec.ts +26 -4
  333. package/src/server/retention/archive.ts +20 -15
  334. package/src/server/retention/index.ts +1 -1
  335. package/src/server/retention/policy.ts +2 -2
  336. package/src/server/retention/store.spec.ts +38 -10
  337. package/src/server/retention/store.ts +26 -19
  338. package/src/server/runtime/localHost.spec.ts +22 -3
  339. package/src/server/runtime/localHost.ts +12 -9
  340. package/src/server/runtime/meterRollup.pg.test.ts +1 -0
  341. package/src/server/runtime/recipe.ts +4 -4
  342. package/src/server/runtime/retentionJob.pg.test.ts +1 -0
  343. package/src/server/search/pgSearchProvider.pg.test.ts +1 -0
  344. package/src/server/storage/binaryServerProcessing.integration.spec.ts +6 -2
  345. package/src/server/storage/chunked.integration.spec.ts +5 -2
  346. package/src/server/storage/fileUploadClient-chunked.integration.spec.ts +5 -2
  347. package/src/server/storage/files/adapter.photo.display.spec.ts +1 -0
  348. package/src/server/storage/imageThumbnail.spec.ts +1 -0
  349. package/src/server/storage/transcode.integration.spec.ts +5 -2
  350. package/src/server/storage/videoProcessor.posterOnly.spec.ts +1 -0
  351. package/src/shared/errors.ts +1 -1
  352. package/src/skippedTestsAreAnswered.spec.ts +215 -0
  353. package/src/styles-static.css +391 -0
  354. package/src/styles.css +27 -0
  355. package/src/stylesStaticMatches.spec.ts +134 -0
  356. package/src/tapTargetStylesheet.spec.ts +150 -0
  357. package/src/testTmpRoot.spec.ts +102 -0
  358. package/dist/core/duplicates/index.d.ts +0 -116
  359. package/dist/core/duplicates/index.d.ts.map +0 -1
  360. package/dist/core/duplicates/index.js +0 -178
  361. package/dist/core/duplicates/index.js.map +0 -1
  362. package/dist/core/namespace/helpers.d.ts +0 -14
  363. package/dist/core/namespace/helpers.d.ts.map +0 -1
  364. package/dist/core/namespace/helpers.js +0 -29
  365. package/dist/core/namespace/helpers.js.map +0 -1
  366. package/dist/core/namespace/index.d.ts +0 -4
  367. package/dist/core/namespace/index.d.ts.map +0 -1
  368. package/dist/core/namespace/index.js +0 -6
  369. package/dist/core/namespace/index.js.map +0 -1
  370. package/dist/core/namespace/memoryStore.d.ts +0 -19
  371. package/dist/core/namespace/memoryStore.d.ts.map +0 -1
  372. package/dist/core/namespace/memoryStore.js +0 -70
  373. package/dist/core/namespace/memoryStore.js.map +0 -1
  374. package/dist/core/namespace/types.d.ts +0 -44
  375. package/dist/core/namespace/types.d.ts.map +0 -1
  376. package/dist/core/namespace/types.js +0 -8
  377. package/dist/core/namespace/types.js.map +0 -1
  378. package/dist/game/core/DisposeRegistry.d.ts +0 -42
  379. package/dist/game/core/DisposeRegistry.d.ts.map +0 -1
  380. package/dist/game/core/DisposeRegistry.js +0 -67
  381. package/dist/game/core/DisposeRegistry.js.map +0 -1
  382. package/dist/game/core/drawBudget.d.ts +0 -26
  383. package/dist/game/core/drawBudget.d.ts.map +0 -1
  384. package/dist/game/core/drawBudget.js +0 -55
  385. package/dist/game/core/drawBudget.js.map +0 -1
  386. package/dist/game/core/fixedTimestep.d.ts +0 -38
  387. package/dist/game/core/fixedTimestep.d.ts.map +0 -1
  388. package/dist/game/core/fixedTimestep.js +0 -47
  389. package/dist/game/core/fixedTimestep.js.map +0 -1
  390. package/dist/game/core/index.d.ts +0 -9
  391. package/dist/game/core/index.d.ts.map +0 -1
  392. package/dist/game/core/index.js +0 -8
  393. package/dist/game/core/index.js.map +0 -1
  394. package/dist/game/core/inputCollector.d.ts +0 -82
  395. package/dist/game/core/inputCollector.d.ts.map +0 -1
  396. package/dist/game/core/inputCollector.js +0 -176
  397. package/dist/game/core/inputCollector.js.map +0 -1
  398. package/dist/game/core/resizeCanvas.d.ts +0 -19
  399. package/dist/game/core/resizeCanvas.d.ts.map +0 -1
  400. package/dist/game/core/resizeCanvas.js +0 -29
  401. package/dist/game/core/resizeCanvas.js.map +0 -1
  402. package/dist/game/react/index.d.ts +0 -3
  403. package/dist/game/react/index.d.ts.map +0 -1
  404. package/dist/game/react/index.js +0 -5
  405. package/dist/game/react/index.js.map +0 -1
  406. package/dist/game/react/useGameEngine.d.ts +0 -64
  407. package/dist/game/react/useGameEngine.d.ts.map +0 -1
  408. package/dist/game/react/useGameEngine.js +0 -78
  409. package/dist/game/react/useGameEngine.js.map +0 -1
  410. package/dist/react/canvas/CanvasNavHUD.d.ts +0 -64
  411. package/dist/react/canvas/CanvasNavHUD.d.ts.map +0 -1
  412. package/dist/react/canvas/CanvasNavHUD.js +0 -58
  413. package/dist/react/canvas/CanvasNavHUD.js.map +0 -1
  414. package/dist/react/canvas/fitLabel.d.ts +0 -53
  415. package/dist/react/canvas/fitLabel.d.ts.map +0 -1
  416. package/dist/react/canvas/fitLabel.js +0 -104
  417. package/dist/react/canvas/fitLabel.js.map +0 -1
  418. package/dist/react/canvas/index.d.ts +0 -4
  419. package/dist/react/canvas/index.d.ts.map +0 -1
  420. package/dist/react/canvas/index.js +0 -4
  421. package/dist/react/canvas/index.js.map +0 -1
  422. package/dist/react/canvas/lod.d.ts +0 -40
  423. package/dist/react/canvas/lod.d.ts.map +0 -1
  424. package/dist/react/canvas/lod.js +0 -37
  425. package/dist/react/canvas/lod.js.map +0 -1
  426. package/dist/react/components/DataTable/FilterBuilder.d.ts +0 -38
  427. package/dist/react/components/DataTable/FilterBuilder.d.ts.map +0 -1
  428. package/dist/react/components/DataTable/FilterBuilder.js.map +0 -1
  429. package/dist/react/seo/HeadProvider.d.ts +0 -14
  430. package/dist/react/seo/HeadProvider.d.ts.map +0 -1
  431. package/dist/react/seo/HeadProvider.js +0 -44
  432. package/dist/react/seo/HeadProvider.js.map +0 -1
  433. package/dist/react/seo/applyHeadToDocument.d.ts +0 -3
  434. package/dist/react/seo/applyHeadToDocument.d.ts.map +0 -1
  435. package/dist/react/seo/applyHeadToDocument.js +0 -66
  436. package/dist/react/seo/applyHeadToDocument.js.map +0 -1
  437. package/dist/react/seo/index.d.ts +0 -3
  438. package/dist/react/seo/index.d.ts.map +0 -1
  439. package/dist/react/seo/index.js +0 -7
  440. package/dist/react/seo/index.js.map +0 -1
  441. package/dist/react/timeline/ClipView.d.ts +0 -29
  442. package/dist/react/timeline/ClipView.d.ts.map +0 -1
  443. package/dist/react/timeline/ClipView.js +0 -53
  444. package/dist/react/timeline/ClipView.js.map +0 -1
  445. package/dist/react/timeline/Playhead.d.ts +0 -16
  446. package/dist/react/timeline/Playhead.d.ts.map +0 -1
  447. package/dist/react/timeline/Playhead.js +0 -26
  448. package/dist/react/timeline/Playhead.js.map +0 -1
  449. package/dist/react/timeline/TimeRuler.d.ts +0 -21
  450. package/dist/react/timeline/TimeRuler.d.ts.map +0 -1
  451. package/dist/react/timeline/TimeRuler.js +0 -31
  452. package/dist/react/timeline/TimeRuler.js.map +0 -1
  453. package/dist/react/timeline/TimelineSurface.d.ts +0 -29
  454. package/dist/react/timeline/TimelineSurface.d.ts.map +0 -1
  455. package/dist/react/timeline/TimelineSurface.js +0 -56
  456. package/dist/react/timeline/TimelineSurface.js.map +0 -1
  457. package/dist/react/timeline/TrackLane.d.ts +0 -31
  458. package/dist/react/timeline/TrackLane.d.ts.map +0 -1
  459. package/dist/react/timeline/TrackLane.js +0 -32
  460. package/dist/react/timeline/TrackLane.js.map +0 -1
  461. package/dist/react/timeline/index.d.ts +0 -6
  462. package/dist/react/timeline/index.d.ts.map +0 -1
  463. package/dist/react/timeline/index.js +0 -12
  464. package/dist/react/timeline/index.js.map +0 -1
  465. package/dist/server/private-media/index.d.ts +0 -7
  466. package/dist/server/private-media/index.d.ts.map +0 -1
  467. package/dist/server/private-media/index.js +0 -13
  468. package/dist/server/private-media/index.js.map +0 -1
  469. package/dist/server/seo/index.d.ts +0 -3
  470. package/dist/server/seo/index.d.ts.map +0 -1
  471. package/dist/server/seo/index.js +0 -6
  472. package/dist/server/seo/index.js.map +0 -1
  473. package/dist/server/seo/mountSeoRoutes.d.ts +0 -9
  474. package/dist/server/seo/mountSeoRoutes.d.ts.map +0 -1
  475. package/dist/server/seo/mountSeoRoutes.js +0 -19
  476. package/dist/server/seo/mountSeoRoutes.js.map +0 -1
  477. package/dist/server/seo/serveHeadInjectedIndex.d.ts +0 -9
  478. package/dist/server/seo/serveHeadInjectedIndex.d.ts.map +0 -1
  479. package/dist/server/seo/serveHeadInjectedIndex.js +0 -20
  480. package/dist/server/seo/serveHeadInjectedIndex.js.map +0 -1
  481. package/dist/upload.d.ts +0 -148
  482. package/dist/upload.d.ts.map +0 -1
  483. package/dist/upload.js +0 -159
  484. package/dist/upload.js.map +0 -1
  485. package/dist/verify/runtime/index.d.ts +0 -16
  486. package/dist/verify/runtime/index.d.ts.map +0 -1
  487. package/dist/verify/runtime/index.js +0 -16
  488. package/dist/verify/runtime/index.js.map +0 -1
  489. package/scripts/demoCheck.ts +0 -42
  490. package/src/core/duplicates/index.spec.ts +0 -116
  491. package/src/core/duplicates/index.ts +0 -203
  492. package/src/core/namespace/helpers.ts +0 -31
  493. package/src/core/namespace/index.ts +0 -12
  494. package/src/core/namespace/memoryStore.ts +0 -77
  495. package/src/core/namespace/namespace.spec.ts +0 -117
  496. package/src/core/namespace/types.ts +0 -53
  497. package/src/game/core/DisposeRegistry.spec.ts +0 -53
  498. package/src/game/core/DisposeRegistry.ts +0 -70
  499. package/src/game/core/drawBudget.spec.ts +0 -51
  500. package/src/game/core/drawBudget.ts +0 -75
  501. package/src/game/core/fixedTimestep.spec.ts +0 -91
  502. package/src/game/core/fixedTimestep.ts +0 -79
  503. package/src/game/core/index.ts +0 -16
  504. package/src/game/core/inputCollector.spec.ts +0 -29
  505. package/src/game/core/inputCollector.ts +0 -245
  506. package/src/game/core/resizeCanvas.ts +0 -31
  507. package/src/game/react/index.ts +0 -10
  508. package/src/game/react/useGameEngine.ts +0 -125
  509. package/src/react/canvas/CanvasNavHUD.spec.tsx +0 -62
  510. package/src/react/canvas/CanvasNavHUD.tsx +0 -210
  511. package/src/react/canvas/fitLabel.spec.ts +0 -82
  512. package/src/react/canvas/fitLabel.ts +0 -150
  513. package/src/react/canvas/index.ts +0 -15
  514. package/src/react/canvas/lod.ts +0 -53
  515. package/src/react/seo/HeadProvider.tsx +0 -67
  516. package/src/react/seo/applyHeadToDocument.ts +0 -73
  517. package/src/react/seo/index.ts +0 -12
  518. package/src/react/seo/seo.spec.tsx +0 -101
  519. package/src/react/timeline/ClipView.tsx +0 -146
  520. package/src/react/timeline/Playhead.tsx +0 -63
  521. package/src/react/timeline/TimeRuler.tsx +0 -85
  522. package/src/react/timeline/TimelineSurface.tsx +0 -157
  523. package/src/react/timeline/TrackLane.tsx +0 -87
  524. package/src/react/timeline/index.ts +0 -12
  525. package/src/react/timeline/timeline.spec.tsx +0 -175
  526. package/src/server/private-media/index.ts +0 -45
  527. package/src/server/seo/index.ts +0 -8
  528. package/src/server/seo/mountSeoRoutes.ts +0 -37
  529. package/src/server/seo/seo.spec.ts +0 -128
  530. package/src/server/seo/serveHeadInjectedIndex.ts +0 -36
  531. package/src/upload.spec.ts +0 -300
  532. package/src/upload.ts +0 -288
  533. package/src/verify/runtime/index.ts +0 -64
@@ -3,24 +3,41 @@ import * as RadixCheckbox from '@radix-ui/react-checkbox';
3
3
  import { Check, Minus } from 'lucide-react';
4
4
  import { useId } from 'react';
5
5
  import { cn } from '../lib/cn';
6
- const BOX = cn(
7
- // The painted box stays 16px — a 44px checkbox is a design change. The TARGET
8
- // grows around it on a coarse pointer, which is what DESIGN.md §5 asks for.
9
- 'peer size-4 shrink-0 rounded-sm border border-border-strong bg-surface transition-colors', 'pointer-coarse:min-h-11 pointer-coarse:min-w-11', 'data-[state=checked]:border-accent-solid data-[state=checked]:bg-accent-solid data-[state=checked]:text-white', 'data-[state=indeterminate]:border-accent-solid data-[state=indeterminate]:bg-accent-solid data-[state=indeterminate]:text-white', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background', 'disabled:cursor-not-allowed disabled:opacity-50');
6
+ import { TAP_TARGET } from '../lib/tapTarget';
7
+ // ── 🔴 The painted box is 16px at EVERY pointer type ────────────────────────────
8
+ // The floor lives on the `<label>` target below, never here. This element carries
9
+ // `bg-surface` and `data-[state=checked]:bg-accent-solid` — it IS the painted
10
+ // square — and `min-height` beats `height`, so a `pointer-coarse:min-h-11` on it
11
+ // does not grow a target AROUND a 16px box, it repaints the box itself at 44×44.
12
+ // That is exactly what this file did from the day it was written, under a comment
13
+ // asserting it did not: `size-4` + `TAP_TARGET` drew a fingernail-sized checkbox
14
+ // on every phone, and left the words beside it under 44px besides.
15
+ //
16
+ // A comment cannot hold this. `e2e/touch-targets.spec.ts` measures both halves in
17
+ // a real Pixel 7 profile — 16px painted, ≥44px reachable — which is the only
18
+ // configuration where `pointer-coarse:` is switched on at all.
19
+ const BOX = cn('peer size-4 shrink-0 rounded-sm border border-border-strong bg-surface transition-colors', 'data-[state=checked]:border-accent-solid data-[state=checked]:bg-accent-solid data-[state=checked]:text-white', 'data-[state=indeterminate]:border-accent-solid data-[state=indeterminate]:bg-accent-solid data-[state=indeterminate]:text-white', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background', 'disabled:cursor-not-allowed disabled:opacity-50');
20
+ // The tap target: the whole label, box and caption and the gap between them.
21
+ //
22
+ // Clicking a `<label>` toggles the control it labels — native browser behaviour,
23
+ // not something this component implements — so the 44px floor belongs on the
24
+ // region a thumb is actually aiming at, which is the words as much as the box.
25
+ // `data-cb-tap-target` is the seam `e2e/touch-targets.spec.ts` measures a
26
+ // sub-44px control through, the way a checkbox has to be measured.
27
+ const TARGET = cn('inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 align-middle', TAP_TARGET);
10
28
  /**
11
29
  * Checkbox vendored from shadcn (Radix `Checkbox`). White check on a solid-accent
12
30
  * fill when checked (a dash when `indeterminate`); a visible `--ring` focus ring on
13
31
  * keyboard focus. Use `checked` + `onCheckedChange` (RHF wires this via
14
- * `<Controller>`). Pass `label` for a captioned control.
32
+ * `<Controller>`). Pass `label` for a captioned control, and `labelClassName` to
33
+ * set that caption's typography without touching the box.
34
+ *
35
+ * `className` lands on the painted 16px box; the 44px coarse-pointer target is the
36
+ * enclosing `<label>` and is not overridable, because it is the rule.
15
37
  */
16
- export function Checkbox({ label, className, id: idProp, ...props }) {
38
+ export function Checkbox({ label, className, labelClassName, id: idProp, ...props }) {
17
39
  const reactId = useId();
18
40
  const id = idProp ?? reactId;
19
- const box = (_jsx(RadixCheckbox.Root, { id: id, className: cn(BOX, className), ...props, children: _jsx(RadixCheckbox.Indicator, { className: 'flex items-center justify-center text-current', children: props.checked === 'indeterminate' ? (_jsx(Minus, { className: 'size-3.5' })) : (_jsx(Check, { className: 'size-3.5' })) }) }));
20
- if (label == null)
21
- return box;
22
- // Sibling label associated by id (a label can't statically "contain" the Radix
23
- // button control); clicking the caption toggles the box.
24
- return (_jsxs("span", { className: 'inline-flex items-center gap-2', children: [box, _jsx("label", { htmlFor: id, className: 'cursor-pointer text-sm text-foreground', children: label })] }));
41
+ return (_jsxs("label", { htmlFor: id, "data-cb-tap-target": '', className: TARGET, children: [_jsx(RadixCheckbox.Root, { id: id, className: cn(BOX, className), ...props, children: _jsx(RadixCheckbox.Indicator, { className: 'flex items-center justify-center text-current', children: props.checked === 'indeterminate' ? (_jsx(Minus, { className: 'size-3.5' })) : (_jsx(Check, { className: 'size-3.5' })) }) }), label == null ? null : (_jsx("span", { className: cn('text-sm text-foreground', labelClassName), children: label }))] }));
25
42
  }
26
43
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/react/components/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiD,KAAK,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAO/B,MAAM,GAAG,GAAG,EAAE;AACZ,8EAA8E;AAC9E,4EAA4E;AAC5E,0FAA0F,EAC1F,iDAAiD,EACjD,+GAA+G,EAC/G,iIAAiI,EACjI,0IAA0I,EAC1I,iDAAiD,CAClD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAiB;IAChF,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC;IAC7B,MAAM,GAAG,GAAG,CACV,KAAC,aAAa,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,KAAM,KAAK,YAClE,KAAC,aAAa,CAAC,SAAS,IAAC,SAAS,EAAC,+CAA+C,YAC/E,KAAK,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CACnC,KAAC,KAAK,IAAC,SAAS,EAAC,UAAU,GAAG,CAC/B,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,SAAS,EAAC,UAAU,GAAG,CAC/B,GACuB,GACP,CACtB,CAAC;IACF,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC;IAC9B,+EAA+E;IAC/E,yDAAyD;IACzD,OAAO,CACL,gBAAM,SAAS,EAAC,gCAAgC,aAC7C,GAAG,EACJ,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,wCAAwC,YACnE,KAAK,GACA,IACH,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/react/components/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiD,KAAK,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmB9C,mFAAmF;AACnF,kFAAkF;AAClF,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,kFAAkF;AAClF,iFAAiF;AACjF,mEAAmE;AACnE,EAAE;AACF,kFAAkF;AAClF,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,GAAG,GAAG,EAAE,CACZ,0FAA0F,EAC1F,+GAA+G,EAC/G,iIAAiI,EACjI,0IAA0I,EAC1I,iDAAiD,CAClD,CAAC;AAEF,6EAA6E;AAC7E,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,mEAAmE;AACnE,MAAM,MAAM,GAAG,EAAE,CACf,oFAAoF,EACpF,UAAU,CACX,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,SAAS,EACT,cAAc,EACd,EAAE,EAAE,MAAM,EACV,GAAG,KAAK,EACM;IACd,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC;IAC7B,OAAO,CAKL,iBAAO,OAAO,EAAE,EAAE,wBAAqB,EAAE,EAAC,SAAS,EAAE,MAAM,aACzD,KAAC,aAAa,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,KAAM,KAAK,YAClE,KAAC,aAAa,CAAC,SAAS,IAAC,SAAS,EAAC,+CAA+C,YAC/E,KAAK,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CACnC,KAAC,KAAK,IAAC,SAAS,EAAC,UAAU,GAAG,CAC/B,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,SAAS,EAAC,UAAU,GAAG,CAC/B,GACuB,GACP,EACpB,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,eAAM,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,cAAc,CAAC,YAAG,KAAK,GAAQ,CAC/E,IACK,CACT,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeArea.d.ts","sourceRoot":"","sources":["../../../src/react/components/CodeArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAS,MAAM,OAAO,CAAC;AAMlD,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;2BACuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;gEAC4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;2CACuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;+DAC2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAmB,EACnB,UAAiB,EACjB,WAAW,EACX,OAAW,EACX,KAAc,EACd,SAAS,EAAE,aAAa,EACxB,SAAS,GACV,EAAE,aAAa,+BA0Ff"}
1
+ {"version":3,"file":"CodeArea.d.ts","sourceRoot":"","sources":["../../../src/react/components/CodeArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAS,MAAM,OAAO,CAAC;AAOlD,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;2BACuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;gEAC4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;2CACuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;+DAC2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAmB,EACnB,UAAiB,EACjB,WAAW,EACX,OAAW,EACX,KAAc,EACd,SAAS,EAAE,aAAa,EACxB,SAAS,GACV,EAAE,aAAa,+BA0Ff"}
@@ -4,6 +4,7 @@ import { cn } from '../lib/cn';
4
4
  import { handleCodeTabIndent } from '../lib/tabIndent';
5
5
  import { CopyButton } from './CopyButton';
6
6
  import { ScrollArea } from './ScrollArea';
7
+ import { TAP_TARGET_ALWAYS } from '../lib/tapTarget';
7
8
  /**
8
9
  * The structural code panel (task cbux-42): a monospace, editor-look surface on
9
10
  * the sunken-surface token (`--surface-sunken` — the same recessed reading as
@@ -42,7 +43,7 @@ export function CodeArea({ value, onChange, readOnly, lineNumbers = false, copyB
42
43
  editable && 'focus-within:border-field-ring focus-within:ring-2 focus-within:ring-field-ring/30', className), children: [copyButton && value !== '' && (_jsx("div", { className: cn('absolute right-1.5 top-1.5 z-10 rounded bg-surface-sunken/80',
43
44
  // Reveal on hover/focus on fine pointers; always visible on touch,
44
45
  // where there is no hover to reveal it.
45
- 'opacity-0 transition-opacity duration-[var(--duration-fast)]', 'group-focus-within:opacity-100 group-hover:opacity-100 pointer-coarse:opacity-100'), children: _jsx(CopyButton, { value: value, confirmToast: false }) })), _jsx(ScrollArea, { space: 'none', safeArea: false, axis: editable ? 'y' : 'both', className: 'min-h-0 flex-1', children: _jsxs("div", { className: cn('flex font-mono text-xs leading-5', !editable && 'min-w-max'), children: [lineNumbers && (_jsx("pre", { "aria-hidden": true, className: 'sticky left-0 shrink-0 select-none border-r border-border bg-surface-sunken py-2 pl-2.5 pr-2 text-right text-muted-foreground', children: Array.from({ length: gutterNumbers }, (_, i) => i + 1).join('\n') })), editable ? (_jsx("textarea", {
46
+ 'opacity-0 transition-opacity duration-[var(--duration-fast)]', `group-focus-within:opacity-100 group-hover:opacity-100 ${TAP_TARGET_ALWAYS}`), children: _jsx(CopyButton, { value: value, confirmToast: false }) })), _jsx(ScrollArea, { space: 'none', safeArea: false, axis: editable ? 'y' : 'both', className: 'min-h-0 flex-1', children: _jsxs("div", { className: cn('flex font-mono text-xs leading-5', !editable && 'min-w-max'), children: [lineNumbers && (_jsx("pre", { "aria-hidden": true, className: 'sticky left-0 shrink-0 select-none border-r border-border bg-surface-sunken py-2 pl-2.5 pr-2 text-right text-muted-foreground', children: Array.from({ length: gutterNumbers }, (_, i) => i + 1).join('\n') })), editable ? (_jsx("textarea", {
46
47
  // guardrails-ignore no-raw-inputs: this IS the CodeArea primitive's own
47
48
  // editing surface — a bare mono textarea it wraps with the gutter/copy/
48
49
  // sunken-panel chrome (same self-exemption as CodeFieldInput).
@@ -1 +1 @@
1
- {"version":3,"file":"CodeArea.js","sourceRoot":"","sources":["../../../src/react/components/CodeArea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeArea.js","sourceRoot":"","sources":["../../../src/react/components/CodeArea.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,+BA8BlB"}
1
+ {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,+BA8BlB"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as RadixCollapsible from '@radix-ui/react-collapsible';
3
3
  import { ChevronDown } from 'lucide-react';
4
4
  import { cn } from '../lib/cn';
5
+ import { TAP_TARGET_HEIGHT } from '../lib/tapTarget';
5
6
  /**
6
7
  * A single collapsible section built on Radix `Collapsible` — accessible
7
8
  * (`aria-expanded` + `aria-controls` wired by Radix) with an animated height
@@ -15,6 +16,6 @@ export function Collapsible({ trigger, children, open, defaultOpen = false, onOp
15
16
  return (_jsxs(RadixCollapsible.Root, { open: open, defaultOpen: defaultOpen, onOpenChange: onOpenChange, disabled: disabled, className: className, children: [_jsx(RadixCollapsible.Trigger, { asChild: true, children: _jsxs("button", {
16
17
  // guardrails-ignore no-raw-action-button: this IS the Collapsible section-toggle
17
18
  // primitive — its own trigger is necessarily a raw <button> (Radix Trigger asChild).
18
- type: 'button', className: 'group flex w-full items-center justify-between gap-2 py-2 text-left text-sm font-medium text-foreground transition-colors hover:text-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11', children: [trigger, _jsx(ChevronDown, { className: 'size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180' })] }) }), _jsx(RadixCollapsible.Content, { className: cn('overflow-hidden data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up', contentClassName), children: children })] }));
19
+ type: 'button', className: `group flex w-full items-center justify-between gap-2 py-2 text-left text-sm font-medium text-foreground transition-colors hover:text-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${TAP_TARGET_HEIGHT}`, children: [trigger, _jsx(ChevronDown, { className: 'size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180' })] }) }), _jsx(RadixCollapsible.Content, { className: cn('overflow-hidden data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up', contentClassName), children: children })] }));
19
20
  }
20
21
  //# sourceMappingURL=Collapsible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAmB/B;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACC;IACjB,OAAO,CACL,MAAC,gBAAgB,CAAC,IAAI,IACpB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEpB,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC/B;oBACE,iFAAiF;oBACjF,qFAAqF;oBACrF,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6RAA6R,aAEtS,OAAO,EACR,KAAC,WAAW,IAAC,SAAS,EAAC,4GAA4G,GAAG,IAC/H,GACgB,EAC3B,KAAC,gBAAgB,CAAC,OAAO,IACvB,SAAS,EAAE,EAAE,CACX,uGAAuG,EACvG,gBAAgB,CACjB,YAEA,QAAQ,GACgB,IACL,CACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAmBrD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACC;IACjB,OAAO,CACL,MAAC,gBAAgB,CAAC,IAAI,IACpB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEpB,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC/B;oBACE,iFAAiF;oBACjF,qFAAqF;oBACrF,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,uQAAuQ,iBAAiB,EAAE,aAEpS,OAAO,EACR,KAAC,WAAW,IAAC,SAAS,EAAC,4GAA4G,GAAG,IAC/H,GACgB,EAC3B,KAAC,gBAAgB,CAAC,OAAO,IACvB,SAAS,EAAE,EAAE,CACX,uGAAuG,EACvG,gBAAgB,CACjB,YAEA,QAAQ,GACgB,IACL,CACzB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxField.d.ts","sourceRoot":"","sources":["../../../src/react/components/ComboboxField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhG,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B;oEACgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3D,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;uCAEmC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,wBAAyB,SAAQ,YAAY;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AA4EpF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BA2KtD"}
1
+ {"version":3,"file":"ComboboxField.d.ts","sourceRoot":"","sources":["../../../src/react/components/ComboboxField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhG,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B;oEACgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3D,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;uCAEmC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,wBAAyB,SAAQ,YAAY;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AA4EpF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BA2KtD"}
@@ -6,6 +6,7 @@ import { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { cn } from '../lib/cn';
7
7
  import { CONTROL_HEIGHT_CLASS, CONTROL_MIN_HEIGHT_CLASS } from '../lib/field';
8
8
  import { FLOATING_COLLISION_PADDING, FLOATING_CONTENT_BASE, FLOATING_ITEM_BASE } from '../lib/floatingStyles';
9
+ import { TAP_TARGET } from '../lib/tapTarget';
9
10
  const DEBOUNCE_MS = 250;
10
11
  /** Sentinel value used to represent the "Create new" option inside Base UI. */
11
12
  const CREATE_SENTINEL = '__cb_create__';
@@ -100,8 +101,8 @@ export function ComboboxField(props) {
100
101
  const singleValue = !multiple ? (props.value ?? null) : undefined;
101
102
  return (_jsxs(Combobox.Root, { ...itemsProps, name: name, disabled: disabled, multiple: multiple, value: (multiple ? multiValue : singleValue), onValueChange: handleValueChange, onInputValueChange: (v) => setQuery(v), children: [_jsxs(Combobox.InputGroup, { className: inputGroupClass, children: [multiple && (_jsx(Combobox.Chips, { className: 'flex flex-wrap items-center gap-1 px-2 py-1.5', children: (multiValue ?? []).map((v) => {
102
103
  const lbl = labelForValue(v);
103
- return (_jsxs(Combobox.Chip, { className: 'inline-flex items-center gap-1 rounded bg-muted py-0.5 pl-2 pr-1 text-sm text-foreground', children: [_jsx("span", { children: lbl }), _jsx(Combobox.ChipRemove, { "aria-label": `Remove ${lbl}`, className: 'inline-flex size-4 items-center justify-center rounded-sm text-muted-foreground transition hover:bg-border hover:text-foreground pointer-coarse:min-h-11 pointer-coarse:min-w-11', children: _jsx(X, { className: 'size-3', "aria-hidden": true }) })] }, v));
104
- }) })), _jsx(Combobox.Input, { id: id, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, placeholder: placeholder, className: cn('min-w-24 flex-1 bg-transparent px-3 text-base text-field-fg outline-none placeholder:text-field-placeholder sm:text-sm', multiple && 'py-1.5') }), loading ? (_jsx(Loader2, { className: 'mr-2 size-4 shrink-0 animate-spin opacity-50', "aria-label": 'Loading options' })) : (_jsx(Combobox.Trigger, { "aria-label": 'Toggle options', className: 'mr-2 flex size-5 shrink-0 items-center justify-center text-muted-foreground transition hover:text-foreground pointer-coarse:min-h-11 pointer-coarse:min-w-11', children: _jsx(ChevronDown, { className: 'size-4' }) }))] }), _jsx(Combobox.Portal, { children: _jsx(Combobox.Positioner, { sideOffset: 4, collisionPadding: FLOATING_COLLISION_PADDING, children: _jsx(Combobox.Popup, { className: cn(FLOATING_CONTENT_BASE,
104
+ return (_jsxs(Combobox.Chip, { className: 'inline-flex items-center gap-1 rounded bg-muted py-0.5 pl-2 pr-1 text-sm text-foreground', children: [_jsx("span", { children: lbl }), _jsx(Combobox.ChipRemove, { "aria-label": `Remove ${lbl}`, className: `inline-flex size-4 items-center justify-center rounded-sm text-muted-foreground transition hover:bg-border hover:text-foreground ${TAP_TARGET}`, children: _jsx(X, { className: 'size-3', "aria-hidden": true }) })] }, v));
105
+ }) })), _jsx(Combobox.Input, { id: id, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, placeholder: placeholder, className: cn('min-w-24 flex-1 bg-transparent px-3 text-base text-field-fg outline-none placeholder:text-field-placeholder sm:text-sm', multiple && 'py-1.5') }), loading ? (_jsx(Loader2, { className: 'mr-2 size-4 shrink-0 animate-spin opacity-50', "aria-label": 'Loading options' })) : (_jsx(Combobox.Trigger, { "aria-label": 'Toggle options', className: `mr-2 flex size-5 shrink-0 items-center justify-center text-muted-foreground transition hover:text-foreground ${TAP_TARGET}`, children: _jsx(ChevronDown, { className: 'size-4' }) }))] }), _jsx(Combobox.Portal, { children: _jsx(Combobox.Positioner, { sideOffset: 4, collisionPadding: FLOATING_COLLISION_PADDING, children: _jsx(Combobox.Popup, { className: cn(FLOATING_CONTENT_BASE,
105
106
  // guardrails-ignore no-raw-overflow: floating popover panel outside the page's ScrollArea, height-capped by max-h-64 — no keyboard-inset concern.
106
107
  'max-h-64 min-w-[var(--anchor-width)] overflow-y-auto p-0', 'transition-[transform,opacity] duration-100', 'data-[starting-style]:scale-95 data-[starting-style]:opacity-0', 'data-[ending-style]:scale-95 data-[ending-style]:opacity-0'), children: _jsx(ComboboxList, { creatable: creatable, query: query, onCreateClick: handleCreate }) }) }) })] }));
107
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxField.js","sourceRoot":"","sources":["../../../src/react/components/ComboboxField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxField.js","sourceRoot":"","sources":["../../../src/react/components/ComboboxField.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../src/react/components/CopyButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC/B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;iFACiF;AACjF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAA2B,EAC3B,WAAsB,EACtB,QAAQ,EACR,UAAqB,EACrB,YAAmB,EACnB,QAAe,EACf,QAAQ,EACR,UAAU,EACV,QAAa,EACb,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE,eAAe,+BAsCjB"}
1
+ {"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../src/react/components/CopyButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC/B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;iFACiF;AACjF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAA2B,EAC3B,WAAsB,EACtB,QAAQ,EACR,UAAqB,EACrB,YAAmB,EACnB,QAAe,EACf,QAAQ,EACR,UAAU,EACV,QAAa,EACb,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE,eAAe,+BAsCjB"}
@@ -4,6 +4,7 @@ import { toast } from 'sonner';
4
4
  import { useCopyToClipboard } from '../hooks/useCopyToClipboard';
5
5
  import { cn } from '../lib/cn';
6
6
  import { Button } from './Button';
7
+ import { TAP_TARGET } from '../lib/tapTarget';
7
8
  /** A copy-to-clipboard button: a transient inline ✓ plus a sonner success toast
8
9
  * (the single, app-wide copy confirmation — no Redux, no hand-rolled toast). */
9
10
  export function CopyButton({ value, label = 'Copy to clipboard', copiedLabel = 'Copied', children, copiedText = 'Copied', confirmToast = true, showIcon = true, copyIcon, copiedIcon, iconSize = 16, onCopied, onError, stopPropagation, tooltip, tooltipPlacement, resetMs, className, disabled, }) {
@@ -23,7 +24,7 @@ export function CopyButton({ value, label = 'Copy to clipboard', copiedLabel = '
23
24
  onError?.();
24
25
  }
25
26
  };
26
- return (_jsxs(Button, { variant: 'ghost', "aria-label": copied ? copiedLabel : label, tooltip: tooltip ?? (copied ? copiedLabel : label), tooltipSide: tooltipPlacement, onClick: onClick, disabled: disabled, className: cn('h-auto min-h-0 w-auto shrink-0 cursor-pointer gap-1 rounded p-1 text-muted-foreground hover:bg-transparent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50 pointer-coarse:min-h-11 pointer-coarse:min-w-11', className), children: [showIcon
27
+ return (_jsxs(Button, { variant: 'ghost', "aria-label": copied ? copiedLabel : label, tooltip: tooltip ?? (copied ? copiedLabel : label), tooltipSide: tooltipPlacement, onClick: onClick, disabled: disabled, className: cn(`h-auto min-h-0 w-auto shrink-0 cursor-pointer gap-1 rounded p-1 text-muted-foreground hover:bg-transparent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50 ${TAP_TARGET}`, className), children: [showIcon
27
28
  ? copied
28
29
  ? (copiedIcon ?? _jsx(Check, { size: iconSize }))
29
30
  : (copyIcon ?? _jsx(Copy, { size: iconSize }))
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../../src/react/components/CopyButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAsClC;iFACiF;AACjF,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,GAAG,mBAAmB,EAC3B,WAAW,GAAG,QAAQ,EACtB,QAAQ,EACR,UAAU,GAAG,QAAQ,EACrB,YAAY,GAAG,IAAI,EACnB,QAAQ,GAAG,IAAI,EACf,QAAQ,EACR,UAAU,EACV,QAAQ,GAAG,EAAE,EACb,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,QAAQ,GACQ;IAChB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAgC,EAAE,EAAE;QACzD,IAAI,eAAe;YAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,OAAO,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACzF,CAAC;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,gBACH,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EACxC,OAAO,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAClD,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,kOAAkO,EAClO,SAAS,CACV,aAEA,QAAQ;gBACP,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,CAAC,UAAU,IAAI,KAAC,KAAK,IAAC,IAAI,EAAE,QAAQ,GAAI,CAAC;oBAC3C,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,GAAI,CAAC;gBAC1C,CAAC,CAAC,IAAI,EACP,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IACpE,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../../src/react/components/CopyButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAqC9C;iFACiF;AACjF,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,GAAG,mBAAmB,EAC3B,WAAW,GAAG,QAAQ,EACtB,QAAQ,EACR,UAAU,GAAG,QAAQ,EACrB,YAAY,GAAG,IAAI,EACnB,QAAQ,GAAG,IAAI,EACf,QAAQ,EACR,UAAU,EACV,QAAQ,GAAG,EAAE,EACb,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,QAAQ,GACQ;IAChB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAgC,EAAE,EAAE;QACzD,IAAI,eAAe;YAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,OAAO,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACzF,CAAC;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,gBACH,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EACxC,OAAO,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAClD,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,oLAAoL,UAAU,EAAE,EAChM,SAAS,CACV,aAEA,QAAQ;gBACP,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,CAAC,UAAU,IAAI,KAAC,KAAK,IAAC,IAAI,EAAE,QAAQ,GAAI,CAAC;oBAC3C,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,GAAI,CAAC;gBAC1C,CAAC,CAAC,IAAI,EACP,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IACpE,CACV,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnChecklist.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/ColumnChecklist.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAA6B,EAC7B,eAAgC,EAChC,YAAY,EAAE,SAAS,EACvB,SAAS,GACV,EAAE,oBAAoB,+BAqEtB"}
1
+ {"version":3,"file":"ColumnChecklist.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/ColumnChecklist.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAA6B,EAC7B,eAAgC,EAChC,YAAY,EAAE,SAAS,EACvB,SAAS,GACV,EAAE,oBAAoB,+BAqEtB"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Check } from 'lucide-react';
3
3
  import { cn } from '../../lib/cn';
4
+ import { TAP_TARGET_HEIGHT } from '../../lib/tapTarget';
4
5
  /**
5
6
  * ONE column checklist with select-all / deselect-all, used by BOTH the
6
7
  * column-visibility menu and the search-scope control.
@@ -28,6 +29,6 @@ export function ColumnChecklist({ items, onToggle, onSelectAll, onSelectNone, se
28
29
  // guardrails-ignore no-raw-action-button: view-state bulk toggle, not a mutating action.
29
30
  type: 'button', onClick: onSelectNone, disabled: allOff, className: 'rounded px-1.5 py-1 text-caption font-semibold uppercase tracking-wide text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40', children: selectNoneLabel })] }), _jsx("div", { className: 'max-h-64 overflow-y-auto', children: items.map((item) => (_jsxs("button", {
30
31
  // guardrails-ignore no-raw-action-button: view-state checkbox row, not a mutating action.
31
- type: 'button', role: 'menuitemcheckbox', "aria-checked": item.checked, disabled: item.disabled, onClick: () => onToggle(item.key), className: cn('flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm transition-colors', 'hover:bg-muted focus-visible:bg-muted focus-visible:outline-none', 'pointer-coarse:min-h-11', item.disabled && 'cursor-not-allowed opacity-50'), children: [_jsx("span", { "aria-hidden": true, className: cn('flex size-4 shrink-0 items-center justify-center rounded border', item.checked ? 'border-primary bg-primary text-primary-foreground' : 'border-border'), children: item.checked ? _jsx(Check, { className: 'size-3' }) : null }), _jsx("span", { className: 'min-w-0 truncate', children: item.label })] }, item.key))) })] }));
32
+ type: 'button', role: 'menuitemcheckbox', "aria-checked": item.checked, disabled: item.disabled, onClick: () => onToggle(item.key), className: cn('flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm transition-colors', 'hover:bg-muted focus-visible:bg-muted focus-visible:outline-none', TAP_TARGET_HEIGHT, item.disabled && 'cursor-not-allowed opacity-50'), children: [_jsx("span", { "aria-hidden": true, className: cn('flex size-4 shrink-0 items-center justify-center rounded border', item.checked ? 'border-primary bg-primary text-primary-foreground' : 'border-border'), children: item.checked ? _jsx(Check, { className: 'size-3' }) : null }), _jsx("span", { className: 'min-w-0 truncate', children: item.label })] }, item.key))) })] }));
32
33
  }
33
34
  //# sourceMappingURL=ColumnChecklist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnChecklist.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/ColumnChecklist.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAsBlC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,GAAG,YAAY,EAC7B,eAAe,GAAG,cAAc,EAChC,YAAY,EAAE,SAAS,EACvB,SAAS,GACY;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO,CAIL,oBAAU,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,gBAAc,SAAS,aAC5G,eAAK,SAAS,EAAC,uDAAuD,aACpE;wBACE,yFAAyF;wBACzF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,sLAAsL,YAE/L,cAAc,GACR,EACT,oCAAkB,SAAS,EAAC,uBAAuB,uBAE5C,EACP;wBACE,yFAAyF;wBACzF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAC,sLAAsL,YAE/L,eAAe,GACT,IACL,EAKN,cAAK,SAAS,EAAC,0BAA0B,YACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB;oBACE,0FAA0F;oBAC1F,IAAI,EAAC,QAAQ,EAEb,IAAI,EAAC,kBAAkB,kBACT,IAAI,CAAC,OAAO,EAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EACjC,SAAS,EAAE,EAAE,CACX,2FAA2F,EAC3F,kEAAkE,EAClE,yBAAyB,EACzB,IAAI,CAAC,QAAQ,IAAI,+BAA+B,CACjD,aAED,oCAEE,SAAS,EAAE,EAAE,CACX,iEAAiE,EACjE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,eAAe,CACrF,YAEA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAC9C,EACP,eAAM,SAAS,EAAC,kBAAkB,YAAE,IAAI,CAAC,KAAK,GAAQ,KArBjD,IAAI,CAAC,GAAG,CAsBN,CACV,CAAC,GACE,IACG,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ColumnChecklist.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/ColumnChecklist.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAsBxD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,GAAG,YAAY,EAC7B,eAAe,GAAG,cAAc,EAChC,YAAY,EAAE,SAAS,EACvB,SAAS,GACY;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO,CAIL,oBAAU,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,gBAAc,SAAS,aAC5G,eAAK,SAAS,EAAC,uDAAuD,aACpE;wBACE,yFAAyF;wBACzF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,KAAK,EACf,SAAS,EAAC,sLAAsL,YAE/L,cAAc,GACR,EACT,oCAAkB,SAAS,EAAC,uBAAuB,uBAE5C,EACP;wBACE,yFAAyF;wBACzF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAC,sLAAsL,YAE/L,eAAe,GACT,IACL,EAKN,cAAK,SAAS,EAAC,0BAA0B,YACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB;oBACE,0FAA0F;oBAC1F,IAAI,EAAC,QAAQ,EAEb,IAAI,EAAC,kBAAkB,kBACT,IAAI,CAAC,OAAO,EAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EACjC,SAAS,EAAE,EAAE,CACX,2FAA2F,EAC3F,kEAAkE,EAClE,iBAAiB,EACjB,IAAI,CAAC,QAAQ,IAAI,+BAA+B,CACjD,aAED,oCAEE,SAAS,EAAE,EAAE,CACX,iEAAiE,EACjE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,eAAe,CACrF,YAEA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,GAC9C,EACP,eAAM,SAAS,EAAC,kBAAkB,YAAE,IAAI,CAAC,KAAK,GAAQ,KArBjD,IAAI,CAAC,GAAG,CAsBN,CACV,CAAC,GACE,IACG,CACZ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAMnD,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,+BAiE3F"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAOnD,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,+BAiE3F"}
@@ -3,6 +3,7 @@ import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-r
3
3
  import { IconButton } from '../IconButton';
4
4
  import { Cluster } from '../layout';
5
5
  import { SelectField } from '../SelectField';
6
+ import { TAP_TARGET_HEIGHT } from '../../lib/tapTarget';
6
7
  /**
7
8
  * The DataTable's pager, wired directly to TanStack pagination state — replaces the old
8
9
  * hand-rolled `Pagination` with no ad-hoc page math. Works for client-side paging and,
@@ -15,6 +16,6 @@ export function TablePagination({ table, pageSizeOptions }) {
15
16
  const pageCount = table.getPageCount();
16
17
  const start = total === 0 ? 0 : pageIndex * pageSize + 1;
17
18
  const end = Math.min((pageIndex + 1) * pageSize, total);
18
- return (_jsxs("div", { className: 'flex flex-wrap items-center justify-between gap-3 border-t border-border px-4 py-2.5 text-sm text-muted-foreground', children: [_jsxs("div", { className: 'flex items-center gap-3', children: [_jsx("span", { children: total === 0 ? 'No results' : `${start}–${end} of ${total}` }), pageSizeOptions?.length ? (_jsxs("span", { className: 'flex items-center gap-1.5', children: [_jsx("span", { className: 'whitespace-nowrap', children: "Per page" }), _jsx(SelectField, { fieldStyle: false, "aria-label": 'Rows per page', className: 'h-8 rounded-md border border-border bg-background px-2 pointer-coarse:min-h-11', value: String(pageSize), onValueChange: (v) => table.setPageSize(Number(v)), options: pageSizeOptions.map((n) => ({ value: String(n), label: String(n) })) })] })) : null] }), _jsxs(Cluster, { gap: 1, children: [_jsx(IconButton, { label: 'First page', className: 'size-7 [&_svg]:size-4', onClick: () => table.setPageIndex(0), disabled: !table.getCanPreviousPage(), children: _jsx(ChevronsLeft, {}) }), _jsx(IconButton, { label: 'Previous page', className: 'size-7 [&_svg]:size-4', onClick: () => table.previousPage(), disabled: !table.getCanPreviousPage(), children: _jsx(ChevronLeft, {}) }), _jsxs("span", { className: 'px-2 tabular-nums', children: [pageIndex + 1, " / ", Math.max(1, pageCount)] }), _jsx(IconButton, { label: 'Next page', className: 'size-7 [&_svg]:size-4', onClick: () => table.nextPage(), disabled: !table.getCanNextPage(), children: _jsx(ChevronRight, {}) }), _jsx(IconButton, { label: 'Last page', className: 'size-7 [&_svg]:size-4', onClick: () => table.setPageIndex(pageCount - 1), disabled: !table.getCanNextPage(), children: _jsx(ChevronsRight, {}) })] })] }));
19
+ return (_jsxs("div", { className: 'flex flex-wrap items-center justify-between gap-3 border-t border-border px-4 py-2.5 text-sm text-muted-foreground', children: [_jsxs("div", { className: 'flex items-center gap-3', children: [_jsx("span", { children: total === 0 ? 'No results' : `${start}–${end} of ${total}` }), pageSizeOptions?.length ? (_jsxs("span", { className: 'flex items-center gap-1.5', children: [_jsx("span", { className: 'whitespace-nowrap', children: "Per page" }), _jsx(SelectField, { fieldStyle: false, "aria-label": 'Rows per page', className: `h-8 rounded-md border border-border bg-background px-2 ${TAP_TARGET_HEIGHT}`, value: String(pageSize), onValueChange: (v) => table.setPageSize(Number(v)), options: pageSizeOptions.map((n) => ({ value: String(n), label: String(n) })) })] })) : null] }), _jsxs(Cluster, { gap: 1, children: [_jsx(IconButton, { label: 'First page', className: 'size-7 [&_svg]:size-4', onClick: () => table.setPageIndex(0), disabled: !table.getCanPreviousPage(), children: _jsx(ChevronsLeft, {}) }), _jsx(IconButton, { label: 'Previous page', className: 'size-7 [&_svg]:size-4', onClick: () => table.previousPage(), disabled: !table.getCanPreviousPage(), children: _jsx(ChevronLeft, {}) }), _jsxs("span", { className: 'px-2 tabular-nums', children: [pageIndex + 1, " / ", Math.max(1, pageCount)] }), _jsx(IconButton, { label: 'Next page', className: 'size-7 [&_svg]:size-4', onClick: () => table.nextPage(), disabled: !table.getCanNextPage(), children: _jsx(ChevronRight, {}) }), _jsx(IconButton, { label: 'Last page', className: 'size-7 [&_svg]:size-4', onClick: () => table.setPageIndex(pageCount - 1), disabled: !table.getCanNextPage(), children: _jsx(ChevronsRight, {}) })] })] }));
19
20
  }
20
21
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/Pagination.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQ7C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAO,EAAE,KAAK,EAAE,eAAe,EAA8B;IAC1F,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;IAExD,OAAO,CACL,eAAK,SAAS,EAAC,oHAAoH,aACjI,eAAK,SAAS,EAAC,yBAAyB,aACtC,yBAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,OAAO,KAAK,EAAE,GAAQ,EACxE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CACzB,gBAAM,SAAS,EAAC,2BAA2B,aACzC,eAAM,SAAS,EAAC,mBAAmB,yBAAgB,EACnD,KAAC,WAAW,IACV,UAAU,EAAE,KAAK,gBACN,eAAe,EAC1B,SAAS,EAAC,gFAAgF,EAC1F,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EACvB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAClD,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7E,IACG,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,EAEN,MAAC,OAAO,IAAC,GAAG,EAAE,CAAC,aACb,KAAC,UAAU,IACT,KAAK,EAAC,YAAY,EAClB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EACpC,QAAQ,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,YAErC,KAAC,YAAY,KAAG,GACL,EACb,KAAC,UAAU,IACT,KAAK,EAAC,eAAe,EACrB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EACnC,QAAQ,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,YAErC,KAAC,WAAW,KAAG,GACJ,EACb,gBAAM,SAAS,EAAC,mBAAmB,aAChC,SAAS,GAAG,CAAC,SAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IACpC,EACP,KAAC,UAAU,IACT,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAC/B,QAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,YAEjC,KAAC,YAAY,KAAG,GACL,EACb,KAAC,UAAU,IACT,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,EAChD,QAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,YAEjC,KAAC,aAAa,KAAG,GACN,IACL,IACN,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/Pagination.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortHeader.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/SortHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAwBpD,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,EAC/B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAc,EACd,MAAM,GACP,EAAE,eAAe,CAAC,IAAI,CAAC,+BAkDvB"}
1
+ {"version":3,"file":"SortHeader.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/SortHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAyBpD,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,EAC/B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAc,EACd,MAAM,GACP,EAAE,eAAe,CAAC,IAAI,CAAC,+BAkDvB"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react';
3
3
  import { Tooltip } from '../Tooltip';
4
+ import { TAP_TARGET_HEIGHT } from '../../lib/tapTarget';
4
5
  /**
5
6
  * The full label, one hover away — and it is OURS, not the browser's.
6
7
  *
@@ -46,6 +47,6 @@ export function SortHeader({ column, label, sortable, sortIndex = -1, onSort, })
46
47
  // computed styles on orch's Fleet tab, 2026-08-12: `th` uppercase,
47
48
  // `button` none. Letter-spacing does inherit (0.55px on both), so only
48
49
  // the case needs restating.
49
- className: '-mx-1 -my-2.5 inline-flex max-w-full items-center gap-1 rounded px-1 py-2.5 uppercase transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11', children: [_jsx("span", { className: 'min-w-0 truncate', children: label }), sorted === 'asc' ? (_jsx(ArrowUp, { className: 'size-3 shrink-0', "aria-hidden": true })) : sorted === 'desc' ? (_jsx(ArrowDown, { className: 'size-3 shrink-0', "aria-hidden": true })) : (_jsx(ArrowUpDown, { className: 'size-3 shrink-0 opacity-30', "aria-hidden": true })), sortIndex >= 0 ? (_jsxs("span", { "data-cb-sort-index": sortIndex + 1, className: 'shrink-0 rounded-full bg-muted px-1 text-caption font-bold text-muted-foreground tabular-nums', children: [sortIndex + 1, _jsx("span", { className: 'sr-only', children: " sort priority" })] })) : null] }));
50
+ className: `-mx-1 -my-2.5 inline-flex max-w-full items-center gap-1 rounded px-1 py-2.5 uppercase transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${TAP_TARGET_HEIGHT}`, children: [_jsx("span", { className: 'min-w-0 truncate', children: label }), sorted === 'asc' ? (_jsx(ArrowUp, { className: 'size-3 shrink-0', "aria-hidden": true })) : sorted === 'desc' ? (_jsx(ArrowDown, { className: 'size-3 shrink-0', "aria-hidden": true })) : (_jsx(ArrowUpDown, { className: 'size-3 shrink-0 opacity-30', "aria-hidden": true })), sortIndex >= 0 ? (_jsxs("span", { "data-cb-sort-index": sortIndex + 1, className: 'shrink-0 rounded-full bg-muted px-1 text-caption font-bold text-muted-foreground tabular-nums', children: [sortIndex + 1, _jsx("span", { className: 'sr-only', children: " sort priority" })] })) : null] }));
50
51
  }
51
52
  //# sourceMappingURL=SortHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SortHeader.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/SortHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;GAYG;AACH,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,QAAmB,EAAE,EAAE,CAAC,CAC3D,KAAC,OAAO,IAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAC,QAAQ,YACnC,QAAQ,GACD,CACX,CAAC;AAyBF;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAO,EAC/B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,CAAC,CAAC,EACd,MAAM,GACgB;IACtB,6EAA6E;IAC7E,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAC,KAAK,EAAE,eAAM,SAAS,EAAC,gBAAgB,YAAE,KAAK,GAAQ,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,YAAY,CACjB,KAAK,EACL;QACE,mFAAmF;QACnF,wCAAwC;QACxC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,6DAA6D;QAC7D,uEAAuE;QACvE,iEAAiE;QACjE,0EAA0E;QAC1E,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,uEAAuE;QACvE,4BAA4B;QAC5B,SAAS,EAAC,+NAA+N,aAIzO,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,GAAQ,EAChD,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAClB,KAAC,OAAO,IAAC,SAAS,EAAC,iBAAiB,wBAAe,CACpD,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACtB,KAAC,SAAS,IAAC,SAAS,EAAC,iBAAiB,wBAAe,CACtD,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,SAAS,EAAC,4BAA4B,wBAAe,CACnE,EACA,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAChB,sCACsB,SAAS,GAAG,CAAC,EACjC,SAAS,EAAC,+FAA+F,aAExG,SAAS,GAAG,CAAC,EACd,eAAM,SAAS,EAAC,SAAS,+BAAsB,IAC1C,CACR,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SortHeader.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/SortHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,QAAmB,EAAE,EAAE,CAAC,CAC3D,KAAC,OAAO,IAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAC,QAAQ,YACnC,QAAQ,GACD,CACX,CAAC;AAyBF;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAO,EAC/B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,CAAC,CAAC,EACd,MAAM,GACgB;IACtB,6EAA6E;IAC7E,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAC,KAAK,EAAE,eAAM,SAAS,EAAC,gBAAgB,YAAE,KAAK,GAAQ,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,YAAY,CACjB,KAAK,EACL;QACE,mFAAmF;QACnF,wCAAwC;QACxC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,6DAA6D;QAC7D,uEAAuE;QACvE,iEAAiE;QACjE,0EAA0E;QAC1E,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,uEAAuE;QACvE,4BAA4B;QAC5B,SAAS,EAAE,yMAAyM,iBAAiB,EAAE,aAIvO,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,GAAQ,EAChD,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAClB,KAAC,OAAO,IAAC,SAAS,EAAC,iBAAiB,wBAAe,CACpD,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACtB,KAAC,SAAS,IAAC,SAAS,EAAC,iBAAiB,wBAAe,CACtD,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,SAAS,EAAC,4BAA4B,wBAAe,CACnE,EACA,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAChB,sCACsB,SAAS,GAAG,CAAC,EACjC,SAAS,EAAC,+FAA+F,aAExG,SAAS,GAAG,CAAC,EACd,eAAM,SAAS,EAAC,SAAS,+BAAsB,IAC1C,CACR,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { type FilterQuery } from './filterQuery';
2
+ export interface TableFilterBuilderColumn {
3
+ key: string;
4
+ label: string;
5
+ }
6
+ export interface TableFilterBuilderProps {
7
+ columns: TableFilterBuilderColumn[];
8
+ value: FilterQuery;
9
+ onChange: (next: FilterQuery) => void;
10
+ className?: string;
11
+ }
12
+ /**
13
+ * The TABLE's filter builder — `(A and B) or (C and D)`, and the UX is the hard half.
14
+ *
15
+ * ── 🔴 Why the name carries `Table`, 2026-09-13 ─────────────────────────────
16
+ * It was `FilterBuilder`, and `cursedesk` has a `FilterBuilder` of its own. The
17
+ * graduation pass that looked at the pair to decide which one should live here
18
+ * found they are not two copies of one component — they are two different
19
+ * components wearing one basename, which is the trap that makes the next person
20
+ * merge them wrongly:
21
+ *
22
+ * - **This one is a VIEW filter.** Two levels by construction (groups OR'd,
23
+ * conditions AND'd inside one), values are strings, columns are `{key,label}`
24
+ * with no type, and it narrows rows already on screen behind a popover on the
25
+ * `DataTable` toolbar. Nothing it builds crosses a wire.
26
+ * - **`cursedesk`'s is a QUERY builder** — an arbitrarily-nested AND/OR/NOT
27
+ * tree with per-type operator sets (`between`, `matches`, `in`, `isEmpty`),
28
+ * range and set editors, `caseSensitive` per rule and a validator, editing
29
+ * the exact `FilterNode` its API consumes so what is built is what the server
30
+ * filters and exports by.
31
+ *
32
+ * Neither is the other generalised. Collapsing them would mean either giving a
33
+ * table toolbar a regex field and a three-deep nesting rule, or taking typed
34
+ * operators away from a filter the server evaluates — so they stay two, and
35
+ * this one says which it is. See {@link FilterQuery} for the shape it edits;
36
+ * the name of the thing it is NOT is `cursedesk`'s `ui/workbench/FilterBuilder`.
37
+ *
38
+ * The owner's closing clause is the acceptance test, not a nicety: *"easy enough
39
+ * that I don't give up on trying it."* So every decision here is made against
40
+ * "can somebody who did not write this finish a two-group filter":
41
+ *
42
+ * - **No Apply button and no draft state.** Every keystroke narrows the table
43
+ * behind the popover, so you can see whether you are getting closer. A builder
44
+ * whose result only appears after a commit makes you guess, and guessing wrong
45
+ * twice is where people give up. `isActiveCondition` is what makes this
46
+ * survivable — a half-typed condition is not yet a constraint, so the table
47
+ * does not empty out the instant you add a row.
48
+ * - **The grammar is VISIBLE, not implied.** Groups are boxes, the word `OR`
49
+ * sits between them on its own rule, and `and` is printed before every
50
+ * condition after the first. Nobody has to know a precedence rule.
51
+ * - **Exactly two levels.** There is no "add nested group", because the moment
52
+ * nesting exists the reader has to hold a tree in their head. Two levels
53
+ * express his own worked example and everything shaped like it.
54
+ * - **Every row is removable, and so is the whole thing.** `Clear all` is
55
+ * always reachable; a filter you cannot get out of is worse than none.
56
+ *
57
+ * The trigger carries the live count so the toolbar says how many constraints
58
+ * are on without opening anything (DESIGN.md §2 — one line, state legible on it).
59
+ */
60
+ export declare function TableFilterBuilder({ columns, value, onChange, className, }: TableFilterBuilderProps): import("react").JSX.Element | null;
61
+ //# sourceMappingURL=TableFilterBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableFilterBuilder.d.ts","sourceRoot":"","sources":["../../../../src/react/components/DataTable/TableFilterBuilder.tsx"],"names":[],"mappings":"AAOA,OAAO,EAOL,KAAK,WAAW,EAIjB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,uBAAuB,sCA6LzB"}
@@ -12,7 +12,30 @@ const OP_OPTIONS = Object.keys(FILTER_OP_LABELS).map((op) => ({
12
12
  label: FILTER_OP_LABELS[op],
13
13
  }));
14
14
  /**
15
- * The filter builder — `(A and B) or (C and D)`, and the UX is the hard half.
15
+ * The TABLE's filter builder — `(A and B) or (C and D)`, and the UX is the hard half.
16
+ *
17
+ * ── 🔴 Why the name carries `Table`, 2026-09-13 ─────────────────────────────
18
+ * It was `FilterBuilder`, and `cursedesk` has a `FilterBuilder` of its own. The
19
+ * graduation pass that looked at the pair to decide which one should live here
20
+ * found they are not two copies of one component — they are two different
21
+ * components wearing one basename, which is the trap that makes the next person
22
+ * merge them wrongly:
23
+ *
24
+ * - **This one is a VIEW filter.** Two levels by construction (groups OR'd,
25
+ * conditions AND'd inside one), values are strings, columns are `{key,label}`
26
+ * with no type, and it narrows rows already on screen behind a popover on the
27
+ * `DataTable` toolbar. Nothing it builds crosses a wire.
28
+ * - **`cursedesk`'s is a QUERY builder** — an arbitrarily-nested AND/OR/NOT
29
+ * tree with per-type operator sets (`between`, `matches`, `in`, `isEmpty`),
30
+ * range and set editors, `caseSensitive` per rule and a validator, editing
31
+ * the exact `FilterNode` its API consumes so what is built is what the server
32
+ * filters and exports by.
33
+ *
34
+ * Neither is the other generalised. Collapsing them would mean either giving a
35
+ * table toolbar a regex field and a three-deep nesting rule, or taking typed
36
+ * operators away from a filter the server evaluates — so they stay two, and
37
+ * this one says which it is. See {@link FilterQuery} for the shape it edits;
38
+ * the name of the thing it is NOT is `cursedesk`'s `ui/workbench/FilterBuilder`.
16
39
  *
17
40
  * The owner's closing clause is the acceptance test, not a nicety: *"easy enough
18
41
  * that I don't give up on trying it."* So every decision here is made against
@@ -36,7 +59,7 @@ const OP_OPTIONS = Object.keys(FILTER_OP_LABELS).map((op) => ({
36
59
  * The trigger carries the live count so the toolbar says how many constraints
37
60
  * are on without opening anything (DESIGN.md §2 — one line, state legible on it).
38
61
  */
39
- export function FilterBuilder({ columns, value, onChange, className }) {
62
+ export function TableFilterBuilder({ columns, value, onChange, className, }) {
40
63
  const [open, setOpen] = useState(false);
41
64
  const activeCount = countActiveConditions(value);
42
65
  const firstColumn = columns[0]?.key ?? '';
@@ -66,4 +89,4 @@ export function FilterBuilder({ columns, value, onChange, className }) {
66
89
  ? 'Add the first condition'
67
90
  : 'Match EITHER this set of conditions or a new one', onClick: () => onChange({ groups: [...value.groups, newGroup(firstColumn)] }), children: value.groups.length === 0 ? 'Add a condition' : 'Or…' }) })] }) }));
68
91
  }
69
- //# sourceMappingURL=FilterBuilder.js.map
92
+ //# sourceMappingURL=TableFilterBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableFilterBuilder.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/TableFilterBuilder.tsx"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export interface TableToolbarProps<TRow> {
24
24
  * left/centre, actions far right, never a second row.
25
25
  *
26
26
  * What sits on it, left to right: the search box with its use-time scope control
27
- * ({@link SearchBox}), the filter builder ({@link FilterBuilder}), the sort stack
27
+ * ({@link SearchBox}), the filter builder ({@link TableFilterBuilder}), the sort stack
28
28
  * ({@link SortStack}), anything the caller adds, then — right-aligned — the
29
29
  * rows ⇄ cards toggle, the column menu, and import/export/add.
30
30
  *
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Download, Plus, Upload } from 'lucide-react';
3
3
  import { Button } from '../Button';
4
4
  import { Cluster, Split } from '../layout';
5
- import { FilterBuilder } from './FilterBuilder';
6
5
  import { SearchBox } from './SearchBox';
7
6
  import { SortStack } from './SortStack';
7
+ import { TableFilterBuilder } from './TableFilterBuilder';
8
8
  import { TableViewToggle } from './TableViewToggle';
9
9
  import { ViewOptionsMenu } from './ViewOptionsMenu';
10
10
  /**
@@ -12,7 +12,7 @@ import { ViewOptionsMenu } from './ViewOptionsMenu';
12
12
  * left/centre, actions far right, never a second row.
13
13
  *
14
14
  * What sits on it, left to right: the search box with its use-time scope control
15
- * ({@link SearchBox}), the filter builder ({@link FilterBuilder}), the sort stack
15
+ * ({@link SearchBox}), the filter builder ({@link TableFilterBuilder}), the sort stack
16
16
  * ({@link SortStack}), anything the caller adds, then — right-aligned — the
17
17
  * rows ⇄ cards toggle, the column menu, and import/export/add.
18
18
  *
@@ -36,6 +36,6 @@ export function TableToolbar({ table, enableSearch = true, searchPlaceholder, en
36
36
  // covers a table instance built by hand, outside `DataTable`.
37
37
  const searchText = controls?.searchText ??
38
38
  (typeof table.getState().globalFilter === 'string' ? table.getState().globalFilter : '');
39
- return (_jsxs(Split, { className: 'gap-2 border-b border-border px-2 py-2', children: [_jsxs("div", { className: 'flex min-w-0 flex-1 flex-wrap items-center gap-2', children: [enableSearch ? (_jsx(SearchBox, { value: searchText, onChange: (value) => controls ? controls.setSearchText(value) : table.setGlobalFilter(value), placeholder: searchPlaceholder, columns: controls?.searchColumns ?? [], scope: controls?.searchScope ?? null, onScopeChange: (scope) => controls?.setSearchScope(scope) })) : null, enableFilterBuilder && controls ? (_jsx(FilterBuilder, { columns: controls.filterColumns, value: controls.filterQuery, onChange: controls.setFilterQuery })) : null, enableSortStack && controls ? (_jsx(SortStack, { sorting: controls.sorting, labelOf: controls.labelOf, onToggleDirection: controls.toggleSortDirection, onRemove: controls.removeSortKey, onClear: controls.clearSorting })) : null, extraActions] }), _jsxs(Cluster, { gap: 2, children: [controls?.viewMode && controls.setViewMode ? (_jsx(TableViewToggle, { value: controls.viewMode, onChange: controls.setViewMode })) : null, enableColumnVisibility ? _jsx(ViewOptionsMenu, { table: table }) : null, onImport ? (_jsx(Button, { size: 'sm', variant: 'ghost', onClick: onImport, leftIcon: _jsx(Upload, {}), tooltip: 'Import', children: "Import" })) : null, onExport ? (_jsx(Button, { size: 'sm', variant: 'ghost', onClick: onExport, leftIcon: _jsx(Download, {}), tooltip: 'Export', children: "Export" })) : null, onAdd ? (_jsx(Button, { size: 'sm', variant: 'primary', onClick: onAdd, leftIcon: _jsx(Plus, {}), tooltip: addLabel, children: addLabel })) : null] })] }));
39
+ return (_jsxs(Split, { className: 'gap-2 border-b border-border px-2 py-2', children: [_jsxs("div", { className: 'flex min-w-0 flex-1 flex-wrap items-center gap-2', children: [enableSearch ? (_jsx(SearchBox, { value: searchText, onChange: (value) => controls ? controls.setSearchText(value) : table.setGlobalFilter(value), placeholder: searchPlaceholder, columns: controls?.searchColumns ?? [], scope: controls?.searchScope ?? null, onScopeChange: (scope) => controls?.setSearchScope(scope) })) : null, enableFilterBuilder && controls ? (_jsx(TableFilterBuilder, { columns: controls.filterColumns, value: controls.filterQuery, onChange: controls.setFilterQuery })) : null, enableSortStack && controls ? (_jsx(SortStack, { sorting: controls.sorting, labelOf: controls.labelOf, onToggleDirection: controls.toggleSortDirection, onRemove: controls.removeSortKey, onClear: controls.clearSorting })) : null, extraActions] }), _jsxs(Cluster, { gap: 2, children: [controls?.viewMode && controls.setViewMode ? (_jsx(TableViewToggle, { value: controls.viewMode, onChange: controls.setViewMode })) : null, enableColumnVisibility ? _jsx(ViewOptionsMenu, { table: table }) : null, onImport ? (_jsx(Button, { size: 'sm', variant: 'ghost', onClick: onImport, leftIcon: _jsx(Upload, {}), tooltip: 'Import', children: "Import" })) : null, onExport ? (_jsx(Button, { size: 'sm', variant: 'ghost', onClick: onExport, leftIcon: _jsx(Download, {}), tooltip: 'Export', children: "Export" })) : null, onAdd ? (_jsx(Button, { size: 'sm', variant: 'primary', onClick: onAdd, leftIcon: _jsx(Plus, {}), tooltip: addLabel, children: addLabel })) : null] })] }));
40
40
  }
41
41
  //# sourceMappingURL=Toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/Toolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../../src/react/components/DataTable/Toolbar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkCell.d.ts","sourceRoot":"","sources":["../../../../../src/react/components/DataTable/cells/LinkCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAS3E"}
1
+ {"version":3,"file":"LinkCell.d.ts","sourceRoot":"","sources":["../../../../../src/react/components/DataTable/cells/LinkCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAS3E"}