@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
@@ -1,3 +1,70 @@
1
- .osdkEditableInput:focus {
2
- outline: none;
1
+ .osdkEditableCell {
2
+ width: 100%;
3
+ display: flex;
4
+ justify-content: space-between;
5
+ align-items: center;
6
+ gap: var(--osdk-surface-spacing);
7
+
8
+ padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 3);
9
+ border-radius: var(--osdk-surface-border-radius);
10
+ border: var(--osdk-surface-border-width) solid transparent;
11
+ background: inherit;
12
+
13
+ tr[data-focused="true"] & {
14
+ border: var(--osdk-table-cell-editable-border);
15
+ background: var(--osdk-table-cell-editable-bg);
16
+
17
+ &.osdkEditedInput {
18
+ border: var(--osdk-table-cell-edited-border);
19
+ }
20
+
21
+ &:focus-within,
22
+ &.osdkEditedInput:focus-within {
23
+ border: var(--osdk-emphasis-focus-width) solid
24
+ var(--osdk-emphasis-focus-color);
25
+ }
26
+
27
+ &.error {
28
+ border: var(--osdk-table-cell-edited-border-error);
29
+
30
+ &:focus-within {
31
+ border: var(--osdk-emphasis-focus-width) solid
32
+ var(--osdk-intent-danger-rest);
33
+ }
34
+ }
35
+ }
36
+
37
+ &.error {
38
+ background: var(--osdk-table-cell-editable-bg);
39
+ border: var(--osdk-table-cell-edited-border-error);
40
+ }
41
+ }
42
+
43
+ .osdkEditableInput {
44
+ width: 100%;
45
+ overflow: hidden;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
48
+ text-align: left;
49
+ background: inherit;
50
+ border: none;
51
+
52
+ &:focus {
53
+ outline: none;
54
+ }
55
+ }
56
+
57
+ .osdkEditedInput {
58
+ border: var(--osdk-table-cell-edited-border);
59
+ background: var(--osdk-table-cell-editable-bg);
60
+ }
61
+
62
+ .validationError {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: var(--osdk-surface-spacing);
66
+ }
67
+
68
+ .errorIcon {
69
+ color: var(--osdk-intent-danger-rest);
3
70
  }
@@ -16,8 +16,14 @@
16
16
 
17
17
  import classNames from "classnames";
18
18
  import React from "react";
19
+ import { SkeletonBar } from "../base-components/skeleton/SkeletonBar.js";
19
20
  import styles from "./LoadingCell.module.css";
20
21
  import cellStyles from "./TableCell.module.css";
22
+ export function LoadingCellContent() {
23
+ return /*#__PURE__*/React.createElement(SkeletonBar, {
24
+ className: classNames(styles.osdkLoadingCell, styles.osdkCellSkeleton)
25
+ });
26
+ }
21
27
  export function LoadingCell({
22
28
  width
23
29
  }) {
@@ -26,8 +32,6 @@ export function LoadingCell({
26
32
  style: {
27
33
  width
28
34
  }
29
- }, /*#__PURE__*/React.createElement("div", {
30
- className: classNames(styles.osdkLoadingCell, styles.osdkCellSkeleton)
31
- }));
35
+ }, /*#__PURE__*/React.createElement(LoadingCellContent, null));
32
36
  }
33
37
  //# sourceMappingURL=LoadingCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingCell.js","names":["classNames","React","styles","cellStyles","LoadingCell","width","createElement","className","osdkTableCell","style","osdkLoadingCell","osdkCellSkeleton"],"sources":["LoadingCell.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 classNames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./LoadingCell.module.css\";\nimport cellStyles from \"./TableCell.module.css\";\n\nexport function LoadingCell({ width }: { width: number }): React.ReactElement {\n return (\n <td\n className={cellStyles.osdkTableCell}\n style={{ width }}\n >\n <div\n className={classNames(styles.osdkLoadingCell, styles.osdkCellSkeleton)}\n />\n </td>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,0BAA0B;AAC7C,OAAOC,UAAU,MAAM,wBAAwB;AAE/C,OAAO,SAASC,WAAWA,CAAC;EAAEC;AAAyB,CAAC,EAAsB;EAC5E,oBACEJ,KAAA,CAAAK,aAAA;IACEC,SAAS,EAAEJ,UAAU,CAACK,aAAc;IACpCC,KAAK,EAAE;MAAEJ;IAAM;EAAE,gBAEjBJ,KAAA,CAAAK,aAAA;IACEC,SAAS,EAAEP,UAAU,CAACE,MAAM,CAACQ,eAAe,EAAER,MAAM,CAACS,gBAAgB;EAAE,CACxE,CACC,CAAC;AAET","ignoreList":[]}
1
+ {"version":3,"file":"LoadingCell.js","names":["classNames","React","SkeletonBar","styles","cellStyles","LoadingCellContent","createElement","className","osdkLoadingCell","osdkCellSkeleton","LoadingCell","width","osdkTableCell","style"],"sources":["LoadingCell.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 classNames from \"classnames\";\nimport React from \"react\";\nimport { SkeletonBar } from \"../base-components/skeleton/SkeletonBar.js\";\nimport styles from \"./LoadingCell.module.css\";\nimport cellStyles from \"./TableCell.module.css\";\n\nexport function LoadingCellContent(): React.ReactElement {\n return (\n <SkeletonBar\n className={classNames(\n styles.osdkLoadingCell,\n styles.osdkCellSkeleton,\n )}\n />\n );\n}\n\nexport function LoadingCell({ width }: { width: number }): React.ReactElement {\n return (\n <td\n className={cellStyles.osdkTableCell}\n style={{ width }}\n >\n <LoadingCellContent />\n </td>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,4CAA4C;AACxE,OAAOC,MAAM,MAAM,0BAA0B;AAC7C,OAAOC,UAAU,MAAM,wBAAwB;AAE/C,OAAO,SAASC,kBAAkBA,CAAA,EAAuB;EACvD,oBACEJ,KAAA,CAAAK,aAAA,CAACJ,WAAW;IACVK,SAAS,EAAEP,UAAU,CACnBG,MAAM,CAACK,eAAe,EACtBL,MAAM,CAACM,gBACT;EAAE,CACH,CAAC;AAEN;AAEA,OAAO,SAASC,WAAWA,CAAC;EAAEC;AAAyB,CAAC,EAAsB;EAC5E,oBACEV,KAAA,CAAAK,aAAA;IACEC,SAAS,EAAEH,UAAU,CAACQ,aAAc;IACpCC,KAAK,EAAE;MAAEF;IAAM;EAAE,gBAEjBV,KAAA,CAAAK,aAAA,CAACD,kBAAkB,MAAE,CACnB,CAAC;AAET","ignoreList":[]}
@@ -20,29 +20,11 @@
20
20
  flex: 1;
21
21
  }
22
22
 
23
- /* Blueprint skeleton animation keyframes */
24
- @keyframes skeleton-glow {
25
- from {
26
- background: var(--osdk-table-skeleton-color-from);
27
- border-color: var(--osdk-table-skeleton-color-from);
28
- }
29
-
30
- to {
31
- background: var(--osdk-table-skeleton-color-to);
32
- border-color: var(--osdk-table-skeleton-color-to);
33
- }
34
- }
35
-
36
- .osdkCellSkeleton {
37
- animation: 1000ms linear infinite alternate skeleton-glow;
38
- background: var(--osdk-table-skeleton-color-from);
39
- background-clip: padding-box;
40
- border-color: var(--osdk-table-skeleton-color-from);
23
+ .osdkCellSkeleton.osdkCellSkeleton {
24
+ --osdk-background-skeleton-from: var(--osdk-table-skeleton-color-from);
25
+ --osdk-background-skeleton-to: var(--osdk-table-skeleton-color-to);
41
26
  border-radius: calc(var(--osdk-surface-border-radius) * 0.5);
42
- border: 1px solid var(--osdk-table-skeleton-border-color);
43
27
  box-shadow: none;
44
28
  color: transparent;
45
29
  cursor: default;
46
- pointer-events: none;
47
- user-select: none;
48
30
  }
@@ -17,12 +17,13 @@
17
17
  import React from "react";
18
18
  import { LoadingCell } from "./LoadingCell.js";
19
19
  import rowStyles from "./TableRow.module.css";
20
+ import { DEFAULT_COLUMN_WIDTH } from "./utils/constants.js";
20
21
  export function LoadingRow({
21
22
  headers,
22
23
  columnCount,
23
24
  translateY,
24
25
  rowHeight = 40,
25
- columnWidth = 80
26
+ columnWidth = DEFAULT_COLUMN_WIDTH
26
27
  }) {
27
28
  return /*#__PURE__*/React.createElement("tr", {
28
29
  className: rowStyles.osdkTableRow,
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingRow.js","names":["React","LoadingCell","rowStyles","LoadingRow","headers","columnCount","translateY","rowHeight","columnWidth","createElement","className","osdkTableRow","style","height","transform","Fragment","Array","from","length","map","_","index","width","getSize","key"],"sources":["LoadingRow.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 type { HeaderGroup, RowData } from \"@tanstack/react-table\";\nimport React from \"react\";\nimport { LoadingCell } from \"./LoadingCell.js\";\nimport rowStyles from \"./TableRow.module.css\";\n\ninterface LoadingRowProps<TData extends RowData> {\n headers: HeaderGroup<TData>[\"headers\"];\n columnCount: number;\n translateY: number;\n rowHeight?: number;\n columnWidth?: number;\n}\n\nexport function LoadingRow<TData extends RowData>({\n headers,\n columnCount,\n translateY,\n rowHeight = 40,\n columnWidth = 80,\n}: LoadingRowProps<TData>): React.ReactElement {\n return (\n <tr\n className={rowStyles.osdkTableRow}\n style={{\n height: `${rowHeight}px`,\n transform: `translateY(${translateY}px)`,\n }}\n >\n {\n <>\n {Array.from({ length: columnCount }).map((_, index) => {\n const width = headers.length > index\n ? headers[index].getSize()\n : columnWidth;\n return <LoadingCell key={`loading-cell-${index}`} width={width} />;\n })}\n </>\n }\n </tr>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,OAAOC,SAAS,MAAM,uBAAuB;AAU7C,OAAO,SAASC,UAAUA,CAAwB;EAChDC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,SAAS,GAAG,EAAE;EACdC,WAAW,GAAG;AACQ,CAAC,EAAsB;EAC7C,oBACER,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAER,SAAS,CAACS,YAAa;IAClCC,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGN,SAAS,IAAI;MACxBO,SAAS,EAAE,cAAcR,UAAU;IACrC;EAAE,gBAGAN,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAe,QAAA,QACGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEb;EAAY,CAAC,CAAC,CAACc,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;IACrD,MAAMC,KAAK,GAAGlB,OAAO,CAACc,MAAM,GAAGG,KAAK,GAChCjB,OAAO,CAACiB,KAAK,CAAC,CAACE,OAAO,CAAC,CAAC,GACxBf,WAAW;IACf,oBAAOR,KAAA,CAAAS,aAAA,CAACR,WAAW;MAACuB,GAAG,EAAE,gBAAgBH,KAAK,EAAG;MAACC,KAAK,EAAEA;IAAM,CAAE,CAAC;EACpE,CAAC,CACD,CAEF,CAAC;AAET","ignoreList":[]}
1
+ {"version":3,"file":"LoadingRow.js","names":["React","LoadingCell","rowStyles","DEFAULT_COLUMN_WIDTH","LoadingRow","headers","columnCount","translateY","rowHeight","columnWidth","createElement","className","osdkTableRow","style","height","transform","Fragment","Array","from","length","map","_","index","width","getSize","key"],"sources":["LoadingRow.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 type { HeaderGroup, RowData } from \"@tanstack/react-table\";\nimport React from \"react\";\nimport { LoadingCell } from \"./LoadingCell.js\";\nimport rowStyles from \"./TableRow.module.css\";\nimport { DEFAULT_COLUMN_WIDTH } from \"./utils/constants.js\";\n\ninterface LoadingRowProps<TData extends RowData> {\n headers: HeaderGroup<TData>[\"headers\"];\n columnCount: number;\n translateY: number;\n rowHeight?: number;\n columnWidth?: number;\n}\n\nexport function LoadingRow<TData extends RowData>({\n headers,\n columnCount,\n translateY,\n rowHeight = 40,\n columnWidth = DEFAULT_COLUMN_WIDTH,\n}: LoadingRowProps<TData>): React.ReactElement {\n return (\n <tr\n className={rowStyles.osdkTableRow}\n style={{\n height: `${rowHeight}px`,\n transform: `translateY(${translateY}px)`,\n }}\n >\n {\n <>\n {Array.from({ length: columnCount }).map((_, index) => {\n const width = headers.length > index\n ? headers[index].getSize()\n : columnWidth;\n return <LoadingCell key={`loading-cell-${index}`} width={width} />;\n })}\n </>\n }\n </tr>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,SAASC,oBAAoB,QAAQ,sBAAsB;AAU3D,OAAO,SAASC,UAAUA,CAAwB;EAChDC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,SAAS,GAAG,EAAE;EACdC,WAAW,GAAGN;AACQ,CAAC,EAAsB;EAC7C,oBACEH,KAAA,CAAAU,aAAA;IACEC,SAAS,EAAET,SAAS,CAACU,YAAa;IAClCC,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGN,SAAS,IAAI;MACxBO,SAAS,EAAE,cAAcR,UAAU;IACrC;EAAE,gBAGAP,KAAA,CAAAU,aAAA,CAAAV,KAAA,CAAAgB,QAAA,QACGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEb;EAAY,CAAC,CAAC,CAACc,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;IACrD,MAAMC,KAAK,GAAGlB,OAAO,CAACc,MAAM,GAAGG,KAAK,GAChCjB,OAAO,CAACiB,KAAK,CAAC,CAACE,OAAO,CAAC,CAAC,GACxBf,WAAW;IACf,oBAAOT,KAAA,CAAAU,aAAA,CAACT,WAAW;MAACwB,GAAG,EAAE,gBAAgBH,KAAK,EAAG;MAACC,KAAK,EAAEA;IAAM,CAAE,CAAC;EACpE,CAAC,CACD,CAEF,CAAC;AAET","ignoreList":[]}
@@ -16,6 +16,7 @@
16
16
 
17
17
  import classNames from "classnames";
18
18
  import React, { useEffect, useMemo, useRef, useState } from "react";
19
+ import { SkeletonBar } from "../base-components/skeleton/SkeletonBar.js";
19
20
  import loadingStyles from "./LoadingCell.module.css";
20
21
  import { LoadingRow } from "./LoadingRow.js";
21
22
  import bodyStyles from "./TableBody.module.css";
@@ -81,7 +82,7 @@ export function LoadingStateTable({
81
82
  style: {
82
83
  width
83
84
  }
84
- }, /*#__PURE__*/React.createElement("div", {
85
+ }, /*#__PURE__*/React.createElement(SkeletonBar, {
85
86
  className: classNames(headerStyles.osdkLoadingHeaderCell, loadingStyles.osdkCellSkeleton)
86
87
  }));
87
88
  }))), /*#__PURE__*/React.createElement("tbody", {
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingStateTable.js","names":["classNames","React","useEffect","useMemo","useRef","useState","loadingStyles","LoadingRow","bodyStyles","TableHeader","headerStyles","MIN_ROWS","LoadingStateTable","table","tableContainerRef","headerGroups","rowHeight","columnWidth","enableRowSelection","options","minHeaderCount","headers","length","hasHeadersLoaded","headerRef","bodyRef","loadingRowCount","setLoadingRowCount","loadingColumnCount","setLoadingColumnCount","current","tableWidth","clientWidth","columnsNeeded","Math","ceil","containerHeight","clientHeight","availableHeight","rowsNeeded","max","createElement","Fragment","className","osdkTableHeader","ref","osdkTableHeaderRow","Array","from","map","_","index","width","getSize","key","osdkTableHeaderCell","style","osdkLoadingHeaderCell","osdkCellSkeleton","osdkTableBody","columnCount","translateY"],"sources":["LoadingStateTable.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 type { HeaderGroup, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport loadingStyles from \"./LoadingCell.module.css\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport bodyStyles from \"./TableBody.module.css\";\nimport { TableHeader } from \"./TableHeader.js\";\nimport headerStyles from \"./TableHeader.module.css\";\n\ninterface LoadingStateTableProps<TData extends RowData> {\n table: Table<TData>;\n tableContainerRef: React.RefObject<HTMLDivElement>;\n headerGroups: Array<HeaderGroup<TData>>;\n rowHeight?: number;\n columnWidth?: number;\n}\n\nconst MIN_ROWS = 5;\n\nexport function LoadingStateTable<TData extends RowData>({\n table,\n tableContainerRef,\n headerGroups,\n rowHeight = 40,\n columnWidth = 120,\n}: LoadingStateTableProps<TData>): React.ReactElement {\n // If selection enabled, there will be a header for the selection column\n const enableRowSelection = table.options.enableRowSelection;\n const minHeaderCount = enableRowSelection ? 1 : 0;\n const headers = useMemo(\n () => headerGroups.length > 0 ? headerGroups[0].headers : [],\n [headerGroups],\n );\n const hasHeadersLoaded = headers.length > minHeaderCount;\n\n const headerRef = useRef<HTMLTableSectionElement>(null);\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n const [loadingRowCount, setLoadingRowCount] = useState<number>(MIN_ROWS);\n const [loadingColumnCount, setLoadingColumnCount] = useState<number>(\n headers.length,\n );\n // Calculate number of columns needed to fill container width\n useEffect(() => {\n if (hasHeadersLoaded) {\n setLoadingColumnCount(headers.length);\n } else {\n if (tableContainerRef.current) {\n const tableWidth = tableContainerRef.current.clientWidth;\n if (tableWidth > 0) {\n const columnsNeeded = Math.ceil(tableWidth / columnWidth);\n setLoadingColumnCount(columnsNeeded);\n }\n }\n }\n }, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);\n\n // Calculate number of rows needed to fill container height\n useEffect(() => {\n if (tableContainerRef.current) {\n const containerHeight = tableContainerRef.current.clientHeight;\n const availableHeight = containerHeight - rowHeight;\n\n if (availableHeight > 0) {\n const rowsNeeded = Math.ceil(availableHeight / rowHeight);\n setLoadingRowCount(Math.max(rowsNeeded, MIN_ROWS));\n }\n }\n }, [tableContainerRef, rowHeight]);\n\n return (\n <>\n {hasHeadersLoaded\n ? <TableHeader table={table} />\n : (\n <thead className={headerStyles.osdkTableHeader} ref={headerRef}>\n <tr className={headerStyles.osdkTableHeaderRow}>\n {Array.from({ length: loadingColumnCount }).map((\n _,\n index,\n ) => {\n const width = headers.length > index\n ? headers[index].getSize()\n : columnWidth;\n return (\n <th\n key={`loading-header-${index}`}\n className={headerStyles.osdkTableHeaderCell}\n style={{ width }}\n >\n <div\n className={classNames(\n headerStyles.osdkLoadingHeaderCell,\n loadingStyles.osdkCellSkeleton,\n )}\n />\n </th>\n );\n })}\n </tr>\n </thead>\n )}\n <tbody className={bodyStyles.osdkTableBody} ref={bodyRef}>\n {Array.from({ length: loadingRowCount }).map((_, index) => (\n <LoadingRow\n key={`skeleton-${index}`}\n columnCount={loadingColumnCount}\n headers={headers}\n translateY={rowHeight * index}\n rowHeight={rowHeight}\n columnWidth={columnWidth}\n />\n ))}\n </tbody>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LoadingStateTable.js","names":["classNames","React","useEffect","useMemo","useRef","useState","SkeletonBar","loadingStyles","LoadingRow","bodyStyles","TableHeader","headerStyles","MIN_ROWS","LoadingStateTable","table","tableContainerRef","headerGroups","rowHeight","columnWidth","enableRowSelection","options","minHeaderCount","headers","length","hasHeadersLoaded","headerRef","bodyRef","loadingRowCount","setLoadingRowCount","loadingColumnCount","setLoadingColumnCount","current","tableWidth","clientWidth","columnsNeeded","Math","ceil","containerHeight","clientHeight","availableHeight","rowsNeeded","max","createElement","Fragment","className","osdkTableHeader","ref","osdkTableHeaderRow","Array","from","map","_","index","width","getSize","key","osdkTableHeaderCell","style","osdkLoadingHeaderCell","osdkCellSkeleton","osdkTableBody","columnCount","translateY"],"sources":["LoadingStateTable.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 type { HeaderGroup, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { SkeletonBar } from \"../base-components/skeleton/SkeletonBar.js\";\nimport loadingStyles from \"./LoadingCell.module.css\";\nimport { LoadingRow } from \"./LoadingRow.js\";\nimport bodyStyles from \"./TableBody.module.css\";\nimport { TableHeader } from \"./TableHeader.js\";\nimport headerStyles from \"./TableHeader.module.css\";\n\ninterface LoadingStateTableProps<TData extends RowData> {\n table: Table<TData>;\n tableContainerRef: React.RefObject<HTMLDivElement>;\n headerGroups: Array<HeaderGroup<TData>>;\n rowHeight?: number;\n columnWidth?: number;\n}\n\nconst MIN_ROWS = 5;\n\nexport function LoadingStateTable<TData extends RowData>({\n table,\n tableContainerRef,\n headerGroups,\n rowHeight = 40,\n columnWidth = 120,\n}: LoadingStateTableProps<TData>): React.ReactElement {\n // If selection enabled, there will be a header for the selection column\n const enableRowSelection = table.options.enableRowSelection;\n const minHeaderCount = enableRowSelection ? 1 : 0;\n const headers = useMemo(\n () => headerGroups.length > 0 ? headerGroups[0].headers : [],\n [headerGroups],\n );\n const hasHeadersLoaded = headers.length > minHeaderCount;\n\n const headerRef = useRef<HTMLTableSectionElement>(null);\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n const [loadingRowCount, setLoadingRowCount] = useState<number>(MIN_ROWS);\n const [loadingColumnCount, setLoadingColumnCount] = useState<number>(\n headers.length,\n );\n // Calculate number of columns needed to fill container width\n useEffect(() => {\n if (hasHeadersLoaded) {\n setLoadingColumnCount(headers.length);\n } else {\n if (tableContainerRef.current) {\n const tableWidth = tableContainerRef.current.clientWidth;\n if (tableWidth > 0) {\n const columnsNeeded = Math.ceil(tableWidth / columnWidth);\n setLoadingColumnCount(columnsNeeded);\n }\n }\n }\n }, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);\n\n // Calculate number of rows needed to fill container height\n useEffect(() => {\n if (tableContainerRef.current) {\n const containerHeight = tableContainerRef.current.clientHeight;\n const availableHeight = containerHeight - rowHeight;\n\n if (availableHeight > 0) {\n const rowsNeeded = Math.ceil(availableHeight / rowHeight);\n setLoadingRowCount(Math.max(rowsNeeded, MIN_ROWS));\n }\n }\n }, [tableContainerRef, rowHeight]);\n\n return (\n <>\n {hasHeadersLoaded\n ? <TableHeader table={table} />\n : (\n <thead className={headerStyles.osdkTableHeader} ref={headerRef}>\n <tr className={headerStyles.osdkTableHeaderRow}>\n {Array.from({ length: loadingColumnCount }).map((\n _,\n index,\n ) => {\n const width = headers.length > index\n ? headers[index].getSize()\n : columnWidth;\n return (\n <th\n key={`loading-header-${index}`}\n className={headerStyles.osdkTableHeaderCell}\n style={{ width }}\n >\n <SkeletonBar\n className={classNames(\n headerStyles.osdkLoadingHeaderCell,\n loadingStyles.osdkCellSkeleton,\n )}\n />\n </th>\n );\n })}\n </tr>\n </thead>\n )}\n <tbody className={bodyStyles.osdkTableBody} ref={bodyRef}>\n {Array.from({ length: loadingRowCount }).map((_, index) => (\n <LoadingRow\n key={`skeleton-${index}`}\n columnCount={loadingColumnCount}\n headers={headers}\n translateY={rowHeight * index}\n rowHeight={rowHeight}\n columnWidth={columnWidth}\n />\n ))}\n </tbody>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,14 +15,13 @@
15
15
  */
16
16
 
17
17
  import { Button } from "@base-ui/react/button";
18
- import { Menu } from "@base-ui/react/menu";
19
18
  import { Add, CaretDown, Cog, SortAlphabetical, SortAlphabeticalDesc } from "@blueprintjs/icons";
20
19
  import { arrayMove } from "@dnd-kit/sortable";
21
20
  import classNames from "classnames";
22
21
  import React, { useCallback, useEffect, useMemo, useState } from "react";
23
22
  import { ActionButton } from "../base-components/action-button/ActionButton.js";
24
23
  import { Dialog } from "../base-components/dialog/Dialog.js";
25
- import { SearchBar } from "../base-components/search-bar/SearchBar.js";
24
+ import { SearchableMenu } from "../base-components/searchable-menu/SearchableMenu.js";
26
25
  import styles from "./MultiColumnSortDialog.module.css";
27
26
  import { SortableItemsList } from "./SortableItemsList.js";
28
27
  export function MultiColumnSortDialog({
@@ -33,8 +32,6 @@ export function MultiColumnSortDialog({
33
32
  columnOptions
34
33
  }) {
35
34
  const [selectedSortColumns, setSelectedSortColumns] = useState([]);
36
- const [menuSearchQuery, setMenuSearchQuery] = useState("");
37
-
38
35
  // Initialize selected sort columns from current sorting
39
36
  useEffect(() => {
40
37
  if (isOpen) {
@@ -78,21 +75,16 @@ export function MultiColumnSortDialog({
78
75
  onClose();
79
76
  }, [selectedSortColumns, onApply, onClose]);
80
77
  const availableColumns = useMemo(() => columnOptions.filter(col => col.canSort && !selectedSortColumns.some(selected => selected.id === col.id)), [columnOptions, selectedSortColumns]);
81
- const filteredAvailableColumns = useMemo(() => {
82
- const query = menuSearchQuery.toLowerCase().trim();
83
- if (!query) {
84
- return availableColumns;
85
- }
86
- return availableColumns.filter(col => col.name.toLowerCase().includes(query));
87
- }, [availableColumns, menuSearchQuery]);
88
- const handleMenuSearchChange = useCallback(event => {
89
- setMenuSearchQuery(event.target.value);
90
- }, []);
91
- const handleMenuOpenChange = useCallback(open => {
92
- if (open) {
93
- setMenuSearchQuery("");
78
+ const searchableMenuItems = useMemo(() => availableColumns.map(col => ({
79
+ key: col.id,
80
+ label: col.name
81
+ })), [availableColumns]);
82
+ const handleMenuItemSelected = useCallback(key => {
83
+ const column = availableColumns.find(col => col.id === key);
84
+ if (column) {
85
+ handleAddColumn(column);
94
86
  }
95
- }, []);
87
+ }, [availableColumns, handleAddColumn]);
96
88
  const sortableItems = useMemo(() => {
97
89
  return selectedSortColumns.map(item => ({
98
90
  id: item.id,
@@ -130,49 +122,21 @@ export function MultiColumnSortDialog({
130
122
  onReorder: handleReorderSortColumns,
131
123
  onRemove: handleRemoveSortColumn,
132
124
  className: styles.sortableList
133
- }), /*#__PURE__*/React.createElement(Menu.Root, {
134
- onOpenChange: handleMenuOpenChange
135
- }, /*#__PURE__*/React.createElement(Menu.Trigger, {
136
- className: styles.addColumnButton,
125
+ }), /*#__PURE__*/React.createElement(SearchableMenu, {
126
+ items: searchableMenuItems,
127
+ onItemSelected: handleMenuItemSelected,
128
+ trigger: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Add, {
129
+ className: styles.addIcon
130
+ }), /*#__PURE__*/React.createElement("span", {
131
+ className: styles.addColumnText
132
+ }, "Add Column to Sort"), /*#__PURE__*/React.createElement(CaretDown, null)),
133
+ triggerClassName: styles.addColumnButton,
137
134
  disabled: availableColumns.length === 0,
138
- "aria-label": "Add column to sort"
139
- }, /*#__PURE__*/React.createElement(Add, {
140
- className: styles.addIcon
141
- }), /*#__PURE__*/React.createElement("span", {
142
- className: styles.addColumnText
143
- }, "Add Column to Sort"), /*#__PURE__*/React.createElement(CaretDown, {
144
- color: "currentColor"
145
- })), /*#__PURE__*/React.createElement(Menu.Portal, null, /*#__PURE__*/React.createElement(Menu.Positioner, {
146
- className: styles.menuPositioner,
147
- sideOffset: 4
148
- }, /*#__PURE__*/React.createElement(Menu.Popup, {
149
- className: styles.dropdownMenu
150
- }, /*#__PURE__*/React.createElement(SearchBar, {
151
- value: menuSearchQuery,
152
- onChange: handleMenuSearchChange,
153
- placeholder: "Search columns",
154
- "aria-label": "Search columns to sort",
155
- className: styles.menuSearchContainer,
156
- onKeyDown: e => e.stopPropagation()
157
- }), filteredAvailableColumns.map(column => /*#__PURE__*/React.createElement(AvailableColumnMenuItem, {
158
- key: column.id,
159
- column: column,
160
- onAddColumn: handleAddColumn
161
- })), filteredAvailableColumns.length === 0 && /*#__PURE__*/React.createElement("div", {
162
- className: styles.menuEmptyState
163
- }, "No matching columns")))))));
135
+ searchPlaceholder: "Search columns",
136
+ emptyMessage: "No matching columns"
137
+ })));
164
138
  }
165
139
  const DialogTitle = /*#__PURE__*/React.createElement("div", {
166
140
  className: styles.title
167
141
  }, /*#__PURE__*/React.createElement(Cog, null), "Sort on Multiple Columns");
168
- function AvailableColumnMenuItem({
169
- column,
170
- onAddColumn
171
- }) {
172
- const onClick = useCallback(() => onAddColumn(column), [onAddColumn, column]);
173
- return /*#__PURE__*/React.createElement(Menu.Item, {
174
- className: classNames(styles.dropdownItem, styles.truncate),
175
- onClick: onClick
176
- }, column.name);
177
- }
178
142
  //# sourceMappingURL=MultiColumnSortDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiColumnSortDialog.js","names":["Button","Menu","Add","CaretDown","Cog","SortAlphabetical","SortAlphabeticalDesc","arrayMove","classNames","React","useCallback","useEffect","useMemo","useState","ActionButton","Dialog","SearchBar","styles","SortableItemsList","MultiColumnSortDialog","isOpen","onClose","onApply","currentSorting","columnOptions","selectedSortColumns","setSelectedSortColumns","menuSearchQuery","setMenuSearchQuery","selectedColumns","sort","column","find","col","id","push","direction","desc","handleAddColumn","prev","handleRemoveSortColumn","filter","item","handleReorderSortColumns","fromIndex","toIndex","items","handleToggleSortDirection","map","handleApply","sortingState","availableColumns","canSort","some","selected","filteredAvailableColumns","query","toLowerCase","trim","name","includes","handleMenuSearchChange","event","target","value","handleMenuOpenChange","open","sortableItems","label","content","createElement","className","sortColumnItem","sortColumnName","truncate","sortDirectionButton","onClick","sortIcon","footer","Fragment","variant","onOpenChange","title","DialogTitle","sortColumnsList","onReorder","onRemove","sortableList","Root","Trigger","addColumnButton","disabled","length","addIcon","addColumnText","color","Portal","Positioner","menuPositioner","sideOffset","Popup","dropdownMenu","onChange","placeholder","menuSearchContainer","onKeyDown","e","stopPropagation","AvailableColumnMenuItem","key","onAddColumn","menuEmptyState","Item","dropdownItem"],"sources":["MultiColumnSortDialog.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 { Button } from \"@base-ui/react/button\";\nimport { Menu } from \"@base-ui/react/menu\";\nimport {\n Add,\n CaretDown,\n Cog,\n SortAlphabetical,\n SortAlphabeticalDesc,\n} from \"@blueprintjs/icons\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport type { SortingState } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { Dialog } from \"../base-components/dialog/Dialog.js\";\nimport { SearchBar } from \"../base-components/search-bar/SearchBar.js\";\nimport styles from \"./MultiColumnSortDialog.module.css\";\nimport { type SortableItem, SortableItemsList } from \"./SortableItemsList.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\nexport interface SortColumnItem extends ColumnOption {\n direction: \"asc\" | \"desc\";\n}\n\ninterface MultiColumnSortDialogProps {\n isOpen: boolean;\n onClose: () => void;\n onApply: (sortColumns: SortingState) => void;\n currentSorting: SortingState;\n columnOptions: ColumnOption[];\n}\n\nexport function MultiColumnSortDialog({\n isOpen,\n onClose,\n onApply,\n currentSorting,\n columnOptions,\n}: MultiColumnSortDialogProps): React.ReactElement {\n const [selectedSortColumns, setSelectedSortColumns] = useState<\n SortColumnItem[]\n >([]);\n const [menuSearchQuery, setMenuSearchQuery] = useState(\"\");\n\n // Initialize selected sort columns from current sorting\n useEffect(() => {\n if (isOpen) {\n const selectedColumns: SortColumnItem[] = [];\n for (const sort of currentSorting) {\n const column = columnOptions.find((col) => col.id === sort.id);\n if (column) {\n selectedColumns.push({\n ...column,\n direction: sort.desc ? \"desc\" : \"asc\",\n });\n }\n }\n setSelectedSortColumns(selectedColumns);\n }\n }, [isOpen, currentSorting, columnOptions]);\n\n const handleAddColumn = useCallback((column: ColumnOption) => {\n setSelectedSortColumns((prev) => [\n ...prev,\n { ...column, direction: \"asc\" },\n ]);\n }, []);\n\n const handleRemoveSortColumn = useCallback((id: string) => {\n setSelectedSortColumns((prev) => prev.filter((item) => item.id !== id));\n }, []);\n\n const handleReorderSortColumns = useCallback(\n (fromIndex: number, toIndex: number) => {\n setSelectedSortColumns((items) => arrayMove(items, fromIndex, toIndex));\n },\n [],\n );\n\n const handleToggleSortDirection = useCallback((id: string) => {\n setSelectedSortColumns((prev) =>\n prev.map((item) =>\n item.id === id\n ? { ...item, direction: item.direction === \"asc\" ? \"desc\" : \"asc\" }\n : item\n )\n );\n }, []);\n\n const handleApply = useCallback(() => {\n const sortingState: SortingState = selectedSortColumns.map((col) => ({\n id: col.id,\n desc: col.direction === \"desc\",\n }));\n onApply(sortingState);\n onClose();\n }, [selectedSortColumns, onApply, onClose]);\n\n const availableColumns = useMemo(\n () =>\n columnOptions.filter(\n (col) =>\n col.canSort\n && !selectedSortColumns.some((selected) => selected.id === col.id),\n ),\n [columnOptions, selectedSortColumns],\n );\n\n const filteredAvailableColumns = useMemo(() => {\n const query = menuSearchQuery.toLowerCase().trim();\n if (!query) {\n return availableColumns;\n }\n return availableColumns.filter((col) =>\n col.name.toLowerCase().includes(query)\n );\n }, [availableColumns, menuSearchQuery]);\n\n const handleMenuSearchChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setMenuSearchQuery(event.target.value);\n },\n [],\n );\n\n const handleMenuOpenChange = useCallback((open: boolean) => {\n if (open) {\n setMenuSearchQuery(\"\");\n }\n }, []);\n\n const sortableItems: SortableItem[] = useMemo(() => {\n return selectedSortColumns.map((item) => ({\n id: item.id,\n label: item.name,\n content: (\n <div className={styles.sortColumnItem}>\n <span className={classNames(styles.sortColumnName, styles.truncate)}>\n {item.name}\n </span>\n <Button\n className={styles.sortDirectionButton}\n onClick={() => handleToggleSortDirection(item.id)}\n aria-label={`Toggle sort direction for ${item.name}`}\n >\n {item.direction === \"asc\"\n ? <SortAlphabetical className={styles.sortIcon} />\n : <SortAlphabeticalDesc className={styles.sortIcon} />}\n </Button>\n </div>\n ),\n }));\n }, [selectedSortColumns, handleToggleSortDirection]);\n\n const footer = useMemo(() => (\n <>\n <ActionButton onClick={onClose}>Cancel</ActionButton>\n <ActionButton variant=\"primary\" onClick={handleApply}>\n Apply\n </ActionButton>\n </>\n ), [handleApply, onClose]);\n\n return (\n <Dialog\n isOpen={isOpen}\n onOpenChange={onClose}\n title={DialogTitle}\n footer={footer}\n >\n <div className={styles.sortColumnsList}>\n <SortableItemsList\n items={sortableItems}\n onReorder={handleReorderSortColumns}\n onRemove={handleRemoveSortColumn}\n className={styles.sortableList}\n />\n <Menu.Root onOpenChange={handleMenuOpenChange}>\n <Menu.Trigger\n className={styles.addColumnButton}\n disabled={availableColumns.length === 0}\n aria-label=\"Add column to sort\"\n >\n <Add className={styles.addIcon} />\n <span className={styles.addColumnText}>\n Add Column to Sort\n </span>\n <CaretDown color={\"currentColor\"} />\n </Menu.Trigger>\n <Menu.Portal>\n <Menu.Positioner className={styles.menuPositioner} sideOffset={4}>\n <Menu.Popup className={styles.dropdownMenu}>\n <SearchBar\n value={menuSearchQuery}\n onChange={handleMenuSearchChange}\n placeholder=\"Search columns\"\n aria-label=\"Search columns to sort\"\n className={styles.menuSearchContainer}\n onKeyDown={(e) => e.stopPropagation()}\n />\n {filteredAvailableColumns.map((column) => (\n <AvailableColumnMenuItem\n key={column.id}\n column={column}\n onAddColumn={handleAddColumn}\n />\n ))}\n {filteredAvailableColumns.length === 0 && (\n <div className={styles.menuEmptyState}>\n No matching columns\n </div>\n )}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n </div>\n </Dialog>\n );\n}\n\nconst DialogTitle = (\n <div className={styles.title}>\n <Cog />Sort on Multiple Columns\n </div>\n);\nfunction AvailableColumnMenuItem(\n { column, onAddColumn }: {\n column: ColumnOption;\n onAddColumn: (column: ColumnOption) => void;\n },\n) {\n const onClick = useCallback(() => onAddColumn(column), [onAddColumn, column]);\n\n return (\n <Menu.Item\n className={classNames(styles.dropdownItem, styles.truncate)}\n onClick={onClick}\n >\n {column.name}\n </Menu.Item>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MultiColumnSortDialog.js","names":["Button","Add","CaretDown","Cog","SortAlphabetical","SortAlphabeticalDesc","arrayMove","classNames","React","useCallback","useEffect","useMemo","useState","ActionButton","Dialog","SearchableMenu","styles","SortableItemsList","MultiColumnSortDialog","isOpen","onClose","onApply","currentSorting","columnOptions","selectedSortColumns","setSelectedSortColumns","selectedColumns","sort","column","find","col","id","push","direction","desc","handleAddColumn","prev","handleRemoveSortColumn","filter","item","handleReorderSortColumns","fromIndex","toIndex","items","handleToggleSortDirection","map","handleApply","sortingState","availableColumns","canSort","some","selected","searchableMenuItems","key","label","name","handleMenuItemSelected","sortableItems","content","createElement","className","sortColumnItem","sortColumnName","truncate","sortDirectionButton","onClick","sortIcon","footer","Fragment","variant","onOpenChange","title","DialogTitle","sortColumnsList","onReorder","onRemove","sortableList","onItemSelected","trigger","addIcon","addColumnText","triggerClassName","addColumnButton","disabled","length","searchPlaceholder","emptyMessage"],"sources":["MultiColumnSortDialog.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 { Button } from \"@base-ui/react/button\";\nimport {\n Add,\n CaretDown,\n Cog,\n SortAlphabetical,\n SortAlphabeticalDesc,\n} from \"@blueprintjs/icons\";\nimport { arrayMove } from \"@dnd-kit/sortable\";\nimport type { SortingState } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { Dialog } from \"../base-components/dialog/Dialog.js\";\nimport { SearchableMenu } from \"../base-components/searchable-menu/SearchableMenu.js\";\nimport styles from \"./MultiColumnSortDialog.module.css\";\nimport { type SortableItem, SortableItemsList } from \"./SortableItemsList.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\nexport interface SortColumnItem extends ColumnOption {\n direction: \"asc\" | \"desc\";\n}\n\ninterface MultiColumnSortDialogProps {\n isOpen: boolean;\n onClose: () => void;\n onApply: (sortColumns: SortingState) => void;\n currentSorting: SortingState;\n columnOptions: ColumnOption[];\n}\n\nexport function MultiColumnSortDialog({\n isOpen,\n onClose,\n onApply,\n currentSorting,\n columnOptions,\n}: MultiColumnSortDialogProps): React.ReactElement {\n const [selectedSortColumns, setSelectedSortColumns] = useState<\n SortColumnItem[]\n >([]);\n // Initialize selected sort columns from current sorting\n useEffect(() => {\n if (isOpen) {\n const selectedColumns: SortColumnItem[] = [];\n for (const sort of currentSorting) {\n const column = columnOptions.find((col) => col.id === sort.id);\n if (column) {\n selectedColumns.push({\n ...column,\n direction: sort.desc ? \"desc\" : \"asc\",\n });\n }\n }\n setSelectedSortColumns(selectedColumns);\n }\n }, [isOpen, currentSorting, columnOptions]);\n\n const handleAddColumn = useCallback((column: ColumnOption) => {\n setSelectedSortColumns((prev) => [\n ...prev,\n { ...column, direction: \"asc\" },\n ]);\n }, []);\n\n const handleRemoveSortColumn = useCallback((id: string) => {\n setSelectedSortColumns((prev) => prev.filter((item) => item.id !== id));\n }, []);\n\n const handleReorderSortColumns = useCallback(\n (fromIndex: number, toIndex: number) => {\n setSelectedSortColumns((items) => arrayMove(items, fromIndex, toIndex));\n },\n [],\n );\n\n const handleToggleSortDirection = useCallback((id: string) => {\n setSelectedSortColumns((prev) =>\n prev.map((item) =>\n item.id === id\n ? { ...item, direction: item.direction === \"asc\" ? \"desc\" : \"asc\" }\n : item\n )\n );\n }, []);\n\n const handleApply = useCallback(() => {\n const sortingState: SortingState = selectedSortColumns.map((col) => ({\n id: col.id,\n desc: col.direction === \"desc\",\n }));\n onApply(sortingState);\n onClose();\n }, [selectedSortColumns, onApply, onClose]);\n\n const availableColumns = useMemo(\n () =>\n columnOptions.filter(\n (col) =>\n col.canSort\n && !selectedSortColumns.some((selected) => selected.id === col.id),\n ),\n [columnOptions, selectedSortColumns],\n );\n\n const searchableMenuItems = useMemo(\n () => availableColumns.map((col) => ({ key: col.id, label: col.name })),\n [availableColumns],\n );\n\n const handleMenuItemSelected = useCallback(\n (key: string) => {\n const column = availableColumns.find((col) => col.id === key);\n if (column) {\n handleAddColumn(column);\n }\n },\n [availableColumns, handleAddColumn],\n );\n\n const sortableItems: SortableItem[] = useMemo(() => {\n return selectedSortColumns.map((item) => ({\n id: item.id,\n label: item.name,\n content: (\n <div className={styles.sortColumnItem}>\n <span className={classNames(styles.sortColumnName, styles.truncate)}>\n {item.name}\n </span>\n <Button\n className={styles.sortDirectionButton}\n onClick={() => handleToggleSortDirection(item.id)}\n aria-label={`Toggle sort direction for ${item.name}`}\n >\n {item.direction === \"asc\"\n ? (\n <SortAlphabetical\n className={styles.sortIcon}\n />\n )\n : (\n <SortAlphabeticalDesc\n className={styles.sortIcon}\n />\n )}\n </Button>\n </div>\n ),\n }));\n }, [selectedSortColumns, handleToggleSortDirection]);\n\n const footer = useMemo(() => (\n <>\n <ActionButton onClick={onClose}>Cancel</ActionButton>\n <ActionButton variant=\"primary\" onClick={handleApply}>\n Apply\n </ActionButton>\n </>\n ), [handleApply, onClose]);\n\n return (\n <Dialog\n isOpen={isOpen}\n onOpenChange={onClose}\n title={DialogTitle}\n footer={footer}\n >\n <div className={styles.sortColumnsList}>\n <SortableItemsList\n items={sortableItems}\n onReorder={handleReorderSortColumns}\n onRemove={handleRemoveSortColumn}\n className={styles.sortableList}\n />\n <SearchableMenu\n items={searchableMenuItems}\n onItemSelected={handleMenuItemSelected}\n trigger={\n <>\n <Add className={styles.addIcon} />\n <span className={styles.addColumnText}>\n Add Column to Sort\n </span>\n <CaretDown />\n </>\n }\n triggerClassName={styles.addColumnButton}\n disabled={availableColumns.length === 0}\n searchPlaceholder=\"Search columns\"\n emptyMessage=\"No matching columns\"\n />\n </div>\n </Dialog>\n );\n}\n\nconst DialogTitle = (\n <div className={styles.title}>\n <Cog />Sort on Multiple Columns\n </div>\n);\n"],"mappings":"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","ignoreList":[]}
@@ -102,10 +102,6 @@
102
102
  cursor: not-allowed;
103
103
  }
104
104
 
105
- &:focus {
106
- outline: none;
107
- }
108
-
109
105
  &:focus-visible {
110
106
  outline: var(--osdk-focus-outline);
111
107
  outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));
@@ -115,7 +111,6 @@
115
111
  .addIcon {
116
112
  width: var(--osdk-iconography-size-small);
117
113
  height: var(--osdk-iconography-size-small);
118
- color: currentColor;
119
114
  }
120
115
 
121
116
  .addColumnText {
@@ -123,70 +118,6 @@
123
118
  text-align: left;
124
119
  }
125
120
 
126
- .menuPositioner {
127
- z-index: var(--osdk-surface-z-index-2);
128
- }
129
-
130
- .dropdownMenu {
131
- background-color: var(--osdk-surface-background-color-default-rest);
132
- border: var(--osdk-surface-border);
133
- border-radius: var(--osdk-surface-border-radius);
134
- box-shadow: var(--osdk-surface-shadow-2);
135
- max-height: calc(var(--osdk-dialog-max-height) * 0.5);
136
- overflow-y: auto;
137
- width: var(--anchor-width);
138
-
139
- &:focus {
140
- outline: none;
141
- }
142
-
143
- &:focus-visible {
144
- outline: var(--osdk-focus-outline);
145
- outline-offset: var(--osdk-focus-visible-outline-offset);
146
- }
147
- }
148
-
149
- .menuSearchContainer {
150
- border: none;
151
- border-bottom: var(--osdk-surface-border);
152
- border-radius: 0;
153
- position: sticky;
154
- top: 0;
155
- background-color: var(--osdk-surface-background-color-default-rest);
156
- }
157
-
158
- .menuEmptyState {
159
- padding: calc(var(--osdk-surface-spacing) * 3);
160
- text-align: center;
161
- color: var(--osdk-typography-color-muted);
162
- font-size: var(--osdk-typography-size-body-medium);
163
- }
164
-
165
- .dropdownItem {
166
- display: block;
167
- width: 100%;
168
- text-align: left;
169
- padding: calc(var(--osdk-surface-spacing) * 2)
170
- calc(var(--osdk-surface-spacing) * 3);
171
- background: none;
172
- border: none;
173
- cursor: pointer;
174
- font-size: var(--osdk-typography-size-body-medium);
175
- color: var(--osdk-typography-color-default-rest);
176
-
177
- &:hover {
178
- background-color: var(--osdk-surface-background-color-default-hover);
179
- }
180
-
181
- &:focus {
182
- outline: none;
183
- }
184
-
185
- &:focus-visible {
186
- outline: var(--osdk-focus-outline);
187
- outline-offset: calc(-1 * var(--osdk-focus-visible-outline-offset));
188
- }
189
- }
190
121
 
191
122
  .truncate {
192
123
  overflow: hidden;
@@ -27,7 +27,6 @@ import { useSelectionColumn } from "./hooks/useSelectionColumn.js";
27
27
  import { useTableSorting } from "./hooks/useTableSorting.js";
28
28
  import { BaseTable } from "./Table.js";
29
29
  import { getRowId } from "./utils/getRowId.js";
30
-
31
30
  /**
32
31
  * ObjectTable - A headless table component for displaying OSDK object sets
33
32
  *
@@ -37,6 +36,7 @@ import { getRowId } from "./utils/getRowId.js";
37
36
  * ```
38
37
  */
39
38
 
39
+ const EMPTY_ARRAY = [];
40
40
  export function ObjectTable({
41
41
  objectType,
42
42
  objectSet,
@@ -52,6 +52,7 @@ export function ObjectTable({
52
52
  renderCellContextMenu,
53
53
  selectionMode = "none",
54
54
  selectedRows,
55
+ isAllSelected: isAllSelectedProp,
55
56
  onColumnVisibilityChanged,
56
57
  onCellValueChanged,
57
58
  onSubmitEdits,
@@ -59,6 +60,7 @@ export function ObjectTable({
59
60
  enableColumnPinning = true,
60
61
  enableColumnResizing = true,
61
62
  enableColumnConfig = true,
63
+ editMode = "manual",
62
64
  ...props
63
65
  }) {
64
66
  const {
@@ -67,15 +69,6 @@ export function ObjectTable({
67
69
  } = useColumnResize({
68
70
  onColumnResize
69
71
  });
70
- const {
71
- cellEdits,
72
- clearEdits,
73
- handleCellEdit,
74
- handleSubmitEdits
75
- } = useEditableTable({
76
- onCellValueChanged,
77
- onSubmitEdits
78
- });
79
72
  const {
80
73
  sorting,
81
74
  onSortingChange
@@ -104,6 +97,7 @@ export function ObjectTable({
104
97
  } = useRowSelection({
105
98
  selectionMode,
106
99
  selectedRows,
100
+ isAllSelected: isAllSelectedProp,
107
101
  onRowSelection,
108
102
  data
109
103
  });
@@ -134,8 +128,13 @@ export function ObjectTable({
134
128
  const allColumns = useMemo(() => {
135
129
  return selectionColumn ? [selectionColumn, ...columns] : columns;
136
130
  }, [selectionColumn, columns]);
131
+ const editableConfig = useEditableTable({
132
+ editMode,
133
+ onCellValueChanged,
134
+ onSubmitEdits
135
+ });
137
136
  const table = useReactTable({
138
- data: data ?? [],
137
+ data: data ?? EMPTY_ARRAY,
139
138
  columns: allColumns,
140
139
  getCoreRowModel: getCoreRowModel(),
141
140
  state: {
@@ -162,8 +161,12 @@ export function ObjectTable({
162
161
  },
163
162
  getRowId,
164
163
  meta: {
165
- onCellEdit: handleCellEdit,
166
- cellEdits
164
+ onCellEdit: editableConfig.onCellEdit,
165
+ onCellValidationError: editableConfig.onCellValidationError,
166
+ clearCellValidationError: editableConfig.clearCellValidationError,
167
+ cellEdits: editableConfig.cellEdits,
168
+ isInEditMode: editableConfig.editModeState.isActive,
169
+ validationErrors: editableConfig.validationErrors
167
170
  }
168
171
  });
169
172
  const onRenderCellContextMenu = useCallback((row, cell) => {
@@ -175,16 +178,6 @@ export function ObjectTable({
175
178
  showResizeItem: enableColumnResizing,
176
179
  showConfigItem: enableColumnConfig
177
180
  }), [enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig]);
178
- const editableConfig = useMemo(() => {
179
- if (!onSubmitEdits) {
180
- return;
181
- }
182
- return {
183
- onSubmitEdits: handleSubmitEdits,
184
- clearEdits,
185
- cellEdits
186
- };
187
- }, [onSubmitEdits, handleSubmitEdits, clearEdits, cellEdits]);
188
181
  return /*#__PURE__*/React.createElement(BaseTable, {
189
182
  table: table,
190
183
  isLoading: isLoading || isColumnsLoading,