@arbidocs/blocks 0.4.153 → 0.4.155

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 (248) hide show
  1. package/dist/{ConnectedNativeDocxComparison-OFPIXNJB.js → ConnectedNativeDocxComparison-OLWRQSRS.js} +11 -11
  2. package/dist/{ConnectedNativeDocxComparison-OFPIXNJB.js.map → ConnectedNativeDocxComparison-OLWRQSRS.js.map} +1 -1
  3. package/dist/{ConnectedNativeDocxComparison-Y5BNLNH6.cjs → ConnectedNativeDocxComparison-YORMOPPN.cjs} +12 -12
  4. package/dist/{ConnectedNativeDocxComparison-Y5BNLNH6.cjs.map → ConnectedNativeDocxComparison-YORMOPPN.cjs.map} +1 -1
  5. package/dist/{ConnectedNativeDocxEditor-LRYU5HPA.js → ConnectedNativeDocxEditor-34EBIIFS.js} +10 -10
  6. package/dist/{ConnectedNativeDocxEditor-LRYU5HPA.js.map → ConnectedNativeDocxEditor-34EBIIFS.js.map} +1 -1
  7. package/dist/{ConnectedNativeDocxEditor-HTEW5JAH.cjs → ConnectedNativeDocxEditor-EHTWGGX3.cjs} +12 -12
  8. package/dist/{ConnectedNativeDocxEditor-HTEW5JAH.cjs.map → ConnectedNativeDocxEditor-EHTWGGX3.cjs.map} +1 -1
  9. package/dist/{ConnectedStreamedWordArtifact-QW74LKHN.cjs → ConnectedStreamedWordArtifact-5DK6QGYN.cjs} +12 -12
  10. package/dist/ConnectedStreamedWordArtifact-5DK6QGYN.cjs.map +1 -0
  11. package/dist/{ConnectedStreamedWordArtifact-QAUVUCSX.js → ConnectedStreamedWordArtifact-GLIDLSAS.js} +11 -11
  12. package/dist/{ConnectedStreamedWordArtifact-QAUVUCSX.js.map → ConnectedStreamedWordArtifact-GLIDLSAS.js.map} +1 -1
  13. package/dist/WorkspaceTableView-5OWX53R5.js +376 -0
  14. package/dist/WorkspaceTableView-5OWX53R5.js.map +1 -0
  15. package/dist/WorkspaceTableView-ZFMAYHUD.cjs +378 -0
  16. package/dist/WorkspaceTableView-ZFMAYHUD.cjs.map +1 -0
  17. package/dist/agents/index.cjs +282 -282
  18. package/dist/agents/index.js +7 -7
  19. package/dist/{chunk-RQ2Y7USX.cjs → chunk-2VHYOTWW.cjs} +3 -3
  20. package/dist/chunk-2VHYOTWW.cjs.map +1 -0
  21. package/dist/{chunk-DTROMMDX.cjs → chunk-3VULDTNL.cjs} +4 -4
  22. package/dist/{chunk-DTROMMDX.cjs.map → chunk-3VULDTNL.cjs.map} +1 -1
  23. package/dist/{chunk-UTTTJSQU.cjs → chunk-4RPBUMHB.cjs} +4 -4
  24. package/dist/{chunk-UTTTJSQU.cjs.map → chunk-4RPBUMHB.cjs.map} +1 -1
  25. package/dist/chunk-53RCZPMR.cjs +496 -0
  26. package/dist/chunk-53RCZPMR.cjs.map +1 -0
  27. package/dist/chunk-5TDGVOR5.js +142 -0
  28. package/dist/chunk-5TDGVOR5.js.map +1 -0
  29. package/dist/chunk-6HMCF4AJ.js +1720 -0
  30. package/dist/chunk-6HMCF4AJ.js.map +1 -0
  31. package/dist/{chunk-CU2O32Z4.cjs → chunk-6QAAIDQQ.cjs} +62 -99
  32. package/dist/chunk-6QAAIDQQ.cjs.map +1 -0
  33. package/dist/chunk-7HHYMDPE.js +431 -0
  34. package/dist/chunk-7HHYMDPE.js.map +1 -0
  35. package/dist/{chunk-SMN32BQ3.cjs → chunk-7NL6WJER.cjs} +3 -160
  36. package/dist/chunk-7NL6WJER.cjs.map +1 -0
  37. package/dist/{chunk-IXWJGOM2.js → chunk-BQ77KSXU.js} +3 -3
  38. package/dist/{chunk-IXWJGOM2.js.map → chunk-BQ77KSXU.js.map} +1 -1
  39. package/dist/chunk-BTF4AZMG.js +148 -0
  40. package/dist/chunk-BTF4AZMG.js.map +1 -0
  41. package/dist/{chunk-HALD6ZB5.cjs → chunk-C3SMTA3C.cjs} +4 -4
  42. package/dist/{chunk-HALD6ZB5.cjs.map → chunk-C3SMTA3C.cjs.map} +1 -1
  43. package/dist/{chunk-GAYMJWTC.cjs → chunk-CB4TIDEX.cjs} +6 -6
  44. package/dist/{chunk-GAYMJWTC.cjs.map → chunk-CB4TIDEX.cjs.map} +1 -1
  45. package/dist/{chunk-KPZZ5FHE.cjs → chunk-CNHUJRQ4.cjs} +10 -6
  46. package/dist/chunk-CNHUJRQ4.cjs.map +1 -0
  47. package/dist/{chunk-Q4BY2CQQ.cjs → chunk-CQCNU5KT.cjs} +28 -28
  48. package/dist/{chunk-Q4BY2CQQ.cjs.map → chunk-CQCNU5KT.cjs.map} +1 -1
  49. package/dist/{chunk-GRGS5M6O.cjs → chunk-CROGFB46.cjs} +160 -3
  50. package/dist/chunk-CROGFB46.cjs.map +1 -0
  51. package/dist/{chunk-QN47Q4N7.js → chunk-CU6LDQ57.js} +3 -3
  52. package/dist/{chunk-QN47Q4N7.js.map → chunk-CU6LDQ57.js.map} +1 -1
  53. package/dist/{chunk-EF4ZLKRM.js → chunk-DEPF5LQI.js} +3 -3
  54. package/dist/{chunk-EF4ZLKRM.js.map → chunk-DEPF5LQI.js.map} +1 -1
  55. package/dist/{chunk-JAANWQGB.js → chunk-ETZ5A3GU.js} +3 -3
  56. package/dist/{chunk-JAANWQGB.js.map → chunk-ETZ5A3GU.js.map} +1 -1
  57. package/dist/{chunk-TBEVGWY3.js → chunk-F57LNUSZ.js} +10 -6
  58. package/dist/chunk-F57LNUSZ.js.map +1 -0
  59. package/dist/{chunk-GFNELPDP.cjs → chunk-FM3IRQJW.cjs} +10 -5
  60. package/dist/chunk-FM3IRQJW.cjs.map +1 -0
  61. package/dist/chunk-FPHTSNOE.js +465 -0
  62. package/dist/chunk-FPHTSNOE.js.map +1 -0
  63. package/dist/{chunk-OVR3XMYL.js → chunk-FYZXDZM7.js} +3 -3
  64. package/dist/{chunk-OVR3XMYL.js.map → chunk-FYZXDZM7.js.map} +1 -1
  65. package/dist/{chunk-2FLWPM3B.cjs → chunk-GC2FSPSQ.cjs} +7 -7
  66. package/dist/{chunk-2FLWPM3B.cjs.map → chunk-GC2FSPSQ.cjs.map} +1 -1
  67. package/dist/{chunk-DB2OXRQC.js → chunk-GO3BN76C.js} +7 -7
  68. package/dist/{chunk-DB2OXRQC.js.map → chunk-GO3BN76C.js.map} +1 -1
  69. package/dist/{chunk-XZIYRKLW.cjs → chunk-H32DV7XS.cjs} +5 -139
  70. package/dist/chunk-H32DV7XS.cjs.map +1 -0
  71. package/dist/{chunk-4236BRZK.js → chunk-HP2C4MD3.js} +29 -3
  72. package/dist/chunk-HP2C4MD3.js.map +1 -0
  73. package/dist/{chunk-ZP6Q3KXU.cjs → chunk-HUATKA3M.cjs} +4 -4
  74. package/dist/{chunk-ZP6Q3KXU.cjs.map → chunk-HUATKA3M.cjs.map} +1 -1
  75. package/dist/chunk-ISHFVKVU.js +304 -0
  76. package/dist/chunk-ISHFVKVU.js.map +1 -0
  77. package/dist/chunk-JUUOJP7I.cjs +164 -0
  78. package/dist/chunk-JUUOJP7I.cjs.map +1 -0
  79. package/dist/{chunk-4KMLM3GY.cjs → chunk-KBO75NLM.cjs} +7 -7
  80. package/dist/{chunk-4KMLM3GY.cjs.map → chunk-KBO75NLM.cjs.map} +1 -1
  81. package/dist/{chunk-Z4NQ3TED.js → chunk-KCSIX7CY.js} +3 -3
  82. package/dist/{chunk-Z4NQ3TED.js.map → chunk-KCSIX7CY.js.map} +1 -1
  83. package/dist/{chunk-DN2KI4BU.js → chunk-KDLX5AA7.js} +3 -3
  84. package/dist/{chunk-DN2KI4BU.js.map → chunk-KDLX5AA7.js.map} +1 -1
  85. package/dist/{chunk-WFA2GVZJ.js → chunk-MF5KQ4PS.js} +3 -3
  86. package/dist/{chunk-WFA2GVZJ.js.map → chunk-MF5KQ4PS.js.map} +1 -1
  87. package/dist/{chunk-YXNNNP57.js → chunk-MNG7N6M2.js} +4 -4
  88. package/dist/{chunk-YXNNNP57.js.map → chunk-MNG7N6M2.js.map} +1 -1
  89. package/dist/chunk-MSFQDELO.cjs +482 -0
  90. package/dist/chunk-MSFQDELO.cjs.map +1 -0
  91. package/dist/{chunk-T74Q3MCZ.cjs → chunk-MUDEL7UL.cjs} +25 -884
  92. package/dist/chunk-MUDEL7UL.cjs.map +1 -0
  93. package/dist/{chunk-KSHKTOY2.js → chunk-NUSBINUM.js} +3 -3
  94. package/dist/chunk-NUSBINUM.js.map +1 -0
  95. package/dist/{chunk-EYKISBDO.cjs → chunk-OALEDG67.cjs} +5 -5
  96. package/dist/{chunk-EYKISBDO.cjs.map → chunk-OALEDG67.cjs.map} +1 -1
  97. package/dist/{chunk-COCGRJLA.cjs → chunk-OFV3PRF2.cjs} +7 -7
  98. package/dist/{chunk-COCGRJLA.cjs.map → chunk-OFV3PRF2.cjs.map} +1 -1
  99. package/dist/chunk-OOU4QLRK.cjs +319 -0
  100. package/dist/chunk-OOU4QLRK.cjs.map +1 -0
  101. package/dist/chunk-OU3RGQFX.cjs +136 -0
  102. package/dist/chunk-OU3RGQFX.cjs.map +1 -0
  103. package/dist/{chunk-3PCBYOIZ.js → chunk-P6RIBIVN.js} +38 -7
  104. package/dist/chunk-P6RIBIVN.js.map +1 -0
  105. package/dist/{chunk-LXTOOUEN.cjs → chunk-Q7CQYYZW.cjs} +5 -5
  106. package/dist/{chunk-LXTOOUEN.cjs.map → chunk-Q7CQYYZW.cjs.map} +1 -1
  107. package/dist/{chunk-CROTH2BS.js → chunk-QKR5LWDO.js} +9 -40
  108. package/dist/{chunk-CROTH2BS.js.map → chunk-QKR5LWDO.js.map} +1 -1
  109. package/dist/chunk-REH7PX3N.cjs +145 -0
  110. package/dist/chunk-REH7PX3N.cjs.map +1 -0
  111. package/dist/chunk-RQKWYKZY.js +127 -0
  112. package/dist/chunk-RQKWYKZY.js.map +1 -0
  113. package/dist/{chunk-U6JQ4KMX.cjs → chunk-SN2GZ4ZM.cjs} +29 -2
  114. package/dist/chunk-SN2GZ4ZM.cjs.map +1 -0
  115. package/dist/{chunk-R6VCPDPF.js → chunk-SZSJGZSO.js} +156 -6
  116. package/dist/chunk-SZSJGZSO.js.map +1 -0
  117. package/dist/{chunk-US3S4DCB.js → chunk-TF7HN5EU.js} +10 -5
  118. package/dist/chunk-TF7HN5EU.js.map +1 -0
  119. package/dist/{chunk-YKQ2DPIP.js → chunk-VF5EUAIV.js} +3 -3
  120. package/dist/{chunk-YKQ2DPIP.js.map → chunk-VF5EUAIV.js.map} +1 -1
  121. package/dist/{chunk-KMZWKSKO.cjs → chunk-VZPFYZZU.cjs} +4 -4
  122. package/dist/{chunk-KMZWKSKO.cjs.map → chunk-VZPFYZZU.cjs.map} +1 -1
  123. package/dist/{chunk-HUJF2XM2.js → chunk-W7CWGURO.js} +28 -873
  124. package/dist/chunk-W7CWGURO.js.map +1 -0
  125. package/dist/{chunk-ZLEYLCE4.js → chunk-WK6FVIF7.js} +6 -156
  126. package/dist/chunk-WK6FVIF7.js.map +1 -0
  127. package/dist/chunk-WV4TD2HZ.cjs +1785 -0
  128. package/dist/chunk-WV4TD2HZ.cjs.map +1 -0
  129. package/dist/{chunk-COA3S3CZ.js → chunk-XI37A7HH.js} +4 -4
  130. package/dist/{chunk-COA3S3CZ.js.map → chunk-XI37A7HH.js.map} +1 -1
  131. package/dist/{chunk-LGBAZD37.js → chunk-XRL4R2TT.js} +7 -139
  132. package/dist/chunk-XRL4R2TT.js.map +1 -0
  133. package/dist/{chunk-4JNKXOFZ.cjs → chunk-YBJ4QGNH.cjs} +11 -11
  134. package/dist/{chunk-4JNKXOFZ.cjs.map → chunk-YBJ4QGNH.cjs.map} +1 -1
  135. package/dist/{chunk-GFOEWPAP.cjs → chunk-YF3QUHKN.cjs} +49 -12
  136. package/dist/chunk-YF3QUHKN.cjs.map +1 -0
  137. package/dist/{chunk-H4D7WKDY.js → chunk-YNMO3DSR.js} +3 -3
  138. package/dist/{chunk-H4D7WKDY.js.map → chunk-YNMO3DSR.js.map} +1 -1
  139. package/dist/citations/index.cjs +10 -10
  140. package/dist/citations/index.js +2 -2
  141. package/dist/collaboration/index.cjs +77 -77
  142. package/dist/collaboration/index.js +2 -2
  143. package/dist/connect/docx.cjs +14 -14
  144. package/dist/connect/docx.js +10 -10
  145. package/dist/connect/index.cjs +2820 -1043
  146. package/dist/connect/index.cjs.map +1 -1
  147. package/dist/connect/index.d.ts +4 -0
  148. package/dist/connect/index.js +2216 -504
  149. package/dist/connect/index.js.map +1 -1
  150. package/dist/connect/viewer.cjs +68 -72
  151. package/dist/connect/viewer.cjs.map +1 -1
  152. package/dist/connect/viewer.js +11 -15
  153. package/dist/connect/viewer.js.map +1 -1
  154. package/dist/connection/ConnectionProvider.d.ts +7 -0
  155. package/dist/connection/files/DocumentSyncGlyph.d.ts +28 -0
  156. package/dist/connection/files/explorer/ConnectedFilesExplorer.d.ts +56 -0
  157. package/dist/connection/files/explorer/FileTiles.d.ts +87 -0
  158. package/dist/connection/files/index.d.ts +5 -0
  159. package/dist/connection/files/store.d.ts +27 -0
  160. package/dist/connection/files/support.d.ts +38 -0
  161. package/dist/connection/projects/ConnectedProjectsPanel.d.ts +34 -0
  162. package/dist/connection/projects/index.d.ts +1 -0
  163. package/dist/connection/workspace-dashboard/ConnectedWorkspaceDashboard.d.ts +37 -0
  164. package/dist/connection/workspace-dashboard/dashboard-rows.d.ts +42 -0
  165. package/dist/connection/workspace-dashboard/index.d.ts +1 -0
  166. package/dist/connection/workspace-list/ConnectedWorkspaceList.d.ts +37 -0
  167. package/dist/connection/workspace-list/WorkspaceCardsView.d.ts +15 -0
  168. package/dist/connection/workspace-list/WorkspaceFilterMenu.d.ts +4 -0
  169. package/dist/connection/workspace-list/WorkspaceTableView.d.ts +13 -0
  170. package/dist/connection/workspace-list/index.d.ts +5 -0
  171. package/dist/connection/workspace-list/projectBilling.d.ts +21 -0
  172. package/dist/connection/workspace-list/useConnectedWorkspaceList.d.ts +251 -0
  173. package/dist/connection/workspace-list/workspaceTable.d.ts +58 -0
  174. package/dist/connection/workspace-settings/ConnectedWorkspaceMembers.d.ts +26 -0
  175. package/dist/connection/workspace-settings/ConnectedWorkspaceSettings.d.ts +7 -9
  176. package/dist/connection/workspace-settings/index.d.ts +2 -1
  177. package/dist/connection/workspace-settings/useConnectedWorkspaceSettings.d.ts +0 -1
  178. package/dist/facts/index.cjs +3 -3
  179. package/dist/facts/index.js +2 -2
  180. package/dist/files/DocStatusIcon.d.ts +5 -4
  181. package/dist/files/FailedStageIcon.d.ts +26 -0
  182. package/dist/files/folders/FolderProviderIcon.d.ts +29 -0
  183. package/dist/files/folders/folderPaths.d.ts +86 -0
  184. package/dist/files/folders/index.d.ts +2 -0
  185. package/dist/files/index.cjs +328 -240
  186. package/dist/files/index.d.ts +5 -0
  187. package/dist/files/index.js +4 -4
  188. package/dist/files/permissions.d.ts +28 -0
  189. package/dist/files/recently-deleted.d.ts +7 -0
  190. package/dist/files/visibility.d.ts +31 -0
  191. package/dist/home/index.cjs +119 -459
  192. package/dist/home/index.cjs.map +1 -1
  193. package/dist/home/index.js +13 -419
  194. package/dist/home/index.js.map +1 -1
  195. package/dist/index.cjs +480 -480
  196. package/dist/index.js +16 -16
  197. package/dist/provider/BlocksProvider.d.ts +9 -1
  198. package/dist/retrieval/index.cjs +4 -4
  199. package/dist/retrieval/index.js +2 -2
  200. package/dist/settings/index.cjs +169 -165
  201. package/dist/settings/index.d.ts +1 -0
  202. package/dist/settings/index.js +2 -2
  203. package/dist/settings/tri-state-filters.d.ts +13 -0
  204. package/dist/shell/index.cjs +44 -44
  205. package/dist/shell/index.js +3 -3
  206. package/dist/site/index.cjs +5 -5
  207. package/dist/site/index.js +1 -1
  208. package/dist/studio/index.cjs +14 -14
  209. package/dist/studio/index.js +6 -6
  210. package/dist/workflow-canvas/index.cjs +27 -27
  211. package/dist/workflow-canvas/index.js +9 -9
  212. package/dist/workspaces/index.cjs +110 -369
  213. package/dist/workspaces/index.cjs.map +1 -1
  214. package/dist/workspaces/index.d.ts +2 -0
  215. package/dist/workspaces/index.js +12 -350
  216. package/dist/workspaces/index.js.map +1 -1
  217. package/dist/workspaces/workspace-groups.d.ts +90 -0
  218. package/dist/workspaces/workspace-roles.d.ts +11 -0
  219. package/node_modules/@arbidocs/coedit/package.json +1 -1
  220. package/package.json +6 -5
  221. package/dist/ConnectedStreamedWordArtifact-QW74LKHN.cjs.map +0 -1
  222. package/dist/chunk-3PCBYOIZ.js.map +0 -1
  223. package/dist/chunk-4236BRZK.js.map +0 -1
  224. package/dist/chunk-CU2O32Z4.cjs.map +0 -1
  225. package/dist/chunk-EV7W64B6.js +0 -134
  226. package/dist/chunk-EV7W64B6.js.map +0 -1
  227. package/dist/chunk-GFNELPDP.cjs.map +0 -1
  228. package/dist/chunk-GFOEWPAP.cjs.map +0 -1
  229. package/dist/chunk-GRGS5M6O.cjs.map +0 -1
  230. package/dist/chunk-HUJF2XM2.js.map +0 -1
  231. package/dist/chunk-JGOST4IL.js +0 -648
  232. package/dist/chunk-JGOST4IL.js.map +0 -1
  233. package/dist/chunk-KPZZ5FHE.cjs.map +0 -1
  234. package/dist/chunk-KSHKTOY2.js.map +0 -1
  235. package/dist/chunk-LGBAZD37.js.map +0 -1
  236. package/dist/chunk-R6VCPDPF.js.map +0 -1
  237. package/dist/chunk-RQ2Y7USX.cjs.map +0 -1
  238. package/dist/chunk-RXK3XP62.cjs +0 -144
  239. package/dist/chunk-RXK3XP62.cjs.map +0 -1
  240. package/dist/chunk-SMN32BQ3.cjs.map +0 -1
  241. package/dist/chunk-T74Q3MCZ.cjs.map +0 -1
  242. package/dist/chunk-TBEVGWY3.js.map +0 -1
  243. package/dist/chunk-U6JQ4KMX.cjs.map +0 -1
  244. package/dist/chunk-US3S4DCB.js.map +0 -1
  245. package/dist/chunk-XZIYRKLW.cjs.map +0 -1
  246. package/dist/chunk-YAEXSCUW.cjs +0 -677
  247. package/dist/chunk-YAEXSCUW.cjs.map +0 -1
  248. package/dist/chunk-ZLEYLCE4.js.map +0 -1
@@ -0,0 +1,142 @@
1
+ "use client";
2
+ import { ChevronRight } from 'lucide-react';
3
+ import { cn } from '@arbidocs/react/ui';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ // src/home/CollapsibleSection.tsx
7
+ var DEFAULT_COLLAPSIBLE_SECTION_LABELS = {
8
+ collapseSection: "Collapse section",
9
+ expandSection: "Expand section"
10
+ };
11
+ function CollapsibleSection({
12
+ title,
13
+ icon,
14
+ isExpanded,
15
+ onToggle,
16
+ children,
17
+ count,
18
+ hasActiveFilters = false,
19
+ expandWhenEmpty = false,
20
+ childrenClassName,
21
+ headerClassName,
22
+ className,
23
+ rightContent,
24
+ collapsible = true,
25
+ onHeaderClick,
26
+ labels
27
+ }) {
28
+ const l = { ...DEFAULT_COLLAPSIBLE_SECTION_LABELS, ...labels };
29
+ const hasCount = count !== void 0;
30
+ const shouldBeExpanded = !collapsible ? true : hasCount ? count > 0 ? isExpanded : expandWhenEmpty && isExpanded : isExpanded;
31
+ const hasContent = hasCount ? count > 0 || expandWhenEmpty : true;
32
+ const chevron = /* @__PURE__ */ jsx(
33
+ ChevronRight,
34
+ {
35
+ className: cn("size-4 shrink-0 transition-transform", shouldBeExpanded && "rotate-90")
36
+ }
37
+ );
38
+ const titleBlock = /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
39
+ icon,
40
+ typeof title === "string" ? title && /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: title }) : title,
41
+ hasCount && /* @__PURE__ */ jsx(
42
+ "span",
43
+ {
44
+ className: cn(
45
+ "ml-1 text-xs tabular-nums",
46
+ hasActiveFilters ? "rounded-full bg-primary px-1.5 font-medium text-primary-foreground" : "font-normal text-muted-foreground"
47
+ ),
48
+ children: count
49
+ }
50
+ )
51
+ ] });
52
+ return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), "data-slot": "collapsible-section", children: [
53
+ onHeaderClick ? /* @__PURE__ */ jsxs(
54
+ "div",
55
+ {
56
+ role: "button",
57
+ tabIndex: 0,
58
+ onClick: onHeaderClick,
59
+ onKeyDown: (e) => {
60
+ if (e.key === "Enter" || e.key === " ") {
61
+ e.preventDefault();
62
+ onHeaderClick();
63
+ }
64
+ },
65
+ className: cn(
66
+ "mb-4 flex cursor-pointer items-center justify-between gap-2 font-semibold pointer-coarse:min-h-11 transition-colors hover:bg-muted/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
67
+ headerClassName
68
+ ),
69
+ "data-slot": "collapsible-section-header",
70
+ children: [
71
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2 text-left", children: [
72
+ /* @__PURE__ */ jsx(
73
+ "button",
74
+ {
75
+ type: "button",
76
+ "aria-expanded": shouldBeExpanded,
77
+ "aria-label": shouldBeExpanded ? l.collapseSection : l.expandSection,
78
+ disabled: !hasContent,
79
+ onClick: (e) => {
80
+ e.stopPropagation();
81
+ if (hasContent) onToggle();
82
+ },
83
+ className: "-ml-0.5 shrink-0 rounded-md p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40 pointer-coarse:p-3.5",
84
+ children: chevron
85
+ }
86
+ ),
87
+ titleBlock
88
+ ] }),
89
+ rightContent && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center", children: rightContent })
90
+ ]
91
+ }
92
+ ) : !collapsible ? /* @__PURE__ */ jsxs(
93
+ "div",
94
+ {
95
+ className: cn("mb-4 flex items-center justify-between", headerClassName),
96
+ "data-slot": "collapsible-section-header",
97
+ children: [
98
+ /* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-2 text-left font-medium", children: titleBlock }),
99
+ rightContent && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center", children: rightContent })
100
+ ]
101
+ }
102
+ ) : /* @__PURE__ */ jsxs(
103
+ "div",
104
+ {
105
+ className: cn("mb-4 flex items-center justify-between", headerClassName),
106
+ "data-slot": "collapsible-section-header",
107
+ children: [
108
+ /* @__PURE__ */ jsxs(
109
+ "div",
110
+ {
111
+ role: "button",
112
+ tabIndex: hasContent ? 0 : -1,
113
+ "aria-expanded": shouldBeExpanded,
114
+ "aria-disabled": !hasContent,
115
+ onClick: hasContent ? onToggle : void 0,
116
+ onKeyDown: hasContent ? (e) => {
117
+ if (e.key === "Enter" || e.key === " ") {
118
+ e.preventDefault();
119
+ onToggle();
120
+ }
121
+ } : void 0,
122
+ className: cn(
123
+ "touch-hit flex min-w-0 items-center gap-2 rounded-md text-left font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
124
+ hasContent ? "cursor-pointer hover:text-muted-foreground" : "cursor-default opacity-60"
125
+ ),
126
+ children: [
127
+ chevron,
128
+ titleBlock
129
+ ]
130
+ }
131
+ ),
132
+ rightContent && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center", children: rightContent })
133
+ ]
134
+ }
135
+ ),
136
+ shouldBeExpanded && /* @__PURE__ */ jsx("div", { className: childrenClassName ?? "mb-8 flex flex-wrap justify-start gap-6", children })
137
+ ] });
138
+ }
139
+
140
+ export { CollapsibleSection, DEFAULT_COLLAPSIBLE_SECTION_LABELS };
141
+ //# sourceMappingURL=chunk-5TDGVOR5.js.map
142
+ //# sourceMappingURL=chunk-5TDGVOR5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/home/CollapsibleSection.tsx"],"names":[],"mappings":"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","file":"chunk-5TDGVOR5.js","sourcesContent":["import type { ReactNode } from 'react'\nimport { ChevronRight } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\n\n/** Fixed strings of the section header. */\nexport interface CollapsibleSectionLabels {\n /** The chevron button's name (only with `onHeaderClick`). */\n collapseSection: string\n expandSection: string\n}\n\nexport const DEFAULT_COLLAPSIBLE_SECTION_LABELS: CollapsibleSectionLabels = {\n collapseSection: 'Collapse section',\n expandSection: 'Expand section',\n}\n\nexport interface CollapsibleSectionProps {\n /** The section's heading. A node, so callers can add badges or tooltips. */\n title: ReactNode\n /** Leading glyph before the title. */\n icon?: ReactNode\n isExpanded: boolean\n onToggle: () => void\n children: ReactNode\n /** Count badge beside the title. When 0 the section cannot expand (unless `expandWhenEmpty`). */\n count?: number\n /** The count badge is filled (a filter is active). */\n hasActiveFilters?: boolean\n expandWhenEmpty?: boolean\n /** Class for the body wrapper. */\n childrenClassName?: string\n headerClassName?: string\n className?: string\n /** Trailing header content. */\n rightContent?: ReactNode\n /** When false the section is always open: no chevron, a plain header. */\n collapsible?: boolean\n /**\n * When set, the whole header is one click target firing this (e.g. open a\n * detail panel) and the chevron becomes its own separate toggle.\n */\n onHeaderClick?: () => void\n labels?: Partial<CollapsibleSectionLabels>\n}\n\n/**\n * A section with a chevron toggle, title, optional count and body. The header\n * is a `role=\"button\"` div (not a native button) because `title`/`rightContent`\n * may hold interactive nodes such as tooltip triggers; a button inside a button\n * is invalid HTML.\n */\nexport function CollapsibleSection({\n title,\n icon,\n isExpanded,\n onToggle,\n children,\n count,\n hasActiveFilters = false,\n expandWhenEmpty = false,\n childrenClassName,\n headerClassName,\n className,\n rightContent,\n collapsible = true,\n onHeaderClick,\n labels,\n}: CollapsibleSectionProps) {\n const l = { ...DEFAULT_COLLAPSIBLE_SECTION_LABELS, ...labels }\n const hasCount = count !== undefined\n const shouldBeExpanded = !collapsible\n ? true\n : hasCount\n ? count > 0\n ? isExpanded\n : expandWhenEmpty && isExpanded\n : isExpanded\n const hasContent = hasCount ? count > 0 || expandWhenEmpty : true\n\n const chevron = (\n <ChevronRight\n className={cn('size-4 shrink-0 transition-transform', shouldBeExpanded && 'rotate-90')}\n />\n )\n const titleBlock = (\n <div className=\"flex min-w-0 items-center gap-2\">\n {icon}\n {typeof title === 'string'\n ? title && <span className=\"whitespace-nowrap\">{title}</span>\n : title}\n {hasCount && (\n <span\n className={cn(\n 'ml-1 text-xs tabular-nums',\n hasActiveFilters\n ? 'rounded-full bg-primary px-1.5 font-medium text-primary-foreground'\n : 'font-normal text-muted-foreground'\n )}\n >\n {count}\n </span>\n )}\n </div>\n )\n\n return (\n <div className={cn('w-full', className)} data-slot=\"collapsible-section\">\n {onHeaderClick ? (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={onHeaderClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onHeaderClick()\n }\n }}\n className={cn(\n 'mb-4 flex cursor-pointer items-center justify-between gap-2 font-semibold pointer-coarse:min-h-11 transition-colors hover:bg-muted/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n headerClassName\n )}\n data-slot=\"collapsible-section-header\"\n >\n <div className=\"flex min-w-0 items-center gap-2 text-left\">\n <button\n type=\"button\"\n aria-expanded={shouldBeExpanded}\n aria-label={shouldBeExpanded ? l.collapseSection : l.expandSection}\n disabled={!hasContent}\n onClick={(e) => {\n e.stopPropagation()\n if (hasContent) onToggle()\n }}\n className=\"-ml-0.5 shrink-0 rounded-md p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40 pointer-coarse:p-3.5\"\n >\n {chevron}\n </button>\n {titleBlock}\n </div>\n {rightContent && <div className=\"flex shrink-0 items-center\">{rightContent}</div>}\n </div>\n ) : !collapsible ? (\n <div\n className={cn('mb-4 flex items-center justify-between', headerClassName)}\n data-slot=\"collapsible-section-header\"\n >\n <div className=\"flex min-w-0 items-center gap-2 text-left font-medium\">{titleBlock}</div>\n {rightContent && <div className=\"flex shrink-0 items-center\">{rightContent}</div>}\n </div>\n ) : (\n <div\n className={cn('mb-4 flex items-center justify-between', headerClassName)}\n data-slot=\"collapsible-section-header\"\n >\n <div\n role=\"button\"\n tabIndex={hasContent ? 0 : -1}\n aria-expanded={shouldBeExpanded}\n aria-disabled={!hasContent}\n onClick={hasContent ? onToggle : undefined}\n onKeyDown={\n hasContent\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onToggle()\n }\n }\n : undefined\n }\n className={cn(\n 'touch-hit flex min-w-0 items-center gap-2 rounded-md text-left font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n hasContent\n ? 'cursor-pointer hover:text-muted-foreground'\n : 'cursor-default opacity-60'\n )}\n >\n {chevron}\n {titleBlock}\n </div>\n {rightContent && <div className=\"flex shrink-0 items-center\">{rightContent}</div>}\n </div>\n )}\n {shouldBeExpanded && (\n <div className={childrenClassName ?? 'mb-8 flex flex-wrap justify-start gap-6'}>\n {children}\n </div>\n )}\n </div>\n )\n}\n"]}