@osdk/react-components 0.2.0-beta.9 → 0.2.1-main-20260407074313

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 (1105) hide show
  1. package/AGENTS.md +26 -0
  2. package/CHANGELOG.md +356 -0
  3. package/README.md +166 -7
  4. package/build/browser/action-form/ActionForm.js +117 -0
  5. package/build/browser/action-form/ActionForm.js.map +1 -0
  6. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  7. package/build/browser/action-form/BaseForm.js +83 -0
  8. package/build/browser/action-form/BaseForm.js.map +1 -0
  9. package/build/browser/action-form/BaseForm.module.css +38 -0
  10. package/build/browser/action-form/BaseForm.module.css.js +8 -0
  11. package/build/browser/action-form/FormField.js +42 -0
  12. package/build/browser/action-form/FormField.js.map +1 -0
  13. package/build/browser/action-form/FormField.module.css +41 -0
  14. package/build/browser/action-form/FormField.module.css.js +10 -0
  15. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  16. package/build/browser/action-form/FormHeader.js +26 -0
  17. package/build/browser/action-form/FormHeader.js.map +1 -0
  18. package/build/browser/action-form/FormHeader.module.css +26 -0
  19. package/build/browser/action-form/FormHeader.module.css.js +6 -0
  20. package/build/browser/action-form/fields/BaseInput.module.css +56 -0
  21. package/build/browser/action-form/fields/BaseInput.module.css.js +6 -0
  22. package/build/browser/action-form/fields/CustomField.js +30 -0
  23. package/build/browser/action-form/fields/CustomField.js.map +1 -0
  24. package/build/browser/action-form/fields/DateCalendar.js +70 -0
  25. package/build/browser/action-form/fields/DateCalendar.js.map +1 -0
  26. package/build/browser/action-form/fields/DateCalendar.module.css +136 -0
  27. package/build/browser/action-form/fields/DateCalendar.module.css.js +22 -0
  28. package/build/browser/action-form/fields/DatetimePickerField.js +98 -0
  29. package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -0
  30. package/build/browser/action-form/fields/DatetimePickerField.module.css +66 -0
  31. package/build/browser/action-form/fields/DatetimePickerField.module.css.js +10 -0
  32. package/build/browser/action-form/fields/DropdownField.js +104 -0
  33. package/build/browser/action-form/fields/DropdownField.js.map +1 -0
  34. package/build/browser/action-form/fields/FieldBridge.js +45 -0
  35. package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
  36. package/build/browser/action-form/fields/FilePickerField.js +119 -0
  37. package/build/browser/action-form/fields/FilePickerField.js.map +1 -0
  38. package/build/browser/action-form/fields/FilePickerField.module.css +132 -0
  39. package/build/browser/action-form/fields/FilePickerField.module.css.js +11 -0
  40. package/build/browser/action-form/fields/FormFieldRenderer.js +128 -0
  41. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
  42. package/build/browser/action-form/fields/LazyDateCalendar.js +27 -0
  43. package/build/browser/action-form/fields/LazyDateCalendar.js.map +1 -0
  44. package/build/browser/action-form/fields/NumberInputField.js +130 -0
  45. package/build/browser/action-form/fields/NumberInputField.js.map +1 -0
  46. package/build/browser/action-form/fields/NumberInputField.module.css +96 -0
  47. package/build/browser/action-form/fields/NumberInputField.module.css.js +9 -0
  48. package/build/browser/action-form/fields/RadioButtonsField.js +57 -0
  49. package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -0
  50. package/build/browser/action-form/fields/RadioButtonsField.module.css +83 -0
  51. package/build/browser/action-form/fields/RadioButtonsField.module.css.js +10 -0
  52. package/build/browser/action-form/fields/TextAreaField.js +50 -0
  53. package/build/browser/action-form/fields/TextAreaField.js.map +1 -0
  54. package/build/browser/action-form/fields/TextInputField.js +39 -0
  55. package/build/browser/action-form/fields/TextInputField.js.map +1 -0
  56. package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
  57. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
  58. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +120 -0
  59. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  60. package/build/browser/base-components/action-button/ActionButton.module.css +0 -4
  61. package/build/browser/base-components/checkbox/Checkbox.js +8 -4
  62. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
  63. package/build/browser/base-components/checkbox/Checkbox.module.css +13 -8
  64. package/build/browser/base-components/combobox/Combobox.js +154 -0
  65. package/build/browser/base-components/combobox/Combobox.js.map +1 -0
  66. package/build/browser/base-components/combobox/Combobox.module.css +364 -0
  67. package/build/browser/base-components/combobox/Combobox.module.css.js +18 -0
  68. package/build/browser/base-components/dialog/Dialog.js +4 -2
  69. package/build/browser/base-components/dialog/Dialog.js.map +1 -1
  70. package/build/browser/base-components/dialog/Dialog.module.css +0 -8
  71. package/build/browser/base-components/draggable-list/DraggableList.module.css +2 -10
  72. package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
  73. package/build/browser/base-components/searchable-menu/SearchableMenu.js +86 -0
  74. package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -0
  75. package/build/browser/base-components/searchable-menu/SearchableMenu.module.css +80 -0
  76. package/build/browser/base-components/searchable-menu/SearchableMenu.module.css.js +10 -0
  77. package/build/browser/base-components/select/Select.js +93 -0
  78. package/build/browser/base-components/select/Select.js.map +1 -0
  79. package/build/browser/base-components/select/Select.module.css +233 -0
  80. package/build/browser/base-components/select/Select.module.css.js +13 -0
  81. package/build/browser/base-components/skeleton/SkeletonBar.js +36 -0
  82. package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -0
  83. package/build/browser/base-components/skeleton/SkeletonBar.module.css +39 -0
  84. package/build/browser/base-components/skeleton/SkeletonBar.module.css.js +7 -0
  85. package/build/browser/base-components/switch/Switch.module.css +14 -15
  86. package/build/browser/base-components/tooltip/Tooltip.js +91 -0
  87. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
  88. package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
  89. package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
  90. package/build/browser/base-components/tooltip/index.js +18 -0
  91. package/build/browser/base-components/tooltip/index.js.map +1 -0
  92. package/build/browser/filter-list/FilterInput.js +141 -0
  93. package/build/browser/filter-list/FilterInput.js.map +1 -0
  94. package/build/browser/filter-list/FilterList.js +142 -0
  95. package/build/browser/filter-list/FilterList.js.map +1 -0
  96. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  97. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  98. package/build/browser/filter-list/base/AddFilterPopover.js +35 -0
  99. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -0
  100. package/build/browser/filter-list/base/AddFilterPopover.module.css +49 -0
  101. package/build/browser/filter-list/base/AddFilterPopover.module.css.js +6 -0
  102. package/build/browser/filter-list/base/BaseFilterList.js +94 -0
  103. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
  104. package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
  105. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
  106. package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
  107. package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
  108. package/build/browser/filter-list/base/ExcludeDropdown.js +62 -0
  109. package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
  110. package/build/browser/filter-list/base/ExcludeDropdown.module.css +96 -0
  111. package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
  112. package/build/browser/filter-list/base/FilterIcons.js +65 -0
  113. package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
  114. package/build/browser/filter-list/base/FilterInputExcludeRow.js +67 -0
  115. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  116. package/build/browser/filter-list/base/FilterList.module.css +84 -6
  117. package/build/browser/filter-list/base/FilterList.module.css.js +6 -0
  118. package/build/browser/filter-list/base/FilterListContent.js +172 -6
  119. package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
  120. package/build/browser/filter-list/base/FilterListContent.module.css +6 -0
  121. package/build/browser/filter-list/base/FilterListContent.module.css.js +2 -1
  122. package/build/browser/filter-list/base/FilterListHeader.js +14 -13
  123. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  124. package/build/browser/filter-list/base/FilterListHeader.module.css +22 -21
  125. package/build/browser/filter-list/base/FilterListHeader.module.css.js +1 -1
  126. package/build/browser/filter-list/base/FilterListItem.js +124 -27
  127. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  128. package/build/browser/filter-list/base/FilterListItem.module.css +173 -0
  129. package/build/browser/filter-list/base/FilterListItem.module.css.js +11 -1
  130. package/build/browser/filter-list/base/SortableFilterListItem.js +64 -0
  131. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
  132. package/build/browser/filter-list/base/index.js +1 -2
  133. package/build/browser/filter-list/base/index.js.map +1 -1
  134. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +5 -7
  135. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  136. package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
  137. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  138. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  139. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
  140. package/build/browser/filter-list/base/inputs/ListogramInput.js +118 -0
  141. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
  142. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +137 -0
  143. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +14 -0
  144. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  145. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  146. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  147. package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css.js +8 -0
  148. package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
  149. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  150. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +6 -6
  151. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +76 -0
  152. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  153. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
  154. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +8 -0
  155. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +57 -0
  156. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  157. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  158. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
  159. package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
  160. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  161. package/build/browser/filter-list/base/inputs/RangeInput.js +159 -0
  162. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
  163. package/build/browser/filter-list/base/inputs/RangeInput.module.css +106 -0
  164. package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
  165. package/build/browser/filter-list/base/inputs/SingleDateInput.js +1 -1
  166. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  167. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +2 -2
  168. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +77 -0
  169. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  170. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
  171. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +10 -0
  172. package/build/browser/filter-list/base/inputs/TextTagsInput.js +133 -0
  173. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  174. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  175. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
  176. package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
  177. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
  178. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +75 -0
  179. package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
  180. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  181. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  182. package/build/browser/filter-list/base/inputs/index.js +5 -1
  183. package/build/browser/filter-list/base/inputs/index.js.map +1 -1
  184. package/build/browser/filter-list/base/inputs/shared.module.css +5 -5
  185. package/build/browser/filter-list/base/inputs/useStableData.js +29 -0
  186. package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
  187. package/build/browser/filter-list/hooks/useFilterListState.js +56 -10
  188. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  189. package/build/browser/filter-list/hooks/useFilterVisibility.js +74 -0
  190. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -0
  191. package/build/browser/filter-list/hooks/usePropertyAggregation.js +98 -0
  192. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  193. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  194. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  195. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +109 -0
  196. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  197. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +496 -0
  198. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  199. package/build/browser/filter-list/inputs/ListogramFilterInput.js +83 -0
  200. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  201. package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
  202. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  203. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +71 -0
  204. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  205. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +109 -0
  206. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  207. package/build/browser/filter-list/inputs/PropertyFilterInput.js +142 -0
  208. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  209. package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
  210. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  211. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +71 -0
  212. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  213. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +70 -0
  214. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  215. package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
  216. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  217. package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
  218. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  219. package/build/browser/filter-list/types/AggregationTypes.js +2 -0
  220. package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
  221. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
  222. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
  223. package/build/browser/filter-list/types/index.js +0 -2
  224. package/build/browser/filter-list/types/index.js.map +1 -1
  225. package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
  226. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
  227. package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
  228. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
  229. package/build/browser/filter-list/utils/filterStateToWhereClause.js +124 -91
  230. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  231. package/build/browser/filter-list/utils/filterValues.js +55 -1
  232. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  233. package/build/browser/filter-list/utils/getFilterKey.js +1 -1
  234. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
  235. package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
  236. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
  237. package/build/browser/object-table/ColumnConfigDialog.module.css +1 -11
  238. package/build/browser/object-table/DefaultCellRenderer.js +23 -5
  239. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  240. package/build/browser/object-table/EditableCell.js +87 -10
  241. package/build/browser/object-table/EditableCell.js.map +1 -1
  242. package/build/browser/object-table/EditableCell.module.css +69 -2
  243. package/build/browser/object-table/EditableCell.module.css.js +6 -1
  244. package/build/browser/object-table/LoadingCell.js +7 -3
  245. package/build/browser/object-table/LoadingCell.js.map +1 -1
  246. package/build/browser/object-table/LoadingCell.module.css +3 -21
  247. package/build/browser/object-table/LoadingCell.module.css.js +1 -2
  248. package/build/browser/object-table/LoadingRow.js +2 -1
  249. package/build/browser/object-table/LoadingRow.js.map +1 -1
  250. package/build/browser/object-table/LoadingStateTable.js +2 -1
  251. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  252. package/build/browser/object-table/MultiColumnSortDialog.js +22 -58
  253. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  254. package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -69
  255. package/build/browser/object-table/MultiColumnSortDialog.module.css.js +0 -5
  256. package/build/browser/object-table/ObjectTable.js +16 -23
  257. package/build/browser/object-table/ObjectTable.js.map +1 -1
  258. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  259. package/build/browser/object-table/SelectionCells.js +1 -0
  260. package/build/browser/object-table/SelectionCells.js.map +1 -1
  261. package/build/browser/object-table/Table.js +23 -15
  262. package/build/browser/object-table/Table.js.map +1 -1
  263. package/build/browser/object-table/Table.module.css +0 -8
  264. package/build/browser/object-table/Table.module.css.js +1 -2
  265. package/build/browser/object-table/TableBody.js +8 -2
  266. package/build/browser/object-table/TableBody.js.map +1 -1
  267. package/build/browser/object-table/TableCell.module.css +2 -9
  268. package/build/browser/object-table/TableEditContainer.js +90 -0
  269. package/build/browser/object-table/TableEditContainer.js.map +1 -0
  270. package/build/browser/object-table/TableEditContainer.module.css +71 -0
  271. package/build/browser/object-table/TableEditContainer.module.css.js +13 -0
  272. package/build/browser/object-table/TableHeader.js +4 -1
  273. package/build/browser/object-table/TableHeader.js.map +1 -1
  274. package/build/browser/object-table/TableHeader.module.css +4 -3
  275. package/build/browser/object-table/TableHeader.module.css.js +1 -0
  276. package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
  277. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  278. package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -12
  279. package/build/browser/object-table/TableRow.js +10 -3
  280. package/build/browser/object-table/TableRow.js.map +1 -1
  281. package/build/browser/object-table/TableRow.module.css +2 -1
  282. package/build/browser/object-table/components/AsyncValueCell.js +35 -0
  283. package/build/browser/object-table/components/AsyncValueCell.js.map +1 -0
  284. package/build/browser/object-table/hooks/useColumnDefs.js +5 -2
  285. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  286. package/build/browser/object-table/hooks/useEditableTable.js +39 -11
  287. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
  288. package/build/browser/object-table/hooks/useFunctionColumnsData.js +135 -0
  289. package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  290. package/build/browser/object-table/hooks/useObjectTableData.js +33 -17
  291. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  292. package/build/browser/object-table/hooks/useRowSelection.js +11 -8
  293. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  294. package/build/browser/object-table/utils/AsyncCellData.js +30 -0
  295. package/build/browser/object-table/utils/AsyncCellData.js.map +1 -0
  296. package/build/browser/object-table/utils/constants.js +1 -0
  297. package/build/browser/object-table/utils/constants.js.map +1 -1
  298. package/build/browser/object-table/utils/getCellId.js +0 -7
  299. package/build/browser/object-table/utils/getCellId.js.map +1 -1
  300. package/build/browser/object-table/utils/types.js.map +1 -1
  301. package/build/browser/pdf-viewer/PdfRenderer.js +88 -0
  302. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -0
  303. package/build/browser/pdf-viewer/PdfViewer.js +179 -0
  304. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -0
  305. package/build/browser/pdf-viewer/PdfViewer.module.css +95 -0
  306. package/build/browser/pdf-viewer/PdfViewer.module.css.js +16 -0
  307. package/build/browser/pdf-viewer/PdfViewerContext.js +108 -0
  308. package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -0
  309. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
  310. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  311. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
  312. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +12 -0
  313. package/build/browser/pdf-viewer/components/PdfViewerContent.js +125 -0
  314. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  315. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  316. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  317. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  318. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css.js +15 -0
  319. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
  320. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  321. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
  322. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
  323. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +78 -0
  324. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  325. package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
  326. package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css.js +10 -0
  327. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  328. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  329. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  330. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css.js +8 -0
  331. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
  332. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  333. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
  334. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css.js +8 -0
  335. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js +221 -0
  336. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  337. package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
  338. package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +13 -0
  339. package/build/browser/pdf-viewer/constants.js +46 -0
  340. package/build/browser/pdf-viewer/constants.js.map +1 -0
  341. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  342. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  343. package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
  344. package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
  345. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +66 -0
  346. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  347. package/build/browser/pdf-viewer/hooks/usePdfFormFields.js +341 -0
  348. package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
  349. package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
  350. package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
  351. package/build/browser/pdf-viewer/hooks/usePdfOutline.js +268 -0
  352. package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  353. package/build/browser/pdf-viewer/hooks/usePdfViewer.js +86 -0
  354. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  355. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  356. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  357. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  358. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  359. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  360. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  361. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  362. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  363. package/build/browser/pdf-viewer/types.js +2 -0
  364. package/build/browser/pdf-viewer/types.js.map +1 -0
  365. package/build/browser/public/experimental.js +34 -0
  366. package/build/browser/public/experimental.js.map +1 -1
  367. package/build/browser/public/primitives.js +20 -0
  368. package/build/browser/public/primitives.js.map +1 -0
  369. package/build/browser/shared/ErrorBoundary.module.css +14 -14
  370. package/build/browser/{filter-list/utils → shared}/assertUnreachable.js +1 -1
  371. package/build/browser/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
  372. package/build/{esm/filter-list/base/inputs → browser/shared}/dateUtils.js +38 -2
  373. package/build/browser/shared/dateUtils.js.map +1 -0
  374. package/build/browser/shared/typedMemo.js +25 -0
  375. package/build/browser/shared/typedMemo.js.map +1 -0
  376. package/build/browser/styles.css +4452 -1405
  377. package/build/cjs/DateCalendar-QWGFKD6J.css +113 -0
  378. package/build/cjs/DateCalendar-QWGFKD6J.css.map +1 -0
  379. package/build/cjs/DateCalendar-R44GMN3O.cjs +67 -0
  380. package/build/cjs/DateCalendar-R44GMN3O.cjs.map +1 -0
  381. package/build/cjs/chunk-HMQTYQEX.cjs +9 -0
  382. package/build/cjs/chunk-HMQTYQEX.cjs.map +1 -0
  383. package/build/cjs/chunk-MRRRZN44.cjs +165 -0
  384. package/build/cjs/chunk-MRRRZN44.cjs.map +1 -0
  385. package/build/cjs/chunk-UZ2E5NRX.cjs +8 -0
  386. package/build/cjs/chunk-UZ2E5NRX.cjs.map +1 -0
  387. package/build/cjs/index.cjs +2 -0
  388. package/build/cjs/public/experimental.cjs +9514 -2011
  389. package/build/cjs/public/experimental.cjs.map +1 -1
  390. package/build/cjs/public/experimental.css +3230 -736
  391. package/build/cjs/public/experimental.css.map +1 -1
  392. package/build/cjs/public/experimental.d.cts +1182 -125
  393. package/build/cjs/public/primitives.cjs +25 -0
  394. package/build/cjs/public/primitives.cjs.map +1 -0
  395. package/build/cjs/public/primitives.css +154 -0
  396. package/build/cjs/public/primitives.css.map +1 -0
  397. package/build/cjs/public/primitives.d.cts +50 -0
  398. package/build/esm/action-form/ActionForm.js +117 -0
  399. package/build/esm/action-form/ActionForm.js.map +1 -0
  400. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  401. package/build/esm/action-form/BaseForm.js +83 -0
  402. package/build/esm/action-form/BaseForm.js.map +1 -0
  403. package/build/esm/action-form/BaseForm.module.css +38 -0
  404. package/build/esm/action-form/FormField.js +42 -0
  405. package/build/esm/action-form/FormField.js.map +1 -0
  406. package/build/esm/action-form/FormField.module.css +41 -0
  407. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  408. package/build/esm/action-form/FormHeader.js +26 -0
  409. package/build/esm/action-form/FormHeader.js.map +1 -0
  410. package/build/esm/action-form/FormHeader.module.css +26 -0
  411. package/build/esm/action-form/fields/BaseInput.module.css +56 -0
  412. package/build/esm/action-form/fields/CustomField.js +30 -0
  413. package/build/esm/action-form/fields/CustomField.js.map +1 -0
  414. package/build/esm/action-form/fields/DateCalendar.js +70 -0
  415. package/build/esm/action-form/fields/DateCalendar.js.map +1 -0
  416. package/build/esm/action-form/fields/DateCalendar.module.css +136 -0
  417. package/build/esm/action-form/fields/DatetimePickerField.js +98 -0
  418. package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -0
  419. package/build/esm/action-form/fields/DatetimePickerField.module.css +66 -0
  420. package/build/esm/action-form/fields/DropdownField.js +104 -0
  421. package/build/esm/action-form/fields/DropdownField.js.map +1 -0
  422. package/build/esm/action-form/fields/FieldBridge.js +45 -0
  423. package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
  424. package/build/esm/action-form/fields/FilePickerField.js +119 -0
  425. package/build/esm/action-form/fields/FilePickerField.js.map +1 -0
  426. package/build/esm/action-form/fields/FilePickerField.module.css +132 -0
  427. package/build/esm/action-form/fields/FormFieldRenderer.js +128 -0
  428. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
  429. package/build/esm/action-form/fields/LazyDateCalendar.js +27 -0
  430. package/build/esm/action-form/fields/LazyDateCalendar.js.map +1 -0
  431. package/build/esm/action-form/fields/NumberInputField.js +130 -0
  432. package/build/esm/action-form/fields/NumberInputField.js.map +1 -0
  433. package/build/esm/action-form/fields/NumberInputField.module.css +96 -0
  434. package/build/esm/action-form/fields/RadioButtonsField.js +57 -0
  435. package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -0
  436. package/build/esm/action-form/fields/RadioButtonsField.module.css +83 -0
  437. package/build/esm/action-form/fields/TextAreaField.js +50 -0
  438. package/build/esm/action-form/fields/TextAreaField.js.map +1 -0
  439. package/build/esm/action-form/fields/TextInputField.js +39 -0
  440. package/build/esm/action-form/fields/TextInputField.js.map +1 -0
  441. package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
  442. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
  443. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +120 -0
  444. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  445. package/build/esm/base-components/action-button/ActionButton.module.css +0 -4
  446. package/build/esm/base-components/checkbox/Checkbox.js +8 -4
  447. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
  448. package/build/esm/base-components/checkbox/Checkbox.module.css +13 -8
  449. package/build/esm/base-components/combobox/Combobox.js +154 -0
  450. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  451. package/build/esm/base-components/combobox/Combobox.module.css +364 -0
  452. package/build/esm/base-components/dialog/Dialog.js +4 -2
  453. package/build/esm/base-components/dialog/Dialog.js.map +1 -1
  454. package/build/esm/base-components/dialog/Dialog.module.css +0 -8
  455. package/build/esm/base-components/draggable-list/DraggableList.module.css +2 -10
  456. package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
  457. package/build/esm/base-components/searchable-menu/SearchableMenu.js +86 -0
  458. package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -0
  459. package/build/esm/base-components/searchable-menu/SearchableMenu.module.css +80 -0
  460. package/build/esm/base-components/select/Select.js +93 -0
  461. package/build/esm/base-components/select/Select.js.map +1 -0
  462. package/build/esm/base-components/select/Select.module.css +233 -0
  463. package/build/esm/base-components/skeleton/SkeletonBar.js +36 -0
  464. package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -0
  465. package/build/esm/base-components/skeleton/SkeletonBar.module.css +39 -0
  466. package/build/esm/base-components/switch/Switch.module.css +14 -15
  467. package/build/esm/base-components/tooltip/Tooltip.js +91 -0
  468. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
  469. package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
  470. package/build/esm/base-components/tooltip/index.js +18 -0
  471. package/build/esm/base-components/tooltip/index.js.map +1 -0
  472. package/build/esm/filter-list/FilterInput.js +141 -0
  473. package/build/esm/filter-list/FilterInput.js.map +1 -0
  474. package/build/esm/filter-list/FilterList.js +142 -0
  475. package/build/esm/filter-list/FilterList.js.map +1 -0
  476. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  477. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  478. package/build/esm/filter-list/base/AddFilterPopover.js +35 -0
  479. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -0
  480. package/build/esm/filter-list/base/AddFilterPopover.module.css +49 -0
  481. package/build/esm/filter-list/base/BaseFilterList.js +94 -0
  482. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
  483. package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
  484. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
  485. package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
  486. package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
  487. package/build/esm/filter-list/base/ExcludeDropdown.js +62 -0
  488. package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
  489. package/build/esm/filter-list/base/ExcludeDropdown.module.css +96 -0
  490. package/build/esm/filter-list/base/FilterIcons.js +65 -0
  491. package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
  492. package/build/esm/filter-list/base/FilterInputExcludeRow.js +67 -0
  493. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  494. package/build/esm/filter-list/base/FilterList.module.css +84 -6
  495. package/build/esm/filter-list/base/FilterListContent.js +172 -6
  496. package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
  497. package/build/esm/filter-list/base/FilterListContent.module.css +6 -0
  498. package/build/esm/filter-list/base/FilterListHeader.js +14 -13
  499. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  500. package/build/esm/filter-list/base/FilterListHeader.module.css +22 -21
  501. package/build/esm/filter-list/base/FilterListItem.js +124 -27
  502. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  503. package/build/esm/filter-list/base/FilterListItem.module.css +173 -0
  504. package/build/esm/filter-list/base/SortableFilterListItem.js +64 -0
  505. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
  506. package/build/esm/filter-list/base/index.js +1 -2
  507. package/build/esm/filter-list/base/index.js.map +1 -1
  508. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +5 -7
  509. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  510. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  511. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  512. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  513. package/build/esm/filter-list/base/inputs/ListogramInput.js +118 -0
  514. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  515. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +137 -0
  516. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js +45 -0
  517. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
  518. package/build/esm/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
  519. package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
  520. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  521. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +6 -6
  522. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +76 -0
  523. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  524. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
  525. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +57 -0
  526. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  527. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
  528. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  529. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  530. package/build/esm/filter-list/base/inputs/RangeInput.js +159 -0
  531. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  532. package/build/esm/filter-list/base/inputs/RangeInput.module.css +106 -0
  533. package/build/esm/filter-list/base/inputs/SingleDateInput.js +1 -1
  534. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  535. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +2 -2
  536. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +77 -0
  537. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  538. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
  539. package/build/esm/filter-list/base/inputs/TextTagsInput.js +133 -0
  540. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  541. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  542. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  543. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  544. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +75 -0
  545. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  546. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  547. package/build/esm/filter-list/base/inputs/index.js +5 -1
  548. package/build/esm/filter-list/base/inputs/index.js.map +1 -1
  549. package/build/esm/filter-list/base/inputs/shared.module.css +5 -5
  550. package/build/esm/filter-list/base/inputs/useStableData.js +29 -0
  551. package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
  552. package/build/esm/filter-list/hooks/useFilterListState.js +56 -10
  553. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  554. package/build/esm/filter-list/hooks/useFilterVisibility.js +74 -0
  555. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -0
  556. package/build/esm/filter-list/hooks/usePropertyAggregation.js +98 -0
  557. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  558. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  559. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  560. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +109 -0
  561. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  562. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +496 -0
  563. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  564. package/build/esm/filter-list/inputs/ListogramFilterInput.js +83 -0
  565. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  566. package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
  567. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  568. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +71 -0
  569. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  570. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +109 -0
  571. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  572. package/build/esm/filter-list/inputs/PropertyFilterInput.js +142 -0
  573. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  574. package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
  575. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  576. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +71 -0
  577. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  578. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +70 -0
  579. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  580. package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
  581. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  582. package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
  583. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  584. package/build/esm/filter-list/types/AggregationTypes.js +2 -0
  585. package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
  586. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
  587. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
  588. package/build/esm/filter-list/types/index.js +0 -2
  589. package/build/esm/filter-list/types/index.js.map +1 -1
  590. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  591. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  592. package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
  593. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
  594. package/build/esm/filter-list/utils/filterStateToWhereClause.js +124 -91
  595. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  596. package/build/esm/filter-list/utils/filterValues.js +55 -1
  597. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  598. package/build/esm/filter-list/utils/getFilterKey.js +1 -1
  599. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
  600. package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
  601. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
  602. package/build/esm/object-table/ColumnConfigDialog.module.css +1 -11
  603. package/build/esm/object-table/DefaultCellRenderer.js +23 -5
  604. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  605. package/build/esm/object-table/EditableCell.js +87 -10
  606. package/build/esm/object-table/EditableCell.js.map +1 -1
  607. package/build/esm/object-table/EditableCell.module.css +69 -2
  608. package/build/esm/object-table/LoadingCell.js +7 -3
  609. package/build/esm/object-table/LoadingCell.js.map +1 -1
  610. package/build/esm/object-table/LoadingCell.module.css +3 -21
  611. package/build/esm/object-table/LoadingRow.js +2 -1
  612. package/build/esm/object-table/LoadingRow.js.map +1 -1
  613. package/build/esm/object-table/LoadingStateTable.js +2 -1
  614. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  615. package/build/esm/object-table/MultiColumnSortDialog.js +22 -58
  616. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  617. package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -69
  618. package/build/esm/object-table/ObjectTable.js +16 -23
  619. package/build/esm/object-table/ObjectTable.js.map +1 -1
  620. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  621. package/build/esm/object-table/SelectionCells.js +1 -0
  622. package/build/esm/object-table/SelectionCells.js.map +1 -1
  623. package/build/esm/object-table/Table.js +23 -15
  624. package/build/esm/object-table/Table.js.map +1 -1
  625. package/build/esm/object-table/Table.module.css +0 -8
  626. package/build/esm/object-table/TableBody.js +8 -2
  627. package/build/esm/object-table/TableBody.js.map +1 -1
  628. package/build/esm/object-table/TableCell.module.css +2 -9
  629. package/build/esm/object-table/TableEditContainer.js +90 -0
  630. package/build/esm/object-table/TableEditContainer.js.map +1 -0
  631. package/build/esm/object-table/TableEditContainer.module.css +71 -0
  632. package/build/esm/object-table/TableHeader.js +4 -1
  633. package/build/esm/object-table/TableHeader.js.map +1 -1
  634. package/build/esm/object-table/TableHeader.module.css +4 -3
  635. package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
  636. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  637. package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -12
  638. package/build/esm/object-table/TableRow.js +10 -3
  639. package/build/esm/object-table/TableRow.js.map +1 -1
  640. package/build/esm/object-table/TableRow.module.css +2 -1
  641. package/build/esm/object-table/components/AsyncValueCell.js +35 -0
  642. package/build/esm/object-table/components/AsyncValueCell.js.map +1 -0
  643. package/build/esm/object-table/hooks/useColumnDefs.js +5 -2
  644. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  645. package/build/esm/object-table/hooks/useEditableTable.js +39 -11
  646. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
  647. package/build/esm/object-table/hooks/useFunctionColumnsData.js +135 -0
  648. package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -0
  649. package/build/esm/object-table/hooks/useObjectTableData.js +33 -17
  650. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  651. package/build/esm/object-table/hooks/useRowSelection.js +11 -8
  652. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  653. package/build/esm/object-table/utils/AsyncCellData.js +30 -0
  654. package/build/esm/object-table/utils/AsyncCellData.js.map +1 -0
  655. package/build/esm/object-table/utils/constants.js +1 -0
  656. package/build/esm/object-table/utils/constants.js.map +1 -1
  657. package/build/esm/object-table/utils/getCellId.js +0 -7
  658. package/build/esm/object-table/utils/getCellId.js.map +1 -1
  659. package/build/esm/object-table/utils/types.js.map +1 -1
  660. package/build/esm/pdf-viewer/PdfRenderer.js +88 -0
  661. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -0
  662. package/build/esm/pdf-viewer/PdfViewer.js +179 -0
  663. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -0
  664. package/build/esm/pdf-viewer/PdfViewer.module.css +95 -0
  665. package/build/esm/pdf-viewer/PdfViewerContext.js +108 -0
  666. package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -0
  667. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
  668. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  669. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
  670. package/build/esm/pdf-viewer/components/PdfViewerContent.js +125 -0
  671. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  672. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  673. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  674. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  675. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
  676. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  677. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
  678. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +78 -0
  679. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  680. package/build/esm/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
  681. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  682. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  683. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  684. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
  685. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  686. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
  687. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js +221 -0
  688. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  689. package/build/esm/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
  690. package/build/esm/pdf-viewer/constants.js +46 -0
  691. package/build/esm/pdf-viewer/constants.js.map +1 -0
  692. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
  693. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
  694. package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
  695. package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
  696. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +66 -0
  697. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
  698. package/build/esm/pdf-viewer/hooks/usePdfFormFields.js +341 -0
  699. package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
  700. package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
  701. package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
  702. package/build/esm/pdf-viewer/hooks/usePdfOutline.js +268 -0
  703. package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  704. package/build/esm/pdf-viewer/hooks/usePdfViewer.js +86 -0
  705. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
  706. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  707. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  708. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
  709. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
  710. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  711. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  712. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
  713. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
  714. package/build/esm/pdf-viewer/types.js +2 -0
  715. package/build/esm/pdf-viewer/types.js.map +1 -0
  716. package/build/esm/public/experimental.js +34 -0
  717. package/build/esm/public/experimental.js.map +1 -1
  718. package/build/esm/public/primitives.js +20 -0
  719. package/build/esm/public/primitives.js.map +1 -0
  720. package/build/esm/shared/ErrorBoundary.module.css +14 -14
  721. package/build/esm/{filter-list/utils → shared}/assertUnreachable.js +1 -1
  722. package/build/esm/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
  723. package/build/{browser/filter-list/base/inputs → esm/shared}/dateUtils.js +38 -2
  724. package/build/esm/shared/dateUtils.js.map +1 -0
  725. package/build/esm/shared/typedMemo.js +25 -0
  726. package/build/esm/shared/typedMemo.js.map +1 -0
  727. package/build/types/action-form/ActionForm.d.ts +4 -0
  728. package/build/types/action-form/ActionForm.d.ts.map +1 -0
  729. package/build/types/action-form/ActionFormApi.d.ts +49 -32
  730. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  731. package/build/types/action-form/BaseForm.d.ts +3 -0
  732. package/build/types/action-form/BaseForm.d.ts.map +1 -0
  733. package/build/types/action-form/FormField.d.ts +11 -0
  734. package/build/types/action-form/FormField.d.ts.map +1 -0
  735. package/build/types/action-form/FormFieldApi.d.ts +152 -51
  736. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  737. package/build/types/action-form/FormHeader.d.ts +6 -0
  738. package/build/types/action-form/FormHeader.d.ts.map +1 -0
  739. package/build/types/action-form/fields/CustomField.d.ts +9 -0
  740. package/build/types/action-form/fields/CustomField.d.ts.map +1 -0
  741. package/build/types/action-form/fields/DateCalendar.d.ts +9 -0
  742. package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -0
  743. package/build/types/action-form/fields/DatetimePickerField.d.ts +3 -0
  744. package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -0
  745. package/build/types/action-form/fields/DropdownField.d.ts +6 -0
  746. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -0
  747. package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
  748. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
  749. package/build/types/action-form/fields/FilePickerField.d.ts +3 -0
  750. package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -0
  751. package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
  752. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
  753. package/build/types/action-form/fields/LazyDateCalendar.d.ts +3 -0
  754. package/build/types/action-form/fields/LazyDateCalendar.d.ts.map +1 -0
  755. package/build/types/action-form/fields/NumberInputField.d.ts +3 -0
  756. package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -0
  757. package/build/types/action-form/fields/RadioButtonsField.d.ts +3 -0
  758. package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -0
  759. package/build/types/action-form/fields/TextAreaField.d.ts +3 -0
  760. package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -0
  761. package/build/types/action-form/fields/TextInputField.d.ts +5 -0
  762. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
  763. package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
  764. package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
  765. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +9 -0
  766. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
  767. package/build/types/base-components/checkbox/Checkbox.d.ts +2 -1
  768. package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
  769. package/build/types/base-components/combobox/Combobox.d.ts +65 -0
  770. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  771. package/build/types/base-components/dialog/Dialog.d.ts +3 -2
  772. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
  773. package/build/types/base-components/searchable-menu/SearchableMenu.d.ts +18 -0
  774. package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -0
  775. package/build/types/base-components/select/Select.d.ts +40 -0
  776. package/build/types/base-components/select/Select.d.ts.map +1 -0
  777. package/build/types/base-components/skeleton/SkeletonBar.d.ts +9 -0
  778. package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -0
  779. package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
  780. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
  781. package/build/types/base-components/tooltip/index.d.ts +1 -0
  782. package/build/types/base-components/tooltip/index.d.ts.map +1 -0
  783. package/build/types/filter-list/FilterInput.d.ts +17 -0
  784. package/build/types/filter-list/FilterInput.d.ts.map +1 -0
  785. package/build/types/filter-list/{base/FilterList.d.ts → FilterList.d.ts} +1 -1
  786. package/build/types/filter-list/FilterList.d.ts.map +1 -0
  787. package/build/types/filter-list/FilterListApi.d.ts +49 -33
  788. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  789. package/build/types/filter-list/FilterListItemApi.d.ts +22 -6
  790. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  791. package/build/types/filter-list/base/AddFilterPopover.d.ts +13 -0
  792. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -0
  793. package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
  794. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
  795. package/build/types/filter-list/base/BaseFilterListApi.d.ts +32 -0
  796. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
  797. package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
  798. package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
  799. package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
  800. package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
  801. package/build/types/filter-list/base/FilterIcons.d.ts +10 -0
  802. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
  803. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +13 -0
  804. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
  805. package/build/types/filter-list/base/FilterListContent.d.ts +9 -6
  806. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
  807. package/build/types/filter-list/base/FilterListHeader.d.ts +3 -2
  808. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  809. package/build/types/filter-list/base/FilterListItem.d.ts +10 -6
  810. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  811. package/build/types/filter-list/base/SortableFilterListItem.d.ts +16 -0
  812. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
  813. package/build/types/filter-list/base/index.d.ts +2 -2
  814. package/build/types/filter-list/base/index.d.ts.map +1 -1
  815. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -1
  816. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +17 -0
  817. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  818. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +21 -0
  819. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  820. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts +2 -0
  821. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -0
  822. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +16 -0
  823. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  824. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +15 -0
  825. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  826. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +17 -0
  827. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  828. package/build/types/filter-list/base/inputs/RangeInput.d.ts +30 -0
  829. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  830. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  831. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +18 -0
  832. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  833. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +18 -0
  834. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  835. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  836. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  837. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  838. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  839. package/build/types/filter-list/base/inputs/index.d.ts +5 -1
  840. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -1
  841. package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
  842. package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
  843. package/build/types/filter-list/hooks/useFilterListState.d.ts +2 -0
  844. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  845. package/build/types/filter-list/hooks/useFilterVisibility.d.ts +10 -0
  846. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -0
  847. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +18 -0
  848. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  849. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
  850. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
  851. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +13 -0
  852. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
  853. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +22 -0
  854. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
  855. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +19 -0
  856. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
  857. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
  858. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
  859. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +15 -0
  860. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
  861. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +13 -0
  862. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
  863. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +19 -0
  864. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
  865. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
  866. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
  867. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +15 -0
  868. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
  869. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +15 -0
  870. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
  871. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
  872. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
  873. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
  874. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
  875. package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
  876. package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
  877. package/build/types/filter-list/types/CustomRendererTypes.d.ts +2 -1
  878. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
  879. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +0 -19
  880. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
  881. package/build/types/filter-list/types/index.d.ts +0 -2
  882. package/build/types/filter-list/types/index.d.ts.map +1 -1
  883. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  884. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  885. package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
  886. package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
  887. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +5 -1
  888. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  889. package/build/types/filter-list/utils/filterValues.d.ts +4 -0
  890. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  891. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
  892. package/build/types/filter-list/utils/getFilterLabel.d.ts +3 -0
  893. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
  894. package/build/types/object-table/DefaultCellRenderer.d.ts +2 -2
  895. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
  896. package/build/types/object-table/EditableCell.d.ts +22 -6
  897. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  898. package/build/types/object-table/LoadingCell.d.ts +1 -0
  899. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  900. package/build/types/object-table/LoadingRow.d.ts.map +1 -1
  901. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  902. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
  903. package/build/types/object-table/ObjectTable.d.ts +1 -9
  904. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  905. package/build/types/object-table/ObjectTableApi.d.ts +82 -22
  906. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  907. package/build/types/object-table/Table.d.ts +10 -10
  908. package/build/types/object-table/Table.d.ts.map +1 -1
  909. package/build/types/object-table/TableBody.d.ts +4 -1
  910. package/build/types/object-table/TableBody.d.ts.map +1 -1
  911. package/build/types/object-table/TableEditContainer.d.ts +9 -0
  912. package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
  913. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  914. package/build/types/object-table/TableRow.d.ts +4 -1
  915. package/build/types/object-table/TableRow.d.ts.map +1 -1
  916. package/build/types/object-table/components/AsyncValueCell.d.ts +5 -0
  917. package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -0
  918. package/build/types/object-table/hooks/useEditableTable.d.ts +4 -9
  919. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
  920. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts +13 -0
  921. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -0
  922. package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -1
  923. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  924. package/build/types/object-table/hooks/useRowSelection.d.ts +3 -2
  925. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  926. package/build/types/object-table/utils/AsyncCellData.d.ts +8 -0
  927. package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -0
  928. package/build/types/object-table/utils/constants.d.ts +1 -0
  929. package/build/types/object-table/utils/constants.d.ts.map +1 -1
  930. package/build/types/object-table/utils/getCellId.d.ts +0 -1
  931. package/build/types/object-table/utils/getCellId.d.ts.map +1 -1
  932. package/build/types/object-table/utils/types.d.ts +28 -3
  933. package/build/types/object-table/utils/types.d.ts.map +1 -1
  934. package/build/types/pdf-viewer/PdfRenderer.d.ts +8 -0
  935. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -0
  936. package/build/types/pdf-viewer/PdfViewer.d.ts +4 -0
  937. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -0
  938. package/build/types/pdf-viewer/PdfViewerContext.d.ts +64 -0
  939. package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -0
  940. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts +9 -0
  941. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
  942. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +26 -0
  943. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -0
  944. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts +11 -0
  945. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -0
  946. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts +11 -0
  947. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -0
  948. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts +12 -0
  949. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -0
  950. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts +7 -0
  951. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -0
  952. package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts +10 -0
  953. package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -0
  954. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts +21 -0
  955. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
  956. package/build/types/pdf-viewer/constants.d.ts +22 -0
  957. package/build/types/pdf-viewer/constants.d.ts.map +1 -0
  958. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts +10 -0
  959. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -0
  960. package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts +5 -0
  961. package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -0
  962. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +9 -0
  963. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -0
  964. package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts +24 -0
  965. package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -0
  966. package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts +36 -0
  967. package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -0
  968. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts +3 -0
  969. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -0
  970. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +9 -0
  971. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -0
  972. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +43 -0
  973. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -0
  974. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts +15 -0
  975. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -0
  976. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts +39 -0
  977. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
  978. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts +15 -0
  979. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -0
  980. package/build/types/pdf-viewer/types.d.ts +210 -0
  981. package/build/types/pdf-viewer/types.d.ts.map +1 -0
  982. package/build/types/public/experimental.d.ts +33 -2
  983. package/build/types/public/experimental.d.ts.map +1 -1
  984. package/build/types/public/primitives.d.ts +3 -0
  985. package/build/types/public/primitives.d.ts.map +1 -0
  986. package/build/types/shared/assertUnreachable.d.ts.map +1 -0
  987. package/build/types/shared/dateUtils.d.ts +31 -0
  988. package/build/types/shared/dateUtils.d.ts.map +1 -0
  989. package/build/types/shared/typedMemo.d.ts +6 -0
  990. package/build/types/shared/typedMemo.d.ts.map +1 -0
  991. package/package.json +23 -10
  992. package/primitives.d.ts +17 -0
  993. package/build/browser/filter-list/__tests__/dateUtils.test.js +0 -55
  994. package/build/browser/filter-list/__tests__/dateUtils.test.js.map +0 -1
  995. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
  996. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
  997. package/build/browser/filter-list/__tests__/getFilterKey.test.js +0 -53
  998. package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +0 -1
  999. package/build/browser/filter-list/__tests__/testUtils.js +0 -203
  1000. package/build/browser/filter-list/__tests__/testUtils.js.map +0 -1
  1001. package/build/browser/filter-list/base/FilterInput.js +0 -225
  1002. package/build/browser/filter-list/base/FilterInput.js.map +0 -1
  1003. package/build/browser/filter-list/base/FilterList.js +0 -73
  1004. package/build/browser/filter-list/base/FilterList.js.map +0 -1
  1005. package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
  1006. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
  1007. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
  1008. package/build/browser/filter-list/types/AddFilterMenuTypes.js +0 -2
  1009. package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +0 -1
  1010. package/build/browser/filter-list/types/FilterPanelTypes.js +0 -2
  1011. package/build/browser/filter-list/types/FilterPanelTypes.js.map +0 -1
  1012. package/build/browser/object-table/__tests__/useEditableTable.test.js +0 -197
  1013. package/build/browser/object-table/__tests__/useEditableTable.test.js.map +0 -1
  1014. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  1015. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  1016. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
  1017. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  1018. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  1019. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  1020. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
  1021. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  1022. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
  1023. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  1024. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
  1025. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  1026. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
  1027. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  1028. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
  1029. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  1030. package/build/esm/filter-list/__tests__/dateUtils.test.js +0 -55
  1031. package/build/esm/filter-list/__tests__/dateUtils.test.js.map +0 -1
  1032. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
  1033. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
  1034. package/build/esm/filter-list/__tests__/getFilterKey.test.js +0 -53
  1035. package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +0 -1
  1036. package/build/esm/filter-list/__tests__/testUtils.js +0 -203
  1037. package/build/esm/filter-list/__tests__/testUtils.js.map +0 -1
  1038. package/build/esm/filter-list/base/FilterInput.js +0 -225
  1039. package/build/esm/filter-list/base/FilterInput.js.map +0 -1
  1040. package/build/esm/filter-list/base/FilterList.js +0 -73
  1041. package/build/esm/filter-list/base/FilterList.js.map +0 -1
  1042. package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
  1043. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
  1044. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
  1045. package/build/esm/filter-list/types/AddFilterMenuTypes.js +0 -2
  1046. package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +0 -1
  1047. package/build/esm/filter-list/types/FilterPanelTypes.js +0 -2
  1048. package/build/esm/filter-list/types/FilterPanelTypes.js.map +0 -1
  1049. package/build/esm/object-table/__tests__/useEditableTable.test.js +0 -197
  1050. package/build/esm/object-table/__tests__/useEditableTable.test.js.map +0 -1
  1051. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  1052. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  1053. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
  1054. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  1055. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  1056. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  1057. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
  1058. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  1059. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
  1060. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  1061. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
  1062. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  1063. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
  1064. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  1065. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
  1066. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  1067. package/build/types/filter-list/__tests__/dateUtils.test.d.ts +0 -1
  1068. package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +0 -1
  1069. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +0 -1
  1070. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +0 -1
  1071. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +0 -1
  1072. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +0 -1
  1073. package/build/types/filter-list/__tests__/testUtils.d.ts +0 -65
  1074. package/build/types/filter-list/__tests__/testUtils.d.ts.map +0 -1
  1075. package/build/types/filter-list/base/FilterInput.d.ts +0 -13
  1076. package/build/types/filter-list/base/FilterInput.d.ts.map +0 -1
  1077. package/build/types/filter-list/base/FilterList.d.ts.map +0 -1
  1078. package/build/types/filter-list/base/inputs/dateUtils.d.ts +0 -17
  1079. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +0 -1
  1080. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +0 -1
  1081. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +0 -1
  1082. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +0 -77
  1083. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +0 -1
  1084. package/build/types/filter-list/types/FilterPanelTypes.d.ts +0 -18
  1085. package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +0 -1
  1086. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +0 -1
  1087. package/build/types/object-table/__tests__/useEditableTable.test.d.ts +0 -1
  1088. package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +0 -1
  1089. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
  1090. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
  1091. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
  1092. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
  1093. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
  1094. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
  1095. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
  1096. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
  1097. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
  1098. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
  1099. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
  1100. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
  1101. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
  1102. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
  1103. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
  1104. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
  1105. /package/build/types/{filter-list/utils → shared}/assertUnreachable.d.ts +0 -0
@@ -19,6 +19,7 @@ import { getRowId, getRowIdFromPrimaryKey } from "../utils/getRowId.js";
19
19
  export function useRowSelection({
20
20
  selectionMode = "none",
21
21
  selectedRows,
22
+ isAllSelected: isAllSelectedProp,
22
23
  onRowSelection,
23
24
  data
24
25
  }) {
@@ -35,21 +36,23 @@ export function useRowSelection({
35
36
  // If uncontrolled, return the internalRowSelection state
36
37
  const rowSelectionState = useMemo(() => {
37
38
  if (!enableRowSelection) return {};
38
- if (isControlled && selectedRows) {
39
- return getRowSelectionState(selectedRows);
39
+ if (isControlled) {
40
+ const selectedRowIds = isAllSelectedProp ? (data ?? []).map(item => item.$primaryKey) : selectedRows;
41
+ return getRowSelectionState(selectedRowIds);
40
42
  }
41
43
  return internalRowSelection;
42
- }, [enableRowSelection, isControlled, selectedRows, internalRowSelection]);
44
+ }, [enableRowSelection, isControlled, selectedRows, isAllSelectedProp, internalRowSelection, data]);
43
45
  const selectedCount = Object.values(rowSelectionState).filter(Boolean).length;
44
46
  const totalCount = data?.length ?? 0;
45
- const isAllSelected = totalCount > 0 && selectedCount === totalCount;
47
+ // In controlled mode, use the prop if provided, otherwise calculate based on selected count
48
+ const isAllSelected = isControlled && isAllSelectedProp !== undefined ? isAllSelectedProp : totalCount > 0 && selectedCount === totalCount;
46
49
  const onToggleAll = useCallback(() => {
47
50
  if (!enableRowSelection || !data) return;
48
51
  const newSelectedRows = isAllSelected ? [] : data.map(item => item.$primaryKey);
49
52
  if (!isControlled) {
50
53
  setInternalRowSelection(getRowSelectionState(newSelectedRows));
51
54
  }
52
- onRowSelection?.(newSelectedRows);
55
+ onRowSelection?.(newSelectedRows, true);
53
56
  }, [enableRowSelection, data, isAllSelected, isControlled, onRowSelection]);
54
57
  const onToggleRow = useCallback((rowId, rowIndex, isShiftClick = false) => {
55
58
  if (!enableRowSelection || !data) return;
@@ -95,13 +98,13 @@ export function useRowSelection({
95
98
  if (!isControlled) {
96
99
  setInternalRowSelection(getRowSelectionState(newSelectedRows));
97
100
  }
98
- onRowSelection?.(newSelectedRows);
99
- }, [enableRowSelection, data, selectionMode, lastSelectedRowIndex, isControlled, rowSelectionState, onRowSelection]);
101
+ onRowSelection?.(newSelectedRows, false);
102
+ }, [enableRowSelection, data, selectionMode, isControlled, onRowSelection, rowSelectionState, lastSelectedRowIndex]);
100
103
  return {
101
104
  rowSelection: rowSelectionState,
102
105
  isAllSelected,
103
106
  enableRowSelection,
104
- hasSelection: selectedCount > 0,
107
+ hasSelection: isAllSelected || selectedCount > 0,
105
108
  onToggleAll,
106
109
  onToggleRow
107
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelection.js","names":["useCallback","useMemo","useState","getRowId","getRowIdFromPrimaryKey","useRowSelection","selectionMode","selectedRows","onRowSelection","data","internalRowSelection","setInternalRowSelection","lastSelectedRowIndex","setLastSelectedRowIndex","isControlled","undefined","enableRowSelection","rowSelectionState","getRowSelectionState","selectedCount","Object","values","filter","Boolean","length","totalCount","isAllSelected","onToggleAll","newSelectedRows","map","item","$primaryKey","onToggleRow","rowId","rowIndex","isShiftClick","getSingleSelectionRows","getRangeSelectionRows","getMultipleSelectionRows","isCurrentlySelected","rowSelection","hasSelection","primaryKey","rowsInRange","getRowsInRange","primaryKeysInRange","currentlySelected","getSelectedPrimaryKeys","forEach","includes","push","i","startIndex","endIndex","start","Math","min","end","max","rows","primaryKeys","reduce","acc","selectionState"],"sources":["useRowSelection.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\nimport type {\n ObjectOrInterfaceDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { RowSelectionState } from \"@tanstack/react-table\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\n\nexport interface UseRowSelectionProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n selectedRows?: PrimaryKeyType<Q>[];\n onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[]) => void;\n data:\n | Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>\n | undefined;\n}\n\nexport interface UseRowSelectionResult {\n rowSelection: RowSelectionState;\n isAllSelected: boolean;\n hasSelection: boolean;\n enableRowSelection: boolean;\n onToggleAll: () => void;\n onToggleRow: (\n rowId: string,\n rowIndex: number,\n isShiftClick?: boolean,\n ) => void;\n}\n\nexport function useRowSelection<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>({\n selectionMode = \"none\",\n selectedRows,\n onRowSelection,\n data,\n}: UseRowSelectionProps<Q, RDPs>): UseRowSelectionResult {\n // The rowSelectionState in uncontrolled mode\n const [internalRowSelection, setInternalRowSelection] = useState<\n RowSelectionState\n >({});\n\n // Used for shift-click behavior in \"multiple\" mode\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState<\n number | null\n >(null);\n\n const isControlled = selectedRows !== undefined;\n const enableRowSelection = selectionMode !== \"none\";\n\n // Row selection state\n // If controlled mode, return the state from selectedRows prop\n // If uncontrolled, return the internalRowSelection state\n const rowSelectionState: RowSelectionState = useMemo(() => {\n if (!enableRowSelection) return {};\n if (isControlled && selectedRows) {\n return getRowSelectionState(selectedRows);\n }\n return internalRowSelection;\n }, [\n enableRowSelection,\n isControlled,\n selectedRows,\n internalRowSelection,\n ]);\n\n const selectedCount = Object.values(rowSelectionState).filter(Boolean).length;\n const totalCount = data?.length ?? 0;\n const isAllSelected = totalCount > 0 && selectedCount === totalCount;\n const hasSelection = selectedCount > 0;\n\n const onToggleAll = useCallback(() => {\n if (!enableRowSelection || !data) return;\n\n const newSelectedRows: PrimaryKeyType<Q>[] = isAllSelected\n ? []\n : data.map(item => item.$primaryKey);\n\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows);\n }, [enableRowSelection, data, isAllSelected, isControlled, onRowSelection]);\n\n const onToggleRow = useCallback(\n (rowId: string, rowIndex: number, isShiftClick: boolean = false) => {\n if (!enableRowSelection || !data) return;\n\n let newSelectedRows: PrimaryKeyType<Q>[] = [];\n\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState,\n });\n } else {\n // Multiple selection mode\n\n // When user does shiftClick but lastSelectedRowIndex is null,\n // it is treated as a normal click in multiple selection\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows(\n { rowId, rowIndex, data, lastSelectedRowIndex, rowSelectionState },\n );\n setLastSelectedRowIndex(rowIndex);\n } else {\n newSelectedRows = getMultipleSelectionRows(\n { rowId, rowIndex, data, rowSelectionState },\n );\n // Only update lastSelectedRowIndex if we're selecting (not deselecting)\n if (\n !isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ) {\n setLastSelectedRowIndex(rowIndex);\n }\n }\n }\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows);\n },\n [\n enableRowSelection,\n data,\n selectionMode,\n lastSelectedRowIndex,\n isControlled,\n rowSelectionState,\n onRowSelection,\n ],\n );\n\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n enableRowSelection,\n hasSelection,\n onToggleAll,\n onToggleRow,\n };\n}\n\ninterface GetSelectedRowsProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n rowId: string;\n rowIndex: number;\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>;\n rowSelectionState: RowSelectionState;\n lastSelectedRowIndex?: number;\n}\n\nfunction getSingleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowId, rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n // Toggle row selection in single selection mode\n const newSelectedRows = rowSelectionState[rowId] ? [] : [primaryKey];\n return newSelectedRows;\n}\n\nfunction getRangeSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { lastSelectedRowIndex, rowIndex, data, rowSelectionState }:\n GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n // This function is only called if lastSelectedRowIndex is not null\n // This condition is added for typechecks only\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n // Add all rows in range to selectedRows if not yet selected\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\n\nfunction isCurrentlySelected<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: Pick<\n GetSelectedRowsProps<Q, RDPs>,\n \"rowIndex\" | \"data\" | \"rowSelectionState\"\n >,\n): boolean {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return currentlySelected.includes(primaryKey);\n}\n\nfunction getMultipleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n // Handles single row toggle in multiple selection mode\n const newSelectedRows =\n isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ? currentlySelected.filter(i => i !== primaryKey)\n : [...currentlySelected, primaryKey];\n return newSelectedRows;\n}\n\n/**\n * Builds a range of rows from startIndex to endIndex\n */\nfunction getRowsInRange<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n startIndex: number,\n endIndex: number,\n): Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>> {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows: Array<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n > = [];\n\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n\n return rows;\n}\n\n/**\n * Converts an array of primary keys to a RowSelectionState object\n */\nfunction getRowSelectionState<Q extends ObjectOrInterfaceDefinition>(\n primaryKeys: PrimaryKeyType<Q>[],\n): RowSelectionState {\n return primaryKeys.reduce<RowSelectionState>(\n (acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n },\n {},\n );\n}\n\n/**\n * Converts from a RowSelectionState object back to an array of primary keys\n */\nfunction getSelectedPrimaryKeys<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n selectionState: RowSelectionState,\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n): PrimaryKeyType<Q>[] {\n return data\n .filter(item => selectionState[getRowId(item)])\n .map(item => item.$primaryKey);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useRowSelection.js","names":["useCallback","useMemo","useState","getRowId","getRowIdFromPrimaryKey","useRowSelection","selectionMode","selectedRows","isAllSelected","isAllSelectedProp","onRowSelection","data","internalRowSelection","setInternalRowSelection","lastSelectedRowIndex","setLastSelectedRowIndex","isControlled","undefined","enableRowSelection","rowSelectionState","selectedRowIds","map","item","$primaryKey","getRowSelectionState","selectedCount","Object","values","filter","Boolean","length","totalCount","onToggleAll","newSelectedRows","onToggleRow","rowId","rowIndex","isShiftClick","getSingleSelectionRows","getRangeSelectionRows","getMultipleSelectionRows","isCurrentlySelected","rowSelection","hasSelection","primaryKey","rowsInRange","getRowsInRange","primaryKeysInRange","currentlySelected","getSelectedPrimaryKeys","forEach","includes","push","i","startIndex","endIndex","start","Math","min","end","max","rows","primaryKeys","reduce","acc","selectionState"],"sources":["useRowSelection.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\nimport type {\n ObjectOrInterfaceDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { RowSelectionState } from \"@tanstack/react-table\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\n\nexport interface UseRowSelectionProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n selectedRows?: PrimaryKeyType<Q>[];\n isAllSelected?: boolean;\n onRowSelection?: (\n selectedRowIds: PrimaryKeyType<Q>[],\n isSelectAll: boolean,\n ) => void;\n data:\n | Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>\n | undefined;\n}\n\nexport interface UseRowSelectionResult {\n rowSelection: RowSelectionState;\n isAllSelected: boolean;\n hasSelection: boolean;\n enableRowSelection: boolean;\n onToggleAll: () => void;\n onToggleRow: (\n rowId: string,\n rowIndex: number,\n isShiftClick?: boolean,\n ) => void;\n}\n\nexport function useRowSelection<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>({\n selectionMode = \"none\",\n selectedRows,\n isAllSelected: isAllSelectedProp,\n onRowSelection,\n data,\n}: UseRowSelectionProps<Q, RDPs>): UseRowSelectionResult {\n // The rowSelectionState in uncontrolled mode\n const [internalRowSelection, setInternalRowSelection] = useState<\n RowSelectionState\n >({});\n\n // Used for shift-click behavior in \"multiple\" mode\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState<\n number | null\n >(null);\n\n const isControlled = selectedRows !== undefined;\n const enableRowSelection = selectionMode !== \"none\";\n\n // Row selection state\n // If controlled mode, return the state from selectedRows prop\n // If uncontrolled, return the internalRowSelection state\n const rowSelectionState: RowSelectionState = useMemo(() => {\n if (!enableRowSelection) return {};\n if (isControlled) {\n const selectedRowIds = isAllSelectedProp\n ? (data ?? []).map(item => item.$primaryKey)\n : selectedRows;\n return getRowSelectionState(selectedRowIds);\n }\n return internalRowSelection;\n }, [\n enableRowSelection,\n isControlled,\n selectedRows,\n isAllSelectedProp,\n internalRowSelection,\n data,\n ]);\n\n const selectedCount = Object.values(rowSelectionState).filter(Boolean).length;\n const totalCount = data?.length ?? 0;\n // In controlled mode, use the prop if provided, otherwise calculate based on selected count\n const isAllSelected = isControlled && isAllSelectedProp !== undefined\n ? isAllSelectedProp\n : totalCount > 0 && selectedCount === totalCount;\n const hasSelection = isAllSelected || selectedCount > 0;\n\n const onToggleAll = useCallback(() => {\n if (!enableRowSelection || !data) return;\n\n const newSelectedRows: PrimaryKeyType<Q>[] = isAllSelected\n ? []\n : data.map(item => item.$primaryKey);\n\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows, true);\n }, [enableRowSelection, data, isAllSelected, isControlled, onRowSelection]);\n\n const onToggleRow = useCallback(\n (rowId: string, rowIndex: number, isShiftClick: boolean = false) => {\n if (!enableRowSelection || !data) return;\n\n let newSelectedRows: PrimaryKeyType<Q>[] = [];\n\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState,\n });\n } else {\n // Multiple selection mode\n\n // When user does shiftClick but lastSelectedRowIndex is null,\n // it is treated as a normal click in multiple selection\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows(\n { rowId, rowIndex, data, lastSelectedRowIndex, rowSelectionState },\n );\n setLastSelectedRowIndex(rowIndex);\n } else {\n newSelectedRows = getMultipleSelectionRows(\n { rowId, rowIndex, data, rowSelectionState },\n );\n // Only update lastSelectedRowIndex if we're selecting (not deselecting)\n if (\n !isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ) {\n setLastSelectedRowIndex(rowIndex);\n }\n }\n }\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows, false);\n },\n [\n enableRowSelection,\n data,\n selectionMode,\n isControlled,\n onRowSelection,\n rowSelectionState,\n lastSelectedRowIndex,\n ],\n );\n\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n enableRowSelection,\n hasSelection,\n onToggleAll,\n onToggleRow,\n };\n}\n\ninterface GetSelectedRowsProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n rowId: string;\n rowIndex: number;\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>;\n rowSelectionState: RowSelectionState;\n lastSelectedRowIndex?: number;\n}\n\nfunction getSingleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowId, rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n // Toggle row selection in single selection mode\n const newSelectedRows = rowSelectionState[rowId] ? [] : [primaryKey];\n return newSelectedRows;\n}\n\nfunction getRangeSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { lastSelectedRowIndex, rowIndex, data, rowSelectionState }:\n GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n // This function is only called if lastSelectedRowIndex is not null\n // This condition is added for typechecks only\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n // Add all rows in range to selectedRows if not yet selected\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\n\nfunction isCurrentlySelected<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: Pick<\n GetSelectedRowsProps<Q, RDPs>,\n \"rowIndex\" | \"data\" | \"rowSelectionState\"\n >,\n): boolean {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return currentlySelected.includes(primaryKey);\n}\n\nfunction getMultipleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n // Handles single row toggle in multiple selection mode\n const newSelectedRows =\n isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ? currentlySelected.filter(i => i !== primaryKey)\n : [...currentlySelected, primaryKey];\n return newSelectedRows;\n}\n\n/**\n * Builds a range of rows from startIndex to endIndex\n */\nfunction getRowsInRange<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n startIndex: number,\n endIndex: number,\n): Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>> {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows: Array<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n > = [];\n\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n\n return rows;\n}\n\n/**\n * Converts an array of primary keys to a RowSelectionState object\n */\nfunction getRowSelectionState<Q extends ObjectOrInterfaceDefinition>(\n primaryKeys: PrimaryKeyType<Q>[],\n): RowSelectionState {\n return primaryKeys.reduce<RowSelectionState>(\n (acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n },\n {},\n );\n}\n\n/**\n * Converts from a RowSelectionState object back to an array of primary keys\n */\nfunction getSelectedPrimaryKeys<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n selectionState: RowSelectionState,\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n): PrimaryKeyType<Q>[] {\n return data\n .filter(item => selectionState[getRowId(item)])\n .map(item => item.$primaryKey);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright 2025 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 const isAsyncCellData = value => {
18
+ return value != null && typeof value === "object" && "__asyncCell" in value && value.__asyncCell === true;
19
+ };
20
+ export const createAsyncCellData = ({
21
+ data,
22
+ isLoading,
23
+ error
24
+ }) => ({
25
+ __asyncCell: true,
26
+ data,
27
+ isLoading,
28
+ error
29
+ });
30
+ //# sourceMappingURL=AsyncCellData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncCellData.js","names":["isAsyncCellData","value","__asyncCell","createAsyncCellData","data","isLoading","error"],"sources":["AsyncCellData.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 interface AsyncCellData {\n readonly __asyncCell: true; // discriminant\n data?: unknown;\n isLoading: boolean;\n error?: unknown;\n}\n\nexport const isAsyncCellData = (value: unknown): value is AsyncCellData => {\n return (\n value != null\n && typeof value === \"object\"\n && \"__asyncCell\" in value\n && value.__asyncCell === true\n );\n};\n\nexport const createAsyncCellData = (\n { data, isLoading, error }: Omit<AsyncCellData, \"__asyncCell\">,\n): AsyncCellData => ({\n __asyncCell: true,\n data,\n isLoading,\n error,\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,OAAO,MAAMA,eAAe,GAAIC,KAAc,IAA6B;EACzE,OACEA,KAAK,IAAI,IAAI,IACV,OAAOA,KAAK,KAAK,QAAQ,IACzB,aAAa,IAAIA,KAAK,IACtBA,KAAK,CAACC,WAAW,KAAK,IAAI;AAEjC,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CACjC;EAAEC,IAAI;EAAEC,SAAS;EAAEC;AAA0C,CAAC,MAC3C;EACnBJ,WAAW,EAAE,IAAI;EACjBE,IAAI;EACJC,SAAS;EACTC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -15,4 +15,5 @@
15
15
  */
16
16
 
17
17
  export const SELECTION_COLUMN_ID = "__selection__";
18
+ export const DEFAULT_COLUMN_WIDTH = 80;
18
19
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["SELECTION_COLUMN_ID"],"sources":["constants.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 const SELECTION_COLUMN_ID = \"__selection__\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,mBAAmB,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["SELECTION_COLUMN_ID","DEFAULT_COLUMN_WIDTH"],"sources":["constants.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 const SELECTION_COLUMN_ID = \"__selection__\";\n\nexport const DEFAULT_COLUMN_WIDTH = 80;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,mBAAmB,GAAG,eAAe;AAElD,OAAO,MAAMC,oBAAoB,GAAG,EAAE","ignoreList":[]}
@@ -17,11 +17,4 @@
17
17
  export function getCellId(cellIdentifier) {
18
18
  return JSON.stringify(cellIdentifier);
19
19
  }
20
- export function getCellIdentifier(cellId) {
21
- const parsed = JSON.parse(cellId);
22
- if (typeof parsed === "object" && parsed != null && "rowId" in parsed && "columnId" in parsed) {
23
- return parsed;
24
- }
25
- throw new Error("Parsed cellId does not have required properties");
26
- }
27
20
  //# sourceMappingURL=getCellId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCellId.js","names":["getCellId","cellIdentifier","JSON","stringify","getCellIdentifier","cellId","parsed","parse","Error"],"sources":["getCellId.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\nimport type { CellIdentifier } from \"./types.js\";\n\nexport function getCellId(cellIdentifier: CellIdentifier): string {\n return JSON.stringify(cellIdentifier);\n}\n\nexport function getCellIdentifier(cellId: string): CellIdentifier {\n const parsed = JSON.parse(cellId);\n if (\n typeof parsed === \"object\" && parsed != null && \"rowId\" in parsed\n && \"columnId\" in parsed\n ) {\n return parsed as CellIdentifier;\n }\n throw new Error(\"Parsed cellId does not have required properties\");\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,SAASA,CAACC,cAA8B,EAAU;EAChE,OAAOC,IAAI,CAACC,SAAS,CAACF,cAAc,CAAC;AACvC;AAEA,OAAO,SAASG,iBAAiBA,CAACC,MAAc,EAAkB;EAChE,MAAMC,MAAM,GAAGJ,IAAI,CAACK,KAAK,CAACF,MAAM,CAAC;EACjC,IACE,OAAOC,MAAM,KAAK,QAAQ,IAAIA,MAAM,IAAI,IAAI,IAAI,OAAO,IAAIA,MAAM,IAC9D,UAAU,IAAIA,MAAM,EACvB;IACA,OAAOA,MAAM;EACf;EACA,MAAM,IAAIE,KAAK,CAAC,iDAAiD,CAAC;AACpE","ignoreList":[]}
1
+ {"version":3,"file":"getCellId.js","names":["getCellId","cellIdentifier","JSON","stringify"],"sources":["getCellId.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\nimport type { CellIdentifier } from \"./types.js\";\n\nexport function getCellId(cellIdentifier: CellIdentifier): string {\n return JSON.stringify(cellIdentifier);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,SAASA,CAACC,cAA8B,EAAU;EAChE,OAAOC,IAAI,CAACC,SAAS,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["types.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\nimport type { RowData } from \"@tanstack/react-table\";\n\nexport interface ColumnOption {\n id: string;\n name: string;\n canSort: boolean;\n}\n\nexport interface CellIdentifier {\n rowId: string;\n columnId: string;\n}\n\nexport interface CellValueState<TData extends RowData = unknown> {\n newValue: TData;\n oldValue: TData;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["types.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\nimport type { RowData } from \"@tanstack/react-table\";\n\nexport interface ColumnOption {\n id: string;\n name: string;\n canSort: boolean;\n}\n\nexport interface CellIdentifier {\n rowId: string;\n columnId: string;\n}\n\nexport interface CellEditInfo<\n TData extends RowData = unknown,\n CellValue = unknown,\n> extends CellIdentifier {\n newValue: CellValue | null;\n oldValue: CellValue | null;\n originalRowData: TData;\n}\n\nexport type EditModeState =\n | { type: \"always\"; isActive: true }\n | { type: \"manual\"; isActive: boolean; setActive: (value: boolean) => void };\n\nexport interface EditableConfig<\n TData extends RowData = unknown,\n CellValue = unknown,\n> {\n cellEdits: Record<string, CellEditInfo<TData, CellValue>>;\n onCellEdit: (\n cellId: string,\n info: CellEditInfo<TData, CellValue>,\n ) => void;\n onSubmitEdits?: () => Promise<boolean>;\n clearEdits: () => void;\n editModeState: EditModeState;\n onCellValidationError: (\n cellId: string,\n error: string,\n ) => void;\n validationErrors: Map<string, string>;\n clearCellValidationError: (cellId: string) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ /*
3
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import { Error as ErrorIcon, Spin } from "@blueprintjs/icons";
19
+ import classnames from "classnames";
20
+ import React, { useEffect, useState } from "react";
21
+ import { BasePdfViewer } from "./PdfViewer.js";
22
+ import styles from "./PdfViewer.module.css.js";
23
+ async function fetchMediaContents(media) {
24
+ const result = await media.fetchContents();
25
+ return result.arrayBuffer();
26
+ }
27
+ export function PdfViewer({
28
+ media,
29
+ className,
30
+ ...pdfViewerProps
31
+ }) {
32
+ const [src, setSrc] = useState(undefined);
33
+ const [loading, setLoading] = useState(true);
34
+ const [error, setError] = useState(undefined);
35
+
36
+ // This is required until we either support React 19+ or a data fetching hook
37
+ useEffect(function () {
38
+ let cancelled = false;
39
+ setLoading(true);
40
+ setError(undefined);
41
+ setSrc(undefined);
42
+ fetchMediaContents(media).then(buffer => {
43
+ if (!cancelled) {
44
+ setSrc(buffer);
45
+ setLoading(false);
46
+ }
47
+ }).catch(err => {
48
+ if (!cancelled) {
49
+ setError(err instanceof Error ? err : new Error(String(err)));
50
+ setLoading(false);
51
+ }
52
+ });
53
+ return () => {
54
+ cancelled = true;
55
+ };
56
+ }, [media]);
57
+ const rootClassName = classnames(styles.pdfViewer, className);
58
+ if (loading) {
59
+ return /*#__PURE__*/React.createElement("div", {
60
+ className: rootClassName
61
+ }, /*#__PURE__*/React.createElement("div", {
62
+ className: styles.loadingContainer
63
+ }, /*#__PURE__*/React.createElement(Spin, {
64
+ className: styles.spinnerIcon
65
+ }), "Loading\u2026"));
66
+ }
67
+ if (error != null) {
68
+ return /*#__PURE__*/React.createElement("div", {
69
+ className: rootClassName
70
+ }, /*#__PURE__*/React.createElement("div", {
71
+ className: styles.errorContainer
72
+ }, /*#__PURE__*/React.createElement(ErrorIcon, {
73
+ className: styles.errorIcon
74
+ }), "Failed to load PDF: ", error.message));
75
+ }
76
+ if (src == null) {
77
+ return /*#__PURE__*/React.createElement("div", {
78
+ className: rootClassName
79
+ }, /*#__PURE__*/React.createElement("div", {
80
+ className: styles.loadingContainer
81
+ }, "No document"));
82
+ }
83
+ return /*#__PURE__*/React.createElement(BasePdfViewer, _extends({
84
+ src: src,
85
+ className: className
86
+ }, pdfViewerProps));
87
+ }
88
+ //# sourceMappingURL=PdfRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PdfRenderer.js","names":["Error","ErrorIcon","Spin","classnames","React","useEffect","useState","BasePdfViewer","styles","fetchMediaContents","media","result","fetchContents","arrayBuffer","PdfViewer","className","pdfViewerProps","src","setSrc","undefined","loading","setLoading","error","setError","cancelled","then","buffer","catch","err","String","rootClassName","pdfViewer","createElement","loadingContainer","spinnerIcon","errorContainer","errorIcon","message","_extends"],"sources":["PdfRenderer.tsx"],"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\nimport { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport type { Media } from \"@osdk/api\";\nimport classnames from \"classnames\";\nimport React, { useEffect, useState } from \"react\";\nimport { BasePdfViewer } from \"./PdfViewer.js\";\nimport styles from \"./PdfViewer.module.css\";\nimport type { PdfViewerProps } from \"./types.js\";\n\nasync function fetchMediaContents(media: Media): Promise<ArrayBuffer> {\n const result = await media.fetchContents();\n return result.arrayBuffer();\n}\n\nexport interface PdfViewerMediaProps extends Omit<PdfViewerProps, \"src\"> {\n /** The Media object to fetch PDF contents from */\n media: Media;\n}\n\nexport function PdfViewer({\n media,\n className,\n ...pdfViewerProps\n}: PdfViewerMediaProps): React.ReactElement {\n const [src, setSrc] = useState<ArrayBuffer | undefined>(undefined);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n\n // This is required until we either support React 19+ or a data fetching hook\n useEffect(function fetchMediaSource() {\n let cancelled = false;\n setLoading(true);\n setError(undefined);\n setSrc(undefined);\n\n fetchMediaContents(media)\n .then((buffer) => {\n if (!cancelled) {\n setSrc(buffer);\n setLoading(false);\n }\n })\n .catch((err: unknown) => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [media]);\n\n const rootClassName = classnames(styles.pdfViewer, className);\n\n if (loading) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>\n <Spin className={styles.spinnerIcon} />\n Loading…\n </div>\n </div>\n );\n }\n\n if (error != null) {\n return (\n <div className={rootClassName}>\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n Failed to load PDF: {error.message}\n </div>\n </div>\n );\n }\n\n if (src == null) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>No document</div>\n </div>\n );\n }\n\n return (\n <BasePdfViewer\n src={src}\n className={className}\n {...pdfViewerProps}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,179 @@
1
+ /*
2
+ * Copyright 2025 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 { Error as ErrorIcon, Spin } from "@blueprintjs/icons";
18
+ import classnames from "classnames";
19
+ import "pdfjs-dist/web/pdf_viewer.css";
20
+ import React, { forwardRef, useImperativeHandle } from "react";
21
+ import { createPortal } from "react-dom";
22
+ import { PdfViewerAnnotationLayer } from "./components/PdfViewerAnnotationLayer.js";
23
+ import { PdfViewerOutlineSidebar } from "./components/PdfViewerOutlineSidebar.js";
24
+ import { PdfViewerSearchBar } from "./components/PdfViewerSearchBar.js";
25
+ import { PdfViewerSidebar } from "./components/PdfViewerSidebar.js";
26
+ import { PdfViewerToolbar } from "./components/PdfViewerToolbar.js";
27
+ import { EMPTY_ANNOTATION_ARRAY } from "./constants.js";
28
+ import { usePdfAnnotationsByPage } from "./hooks/usePdfAnnotationsByPage.js";
29
+ import { usePdfFormFields } from "./hooks/usePdfFormFields.js";
30
+ import { usePdfHighlightMode } from "./hooks/usePdfHighlightMode.js";
31
+ import { usePdfViewerState } from "./hooks/usePdfViewerState.js";
32
+ import styles from "./PdfViewer.module.css.js";
33
+ export const BasePdfViewer = /*#__PURE__*/forwardRef(function ({
34
+ src,
35
+ annotations = EMPTY_ANNOTATION_ARRAY,
36
+ onAnnotationClick,
37
+ onDownload,
38
+ enableHighlight = false,
39
+ onTextHighlight,
40
+ onHighlightDelete,
41
+ formData,
42
+ onFormSubmit,
43
+ onFormChange,
44
+ initialPage = 1,
45
+ initialScale = 1.0,
46
+ initialSidebarOpen = false,
47
+ enableDownload = false,
48
+ sidebarMode: sidebarModeProp = "thumbnails",
49
+ outlineIcons,
50
+ className
51
+ }, ref) {
52
+ const viewer = usePdfViewerState({
53
+ src,
54
+ initialPage,
55
+ initialScale,
56
+ initialSidebarOpen,
57
+ sidebarMode: sidebarModeProp,
58
+ onDownload
59
+ });
60
+ const {
61
+ highlightModeActive,
62
+ toggleHighlightMode,
63
+ deleteHighlight
64
+ } = usePdfHighlightMode({
65
+ pdfViewerRef: viewer.pdfViewerRef,
66
+ document: viewer.document,
67
+ enabled: enableHighlight,
68
+ onTextHighlight,
69
+ onHighlightDelete
70
+ });
71
+ useImperativeHandle(ref, () => ({
72
+ scrollToPage: viewer.scrollToPage,
73
+ deleteHighlight
74
+ }), [viewer.scrollToPage, deleteHighlight]);
75
+ const {
76
+ hasFormFields,
77
+ submitFormData
78
+ } = usePdfFormFields({
79
+ pdfViewerRef: viewer.pdfViewerRef,
80
+ eventBusRef: viewer.eventBusRef,
81
+ document: viewer.document,
82
+ formData,
83
+ onFormSubmit,
84
+ onFormChange
85
+ });
86
+ const annotationsByPage = usePdfAnnotationsByPage(annotations);
87
+ const rootClassName = classnames(styles.pdfViewer, className);
88
+ if (viewer.loading) {
89
+ return /*#__PURE__*/React.createElement("div", {
90
+ className: rootClassName
91
+ }, /*#__PURE__*/React.createElement("div", {
92
+ className: styles.loadingContainer
93
+ }, /*#__PURE__*/React.createElement(Spin, {
94
+ className: styles.spinnerIcon
95
+ }), "Loading\u2026"));
96
+ }
97
+ if (viewer.error != null) {
98
+ return /*#__PURE__*/React.createElement("div", {
99
+ className: rootClassName
100
+ }, /*#__PURE__*/React.createElement("div", {
101
+ className: styles.errorContainer
102
+ }, /*#__PURE__*/React.createElement(ErrorIcon, {
103
+ className: styles.errorIcon
104
+ }), "Failed to load PDF: ", viewer.error.message));
105
+ }
106
+ if (viewer.document == null) {
107
+ return /*#__PURE__*/React.createElement("div", {
108
+ className: rootClassName
109
+ }, /*#__PURE__*/React.createElement("div", {
110
+ className: styles.loadingContainer
111
+ }, "No document"));
112
+ }
113
+ return /*#__PURE__*/React.createElement("div", {
114
+ className: rootClassName
115
+ }, /*#__PURE__*/React.createElement(PdfViewerToolbar, {
116
+ currentPage: viewer.currentPage,
117
+ numPages: viewer.numPages,
118
+ scale: viewer.scale,
119
+ sidebarOpen: viewer.sidebarOpen,
120
+ onPageChange: viewer.scrollToPage,
121
+ onScaleChange: viewer.setScale,
122
+ onSearchOpen: viewer.search.openSearch,
123
+ onSidebarToggle: viewer.toggleSidebar,
124
+ onDownload: viewer.download,
125
+ enableDownload: enableDownload,
126
+ onRotateLeft: viewer.rotateLeft,
127
+ onRotateRight: viewer.rotateRight,
128
+ enableHighlight: enableHighlight,
129
+ highlightModeActive: highlightModeActive,
130
+ onHighlightToggle: toggleHighlightMode,
131
+ enableFormSave: onFormSubmit != null && hasFormFields,
132
+ onFormSave: submitFormData
133
+ }), viewer.search.isSearchOpen && /*#__PURE__*/React.createElement(PdfViewerSearchBar, {
134
+ query: viewer.search.query,
135
+ totalMatches: viewer.search.totalMatches,
136
+ currentMatchIndex: viewer.search.currentMatchIndex,
137
+ onQueryChange: viewer.search.setQuery,
138
+ onNext: viewer.search.nextMatch,
139
+ onPrev: viewer.search.prevMatch,
140
+ onClose: viewer.search.closeSearch
141
+ }), /*#__PURE__*/React.createElement("div", {
142
+ className: styles.contentArea
143
+ }, viewer.sidebarOpen && viewer.sidebarMode === "thumbnails" && /*#__PURE__*/React.createElement(PdfViewerSidebar, {
144
+ document: viewer.document,
145
+ numPages: viewer.numPages,
146
+ currentPage: viewer.currentPage,
147
+ onPageClick: viewer.scrollToPage,
148
+ sidebarMode: viewer.sidebarMode,
149
+ onSidebarModeChange: viewer.setSidebarMode
150
+ }), viewer.sidebarOpen && viewer.sidebarMode === "outline" && /*#__PURE__*/React.createElement(PdfViewerOutlineSidebar, {
151
+ outlineItems: viewer.outlineItems,
152
+ currentPage: viewer.currentPage,
153
+ onItemClick: viewer.scrollToPage,
154
+ sidebarMode: viewer.sidebarMode,
155
+ onSidebarModeChange: viewer.setSidebarMode,
156
+ outlineIcons: outlineIcons
157
+ }), /*#__PURE__*/React.createElement("div", {
158
+ className: styles.scrollContainerWrapper
159
+ }, /*#__PURE__*/React.createElement("div", {
160
+ ref: viewer.containerRef,
161
+ className: styles.scrollContainer
162
+ }, /*#__PURE__*/React.createElement("div", {
163
+ ref: viewer.viewerRef,
164
+ className: "pdfViewer"
165
+ }), viewer.portalTargets.map(target => {
166
+ const pageAnnotations = annotationsByPage[target.pageNumber] ?? EMPTY_ANNOTATION_ARRAY;
167
+ if (pageAnnotations.length === 0) {
168
+ return null;
169
+ }
170
+ return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(PdfViewerAnnotationLayer, {
171
+ key: target.pageNumber,
172
+ annotations: pageAnnotations,
173
+ pageHeight: target.pageHeight,
174
+ scale: target.scale,
175
+ onAnnotationClick: onAnnotationClick
176
+ }), target.container);
177
+ })))));
178
+ });
179
+ //# sourceMappingURL=PdfViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PdfViewer.js","names":["Error","ErrorIcon","Spin","classnames","React","forwardRef","useImperativeHandle","createPortal","PdfViewerAnnotationLayer","PdfViewerOutlineSidebar","PdfViewerSearchBar","PdfViewerSidebar","PdfViewerToolbar","EMPTY_ANNOTATION_ARRAY","usePdfAnnotationsByPage","usePdfFormFields","usePdfHighlightMode","usePdfViewerState","styles","BasePdfViewer","src","annotations","onAnnotationClick","onDownload","enableHighlight","onTextHighlight","onHighlightDelete","formData","onFormSubmit","onFormChange","initialPage","initialScale","initialSidebarOpen","enableDownload","sidebarMode","sidebarModeProp","outlineIcons","className","ref","viewer","highlightModeActive","toggleHighlightMode","deleteHighlight","pdfViewerRef","document","enabled","scrollToPage","hasFormFields","submitFormData","eventBusRef","annotationsByPage","rootClassName","pdfViewer","loading","createElement","loadingContainer","spinnerIcon","error","errorContainer","errorIcon","message","currentPage","numPages","scale","sidebarOpen","onPageChange","onScaleChange","setScale","onSearchOpen","search","openSearch","onSidebarToggle","toggleSidebar","download","onRotateLeft","rotateLeft","onRotateRight","rotateRight","onHighlightToggle","enableFormSave","onFormSave","isSearchOpen","query","totalMatches","currentMatchIndex","onQueryChange","setQuery","onNext","nextMatch","onPrev","prevMatch","onClose","closeSearch","contentArea","onPageClick","onSidebarModeChange","setSidebarMode","outlineItems","onItemClick","scrollContainerWrapper","containerRef","scrollContainer","viewerRef","portalTargets","map","target","pageAnnotations","pageNumber","length","key","pageHeight","container"],"sources":["PdfViewer.tsx"],"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\nimport { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport \"pdfjs-dist/web/pdf_viewer.css\";\nimport React, { forwardRef, useImperativeHandle } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { PdfViewerAnnotationLayer } from \"./components/PdfViewerAnnotationLayer.js\";\nimport { PdfViewerOutlineSidebar } from \"./components/PdfViewerOutlineSidebar.js\";\nimport { PdfViewerSearchBar } from \"./components/PdfViewerSearchBar.js\";\nimport { PdfViewerSidebar } from \"./components/PdfViewerSidebar.js\";\nimport { PdfViewerToolbar } from \"./components/PdfViewerToolbar.js\";\nimport { EMPTY_ANNOTATION_ARRAY } from \"./constants.js\";\nimport { usePdfAnnotationsByPage } from \"./hooks/usePdfAnnotationsByPage.js\";\nimport { usePdfFormFields } from \"./hooks/usePdfFormFields.js\";\nimport { usePdfHighlightMode } from \"./hooks/usePdfHighlightMode.js\";\nimport { usePdfViewerState } from \"./hooks/usePdfViewerState.js\";\nimport styles from \"./PdfViewer.module.css\";\nimport type { PdfViewerHandle, PdfViewerProps } from \"./types.js\";\n\nexport const BasePdfViewer: React.ForwardRefExoticComponent<\n PdfViewerProps & React.RefAttributes<PdfViewerHandle>\n> = forwardRef<PdfViewerHandle, PdfViewerProps>(\n function BasePdfViewer({\n src,\n annotations = EMPTY_ANNOTATION_ARRAY,\n onAnnotationClick,\n onDownload,\n enableHighlight = false,\n onTextHighlight,\n onHighlightDelete,\n formData,\n onFormSubmit,\n onFormChange,\n initialPage = 1,\n initialScale = 1.0,\n initialSidebarOpen = false,\n enableDownload = false,\n sidebarMode: sidebarModeProp = \"thumbnails\",\n outlineIcons,\n className,\n }, ref) {\n const viewer = usePdfViewerState({\n src,\n initialPage,\n initialScale,\n initialSidebarOpen,\n sidebarMode: sidebarModeProp,\n onDownload,\n });\n\n const { highlightModeActive, toggleHighlightMode, deleteHighlight } =\n usePdfHighlightMode({\n pdfViewerRef: viewer.pdfViewerRef,\n document: viewer.document,\n enabled: enableHighlight,\n onTextHighlight,\n onHighlightDelete,\n });\n\n useImperativeHandle(ref, () => ({\n scrollToPage: viewer.scrollToPage,\n deleteHighlight,\n }), [viewer.scrollToPage, deleteHighlight]);\n\n const { hasFormFields, submitFormData } = usePdfFormFields({\n pdfViewerRef: viewer.pdfViewerRef,\n eventBusRef: viewer.eventBusRef,\n document: viewer.document,\n formData,\n onFormSubmit,\n onFormChange,\n });\n\n const annotationsByPage = usePdfAnnotationsByPage(annotations);\n\n const rootClassName = classnames(styles.pdfViewer, className);\n\n if (viewer.loading) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>\n <Spin className={styles.spinnerIcon} />\n Loading…\n </div>\n </div>\n );\n }\n\n if (viewer.error != null) {\n return (\n <div className={rootClassName}>\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n Failed to load PDF: {viewer.error.message}\n </div>\n </div>\n );\n }\n\n if (viewer.document == null) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>No document</div>\n </div>\n );\n }\n\n return (\n <div className={rootClassName}>\n <PdfViewerToolbar\n currentPage={viewer.currentPage}\n numPages={viewer.numPages}\n scale={viewer.scale}\n sidebarOpen={viewer.sidebarOpen}\n onPageChange={viewer.scrollToPage}\n onScaleChange={viewer.setScale}\n onSearchOpen={viewer.search.openSearch}\n onSidebarToggle={viewer.toggleSidebar}\n onDownload={viewer.download}\n enableDownload={enableDownload}\n onRotateLeft={viewer.rotateLeft}\n onRotateRight={viewer.rotateRight}\n enableHighlight={enableHighlight}\n highlightModeActive={highlightModeActive}\n onHighlightToggle={toggleHighlightMode}\n enableFormSave={onFormSubmit != null && hasFormFields}\n onFormSave={submitFormData}\n />\n {viewer.search.isSearchOpen && (\n <PdfViewerSearchBar\n query={viewer.search.query}\n totalMatches={viewer.search.totalMatches}\n currentMatchIndex={viewer.search.currentMatchIndex}\n onQueryChange={viewer.search.setQuery}\n onNext={viewer.search.nextMatch}\n onPrev={viewer.search.prevMatch}\n onClose={viewer.search.closeSearch}\n />\n )}\n <div className={styles.contentArea}>\n {viewer.sidebarOpen && viewer.sidebarMode === \"thumbnails\" && (\n <PdfViewerSidebar\n document={viewer.document}\n numPages={viewer.numPages}\n currentPage={viewer.currentPage}\n onPageClick={viewer.scrollToPage}\n sidebarMode={viewer.sidebarMode}\n onSidebarModeChange={viewer.setSidebarMode}\n />\n )}\n {viewer.sidebarOpen && viewer.sidebarMode === \"outline\" && (\n <PdfViewerOutlineSidebar\n outlineItems={viewer.outlineItems}\n currentPage={viewer.currentPage}\n onItemClick={viewer.scrollToPage}\n sidebarMode={viewer.sidebarMode}\n onSidebarModeChange={viewer.setSidebarMode}\n outlineIcons={outlineIcons}\n />\n )}\n <div className={styles.scrollContainerWrapper}>\n <div ref={viewer.containerRef} className={styles.scrollContainer}>\n <div ref={viewer.viewerRef} className=\"pdfViewer\" />\n {viewer.portalTargets.map((target) => {\n const pageAnnotations = annotationsByPage[target.pageNumber]\n ?? EMPTY_ANNOTATION_ARRAY;\n if (pageAnnotations.length === 0) {\n return null;\n }\n return createPortal(\n <PdfViewerAnnotationLayer\n key={target.pageNumber}\n annotations={pageAnnotations}\n pageHeight={target.pageHeight}\n scale={target.scale}\n onAnnotationClick={onAnnotationClick}\n />,\n target.container,\n );\n })}\n </div>\n </div>\n </div>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ .pdfViewer {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ height: 100%;
6
+ background-color: var(--osdk-pdf-viewer-bg);
7
+ border: var(--osdk-pdf-viewer-border);
8
+ border-radius: var(--osdk-surface-border-radius);
9
+ overflow: hidden;
10
+ position: relative;
11
+ }
12
+
13
+ .contentArea {
14
+ display: flex;
15
+ flex: 1;
16
+ overflow: hidden;
17
+ position: relative;
18
+ }
19
+
20
+ .scrollContainerWrapper {
21
+ flex: 1;
22
+ position: relative;
23
+ overflow: hidden;
24
+ }
25
+
26
+ .scrollContainer {
27
+ overflow: auto;
28
+ position: absolute;
29
+ top: 0;
30
+ left: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ }
34
+
35
+ .loadingContainer {
36
+ display: flex;
37
+ flex-direction: column;
38
+ align-items: center;
39
+ justify-content: center;
40
+ gap: calc(var(--osdk-surface-spacing) * 2);
41
+ height: 100%;
42
+ font-family: var(--osdk-typography-family-default);
43
+ font-size: var(--osdk-typography-size-body-medium);
44
+ color: var(--osdk-typography-color-muted);
45
+ }
46
+
47
+ .errorContainer {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ gap: var(--osdk-surface-spacing);
52
+ height: 100%;
53
+ font-family: var(--osdk-typography-family-default);
54
+ font-size: var(--osdk-typography-size-body-medium);
55
+ color: var(--osdk-typography-color-danger-rest);
56
+ }
57
+
58
+ @keyframes spin {
59
+ from {
60
+ transform: rotate(0deg);
61
+ }
62
+ to {
63
+ transform: rotate(360deg);
64
+ }
65
+ }
66
+
67
+ .spinnerIcon {
68
+ animation: spin 1s linear infinite;
69
+ color: var(--osdk-typography-color-muted);
70
+ }
71
+
72
+ .errorIcon {
73
+ flex-shrink: 0;
74
+ }
75
+
76
+ /* PDFViewer page overrides */
77
+ :global(.pdfViewer .page) {
78
+ box-shadow: var(--osdk-pdf-viewer-page-shadow);
79
+ background-color: var(--osdk-palette-white);
80
+ margin: 0 auto var(--osdk-pdf-viewer-page-gap);
81
+ }
82
+
83
+ /* Search highlight overrides — match pdf.js FindController CSS classes */
84
+ :global(.textLayer) .highlight {
85
+ background-color: var(--osdk-pdf-viewer-search-highlight);
86
+ border-radius: 1px;
87
+ }
88
+
89
+ :global(.textLayer) .highlight.selected {
90
+ background-color: var(--osdk-pdf-viewer-search-active);
91
+ }
92
+
93
+ :global(.textLayer)::selection {
94
+ background: var(--osdk-intent-primary-rest);
95
+ }