@osdk/react-components 0.3.0 → 0.4.0-main-90a01d202dfa1e497125bd6cfcdc8175278fb7ec

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 (99) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  3. package/build/browser/action-form/BaseForm.js +100 -12
  4. package/build/browser/action-form/BaseForm.js.map +1 -1
  5. package/build/browser/action-form/BaseForm.module.css +21 -1
  6. package/build/browser/action-form/BaseForm.module.css.js +4 -1
  7. package/build/browser/action-form/FormField.js +3 -1
  8. package/build/browser/action-form/FormField.js.map +1 -1
  9. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  10. package/build/browser/action-form/fields/BaseInput.module.css +4 -0
  11. package/build/browser/action-form/fields/DatetimePickerField.js +3 -1
  12. package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -1
  13. package/build/browser/action-form/fields/DatetimePickerField.module.css +4 -0
  14. package/build/browser/action-form/fields/FieldBridge.js +31 -4
  15. package/build/browser/action-form/fields/FieldBridge.js.map +1 -1
  16. package/build/browser/action-form/fields/FilePickerField.js +6 -2
  17. package/build/browser/action-form/fields/FilePickerField.js.map +1 -1
  18. package/build/browser/action-form/fields/FilePickerField.module.css +4 -0
  19. package/build/browser/action-form/fields/FormFieldRenderer.js +24 -12
  20. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  21. package/build/browser/action-form/fields/NumberInputField.js +12 -8
  22. package/build/browser/action-form/fields/NumberInputField.js.map +1 -1
  23. package/build/browser/action-form/fields/NumberInputField.module.css +4 -0
  24. package/build/browser/action-form/fields/TextAreaField.js +3 -1
  25. package/build/browser/action-form/fields/TextAreaField.js.map +1 -1
  26. package/build/browser/action-form/fields/TextInputField.js +3 -1
  27. package/build/browser/action-form/fields/TextInputField.js.map +1 -1
  28. package/build/browser/action-form/utils/extractValidationRules.js +186 -0
  29. package/build/browser/action-form/utils/extractValidationRules.js.map +1 -0
  30. package/build/browser/public/experimental.js.map +1 -1
  31. package/build/browser/shared/hooks/useAsyncAction.js +56 -0
  32. package/build/browser/shared/hooks/useAsyncAction.js.map +1 -0
  33. package/build/browser/shared/hooks/useIsMounted.js +32 -0
  34. package/build/browser/shared/hooks/useIsMounted.js.map +1 -0
  35. package/build/browser/styles.css +37 -1
  36. package/build/cjs/public/experimental.cjs +361 -37
  37. package/build/cjs/public/experimental.cjs.map +1 -1
  38. package/build/cjs/public/experimental.css +30 -1
  39. package/build/cjs/public/experimental.css.map +1 -1
  40. package/build/cjs/public/experimental.d.cts +40 -13
  41. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  42. package/build/esm/action-form/BaseForm.js +100 -12
  43. package/build/esm/action-form/BaseForm.js.map +1 -1
  44. package/build/esm/action-form/BaseForm.module.css +21 -1
  45. package/build/esm/action-form/FormField.js +3 -1
  46. package/build/esm/action-form/FormField.js.map +1 -1
  47. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  48. package/build/esm/action-form/fields/BaseInput.module.css +4 -0
  49. package/build/esm/action-form/fields/DatetimePickerField.js +3 -1
  50. package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -1
  51. package/build/esm/action-form/fields/DatetimePickerField.module.css +4 -0
  52. package/build/esm/action-form/fields/FieldBridge.js +31 -4
  53. package/build/esm/action-form/fields/FieldBridge.js.map +1 -1
  54. package/build/esm/action-form/fields/FilePickerField.js +6 -2
  55. package/build/esm/action-form/fields/FilePickerField.js.map +1 -1
  56. package/build/esm/action-form/fields/FilePickerField.module.css +4 -0
  57. package/build/esm/action-form/fields/FormFieldRenderer.js +24 -12
  58. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  59. package/build/esm/action-form/fields/NumberInputField.js +12 -8
  60. package/build/esm/action-form/fields/NumberInputField.js.map +1 -1
  61. package/build/esm/action-form/fields/NumberInputField.module.css +4 -0
  62. package/build/esm/action-form/fields/TextAreaField.js +3 -1
  63. package/build/esm/action-form/fields/TextAreaField.js.map +1 -1
  64. package/build/esm/action-form/fields/TextInputField.js +3 -1
  65. package/build/esm/action-form/fields/TextInputField.js.map +1 -1
  66. package/build/esm/action-form/utils/extractValidationRules.js +186 -0
  67. package/build/esm/action-form/utils/extractValidationRules.js.map +1 -0
  68. package/build/esm/public/experimental.js.map +1 -1
  69. package/build/esm/shared/hooks/useAsyncAction.js +56 -0
  70. package/build/esm/shared/hooks/useAsyncAction.js.map +1 -0
  71. package/build/esm/shared/hooks/useIsMounted.js +32 -0
  72. package/build/esm/shared/hooks/useIsMounted.js.map +1 -0
  73. package/build/types/action-form/ActionFormApi.d.ts +1 -1
  74. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  75. package/build/types/action-form/BaseForm.d.ts.map +1 -1
  76. package/build/types/action-form/FormField.d.ts +1 -0
  77. package/build/types/action-form/FormField.d.ts.map +1 -1
  78. package/build/types/action-form/FormFieldApi.d.ts +39 -12
  79. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  80. package/build/types/action-form/fields/DatetimePickerField.d.ts +1 -1
  81. package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -1
  82. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -1
  83. package/build/types/action-form/fields/FormFieldRenderer.d.ts +2 -0
  84. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  85. package/build/types/action-form/fields/NumberInputField.d.ts +1 -1
  86. package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -1
  87. package/build/types/action-form/fields/TextAreaField.d.ts +1 -1
  88. package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -1
  89. package/build/types/action-form/fields/TextInputField.d.ts +1 -1
  90. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
  91. package/build/types/action-form/utils/extractValidationRules.d.ts +13 -0
  92. package/build/types/action-form/utils/extractValidationRules.d.ts.map +1 -0
  93. package/build/types/public/experimental.d.ts +1 -1
  94. package/build/types/public/experimental.d.ts.map +1 -1
  95. package/build/types/shared/hooks/useAsyncAction.d.ts +16 -0
  96. package/build/types/shared/hooks/useAsyncAction.d.ts.map +1 -0
  97. package/build/types/shared/hooks/useIsMounted.d.ts +5 -0
  98. package/build/types/shared/hooks/useIsMounted.d.ts.map +1 -0
  99. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"experimental.js","names":["BaseFilterList","FilterList","deserializeFilterStates","serializeFilterStates","ObjectTable","BaseTable","ColumnConfigDialog","MultiColumnSortDialog","BasePdfViewer","PdfViewerAnnotationLayer","PdfViewerContent","PdfViewerOutlineSidebar","PdfViewerSearchBar","PdfViewerSidebar","PdfViewerToolbar","usePdfAnnotationPortals","usePdfAnnotationsByPage","usePdfDocument","usePdfFormFields","usePdfHighlightMode","usePdfOutline","usePdfViewer","usePdfViewerSearch","usePdfViewerSync","PdfViewerProvider","usePdfViewerContext","usePdfViewerInstance","usePdfViewerCore","usePdfViewerState","PdfViewer","ActionForm","BaseForm"],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BaseFilterList } from \"../filter-list/base/BaseFilterList.js\";\nexport type {\n BaseFilterListProps,\n RenderFilterInput,\n} from \"../filter-list/base/BaseFilterListApi.js\";\nexport { FilterList } from \"../filter-list/FilterList.js\";\n\nexport type {\n FilterDefinitionUnion,\n FilterListProps,\n} from \"../filter-list/FilterListApi.js\";\nexport type {\n FilterComponentType,\n FilterListItemProps,\n FilterState,\n PropertyFilterDefinition,\n} from \"../filter-list/FilterListItemApi.js\";\nexport {\n deserializeFilterStates,\n serializeFilterStates,\n} from \"../filter-list/utils/filterStateSerialization.js\";\n\n// ObjectTable that loads and displays data for a given objectSet\nexport { ObjectTable } from \"../object-table/ObjectTable.js\";\nexport type {\n ColumnDefinition,\n ColumnDefinitionLocator,\n CustomColumnLocator,\n FunctionColumnLocator,\n ObjectTableProps,\n PropertyColumnLocator,\n RdpColumnLocator,\n} from \"../object-table/ObjectTableApi.js\";\nexport type { CellEditInfo } from \"../object-table/utils/types.js\";\n\n// BaseTable that does not handle data fetching\nexport type { BaseTableProps } from \"../object-table/Table.js\";\nexport { BaseTable } from \"../object-table/Table.js\";\n\nexport { ColumnConfigDialog } from \"../object-table/ColumnConfigDialog.js\";\nexport type {\n ColumnConfigDialogProps,\n ColumnConfigOptions,\n} from \"../object-table/ColumnConfigDialog.js\";\n\nexport { MultiColumnSortDialog } from \"../object-table/MultiColumnSortDialog.js\";\nexport type {\n MultiColumnSortDialogProps,\n SortColumnItem,\n} from \"../object-table/MultiColumnSortDialog.js\";\n\n// PdfViewer\nexport { BasePdfViewer } from \"../pdf-viewer/PdfViewer.js\";\nexport type {\n AnnotationType,\n PdfAnnotation,\n PdfAnnotationRenderProps,\n PdfCustomAnnotation,\n PdfDownloadResult,\n PdfFormFieldValue,\n PdfRect,\n PdfTextHighlightEvent,\n PdfViewerProps,\n SidebarMode,\n} from \"../pdf-viewer/types.js\";\n\n// PdfViewer building blocks\nexport {\n PdfViewerAnnotationLayer,\n type PdfViewerAnnotationLayerProps,\n} from \"../pdf-viewer/components/PdfViewerAnnotationLayer.js\";\nexport {\n PdfViewerContent,\n type PdfViewerContentProps,\n} from \"../pdf-viewer/components/PdfViewerContent.js\";\nexport {\n PdfViewerOutlineSidebar,\n type PdfViewerOutlineSidebarProps,\n} from \"../pdf-viewer/components/PdfViewerOutlineSidebar.js\";\nexport {\n PdfViewerSearchBar,\n type PdfViewerSearchBarProps,\n} from \"../pdf-viewer/components/PdfViewerSearchBar.js\";\nexport {\n PdfViewerSidebar,\n type PdfViewerSidebarProps,\n} from \"../pdf-viewer/components/PdfViewerSidebar.js\";\nexport {\n PdfViewerToolbar,\n type PdfViewerToolbarProps,\n} from \"../pdf-viewer/components/PdfViewerToolbar.js\";\n\n// PdfViewer hooks — primitive\nexport {\n type AnnotationPortalTarget,\n usePdfAnnotationPortals,\n} from \"../pdf-viewer/hooks/usePdfAnnotationPortals.js\";\nexport { usePdfAnnotationsByPage } from \"../pdf-viewer/hooks/usePdfAnnotationsByPage.js\";\nexport { usePdfDocument } from \"../pdf-viewer/hooks/usePdfDocument.js\";\nexport {\n usePdfFormFields,\n type UsePdfFormFieldsOptions,\n type UsePdfFormFieldsResult,\n} from \"../pdf-viewer/hooks/usePdfFormFields.js\";\nexport {\n usePdfHighlightMode,\n type UsePdfHighlightModeOptions,\n type UsePdfHighlightModeResult,\n} from \"../pdf-viewer/hooks/usePdfHighlightMode.js\";\nexport { usePdfOutline } from \"../pdf-viewer/hooks/usePdfOutline.js\";\nexport {\n usePdfViewer,\n type UsePdfViewerResult,\n} from \"../pdf-viewer/hooks/usePdfViewer.js\";\nexport {\n usePdfViewerSearch,\n type UsePdfViewerSearchResult,\n} from \"../pdf-viewer/hooks/usePdfViewerSearch.js\";\nexport { usePdfViewerSync } from \"../pdf-viewer/hooks/usePdfViewerSync.js\";\nexport { type OutlineItem } from \"../pdf-viewer/types.js\";\n\n// PdfViewer context\nexport {\n type PdfViewerContextValue,\n PdfViewerProvider,\n usePdfViewerContext,\n usePdfViewerInstance,\n} from \"../pdf-viewer/PdfViewerContext.js\";\nexport type {\n PdfViewerHandle,\n PdfViewerInstanceOptions,\n} from \"../pdf-viewer/types.js\";\n\n// PdfViewer hooks — composition\nexport {\n usePdfViewerCore,\n type UsePdfViewerCoreOptions,\n type UsePdfViewerCoreResult,\n} from \"../pdf-viewer/hooks/usePdfViewerCore.js\";\nexport {\n usePdfViewerState,\n type UsePdfViewerStateOptions,\n type UsePdfViewerStateResult,\n} from \"../pdf-viewer/hooks/usePdfViewerState.js\";\n\n// PdfViewer (Media wrapper)\nexport {\n PdfViewer,\n type PdfViewerMediaProps,\n} from \"../pdf-viewer/PdfRenderer.js\";\n\nexport { ActionForm } from \"../action-form/ActionForm.js\";\nexport type {\n ActionFormProps,\n BaseFormProps,\n FormError,\n FormState,\n} from \"../action-form/ActionFormApi.js\";\nexport { BaseForm } from \"../action-form/BaseForm.js\";\nexport type {\n ActionParameters,\n BaseFormFieldProps,\n CustomFieldProps,\n DatetimePickerFieldProps,\n DropdownFieldProps,\n FieldComponent,\n FieldValueType,\n FilePickerProps,\n FormFieldDefinition,\n FormFieldPropsByType,\n NumberInputFieldProps,\n ObjectSetFieldProps,\n Option,\n RadioButtonsFieldProps,\n RendererFieldDefinition,\n TextAreaFieldProps,\n TextInputFieldProps,\n} from \"../action-form/FormFieldApi.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,uCAAuC;AAKtE,SAASC,UAAU,QAAQ,8BAA8B;AAYzD,SACEC,uBAAuB,EACvBC,qBAAqB,QAChB,kDAAkD;;AAEzD;AACA,SAASC,WAAW,QAAQ,gCAAgC;;AAY5D;;AAEA,SAASC,SAAS,QAAQ,0BAA0B;AAEpD,SAASC,kBAAkB,QAAQ,uCAAuC;AAM1E,SAASC,qBAAqB,QAAQ,0CAA0C;AAMhF;AACA,SAASC,aAAa,QAAQ,4BAA4B;AAc1D;AACA,SACEC,wBAAwB,QAEnB,sDAAsD;AAC7D,SACEC,gBAAgB,QAEX,8CAA8C;AACrD,SACEC,uBAAuB,QAElB,qDAAqD;AAC5D,SACEC,kBAAkB,QAEb,gDAAgD;AACvD,SACEC,gBAAgB,QAEX,8CAA8C;AACrD,SACEC,gBAAgB,QAEX,8CAA8C;;AAErD;AACA,SAEEC,uBAAuB,QAClB,gDAAgD;AACvD,SAASC,uBAAuB,QAAQ,gDAAgD;AACxF,SAASC,cAAc,QAAQ,uCAAuC;AACtE,SACEC,gBAAgB,QAGX,yCAAyC;AAChD,SACEC,mBAAmB,QAGd,4CAA4C;AACnD,SAASC,aAAa,QAAQ,sCAAsC;AACpE,SACEC,YAAY,QAEP,qCAAqC;AAC5C,SACEC,kBAAkB,QAEb,2CAA2C;AAClD,SAASC,gBAAgB,QAAQ,yCAAyC;AAG1E;AACA,SAEEC,iBAAiB,EACjBC,mBAAmB,EACnBC,oBAAoB,QACf,mCAAmC;AAM1C;AACA,SACEC,gBAAgB,QAGX,yCAAyC;AAChD,SACEC,iBAAiB,QAGZ,0CAA0C;;AAEjD;AACA,SACEC,SAAS,QAEJ,8BAA8B;AAErC,SAASC,UAAU,QAAQ,8BAA8B;AAOzD,SAASC,QAAQ,QAAQ,4BAA4B","ignoreList":[]}
1
+ {"version":3,"file":"experimental.js","names":["BaseFilterList","FilterList","deserializeFilterStates","serializeFilterStates","ObjectTable","BaseTable","ColumnConfigDialog","MultiColumnSortDialog","BasePdfViewer","PdfViewerAnnotationLayer","PdfViewerContent","PdfViewerOutlineSidebar","PdfViewerSearchBar","PdfViewerSidebar","PdfViewerToolbar","usePdfAnnotationPortals","usePdfAnnotationsByPage","usePdfDocument","usePdfFormFields","usePdfHighlightMode","usePdfOutline","usePdfViewer","usePdfViewerSearch","usePdfViewerSync","PdfViewerProvider","usePdfViewerContext","usePdfViewerInstance","usePdfViewerCore","usePdfViewerState","PdfViewer","ActionForm","BaseForm"],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BaseFilterList } from \"../filter-list/base/BaseFilterList.js\";\nexport type {\n BaseFilterListProps,\n RenderFilterInput,\n} from \"../filter-list/base/BaseFilterListApi.js\";\nexport { FilterList } from \"../filter-list/FilterList.js\";\n\nexport type {\n FilterDefinitionUnion,\n FilterListProps,\n} from \"../filter-list/FilterListApi.js\";\nexport type {\n FilterComponentType,\n FilterListItemProps,\n FilterState,\n PropertyFilterDefinition,\n} from \"../filter-list/FilterListItemApi.js\";\nexport {\n deserializeFilterStates,\n serializeFilterStates,\n} from \"../filter-list/utils/filterStateSerialization.js\";\n\n// ObjectTable that loads and displays data for a given objectSet\nexport { ObjectTable } from \"../object-table/ObjectTable.js\";\nexport type {\n ColumnDefinition,\n ColumnDefinitionLocator,\n CustomColumnLocator,\n FunctionColumnLocator,\n ObjectTableProps,\n PropertyColumnLocator,\n RdpColumnLocator,\n} from \"../object-table/ObjectTableApi.js\";\nexport type { CellEditInfo } from \"../object-table/utils/types.js\";\n\n// BaseTable that does not handle data fetching\nexport type { BaseTableProps } from \"../object-table/Table.js\";\nexport { BaseTable } from \"../object-table/Table.js\";\n\nexport { ColumnConfigDialog } from \"../object-table/ColumnConfigDialog.js\";\nexport type {\n ColumnConfigDialogProps,\n ColumnConfigOptions,\n} from \"../object-table/ColumnConfigDialog.js\";\n\nexport { MultiColumnSortDialog } from \"../object-table/MultiColumnSortDialog.js\";\nexport type {\n MultiColumnSortDialogProps,\n SortColumnItem,\n} from \"../object-table/MultiColumnSortDialog.js\";\n\n// PdfViewer\nexport { BasePdfViewer } from \"../pdf-viewer/PdfViewer.js\";\nexport type {\n AnnotationType,\n PdfAnnotation,\n PdfAnnotationRenderProps,\n PdfCustomAnnotation,\n PdfDownloadResult,\n PdfFormFieldValue,\n PdfRect,\n PdfTextHighlightEvent,\n PdfViewerProps,\n SidebarMode,\n} from \"../pdf-viewer/types.js\";\n\n// PdfViewer building blocks\nexport {\n PdfViewerAnnotationLayer,\n type PdfViewerAnnotationLayerProps,\n} from \"../pdf-viewer/components/PdfViewerAnnotationLayer.js\";\nexport {\n PdfViewerContent,\n type PdfViewerContentProps,\n} from \"../pdf-viewer/components/PdfViewerContent.js\";\nexport {\n PdfViewerOutlineSidebar,\n type PdfViewerOutlineSidebarProps,\n} from \"../pdf-viewer/components/PdfViewerOutlineSidebar.js\";\nexport {\n PdfViewerSearchBar,\n type PdfViewerSearchBarProps,\n} from \"../pdf-viewer/components/PdfViewerSearchBar.js\";\nexport {\n PdfViewerSidebar,\n type PdfViewerSidebarProps,\n} from \"../pdf-viewer/components/PdfViewerSidebar.js\";\nexport {\n PdfViewerToolbar,\n type PdfViewerToolbarProps,\n} from \"../pdf-viewer/components/PdfViewerToolbar.js\";\n\n// PdfViewer hooks — primitive\nexport {\n type AnnotationPortalTarget,\n usePdfAnnotationPortals,\n} from \"../pdf-viewer/hooks/usePdfAnnotationPortals.js\";\nexport { usePdfAnnotationsByPage } from \"../pdf-viewer/hooks/usePdfAnnotationsByPage.js\";\nexport { usePdfDocument } from \"../pdf-viewer/hooks/usePdfDocument.js\";\nexport {\n usePdfFormFields,\n type UsePdfFormFieldsOptions,\n type UsePdfFormFieldsResult,\n} from \"../pdf-viewer/hooks/usePdfFormFields.js\";\nexport {\n usePdfHighlightMode,\n type UsePdfHighlightModeOptions,\n type UsePdfHighlightModeResult,\n} from \"../pdf-viewer/hooks/usePdfHighlightMode.js\";\nexport { usePdfOutline } from \"../pdf-viewer/hooks/usePdfOutline.js\";\nexport {\n usePdfViewer,\n type UsePdfViewerResult,\n} from \"../pdf-viewer/hooks/usePdfViewer.js\";\nexport {\n usePdfViewerSearch,\n type UsePdfViewerSearchResult,\n} from \"../pdf-viewer/hooks/usePdfViewerSearch.js\";\nexport { usePdfViewerSync } from \"../pdf-viewer/hooks/usePdfViewerSync.js\";\nexport { type OutlineItem } from \"../pdf-viewer/types.js\";\n\n// PdfViewer context\nexport {\n type PdfViewerContextValue,\n PdfViewerProvider,\n usePdfViewerContext,\n usePdfViewerInstance,\n} from \"../pdf-viewer/PdfViewerContext.js\";\nexport type {\n PdfViewerHandle,\n PdfViewerInstanceOptions,\n} from \"../pdf-viewer/types.js\";\n\n// PdfViewer hooks — composition\nexport {\n usePdfViewerCore,\n type UsePdfViewerCoreOptions,\n type UsePdfViewerCoreResult,\n} from \"../pdf-viewer/hooks/usePdfViewerCore.js\";\nexport {\n usePdfViewerState,\n type UsePdfViewerStateOptions,\n type UsePdfViewerStateResult,\n} from \"../pdf-viewer/hooks/usePdfViewerState.js\";\n\n// PdfViewer (Media wrapper)\nexport {\n PdfViewer,\n type PdfViewerMediaProps,\n} from \"../pdf-viewer/PdfRenderer.js\";\n\nexport { ActionForm } from \"../action-form/ActionForm.js\";\nexport type {\n ActionFormProps,\n BaseFormProps,\n FormError,\n FormState,\n} from \"../action-form/ActionFormApi.js\";\nexport { BaseForm } from \"../action-form/BaseForm.js\";\nexport type {\n ActionParameters,\n BaseFormFieldProps,\n CustomFieldProps,\n DatetimePickerFieldProps,\n DropdownFieldProps,\n FieldComponent,\n FieldValueType,\n FilePickerProps,\n FormFieldDefinition,\n FormFieldPropsByType,\n NumberInputFieldProps,\n ObjectSetFieldProps,\n Option,\n RadioButtonsFieldProps,\n RendererFieldDefinition,\n TextAreaFieldProps,\n TextInputFieldProps,\n ValidationError,\n} from \"../action-form/FormFieldApi.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,uCAAuC;AAKtE,SAASC,UAAU,QAAQ,8BAA8B;AAYzD,SACEC,uBAAuB,EACvBC,qBAAqB,QAChB,kDAAkD;;AAEzD;AACA,SAASC,WAAW,QAAQ,gCAAgC;;AAY5D;;AAEA,SAASC,SAAS,QAAQ,0BAA0B;AAEpD,SAASC,kBAAkB,QAAQ,uCAAuC;AAM1E,SAASC,qBAAqB,QAAQ,0CAA0C;AAMhF;AACA,SAASC,aAAa,QAAQ,4BAA4B;AAc1D;AACA,SACEC,wBAAwB,QAEnB,sDAAsD;AAC7D,SACEC,gBAAgB,QAEX,8CAA8C;AACrD,SACEC,uBAAuB,QAElB,qDAAqD;AAC5D,SACEC,kBAAkB,QAEb,gDAAgD;AACvD,SACEC,gBAAgB,QAEX,8CAA8C;AACrD,SACEC,gBAAgB,QAEX,8CAA8C;;AAErD;AACA,SAEEC,uBAAuB,QAClB,gDAAgD;AACvD,SAASC,uBAAuB,QAAQ,gDAAgD;AACxF,SAASC,cAAc,QAAQ,uCAAuC;AACtE,SACEC,gBAAgB,QAGX,yCAAyC;AAChD,SACEC,mBAAmB,QAGd,4CAA4C;AACnD,SAASC,aAAa,QAAQ,sCAAsC;AACpE,SACEC,YAAY,QAEP,qCAAqC;AAC5C,SACEC,kBAAkB,QAEb,2CAA2C;AAClD,SAASC,gBAAgB,QAAQ,yCAAyC;AAG1E;AACA,SAEEC,iBAAiB,EACjBC,mBAAmB,EACnBC,oBAAoB,QACf,mCAAmC;AAM1C;AACA,SACEC,gBAAgB,QAGX,yCAAyC;AAChD,SACEC,iBAAiB,QAGZ,0CAA0C;;AAEjD;AACA,SACEC,SAAS,QAEJ,8BAA8B;AAErC,SAASC,UAAU,QAAQ,8BAA8B;AAOzD,SAASC,QAAQ,QAAQ,4BAA4B","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { useCallback, useState } from "react";
18
+ import { useIsMounted } from "./useIsMounted.js";
19
+ /**
20
+ * Wraps an async callback with pending and error state tracking.
21
+ *
22
+ * - `isPending` is true while the action is executing
23
+ * - `error` holds the error from the last rejection (cleared on next execute or via clearError)
24
+ * - `execute` calls the action with pending/error bookkeeping
25
+ * - `clearError` resets the error to undefined
26
+ */
27
+ export function useAsyncAction(action) {
28
+ const [isPending, setIsPending] = useState(false);
29
+ const [error, setError] = useState(undefined);
30
+ const isMountedRef = useIsMounted();
31
+ const execute = useCallback(async (...args) => {
32
+ setError(undefined);
33
+ setIsPending(true);
34
+ try {
35
+ await action(...args);
36
+ } catch (err) {
37
+ if (isMountedRef.current) {
38
+ setError(err);
39
+ }
40
+ } finally {
41
+ if (isMountedRef.current) {
42
+ setIsPending(false);
43
+ }
44
+ }
45
+ }, [action, isMountedRef]);
46
+ const clearError = useCallback(() => {
47
+ setError(undefined);
48
+ }, []);
49
+ return {
50
+ isPending,
51
+ error,
52
+ execute,
53
+ clearError
54
+ };
55
+ }
56
+ //# sourceMappingURL=useAsyncAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncAction.js","names":["useCallback","useState","useIsMounted","useAsyncAction","action","isPending","setIsPending","error","setError","undefined","isMountedRef","execute","args","err","current","clearError"],"sources":["useAsyncAction.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useState } from \"react\";\nimport { useIsMounted } from \"./useIsMounted.js\";\n\ninterface AsyncActionState<Args extends unknown[]> {\n isPending: boolean;\n error: unknown;\n execute: (...args: Args) => Promise<void>;\n clearError: () => void;\n}\n\n/**\n * Wraps an async callback with pending and error state tracking.\n *\n * - `isPending` is true while the action is executing\n * - `error` holds the error from the last rejection (cleared on next execute or via clearError)\n * - `execute` calls the action with pending/error bookkeeping\n * - `clearError` resets the error to undefined\n */\nexport function useAsyncAction<Args extends unknown[]>(\n action: (...args: Args) => Promise<void> | void,\n): AsyncActionState<Args> {\n const [isPending, setIsPending] = useState(false);\n const [error, setError] = useState<unknown>(undefined);\n\n const isMountedRef = useIsMounted();\n\n const execute = useCallback(\n async (...args: Args) => {\n setError(undefined);\n setIsPending(true);\n try {\n await action(...args);\n } catch (err) {\n if (isMountedRef.current) {\n setError(err);\n }\n } finally {\n if (isMountedRef.current) {\n setIsPending(false);\n }\n }\n },\n [action, isMountedRef],\n );\n\n const clearError = useCallback(() => {\n setError(undefined);\n }, []);\n\n return { isPending, error, execute, clearError };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAC7C,SAASC,YAAY,QAAQ,mBAAmB;AAShD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,MAA+C,EACvB;EACxB,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACM,KAAK,EAAEC,QAAQ,CAAC,GAAGP,QAAQ,CAAUQ,SAAS,CAAC;EAEtD,MAAMC,YAAY,GAAGR,YAAY,CAAC,CAAC;EAEnC,MAAMS,OAAO,GAAGX,WAAW,CACzB,OAAO,GAAGY,IAAU,KAAK;IACvBJ,QAAQ,CAACC,SAAS,CAAC;IACnBH,YAAY,CAAC,IAAI,CAAC;IAClB,IAAI;MACF,MAAMF,MAAM,CAAC,GAAGQ,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,IAAIH,YAAY,CAACI,OAAO,EAAE;QACxBN,QAAQ,CAACK,GAAG,CAAC;MACf;IACF,CAAC,SAAS;MACR,IAAIH,YAAY,CAACI,OAAO,EAAE;QACxBR,YAAY,CAAC,KAAK,CAAC;MACrB;IACF;EACF,CAAC,EACD,CAACF,MAAM,EAAEM,YAAY,CACvB,CAAC;EAED,MAAMK,UAAU,GAAGf,WAAW,CAAC,MAAM;IACnCQ,QAAQ,CAACC,SAAS,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEJ,SAAS;IAAEE,KAAK;IAAEI,OAAO;IAAEI;EAAW,CAAC;AAClD","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { useEffect, useRef } from "react";
18
+
19
+ /**
20
+ * Returns a ref whose `.current` is `true` while the component is mounted
21
+ * and `false` after unmount. Use to guard async state updates.
22
+ */
23
+ export function useIsMounted() {
24
+ const isMountedRef = useRef(true);
25
+ useEffect(function () {
26
+ return () => {
27
+ isMountedRef.current = false;
28
+ };
29
+ }, []);
30
+ return isMountedRef;
31
+ }
32
+ //# sourceMappingURL=useIsMounted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMounted.js","names":["useEffect","useRef","useIsMounted","isMountedRef","current"],"sources":["useIsMounted.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useRef } from \"react\";\n\n/**\n * Returns a ref whose `.current` is `true` while the component is mounted\n * and `false` after unmount. Use to guard async state updates.\n */\nexport function useIsMounted(): Readonly<React.RefObject<boolean>> {\n const isMountedRef = useRef(true);\n useEffect(function trackMountedState() {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAA,EAAuC;EACjE,MAAMC,YAAY,GAAGF,MAAM,CAAC,IAAI,CAAC;EACjCD,SAAS,CAAC,YAA6B;IACrC,OAAO,MAAM;MACXG,YAAY,CAACC,OAAO,GAAG,KAAK;IAC9B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,OAAOD,YAAY;AACrB","ignoreList":[]}
@@ -33,13 +33,33 @@
33
33
  .BaseForm-module__osdkFormFooter___ZRbu-oda {
34
34
  display: flex;
35
35
  flex-direction: row;
36
- justify-content: flex-end;
36
+ justify-content: space-between;
37
+ align-items: center;
37
38
  border-top: var(--osdk-surface-border-width) solid
38
39
  var(--osdk-form-footer-border-color);
39
40
  padding-block: var(--osdk-form-content-padding);
40
41
  padding-inline: var(--osdk-form-content-padding);
41
42
  }
42
43
 
44
+ .BaseForm-module__osdkFormSubmitButton___sTo2Mti- {
45
+ margin-inline-start: auto;
46
+ }
47
+
48
+ .BaseForm-module__osdkFormErrorIndicator___3yfyBDCQ {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: calc(var(--osdk-surface-spacing) * 2);
52
+ color: var(--osdk-form-footer-error-color);
53
+ font-size: var(--osdk-form-footer-error-font-size);
54
+ cursor: help;
55
+ }
56
+
57
+ .BaseForm-module__osdkFormErrorList___a2yRW4tD {
58
+ list-style: none;
59
+ margin: 0;
60
+ padding: 0;
61
+ }
62
+
43
63
 
44
64
  /* action-form/FormField.module.css */
45
65
  /*
@@ -170,6 +190,10 @@
170
190
  cursor: not-allowed;
171
191
  opacity: var(--osdk-input-disabled-opacity);
172
192
  }
193
+
194
+ &[aria-invalid] {
195
+ border-color: var(--osdk-input-border-color-error);
196
+ }
173
197
  }
174
198
 
175
199
 
@@ -334,6 +358,10 @@
334
358
  outline: var(--osdk-datetime-input-focus-outline);
335
359
  outline-offset: var(--osdk-datetime-input-focus-outline-offset);
336
360
  }
361
+
362
+ &[aria-invalid] {
363
+ border-color: var(--osdk-datetime-input-error-border-color);
364
+ }
337
365
  }
338
366
 
339
367
  .DatetimePickerField-module__triggerButtonPlaceholder___-sYBtL8e {
@@ -427,6 +455,10 @@
427
455
  var(--osdk-file-picker-trigger-focus-color);
428
456
  outline-offset: var(--osdk-file-picker-trigger-focus-offset);
429
457
  }
458
+
459
+ &[aria-invalid] {
460
+ border-color: var(--osdk-file-picker-trigger-border-color-error);
461
+ }
430
462
  }
431
463
 
432
464
  /* Visually hidden file input */
@@ -553,6 +585,10 @@
553
585
  outline-offset: var(--osdk-input-focus-offset);
554
586
  border-color: var(--osdk-input-border-color-focus);
555
587
  }
588
+
589
+ &[aria-invalid] {
590
+ border-color: var(--osdk-input-border-color-error);
591
+ }
556
592
  }
557
593
 
558
594
  .NumberInputField-module__osdkNumberInputField___OM0FqPcU {