@osdk/react-components 0.2.0-beta.21 → 0.2.0-beta.23

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 (510) hide show
  1. package/AGENTS.md +14 -97
  2. package/CHANGELOG.md +35 -0
  3. package/README.md +23 -7
  4. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  5. package/build/browser/action-form/BaseForm.js +18 -5
  6. package/build/browser/action-form/BaseForm.js.map +1 -1
  7. package/build/browser/action-form/BaseForm.module.css +38 -0
  8. package/build/browser/action-form/BaseForm.module.css.js +8 -0
  9. package/build/browser/action-form/FormField.js +42 -0
  10. package/build/browser/action-form/FormField.js.map +1 -0
  11. package/build/browser/action-form/FormField.module.css +41 -0
  12. package/build/browser/action-form/FormField.module.css.js +10 -0
  13. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  14. package/build/browser/action-form/FormHeader.js +26 -0
  15. package/build/browser/action-form/FormHeader.js.map +1 -0
  16. package/build/browser/action-form/FormHeader.module.css +26 -0
  17. package/build/browser/action-form/FormHeader.module.css.js +6 -0
  18. package/build/browser/action-form/fields/DateCalendar.js +70 -0
  19. package/build/browser/action-form/fields/DateCalendar.js.map +1 -0
  20. package/build/browser/action-form/fields/DateCalendar.module.css +136 -0
  21. package/build/browser/action-form/fields/DateCalendar.module.css.js +22 -0
  22. package/build/browser/action-form/fields/DatetimePickerField.js +98 -0
  23. package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -0
  24. package/build/browser/action-form/fields/DatetimePickerField.module.css +66 -0
  25. package/build/browser/action-form/fields/DatetimePickerField.module.css.js +10 -0
  26. package/build/browser/action-form/fields/FormFieldRenderer.js +17 -6
  27. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  28. package/build/browser/action-form/fields/LazyDateCalendar.js +27 -0
  29. package/build/browser/action-form/fields/LazyDateCalendar.js.map +1 -0
  30. package/build/browser/action-form/fields/TextInputField.js +2 -0
  31. package/build/browser/action-form/fields/TextInputField.js.map +1 -1
  32. package/build/browser/action-form/fields/TextInputField.module.css +56 -0
  33. package/build/browser/action-form/fields/TextInputField.module.css.js +6 -0
  34. package/build/browser/base-components/checkbox/Checkbox.js +2 -2
  35. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
  36. package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
  37. package/build/browser/base-components/combobox/Combobox.js +3 -8
  38. package/build/browser/base-components/combobox/Combobox.js.map +1 -1
  39. package/build/browser/base-components/combobox/Combobox.module.css +0 -3
  40. package/build/browser/base-components/draggable-list/DraggableList.js +2 -4
  41. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
  42. package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
  43. package/build/browser/base-components/select/Select.js +1 -3
  44. package/build/browser/base-components/select/Select.js.map +1 -1
  45. package/build/browser/base-components/select/Select.module.css +0 -2
  46. package/build/browser/base-components/switch/Switch.module.css +0 -1
  47. package/build/browser/filter-list/FilterInput.js +14 -5
  48. package/build/browser/filter-list/FilterInput.js.map +1 -1
  49. package/build/browser/filter-list/FilterList.js +22 -10
  50. package/build/browser/filter-list/FilterList.js.map +1 -1
  51. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  52. package/build/browser/filter-list/base/AddFilterPopover.js +4 -3
  53. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
  54. package/build/browser/filter-list/base/BaseFilterList.js +3 -1
  55. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  56. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
  57. package/build/browser/filter-list/base/ExcludeDropdown.js +61 -0
  58. package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
  59. package/build/browser/filter-list/base/ExcludeDropdown.module.css +94 -0
  60. package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
  61. package/build/browser/filter-list/base/FilterIcons.js +0 -39
  62. package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
  63. package/build/browser/filter-list/base/FilterInputExcludeRow.js +55 -0
  64. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  65. package/build/browser/filter-list/base/FilterListHeader.js +3 -2
  66. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  67. package/build/browser/filter-list/base/FilterListItem.js +72 -23
  68. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  69. package/build/browser/filter-list/base/FilterListItem.module.css +96 -20
  70. package/build/browser/filter-list/base/FilterListItem.module.css.js +7 -2
  71. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +2 -2
  72. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
  73. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +2 -6
  74. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  75. package/build/browser/filter-list/base/inputs/DateRangeInput.js +1 -1
  76. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -1
  77. package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
  78. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  79. package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
  80. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  81. package/build/browser/filter-list/base/inputs/RangeInput.js +2 -2
  82. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
  83. package/build/browser/filter-list/base/inputs/SingleDateInput.js +1 -1
  84. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  85. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -3
  86. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  87. package/build/browser/filter-list/base/inputs/TimelineInput.js +1 -1
  88. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
  89. package/build/browser/filter-list/base/inputs/index.js +1 -1
  90. package/build/browser/filter-list/base/inputs/index.js.map +1 -1
  91. package/build/{esm/filter-list/base/inputs/useStaleData.js → browser/filter-list/base/inputs/useStableData.js} +5 -5
  92. package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
  93. package/build/browser/filter-list/hooks/useFilterListState.js +3 -0
  94. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  95. package/build/browser/filter-list/hooks/useFilterVisibility.js +7 -1
  96. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -1
  97. package/build/browser/filter-list/hooks/usePropertyAggregation.js +3 -2
  98. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  99. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +15 -5
  100. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
  101. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +10 -6
  102. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  103. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +41 -18
  104. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  105. package/build/browser/filter-list/inputs/ListogramFilterInput.js +15 -5
  106. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  107. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +12 -4
  108. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  109. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +10 -6
  110. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  111. package/build/browser/filter-list/inputs/PropertyFilterInput.js +36 -10
  112. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  113. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +12 -4
  114. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  115. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +12 -4
  116. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  117. package/build/browser/filter-list/utils/filterStateToWhereClause.js +1 -1
  118. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  119. package/build/browser/filter-list/utils/filterValues.js +29 -1
  120. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  121. package/build/browser/object-table/LoadingCell.js +2 -1
  122. package/build/browser/object-table/LoadingCell.js.map +1 -1
  123. package/build/browser/object-table/LoadingCell.module.css +3 -21
  124. package/build/browser/object-table/LoadingCell.module.css.js +1 -2
  125. package/build/browser/object-table/LoadingStateTable.js +2 -1
  126. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  127. package/build/browser/object-table/MultiColumnSortDialog.js +1 -3
  128. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  129. package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -1
  130. package/build/browser/object-table/TableCell.module.css +1 -1
  131. package/build/browser/object-table/TableHeader.module.css +2 -2
  132. package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
  133. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  134. package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -0
  135. package/build/browser/pdf-viewer/PdfRenderer.js +1 -1
  136. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -1
  137. package/build/browser/pdf-viewer/PdfViewer.js +59 -118
  138. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -1
  139. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  140. package/build/{esm/pdf-viewer → browser/pdf-viewer/components}/PdfViewerAnnotationLayer.module.css +0 -1
  141. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +11 -0
  142. package/build/browser/pdf-viewer/components/PdfViewerContent.js +113 -0
  143. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  144. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  145. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  146. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  147. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css.js +15 -0
  148. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  149. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
  150. package/build/browser/pdf-viewer/{PdfViewerSidebar.js → components/PdfViewerSidebar.js} +9 -5
  151. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  152. package/build/{esm/pdf-viewer → browser/pdf-viewer/components}/PdfViewerSidebar.module.css +0 -9
  153. package/build/browser/pdf-viewer/{PdfViewerSidebar.module.css.js → components/PdfViewerSidebar.module.css.js} +5 -6
  154. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  155. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  156. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  157. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css.js +8 -0
  158. package/build/browser/pdf-viewer/{PdfViewerThumbnail.js → components/PdfViewerThumbnail.js} +1 -1
  159. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  160. package/build/browser/pdf-viewer/{PdfViewerThumbnail.module.css.js → components/PdfViewerThumbnail.module.css.js} +3 -3
  161. package/build/browser/pdf-viewer/{PdfViewerToolbar.js → components/PdfViewerToolbar.js} +39 -12
  162. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  163. package/build/browser/pdf-viewer/{PdfViewerToolbar.module.css → components/PdfViewerToolbar.module.css} +2 -2
  164. package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +12 -0
  165. package/build/browser/pdf-viewer/constants.js +7 -5
  166. package/build/browser/pdf-viewer/constants.js.map +1 -1
  167. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +2 -3
  168. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  169. package/build/browser/pdf-viewer/hooks/usePdfOutline.js +268 -0
  170. package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  171. package/build/browser/pdf-viewer/hooks/usePdfViewer.js +12 -1
  172. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  173. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  174. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  175. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  176. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  177. package/build/browser/pdf-viewer/types.js.map +1 -1
  178. package/build/browser/public/experimental.js +23 -2
  179. package/build/browser/public/experimental.js.map +1 -1
  180. package/build/browser/public/primitives.js +20 -0
  181. package/build/browser/public/primitives.js.map +1 -0
  182. package/build/browser/{filter-list/base/inputs → shared}/dateUtils.js +38 -2
  183. package/build/browser/shared/dateUtils.js.map +1 -0
  184. package/build/browser/styles.css +817 -136
  185. package/build/cjs/DateCalendar-QWGFKD6J.css +113 -0
  186. package/build/cjs/DateCalendar-QWGFKD6J.css.map +1 -0
  187. package/build/cjs/DateCalendar-R44GMN3O.cjs +67 -0
  188. package/build/cjs/DateCalendar-R44GMN3O.cjs.map +1 -0
  189. package/build/cjs/chunk-GT6IV6LV.cjs +163 -0
  190. package/build/cjs/chunk-GT6IV6LV.cjs.map +1 -0
  191. package/build/cjs/chunk-HMQTYQEX.cjs +9 -0
  192. package/build/cjs/chunk-HMQTYQEX.cjs.map +1 -0
  193. package/build/cjs/chunk-UZ2E5NRX.cjs +8 -0
  194. package/build/cjs/chunk-UZ2E5NRX.cjs.map +1 -0
  195. package/build/cjs/index.cjs +2 -0
  196. package/build/cjs/public/experimental.cjs +3227 -1848
  197. package/build/cjs/public/experimental.cjs.map +1 -1
  198. package/build/cjs/public/experimental.css +650 -172
  199. package/build/cjs/public/experimental.css.map +1 -1
  200. package/build/cjs/public/experimental.d.cts +685 -17
  201. package/build/cjs/public/primitives.cjs +25 -0
  202. package/build/cjs/public/primitives.cjs.map +1 -0
  203. package/build/cjs/public/primitives.css +154 -0
  204. package/build/cjs/public/primitives.css.map +1 -0
  205. package/build/cjs/public/primitives.d.cts +49 -0
  206. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  207. package/build/esm/action-form/BaseForm.js +18 -5
  208. package/build/esm/action-form/BaseForm.js.map +1 -1
  209. package/build/esm/action-form/BaseForm.module.css +38 -0
  210. package/build/esm/action-form/FormField.js +42 -0
  211. package/build/esm/action-form/FormField.js.map +1 -0
  212. package/build/esm/action-form/FormField.module.css +41 -0
  213. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  214. package/build/esm/action-form/FormHeader.js +26 -0
  215. package/build/esm/action-form/FormHeader.js.map +1 -0
  216. package/build/esm/action-form/FormHeader.module.css +26 -0
  217. package/build/esm/action-form/fields/DateCalendar.js +70 -0
  218. package/build/esm/action-form/fields/DateCalendar.js.map +1 -0
  219. package/build/esm/action-form/fields/DateCalendar.module.css +136 -0
  220. package/build/esm/action-form/fields/DatetimePickerField.js +98 -0
  221. package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -0
  222. package/build/esm/action-form/fields/DatetimePickerField.module.css +66 -0
  223. package/build/esm/action-form/fields/FormFieldRenderer.js +17 -6
  224. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  225. package/build/esm/action-form/fields/LazyDateCalendar.js +27 -0
  226. package/build/esm/action-form/fields/LazyDateCalendar.js.map +1 -0
  227. package/build/esm/action-form/fields/TextInputField.js +2 -0
  228. package/build/esm/action-form/fields/TextInputField.js.map +1 -1
  229. package/build/esm/action-form/fields/TextInputField.module.css +56 -0
  230. package/build/esm/base-components/checkbox/Checkbox.js +2 -2
  231. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
  232. package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
  233. package/build/esm/base-components/combobox/Combobox.js +3 -8
  234. package/build/esm/base-components/combobox/Combobox.js.map +1 -1
  235. package/build/esm/base-components/combobox/Combobox.module.css +0 -3
  236. package/build/esm/base-components/draggable-list/DraggableList.js +2 -4
  237. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
  238. package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
  239. package/build/esm/base-components/select/Select.js +1 -3
  240. package/build/esm/base-components/select/Select.js.map +1 -1
  241. package/build/esm/base-components/select/Select.module.css +0 -2
  242. package/build/esm/base-components/switch/Switch.module.css +0 -1
  243. package/build/esm/filter-list/FilterInput.js +14 -5
  244. package/build/esm/filter-list/FilterInput.js.map +1 -1
  245. package/build/esm/filter-list/FilterList.js +22 -10
  246. package/build/esm/filter-list/FilterList.js.map +1 -1
  247. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  248. package/build/esm/filter-list/base/AddFilterPopover.js +4 -3
  249. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
  250. package/build/esm/filter-list/base/BaseFilterList.js +3 -1
  251. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  252. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
  253. package/build/esm/filter-list/base/ExcludeDropdown.js +61 -0
  254. package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
  255. package/build/esm/filter-list/base/ExcludeDropdown.module.css +94 -0
  256. package/build/esm/filter-list/base/FilterIcons.js +0 -39
  257. package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
  258. package/build/esm/filter-list/base/FilterInputExcludeRow.js +55 -0
  259. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
  260. package/build/esm/filter-list/base/FilterListHeader.js +3 -2
  261. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  262. package/build/esm/filter-list/base/FilterListItem.js +72 -23
  263. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  264. package/build/esm/filter-list/base/FilterListItem.module.css +96 -20
  265. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +2 -2
  266. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
  267. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +2 -6
  268. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  269. package/build/esm/filter-list/base/inputs/DateRangeInput.js +1 -1
  270. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -1
  271. package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
  272. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  273. package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
  274. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  275. package/build/esm/filter-list/base/inputs/RangeInput.js +2 -2
  276. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
  277. package/build/esm/filter-list/base/inputs/SingleDateInput.js +1 -1
  278. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  279. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -3
  280. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  281. package/build/esm/filter-list/base/inputs/TimelineInput.js +1 -1
  282. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
  283. package/build/esm/filter-list/base/inputs/index.js +1 -1
  284. package/build/esm/filter-list/base/inputs/index.js.map +1 -1
  285. package/build/{browser/filter-list/base/inputs/useStaleData.js → esm/filter-list/base/inputs/useStableData.js} +5 -5
  286. package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
  287. package/build/esm/filter-list/hooks/useFilterListState.js +3 -0
  288. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  289. package/build/esm/filter-list/hooks/useFilterVisibility.js +7 -1
  290. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -1
  291. package/build/esm/filter-list/hooks/usePropertyAggregation.js +3 -2
  292. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  293. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +15 -5
  294. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
  295. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +10 -6
  296. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  297. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +41 -18
  298. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  299. package/build/esm/filter-list/inputs/ListogramFilterInput.js +15 -5
  300. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  301. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +12 -4
  302. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  303. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +10 -6
  304. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  305. package/build/esm/filter-list/inputs/PropertyFilterInput.js +36 -10
  306. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  307. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +12 -4
  308. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  309. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +12 -4
  310. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  311. package/build/esm/filter-list/utils/filterStateToWhereClause.js +1 -1
  312. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  313. package/build/esm/filter-list/utils/filterValues.js +29 -1
  314. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  315. package/build/esm/object-table/LoadingCell.js +2 -1
  316. package/build/esm/object-table/LoadingCell.js.map +1 -1
  317. package/build/esm/object-table/LoadingCell.module.css +3 -21
  318. package/build/esm/object-table/LoadingStateTable.js +2 -1
  319. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  320. package/build/esm/object-table/MultiColumnSortDialog.js +1 -3
  321. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  322. package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -1
  323. package/build/esm/object-table/TableCell.module.css +1 -1
  324. package/build/esm/object-table/TableHeader.module.css +2 -2
  325. package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
  326. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  327. package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -0
  328. package/build/esm/pdf-viewer/PdfRenderer.js +1 -1
  329. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -1
  330. package/build/esm/pdf-viewer/PdfViewer.js +59 -118
  331. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -1
  332. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
  333. package/build/{browser/pdf-viewer → esm/pdf-viewer/components}/PdfViewerAnnotationLayer.module.css +0 -1
  334. package/build/esm/pdf-viewer/components/PdfViewerContent.js +113 -0
  335. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -0
  336. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
  337. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
  338. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
  339. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
  340. package/build/esm/pdf-viewer/{PdfViewerSidebar.js → components/PdfViewerSidebar.js} +9 -5
  341. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
  342. package/build/{browser/pdf-viewer → esm/pdf-viewer/components}/PdfViewerSidebar.module.css +0 -9
  343. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
  344. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
  345. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
  346. package/build/esm/pdf-viewer/{PdfViewerThumbnail.js → components/PdfViewerThumbnail.js} +1 -1
  347. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
  348. package/build/esm/pdf-viewer/{PdfViewerToolbar.js → components/PdfViewerToolbar.js} +39 -12
  349. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
  350. package/build/esm/pdf-viewer/{PdfViewerToolbar.module.css → components/PdfViewerToolbar.module.css} +2 -2
  351. package/build/esm/pdf-viewer/constants.js +7 -5
  352. package/build/esm/pdf-viewer/constants.js.map +1 -1
  353. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +2 -3
  354. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  355. package/build/esm/pdf-viewer/hooks/usePdfOutline.js +268 -0
  356. package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
  357. package/build/esm/pdf-viewer/hooks/usePdfViewer.js +12 -1
  358. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  359. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
  360. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
  361. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js +135 -0
  362. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
  363. package/build/esm/pdf-viewer/types.js.map +1 -1
  364. package/build/esm/public/experimental.js +23 -2
  365. package/build/esm/public/experimental.js.map +1 -1
  366. package/build/esm/public/primitives.js +20 -0
  367. package/build/esm/public/primitives.js.map +1 -0
  368. package/build/esm/{filter-list/base/inputs → shared}/dateUtils.js +38 -2
  369. package/build/esm/shared/dateUtils.js.map +1 -0
  370. package/build/types/action-form/ActionFormApi.d.ts +1 -0
  371. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  372. package/build/types/action-form/BaseForm.d.ts.map +1 -1
  373. package/build/types/action-form/FormField.d.ts +11 -0
  374. package/build/types/action-form/FormField.d.ts.map +1 -0
  375. package/build/types/action-form/FormFieldApi.d.ts +22 -8
  376. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  377. package/build/types/action-form/FormHeader.d.ts +6 -0
  378. package/build/types/action-form/FormHeader.d.ts.map +1 -0
  379. package/build/types/action-form/fields/DateCalendar.d.ts +9 -0
  380. package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -0
  381. package/build/types/action-form/fields/DatetimePickerField.d.ts +3 -0
  382. package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -0
  383. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  384. package/build/types/action-form/fields/LazyDateCalendar.d.ts +3 -0
  385. package/build/types/action-form/fields/LazyDateCalendar.d.ts.map +1 -0
  386. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
  387. package/build/types/filter-list/FilterInput.d.ts +3 -1
  388. package/build/types/filter-list/FilterInput.d.ts.map +1 -1
  389. package/build/types/filter-list/FilterListApi.d.ts +14 -10
  390. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  391. package/build/types/filter-list/base/AddFilterPopover.d.ts +2 -1
  392. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
  393. package/build/types/filter-list/base/BaseFilterListApi.d.ts +4 -1
  394. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
  395. package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
  396. package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
  397. package/build/types/filter-list/base/FilterIcons.d.ts +0 -2
  398. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
  399. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +12 -0
  400. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
  401. package/build/types/filter-list/base/FilterListHeader.d.ts +3 -2
  402. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  403. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  404. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -1
  405. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  406. package/build/types/filter-list/base/inputs/index.d.ts +1 -1
  407. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -1
  408. package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
  409. package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
  410. package/build/types/filter-list/hooks/useFilterVisibility.d.ts +2 -0
  411. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -1
  412. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -2
  413. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
  414. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +5 -2
  415. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -1
  416. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +3 -2
  417. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
  418. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +2 -1
  419. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
  420. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +5 -2
  421. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
  422. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -2
  423. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
  424. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +3 -2
  425. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
  426. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +3 -1
  427. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
  428. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -2
  429. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
  430. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +4 -2
  431. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
  432. package/build/types/filter-list/utils/filterValues.d.ts +2 -0
  433. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  434. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  435. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  436. package/build/types/pdf-viewer/PdfRenderer.d.ts +2 -2
  437. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -1
  438. package/build/types/pdf-viewer/PdfViewer.d.ts +1 -1
  439. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -1
  440. package/build/types/pdf-viewer/{PdfViewerAnnotationLayer.d.ts → components/PdfViewerAnnotationLayer.d.ts} +2 -3
  441. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
  442. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +22 -0
  443. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -0
  444. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts +11 -0
  445. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -0
  446. package/build/types/pdf-viewer/{PdfViewerSearchBar.d.ts → components/PdfViewerSearchBar.d.ts} +1 -2
  447. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -0
  448. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts +12 -0
  449. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -0
  450. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts +7 -0
  451. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -0
  452. package/build/types/pdf-viewer/{PdfViewerThumbnail.d.ts.map → components/PdfViewerThumbnail.d.ts.map} +1 -1
  453. package/build/types/pdf-viewer/{PdfViewerToolbar.d.ts → components/PdfViewerToolbar.d.ts} +5 -3
  454. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
  455. package/build/types/pdf-viewer/constants.d.ts +5 -0
  456. package/build/types/pdf-viewer/constants.d.ts.map +1 -1
  457. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -1
  458. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts +3 -0
  459. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -0
  460. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +1 -1
  461. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -1
  462. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +43 -0
  463. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -0
  464. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts +39 -0
  465. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
  466. package/build/types/pdf-viewer/types.d.ts +42 -0
  467. package/build/types/pdf-viewer/types.d.ts.map +1 -1
  468. package/build/types/public/experimental.d.ts +21 -2
  469. package/build/types/public/experimental.d.ts.map +1 -1
  470. package/build/types/public/primitives.d.ts +3 -0
  471. package/build/types/public/primitives.d.ts.map +1 -0
  472. package/build/types/shared/dateUtils.d.ts +31 -0
  473. package/build/types/shared/dateUtils.d.ts.map +1 -0
  474. package/package.json +14 -4
  475. package/primitives.d.ts +17 -0
  476. package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
  477. package/build/browser/filter-list/base/inputs/useStaleData.js.map +0 -1
  478. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.js.map +0 -1
  479. package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css.js +0 -11
  480. package/build/browser/pdf-viewer/PdfViewerSearchBar.js.map +0 -1
  481. package/build/browser/pdf-viewer/PdfViewerSearchBar.module.css.js +0 -10
  482. package/build/browser/pdf-viewer/PdfViewerSidebar.js.map +0 -1
  483. package/build/browser/pdf-viewer/PdfViewerThumbnail.js.map +0 -1
  484. package/build/browser/pdf-viewer/PdfViewerToolbar.js.map +0 -1
  485. package/build/browser/pdf-viewer/PdfViewerToolbar.module.css.js +0 -12
  486. package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
  487. package/build/esm/filter-list/base/inputs/useStaleData.js.map +0 -1
  488. package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.js.map +0 -1
  489. package/build/esm/pdf-viewer/PdfViewerSearchBar.js.map +0 -1
  490. package/build/esm/pdf-viewer/PdfViewerSidebar.js.map +0 -1
  491. package/build/esm/pdf-viewer/PdfViewerThumbnail.js.map +0 -1
  492. package/build/esm/pdf-viewer/PdfViewerToolbar.js.map +0 -1
  493. package/build/types/filter-list/base/inputs/dateUtils.d.ts +0 -17
  494. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +0 -1
  495. package/build/types/filter-list/base/inputs/useStaleData.d.ts +0 -1
  496. package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +0 -1
  497. package/build/types/pdf-viewer/PdfViewerAnnotationLayer.d.ts.map +0 -1
  498. package/build/types/pdf-viewer/PdfViewerSearchBar.d.ts.map +0 -1
  499. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts +0 -10
  500. package/build/types/pdf-viewer/PdfViewerSidebar.d.ts.map +0 -1
  501. package/build/types/pdf-viewer/PdfViewerToolbar.d.ts.map +0 -1
  502. /package/build/browser/pdf-viewer/{PdfViewerAnnotationLayer.js → components/PdfViewerAnnotationLayer.js} +0 -0
  503. /package/build/browser/pdf-viewer/{PdfViewerSearchBar.js → components/PdfViewerSearchBar.js} +0 -0
  504. /package/build/browser/pdf-viewer/{PdfViewerSearchBar.module.css → components/PdfViewerSearchBar.module.css} +0 -0
  505. /package/build/browser/pdf-viewer/{PdfViewerThumbnail.module.css → components/PdfViewerThumbnail.module.css} +0 -0
  506. /package/build/esm/pdf-viewer/{PdfViewerAnnotationLayer.js → components/PdfViewerAnnotationLayer.js} +0 -0
  507. /package/build/esm/pdf-viewer/{PdfViewerSearchBar.js → components/PdfViewerSearchBar.js} +0 -0
  508. /package/build/esm/pdf-viewer/{PdfViewerSearchBar.module.css → components/PdfViewerSearchBar.module.css} +0 -0
  509. /package/build/esm/pdf-viewer/{PdfViewerThumbnail.module.css → components/PdfViewerThumbnail.module.css} +0 -0
  510. /package/build/types/pdf-viewer/{PdfViewerThumbnail.d.ts → components/PdfViewerThumbnail.d.ts} +0 -0
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
- import React__default, { ReactNode, ReactElement } from 'react';
3
- import { ObjectTypeDefinition, ObjectSet, WhereClause, PropertyKeys, LinkNames, LinkedType, WirePropertyTypes, CompileTimeMetadata, ObjectOrInterfaceDefinition, SimplePropertyDef, QueryDefinition, QueryMetadata, Osdk, DerivedProperty, PrimaryKeyType, Media } from '@osdk/api';
2
+ import React__default, { ReactNode, ReactElement, RefObject } from 'react';
3
+ import { ObjectTypeDefinition, ObjectSet, WhereClause, PropertyKeys, LinkNames, LinkedType, WirePropertyTypes, CompileTimeMetadata, ObjectOrInterfaceDefinition, SimplePropertyDef, QueryDefinition, QueryMetadata, Osdk, DerivedProperty, PrimaryKeyType, Media, ActionDefinition, ActionMetadata, ActionParam, DataValueClientToWire, ActionEditResponse, ActionValidationResponse } from '@osdk/api';
4
4
  import { RowData, Table, Cell, VisibilityState, ColumnOrderState } from '@tanstack/react-table';
5
+ import { PDFDocumentProxy } from 'pdfjs-dist';
6
+ import { PDFViewer, EventBus, PDFFindController } from 'pdfjs-dist/web/pdf_viewer.mjs';
7
+ import { ActionValidationError } from '@osdk/client';
5
8
 
6
9
  /**
7
10
  * State for custom filter
@@ -358,6 +361,8 @@ type RenderFilterInput<D> = (props: {
358
361
  filterKey: string;
359
362
  filterState: FilterState | undefined;
360
363
  onFilterStateChanged: (state: FilterState) => void;
364
+ searchQuery?: string;
365
+ excludeRowOpen?: boolean;
361
366
  }) => React__default.ReactNode;
362
367
  interface BaseFilterListProps<D> {
363
368
  filterDefinitions?: Array<D>;
@@ -372,10 +377,11 @@ interface BaseFilterListProps<D> {
372
377
  onFilterRemoved?: (filterKey: string) => void;
373
378
  collapsed?: boolean;
374
379
  onCollapsedChange?: (collapsed: boolean) => void;
375
- title?: string;
380
+ title?: React__default.ReactNode;
376
381
  titleIcon?: React__default.ReactNode;
377
382
  showResetButton?: boolean;
378
383
  showActiveFilterCount?: boolean;
384
+ hasVisibilityChanges?: boolean;
379
385
  enableSorting?: boolean;
380
386
  className?: string;
381
387
  renderAddFilterButton?: () => React__default.ReactNode;
@@ -403,7 +409,7 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
403
409
  /**
404
410
  * Optional title to display in the filter list header
405
411
  */
406
- title?: string;
412
+ title?: ReactNode;
407
413
  /**
408
414
  * Optional icon to display next to the title
409
415
  */
@@ -442,14 +448,14 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
442
448
  /**
443
449
  * Controls how filter visibility (add/remove) is managed.
444
450
  *
445
- * - `"controlled"` (default): The consumer manages which filters are
446
- * visible via `filterDefinitions`. Filters with `isVisible: false` are
447
- * excluded from the rendered list.
448
- * - `"uncontrolled"`: FilterList manages visibility internally. An "Add
449
- * filter" popover is rendered for filters with `isVisible: false`, and
450
- * each visible filter shows a remove button.
451
+ * - `"uncontrolled"` (default): FilterList manages visibility internally.
452
+ * An "Add filter" popover is rendered for filters with `isVisible: false`,
453
+ * and each visible filter shows a remove button.
454
+ * - `"controlled"`: The consumer manages which filters are visible via
455
+ * `filterDefinitions`. Filters with `isVisible: false` are excluded from
456
+ * the rendered list.
451
457
  *
452
- * @default "controlled"
458
+ * @default "uncontrolled"
453
459
  */
454
460
  addFilterMode?: "controlled" | "uncontrolled";
455
461
  /**
@@ -510,8 +516,11 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
510
516
  className?: string;
511
517
  /**
512
518
  * Custom render function for the "Add filter" button.
513
- * Only used in controlled mode. In uncontrolled mode, the built-in
514
- * AddFilterPopover is rendered automatically.
519
+ *
520
+ * - In uncontrolled mode: customizes the trigger element for the built-in
521
+ * add-filter popover. The popover behavior is handled automatically.
522
+ * - In controlled mode: replaces the entire add-filter button area.
523
+ * The consumer is responsible for all add-filter behavior.
515
524
  */
516
525
  renderAddFilterButton?: () => React__default.ReactNode;
517
526
  }
@@ -911,6 +920,16 @@ interface ColumnConfigDialogProps {
911
920
  }
912
921
  declare function ColumnConfigDialog({ isOpen, onClose, columnOptions, currentVisibility, currentColumnOrder, onApply, isValidConfig, }: ColumnConfigDialogProps): React__default.ReactElement | null;
913
922
 
923
+ /** Which sidebar panel to display when the sidebar is open. */
924
+ type SidebarMode = "thumbnails" | "outline";
925
+ /** A single item in the PDF document outline (table of contents). */
926
+ interface OutlineItem {
927
+ title: string;
928
+ depth: number;
929
+ pageNumber: number;
930
+ bold: boolean;
931
+ italic: boolean;
932
+ }
914
933
  /** The visual style of an annotation rendered on the PDF. */
915
934
  type AnnotationType = "highlight" | "underline" | "comment" | "pin";
916
935
  /** A single annotation positioned on a specific page of the PDF. */
@@ -933,6 +952,14 @@ interface PdfAnnotation {
933
952
  /** Optional color override (CSS color string) */
934
953
  color?: string;
935
954
  }
955
+ /** Result passed to the {@link PdfViewerProps.onDownload} callback. */
956
+ type PdfDownloadResult = {
957
+ success: true;
958
+ filename: string;
959
+ } | {
960
+ success: false;
961
+ error: Error;
962
+ };
936
963
  /** Props for the {@link PdfViewer} component. */
937
964
  interface PdfViewerProps {
938
965
  /** PDF source — URL string or ArrayBuffer */
@@ -946,22 +973,663 @@ interface PdfViewerProps {
946
973
  * @returns void
947
974
  */
948
975
  onAnnotationClick?: (annotation: PdfAnnotation) => void;
976
+ /**
977
+ * Callback fired when a download completes or fails.
978
+ *
979
+ * @param result - The download result indicating success with the filename, or failure with an error
980
+ * @returns void
981
+ */
982
+ onDownload?: (result: PdfDownloadResult) => void;
949
983
  /** Initial page number (1-indexed, default 1) */
950
984
  initialPage?: number;
951
985
  /** Initial zoom scale (default 1.0) */
952
986
  initialScale?: number;
953
987
  /** Whether the sidebar is initially open (default false) */
954
988
  initialSidebarOpen?: boolean;
989
+ /**
990
+ * Whether the download button is shown in the toolbar.
991
+ * @default false
992
+ */
993
+ enableDownload?: boolean;
994
+ /**
995
+ * Which sidebar panel to show: thumbnails or document outline.
996
+ * @default "thumbnails"
997
+ */
998
+ sidebarMode?: SidebarMode;
999
+ /**
1000
+ * Custom icon components for each outline depth level (0-indexed).
1001
+ * Key 0 = top-level items, 1 = first nesting level, etc.
1002
+ * If omitted, no icons are rendered.
1003
+ */
1004
+ outlineIcons?: Partial<Record<number, React__default.ComponentType>>;
1005
+ /** Additional CSS class name for the root element */
1006
+ className?: string;
1007
+ }
1008
+
1009
+ declare function BasePdfViewer({ src, annotations, onAnnotationClick, onDownload, initialPage, initialScale, initialSidebarOpen, enableDownload, sidebarMode: sidebarModeProp, outlineIcons, className, }: PdfViewerProps): React__default.ReactElement;
1010
+
1011
+ interface PdfViewerAnnotationLayerProps {
1012
+ annotations: PdfAnnotation[];
1013
+ pageHeight: number;
1014
+ scale: number;
1015
+ onAnnotationClick?: (annotation: PdfAnnotation) => void;
1016
+ }
1017
+ declare function PdfViewerAnnotationLayer({ annotations, pageHeight, scale, onAnnotationClick, }: PdfViewerAnnotationLayerProps): React__default.ReactElement;
1018
+
1019
+ interface PdfViewerContentProps {
1020
+ /** PDF source — URL string or ArrayBuffer */
1021
+ src: string | ArrayBuffer;
1022
+ /** Annotations to overlay on the PDF, keyed by page number (1-indexed) */
1023
+ annotations?: Record<number, PdfAnnotation[]>;
1024
+ /** Callback fired when an annotation is clicked */
1025
+ onAnnotationClick?: (annotation: PdfAnnotation) => void;
1026
+ /** Initial page number (1-indexed, default 1) */
1027
+ initialPage?: number;
1028
+ /** Initial zoom scale (default 1.0) */
1029
+ initialScale?: number;
1030
+ /** Callback fired when the current page changes during scrolling */
1031
+ onPageChange?: (page: number) => void;
1032
+ /** Callback fired when the zoom scale changes */
1033
+ onScaleChange?: (scale: number) => void;
955
1034
  /** Additional CSS class name for the root element */
956
1035
  className?: string;
957
1036
  }
1037
+ declare function PdfViewerContent({ src, annotations, onAnnotationClick, initialPage, initialScale, onPageChange: onPageChangeProp, onScaleChange: onScaleChangeProp, className, }: PdfViewerContentProps): React__default.ReactElement;
1038
+
1039
+ interface PdfViewerOutlineSidebarProps {
1040
+ outlineItems: OutlineItem[];
1041
+ currentPage: number;
1042
+ onItemClick: (pageNumber: number) => void;
1043
+ sidebarMode: SidebarMode;
1044
+ onSidebarModeChange: (mode: SidebarMode) => void;
1045
+ outlineIcons?: Partial<Record<number, React__default.ComponentType>>;
1046
+ }
1047
+ declare function PdfViewerOutlineSidebar({ outlineItems, currentPage, onItemClick, sidebarMode, onSidebarModeChange, outlineIcons, }: PdfViewerOutlineSidebarProps): React__default.ReactElement;
1048
+
1049
+ interface PdfViewerSearchBarProps {
1050
+ query: string;
1051
+ totalMatches: number;
1052
+ currentMatchIndex: number;
1053
+ onQueryChange: (query: string) => void;
1054
+ onNext: () => void;
1055
+ onPrev: () => void;
1056
+ onClose: () => void;
1057
+ }
1058
+ declare function PdfViewerSearchBar({ query, totalMatches, currentMatchIndex, onQueryChange, onNext, onPrev, onClose, }: PdfViewerSearchBarProps): React__default.ReactElement;
1059
+
1060
+ interface PdfViewerSidebarProps {
1061
+ document: PDFDocumentProxy;
1062
+ numPages: number;
1063
+ currentPage: number;
1064
+ onPageClick: (page: number) => void;
1065
+ sidebarMode: SidebarMode;
1066
+ onSidebarModeChange: (mode: SidebarMode) => void;
1067
+ }
1068
+ declare function PdfViewerSidebar({ document, numPages, currentPage, onPageClick, sidebarMode, onSidebarModeChange, }: PdfViewerSidebarProps): React__default.ReactElement;
1069
+
1070
+ interface PdfViewerToolbarProps {
1071
+ currentPage: number;
1072
+ numPages: number;
1073
+ scale: number;
1074
+ sidebarOpen: boolean;
1075
+ onPageChange: (page: number) => void;
1076
+ onScaleChange: (scale: number) => void;
1077
+ onSearchOpen: () => void;
1078
+ onSidebarToggle: () => void;
1079
+ onDownload: () => void;
1080
+ enableDownload: boolean;
1081
+ onRotateLeft: () => void;
1082
+ onRotateRight: () => void;
1083
+ }
1084
+ declare function PdfViewerToolbar({ currentPage, numPages, scale, sidebarOpen, onPageChange, onScaleChange, onSearchOpen, onSidebarToggle, onDownload, enableDownload, onRotateLeft, onRotateRight, }: PdfViewerToolbarProps): React__default.ReactElement;
1085
+
1086
+ interface AnnotationPortalTarget {
1087
+ pageNumber: number;
1088
+ container: HTMLDivElement;
1089
+ pageHeight: number;
1090
+ scale: number;
1091
+ }
1092
+ declare function usePdfAnnotationPortals(pdfViewerRef: RefObject<PDFViewer | null>, eventBusRef: RefObject<EventBus | null>, document: PDFDocumentProxy | undefined): AnnotationPortalTarget[];
1093
+
1094
+ interface UsePdfDocumentResult {
1095
+ document: PDFDocumentProxy | undefined;
1096
+ numPages: number;
1097
+ loading: boolean;
1098
+ error: Error | undefined;
1099
+ }
1100
+ declare function usePdfDocument(src: string | ArrayBuffer): UsePdfDocumentResult;
1101
+
1102
+ declare function usePdfOutline(document: PDFDocumentProxy | undefined): OutlineItem[];
1103
+
1104
+ interface UsePdfViewerResult {
1105
+ pdfViewerRef: RefObject<PDFViewer | null>;
1106
+ eventBusRef: RefObject<EventBus | null>;
1107
+ findControllerRef: RefObject<PDFFindController | null>;
1108
+ }
1109
+ declare function usePdfViewer(containerRef: RefObject<HTMLDivElement | null>, viewerRef: RefObject<HTMLDivElement | null>, document: PDFDocumentProxy | undefined, initialScale?: number, initialPage?: number): UsePdfViewerResult;
1110
+
1111
+ interface UsePdfViewerSearchResult {
1112
+ query: string;
1113
+ totalMatches: number;
1114
+ currentMatchIndex: number;
1115
+ isSearchOpen: boolean;
1116
+ setQuery: (query: string) => void;
1117
+ nextMatch: () => void;
1118
+ prevMatch: () => void;
1119
+ openSearch: () => void;
1120
+ closeSearch: () => void;
1121
+ }
1122
+ declare function usePdfViewerSearch(eventBusRef: RefObject<EventBus | null>, findControllerRef: RefObject<PDFFindController | null>, document: PDFDocumentProxy | undefined): UsePdfViewerSearchResult;
1123
+
1124
+ interface UsePdfViewerSyncOptions {
1125
+ pdfViewerRef: RefObject<PDFViewer | null>;
1126
+ eventBusRef: RefObject<EventBus | null>;
1127
+ document: PDFDocumentProxy | undefined;
1128
+ scale: number;
1129
+ onScaleChange: (scale: number) => void;
1130
+ onPageChange: (page: number) => void;
1131
+ }
1132
+ declare function usePdfViewerSync({ pdfViewerRef, eventBusRef, document, scale, onScaleChange, onPageChange, }: UsePdfViewerSyncOptions): {
1133
+ scrollToPage: (page: number) => void;
1134
+ };
1135
+
1136
+ interface UsePdfViewerCoreOptions {
1137
+ /** PDF source — URL string or ArrayBuffer */
1138
+ src: string | ArrayBuffer;
1139
+ /** Initial page number (1-indexed, default 1) */
1140
+ initialPage?: number;
1141
+ /** Initial zoom scale (default 1.0) */
1142
+ initialScale?: number;
1143
+ }
1144
+ interface UsePdfViewerCoreResult {
1145
+ /** The loaded PDF document, or undefined while loading */
1146
+ document: PDFDocumentProxy | undefined;
1147
+ /** Total number of pages in the document */
1148
+ numPages: number;
1149
+ /** Whether the document is currently loading */
1150
+ loading: boolean;
1151
+ /** Error encountered while loading the document */
1152
+ error: Error | undefined;
1153
+ /** Ref to attach to the scroll-container div */
1154
+ containerRef: RefObject<HTMLDivElement>;
1155
+ /** Ref to attach to the inner viewer div (className="pdfViewer") */
1156
+ viewerRef: RefObject<HTMLDivElement>;
1157
+ /** Current page number (1-indexed) */
1158
+ currentPage: number;
1159
+ /** Navigate to a specific page (updates state and scrolls the viewer) */
1160
+ scrollToPage: (page: number) => void;
1161
+ /** Current zoom scale */
1162
+ scale: number;
1163
+ /** Set the zoom scale directly */
1164
+ setScale: (scale: number) => void;
1165
+ /** Portal targets for rendering annotation overlays on each page */
1166
+ portalTargets: AnnotationPortalTarget[];
1167
+ /** Ref to the internal pdfjs PDFViewer instance */
1168
+ pdfViewerRef: RefObject<PDFViewer | null>;
1169
+ /** Ref to the internal pdfjs EventBus instance */
1170
+ eventBusRef: RefObject<EventBus | null>;
1171
+ /** Ref to the internal pdfjs PDFFindController instance */
1172
+ findControllerRef: RefObject<PDFFindController | null>;
1173
+ }
1174
+ declare function usePdfViewerCore({ src, initialPage, initialScale, }: UsePdfViewerCoreOptions): UsePdfViewerCoreResult;
958
1175
 
959
- declare function BasePdfViewer({ src, annotations, onAnnotationClick, initialPage, initialScale, initialSidebarOpen, className, }: PdfViewerProps): React__default.ReactElement;
1176
+ interface UsePdfViewerStateOptions extends UsePdfViewerCoreOptions {
1177
+ /** Whether the sidebar is initially open (default false) */
1178
+ initialSidebarOpen?: boolean;
1179
+ /** Which sidebar panel to show (default "thumbnails") */
1180
+ sidebarMode?: SidebarMode;
1181
+ /** Callback fired when a download completes or fails */
1182
+ onDownload?: (result: PdfDownloadResult) => void;
1183
+ }
1184
+ interface UsePdfViewerStateResult extends UsePdfViewerCoreResult {
1185
+ /** Zoom in by one step */
1186
+ zoomIn: () => void;
1187
+ /** Zoom out by one step */
1188
+ zoomOut: () => void;
1189
+ /** Current rotation in degrees (0, 90, 180, 270) */
1190
+ rotation: number;
1191
+ /** Rotate 90 degrees counter-clockwise */
1192
+ rotateLeft: () => void;
1193
+ /** Rotate 90 degrees clockwise */
1194
+ rotateRight: () => void;
1195
+ /** Whether the sidebar panel is open */
1196
+ sidebarOpen: boolean;
1197
+ /** Which sidebar panel is active */
1198
+ sidebarMode: SidebarMode;
1199
+ /** Change the active sidebar panel */
1200
+ setSidebarMode: (mode: SidebarMode) => void;
1201
+ /** Toggle sidebar open/closed */
1202
+ toggleSidebar: () => void;
1203
+ /** Search state and actions */
1204
+ search: UsePdfViewerSearchResult;
1205
+ /** Document outline items (from bookmarks or text extraction) */
1206
+ outlineItems: ReturnType<typeof usePdfOutline>;
1207
+ /** Download the PDF as a file */
1208
+ download: (filename?: string) => void;
1209
+ }
1210
+ declare function usePdfViewerState({ src, initialPage, initialScale, initialSidebarOpen, sidebarMode: sidebarModeProp, onDownload, }: UsePdfViewerStateOptions): UsePdfViewerStateResult;
960
1211
 
961
- interface PdfRendererProps extends Omit<PdfViewerProps, "src"> {
1212
+ interface PdfViewerMediaProps extends Omit<PdfViewerProps, "src"> {
962
1213
  /** The Media object to fetch PDF contents from */
963
1214
  media: Media;
964
1215
  }
965
- declare function PdfRenderer({ media, className, ...pdfViewerProps }: PdfRendererProps): React__default.ReactElement;
1216
+ declare function PdfViewer({ media, className, ...pdfViewerProps }: PdfViewerMediaProps): React__default.ReactElement;
1217
+
1218
+ /**
1219
+ * A form field definition specifies configuration for a single field
1220
+ */
1221
+ interface FormFieldDefinition<Q extends ActionDefinition<unknown>, K extends FieldKey<Q> = FieldKey<Q>> {
1222
+ /**
1223
+ * The field's unique key
1224
+ */
1225
+ fieldKey: K;
1226
+ /**
1227
+ * Display label for the field
1228
+ * If not provided, the form field will not show any label.
1229
+ */
1230
+ label?: string;
1231
+ /**
1232
+ * Default value of the field
1233
+ */
1234
+ defaultValue?: FieldValueType<Q, K>;
1235
+ /**
1236
+ * The form field component type to render
1237
+ */
1238
+ fieldComponent: ValidFormFieldForPropertyType<FieldDescriptorType<Q, K>>;
1239
+ /**
1240
+ * Whether the field is required
1241
+ */
1242
+ isRequired?: boolean;
1243
+ /**
1244
+ * Placeholder text
1245
+ */
1246
+ placeholder?: string;
1247
+ /**
1248
+ * Additional information to display on this field
1249
+ * The placement of helper text depends on the value of helperTextPlacement prop
1250
+ */
1251
+ helperText?: string;
1252
+ /**
1253
+ * The placement of the helper text either below the field or in a tooltip
1254
+ *
1255
+ * @default "tooltip"
1256
+ */
1257
+ helperTextPlacement?: "bottom" | "tooltip";
1258
+ /**
1259
+ * Whether the field is disabled
1260
+ */
1261
+ isDisabled?: boolean;
1262
+ /**
1263
+ * A callback to return a custom error message if validation failed
1264
+ *
1265
+ * @param validationRule the validation rule that failed with the error message
1266
+ * @returns the error message to display
1267
+ */
1268
+ onValidationError?: (error: ValidationError) => string;
1269
+ /**
1270
+ * Additional function to validate the field
1271
+ *
1272
+ * @param value the current field value
1273
+ * @returns a boolean promise indicating whether the value is valid
1274
+ */
1275
+ validate?: (value: FieldValueType<Q, K>) => Promise<boolean>;
1276
+ /**
1277
+ * The component props for the form field
1278
+ * Excludes runtime props (key, onChange) which are managed by ActionForm
1279
+ */
1280
+ fieldComponentProps?: Omit<FormFieldPropsByType[ValidFormFieldForPropertyType<FieldDescriptorType<Q, K>>], "key" | "onChange">;
1281
+ }
1282
+ type ValidationError = {
1283
+ type: ValidationRule;
1284
+ error: string;
1285
+ };
1286
+ type ValidationRule = "required" | "min" | "max" | "minLength" | "maxLength" | "pattern" | "validate";
1287
+ /**
1288
+ * Maps field types to their corresponding props
1289
+ */
1290
+ interface FormFieldPropsByType {
1291
+ DATETIME_PICKER: DatetimePickerFieldProps;
1292
+ DROPDOWN: DropdownFieldProps<unknown, boolean>;
1293
+ FILE_PICKER: FilePickerProps;
1294
+ NUMBER_INPUT: NumberInputFieldProps;
1295
+ OBJECT_SET: ObjectSetFieldProps<ObjectTypeDefinition>;
1296
+ RADIO_BUTTONS: RadioButtonsFieldProps<unknown>;
1297
+ TEXT_AREA: TextAreaFieldProps;
1298
+ TEXT_INPUT: TextInputFieldProps;
1299
+ CUSTOM: CustomFieldProps<unknown>;
1300
+ }
1301
+ /**
1302
+ * Datetime picker field props.
1303
+ *
1304
+ * When `formatDate` is omitted, ISO-like format is used (YYYY-MM-DD / YYYY-MM-DD HH:mm).
1305
+ */
1306
+ interface DatetimePickerFieldProps extends BaseFormFieldProps<Date> {
1307
+ /**
1308
+ * The earliest date the user can select.
1309
+ * If provided, this will be added to the field validation.
1310
+ */
1311
+ min?: Date;
1312
+ /**
1313
+ * The latest date the user can select.
1314
+ * If provided, this will be added to the field validation.
1315
+ */
1316
+ max?: Date;
1317
+ /**
1318
+ * Whether to show time picker.
1319
+ */
1320
+ showTime?: boolean;
1321
+ /**
1322
+ * Whether to close the popover after selecting a date.
1323
+ * @default true when `showTime` is false, false when `showTime` is true
1324
+ */
1325
+ closeOnSelection?: boolean;
1326
+ /**
1327
+ * Placeholder text shown when no value is selected.
1328
+ */
1329
+ placeholder?: string;
1330
+ /** Formats a Date for display in the trigger button. */
1331
+ formatDate?: (date: Date) => string;
1332
+ }
1333
+ /**
1334
+ * Dropdown field props with selectable items
1335
+ */
1336
+ interface DropdownFieldProps<V, Multiple extends boolean = false> extends BaseFormFieldProps<Multiple extends true ? V[] : V> {
1337
+ /**
1338
+ * Available items for the dropdown
1339
+ */
1340
+ items: V[];
1341
+ /**
1342
+ * Converts an item to a display string. Defaults to `String()`.
1343
+ */
1344
+ itemToStringLabel?: (item: V) => string;
1345
+ /**
1346
+ * Returns a unique string key for a list item. Used as the React `key`.
1347
+ * Falls back to the item's index when not provided.
1348
+ */
1349
+ itemToKey?: (item: V) => string;
1350
+ /**
1351
+ * Custom equality check for item values. Defaults to `Object.is`.
1352
+ * Required when items are objects to ensure correct selection matching.
1353
+ */
1354
+ isItemEqual?: (a: V, b: V) => boolean;
1355
+ /**
1356
+ * Whether the dropdown allows searching/filtering.
1357
+ * When true, renders a Combobox with a search input.
1358
+ * When false (default), renders a Select dropdown.
1359
+ */
1360
+ isSearchable?: boolean;
1361
+ /**
1362
+ * Placeholder text shown when no value is selected.
1363
+ */
1364
+ placeholder?: string;
1365
+ /**
1366
+ * Whether multiple values can be selected
1367
+ */
1368
+ isMultiple?: Multiple;
1369
+ }
1370
+ interface FilePickerProps extends BaseFormFieldProps<File | File[]> {
1371
+ /**
1372
+ * Whether multiple files can be selected
1373
+ */
1374
+ isMulti?: boolean;
1375
+ /**
1376
+ * Accepted file types (e.g., "image/*", ".pdf")
1377
+ */
1378
+ accept?: string | string[];
1379
+ /**
1380
+ * Maximum file size in bytes
1381
+ */
1382
+ maxSize?: number;
1383
+ }
1384
+ /**
1385
+ * Text area field props
1386
+ */
1387
+ interface TextAreaFieldProps extends BaseFormFieldProps<string>, Pick<React__default.TextareaHTMLAttributes<HTMLTextAreaElement>, "rows" | "wrap"
1388
+ /**
1389
+ * If provided, this will be added to the field validation
1390
+ */
1391
+ | "minLength"
1392
+ /**
1393
+ * If provided, this will be added to the field validation
1394
+ */
1395
+ | "maxLength"> {
1396
+ }
1397
+ interface TextInputFieldProps extends BaseFormFieldProps<string>, Pick<React__default.InputHTMLAttributes<HTMLInputElement>,
1398
+ /**
1399
+ * If provided, this will be added to the field validation
1400
+ */
1401
+ "minLength"
1402
+ /**
1403
+ * If provided, this will be added to the field validation
1404
+ */
1405
+ | "maxLength"> {
1406
+ placeholder?: string;
1407
+ }
1408
+ /**
1409
+ * Number input field props
1410
+ */
1411
+ interface NumberInputFieldProps extends BaseFormFieldProps<number>, Pick<React__default.InputHTMLAttributes<HTMLInputElement>,
1412
+ /**
1413
+ * If provided, this will be added to the field validation
1414
+ */
1415
+ "min"
1416
+ /**
1417
+ * If provided, this will be added to the field validation
1418
+ */
1419
+ | "max" | "step"> {
1420
+ }
1421
+ /**
1422
+ * Radio buttons field props
1423
+ */
1424
+ interface RadioButtonsFieldProps<V> extends BaseFormFieldProps<V> {
1425
+ /**
1426
+ * Available options for radio buttons
1427
+ */
1428
+ options: Option<V>[];
1429
+ }
1430
+ /**
1431
+ * Option interface for radio button options
1432
+ */
1433
+ interface Option<V> {
1434
+ label: string;
1435
+ value: V;
1436
+ }
1437
+ /**
1438
+ * Object set field displays the summary of the count of the given object set
1439
+ */
1440
+ interface ObjectSetFieldProps<T extends ObjectTypeDefinition> extends BaseFormFieldProps<ObjectSet<T>> {
1441
+ }
1442
+ /**
1443
+ * Custom field props for user-defined renderers
1444
+ */
1445
+ interface CustomFieldProps<V> extends BaseFormFieldProps<V> {
1446
+ /**
1447
+ * Custom renderer function
1448
+ */
1449
+ customRenderer: (props: BaseFormFieldProps<V>) => React__default.ReactNode;
1450
+ }
1451
+ interface BaseFormFieldProps<V> {
1452
+ /**
1453
+ * The HTML `id` attribute for the field input element.
1454
+ * Used for `<label htmlFor>` association.
1455
+ */
1456
+ id?: string;
1457
+ /**
1458
+ * The value of the form field
1459
+ */
1460
+ value: V | null;
1461
+ /**
1462
+ * Called when the field value changes.
1463
+ *
1464
+ * ActionForm internally wraps this to pass the key to `onFieldValueChange`:
1465
+ * ```
1466
+ * <DropdownField
1467
+ * {...fieldDef}
1468
+ * onChange={(value) => onFieldValueChange(fieldDef.key, value)}
1469
+ * />
1470
+ * ```
1471
+ *
1472
+ * @param value The new value of the form field
1473
+ */
1474
+ onChange?: (value: V | null) => void;
1475
+ }
1476
+ type FieldKey<Q extends ActionDefinition<unknown>> = keyof ActionParameters<Q>;
1477
+ /**
1478
+ * Extracts parameters from an ActionDefinition
1479
+ */
1480
+ type ActionParameters<Q extends ActionDefinition<unknown>> = CompileTimeMetadata<Q>["parameters"];
1481
+ /**
1482
+ * Extracts the value type for a specific parameter
1483
+ *
1484
+ * TODO: Re-use `BaseType`
1485
+ */
1486
+ type FieldValueType<Q extends ActionDefinition<unknown>, K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>> = ActionParameters<Q>[K]["type"] extends ActionMetadata.DataType.Object<infer T> ? ActionParam.ObjectType<T> : ActionParameters<Q>[K]["type"] extends ActionMetadata.DataType.ObjectSet<infer T> ? ActionParam.ObjectSetType<T> : ActionParameters<Q>[K]["type"] extends ActionMetadata.DataType.Struct<infer T> ? ActionParam.StructType<T> : ActionParameters<Q>[K]["type"] extends keyof DataValueClientToWire ? DataValueClientToWire[ActionParameters<Q>[K]["type"]] : never;
1487
+ /**
1488
+ * Extracts the parameter type descriptor for a specific action parameter.
1489
+ */
1490
+ type FieldDescriptorType<Q extends ActionDefinition<unknown> = ActionDefinition<unknown>, K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>> = ActionParameters<Q>[K]["type"];
1491
+ /**
1492
+ * Available form field component types
1493
+ */
1494
+ type FieldComponent = "DATETIME_PICKER" | "DROPDOWN" | "FILE_PICKER" | "NUMBER_INPUT" | "RADIO_BUTTONS" | "OBJECT_SET" | "TEXT_AREA" | "TEXT_INPUT" | "CUSTOM";
1495
+ /**
1496
+ * Describes the data type of a form field, independent of OSDK.
1497
+ * Mirrors ActionMetadata.DataType to keep the rendering layer OSDK-agnostic.
1498
+ */
1499
+ type FieldType = "boolean" | "string" | "integer" | "long" | "double" | "datetime" | "timestamp" | "attachment" | "marking" | "mediaReference" | "objectType" | "geoshape" | "geohash" | {
1500
+ type: "object";
1501
+ object: string;
1502
+ } | {
1503
+ type: "objectSet";
1504
+ objectSet: string;
1505
+ } | {
1506
+ type: "interface";
1507
+ interface: string;
1508
+ } | {
1509
+ type: "struct";
1510
+ struct: Record<string, string>;
1511
+ };
1512
+ /**
1513
+ * An OSDK-agnostic field definition used by BaseForm and FormFieldRenderer.
1514
+ * Contains only the information needed to render a single field — no generics,
1515
+ * no compile-time parameter constraints.
1516
+ *
1517
+ * Implemented as a distributed mapped type: switching on `fieldComponent`
1518
+ * narrows `fieldComponentProps` to the correct props type automatically.
1519
+ */
1520
+ type RendererFieldDefinition = {
1521
+ [K in FieldComponent]: {
1522
+ fieldKey: string;
1523
+ fieldComponent: K;
1524
+ fieldType?: FieldType;
1525
+ label?: string;
1526
+ defaultValue?: unknown;
1527
+ isRequired?: boolean;
1528
+ placeholder?: string;
1529
+ helperText?: string;
1530
+ helperTextPlacement?: "bottom" | "tooltip";
1531
+ fieldComponentProps?: Omit<FormFieldPropsByType[K], "value" | "onChange">;
1532
+ };
1533
+ }[FieldComponent];
1534
+ /**
1535
+ * Gets valid form field types for a given property type
1536
+ */
1537
+ type ValidFormFieldForPropertyType<P extends FieldDescriptorType> = P extends "objectSet" ? "OBJECT_SET" : P extends "object" ? "DROPDOWN" : P extends "mediaReference" | "attachment" ? "FILE_PICKER" : P extends "boolean" ? "RADIO_BUTTONS" | "DROPDOWN" : P extends "string" ? "TEXT_INPUT" | "TEXT_AREA" : P extends "datetime" | "timestamp" ? "DATETIME_PICKER" : P extends "double" | "integer" | "long" | "float" | "short" | "byte" | "decimal" ? "NUMBER_INPUT" : never;
1538
+
1539
+ /**
1540
+ * Props for the ActionForm component.
1541
+ *
1542
+ * A discriminated union ensures that controlled mode (formState provided)
1543
+ * always requires onFormStateChange, and uncontrolled mode makes `onFormStateChange` optional
1544
+ */
1545
+ type ActionFormProps<Q extends ActionDefinition<unknown>> = (ActionFormConfigProps<Q> & {
1546
+ formState: FormState<Q>;
1547
+ onFormStateChange: (updater: (prevState: FormState<Q>) => FormState<Q>) => void;
1548
+ }) | (ActionFormConfigProps<Q> & {
1549
+ formState?: undefined;
1550
+ onFormStateChange?: (updater: (prevState: FormState<Q>) => FormState<Q>) => void;
1551
+ });
1552
+ interface ActionFormConfigProps<Q extends ActionDefinition<unknown>> extends Pick<BaseFormProps, "formTitle" | "isSubmitDisabled"> {
1553
+ actionDefinition: Q;
1554
+ /**
1555
+ * If not supplied, field definitions are constructed from `ActionParameters`.
1556
+ */
1557
+ formFieldDefinitions?: ReadonlyArray<FormFieldDefinition<Q>>;
1558
+ /**
1559
+ * If supplied, this will override the default submit action
1560
+ * By default, the action's applyAction will be called
1561
+ *
1562
+ * @param formState all field values when onSubmit is called
1563
+ * @param applyAction the function to execute the action
1564
+ * @returns a promise of the submission response
1565
+ */
1566
+ onSubmit?: (formState: FormState<Q>, applyAction: (args: ActionParameters<Q>) => Promise<ActionEditResponse | undefined>) => Promise<unknown> | void;
1567
+ /**
1568
+ * Called when the validation response is returned from a validateOnly submission
1569
+ *
1570
+ * @param results the validation response
1571
+ */
1572
+ onValidationResponse?: (results: ActionValidationResponse) => void;
1573
+ /**
1574
+ * Called when the action is successfully executed from a non-validateOnly submission
1575
+ *
1576
+ * @param results the submission response
1577
+ */
1578
+ onSuccess?: (results: ActionEditResponse | undefined) => void;
1579
+ /**
1580
+ * Called when there is an error in form submission
1581
+ *
1582
+ * @param error the error that occurred
1583
+ */
1584
+ onError?: (error: FormError) => void;
1585
+ }
1586
+ /**
1587
+ * Form values mapping parameter names to their values
1588
+ */
1589
+ type FormState<Q extends ActionDefinition<unknown>> = {
1590
+ [K in FieldKey<Q>]?: FieldValueType<Q, K>;
1591
+ };
1592
+ /**
1593
+ * Form error discriminated union
1594
+ */
1595
+ type FormError = {
1596
+ type: "validation";
1597
+ error: ActionValidationError;
1598
+ } | {
1599
+ type: "submission";
1600
+ error: unknown;
1601
+ } | {
1602
+ type: "unknown";
1603
+ error: unknown;
1604
+ };
1605
+ /**
1606
+ * Props for the `BaseForm` component, which renders a form without
1607
+ * OSDK data fetching.
1608
+ *
1609
+ * Uses a discriminated union so that controlled mode (`formState` provided)
1610
+ * always requires `onFieldValueChange`, and uncontrolled mode omits both.
1611
+ * `onSubmit` receives the current form state so callers can access values
1612
+ * even in uncontrolled mode.
1613
+ */
1614
+ type BaseFormProps = BaseFormCommonProps & ({
1615
+ formState: Record<string, unknown>;
1616
+ onFieldValueChange: (fieldKey: string, value: unknown) => void;
1617
+ } | {
1618
+ formState?: undefined;
1619
+ onFieldValueChange?: (fieldKey: string, value: unknown) => void;
1620
+ });
1621
+ interface BaseFormCommonProps {
1622
+ formTitle?: string;
1623
+ fieldDefinitions: ReadonlyArray<RendererFieldDefinition>;
1624
+ onSubmit: (formState: Record<string, unknown>) => void;
1625
+ isSubmitDisabled?: boolean;
1626
+ isPending?: boolean;
1627
+ isLoading?: boolean;
1628
+ className?: string;
1629
+ }
1630
+
1631
+ declare const ActionForm: <Q extends ActionDefinition<unknown>>(props: ActionFormProps<Q>) => React__default.ReactElement;
1632
+
1633
+ declare const BaseForm: React__default.FC<BaseFormProps>;
966
1634
 
967
- export { type AnnotationType, BaseFilterList, type BaseFilterListProps, BasePdfViewer, BaseTable, type BaseTableProps, type CellEditInfo, ColumnConfigDialog, type ColumnConfigDialogProps, type ColumnConfigOptions, type ColumnDefinition, type ColumnDefinitionLocator, type CustomColumnLocator, type FilterComponentType, type FilterDefinitionUnion, FilterList, type FilterListItemProps, type FilterListProps, type FilterState, type FunctionColumnLocator, ObjectTable, type ObjectTableProps, type PdfAnnotation, PdfRenderer, type PdfRendererProps, type PdfViewerProps, type PropertyColumnLocator, type PropertyFilterDefinition, type RdpColumnLocator, type RenderFilterInput, deserializeFilterStates, serializeFilterStates };
1635
+ export { ActionForm, type ActionFormProps, type ActionParameters, type AnnotationPortalTarget, type AnnotationType, BaseFilterList, type BaseFilterListProps, BaseForm, type BaseFormFieldProps, type BaseFormProps, BasePdfViewer, BaseTable, type BaseTableProps, type CellEditInfo, ColumnConfigDialog, type ColumnConfigDialogProps, type ColumnConfigOptions, type ColumnDefinition, type ColumnDefinitionLocator, type CustomColumnLocator, type CustomFieldProps, type DatetimePickerFieldProps, type DropdownFieldProps, type FieldComponent, type FieldValueType, type FilePickerProps, type FilterComponentType, type FilterDefinitionUnion, FilterList, type FilterListItemProps, type FilterListProps, type FilterState, type FormError, type FormFieldDefinition, type FormFieldPropsByType, type FormState, type FunctionColumnLocator, type NumberInputFieldProps, type ObjectSetFieldProps, ObjectTable, type ObjectTableProps, type Option, type OutlineItem, type PdfAnnotation, type PdfDownloadResult, PdfViewer, PdfViewerAnnotationLayer, type PdfViewerAnnotationLayerProps, PdfViewerContent, type PdfViewerContentProps, type PdfViewerMediaProps, PdfViewerOutlineSidebar, type PdfViewerOutlineSidebarProps, type PdfViewerProps, PdfViewerSearchBar, type PdfViewerSearchBarProps, PdfViewerSidebar, type PdfViewerSidebarProps, PdfViewerToolbar, type PdfViewerToolbarProps, type PropertyColumnLocator, type PropertyFilterDefinition, type RadioButtonsFieldProps, type RdpColumnLocator, type RenderFilterInput, type RendererFieldDefinition, type SidebarMode, type TextAreaFieldProps, type TextInputFieldProps, type UsePdfViewerCoreOptions, type UsePdfViewerCoreResult, type UsePdfViewerResult, type UsePdfViewerSearchResult, type UsePdfViewerStateOptions, type UsePdfViewerStateResult, deserializeFilterStates, serializeFilterStates, usePdfAnnotationPortals, usePdfDocument, usePdfOutline, usePdfViewer, usePdfViewerCore, usePdfViewerSearch, usePdfViewerState, usePdfViewerSync };