@osdk/react-components 0.26.0 → 0.27.0-main-db8df2423f72b154e84da1e327691afbc569c5aa

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 (269) hide show
  1. package/AGENTS.md +27 -19
  2. package/CHANGELOG.md +14 -0
  3. package/README.md +1 -0
  4. package/build/browser/cbac-picker/CbacBanner.js +42 -0
  5. package/build/browser/cbac-picker/CbacBanner.js.map +1 -0
  6. package/build/browser/cbac-picker/CbacBannerPopover.js +83 -0
  7. package/build/browser/cbac-picker/CbacBannerPopover.js.map +1 -0
  8. package/build/browser/cbac-picker/CbacPicker.js +69 -0
  9. package/build/browser/cbac-picker/CbacPicker.js.map +1 -0
  10. package/build/browser/cbac-picker/CbacPickerDialog.js +81 -0
  11. package/build/browser/cbac-picker/CbacPickerDialog.js.map +1 -0
  12. package/build/browser/cbac-picker/base/BaseCbacBanner.js +64 -0
  13. package/build/browser/cbac-picker/base/BaseCbacBanner.js.map +1 -0
  14. package/build/browser/cbac-picker/base/BaseCbacBanner.module.css +74 -0
  15. package/build/browser/cbac-picker/base/BaseCbacBanner.module.css.js +9 -0
  16. package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js +168 -0
  17. package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -0
  18. package/build/browser/cbac-picker/base/BaseCbacBannerPopover.module.css +193 -0
  19. package/build/browser/cbac-picker/base/BaseCbacBannerPopover.module.css.js +30 -0
  20. package/build/browser/cbac-picker/base/BaseCbacPicker.js +74 -0
  21. package/build/browser/cbac-picker/base/BaseCbacPicker.js.map +1 -0
  22. package/build/browser/cbac-picker/base/BaseCbacPicker.module.css +47 -0
  23. package/build/browser/cbac-picker/base/BaseCbacPicker.module.css.js +9 -0
  24. package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js +51 -0
  25. package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -0
  26. package/build/browser/cbac-picker/base/CategoryMarkingGroup.js +91 -0
  27. package/build/browser/cbac-picker/base/CategoryMarkingGroup.js.map +1 -0
  28. package/build/browser/cbac-picker/base/CategoryMarkingGroup.module.css +69 -0
  29. package/build/browser/cbac-picker/base/CategoryMarkingGroup.module.css.js +12 -0
  30. package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js +43 -0
  31. package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -0
  32. package/build/browser/cbac-picker/base/CbacPickerDialogFooter.module.css +19 -0
  33. package/build/browser/cbac-picker/base/CbacPickerDialogFooter.module.css.js +6 -0
  34. package/build/browser/cbac-picker/base/InfoBanner.js +32 -0
  35. package/build/browser/cbac-picker/base/InfoBanner.js.map +1 -0
  36. package/build/browser/cbac-picker/base/InfoBanner.module.css +30 -0
  37. package/build/browser/cbac-picker/base/InfoBanner.module.css.js +7 -0
  38. package/build/browser/cbac-picker/base/MarkingButton.js +83 -0
  39. package/build/browser/cbac-picker/base/MarkingButton.js.map +1 -0
  40. package/build/browser/cbac-picker/base/MarkingButton.module.css +104 -0
  41. package/build/browser/cbac-picker/base/MarkingButton.module.css.js +14 -0
  42. package/build/browser/cbac-picker/base/MaxClassificationField.js +42 -0
  43. package/build/browser/cbac-picker/base/MaxClassificationField.js.map +1 -0
  44. package/build/browser/cbac-picker/base/MaxClassificationField.module.css +39 -0
  45. package/build/browser/cbac-picker/base/MaxClassificationField.module.css.js +9 -0
  46. package/build/browser/cbac-picker/base/OverflowButton.js +51 -0
  47. package/build/browser/cbac-picker/base/OverflowButton.js.map +1 -0
  48. package/build/browser/cbac-picker/base/OverflowButton.module.css +57 -0
  49. package/build/browser/cbac-picker/base/OverflowButton.module.css.js +8 -0
  50. package/build/browser/cbac-picker/base/OverflowItem.js +64 -0
  51. package/build/browser/cbac-picker/base/OverflowItem.js.map +1 -0
  52. package/build/browser/cbac-picker/base/OverflowItem.module.css +75 -0
  53. package/build/browser/cbac-picker/base/OverflowItem.module.css.js +11 -0
  54. package/build/browser/cbac-picker/base/ValidationWarning.js +44 -0
  55. package/build/browser/cbac-picker/base/ValidationWarning.js.map +1 -0
  56. package/build/browser/cbac-picker/base/ValidationWarning.module.css +71 -0
  57. package/build/browser/cbac-picker/base/ValidationWarning.module.css.js +12 -0
  58. package/build/browser/cbac-picker/base/selectionStateHelpers.js +35 -0
  59. package/build/browser/cbac-picker/base/selectionStateHelpers.js.map +1 -0
  60. package/build/browser/cbac-picker/types.js +2 -0
  61. package/build/browser/cbac-picker/types.js.map +1 -0
  62. package/build/browser/cbac-picker/useCbacPickerState.js +104 -0
  63. package/build/browser/cbac-picker/useCbacPickerState.js.map +1 -0
  64. package/build/browser/cbac-picker/useCbacSelection.js +52 -0
  65. package/build/browser/cbac-picker/useCbacSelection.js.map +1 -0
  66. package/build/browser/cbac-picker/useConstraintCallout.js +42 -0
  67. package/build/browser/cbac-picker/useConstraintCallout.js.map +1 -0
  68. package/build/browser/cbac-picker/utils/cbacPickerUtils.js +60 -0
  69. package/build/browser/cbac-picker/utils/cbacPickerUtils.js.map +1 -0
  70. package/build/browser/cbac-picker/utils/errorMessages.js +78 -0
  71. package/build/browser/cbac-picker/utils/errorMessages.js.map +1 -0
  72. package/build/browser/cbac-picker/utils/selectionLogic.js +91 -0
  73. package/build/browser/cbac-picker/utils/selectionLogic.js.map +1 -0
  74. package/build/browser/cbac-picker/utils/validationMessages.js +34 -0
  75. package/build/browser/cbac-picker/utils/validationMessages.js.map +1 -0
  76. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +2 -5
  77. package/build/browser/public/experimental/cbac-picker.js +36 -0
  78. package/build/browser/public/experimental/cbac-picker.js.map +1 -0
  79. package/build/browser/public/experimental.js +1 -0
  80. package/build/browser/public/experimental.js.map +1 -1
  81. package/build/browser/styles.css +815 -7
  82. package/build/browser/tokens/component-tokens/filter-list.css +2 -2
  83. package/build/browser/util/UserAgent.js +1 -1
  84. package/build/browser/util/UserAgent.js.map +1 -1
  85. package/build/cjs/chunk-6IIKW56G.cjs +11 -0
  86. package/build/cjs/{chunk-W6C6UWUN.cjs.map → chunk-6IIKW56G.cjs.map} +1 -1
  87. package/build/cjs/{chunk-Y4OUZFGE.cjs → chunk-B7QEY2ER.cjs} +4 -4
  88. package/build/cjs/{chunk-Y4OUZFGE.cjs.map → chunk-B7QEY2ER.cjs.map} +1 -1
  89. package/build/cjs/{chunk-OZ3OGPEA.cjs → chunk-DAWQ5KT5.cjs} +4 -4
  90. package/build/cjs/{chunk-OZ3OGPEA.cjs.map → chunk-DAWQ5KT5.cjs.map} +1 -1
  91. package/build/cjs/chunk-EI62HPZN.cjs +11 -0
  92. package/build/cjs/{chunk-YLYICFCA.cjs.map → chunk-EI62HPZN.cjs.map} +1 -1
  93. package/build/cjs/{chunk-RDILWZTC.cjs → chunk-JQ67SCIO.cjs} +6 -6
  94. package/build/cjs/{chunk-RDILWZTC.cjs.map → chunk-JQ67SCIO.cjs.map} +1 -1
  95. package/build/cjs/{chunk-DY6YZDDT.cjs → chunk-MUITA6EM.cjs} +4 -4
  96. package/build/cjs/{chunk-DY6YZDDT.cjs.map → chunk-MUITA6EM.cjs.map} +1 -1
  97. package/build/cjs/{chunk-3VL5YVFA.cjs → chunk-NPT4RHWG.cjs} +4 -4
  98. package/build/cjs/{chunk-3VL5YVFA.cjs.map → chunk-NPT4RHWG.cjs.map} +1 -1
  99. package/build/cjs/{chunk-3FFHTVG7.cjs → chunk-NSXB2TXV.cjs} +6 -6
  100. package/build/cjs/{chunk-3FFHTVG7.cjs.map → chunk-NSXB2TXV.cjs.map} +1 -1
  101. package/build/cjs/chunk-PJVK32YR.cjs +11 -0
  102. package/build/cjs/{chunk-GKWXRVFO.cjs.map → chunk-PJVK32YR.cjs.map} +1 -1
  103. package/build/cjs/chunk-V6CDK4G4.cjs +11 -0
  104. package/build/cjs/{chunk-JPVZGQXS.cjs.map → chunk-V6CDK4G4.cjs.map} +1 -1
  105. package/build/cjs/chunk-VFRZREZV.cjs +4 -0
  106. package/build/cjs/chunk-VFRZREZV.cjs.map +1 -0
  107. package/build/cjs/chunk-W4T7KB4R.cjs +11 -0
  108. package/build/cjs/{chunk-UJXNFENA.cjs.map → chunk-W4T7KB4R.cjs.map} +1 -1
  109. package/build/cjs/{chunk-IFOPHNX3.cjs → chunk-X7AKMQQW.cjs} +8 -8
  110. package/build/cjs/{chunk-IFOPHNX3.cjs.map → chunk-X7AKMQQW.cjs.map} +1 -1
  111. package/build/cjs/chunk-Y47SHEG7.cjs +1190 -0
  112. package/build/cjs/chunk-Y47SHEG7.cjs.map +1 -0
  113. package/build/cjs/{chunk-UTB55N5Y.cjs → chunk-YBGT4WIE.cjs} +3 -3
  114. package/build/cjs/chunk-YBGT4WIE.cjs.map +1 -0
  115. package/build/cjs/public/experimental/action-form.cjs +6 -6
  116. package/build/cjs/public/experimental/cbac-picker.cjs +60 -0
  117. package/build/cjs/public/experimental/cbac-picker.cjs.map +1 -0
  118. package/build/cjs/public/experimental/cbac-picker.css +731 -0
  119. package/build/cjs/public/experimental/cbac-picker.css.map +1 -0
  120. package/build/cjs/public/experimental/cbac-picker.d.cts +122 -0
  121. package/build/cjs/public/experimental/document-viewer.cjs +6 -6
  122. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  123. package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
  124. package/build/cjs/public/experimental/filter-list.cjs +16 -16
  125. package/build/cjs/public/experimental/filter-list.css +2 -5
  126. package/build/cjs/public/experimental/filter-list.css.map +1 -1
  127. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  128. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  129. package/build/cjs/public/experimental/object-table.cjs +12 -12
  130. package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
  131. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  132. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  133. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  134. package/build/cjs/public/experimental.cjs +151 -105
  135. package/build/cjs/public/experimental.css +612 -76
  136. package/build/cjs/public/experimental.css.map +1 -1
  137. package/build/cjs/public/experimental.d.cts +1 -0
  138. package/build/cjs/public/primitives.cjs +2 -1
  139. package/build/esm/cbac-picker/CbacBanner.js +42 -0
  140. package/build/esm/cbac-picker/CbacBanner.js.map +1 -0
  141. package/build/esm/cbac-picker/CbacBannerPopover.js +83 -0
  142. package/build/esm/cbac-picker/CbacBannerPopover.js.map +1 -0
  143. package/build/esm/cbac-picker/CbacPicker.js +69 -0
  144. package/build/esm/cbac-picker/CbacPicker.js.map +1 -0
  145. package/build/esm/cbac-picker/CbacPickerDialog.js +81 -0
  146. package/build/esm/cbac-picker/CbacPickerDialog.js.map +1 -0
  147. package/build/esm/cbac-picker/base/BaseCbacBanner.js +64 -0
  148. package/build/esm/cbac-picker/base/BaseCbacBanner.js.map +1 -0
  149. package/build/esm/cbac-picker/base/BaseCbacBanner.module.css +74 -0
  150. package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js +168 -0
  151. package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -0
  152. package/build/esm/cbac-picker/base/BaseCbacBannerPopover.module.css +193 -0
  153. package/build/esm/cbac-picker/base/BaseCbacPicker.js +74 -0
  154. package/build/esm/cbac-picker/base/BaseCbacPicker.js.map +1 -0
  155. package/build/esm/cbac-picker/base/BaseCbacPicker.module.css +47 -0
  156. package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js +51 -0
  157. package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -0
  158. package/build/esm/cbac-picker/base/CategoryMarkingGroup.js +91 -0
  159. package/build/esm/cbac-picker/base/CategoryMarkingGroup.js.map +1 -0
  160. package/build/esm/cbac-picker/base/CategoryMarkingGroup.module.css +69 -0
  161. package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js +43 -0
  162. package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -0
  163. package/build/esm/cbac-picker/base/CbacPickerDialogFooter.module.css +19 -0
  164. package/build/esm/cbac-picker/base/InfoBanner.js +32 -0
  165. package/build/esm/cbac-picker/base/InfoBanner.js.map +1 -0
  166. package/build/esm/cbac-picker/base/InfoBanner.module.css +30 -0
  167. package/build/esm/cbac-picker/base/MarkingButton.js +83 -0
  168. package/build/esm/cbac-picker/base/MarkingButton.js.map +1 -0
  169. package/build/esm/cbac-picker/base/MarkingButton.module.css +104 -0
  170. package/build/esm/cbac-picker/base/MaxClassificationField.js +42 -0
  171. package/build/esm/cbac-picker/base/MaxClassificationField.js.map +1 -0
  172. package/build/esm/cbac-picker/base/MaxClassificationField.module.css +39 -0
  173. package/build/esm/cbac-picker/base/OverflowButton.js +51 -0
  174. package/build/esm/cbac-picker/base/OverflowButton.js.map +1 -0
  175. package/build/esm/cbac-picker/base/OverflowButton.module.css +57 -0
  176. package/build/esm/cbac-picker/base/OverflowItem.js +64 -0
  177. package/build/esm/cbac-picker/base/OverflowItem.js.map +1 -0
  178. package/build/esm/cbac-picker/base/OverflowItem.module.css +75 -0
  179. package/build/esm/cbac-picker/base/ValidationWarning.js +44 -0
  180. package/build/esm/cbac-picker/base/ValidationWarning.js.map +1 -0
  181. package/build/esm/cbac-picker/base/ValidationWarning.module.css +71 -0
  182. package/build/esm/cbac-picker/base/selectionStateHelpers.js +35 -0
  183. package/build/esm/cbac-picker/base/selectionStateHelpers.js.map +1 -0
  184. package/build/esm/cbac-picker/types.js +2 -0
  185. package/build/esm/cbac-picker/types.js.map +1 -0
  186. package/build/esm/cbac-picker/useCbacPickerState.js +104 -0
  187. package/build/esm/cbac-picker/useCbacPickerState.js.map +1 -0
  188. package/build/esm/cbac-picker/useCbacSelection.js +52 -0
  189. package/build/esm/cbac-picker/useCbacSelection.js.map +1 -0
  190. package/build/esm/cbac-picker/useConstraintCallout.js +42 -0
  191. package/build/esm/cbac-picker/useConstraintCallout.js.map +1 -0
  192. package/build/esm/cbac-picker/utils/cbacPickerUtils.js +60 -0
  193. package/build/esm/cbac-picker/utils/cbacPickerUtils.js.map +1 -0
  194. package/build/esm/cbac-picker/utils/errorMessages.js +78 -0
  195. package/build/esm/cbac-picker/utils/errorMessages.js.map +1 -0
  196. package/build/esm/cbac-picker/utils/selectionLogic.js +91 -0
  197. package/build/esm/cbac-picker/utils/selectionLogic.js.map +1 -0
  198. package/build/esm/cbac-picker/utils/validationMessages.js +34 -0
  199. package/build/esm/cbac-picker/utils/validationMessages.js.map +1 -0
  200. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +2 -5
  201. package/build/esm/public/experimental/cbac-picker.js +36 -0
  202. package/build/esm/public/experimental/cbac-picker.js.map +1 -0
  203. package/build/esm/public/experimental.js +1 -0
  204. package/build/esm/public/experimental.js.map +1 -1
  205. package/build/esm/tokens/component-tokens/filter-list.css +2 -2
  206. package/build/esm/util/UserAgent.js +1 -1
  207. package/build/esm/util/UserAgent.js.map +1 -1
  208. package/build/types/cbac-picker/CbacBanner.d.ts +8 -0
  209. package/build/types/cbac-picker/CbacBanner.d.ts.map +1 -0
  210. package/build/types/cbac-picker/CbacBannerPopover.d.ts +9 -0
  211. package/build/types/cbac-picker/CbacBannerPopover.d.ts.map +1 -0
  212. package/build/types/cbac-picker/CbacPicker.d.ts +10 -0
  213. package/build/types/cbac-picker/CbacPicker.d.ts.map +1 -0
  214. package/build/types/cbac-picker/CbacPickerDialog.d.ts +10 -0
  215. package/build/types/cbac-picker/CbacPickerDialog.d.ts.map +1 -0
  216. package/build/types/cbac-picker/base/BaseCbacBanner.d.ts +10 -0
  217. package/build/types/cbac-picker/base/BaseCbacBanner.d.ts.map +1 -0
  218. package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts +18 -0
  219. package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts.map +1 -0
  220. package/build/types/cbac-picker/base/BaseCbacPicker.d.ts +18 -0
  221. package/build/types/cbac-picker/base/BaseCbacPicker.d.ts.map +1 -0
  222. package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts +11 -0
  223. package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts.map +1 -0
  224. package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts +15 -0
  225. package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts.map +1 -0
  226. package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts +8 -0
  227. package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts.map +1 -0
  228. package/build/types/cbac-picker/base/InfoBanner.d.ts +6 -0
  229. package/build/types/cbac-picker/base/InfoBanner.d.ts.map +1 -0
  230. package/build/types/cbac-picker/base/MarkingButton.d.ts +11 -0
  231. package/build/types/cbac-picker/base/MarkingButton.d.ts.map +1 -0
  232. package/build/types/cbac-picker/base/MaxClassificationField.d.ts +9 -0
  233. package/build/types/cbac-picker/base/MaxClassificationField.d.ts.map +1 -0
  234. package/build/types/cbac-picker/base/OverflowButton.d.ts +14 -0
  235. package/build/types/cbac-picker/base/OverflowButton.d.ts.map +1 -0
  236. package/build/types/cbac-picker/base/OverflowItem.d.ts +11 -0
  237. package/build/types/cbac-picker/base/OverflowItem.d.ts.map +1 -0
  238. package/build/types/cbac-picker/base/ValidationWarning.d.ts +7 -0
  239. package/build/types/cbac-picker/base/ValidationWarning.d.ts.map +1 -0
  240. package/build/types/cbac-picker/base/selectionStateHelpers.d.ts +5 -0
  241. package/build/types/cbac-picker/base/selectionStateHelpers.d.ts.map +1 -0
  242. package/build/types/cbac-picker/types.d.ts +32 -0
  243. package/build/types/cbac-picker/types.d.ts.map +1 -0
  244. package/build/types/cbac-picker/useCbacPickerState.d.ts +14 -0
  245. package/build/types/cbac-picker/useCbacPickerState.d.ts.map +1 -0
  246. package/build/types/cbac-picker/useCbacSelection.d.ts +11 -0
  247. package/build/types/cbac-picker/useCbacSelection.d.ts.map +1 -0
  248. package/build/types/cbac-picker/useConstraintCallout.d.ts +3 -0
  249. package/build/types/cbac-picker/useConstraintCallout.d.ts.map +1 -0
  250. package/build/types/cbac-picker/utils/cbacPickerUtils.d.ts +22 -0
  251. package/build/types/cbac-picker/utils/cbacPickerUtils.d.ts.map +1 -0
  252. package/build/types/cbac-picker/utils/errorMessages.d.ts +5 -0
  253. package/build/types/cbac-picker/utils/errorMessages.d.ts.map +1 -0
  254. package/build/types/cbac-picker/utils/selectionLogic.d.ts +4 -0
  255. package/build/types/cbac-picker/utils/selectionLogic.d.ts.map +1 -0
  256. package/build/types/cbac-picker/utils/validationMessages.d.ts +9 -0
  257. package/build/types/cbac-picker/utils/validationMessages.d.ts.map +1 -0
  258. package/build/types/public/experimental/cbac-picker.d.ts +12 -0
  259. package/build/types/public/experimental/cbac-picker.d.ts.map +1 -0
  260. package/build/types/public/experimental.d.ts +1 -0
  261. package/build/types/public/experimental.d.ts.map +1 -1
  262. package/docs/CbacPicker.md +495 -0
  263. package/package.json +18 -9
  264. package/build/cjs/chunk-GKWXRVFO.cjs +0 -11
  265. package/build/cjs/chunk-JPVZGQXS.cjs +0 -11
  266. package/build/cjs/chunk-UJXNFENA.cjs +0 -11
  267. package/build/cjs/chunk-UTB55N5Y.cjs.map +0 -1
  268. package/build/cjs/chunk-W6C6UWUN.cjs +0 -11
  269. package/build/cjs/chunk-YLYICFCA.cjs +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCbacPickerState.js","names":["useCbacBanner","useCbacMarkingRestrictions","useMarkingCategories","useMarkings","React","EMPTY_ARRAY","resolveRequiredGroups","computeMarkingStates","groupMarkingsByCategory","EMPTY_GROUPS","useStableArray","arr","ref","useRef","length","current","some","id","i","useCbacPickerState","selectedIds","stableSelectedIds","categories","rawCategories","isLoading","categoriesLoading","error","categoriesError","refetch","refetchCategories","markings","rawMarkings","markingsLoading","markingsError","refetchMarkings","banner","latestBanner","bannerLoading","bannerError","refetchBanner","markingIds","bannerRef","restrictions","restrictionsLoading","restrictionsError","refetchRestrictions","impliedMarkingIds","impliedMarkings","disallowedMarkingIds","disallowedMarkings","requiredMarkingGroups","requiredMarkings","isValid","userSatisfiesMarkings","useMemo","errors","filter","e","AggregateError","map","message","join","retry","useCallback","categoryGroups","undefined","markingStates","resolvedRequiredGroups"],"sources":["useCbacPickerState.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n useCbacBanner,\n useCbacMarkingRestrictions,\n useMarkingCategories,\n useMarkings,\n} from \"@osdk/react/platform-apis\";\nimport React from \"react\";\nimport type {\n CategoryMarkingGroup,\n CbacBannerData,\n MarkingSelectionState,\n RequiredMarkingGroup,\n} from \"./types.js\";\nimport { EMPTY_ARRAY, resolveRequiredGroups } from \"./utils/cbacPickerUtils.js\";\nimport {\n computeMarkingStates,\n groupMarkingsByCategory,\n} from \"./utils/selectionLogic.js\";\n\nconst EMPTY_GROUPS: string[][] = [];\n\nexport interface UseCbacPickerStateResult {\n categoryGroups: CategoryMarkingGroup[];\n markingStates: Map<string, MarkingSelectionState>;\n banner: CbacBannerData | undefined;\n requiredMarkingGroups: RequiredMarkingGroup[];\n isValid: boolean;\n userSatisfiesMarkings: boolean;\n disallowedMarkingIds: readonly string[];\n isLoading: boolean;\n error: Error | undefined;\n retry: () => void;\n}\n\nfunction useStableArray(arr: string[]): string[] {\n const ref = React.useRef(arr);\n if (\n arr.length !== ref.current.length\n || arr.some((id, i) => id !== ref.current[i])\n ) {\n ref.current = arr;\n }\n return ref.current;\n}\n\nexport function useCbacPickerState(\n selectedIds: string[],\n): UseCbacPickerStateResult {\n const stableSelectedIds = useStableArray(selectedIds);\n const {\n categories: rawCategories,\n isLoading: categoriesLoading,\n error: categoriesError,\n refetch: refetchCategories,\n } = useMarkingCategories();\n const {\n markings: rawMarkings,\n isLoading: markingsLoading,\n error: markingsError,\n refetch: refetchMarkings,\n } = useMarkings();\n const {\n banner: latestBanner,\n isLoading: bannerLoading,\n error: bannerError,\n refetch: refetchBanner,\n } = useCbacBanner({ markingIds: stableSelectedIds });\n\n const bannerRef = React.useRef(latestBanner);\n if (latestBanner != null) {\n bannerRef.current = latestBanner;\n }\n const banner = latestBanner ?? bannerRef.current;\n const {\n restrictions,\n isLoading: restrictionsLoading,\n error: restrictionsError,\n refetch: refetchRestrictions,\n } = useCbacMarkingRestrictions({ markingIds: stableSelectedIds });\n\n const impliedMarkingIds = restrictions?.impliedMarkings ?? EMPTY_ARRAY;\n const disallowedMarkingIds = restrictions?.disallowedMarkings ?? EMPTY_ARRAY;\n const requiredMarkingGroups = restrictions?.requiredMarkings ?? EMPTY_GROUPS;\n const isValid = restrictions?.isValid ?? true;\n const userSatisfiesMarkings = restrictions?.userSatisfiesMarkings ?? true;\n\n const isLoading = categoriesLoading || markingsLoading\n || restrictionsLoading || bannerLoading;\n\n const error = React.useMemo(() => {\n const errors = [\n categoriesError,\n markingsError,\n restrictionsError,\n bannerError,\n ].filter((e): e is Error => e != null);\n if (errors.length > 1) {\n return new AggregateError(\n errors,\n errors.map(e => e.message).join(\"; \"),\n );\n }\n return errors[0];\n }, [categoriesError, markingsError, restrictionsError, bannerError]);\n\n const retry = React.useCallback(() => {\n refetchCategories();\n refetchMarkings();\n refetchBanner();\n refetchRestrictions();\n }, [refetchCategories, refetchMarkings, refetchBanner, refetchRestrictions]);\n\n const categoryGroups = React.useMemo(\n (): CategoryMarkingGroup[] => {\n if (rawCategories === undefined || rawMarkings === undefined) {\n return [];\n }\n return groupMarkingsByCategory(rawMarkings, rawCategories);\n },\n [rawMarkings, rawCategories],\n );\n\n const markingStates = React.useMemo(\n () =>\n computeMarkingStates(\n stableSelectedIds,\n impliedMarkingIds,\n disallowedMarkingIds,\n ),\n [stableSelectedIds, impliedMarkingIds, disallowedMarkingIds],\n );\n\n const resolvedRequiredGroups = React.useMemo(\n () => resolveRequiredGroups(categoryGroups, requiredMarkingGroups),\n [categoryGroups, requiredMarkingGroups],\n );\n\n return React.useMemo(\n () => ({\n categoryGroups,\n markingStates,\n banner,\n requiredMarkingGroups: resolvedRequiredGroups,\n isValid,\n userSatisfiesMarkings,\n disallowedMarkingIds,\n isLoading,\n error,\n retry,\n }),\n [\n categoryGroups,\n markingStates,\n banner,\n resolvedRequiredGroups,\n isValid,\n userSatisfiesMarkings,\n disallowedMarkingIds,\n isLoading,\n error,\n retry,\n ],\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React from "react";
18
+ import { useCbacPickerState } from "./useCbacPickerState.js";
19
+ import { EMPTY_ARRAY } from "./utils/cbacPickerUtils.js";
20
+ import { toggleMarking } from "./utils/selectionLogic.js";
21
+ export function useCbacSelection(initialMarkingIds) {
22
+ const [selectedIds, setSelectedIds] = React.useState(initialMarkingIds ?? EMPTY_ARRAY);
23
+ const [prevInitialIds, setPrevInitialIds] = React.useState(initialMarkingIds);
24
+ if (initialMarkingIds !== prevInitialIds) {
25
+ setPrevInitialIds(initialMarkingIds);
26
+ setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);
27
+ }
28
+ const pickerState = useCbacPickerState(selectedIds);
29
+ const selectedIdsRef = React.useRef(selectedIds);
30
+ selectedIdsRef.current = selectedIds;
31
+ const categoryGroupsRef = React.useRef(pickerState.categoryGroups);
32
+ categoryGroupsRef.current = pickerState.categoryGroups;
33
+ const toggle = React.useCallback(markingId => {
34
+ setSelectedIds(prev => toggleMarking(markingId, prev, categoryGroupsRef.current));
35
+ }, []);
36
+ const dismiss = React.useCallback(() => {
37
+ setSelectedIds(EMPTY_ARRAY);
38
+ }, []);
39
+ const reset = React.useCallback(() => {
40
+ setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);
41
+ }, [initialMarkingIds]);
42
+ return {
43
+ selectedIds,
44
+ selectedIdsRef,
45
+ setSelectedIds,
46
+ ...pickerState,
47
+ toggle,
48
+ dismiss,
49
+ reset
50
+ };
51
+ }
52
+ //# sourceMappingURL=useCbacSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCbacSelection.js","names":["React","useCbacPickerState","EMPTY_ARRAY","toggleMarking","useCbacSelection","initialMarkingIds","selectedIds","setSelectedIds","useState","prevInitialIds","setPrevInitialIds","pickerState","selectedIdsRef","useRef","current","categoryGroupsRef","categoryGroups","toggle","useCallback","markingId","prev","dismiss","reset"],"sources":["useCbacSelection.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport type { CategoryMarkingGroup } from \"./types.js\";\nimport type { UseCbacPickerStateResult } from \"./useCbacPickerState.js\";\nimport { useCbacPickerState } from \"./useCbacPickerState.js\";\nimport { EMPTY_ARRAY } from \"./utils/cbacPickerUtils.js\";\nimport { toggleMarking } from \"./utils/selectionLogic.js\";\n\nexport interface UseCbacSelectionResult extends UseCbacPickerStateResult {\n selectedIds: string[];\n selectedIdsRef: React.MutableRefObject<string[]>;\n setSelectedIds: React.Dispatch<React.SetStateAction<string[]>>;\n toggle: (markingId: string) => void;\n dismiss: () => void;\n reset: () => void;\n}\n\nexport function useCbacSelection(\n initialMarkingIds: string[] | undefined,\n): UseCbacSelectionResult {\n const [selectedIds, setSelectedIds] = React.useState<string[]>(\n initialMarkingIds ?? EMPTY_ARRAY,\n );\n\n const [prevInitialIds, setPrevInitialIds] = React.useState(initialMarkingIds);\n if (initialMarkingIds !== prevInitialIds) {\n setPrevInitialIds(initialMarkingIds);\n setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);\n }\n\n const pickerState = useCbacPickerState(selectedIds);\n\n const selectedIdsRef = React.useRef(selectedIds);\n selectedIdsRef.current = selectedIds;\n\n const categoryGroupsRef = React.useRef<CategoryMarkingGroup[]>(\n pickerState.categoryGroups,\n );\n categoryGroupsRef.current = pickerState.categoryGroups;\n\n const toggle = React.useCallback(\n (markingId: string) => {\n setSelectedIds((prev) =>\n toggleMarking(markingId, prev, categoryGroupsRef.current)\n );\n },\n [],\n );\n\n const dismiss = React.useCallback(() => {\n setSelectedIds(EMPTY_ARRAY);\n }, []);\n\n const reset = React.useCallback(() => {\n setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);\n }, [initialMarkingIds]);\n\n return {\n selectedIds,\n selectedIdsRef,\n setSelectedIds,\n ...pickerState,\n toggle,\n dismiss,\n reset,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,aAAa,QAAQ,2BAA2B;AAWzD,OAAO,SAASC,gBAAgBA,CAC9BC,iBAAuC,EACf;EACxB,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGP,KAAK,CAACQ,QAAQ,CAClDH,iBAAiB,IAAIH,WACvB,CAAC;EAED,MAAM,CAACO,cAAc,EAAEC,iBAAiB,CAAC,GAAGV,KAAK,CAACQ,QAAQ,CAACH,iBAAiB,CAAC;EAC7E,IAAIA,iBAAiB,KAAKI,cAAc,EAAE;IACxCC,iBAAiB,CAACL,iBAAiB,CAAC;IACpCE,cAAc,CAACF,iBAAiB,IAAIH,WAAW,CAAC;EAClD;EAEA,MAAMS,WAAW,GAAGV,kBAAkB,CAACK,WAAW,CAAC;EAEnD,MAAMM,cAAc,GAAGZ,KAAK,CAACa,MAAM,CAACP,WAAW,CAAC;EAChDM,cAAc,CAACE,OAAO,GAAGR,WAAW;EAEpC,MAAMS,iBAAiB,GAAGf,KAAK,CAACa,MAAM,CACpCF,WAAW,CAACK,cACd,CAAC;EACDD,iBAAiB,CAACD,OAAO,GAAGH,WAAW,CAACK,cAAc;EAEtD,MAAMC,MAAM,GAAGjB,KAAK,CAACkB,WAAW,CAC7BC,SAAiB,IAAK;IACrBZ,cAAc,CAAEa,IAAI,IAClBjB,aAAa,CAACgB,SAAS,EAAEC,IAAI,EAAEL,iBAAiB,CAACD,OAAO,CAC1D,CAAC;EACH,CAAC,EACD,EACF,CAAC;EAED,MAAMO,OAAO,GAAGrB,KAAK,CAACkB,WAAW,CAAC,MAAM;IACtCX,cAAc,CAACL,WAAW,CAAC;EAC7B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMoB,KAAK,GAAGtB,KAAK,CAACkB,WAAW,CAAC,MAAM;IACpCX,cAAc,CAACF,iBAAiB,IAAIH,WAAW,CAAC;EAClD,CAAC,EAAE,CAACG,iBAAiB,CAAC,CAAC;EAEvB,OAAO;IACLC,WAAW;IACXM,cAAc;IACdL,cAAc;IACd,GAAGI,WAAW;IACdM,MAAM;IACNI,OAAO;IACPC;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { useCbacBanner } from "@osdk/react/platform-apis";
18
+ import React from "react";
19
+ import { MaxClassificationField } from "./base/MaxClassificationField.js";
20
+ import { EMPTY_ARRAY, resolveBannerDisplay } from "./utils/cbacPickerUtils.js";
21
+ export function useConstraintCallout(maxClassificationConstraint) {
22
+ const constraintMarkingIds = maxClassificationConstraint?.markingIds ?? EMPTY_ARRAY;
23
+ const {
24
+ banner: constraintBanner
25
+ } = useCbacBanner({
26
+ markingIds: constraintMarkingIds,
27
+ enabled: maxClassificationConstraint != null
28
+ });
29
+ return React.useMemo(() => {
30
+ if (maxClassificationConstraint == null) {
31
+ return undefined;
32
+ }
33
+ const resolved = resolveBannerDisplay(constraintBanner);
34
+ return /*#__PURE__*/React.createElement(MaxClassificationField, {
35
+ classificationString: maxClassificationConstraint.bannerClassificationString,
36
+ textColor: resolved.textColor,
37
+ backgroundColors: resolved.backgroundColors,
38
+ helperText: maxClassificationConstraint.helperText
39
+ });
40
+ }, [maxClassificationConstraint, constraintBanner]);
41
+ }
42
+ //# sourceMappingURL=useConstraintCallout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConstraintCallout.js","names":["useCbacBanner","React","MaxClassificationField","EMPTY_ARRAY","resolveBannerDisplay","useConstraintCallout","maxClassificationConstraint","constraintMarkingIds","markingIds","banner","constraintBanner","enabled","useMemo","undefined","resolved","createElement","classificationString","bannerClassificationString","textColor","backgroundColors","helperText"],"sources":["useConstraintCallout.tsx"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCbacBanner } from \"@osdk/react/platform-apis\";\nimport React from \"react\";\nimport { MaxClassificationField } from \"./base/MaxClassificationField.js\";\nimport type { MaxClassificationConstraint } from \"./types.js\";\nimport { EMPTY_ARRAY, resolveBannerDisplay } from \"./utils/cbacPickerUtils.js\";\n\nexport function useConstraintCallout(\n maxClassificationConstraint: MaxClassificationConstraint | undefined,\n): React.ReactNode {\n const constraintMarkingIds = maxClassificationConstraint?.markingIds\n ?? EMPTY_ARRAY;\n const { banner: constraintBanner } = useCbacBanner({\n markingIds: constraintMarkingIds,\n enabled: maxClassificationConstraint != null,\n });\n\n return React.useMemo(() => {\n if (maxClassificationConstraint == null) {\n return undefined;\n }\n const resolved = resolveBannerDisplay(constraintBanner);\n return (\n <MaxClassificationField\n classificationString={maxClassificationConstraint\n .bannerClassificationString}\n textColor={resolved.textColor}\n backgroundColors={resolved.backgroundColors}\n helperText={maxClassificationConstraint.helperText}\n />\n );\n }, [maxClassificationConstraint, constraintBanner]);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,kCAAkC;AAEzE,SAASC,WAAW,EAAEC,oBAAoB,QAAQ,4BAA4B;AAE9E,OAAO,SAASC,oBAAoBA,CAClCC,2BAAoE,EACnD;EACjB,MAAMC,oBAAoB,GAAGD,2BAA2B,EAAEE,UAAU,IAC/DL,WAAW;EAChB,MAAM;IAAEM,MAAM,EAAEC;EAAiB,CAAC,GAAGV,aAAa,CAAC;IACjDQ,UAAU,EAAED,oBAAoB;IAChCI,OAAO,EAAEL,2BAA2B,IAAI;EAC1C,CAAC,CAAC;EAEF,OAAOL,KAAK,CAACW,OAAO,CAAC,MAAM;IACzB,IAAIN,2BAA2B,IAAI,IAAI,EAAE;MACvC,OAAOO,SAAS;IAClB;IACA,MAAMC,QAAQ,GAAGV,oBAAoB,CAACM,gBAAgB,CAAC;IACvD,oBACET,KAAA,CAAAc,aAAA,CAACb,sBAAsB;MACrBc,oBAAoB,EAAEV,2BAA2B,CAC9CW,0BAA2B;MAC9BC,SAAS,EAAEJ,QAAQ,CAACI,SAAU;MAC9BC,gBAAgB,EAAEL,QAAQ,CAACK,gBAAiB;MAC5CC,UAAU,EAAEd,2BAA2B,CAACc;IAAW,CACpD,CAAC;EAEN,CAAC,EAAE,CAACd,2BAA2B,EAAEI,gBAAgB,CAAC,CAAC;AACrD","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ const UNMARKED_BACKGROUND_COLORS = ["#8F99A8"];
18
+ const UNMARKED_TEXT_COLOR = "#FFFFFF";
19
+ const UNMARKED_CLASSIFICATION_STRING = "UNMARKED";
20
+ export const EMPTY_ARRAY = [];
21
+ export function backgroundFromColors(backgroundColors) {
22
+ return backgroundColors.length > 1 ? `linear-gradient(to right, ${backgroundColors.join(", ")})` : backgroundColors[0] ?? "transparent";
23
+ }
24
+ export function resolveBannerDisplay(banner) {
25
+ return {
26
+ classificationString: banner?.classificationString ?? UNMARKED_CLASSIFICATION_STRING,
27
+ textColor: banner?.textColor ?? UNMARKED_TEXT_COLOR,
28
+ backgroundColors: banner?.backgroundColors ?? UNMARKED_BACKGROUND_COLORS
29
+ };
30
+ }
31
+ export function groupMarkingsByCategory(markingIds, categories, markings) {
32
+ if (markingIds.length === 0 || categories === undefined || markings === undefined) {
33
+ return [];
34
+ }
35
+ const selected = new Set(markingIds);
36
+ const categoryNames = new Map(categories.map(c => [c.id, c.name]));
37
+ const grouped = new Map();
38
+ for (const marking of markings) {
39
+ if (selected.has(marking.id)) {
40
+ const name = categoryNames.get(marking.categoryId) ?? marking.categoryId;
41
+ const list = grouped.get(name);
42
+ if (list !== undefined) {
43
+ list.push(marking.name);
44
+ } else {
45
+ grouped.set(name, [marking.name]);
46
+ }
47
+ }
48
+ }
49
+ return Array.from(grouped, ([categoryName, markingNames]) => ({
50
+ categoryName,
51
+ markingNames
52
+ }));
53
+ }
54
+ export function resolveRequiredGroups(categoryGroups, requiredMarkingGroups) {
55
+ const markingIdToName = new Map(categoryGroups.flatMap(g => g.markings).map(m => [m.id, m.name]));
56
+ return requiredMarkingGroups.map(ids => ({
57
+ markingNames: ids.map(id => markingIdToName.get(id) ?? id)
58
+ }));
59
+ }
60
+ //# sourceMappingURL=cbacPickerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbacPickerUtils.js","names":["UNMARKED_BACKGROUND_COLORS","UNMARKED_TEXT_COLOR","UNMARKED_CLASSIFICATION_STRING","EMPTY_ARRAY","backgroundFromColors","backgroundColors","length","join","resolveBannerDisplay","banner","classificationString","textColor","groupMarkingsByCategory","markingIds","categories","markings","undefined","selected","Set","categoryNames","Map","map","c","id","name","grouped","marking","has","get","categoryId","list","push","set","Array","from","categoryName","markingNames","resolveRequiredGroups","categoryGroups","requiredMarkingGroups","markingIdToName","flatMap","g","m","ids"],"sources":["cbacPickerUtils.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CategoryMarkingGroup,\n CbacBannerData,\n RequiredMarkingGroup,\n} from \"../types.js\";\nconst UNMARKED_BACKGROUND_COLORS: string[] = [\"#8F99A8\"];\nconst UNMARKED_TEXT_COLOR = \"#FFFFFF\";\nconst UNMARKED_CLASSIFICATION_STRING = \"UNMARKED\";\n\nexport const EMPTY_ARRAY: string[] = [];\n\nexport function backgroundFromColors(backgroundColors: string[]): string {\n return backgroundColors.length > 1\n ? `linear-gradient(to right, ${backgroundColors.join(\", \")})`\n : backgroundColors[0] ?? \"transparent\";\n}\n\nexport interface ResolvedBannerDisplay {\n classificationString: string;\n textColor: string;\n backgroundColors: string[];\n}\n\nexport function resolveBannerDisplay(\n banner: CbacBannerData | undefined,\n): ResolvedBannerDisplay {\n return {\n classificationString: banner?.classificationString\n ?? UNMARKED_CLASSIFICATION_STRING,\n textColor: banner?.textColor ?? UNMARKED_TEXT_COLOR,\n backgroundColors: banner?.backgroundColors ?? UNMARKED_BACKGROUND_COLORS,\n };\n}\n\nexport interface AppliedMarkingGroup {\n categoryName: string;\n markingNames: string[];\n}\n\nexport function groupMarkingsByCategory(\n markingIds: string[],\n categories: ReadonlyArray<{ id: string; name: string }> | undefined,\n markings:\n | ReadonlyArray<{ id: string; name: string; categoryId: string }>\n | undefined,\n): AppliedMarkingGroup[] {\n if (\n markingIds.length === 0 || categories === undefined\n || markings === undefined\n ) {\n return [];\n }\n\n const selected = new Set(markingIds);\n const categoryNames = new Map(categories.map((c) => [c.id, c.name]));\n const grouped = new Map<string, string[]>();\n\n for (const marking of markings) {\n if (selected.has(marking.id)) {\n const name = categoryNames.get(marking.categoryId)\n ?? marking.categoryId;\n const list = grouped.get(name);\n if (list !== undefined) {\n list.push(marking.name);\n } else {\n grouped.set(name, [marking.name]);\n }\n }\n }\n\n return Array.from(grouped, ([categoryName, markingNames]) => ({\n categoryName,\n markingNames,\n }));\n}\n\nexport function resolveRequiredGroups(\n categoryGroups: CategoryMarkingGroup[],\n requiredMarkingGroups: string[][],\n): RequiredMarkingGroup[] {\n const markingIdToName = new Map(\n categoryGroups.flatMap((g) => g.markings).map((m) =>\n [m.id, m.name] as const\n ),\n );\n return requiredMarkingGroups.map((ids) => ({\n markingNames: ids.map((id) => markingIdToName.get(id) ?? id),\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,MAAMA,0BAAoC,GAAG,CAAC,SAAS,CAAC;AACxD,MAAMC,mBAAmB,GAAG,SAAS;AACrC,MAAMC,8BAA8B,GAAG,UAAU;AAEjD,OAAO,MAAMC,WAAqB,GAAG,EAAE;AAEvC,OAAO,SAASC,oBAAoBA,CAACC,gBAA0B,EAAU;EACvE,OAAOA,gBAAgB,CAACC,MAAM,GAAG,CAAC,GAC9B,6BAA6BD,gBAAgB,CAACE,IAAI,CAAC,IAAI,CAAC,GAAG,GAC3DF,gBAAgB,CAAC,CAAC,CAAC,IAAI,aAAa;AAC1C;AAQA,OAAO,SAASG,oBAAoBA,CAClCC,MAAkC,EACX;EACvB,OAAO;IACLC,oBAAoB,EAAED,MAAM,EAAEC,oBAAoB,IAC7CR,8BAA8B;IACnCS,SAAS,EAAEF,MAAM,EAAEE,SAAS,IAAIV,mBAAmB;IACnDI,gBAAgB,EAAEI,MAAM,EAAEJ,gBAAgB,IAAIL;EAChD,CAAC;AACH;AAOA,OAAO,SAASY,uBAAuBA,CACrCC,UAAoB,EACpBC,UAAmE,EACnEC,QAEa,EACU;EACvB,IACEF,UAAU,CAACP,MAAM,KAAK,CAAC,IAAIQ,UAAU,KAAKE,SAAS,IAChDD,QAAQ,KAAKC,SAAS,EACzB;IACA,OAAO,EAAE;EACX;EAEA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,UAAU,CAAC;EACpC,MAAMM,aAAa,GAAG,IAAIC,GAAG,CAACN,UAAU,CAACO,GAAG,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACC,EAAE,EAAED,CAAC,CAACE,IAAI,CAAC,CAAC,CAAC;EACpE,MAAMC,OAAO,GAAG,IAAIL,GAAG,CAAmB,CAAC;EAE3C,KAAK,MAAMM,OAAO,IAAIX,QAAQ,EAAE;IAC9B,IAAIE,QAAQ,CAACU,GAAG,CAACD,OAAO,CAACH,EAAE,CAAC,EAAE;MAC5B,MAAMC,IAAI,GAAGL,aAAa,CAACS,GAAG,CAACF,OAAO,CAACG,UAAU,CAAC,IAC7CH,OAAO,CAACG,UAAU;MACvB,MAAMC,IAAI,GAAGL,OAAO,CAACG,GAAG,CAACJ,IAAI,CAAC;MAC9B,IAAIM,IAAI,KAAKd,SAAS,EAAE;QACtBc,IAAI,CAACC,IAAI,CAACL,OAAO,CAACF,IAAI,CAAC;MACzB,CAAC,MAAM;QACLC,OAAO,CAACO,GAAG,CAACR,IAAI,EAAE,CAACE,OAAO,CAACF,IAAI,CAAC,CAAC;MACnC;IACF;EACF;EAEA,OAAOS,KAAK,CAACC,IAAI,CAACT,OAAO,EAAE,CAAC,CAACU,YAAY,EAAEC,YAAY,CAAC,MAAM;IAC5DD,YAAY;IACZC;EACF,CAAC,CAAC,CAAC;AACL;AAEA,OAAO,SAASC,qBAAqBA,CACnCC,cAAsC,EACtCC,qBAAiC,EACT;EACxB,MAAMC,eAAe,GAAG,IAAIpB,GAAG,CAC7BkB,cAAc,CAACG,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC3B,QAAQ,CAAC,CAACM,GAAG,CAAEsB,CAAC,IAC9C,CAACA,CAAC,CAACpB,EAAE,EAAEoB,CAAC,CAACnB,IAAI,CACf,CACF,CAAC;EACD,OAAOe,qBAAqB,CAAClB,GAAG,CAAEuB,GAAG,KAAM;IACzCR,YAAY,EAAEQ,GAAG,CAACvB,GAAG,CAAEE,EAAE,IAAKiB,eAAe,CAACZ,GAAG,CAACL,EAAE,CAAC,IAAIA,EAAE;EAC7D,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ function isApiErrorLike(error) {
18
+ return "statusCode" in error && typeof error.statusCode === "number";
19
+ }
20
+ function formatByStatusCode(error) {
21
+ const statusCode = error.statusCode;
22
+ if (statusCode === 401) {
23
+ return {
24
+ title: "Session expired",
25
+ remediation: "Sign in again to continue."
26
+ };
27
+ }
28
+ if (statusCode === 403) {
29
+ return {
30
+ title: "Permission denied",
31
+ remediation: "Contact your administrator for permission."
32
+ };
33
+ }
34
+ if (statusCode === 404) {
35
+ return {
36
+ title: "Not found",
37
+ remediation: "The requested classification data could not be found."
38
+ };
39
+ }
40
+ if (statusCode !== undefined && statusCode >= 500) {
41
+ return {
42
+ title: "Server error",
43
+ remediation: "Something went wrong. Try again later."
44
+ };
45
+ }
46
+ if (typeof error.errorDescription === "string" && error.errorDescription.length > 0) {
47
+ return {
48
+ title: error.errorDescription,
49
+ remediation: ""
50
+ };
51
+ }
52
+ return {
53
+ title: error.message || "Something went wrong",
54
+ remediation: ""
55
+ };
56
+ }
57
+ export function formatCbacError(error) {
58
+ if (error instanceof AggregateError && error.errors.length > 0) {
59
+ const first = error.errors[0];
60
+ if (first instanceof Error) {
61
+ return formatCbacError(first);
62
+ }
63
+ }
64
+ if (isApiErrorLike(error)) {
65
+ return formatByStatusCode(error);
66
+ }
67
+ if (error.message.toLowerCase().includes("network") || error.message.toLowerCase().includes("fetch")) {
68
+ return {
69
+ title: "Network error",
70
+ remediation: "Check your connection and try again."
71
+ };
72
+ }
73
+ return {
74
+ title: error.message || "Something went wrong",
75
+ remediation: ""
76
+ };
77
+ }
78
+ //# sourceMappingURL=errorMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorMessages.js","names":["isApiErrorLike","error","statusCode","formatByStatusCode","title","remediation","undefined","errorDescription","length","message","formatCbacError","AggregateError","errors","first","Error","toLowerCase","includes"],"sources":["errorMessages.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface CbacErrorMessage {\n title: string;\n remediation: string;\n}\n\ninterface ApiErrorLike {\n statusCode?: number;\n errorDescription?: string;\n}\n\nfunction isApiErrorLike(error: Error): error is Error & ApiErrorLike {\n return \"statusCode\" in error\n && typeof (error as ApiErrorLike).statusCode === \"number\";\n}\n\nfunction formatByStatusCode(error: Error & ApiErrorLike): CbacErrorMessage {\n const statusCode = error.statusCode;\n if (statusCode === 401) {\n return {\n title: \"Session expired\",\n remediation: \"Sign in again to continue.\",\n };\n }\n if (statusCode === 403) {\n return {\n title: \"Permission denied\",\n remediation: \"Contact your administrator for permission.\",\n };\n }\n if (statusCode === 404) {\n return {\n title: \"Not found\",\n remediation: \"The requested classification data could not be found.\",\n };\n }\n if (statusCode !== undefined && statusCode >= 500) {\n return {\n title: \"Server error\",\n remediation: \"Something went wrong. Try again later.\",\n };\n }\n if (\n typeof error.errorDescription === \"string\"\n && error.errorDescription.length > 0\n ) {\n return {\n title: error.errorDescription,\n remediation: \"\",\n };\n }\n return {\n title: error.message || \"Something went wrong\",\n remediation: \"\",\n };\n}\n\nexport function formatCbacError(error: Error): CbacErrorMessage {\n if (error instanceof AggregateError && error.errors.length > 0) {\n const first = error.errors[0];\n if (first instanceof Error) {\n return formatCbacError(first);\n }\n }\n\n if (isApiErrorLike(error)) {\n return formatByStatusCode(error);\n }\n\n if (\n error.message.toLowerCase().includes(\"network\")\n || error.message.toLowerCase().includes(\"fetch\")\n ) {\n return {\n title: \"Network error\",\n remediation: \"Check your connection and try again.\",\n };\n }\n\n return {\n title: error.message || \"Something went wrong\",\n remediation: \"\",\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,SAASA,cAAcA,CAACC,KAAY,EAAiC;EACnE,OAAO,YAAY,IAAIA,KAAK,IACvB,OAAQA,KAAK,CAAkBC,UAAU,KAAK,QAAQ;AAC7D;AAEA,SAASC,kBAAkBA,CAACF,KAA2B,EAAoB;EACzE,MAAMC,UAAU,GAAGD,KAAK,CAACC,UAAU;EACnC,IAAIA,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO;MACLE,KAAK,EAAE,iBAAiB;MACxBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIH,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO;MACLE,KAAK,EAAE,mBAAmB;MAC1BC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIH,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO;MACLE,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIH,UAAU,KAAKI,SAAS,IAAIJ,UAAU,IAAI,GAAG,EAAE;IACjD,OAAO;MACLE,KAAK,EAAE,cAAc;MACrBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IACE,OAAOJ,KAAK,CAACM,gBAAgB,KAAK,QAAQ,IACvCN,KAAK,CAACM,gBAAgB,CAACC,MAAM,GAAG,CAAC,EACpC;IACA,OAAO;MACLJ,KAAK,EAAEH,KAAK,CAACM,gBAAgB;MAC7BF,WAAW,EAAE;IACf,CAAC;EACH;EACA,OAAO;IACLD,KAAK,EAAEH,KAAK,CAACQ,OAAO,IAAI,sBAAsB;IAC9CJ,WAAW,EAAE;EACf,CAAC;AACH;AAEA,OAAO,SAASK,eAAeA,CAACT,KAAY,EAAoB;EAC9D,IAAIA,KAAK,YAAYU,cAAc,IAAIV,KAAK,CAACW,MAAM,CAACJ,MAAM,GAAG,CAAC,EAAE;IAC9D,MAAMK,KAAK,GAAGZ,KAAK,CAACW,MAAM,CAAC,CAAC,CAAC;IAC7B,IAAIC,KAAK,YAAYC,KAAK,EAAE;MAC1B,OAAOJ,eAAe,CAACG,KAAK,CAAC;IAC/B;EACF;EAEA,IAAIb,cAAc,CAACC,KAAK,CAAC,EAAE;IACzB,OAAOE,kBAAkB,CAACF,KAAK,CAAC;EAClC;EAEA,IACEA,KAAK,CAACQ,OAAO,CAACM,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,SAAS,CAAC,IAC5Cf,KAAK,CAACQ,OAAO,CAACM,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,OAAO,CAAC,EAChD;IACA,OAAO;MACLZ,KAAK,EAAE,eAAe;MACtBC,WAAW,EAAE;IACf,CAAC;EACH;EAEA,OAAO;IACLD,KAAK,EAAEH,KAAK,CAACQ,OAAO,IAAI,sBAAsB;IAC9CJ,WAAW,EAAE;EACf,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export function toggleMarking(markingId, currentSelection, categories) {
18
+ const isSelected = currentSelection.includes(markingId);
19
+ let ownerGroup;
20
+ for (const group of categories) {
21
+ for (const marking of group.markings) {
22
+ if (marking.id === markingId) {
23
+ ownerGroup = group;
24
+ break;
25
+ }
26
+ }
27
+ if (ownerGroup !== undefined) {
28
+ break;
29
+ }
30
+ }
31
+ if (ownerGroup === undefined) {
32
+ return currentSelection;
33
+ }
34
+ if (isSelected) {
35
+ return currentSelection.filter(id => id !== markingId);
36
+ }
37
+
38
+ // Disjunctive categories allow only one marking selected at a time (radio-style).
39
+ // Conjunctive categories allow multiple markings (checkbox-style).
40
+ if (ownerGroup.category.categoryType === "DISJUNCTIVE") {
41
+ const sameCategoryMarkingIds = new Set(ownerGroup.markings.map(m => m.id));
42
+ const withoutSameCategory = currentSelection.filter(id => !sameCategoryMarkingIds.has(id));
43
+ return [...withoutSameCategory, markingId];
44
+ }
45
+ return [...currentSelection, markingId];
46
+ }
47
+ export function computeMarkingStates(selectedIds, impliedIds, disallowedIds) {
48
+ const states = new Map();
49
+ const selectedSet = new Set(selectedIds);
50
+ const impliedSet = new Set(impliedIds);
51
+ const disallowedSet = new Set(disallowedIds);
52
+ const allIds = new Set([...selectedIds, ...impliedIds, ...disallowedIds]);
53
+ for (const id of allIds) {
54
+ const isImplied = impliedSet.has(id);
55
+ const isDisallowed = disallowedSet.has(id);
56
+ const isSelected = selectedSet.has(id);
57
+ if (isSelected) {
58
+ states.set(id, "SELECTED");
59
+ } else if (isImplied && isDisallowed) {
60
+ states.set(id, "IMPLIED_DISALLOWED");
61
+ } else if (isImplied) {
62
+ states.set(id, "IMPLIED");
63
+ } else if (isDisallowed) {
64
+ states.set(id, "DISALLOWED");
65
+ }
66
+ }
67
+ return states;
68
+ }
69
+ export function groupMarkingsByCategory(markings, categories) {
70
+ const markingsByCategoryId = new Map();
71
+ for (const marking of markings) {
72
+ const existing = markingsByCategoryId.get(marking.categoryId);
73
+ if (existing !== undefined) {
74
+ existing.push(marking);
75
+ } else {
76
+ markingsByCategoryId.set(marking.categoryId, [marking]);
77
+ }
78
+ }
79
+ const groups = [];
80
+ for (const category of categories) {
81
+ const categoryMarkings = markingsByCategoryId.get(category.id);
82
+ if (categoryMarkings !== undefined && categoryMarkings.length > 0) {
83
+ groups.push({
84
+ category,
85
+ markings: categoryMarkings
86
+ });
87
+ }
88
+ }
89
+ return groups;
90
+ }
91
+ //# sourceMappingURL=selectionLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionLogic.js","names":["toggleMarking","markingId","currentSelection","categories","isSelected","includes","ownerGroup","group","marking","markings","id","undefined","filter","category","categoryType","sameCategoryMarkingIds","Set","map","m","withoutSameCategory","has","computeMarkingStates","selectedIds","impliedIds","disallowedIds","states","Map","selectedSet","impliedSet","disallowedSet","allIds","isImplied","isDisallowed","set","groupMarkingsByCategory","markingsByCategoryId","existing","get","categoryId","push","groups","categoryMarkings","length"],"sources":["selectionLogic.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CategoryMarkingGroup,\n MarkingSelectionState,\n PickerMarking,\n PickerMarkingCategory,\n} from \"../types.js\";\n\nexport function toggleMarking(\n markingId: string,\n currentSelection: string[],\n categories: CategoryMarkingGroup[],\n): string[] {\n const isSelected = currentSelection.includes(markingId);\n\n let ownerGroup: CategoryMarkingGroup | undefined;\n for (const group of categories) {\n for (const marking of group.markings) {\n if (marking.id === markingId) {\n ownerGroup = group;\n break;\n }\n }\n if (ownerGroup !== undefined) {\n break;\n }\n }\n\n if (ownerGroup === undefined) {\n return currentSelection;\n }\n\n if (isSelected) {\n return currentSelection.filter((id) => id !== markingId);\n }\n\n // Disjunctive categories allow only one marking selected at a time (radio-style).\n // Conjunctive categories allow multiple markings (checkbox-style).\n if (ownerGroup.category.categoryType === \"DISJUNCTIVE\") {\n const sameCategoryMarkingIds = new Set(\n ownerGroup.markings.map((m) => m.id),\n );\n const withoutSameCategory = currentSelection.filter(\n (id) => !sameCategoryMarkingIds.has(id),\n );\n return [...withoutSameCategory, markingId];\n }\n\n return [...currentSelection, markingId];\n}\n\nexport function computeMarkingStates(\n selectedIds: string[],\n impliedIds: string[],\n disallowedIds: string[],\n): Map<string, MarkingSelectionState> {\n const states = new Map<string, MarkingSelectionState>();\n\n const selectedSet = new Set(selectedIds);\n const impliedSet = new Set(impliedIds);\n const disallowedSet = new Set(disallowedIds);\n\n const allIds = new Set([...selectedIds, ...impliedIds, ...disallowedIds]);\n\n for (const id of allIds) {\n const isImplied = impliedSet.has(id);\n const isDisallowed = disallowedSet.has(id);\n const isSelected = selectedSet.has(id);\n\n if (isSelected) {\n states.set(id, \"SELECTED\");\n } else if (isImplied && isDisallowed) {\n states.set(id, \"IMPLIED_DISALLOWED\");\n } else if (isImplied) {\n states.set(id, \"IMPLIED\");\n } else if (isDisallowed) {\n states.set(id, \"DISALLOWED\");\n }\n }\n\n return states;\n}\n\nexport function groupMarkingsByCategory(\n markings: PickerMarking[],\n categories: PickerMarkingCategory[],\n): CategoryMarkingGroup[] {\n const markingsByCategoryId = new Map<string, PickerMarking[]>();\n\n for (const marking of markings) {\n const existing = markingsByCategoryId.get(marking.categoryId);\n if (existing !== undefined) {\n existing.push(marking);\n } else {\n markingsByCategoryId.set(marking.categoryId, [marking]);\n }\n }\n\n const groups: CategoryMarkingGroup[] = [];\n\n for (const category of categories) {\n const categoryMarkings = markingsByCategoryId.get(category.id);\n if (categoryMarkings !== undefined && categoryMarkings.length > 0) {\n groups.push({ category, markings: categoryMarkings });\n }\n }\n\n return groups;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export function getSubmitDisabledReason(ctx) {
18
+ if (ctx.isValid) {
19
+ return undefined;
20
+ }
21
+ if (ctx.requiredMarkingGroups.length > 0) {
22
+ return "Selected markings do not include all required markings.";
23
+ }
24
+ const selectedSet = new Set(ctx.selectedIds);
25
+ const hasDisallowedSelected = ctx.disallowedMarkingIds.some(id => selectedSet.has(id));
26
+ if (hasDisallowedSelected) {
27
+ return "Selections include disallowed markings.";
28
+ }
29
+ if (!ctx.userSatisfiesMarkings) {
30
+ return "Invalid configuration of markings. Please ensure that you have permission to use all selected markings.";
31
+ }
32
+ return "Invalid marking selection.";
33
+ }
34
+ //# sourceMappingURL=validationMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationMessages.js","names":["getSubmitDisabledReason","ctx","isValid","undefined","requiredMarkingGroups","length","selectedSet","Set","selectedIds","hasDisallowedSelected","disallowedMarkingIds","some","id","has","userSatisfiesMarkings"],"sources":["validationMessages.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { RequiredMarkingGroup } from \"../types.js\";\n\nexport interface ValidationContext {\n isValid: boolean;\n requiredMarkingGroups: ReadonlyArray<RequiredMarkingGroup>;\n selectedIds: string[];\n disallowedMarkingIds: readonly string[];\n userSatisfiesMarkings: boolean;\n}\n\nexport function getSubmitDisabledReason(\n ctx: ValidationContext,\n): string | undefined {\n if (ctx.isValid) {\n return undefined;\n }\n if (ctx.requiredMarkingGroups.length > 0) {\n return \"Selected markings do not include all required markings.\";\n }\n const selectedSet = new Set(ctx.selectedIds);\n const hasDisallowedSelected = ctx.disallowedMarkingIds.some(\n (id) => selectedSet.has(id),\n );\n if (hasDisallowedSelected) {\n return \"Selections include disallowed markings.\";\n }\n if (!ctx.userSatisfiesMarkings) {\n return \"Invalid configuration of markings. Please ensure that you have permission to use all selected markings.\";\n }\n return \"Invalid marking selection.\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,OAAO,SAASA,uBAAuBA,CACrCC,GAAsB,EACF;EACpB,IAAIA,GAAG,CAACC,OAAO,EAAE;IACf,OAAOC,SAAS;EAClB;EACA,IAAIF,GAAG,CAACG,qBAAqB,CAACC,MAAM,GAAG,CAAC,EAAE;IACxC,OAAO,yDAAyD;EAClE;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACN,GAAG,CAACO,WAAW,CAAC;EAC5C,MAAMC,qBAAqB,GAAGR,GAAG,CAACS,oBAAoB,CAACC,IAAI,CACxDC,EAAE,IAAKN,WAAW,CAACO,GAAG,CAACD,EAAE,CAC5B,CAAC;EACD,IAAIH,qBAAqB,EAAE;IACzB,OAAO,yCAAyC;EAClD;EACA,IAAI,CAACR,GAAG,CAACa,qBAAqB,EAAE;IAC9B,OAAO,yGAAyG;EAClH;EACA,OAAO,4BAA4B;AACrC","ignoreList":[]}
@@ -113,18 +113,15 @@
113
113
  height: var(--osdk-filter-listogram-bar-height);
114
114
  background: var(--osdk-filter-listogram-bar-bg);
115
115
  border-radius: var(--osdk-filter-listogram-bar-border-radius);
116
- overflow: hidden;
117
116
  }
118
117
 
119
118
  .barFill {
120
119
  display: block;
121
120
  height: 100%;
122
- width: 100%;
121
+ width: calc(var(--osdk-filter-listogram-bar-fill-scale, 0) * 100%);
123
122
  background: var(--osdk-filter-listogram-row-bar-color, var(--osdk-filter-listogram-bar-color));
124
123
  border-radius: var(--osdk-filter-listogram-bar-border-radius);
125
- transform-origin: left;
126
- transform: scaleX(var(--osdk-filter-listogram-bar-fill-scale, 0));
127
- transition: transform var(--osdk-filter-listogram-bar-fill-transition);
124
+ transition: width var(--osdk-filter-listogram-bar-fill-transition);
128
125
  }
129
126
 
130
127
  .row[aria-pressed="true"] .barFill {
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ // CBAC Picker - OSDK-aware components
18
+ export { CbacBanner } from "../../cbac-picker/CbacBanner.js";
19
+ export { CbacBannerPopover } from "../../cbac-picker/CbacBannerPopover.js";
20
+ import { CbacPicker as _CbacPicker } from "../../cbac-picker/CbacPicker.js";
21
+ import { withOsdkMetrics } from "../../util/withOsdkMetrics.js";
22
+ export const CbacPicker = withOsdkMetrics(_CbacPicker, "CbacPicker");
23
+ export { CbacPickerDialog } from "../../cbac-picker/CbacPickerDialog.js";
24
+
25
+ // CBAC Picker - Base components
26
+ export { BaseCbacBanner } from "../../cbac-picker/base/BaseCbacBanner.js";
27
+ export { BaseCbacPicker } from "../../cbac-picker/base/BaseCbacPicker.js";
28
+ export { BaseCbacPickerDialog } from "../../cbac-picker/base/BaseCbacPickerDialog.js";
29
+
30
+ // CBAC Picker - Selection logic utilities
31
+ export { computeMarkingStates, groupMarkingsByCategory, toggleMarking } from "../../cbac-picker/utils/selectionLogic.js";
32
+ // CBAC Picker - Types
33
+
34
+ // CBAC Picker - MaxClassificationField
35
+ export { MaxClassificationField } from "../../cbac-picker/base/MaxClassificationField.js";
36
+ //# sourceMappingURL=cbac-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbac-picker.js","names":["CbacBanner","CbacBannerPopover","CbacPicker","_CbacPicker","withOsdkMetrics","CbacPickerDialog","BaseCbacBanner","BaseCbacPicker","BaseCbacPickerDialog","computeMarkingStates","groupMarkingsByCategory","toggleMarking","MaxClassificationField"],"sources":["cbac-picker.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// CBAC Picker - OSDK-aware components\nexport { CbacBanner } from \"../../cbac-picker/CbacBanner.js\";\nexport { CbacBannerPopover } from \"../../cbac-picker/CbacBannerPopover.js\";\nimport { CbacPicker as _CbacPicker } from \"../../cbac-picker/CbacPicker.js\";\nimport { withOsdkMetrics } from \"../../util/withOsdkMetrics.js\";\nexport const CbacPicker: typeof _CbacPicker = withOsdkMetrics(\n _CbacPicker,\n \"CbacPicker\",\n);\nexport { CbacPickerDialog } from \"../../cbac-picker/CbacPickerDialog.js\";\n\n// CBAC Picker - Base components\nexport { BaseCbacBanner } from \"../../cbac-picker/base/BaseCbacBanner.js\";\nexport { BaseCbacPicker } from \"../../cbac-picker/base/BaseCbacPicker.js\";\nexport { BaseCbacPickerDialog } from \"../../cbac-picker/base/BaseCbacPickerDialog.js\";\n\n// CBAC Picker - Selection logic utilities\nexport {\n computeMarkingStates,\n groupMarkingsByCategory,\n toggleMarking,\n} from \"../../cbac-picker/utils/selectionLogic.js\";\n// CBAC Picker - Types\nexport type {\n CategoryMarkingGroup,\n CbacBannerData,\n MarkingSelectionState,\n MaxClassificationConstraint,\n PickerMarking,\n PickerMarkingCategory,\n RequiredMarkingGroup,\n} from \"../../cbac-picker/types.js\";\n\n// CBAC Picker - MaxClassificationField\nexport { MaxClassificationField } from \"../../cbac-picker/base/MaxClassificationField.js\";\nexport type { MaxClassificationFieldProps } from \"../../cbac-picker/base/MaxClassificationField.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,UAAU,IAAIC,WAAW,QAAQ,iCAAiC;AAC3E,SAASC,eAAe,QAAQ,+BAA+B;AAC/D,OAAO,MAAMF,UAA8B,GAAGE,eAAe,CAC3DD,WAAW,EACX,YACF,CAAC;AACD,SAASE,gBAAgB,QAAQ,uCAAuC;;AAExE;AACA,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,oBAAoB,QAAQ,gDAAgD;;AAErF;AACA,SACEC,oBAAoB,EACpBC,uBAAuB,EACvBC,aAAa,QACR,2CAA2C;AAClD;;AAWA;AACA,SAASC,sBAAsB,QAAQ,kDAAkD","ignoreList":[]}
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  export * from "./experimental/action-form.js";
18
+ export * from "./experimental/cbac-picker.js";
18
19
  export * from "./experimental/document-viewer.js";
19
20
  export * from "./experimental/email-viewer.js";
20
21
  export * from "./experimental/excel-viewer.js";
@@ -1 +1 @@
1
- {"version":3,"file":"experimental.js","names":[],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from \"./experimental/action-form.js\";\nexport * from \"./experimental/document-viewer.js\";\nexport * from \"./experimental/email-viewer.js\";\nexport * from \"./experimental/excel-viewer.js\";\nexport * from \"./experimental/filter-list.js\";\nexport * from \"./experimental/image-viewer.js\";\nexport * from \"./experimental/markdown-renderer.js\";\nexport * from \"./experimental/object-table.js\";\nexport * from \"./experimental/pdf-viewer.js\";\nexport * from \"./experimental/theme.js\";\nexport * from \"./experimental/tiff-renderer.js\";\nexport * from \"./experimental/video-viewer.js\";\nexport * from \"./experimental/xml-viewer.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,+BAA+B;AAC7C,cAAc,mCAAmC;AACjD,cAAc,gCAAgC;AAC9C,cAAc,gCAAgC;AAC9C,cAAc,+BAA+B;AAC7C,cAAc,gCAAgC;AAC9C,cAAc,qCAAqC;AACnD,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B;AAC5C,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B","ignoreList":[]}
1
+ {"version":3,"file":"experimental.js","names":[],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from \"./experimental/action-form.js\";\nexport * from \"./experimental/cbac-picker.js\";\nexport * from \"./experimental/document-viewer.js\";\nexport * from \"./experimental/email-viewer.js\";\nexport * from \"./experimental/excel-viewer.js\";\nexport * from \"./experimental/filter-list.js\";\nexport * from \"./experimental/image-viewer.js\";\nexport * from \"./experimental/markdown-renderer.js\";\nexport * from \"./experimental/object-table.js\";\nexport * from \"./experimental/pdf-viewer.js\";\nexport * from \"./experimental/theme.js\";\nexport * from \"./experimental/tiff-renderer.js\";\nexport * from \"./experimental/video-viewer.js\";\nexport * from \"./experimental/xml-viewer.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,+BAA+B;AAC7C,cAAc,+BAA+B;AAC7C,cAAc,mCAAmC;AACjD,cAAc,gCAAgC;AAC9C,cAAc,gCAAgC;AAC9C,cAAc,+BAA+B;AAC7C,cAAc,gCAAgC;AAC9C,cAAc,qCAAqC;AACnD,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B;AAC5C,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B","ignoreList":[]}