@osdk/react-components 0.66.0 → 0.67.0

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 (105) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  3. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +1 -0
  4. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  5. package/build/browser/util/UserAgent.js +1 -1
  6. package/build/cjs/{action-form-CXEU0uy1.d.cts → action-form-CtrKx1Md.d.cts} +2 -2
  7. package/build/cjs/chunk-25KCCJN5.cjs +11 -0
  8. package/build/cjs/{chunk-L2MTV7TS.cjs.map → chunk-25KCCJN5.cjs.map} +1 -1
  9. package/build/cjs/{chunk-I3ISK52L.cjs → chunk-3J2Z75WV.cjs} +4 -4
  10. package/build/cjs/{chunk-I3ISK52L.cjs.map → chunk-3J2Z75WV.cjs.map} +1 -1
  11. package/build/cjs/{chunk-BQBBSVCC.cjs → chunk-563DKG4Y.cjs} +4 -4
  12. package/build/cjs/{chunk-BQBBSVCC.cjs.map → chunk-563DKG4Y.cjs.map} +1 -1
  13. package/build/cjs/{chunk-RJKH2TFP.cjs → chunk-5MO4EEKT.cjs} +4 -4
  14. package/build/cjs/{chunk-RJKH2TFP.cjs.map → chunk-5MO4EEKT.cjs.map} +1 -1
  15. package/build/cjs/{chunk-VSB3D3TI.cjs → chunk-C7MVNJCL.cjs} +4 -4
  16. package/build/cjs/{chunk-VSB3D3TI.cjs.map → chunk-C7MVNJCL.cjs.map} +1 -1
  17. package/build/cjs/chunk-DFULAPAD.cjs +48 -0
  18. package/build/cjs/{chunk-BR7JOCXT.cjs.map → chunk-DFULAPAD.cjs.map} +1 -1
  19. package/build/cjs/chunk-GIUBOBJW.cjs +11 -0
  20. package/build/cjs/{chunk-TMUPZD4V.cjs.map → chunk-GIUBOBJW.cjs.map} +1 -1
  21. package/build/cjs/{chunk-RSTI46HO.cjs → chunk-HWBP3XW3.cjs} +4 -4
  22. package/build/cjs/{chunk-RSTI46HO.cjs.map → chunk-HWBP3XW3.cjs.map} +1 -1
  23. package/build/cjs/chunk-IMPQOR35.cjs +12 -0
  24. package/build/cjs/{chunk-LLUIONHI.cjs.map → chunk-IMPQOR35.cjs.map} +1 -1
  25. package/build/cjs/{chunk-XQT3FXBY.cjs → chunk-KPRLMFE4.cjs} +5 -4
  26. package/build/cjs/chunk-KPRLMFE4.cjs.map +1 -0
  27. package/build/cjs/{chunk-IK6VZHVR.cjs → chunk-LICMASXX.cjs} +4 -4
  28. package/build/cjs/{chunk-IK6VZHVR.cjs.map → chunk-LICMASXX.cjs.map} +1 -1
  29. package/build/cjs/{chunk-7SD5CAWL.cjs → chunk-LZTR5GS5.cjs} +3 -3
  30. package/build/cjs/{chunk-7SD5CAWL.cjs.map → chunk-LZTR5GS5.cjs.map} +1 -1
  31. package/build/cjs/{chunk-DXHJQHLI.cjs → chunk-N7PDSA27.cjs} +4 -4
  32. package/build/cjs/{chunk-DXHJQHLI.cjs.map → chunk-N7PDSA27.cjs.map} +1 -1
  33. package/build/cjs/{chunk-JQRF53LC.cjs → chunk-NZGG24BM.cjs} +4 -4
  34. package/build/cjs/{chunk-JQRF53LC.cjs.map → chunk-NZGG24BM.cjs.map} +1 -1
  35. package/build/cjs/{chunk-MHTESOXN.cjs → chunk-OQKUMCWG.cjs} +4 -4
  36. package/build/cjs/{chunk-MHTESOXN.cjs.map → chunk-OQKUMCWG.cjs.map} +1 -1
  37. package/build/cjs/chunk-PH4KSD6G.cjs +11 -0
  38. package/build/cjs/{chunk-Q4VPZXSI.cjs.map → chunk-PH4KSD6G.cjs.map} +1 -1
  39. package/build/cjs/{chunk-3FJN52KO.cjs → chunk-QK76XGOF.cjs} +8 -8
  40. package/build/cjs/{chunk-3FJN52KO.cjs.map → chunk-QK76XGOF.cjs.map} +1 -1
  41. package/build/cjs/{chunk-F5ZSCDCM.cjs → chunk-QZXF2R7Y.cjs} +4 -4
  42. package/build/cjs/{chunk-F5ZSCDCM.cjs.map → chunk-QZXF2R7Y.cjs.map} +1 -1
  43. package/build/cjs/chunk-R7OMZVSD.cjs +11 -0
  44. package/build/cjs/{chunk-VOVGHJJ6.cjs.map → chunk-R7OMZVSD.cjs.map} +1 -1
  45. package/build/cjs/{chunk-AREBSTNH.cjs → chunk-ROTAE5KE.cjs} +5 -5
  46. package/build/cjs/{chunk-AREBSTNH.cjs.map → chunk-ROTAE5KE.cjs.map} +1 -1
  47. package/build/cjs/{chunk-GSQMDJY5.cjs → chunk-TON5EEYH.cjs} +5 -5
  48. package/build/cjs/{chunk-GSQMDJY5.cjs.map → chunk-TON5EEYH.cjs.map} +1 -1
  49. package/build/cjs/chunk-UNB5WSKF.cjs +11 -0
  50. package/build/cjs/{chunk-YMAWH3EZ.cjs.map → chunk-UNB5WSKF.cjs.map} +1 -1
  51. package/build/cjs/chunk-VV2UVLFE.cjs +34 -0
  52. package/build/cjs/{chunk-3D7VU7XJ.cjs.map → chunk-VV2UVLFE.cjs.map} +1 -1
  53. package/build/cjs/chunk-VX53UNI5.cjs +11 -0
  54. package/build/cjs/{chunk-XKLCW2LZ.cjs.map → chunk-VX53UNI5.cjs.map} +1 -1
  55. package/build/cjs/chunk-XBIDMNU3.cjs +12 -0
  56. package/build/cjs/{chunk-PC6UI2YG.cjs.map → chunk-XBIDMNU3.cjs.map} +1 -1
  57. package/build/cjs/{chunk-ZCJ4CKFA.cjs → chunk-ZK4Z6LBE.cjs} +4 -4
  58. package/build/cjs/{chunk-ZCJ4CKFA.cjs.map → chunk-ZK4Z6LBE.cjs.map} +1 -1
  59. package/build/cjs/public/action-form.cjs +4 -4
  60. package/build/cjs/public/action-form.d.cts +1 -1
  61. package/build/cjs/public/document-viewer.cjs +4 -4
  62. package/build/cjs/public/email-viewer.cjs +3 -3
  63. package/build/cjs/public/experimental/action-form.cjs +5 -5
  64. package/build/cjs/public/experimental/action-form.d.cts +1 -1
  65. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  66. package/build/cjs/public/experimental/document-viewer.cjs +5 -5
  67. package/build/cjs/public/experimental/email-viewer.cjs +5 -5
  68. package/build/cjs/public/experimental/filter-list.cjs +16 -16
  69. package/build/cjs/public/experimental/image-viewer.cjs +5 -5
  70. package/build/cjs/public/experimental/markdown-renderer.cjs +7 -7
  71. package/build/cjs/public/experimental/object-table.cjs +23 -23
  72. package/build/cjs/public/experimental/pdf-viewer.cjs +25 -25
  73. package/build/cjs/public/experimental/spreadsheet-viewer.cjs +5 -5
  74. package/build/cjs/public/experimental/tiff-renderer.cjs +7 -7
  75. package/build/cjs/public/experimental/video-viewer.cjs +5 -5
  76. package/build/cjs/public/experimental/xml-viewer.cjs +5 -5
  77. package/build/cjs/public/experimental.cjs +112 -112
  78. package/build/cjs/public/experimental.d.cts +1 -1
  79. package/build/cjs/public/filter-list.cjs +15 -15
  80. package/build/cjs/public/image-viewer.cjs +3 -3
  81. package/build/cjs/public/markdown-viewer.cjs +3 -3
  82. package/build/cjs/public/object-table.cjs +22 -22
  83. package/build/cjs/public/pdf-viewer.cjs +7 -7
  84. package/build/cjs/public/spreadsheet-viewer.cjs +3 -3
  85. package/build/cjs/public/tiff-viewer.cjs +3 -3
  86. package/build/cjs/public/video-viewer.cjs +3 -3
  87. package/build/cjs/public/xml-viewer.cjs +3 -3
  88. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  89. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +1 -0
  90. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  91. package/build/esm/util/UserAgent.js +1 -1
  92. package/build/types/action-form/FormFieldApi.d.ts +2 -2
  93. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  94. package/package.json +5 -5
  95. package/build/cjs/chunk-3D7VU7XJ.cjs +0 -34
  96. package/build/cjs/chunk-BR7JOCXT.cjs +0 -48
  97. package/build/cjs/chunk-L2MTV7TS.cjs +0 -11
  98. package/build/cjs/chunk-LLUIONHI.cjs +0 -12
  99. package/build/cjs/chunk-PC6UI2YG.cjs +0 -12
  100. package/build/cjs/chunk-Q4VPZXSI.cjs +0 -11
  101. package/build/cjs/chunk-TMUPZD4V.cjs +0 -11
  102. package/build/cjs/chunk-VOVGHJJ6.cjs +0 -11
  103. package/build/cjs/chunk-XKLCW2LZ.cjs +0 -11
  104. package/build/cjs/chunk-XQT3FXBY.cjs.map +0 -1
  105. package/build/cjs/chunk-YMAWH3EZ.cjs +0 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @osdk/react-components
2
2
 
3
+ ## 0.67.0
4
+
5
+ ### Minor Changes
6
+
7
+ - a0c6e14: New TimeSeriesReference action parameter
8
+
9
+ ### Patch Changes
10
+
11
+ - @osdk/aip-core@0.13.0
12
+
3
13
  ## 0.66.0
4
14
 
5
15
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldApi.js","names":[],"sources":["FormFieldApi.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionMetadata,\n ActionParam,\n CompileTimeMetadata,\n DataValueClientToWire,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\nimport type React from \"react\";\n\nimport type {\n DatePickerProps,\n DateRangePickerProps,\n} from \"../shared/calendar/index.js\";\nimport type { PortalContainer } from \"../shared/PortalDismissLayer.js\";\n\nexport type { PortalContainer };\n\n/**\n * A form field definition specifies configuration for a single field.\n * Implemented as a distributed mapped type so `fieldComponent` narrows\n * `fieldComponentProps` to the matching component prop type.\n */\nexport type FormFieldDefinition<\n Q extends ActionDefinition<unknown>,\n K extends FieldKey<Q> = FieldKey<Q>,\n> = K extends unknown\n ? {\n // Distribute over each field key so a field's key, value type, and allowed\n // components stay correlated when K is the default union of all keys.\n [C in ValidFormFieldForPropertyType<ActionParameter<Q, K>[\"type\"]>]: {\n /**\n * The field's unique key\n */\n fieldKey: K;\n\n /**\n * Display label for the field\n */\n label: string;\n\n /**\n * Default value of the field\n */\n defaultValue?: FieldValueType<Q, K>;\n\n /**\n * Whether the field is required\n */\n isRequired?: boolean;\n\n /**\n * Placeholder text\n */\n placeholder?: string;\n\n /**\n * Additional information to display on this field.\n * Accepts plain text or rich content (e.g. JSX with links or formatting).\n * Rendered as a tooltip icon next to the label by default, or below the\n * label when helperTextPlacement is \"bottom\".\n */\n helperText?: React.ReactNode;\n\n /**\n * The placement of the helper text either below the field or in a tooltip\n *\n * @default \"tooltip\"\n */\n helperTextPlacement?: \"bottom\" | \"tooltip\";\n\n /**\n * Whether the field is disabled\n */\n disabled?: boolean;\n\n /**\n * A callback to customize error messages when a built-in validation rule fails.\n * Receives a discriminated union with the constraint data (e.g., the min value\n * that was exceeded) so the message can reference the threshold.\n *\n * Return a string to override the default message, or `undefined` to keep it.\n */\n onValidationError?: (error: ValidationError) => string | undefined;\n\n /**\n * Additional function to validate the field.\n *\n * Return `undefined` if valid, or an error message string if invalid.\n */\n validate?: (value: FieldValueType<Q, K>) => Promise<string | undefined>;\n\n /**\n * The form field component type to render\n */\n fieldComponent: C;\n\n /**\n * The component props for the form field.\n * Excludes runtime props (value, onChange) which are managed by ActionForm.\n */\n fieldComponentProps: DistributiveOmit<\n FormFieldComponentPropsByActionParameter<\n ActionParameter<Q, K>,\n FieldValueType<Q, K>\n >[C],\n FormManagedProps<C>\n >;\n };\n }[ValidFormFieldForPropertyType<ActionParameter<Q, K>[\"type\"]>]\n : never;\n\n/**\n * A discriminated union describing which validation rule failed and the\n * constraint data the user needs to build a meaningful error message.\n */\nexport type ValidationError =\n | { type: \"required\" }\n | { type: \"min\"; min: number | Date }\n | { type: \"max\"; max: number | Date }\n | { type: \"minLength\"; minLength: number }\n | { type: \"maxLength\"; maxLength: number }\n | { type: \"maxSize\"; maxSize: number }\n | { type: \"validate\"; message: string };\n\n/**\n * Maps field types to their corresponding props\n */\nexport interface FormFieldPropsByType {\n DATE_RANGE_INPUT: DateRangePickerProps;\n DATETIME_PICKER: DatePickerProps;\n DROPDOWN: DropdownFieldProps<unknown, boolean>;\n FILE_PICKER: FilePickerProps;\n NUMBER_INPUT: NumberInputFieldProps;\n OBJECT_SELECT: ObjectSelectFieldProps<ObjectTypeDefinition>;\n OBJECT_SET: ObjectSetFieldProps<ObjectTypeDefinition>;\n RADIO_BUTTONS: RadioButtonsFieldProps<unknown>;\n SWITCH: SwitchFieldProps;\n TEXT_AREA: TextAreaFieldProps;\n TEXT_INPUT: TextInputFieldProps;\n CUSTOM: CustomFieldProps<unknown>;\n UNSUPPORTED: UnsupportedFieldProps;\n}\n\n/**\n * Maps the components supported by an action parameter to props that preserve\n * the parameter's value type and, where applicable, the object type referenced\n * by the parameter.\n * Components without action-specific props reuse the renderer-facing mapping.\n */\ntype FormFieldComponentPropsByActionParameter<\n P extends ActionMetadata.Parameter,\n V,\n> = {\n // Only concrete scalar parameters gain more precise props. Metadata-agnostic\n // and repeated parameters retain the renderer-facing types used previously.\n [C in ValidFormFieldForPropertyType<\n P[\"type\"]\n >]: IsBroadActionParameter<P> extends true\n ? FormFieldPropsByType[C]\n : P extends { multiplicity: true }\n ? FormFieldPropsByType[C]\n : C extends \"DROPDOWN\"\n ? DropdownFieldProps<V, boolean>\n : C extends \"RADIO_BUTTONS\"\n ? RadioButtonsFieldProps<V>\n : C extends \"CUSTOM\"\n ? CustomFieldProps<V>\n : C extends \"OBJECT_SELECT\"\n ? P[\"type\"] extends ActionMetadata.DataType.Object<infer T>\n ? ObjectSelectFieldProps<T>\n : never\n : C extends \"OBJECT_SET\"\n ? P[\"type\"] extends ActionMetadata.DataType.ObjectSet<infer T>\n ? ObjectSetFieldProps<T>\n : never\n : FormFieldPropsByType[C];\n};\n\n// Actions without concrete definition metadata expose the base parameter type.\ntype IsBroadActionParameter<P extends ActionMetadata.Parameter> = [\n ActionMetadata.Parameter,\n] extends [P]\n ? true\n : false;\n\n/**\n * Dropdown field props with selectable items\n */\nexport interface DropdownFieldProps<\n V,\n Multiple extends boolean = false,\n> extends BaseFormFieldProps<Multiple extends true ? V[] : V> {\n /**\n * Available items for the dropdown\n */\n items: V[];\n\n /**\n * Converts an item to searchable text and the default visual label. Defaults to `String()`.\n * Use `renderItemLabel` when the visible label needs rich React content.\n */\n itemToStringLabel?: (item: V) => string;\n\n /**\n * Renders an item label with custom React content.\n * `itemToStringLabel` is still used for search, accessibility, and fallback keys.\n */\n renderItemLabel?: (item: V) => React.ReactNode;\n\n /**\n * Returns a unique string key for a list item. Used as the React `key`.\n * Falls back to the item's index when not provided.\n */\n itemToKey?: (item: V) => string;\n\n /**\n * Custom equality check for item values. Defaults to `Object.is`.\n * Required when items are objects to ensure correct selection matching.\n */\n isItemEqual?: (a: V, b: V) => boolean;\n\n /**\n * Whether the dropdown allows searching/filtering.\n * When true, renders a Combobox with a search input.\n * When false (default), renders a Select dropdown.\n */\n isSearchable?: boolean;\n\n /**\n * Placeholder text shown when no value is selected.\n */\n placeholder?: string;\n\n /**\n * Whether multiple values can be selected\n */\n isMultiple?: Multiple;\n\n /**\n * Ref forwarded to the portal container element.\n * Used to track portaled content for click-outside detection.\n */\n portalRef?: React.Ref<HTMLDivElement>;\n\n /**\n * Element that receives the dropdown portal. Use this when rendering inside\n * modal dialogs so popups stay in the dialog's stacking and focus context\n * instead of being appended directly to document.body.\n */\n portalContainer?: PortalContainer;\n\n /**\n * Controlled search input value. Must be provided together with `onQueryChange`.\n */\n query?: string;\n\n /**\n * Callback when the search input value changes.\n * Can be used standalone as an event listener or together with `query`\n * for fully controlled search state.\n */\n onQueryChange?: (query: string) => void;\n\n /**\n * When true, disables the combobox's built-in client-side filtering.\n * Use when items are already filtered server-side (e.g. via `onQueryChange`).\n *\n * @default false\n */\n disableClientSideFiltering?: boolean;\n\n /**\n * Status message rendered below the search input and above the item list\n * inside the popup. Use for loading/error/empty messages.\n */\n popupStatus?: React.ReactNode;\n\n /**\n * A React node to render after the item list.\n * Use for infinite scroll sentinels, \"load more\" buttons, etc.\n */\n trailingItem?: React.ReactNode;\n\n /**\n * Whether the dropdown locks page scroll and renders a full-viewport\n * dismiss layer when open. Set to `false` when the dropdown is not\n * inside a `<label>` to allow normal page scrolling.\n *\n * @default true\n */\n modal?: boolean;\n}\n\nexport interface FilePickerProps extends BaseFormFieldProps<File | File[]> {\n /**\n * Whether multiple files can be selected\n */\n isMulti?: boolean;\n\n /**\n * Accepted file types (e.g., \"image/*\", \".pdf\")\n */\n accept?: string | string[];\n\n /**\n * Maximum file size in bytes\n */\n maxSize?: number;\n\n /**\n * The text displayed when no file is selected.\n *\n * @default \"No file chosen\"\n */\n text?: string;\n\n /**\n * The text displayed on the browse button.\n *\n * @default \"Browse\"\n */\n buttonText?: string;\n}\n\n/**\n * Text area field props\n */\nexport interface TextAreaFieldProps\n extends\n BaseFormFieldProps<string>,\n Pick<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n | \"rows\"\n | \"wrap\"\n /**\n * If provided, this will be added to the field validation\n */\n | \"minLength\"\n /**\n * If provided, this will be added to the field validation\n */\n | \"maxLength\"\n > {\n placeholder?: string;\n}\n\nexport interface TextInputFieldProps\n extends\n BaseFormFieldProps<string>,\n Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n /**\n * If provided, this will be added to the field validation\n */\n | \"minLength\"\n /**\n * If provided, this will be added to the field validation\n */\n | \"maxLength\"\n > {\n placeholder?: string;\n}\n\n/**\n * Number input field props\n */\nexport interface NumberInputFieldProps extends BaseFormFieldProps<number> {\n /**\n * Minimum allowed value.\n */\n min?: number;\n\n /**\n * Maximum allowed value.\n */\n max?: number;\n\n /**\n * Step increment for the input. Used by the stepper buttons and ArrowUp/ArrowDown keyboard stepping.\n *\n * @default 1\n */\n step?: number;\n\n /**\n * Placeholder text shown when the input is empty.\n */\n placeholder?: string;\n}\n\n/**\n * Radio buttons field props\n */\nexport interface RadioButtonsFieldProps<V> extends BaseFormFieldProps<V> {\n /**\n * Available options for radio buttons.\n *\n * Values are compared by reference equality (`===`). When options contain\n * non-primitive values, pass the same object references for `value` and\n * the corresponding option entry.\n */\n options: Option<V>[];\n\n /**\n * Controls the layout direction of the radio buttons.\n *\n * - `\"vertical\"` (default): options are stacked in a column\n * - `\"horizontal\"`: options are laid out in a row, wrapping when needed\n */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Switch field props for boolean values.\n */\nexport type SwitchFieldProps = BaseFormFieldProps<boolean>;\n\n/**\n * Option interface for radio button options\n */\nexport interface Option<V> {\n label: string;\n value: V;\n}\n\n/**\n * Object set field displays the summary of the count of the given object set\n */\nexport interface ObjectSetFieldProps<\n T extends ObjectTypeDefinition,\n> extends Pick<BaseFormFieldProps<ObjectSet<T>>, \"id\" | \"value\" | \"disabled\"> {\n /**\n * Message displayed when no object set is provided.\n *\n * @default \"Object set is not defined\"\n */\n emptyMessage?: string;\n}\n\ntype ObjectSelectDataSource<Q extends ObjectTypeDefinition> =\n | {\n /**\n * The object type definition to search across.\n */\n objectType: Q;\n objectSet?: never;\n }\n | {\n /**\n * A pre-scoped object set to search within.\n *\n * Use this when selectable options should be limited to a subset of\n * objects. User-entered search text is applied within this set.\n */\n objectSet: ObjectSet<Q>;\n objectType?: never;\n };\n\n/**\n * Object select field props for selecting object instances from the ontology.\n * Used for action parameters that accept a single object or multiple objects.\n *\n * Extends DropdownFieldProps with props that ObjectSelectField\n * manages internally (items, search, filtering) omitted from the public surface.\n */\nexport type ObjectSelectFieldProps<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> = Omit<\n DropdownFieldProps<Osdk.Instance<Q>>,\n | \"items\"\n | \"itemToStringLabel\"\n | \"itemToKey\"\n | \"isItemEqual\"\n | \"isSearchable\"\n | \"query\"\n | \"onQueryChange\"\n | \"disableClientSideFiltering\"\n | \"renderItemList\"\n> &\n ObjectSelectDataSource<Q>;\n\n/**\n * Custom field props for user-defined renderers\n */\nexport interface CustomFieldProps<V> extends BaseFormFieldProps<V> {\n /**\n * Custom renderer function\n */\n customRenderer: (props: BaseFormFieldProps<V>) => React.ReactNode;\n}\n\nexport interface UnsupportedFieldProps extends Pick<\n BaseFormFieldProps<string>,\n \"id\" | \"error\"\n> {}\n\nexport interface BaseFormFieldProps<V> {\n /**\n * The HTML `id` attribute for the field input element.\n * Used for `<label htmlFor>` association.\n */\n id?: string;\n\n /**\n * The validation error message for this field, if any.\n * When set, the field should display a visual error state.\n */\n error?: string;\n\n /**\n * The value of the form field\n */\n value: V | null;\n\n /**\n * The default value of the form field.\n */\n defaultValue?: V;\n\n /**\n * Whether the field is disabled.\n *\n * Disabled fields keep their current value in form state and submit payloads,\n * but built-in renderers block user edits and remove disabled controls from\n * keyboard navigation.\n */\n disabled?: boolean;\n\n /**\n * Called when the field value changes.\n *\n * ActionForm internally wraps this to pass the key to `onFieldValueChange`:\n * ```\n * <DropdownField\n * {...fieldDef}\n * onChange={(value) => onFieldValueChange(fieldDef.key, value)}\n * />\n * ```\n *\n * @param value The new value of the form field\n */\n onChange?: (value: V | null) => void;\n}\n\nexport type FieldKey<Q extends ActionDefinition<unknown>> =\n keyof ActionParameters<Q>;\n\n/**\n * Extracts parameters from an ActionDefinition\n */\nexport type ActionParameters<Q extends ActionDefinition<unknown>> =\n CompileTimeMetadata<Q>[\"parameters\"];\n\ntype ActionParameter<\n Q extends ActionDefinition<unknown>,\n K extends keyof ActionParameters<Q>,\n> = ActionParameters<Q>[K] extends ActionMetadata.Parameter\n ? ActionParameters<Q>[K]\n : never;\n\n/**\n * Extracts the value type for a specific parameter\n */\nexport type FieldValueType<\n Q extends ActionDefinition<unknown>,\n K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>,\n> =\n ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.Object<infer T>\n ? ActionParam.ObjectType<T>\n : ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.ObjectSet<\n infer T\n >\n ? ActionParam.ObjectSetType<T>\n : ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.Interface<\n infer T\n >\n ? ActionParam.InterfaceType<T>\n : ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.Struct<\n infer T\n >\n ? ActionParam.StructType<T>\n : ActionParameters<Q>[K][\"type\"] extends keyof DataValueClientToWire\n ? DataValueClientToWire[ActionParameters<Q>[K][\"type\"]]\n : never;\n\n/**\n * Extracts the parameter type descriptor for a specific action parameter.\n */\nexport type FieldDescriptorType<\n Q extends ActionDefinition<unknown> = ActionDefinition<unknown>,\n K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>,\n> = ActionParameters<Q>[K][\"type\"];\n\n/**\n * Available form field component types\n */\nexport type FieldComponent =\n | \"DATE_RANGE_INPUT\"\n | \"DATETIME_PICKER\"\n | \"DROPDOWN\"\n | \"FILE_PICKER\"\n | \"NUMBER_INPUT\"\n | \"OBJECT_SELECT\"\n | \"OBJECT_SET\"\n | \"RADIO_BUTTONS\"\n | \"SWITCH\"\n | \"TEXT_AREA\"\n | \"TEXT_INPUT\"\n | \"CUSTOM\"\n | \"UNSUPPORTED\";\n\n/**\n * Describes the data type of a form field, independent of OSDK.\n * Mirrors ActionMetadata.DataType to keep the rendering layer OSDK-agnostic.\n */\nexport type FieldType =\n | \"boolean\"\n | \"string\"\n | \"integer\"\n | \"long\"\n | \"double\"\n | \"decimal\"\n | \"datetime\"\n | \"timestamp\"\n | \"attachment\"\n | \"marking\"\n | \"mediaReference\"\n | \"objectType\"\n | \"geoshape\"\n | \"geohash\"\n | \"scenarioReference\"\n | { type: \"object\"; object: string }\n | { type: \"objectSet\"; objectSet: string }\n | { type: \"interface\"; interface: string }\n | { type: \"struct\"; struct: Record<string, string> };\n\n/**\n * Props managed by form state infrastructure (FieldBridge / RHF).\n * Fields with onChange participate in form state → value and onChange are managed\n * externally. Read-only fields (no onChange, e.g. ObjectSetField) keep value in\n * fieldComponentProps so it bypasses form state cloning.\n */\ntype FormManagedProps<K extends FieldComponent> =\n \"onChange\" extends keyof FormFieldPropsByType[K]\n ? \"value\" | \"onChange\" | \"disabled\"\n : \"onChange\" | \"disabled\";\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, Extract<keyof T, K>>\n : never;\n\n/**\n * An OSDK-agnostic field definition used by BaseForm and FormFieldRenderer.\n * Contains only the information needed to render a single field — no generics,\n * no compile-time parameter constraints.\n *\n * Implemented as a distributed mapped type: switching on `fieldComponent`\n * narrows `fieldComponentProps` to the correct props type automatically.\n */\nexport type RendererFieldDefinition = {\n [K in FieldComponent]: {\n fieldKey: string;\n fieldComponent: K;\n fieldType?: FieldType;\n label: string;\n isRequired?: boolean;\n placeholder?: string;\n helperText?: React.ReactNode;\n helperTextPlacement?: \"bottom\" | \"tooltip\";\n disabled?: boolean;\n validate?: (value: unknown) => Promise<string | undefined>;\n onValidationError?: (error: ValidationError) => string | undefined;\n fieldComponentProps: DistributiveOmit<\n FormFieldPropsByType[K],\n FormManagedProps<K>\n >;\n };\n}[FieldComponent];\n\n/**\n * Gets valid form field types for a given property type\n */\nexport type ValidFormFieldForPropertyType<P extends FieldDescriptorType> =\n | \"CUSTOM\"\n | (P extends { type: \"objectSet\" }\n ? \"OBJECT_SET\"\n : P extends { type: \"object\" }\n ? \"OBJECT_SELECT\"\n : P extends { type: \"interface\" }\n ? \"UNSUPPORTED\"\n : P extends { type: \"struct\" }\n ? \"UNSUPPORTED\"\n : P extends \"mediaReference\" | \"attachment\"\n ? \"FILE_PICKER\"\n : P extends \"boolean\"\n ? \"RADIO_BUTTONS\" | \"DROPDOWN\" | \"SWITCH\"\n : P extends \"string\"\n ? \"TEXT_INPUT\" | \"TEXT_AREA\" | \"DROPDOWN\" | \"RADIO_BUTTONS\"\n : P extends \"datetime\" | \"timestamp\"\n ? \"DATETIME_PICKER\"\n : P extends\n | \"marking\"\n | \"geohash\"\n | \"geoshape\"\n | \"objectType\"\n ? \"UNSUPPORTED\"\n : P extends\n | \"double\"\n | \"integer\"\n | \"long\"\n | \"float\"\n | \"short\"\n | \"byte\"\n | \"decimal\"\n ? \"NUMBER_INPUT\"\n : never);\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"FormFieldApi.js","names":[],"sources":["FormFieldApi.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionDefinition,\n ActionMetadata,\n ActionParam,\n CompileTimeMetadata,\n DataValueClientToWire,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\nimport type React from \"react\";\n\nimport type {\n DatePickerProps,\n DateRangePickerProps,\n} from \"../shared/calendar/index.js\";\nimport type { PortalContainer } from \"../shared/PortalDismissLayer.js\";\n\nexport type { PortalContainer };\n\n/**\n * A form field definition specifies configuration for a single field.\n * Implemented as a distributed mapped type so `fieldComponent` narrows\n * `fieldComponentProps` to the matching component prop type.\n */\nexport type FormFieldDefinition<\n Q extends ActionDefinition<unknown>,\n K extends FieldKey<Q> = FieldKey<Q>,\n> = K extends unknown\n ? {\n // Distribute over each field key so a field's key, value type, and allowed\n // components stay correlated when K is the default union of all keys.\n [C in ValidFormFieldForPropertyType<ActionParameter<Q, K>[\"type\"]>]: {\n /**\n * The field's unique key\n */\n fieldKey: K;\n\n /**\n * Display label for the field\n */\n label: string;\n\n /**\n * Default value of the field\n */\n defaultValue?: FieldValueType<Q, K>;\n\n /**\n * Whether the field is required\n */\n isRequired?: boolean;\n\n /**\n * Placeholder text\n */\n placeholder?: string;\n\n /**\n * Additional information to display on this field.\n * Accepts plain text or rich content (e.g. JSX with links or formatting).\n * Rendered as a tooltip icon next to the label by default, or below the\n * label when helperTextPlacement is \"bottom\".\n */\n helperText?: React.ReactNode;\n\n /**\n * The placement of the helper text either below the field or in a tooltip\n *\n * @default \"tooltip\"\n */\n helperTextPlacement?: \"bottom\" | \"tooltip\";\n\n /**\n * Whether the field is disabled\n */\n disabled?: boolean;\n\n /**\n * A callback to customize error messages when a built-in validation rule fails.\n * Receives a discriminated union with the constraint data (e.g., the min value\n * that was exceeded) so the message can reference the threshold.\n *\n * Return a string to override the default message, or `undefined` to keep it.\n */\n onValidationError?: (error: ValidationError) => string | undefined;\n\n /**\n * Additional function to validate the field.\n *\n * Return `undefined` if valid, or an error message string if invalid.\n */\n validate?: (value: FieldValueType<Q, K>) => Promise<string | undefined>;\n\n /**\n * The form field component type to render\n */\n fieldComponent: C;\n\n /**\n * The component props for the form field.\n * Excludes runtime props (value, onChange) which are managed by ActionForm.\n */\n fieldComponentProps: DistributiveOmit<\n FormFieldComponentPropsByActionParameter<\n ActionParameter<Q, K>,\n FieldValueType<Q, K>\n >[C],\n FormManagedProps<C>\n >;\n };\n }[ValidFormFieldForPropertyType<ActionParameter<Q, K>[\"type\"]>]\n : never;\n\n/**\n * A discriminated union describing which validation rule failed and the\n * constraint data the user needs to build a meaningful error message.\n */\nexport type ValidationError =\n | { type: \"required\" }\n | { type: \"min\"; min: number | Date }\n | { type: \"max\"; max: number | Date }\n | { type: \"minLength\"; minLength: number }\n | { type: \"maxLength\"; maxLength: number }\n | { type: \"maxSize\"; maxSize: number }\n | { type: \"validate\"; message: string };\n\n/**\n * Maps field types to their corresponding props\n */\nexport interface FormFieldPropsByType {\n DATE_RANGE_INPUT: DateRangePickerProps;\n DATETIME_PICKER: DatePickerProps;\n DROPDOWN: DropdownFieldProps<unknown, boolean>;\n FILE_PICKER: FilePickerProps;\n NUMBER_INPUT: NumberInputFieldProps;\n OBJECT_SELECT: ObjectSelectFieldProps<ObjectTypeDefinition>;\n OBJECT_SET: ObjectSetFieldProps<ObjectTypeDefinition>;\n RADIO_BUTTONS: RadioButtonsFieldProps<unknown>;\n SWITCH: SwitchFieldProps;\n TEXT_AREA: TextAreaFieldProps;\n TEXT_INPUT: TextInputFieldProps;\n CUSTOM: CustomFieldProps<unknown>;\n UNSUPPORTED: UnsupportedFieldProps;\n}\n\n/**\n * Maps the components supported by an action parameter to props that preserve\n * the parameter's value type and, where applicable, the object type referenced\n * by the parameter.\n * Components without action-specific props reuse the renderer-facing mapping.\n */\ntype FormFieldComponentPropsByActionParameter<\n P extends ActionMetadata.Parameter,\n V,\n> = {\n // Only concrete scalar parameters gain more precise props. Metadata-agnostic\n // and repeated parameters retain the renderer-facing types used previously.\n [C in ValidFormFieldForPropertyType<\n P[\"type\"]\n >]: IsBroadActionParameter<P> extends true\n ? FormFieldPropsByType[C]\n : P extends { multiplicity: true }\n ? FormFieldPropsByType[C]\n : C extends \"DROPDOWN\"\n ? DropdownFieldProps<V, boolean>\n : C extends \"RADIO_BUTTONS\"\n ? RadioButtonsFieldProps<V>\n : C extends \"CUSTOM\"\n ? CustomFieldProps<V>\n : C extends \"OBJECT_SELECT\"\n ? P[\"type\"] extends ActionMetadata.DataType.Object<infer T>\n ? ObjectSelectFieldProps<T>\n : never\n : C extends \"OBJECT_SET\"\n ? P[\"type\"] extends ActionMetadata.DataType.ObjectSet<infer T>\n ? ObjectSetFieldProps<T>\n : never\n : FormFieldPropsByType[C];\n};\n\n// Actions without concrete definition metadata expose the base parameter type.\ntype IsBroadActionParameter<P extends ActionMetadata.Parameter> = [\n ActionMetadata.Parameter,\n] extends [P]\n ? true\n : false;\n\n/**\n * Dropdown field props with selectable items\n */\nexport interface DropdownFieldProps<\n V,\n Multiple extends boolean = false,\n> extends BaseFormFieldProps<Multiple extends true ? V[] : V> {\n /**\n * Available items for the dropdown\n */\n items: V[];\n\n /**\n * Converts an item to searchable text and the default visual label. Defaults to `String()`.\n * Use `renderItemLabel` when the visible label needs rich React content.\n */\n itemToStringLabel?: (item: V) => string;\n\n /**\n * Renders an item label with custom React content.\n * `itemToStringLabel` is still used for search, accessibility, and fallback keys.\n */\n renderItemLabel?: (item: V) => React.ReactNode;\n\n /**\n * Returns a unique string key for a list item. Used as the React `key`.\n * Falls back to the item's index when not provided.\n */\n itemToKey?: (item: V) => string;\n\n /**\n * Custom equality check for item values. Defaults to `Object.is`.\n * Required when items are objects to ensure correct selection matching.\n */\n isItemEqual?: (a: V, b: V) => boolean;\n\n /**\n * Whether the dropdown allows searching/filtering.\n * When true, renders a Combobox with a search input.\n * When false (default), renders a Select dropdown.\n */\n isSearchable?: boolean;\n\n /**\n * Placeholder text shown when no value is selected.\n */\n placeholder?: string;\n\n /**\n * Whether multiple values can be selected\n */\n isMultiple?: Multiple;\n\n /**\n * Ref forwarded to the portal container element.\n * Used to track portaled content for click-outside detection.\n */\n portalRef?: React.Ref<HTMLDivElement>;\n\n /**\n * Element that receives the dropdown portal. Use this when rendering inside\n * modal dialogs so popups stay in the dialog's stacking and focus context\n * instead of being appended directly to document.body.\n */\n portalContainer?: PortalContainer;\n\n /**\n * Controlled search input value. Must be provided together with `onQueryChange`.\n */\n query?: string;\n\n /**\n * Callback when the search input value changes.\n * Can be used standalone as an event listener or together with `query`\n * for fully controlled search state.\n */\n onQueryChange?: (query: string) => void;\n\n /**\n * When true, disables the combobox's built-in client-side filtering.\n * Use when items are already filtered server-side (e.g. via `onQueryChange`).\n *\n * @default false\n */\n disableClientSideFiltering?: boolean;\n\n /**\n * Status message rendered below the search input and above the item list\n * inside the popup. Use for loading/error/empty messages.\n */\n popupStatus?: React.ReactNode;\n\n /**\n * A React node to render after the item list.\n * Use for infinite scroll sentinels, \"load more\" buttons, etc.\n */\n trailingItem?: React.ReactNode;\n\n /**\n * Whether the dropdown locks page scroll and renders a full-viewport\n * dismiss layer when open. Set to `false` when the dropdown is not\n * inside a `<label>` to allow normal page scrolling.\n *\n * @default true\n */\n modal?: boolean;\n}\n\nexport interface FilePickerProps extends BaseFormFieldProps<File | File[]> {\n /**\n * Whether multiple files can be selected\n */\n isMulti?: boolean;\n\n /**\n * Accepted file types (e.g., \"image/*\", \".pdf\")\n */\n accept?: string | string[];\n\n /**\n * Maximum file size in bytes\n */\n maxSize?: number;\n\n /**\n * The text displayed when no file is selected.\n *\n * @default \"No file chosen\"\n */\n text?: string;\n\n /**\n * The text displayed on the browse button.\n *\n * @default \"Browse\"\n */\n buttonText?: string;\n}\n\n/**\n * Text area field props\n */\nexport interface TextAreaFieldProps\n extends\n BaseFormFieldProps<string>,\n Pick<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n | \"rows\"\n | \"wrap\"\n /**\n * If provided, this will be added to the field validation\n */\n | \"minLength\"\n /**\n * If provided, this will be added to the field validation\n */\n | \"maxLength\"\n > {\n placeholder?: string;\n}\n\nexport interface TextInputFieldProps\n extends\n BaseFormFieldProps<string>,\n Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n /**\n * If provided, this will be added to the field validation\n */\n | \"minLength\"\n /**\n * If provided, this will be added to the field validation\n */\n | \"maxLength\"\n > {\n placeholder?: string;\n}\n\n/**\n * Number input field props\n */\nexport interface NumberInputFieldProps extends BaseFormFieldProps<number> {\n /**\n * Minimum allowed value.\n */\n min?: number;\n\n /**\n * Maximum allowed value.\n */\n max?: number;\n\n /**\n * Step increment for the input. Used by the stepper buttons and ArrowUp/ArrowDown keyboard stepping.\n *\n * @default 1\n */\n step?: number;\n\n /**\n * Placeholder text shown when the input is empty.\n */\n placeholder?: string;\n}\n\n/**\n * Radio buttons field props\n */\nexport interface RadioButtonsFieldProps<V> extends BaseFormFieldProps<V> {\n /**\n * Available options for radio buttons.\n *\n * Values are compared by reference equality (`===`). When options contain\n * non-primitive values, pass the same object references for `value` and\n * the corresponding option entry.\n */\n options: Option<V>[];\n\n /**\n * Controls the layout direction of the radio buttons.\n *\n * - `\"vertical\"` (default): options are stacked in a column\n * - `\"horizontal\"`: options are laid out in a row, wrapping when needed\n */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Switch field props for boolean values.\n */\nexport type SwitchFieldProps = BaseFormFieldProps<boolean>;\n\n/**\n * Option interface for radio button options\n */\nexport interface Option<V> {\n label: string;\n value: V;\n}\n\n/**\n * Object set field displays the summary of the count of the given object set\n */\nexport interface ObjectSetFieldProps<\n T extends ObjectTypeDefinition,\n> extends Pick<BaseFormFieldProps<ObjectSet<T>>, \"id\" | \"value\" | \"disabled\"> {\n /**\n * Message displayed when no object set is provided.\n *\n * @default \"Object set is not defined\"\n */\n emptyMessage?: string;\n}\n\ntype ObjectSelectDataSource<Q extends ObjectTypeDefinition> =\n | {\n /**\n * The object type definition to search across.\n */\n objectType: Q;\n objectSet?: never;\n }\n | {\n /**\n * A pre-scoped object set to search within.\n *\n * Use this when selectable options should be limited to a subset of\n * objects. User-entered search text is applied within this set.\n */\n objectSet: ObjectSet<Q>;\n objectType?: never;\n };\n\n/**\n * Object select field props for selecting object instances from the ontology.\n * Used for action parameters that accept a single object or multiple objects.\n *\n * Extends DropdownFieldProps with props that ObjectSelectField\n * manages internally (items, search, filtering) omitted from the public surface.\n */\nexport type ObjectSelectFieldProps<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> = Omit<\n DropdownFieldProps<Osdk.Instance<Q>>,\n | \"items\"\n | \"itemToStringLabel\"\n | \"itemToKey\"\n | \"isItemEqual\"\n | \"isSearchable\"\n | \"query\"\n | \"onQueryChange\"\n | \"disableClientSideFiltering\"\n | \"renderItemList\"\n> &\n ObjectSelectDataSource<Q>;\n\n/**\n * Custom field props for user-defined renderers\n */\nexport interface CustomFieldProps<V> extends BaseFormFieldProps<V> {\n /**\n * Custom renderer function\n */\n customRenderer: (props: BaseFormFieldProps<V>) => React.ReactNode;\n}\n\nexport interface UnsupportedFieldProps extends Pick<\n BaseFormFieldProps<string>,\n \"id\" | \"error\"\n> {}\n\nexport interface BaseFormFieldProps<V> {\n /**\n * The HTML `id` attribute for the field input element.\n * Used for `<label htmlFor>` association.\n */\n id?: string;\n\n /**\n * The validation error message for this field, if any.\n * When set, the field should display a visual error state.\n */\n error?: string;\n\n /**\n * The value of the form field\n */\n value: V | null;\n\n /**\n * The default value of the form field.\n */\n defaultValue?: V;\n\n /**\n * Whether the field is disabled.\n *\n * Disabled fields keep their current value in form state and submit payloads,\n * but built-in renderers block user edits and remove disabled controls from\n * keyboard navigation.\n */\n disabled?: boolean;\n\n /**\n * Called when the field value changes.\n *\n * ActionForm internally wraps this to pass the key to `onFieldValueChange`:\n * ```\n * <DropdownField\n * {...fieldDef}\n * onChange={(value) => onFieldValueChange(fieldDef.key, value)}\n * />\n * ```\n *\n * @param value The new value of the form field\n */\n onChange?: (value: V | null) => void;\n}\n\nexport type FieldKey<Q extends ActionDefinition<unknown>> =\n keyof ActionParameters<Q>;\n\n/**\n * Extracts parameters from an ActionDefinition\n */\nexport type ActionParameters<Q extends ActionDefinition<unknown>> =\n CompileTimeMetadata<Q>[\"parameters\"];\n\ntype ActionParameter<\n Q extends ActionDefinition<unknown>,\n K extends keyof ActionParameters<Q>,\n> = ActionParameters<Q>[K] extends ActionMetadata.Parameter\n ? ActionParameters<Q>[K]\n : never;\n\n/**\n * Extracts the value type for a specific parameter\n */\nexport type FieldValueType<\n Q extends ActionDefinition<unknown>,\n K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>,\n> =\n ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.Object<infer T>\n ? ActionParam.ObjectType<T>\n : ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.ObjectSet<\n infer T\n >\n ? ActionParam.ObjectSetType<T>\n : ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.Interface<\n infer T\n >\n ? ActionParam.InterfaceType<T>\n : ActionParameters<Q>[K][\"type\"] extends ActionMetadata.DataType.Struct<\n infer T\n >\n ? ActionParam.StructType<T>\n : ActionParameters<Q>[K][\"type\"] extends keyof DataValueClientToWire\n ? DataValueClientToWire[ActionParameters<Q>[K][\"type\"]]\n : never;\n\n/**\n * Extracts the parameter type descriptor for a specific action parameter.\n */\nexport type FieldDescriptorType<\n Q extends ActionDefinition<unknown> = ActionDefinition<unknown>,\n K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>,\n> = ActionParameters<Q>[K][\"type\"];\n\n/**\n * Available form field component types\n */\nexport type FieldComponent =\n | \"DATE_RANGE_INPUT\"\n | \"DATETIME_PICKER\"\n | \"DROPDOWN\"\n | \"FILE_PICKER\"\n | \"NUMBER_INPUT\"\n | \"OBJECT_SELECT\"\n | \"OBJECT_SET\"\n | \"RADIO_BUTTONS\"\n | \"SWITCH\"\n | \"TEXT_AREA\"\n | \"TEXT_INPUT\"\n | \"CUSTOM\"\n | \"UNSUPPORTED\";\n\n/**\n * Describes the data type of a form field, independent of OSDK.\n * Mirrors ActionMetadata.DataType to keep the rendering layer OSDK-agnostic.\n */\nexport type FieldType =\n | \"boolean\"\n | \"string\"\n | \"integer\"\n | \"long\"\n | \"double\"\n | \"decimal\"\n | \"datetime\"\n | \"timestamp\"\n | \"attachment\"\n | \"marking\"\n | \"mediaReference\"\n | \"objectType\"\n | \"geoshape\"\n | \"geohash\"\n | \"scenarioReference\"\n | \"timeSeriesReference\"\n | { type: \"object\"; object: string }\n | { type: \"objectSet\"; objectSet: string }\n | { type: \"interface\"; interface: string }\n | { type: \"struct\"; struct: Record<string, string> };\n\n/**\n * Props managed by form state infrastructure (FieldBridge / RHF).\n * Fields with onChange participate in form state → value and onChange are managed\n * externally. Read-only fields (no onChange, e.g. ObjectSetField) keep value in\n * fieldComponentProps so it bypasses form state cloning.\n */\ntype FormManagedProps<K extends FieldComponent> =\n \"onChange\" extends keyof FormFieldPropsByType[K]\n ? \"value\" | \"onChange\" | \"disabled\"\n : \"onChange\" | \"disabled\";\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, Extract<keyof T, K>>\n : never;\n\n/**\n * An OSDK-agnostic field definition used by BaseForm and FormFieldRenderer.\n * Contains only the information needed to render a single field — no generics,\n * no compile-time parameter constraints.\n *\n * Implemented as a distributed mapped type: switching on `fieldComponent`\n * narrows `fieldComponentProps` to the correct props type automatically.\n */\nexport type RendererFieldDefinition = {\n [K in FieldComponent]: {\n fieldKey: string;\n fieldComponent: K;\n fieldType?: FieldType;\n label: string;\n isRequired?: boolean;\n placeholder?: string;\n helperText?: React.ReactNode;\n helperTextPlacement?: \"bottom\" | \"tooltip\";\n disabled?: boolean;\n validate?: (value: unknown) => Promise<string | undefined>;\n onValidationError?: (error: ValidationError) => string | undefined;\n fieldComponentProps: DistributiveOmit<\n FormFieldPropsByType[K],\n FormManagedProps<K>\n >;\n };\n}[FieldComponent];\n\n/**\n * Gets valid form field types for a given property type\n */\nexport type ValidFormFieldForPropertyType<P extends FieldDescriptorType> =\n | \"CUSTOM\"\n | (P extends { type: \"objectSet\" }\n ? \"OBJECT_SET\"\n : P extends { type: \"object\" }\n ? \"OBJECT_SELECT\"\n : P extends { type: \"interface\" }\n ? \"UNSUPPORTED\"\n : P extends { type: \"struct\" }\n ? \"UNSUPPORTED\"\n : P extends \"mediaReference\" | \"attachment\"\n ? \"FILE_PICKER\"\n : P extends \"boolean\"\n ? \"RADIO_BUTTONS\" | \"DROPDOWN\" | \"SWITCH\"\n : P extends \"string\"\n ? \"TEXT_INPUT\" | \"TEXT_AREA\" | \"DROPDOWN\" | \"RADIO_BUTTONS\"\n : P extends \"datetime\" | \"timestamp\"\n ? \"DATETIME_PICKER\"\n : P extends\n | \"marking\"\n | \"geohash\"\n | \"geoshape\"\n | \"objectType\"\n | \"timeSeriesReference\"\n ? \"UNSUPPORTED\"\n : P extends\n | \"double\"\n | \"integer\"\n | \"long\"\n | \"float\"\n | \"short\"\n | \"byte\"\n | \"decimal\"\n ? \"NUMBER_INPUT\"\n : never);\n"],"mappings":"","ignoreList":[]}
@@ -86,6 +86,7 @@ function buildFieldDefinition(key, param) {
86
86
  case "geoshape":
87
87
  case "objectType":
88
88
  case "scenarioReference":
89
+ case "timeSeriesReference":
89
90
  return {
90
91
  ...base,
91
92
  fieldComponent: "UNSUPPORTED",
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultFieldDefinitions.js","names":["assertUnreachable","getDefaultFieldDefinitions","metadata","Object","entries","parameters","map","key","param","buildFieldDefinition","base","fieldKey","label","displayName","isRequired","nullable","fieldType","type","paramType","fieldComponent","fieldComponentProps","value","objectType","apiName","object","options"],"sources":["getDefaultFieldDefinitions.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionMetadata } from \"@osdk/api\";\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport type { RendererFieldDefinition } from \"../FormFieldApi.js\";\n\n/**\n * Derives default field definitions from ActionMetadata.\n *\n * Each parameter type maps to a concrete RendererFieldDefinition with the\n * correct fieldComponent and default fieldComponentProps.\n */\nexport function getDefaultFieldDefinitions(\n metadata: ActionMetadata,\n): ReadonlyArray<RendererFieldDefinition> {\n return Object.entries(metadata.parameters).map(([key, param]) =>\n buildFieldDefinition(key, param),\n );\n}\n\n/**\n * Maps a single action parameter to its default RendererFieldDefinition.\n *\n * Switches on the parameter's data type to select both the field component\n * and its required default props.\n */\nfunction buildFieldDefinition(\n key: string,\n param: ActionMetadata.Parameter,\n): RendererFieldDefinition {\n const base = {\n fieldKey: key,\n label: param.displayName ?? key,\n isRequired: !param.nullable,\n fieldType: param.type,\n };\n\n const paramType = param.type;\n\n if (typeof paramType === \"object\") {\n switch (paramType.type) {\n case \"objectSet\":\n return {\n ...base,\n fieldComponent: \"OBJECT_SET\",\n fieldComponentProps: { value: null },\n };\n case \"object\":\n return {\n ...base,\n fieldComponent: \"OBJECT_SELECT\",\n fieldComponentProps: {\n // Construct a minimal ObjectTypeDefinition from the action\n // parameter metadata. At runtime useOsdkObjects only reads\n // type + apiName from the definition.\n objectType: {\n type: \"object\" as const,\n apiName: paramType.object,\n },\n },\n };\n case \"interface\":\n case \"struct\":\n return {\n ...base,\n fieldComponent: \"UNSUPPORTED\",\n fieldComponentProps: {},\n };\n }\n }\n\n switch (paramType) {\n case \"string\":\n return {\n ...base,\n fieldComponent: \"TEXT_INPUT\",\n fieldComponentProps: {},\n };\n // NUMBER_INPUT would round-trip through a JS number and lose precision.\n case \"decimal\":\n case \"marking\":\n case \"geohash\":\n case \"geoshape\":\n case \"objectType\":\n case \"scenarioReference\":\n return {\n ...base,\n fieldComponent: \"UNSUPPORTED\",\n fieldComponentProps: {},\n };\n case \"boolean\":\n return {\n ...base,\n fieldComponent: \"RADIO_BUTTONS\",\n fieldComponentProps: {\n options: [\n { label: \"True\", value: true },\n {\n label: \"False\",\n value: false,\n },\n ],\n },\n };\n case \"integer\":\n case \"double\":\n case \"long\":\n return {\n ...base,\n fieldComponent: \"NUMBER_INPUT\",\n fieldComponentProps: {},\n };\n case \"datetime\":\n case \"timestamp\":\n return {\n ...base,\n fieldComponent: \"DATETIME_PICKER\",\n fieldComponentProps: {},\n };\n case \"attachment\":\n case \"mediaReference\":\n return {\n ...base,\n fieldComponent: \"FILE_PICKER\",\n fieldComponentProps: {},\n };\n default:\n return assertUnreachable(paramType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getDefaultFieldDefinitions.js","names":["assertUnreachable","getDefaultFieldDefinitions","metadata","Object","entries","parameters","map","key","param","buildFieldDefinition","base","fieldKey","label","displayName","isRequired","nullable","fieldType","type","paramType","fieldComponent","fieldComponentProps","value","objectType","apiName","object","options"],"sources":["getDefaultFieldDefinitions.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionMetadata } from \"@osdk/api\";\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport type { RendererFieldDefinition } from \"../FormFieldApi.js\";\n\n/**\n * Derives default field definitions from ActionMetadata.\n *\n * Each parameter type maps to a concrete RendererFieldDefinition with the\n * correct fieldComponent and default fieldComponentProps.\n */\nexport function getDefaultFieldDefinitions(\n metadata: ActionMetadata,\n): ReadonlyArray<RendererFieldDefinition> {\n return Object.entries(metadata.parameters).map(([key, param]) =>\n buildFieldDefinition(key, param),\n );\n}\n\n/**\n * Maps a single action parameter to its default RendererFieldDefinition.\n *\n * Switches on the parameter's data type to select both the field component\n * and its required default props.\n */\nfunction buildFieldDefinition(\n key: string,\n param: ActionMetadata.Parameter,\n): RendererFieldDefinition {\n const base = {\n fieldKey: key,\n label: param.displayName ?? key,\n isRequired: !param.nullable,\n fieldType: param.type,\n };\n\n const paramType = param.type;\n\n if (typeof paramType === \"object\") {\n switch (paramType.type) {\n case \"objectSet\":\n return {\n ...base,\n fieldComponent: \"OBJECT_SET\",\n fieldComponentProps: { value: null },\n };\n case \"object\":\n return {\n ...base,\n fieldComponent: \"OBJECT_SELECT\",\n fieldComponentProps: {\n // Construct a minimal ObjectTypeDefinition from the action\n // parameter metadata. At runtime useOsdkObjects only reads\n // type + apiName from the definition.\n objectType: {\n type: \"object\" as const,\n apiName: paramType.object,\n },\n },\n };\n case \"interface\":\n case \"struct\":\n return {\n ...base,\n fieldComponent: \"UNSUPPORTED\",\n fieldComponentProps: {},\n };\n }\n }\n\n switch (paramType) {\n case \"string\":\n return {\n ...base,\n fieldComponent: \"TEXT_INPUT\",\n fieldComponentProps: {},\n };\n // NUMBER_INPUT would round-trip through a JS number and lose precision.\n case \"decimal\":\n case \"marking\":\n case \"geohash\":\n case \"geoshape\":\n case \"objectType\":\n case \"scenarioReference\":\n case \"timeSeriesReference\":\n return {\n ...base,\n fieldComponent: \"UNSUPPORTED\",\n fieldComponentProps: {},\n };\n case \"boolean\":\n return {\n ...base,\n fieldComponent: \"RADIO_BUTTONS\",\n fieldComponentProps: {\n options: [\n { label: \"True\", value: true },\n {\n label: \"False\",\n value: false,\n },\n ],\n },\n };\n case \"integer\":\n case \"double\":\n case \"long\":\n return {\n ...base,\n fieldComponent: \"NUMBER_INPUT\",\n fieldComponentProps: {},\n };\n case \"datetime\":\n case \"timestamp\":\n return {\n ...base,\n fieldComponent: \"DATETIME_PICKER\",\n fieldComponentProps: {},\n };\n case \"attachment\":\n case \"mediaReference\":\n return {\n ...base,\n fieldComponent: \"FILE_PICKER\",\n fieldComponentProps: {},\n };\n default:\n return assertUnreachable(paramType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- const PACKAGE_USER_AGENT = `osdk-react-components/${"0.66.0"}`;
17
+ const PACKAGE_USER_AGENT = `osdk-react-components/${"0.67.0"}`;
18
18
  export function componentUserAgent(componentName) {
19
19
  return `${PACKAGE_USER_AGENT}/${componentName}`;
20
20
  }
@@ -581,7 +581,7 @@ type FieldComponent = "DATE_RANGE_INPUT" | "DATETIME_PICKER" | "DROPDOWN" | "FIL
581
581
  * Describes the data type of a form field, independent of OSDK.
582
582
  * Mirrors ActionMetadata.DataType to keep the rendering layer OSDK-agnostic.
583
583
  */
584
- type FieldType = "boolean" | "string" | "integer" | "long" | "double" | "decimal" | "datetime" | "timestamp" | "attachment" | "marking" | "mediaReference" | "objectType" | "geoshape" | "geohash" | "scenarioReference" | {
584
+ type FieldType = "boolean" | "string" | "integer" | "long" | "double" | "decimal" | "datetime" | "timestamp" | "attachment" | "marking" | "mediaReference" | "objectType" | "geoshape" | "geohash" | "scenarioReference" | "timeSeriesReference" | {
585
585
  type: "object";
586
586
  object: string;
587
587
  } | {
@@ -637,7 +637,7 @@ type ValidFormFieldForPropertyType<P extends FieldDescriptorType> = "CUSTOM" | (
637
637
  type: "interface";
638
638
  } ? "UNSUPPORTED" : P extends {
639
639
  type: "struct";
640
- } ? "UNSUPPORTED" : P extends "mediaReference" | "attachment" ? "FILE_PICKER" : P extends "boolean" ? "RADIO_BUTTONS" | "DROPDOWN" | "SWITCH" : P extends "string" ? "TEXT_INPUT" | "TEXT_AREA" | "DROPDOWN" | "RADIO_BUTTONS" : P extends "datetime" | "timestamp" ? "DATETIME_PICKER" : P extends "marking" | "geohash" | "geoshape" | "objectType" ? "UNSUPPORTED" : P extends "double" | "integer" | "long" | "float" | "short" | "byte" | "decimal" ? "NUMBER_INPUT" : never);
640
+ } ? "UNSUPPORTED" : P extends "mediaReference" | "attachment" ? "FILE_PICKER" : P extends "boolean" ? "RADIO_BUTTONS" | "DROPDOWN" | "SWITCH" : P extends "string" ? "TEXT_INPUT" | "TEXT_AREA" | "DROPDOWN" | "RADIO_BUTTONS" : P extends "datetime" | "timestamp" ? "DATETIME_PICKER" : P extends "marking" | "geohash" | "geoshape" | "objectType" | "timeSeriesReference" ? "UNSUPPORTED" : P extends "double" | "integer" | "long" | "float" | "short" | "byte" | "decimal" ? "NUMBER_INPUT" : never);
641
641
 
642
642
  /**
643
643
  * Props for the ActionForm component.
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var chunkPA7IYPBX_cjs = require('./chunk-PA7IYPBX.cjs');
4
+ var chunkLZTR5GS5_cjs = require('./chunk-LZTR5GS5.cjs');
5
+
6
+ // src/public/email-viewer.ts
7
+ var EmailViewer2 = chunkLZTR5GS5_cjs.withOsdkMetrics(chunkPA7IYPBX_cjs.EmailViewer, "EmailViewer");
8
+
9
+ exports.EmailViewer = EmailViewer2;
10
+ //# sourceMappingURL=chunk-25KCCJN5.cjs.map
11
+ //# sourceMappingURL=chunk-25KCCJN5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public/email-viewer.ts"],"names":["EmailViewer","withOsdkMetrics"],"mappings":";;;;;;AAqBO,IAAMA,YAAAA,GAAcC,iCAAA,CAAgBD,6BAAA,EAAc,aAAa","file":"chunk-L2MTV7TS.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// BaseEmailViewer\nexport { BaseEmailViewer } from \"../email-viewer/BaseEmailViewer.js\";\n// EmailViewer (Media wrapper)\nimport { EmailViewer as _EmailViewer } from \"../email-viewer/EmailViewer.js\";\nimport { withOsdkMetrics } from \"../util/withOsdkMetrics.js\";\nexport const EmailViewer = withOsdkMetrics(_EmailViewer, \"EmailViewer\");"]}
1
+ {"version":3,"sources":["../../src/public/email-viewer.ts"],"names":["EmailViewer","withOsdkMetrics"],"mappings":";;;;;;AAqBO,IAAMA,YAAAA,GAAcC,iCAAA,CAAgBD,6BAAA,EAAc,aAAa","file":"chunk-25KCCJN5.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// BaseEmailViewer\nexport { BaseEmailViewer } from \"../email-viewer/BaseEmailViewer.js\";\n// EmailViewer (Media wrapper)\nimport { EmailViewer as _EmailViewer } from \"../email-viewer/EmailViewer.js\";\nimport { withOsdkMetrics } from \"../util/withOsdkMetrics.js\";\nexport const EmailViewer = withOsdkMetrics(_EmailViewer, \"EmailViewer\");"]}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkYMAWH3EZ_cjs = require('./chunk-YMAWH3EZ.cjs');
3
+ var chunkUNB5WSKF_cjs = require('./chunk-UNB5WSKF.cjs');
4
4
  var chunkRVZE7LPI_cjs = require('./chunk-RVZE7LPI.cjs');
5
5
 
6
6
  // src/public/experimental/xml-viewer.ts
7
7
  var BaseXmlViewer2 = chunkRVZE7LPI_cjs.BaseXmlViewer;
8
- var XmlViewer2 = chunkYMAWH3EZ_cjs.XmlViewer;
8
+ var XmlViewer2 = chunkUNB5WSKF_cjs.XmlViewer;
9
9
 
10
10
  exports.BaseXmlViewer = BaseXmlViewer2;
11
11
  exports.XmlViewer = XmlViewer2;
12
- //# sourceMappingURL=chunk-I3ISK52L.cjs.map
13
- //# sourceMappingURL=chunk-I3ISK52L.cjs.map
12
+ //# sourceMappingURL=chunk-3J2Z75WV.cjs.map
13
+ //# sourceMappingURL=chunk-3J2Z75WV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public/experimental/xml-viewer.ts"],"names":["BaseXmlViewer","XmlViewer"],"mappings":";;;;;;AAmBO,IAAMA,cAAAA,GAAuBA;AAO7B,IAAMC,UAAAA,GAAmBA","file":"chunk-I3ISK52L.cjs","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 * as Stable from \"../xml-viewer.js\";\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\nexport const BaseXmlViewer = Stable.BaseXmlViewer;\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\nexport const XmlViewer = Stable.XmlViewer;"]}
1
+ {"version":3,"sources":["../../src/public/experimental/xml-viewer.ts"],"names":["BaseXmlViewer","XmlViewer"],"mappings":";;;;;;AAmBO,IAAMA,cAAAA,GAAuBA;AAO7B,IAAMC,UAAAA,GAAmBA","file":"chunk-3J2Z75WV.cjs","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 * as Stable from \"../xml-viewer.js\";\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\nexport const BaseXmlViewer = Stable.BaseXmlViewer;\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/xml-viewer` instead. */\nexport const XmlViewer = Stable.XmlViewer;"]}
@@ -9,7 +9,7 @@ var chunkPA7IYPBX_cjs = require('./chunk-PA7IYPBX.cjs');
9
9
  var chunkUCTQICPR_cjs = require('./chunk-UCTQICPR.cjs');
10
10
  var chunkVOROB7KJ_cjs = require('./chunk-VOROB7KJ.cjs');
11
11
  var chunkKFV264XS_cjs = require('./chunk-KFV264XS.cjs');
12
- var chunk7SD5CAWL_cjs = require('./chunk-7SD5CAWL.cjs');
12
+ var chunkLZTR5GS5_cjs = require('./chunk-LZTR5GS5.cjs');
13
13
  var icons = require('@blueprintjs/icons');
14
14
  var classnames = require('classnames');
15
15
  var React2 = require('react');
@@ -307,9 +307,9 @@ function DocumentViewer({
307
307
  }
308
308
 
309
309
  // src/public/document-viewer.ts
310
- var DocumentViewer2 = chunk7SD5CAWL_cjs.withOsdkMetrics(DocumentViewer, "DocumentViewer");
310
+ var DocumentViewer2 = chunkLZTR5GS5_cjs.withOsdkMetrics(DocumentViewer, "DocumentViewer");
311
311
 
312
312
  exports.DocumentViewer = DocumentViewer2;
313
313
  exports.ViewerType = ViewerType;
314
- //# sourceMappingURL=chunk-BQBBSVCC.cjs.map
315
- //# sourceMappingURL=chunk-BQBBSVCC.cjs.map
314
+ //# sourceMappingURL=chunk-563DKG4Y.cjs.map
315
+ //# sourceMappingURL=chunk-563DKG4Y.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/document-viewer/DocumentViewerApi.ts","../../src/document-viewer/hooks/useTiffToPdf.ts","../../src/document-viewer/DocumentViewer.module.css","../../src/document-viewer/TiffDocumentViewer.tsx","../../src/document-viewer/DocumentViewer.tsx","../../src/public/document-viewer.ts"],"names":["ViewerType","useOsdkClient","useState","useRef","useEffect","UTIF","transformAndWait","React","Spin","BasePdfViewer","TiffViewer","_extends","useMemo","classnames","PdfViewer","ImageViewer","VideoViewer","MarkdownViewer","SpreadsheetViewer","EmailViewer","XmlViewer","DocumentIcon","assertUnreachable","DocumentViewer","withOsdkMetrics"],"mappings":"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","file":"chunk-BQBBSVCC.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport let ViewerType = /*#__PURE__*/function (ViewerType) {\n ViewerType[\"Pdf\"] = \"pdf\";\n ViewerType[\"Tiff\"] = \"tiff\";\n ViewerType[\"Image\"] = \"image\";\n ViewerType[\"Video\"] = \"video\";\n ViewerType[\"Markdown\"] = \"markdown\";\n ViewerType[\"Spreadsheet\"] = \"spreadsheet\";\n ViewerType[\"Email\"] = \"email\";\n ViewerType[\"Xml\"] = \"xml\";\n ViewerType[\"Unsupported\"] = \"unsupported\";\n return ViewerType;\n}({});","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* cspell:words ifds */\n\nimport { transformAndWait } from \"@osdk/api/unstable\";\nimport { useOsdkClient } from \"@osdk/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as UTIF from \"utif\";\nimport { ViewerType } from \"../DocumentViewerApi.js\";\nconst DISABLED_RESULT = {\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: false,\n error: undefined\n};\n\n/**\n * Detects multi-page TIFFs and converts them to PDF via the MIO transform API.\n * Single-page TIFFs are left for the TiffViewer to handle.\n *\n * @param media - The OSDK Media object (must be a TIFF)\n * @param enabled - Whether to attempt multi-page detection and conversion\n */\nexport function useTiffToPdf(media, enabled) {\n const client = useOsdkClient();\n const [result, setResult] = useState(DISABLED_RESULT);\n const mediaRef = useRef(media);\n mediaRef.current = media;\n useEffect(() => {\n if (!enabled) {\n setResult(DISABLED_RESULT);\n return;\n }\n let cancelled = false;\n setResult({\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: true,\n error: undefined\n });\n async function detectAndTransform() {\n const currentMedia = mediaRef.current;\n\n // Step 1: Fetch TIFF bytes and count pages\n const response = await currentMedia.fetchContents();\n const buffer = await response.arrayBuffer();\n if (cancelled) return;\n const ifds = UTIF.decode(buffer);\n const pageCount = ifds.length;\n if (pageCount <= 1) {\n // Single-page TIFF — use TiffViewer\n if (!cancelled) {\n setResult({\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: false,\n error: undefined\n });\n }\n return;\n }\n\n // Step 2: Multi-page TIFF — convert to PDF via MIO transform\n const pdfResponse = await client(transformAndWait).transformAndWait({\n media: currentMedia,\n transformation: {\n $imageToDocument: {\n $operation: {\n $createPdf: {}\n }\n }\n }\n });\n if (cancelled) return;\n const pdfBuffer = await pdfResponse.arrayBuffer();\n if (!cancelled) {\n setResult({\n viewerType: ViewerType.Pdf,\n pdfData: pdfBuffer,\n loading: false,\n error: undefined\n });\n }\n }\n detectAndTransform().catch(err => {\n if (!cancelled) {\n // eslint-disable-next-line no-console\n console.warn(\"TIFF to PDF conversion failed, falling back to TIFF renderer:\", err);\n setResult({\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: false,\n error: err instanceof Error ? err : new Error(String(err))\n });\n }\n });\n return () => {\n cancelled = true;\n };\n }, [media, enabled, client]);\n return result;\n}",".container {\n display: flex;\n width: 100%;\n height: 100%;\n background-color: var(--osdk-document-viewer-bg);\n border: var(--osdk-document-viewer-border);\n border-radius: var(--osdk-surface-border-radius);\n overflow: hidden;\n}\n\n.unsupportedContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--osdk-surface-spacing);\n width: 100%;\n height: 100%;\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-medium);\n color: var(--osdk-typography-color-muted);\n}\n\n.unsupportedIcon {\n flex-shrink: 0;\n}\n\n.loadingContainer {\n composes: loadingContainer from \"../shared/LoadingError.module.css\";\n width: 100%;\n}\n\n.spinnerIcon {\n composes: spinnerIcon from \"../shared/LoadingError.module.css\";\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\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 { Spin } from \"@blueprintjs/icons\";\nimport React from \"react\";\nimport { TiffViewer } from \"../images/tiff-viewer/TiffViewer.js\";\nimport { BasePdfViewer } from \"../pdf-viewer/BasePdfViewer.js\";\nimport { ViewerType } from \"./DocumentViewerApi.js\";\nimport { useTiffToPdf } from \"./hooks/useTiffToPdf.js\";\nimport styles from \"./DocumentViewer.module.css\";\nexport function TiffDocumentViewer({\n media,\n className,\n enableTiffToPdf,\n tiffViewerProps,\n pdfViewerProps\n}) {\n const {\n viewerType,\n pdfData,\n loading\n } = useTiffToPdf(media, enableTiffToPdf);\n if (loading) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, /*#__PURE__*/React.createElement(Spin, {\n className: styles.spinnerIcon\n }), \"Converting document\\u2026\"));\n }\n if (viewerType === ViewerType.Pdf && pdfData != null) {\n return /*#__PURE__*/React.createElement(BasePdfViewer, _extends({\n src: pdfData,\n className: className\n }, pdfViewerProps));\n }\n return /*#__PURE__*/React.createElement(TiffViewer, _extends({\n media: media,\n className: className\n }, tiffViewerProps));\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* cspell:words openxmlformats officedocument wordprocessingml spreadsheetml */\n\nimport { Document as DocumentIcon } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { useMemo } from \"react\";\nimport { EmailViewer } from \"../email-viewer/EmailViewer.js\";\nimport { ImageViewer } from \"../images/image-viewer/ImageViewer.js\";\nimport { TiffViewer } from \"../images/tiff-viewer/TiffViewer.js\";\nimport { MarkdownViewer } from \"../markdown-viewer/MarkdownViewer.js\";\nimport { PdfViewer } from \"../pdf-viewer/PdfViewer.js\";\nimport { assertUnreachable } from \"../shared/assertUnreachable.js\";\nimport { SpreadsheetViewer } from \"../spreadsheet-viewer/SpreadsheetViewer.js\";\nimport { VideoViewer } from \"../video-viewer/VideoViewer.js\";\nimport { XmlViewer } from \"../xml-viewer/XmlViewer.js\";\nimport { ViewerType } from \"./DocumentViewerApi.js\";\nimport { TiffDocumentViewer } from \"./TiffDocumentViewer.js\";\nimport styles from \"./DocumentViewer.module.css\";\nconst IMAGE_MIME_TYPES = new Set([\"image/png\", \"image/jpeg\", \"image/gif\", \"image/svg+xml\", \"image/webp\", \"image/bmp\"]);\nconst MARKDOWN_MIME_TYPES = new Set([\"text/markdown\", \"text/x-markdown\"]);\nconst XML_MIME_TYPES = new Set([\"application/xml\", \"text/xml\"]);\nfunction isTiffFile(mimeType, fileName) {\n if (mimeType === \"image/tiff\") {\n return true;\n }\n const lowered = fileName?.toLowerCase();\n return lowered?.endsWith(\".tif\") === true || lowered?.endsWith(\".tiff\") === true;\n}\nfunction getViewerType(mimeType, fileName) {\n if (mimeType === \"application/pdf\") {\n return ViewerType.Pdf;\n }\n if (isTiffFile(mimeType, fileName)) {\n return ViewerType.Tiff;\n }\n if (IMAGE_MIME_TYPES.has(mimeType)) {\n return ViewerType.Image;\n }\n if (mimeType.startsWith(\"video/\")) {\n return ViewerType.Video;\n }\n if (MARKDOWN_MIME_TYPES.has(mimeType)) {\n return ViewerType.Markdown;\n }\n if (mimeType === \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\") {\n return ViewerType.Spreadsheet;\n }\n if (mimeType === \"message/rfc822\") {\n return ViewerType.Email;\n }\n if (XML_MIME_TYPES.has(mimeType)) {\n return ViewerType.Xml;\n }\n return ViewerType.Unsupported;\n}\nexport function DocumentViewer({\n media,\n className,\n mimeTypeOverride,\n pdfViewerProps,\n imageViewerProps,\n videoViewerProps,\n tiffViewerProps,\n tiffRendererProps,\n fileName,\n enableTiffToPdf = false\n}) {\n const mimeType = mimeTypeOverride ?? media.getMediaReference().mimeType;\n const viewerType = useMemo(() => getViewerType(mimeType, fileName), [mimeType, fileName]);\n const rootClassName = classnames(styles.container, className);\n\n // `tiffRendererProps` is the deprecated name for `tiffViewerProps`. Coalescing\n // (rather than merging) keeps the alias behaving exactly like its replacement\n // and avoids creating a new object identity on every render.\n const resolvedTiffViewerProps = tiffViewerProps ?? tiffRendererProps;\n switch (viewerType) {\n case ViewerType.Pdf:\n return /*#__PURE__*/React.createElement(PdfViewer, _extends({\n media: media,\n className: rootClassName\n }, pdfViewerProps));\n case ViewerType.Tiff:\n if (enableTiffToPdf) {\n return /*#__PURE__*/React.createElement(TiffDocumentViewer, {\n media: media,\n className: rootClassName,\n enableTiffToPdf: enableTiffToPdf,\n tiffViewerProps: resolvedTiffViewerProps,\n pdfViewerProps: pdfViewerProps\n });\n }\n return /*#__PURE__*/React.createElement(TiffViewer, _extends({\n media: media,\n className: rootClassName\n }, resolvedTiffViewerProps));\n case ViewerType.Image:\n return /*#__PURE__*/React.createElement(ImageViewer, _extends({\n media: media,\n className: rootClassName\n }, imageViewerProps));\n case ViewerType.Video:\n return /*#__PURE__*/React.createElement(VideoViewer, _extends({\n media: media,\n className: rootClassName\n }, videoViewerProps));\n case ViewerType.Markdown:\n return /*#__PURE__*/React.createElement(MarkdownViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Spreadsheet:\n return /*#__PURE__*/React.createElement(SpreadsheetViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Email:\n return /*#__PURE__*/React.createElement(EmailViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Xml:\n return /*#__PURE__*/React.createElement(XmlViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Unsupported:\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.unsupportedContainer\n }, /*#__PURE__*/React.createElement(DocumentIcon, {\n className: styles.unsupportedIcon\n }), \"Unsupported file type: \", mimeType));\n default:\n assertUnreachable(viewerType);\n }\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// DocumentViewer\nimport { DocumentViewer as _DocumentViewer } from \"../document-viewer/DocumentViewer.js\";\nimport { withOsdkMetrics } from \"../util/withOsdkMetrics.js\";\nexport const DocumentViewer = withOsdkMetrics(_DocumentViewer, \"DocumentViewer\");\nexport { ViewerType } from \"../document-viewer/DocumentViewerApi.js\";"]}
1
+ {"version":3,"sources":["../../src/document-viewer/DocumentViewerApi.ts","../../src/document-viewer/hooks/useTiffToPdf.ts","../../src/document-viewer/DocumentViewer.module.css","../../src/document-viewer/TiffDocumentViewer.tsx","../../src/document-viewer/DocumentViewer.tsx","../../src/public/document-viewer.ts"],"names":["ViewerType","useOsdkClient","useState","useRef","useEffect","UTIF","transformAndWait","React","Spin","BasePdfViewer","TiffViewer","_extends","useMemo","classnames","PdfViewer","ImageViewer","VideoViewer","MarkdownViewer","SpreadsheetViewer","EmailViewer","XmlViewer","DocumentIcon","assertUnreachable","DocumentViewer","withOsdkMetrics"],"mappings":"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","file":"chunk-563DKG4Y.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport let ViewerType = /*#__PURE__*/function (ViewerType) {\n ViewerType[\"Pdf\"] = \"pdf\";\n ViewerType[\"Tiff\"] = \"tiff\";\n ViewerType[\"Image\"] = \"image\";\n ViewerType[\"Video\"] = \"video\";\n ViewerType[\"Markdown\"] = \"markdown\";\n ViewerType[\"Spreadsheet\"] = \"spreadsheet\";\n ViewerType[\"Email\"] = \"email\";\n ViewerType[\"Xml\"] = \"xml\";\n ViewerType[\"Unsupported\"] = \"unsupported\";\n return ViewerType;\n}({});","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* cspell:words ifds */\n\nimport { transformAndWait } from \"@osdk/api/unstable\";\nimport { useOsdkClient } from \"@osdk/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as UTIF from \"utif\";\nimport { ViewerType } from \"../DocumentViewerApi.js\";\nconst DISABLED_RESULT = {\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: false,\n error: undefined\n};\n\n/**\n * Detects multi-page TIFFs and converts them to PDF via the MIO transform API.\n * Single-page TIFFs are left for the TiffViewer to handle.\n *\n * @param media - The OSDK Media object (must be a TIFF)\n * @param enabled - Whether to attempt multi-page detection and conversion\n */\nexport function useTiffToPdf(media, enabled) {\n const client = useOsdkClient();\n const [result, setResult] = useState(DISABLED_RESULT);\n const mediaRef = useRef(media);\n mediaRef.current = media;\n useEffect(() => {\n if (!enabled) {\n setResult(DISABLED_RESULT);\n return;\n }\n let cancelled = false;\n setResult({\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: true,\n error: undefined\n });\n async function detectAndTransform() {\n const currentMedia = mediaRef.current;\n\n // Step 1: Fetch TIFF bytes and count pages\n const response = await currentMedia.fetchContents();\n const buffer = await response.arrayBuffer();\n if (cancelled) return;\n const ifds = UTIF.decode(buffer);\n const pageCount = ifds.length;\n if (pageCount <= 1) {\n // Single-page TIFF — use TiffViewer\n if (!cancelled) {\n setResult({\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: false,\n error: undefined\n });\n }\n return;\n }\n\n // Step 2: Multi-page TIFF — convert to PDF via MIO transform\n const pdfResponse = await client(transformAndWait).transformAndWait({\n media: currentMedia,\n transformation: {\n $imageToDocument: {\n $operation: {\n $createPdf: {}\n }\n }\n }\n });\n if (cancelled) return;\n const pdfBuffer = await pdfResponse.arrayBuffer();\n if (!cancelled) {\n setResult({\n viewerType: ViewerType.Pdf,\n pdfData: pdfBuffer,\n loading: false,\n error: undefined\n });\n }\n }\n detectAndTransform().catch(err => {\n if (!cancelled) {\n // eslint-disable-next-line no-console\n console.warn(\"TIFF to PDF conversion failed, falling back to TIFF renderer:\", err);\n setResult({\n viewerType: ViewerType.Tiff,\n pdfData: undefined,\n loading: false,\n error: err instanceof Error ? err : new Error(String(err))\n });\n }\n });\n return () => {\n cancelled = true;\n };\n }, [media, enabled, client]);\n return result;\n}",".container {\n display: flex;\n width: 100%;\n height: 100%;\n background-color: var(--osdk-document-viewer-bg);\n border: var(--osdk-document-viewer-border);\n border-radius: var(--osdk-surface-border-radius);\n overflow: hidden;\n}\n\n.unsupportedContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--osdk-surface-spacing);\n width: 100%;\n height: 100%;\n font-family: var(--osdk-typography-family-default);\n font-size: var(--osdk-typography-size-body-medium);\n color: var(--osdk-typography-color-muted);\n}\n\n.unsupportedIcon {\n flex-shrink: 0;\n}\n\n.loadingContainer {\n composes: loadingContainer from \"../shared/LoadingError.module.css\";\n width: 100%;\n}\n\n.spinnerIcon {\n composes: spinnerIcon from \"../shared/LoadingError.module.css\";\n}\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\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 { Spin } from \"@blueprintjs/icons\";\nimport React from \"react\";\nimport { TiffViewer } from \"../images/tiff-viewer/TiffViewer.js\";\nimport { BasePdfViewer } from \"../pdf-viewer/BasePdfViewer.js\";\nimport { ViewerType } from \"./DocumentViewerApi.js\";\nimport { useTiffToPdf } from \"./hooks/useTiffToPdf.js\";\nimport styles from \"./DocumentViewer.module.css\";\nexport function TiffDocumentViewer({\n media,\n className,\n enableTiffToPdf,\n tiffViewerProps,\n pdfViewerProps\n}) {\n const {\n viewerType,\n pdfData,\n loading\n } = useTiffToPdf(media, enableTiffToPdf);\n if (loading) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, /*#__PURE__*/React.createElement(Spin, {\n className: styles.spinnerIcon\n }), \"Converting document\\u2026\"));\n }\n if (viewerType === ViewerType.Pdf && pdfData != null) {\n return /*#__PURE__*/React.createElement(BasePdfViewer, _extends({\n src: pdfData,\n className: className\n }, pdfViewerProps));\n }\n return /*#__PURE__*/React.createElement(TiffViewer, _extends({\n media: media,\n className: className\n }, tiffViewerProps));\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* cspell:words openxmlformats officedocument wordprocessingml spreadsheetml */\n\nimport { Document as DocumentIcon } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { useMemo } from \"react\";\nimport { EmailViewer } from \"../email-viewer/EmailViewer.js\";\nimport { ImageViewer } from \"../images/image-viewer/ImageViewer.js\";\nimport { TiffViewer } from \"../images/tiff-viewer/TiffViewer.js\";\nimport { MarkdownViewer } from \"../markdown-viewer/MarkdownViewer.js\";\nimport { PdfViewer } from \"../pdf-viewer/PdfViewer.js\";\nimport { assertUnreachable } from \"../shared/assertUnreachable.js\";\nimport { SpreadsheetViewer } from \"../spreadsheet-viewer/SpreadsheetViewer.js\";\nimport { VideoViewer } from \"../video-viewer/VideoViewer.js\";\nimport { XmlViewer } from \"../xml-viewer/XmlViewer.js\";\nimport { ViewerType } from \"./DocumentViewerApi.js\";\nimport { TiffDocumentViewer } from \"./TiffDocumentViewer.js\";\nimport styles from \"./DocumentViewer.module.css\";\nconst IMAGE_MIME_TYPES = new Set([\"image/png\", \"image/jpeg\", \"image/gif\", \"image/svg+xml\", \"image/webp\", \"image/bmp\"]);\nconst MARKDOWN_MIME_TYPES = new Set([\"text/markdown\", \"text/x-markdown\"]);\nconst XML_MIME_TYPES = new Set([\"application/xml\", \"text/xml\"]);\nfunction isTiffFile(mimeType, fileName) {\n if (mimeType === \"image/tiff\") {\n return true;\n }\n const lowered = fileName?.toLowerCase();\n return lowered?.endsWith(\".tif\") === true || lowered?.endsWith(\".tiff\") === true;\n}\nfunction getViewerType(mimeType, fileName) {\n if (mimeType === \"application/pdf\") {\n return ViewerType.Pdf;\n }\n if (isTiffFile(mimeType, fileName)) {\n return ViewerType.Tiff;\n }\n if (IMAGE_MIME_TYPES.has(mimeType)) {\n return ViewerType.Image;\n }\n if (mimeType.startsWith(\"video/\")) {\n return ViewerType.Video;\n }\n if (MARKDOWN_MIME_TYPES.has(mimeType)) {\n return ViewerType.Markdown;\n }\n if (mimeType === \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\") {\n return ViewerType.Spreadsheet;\n }\n if (mimeType === \"message/rfc822\") {\n return ViewerType.Email;\n }\n if (XML_MIME_TYPES.has(mimeType)) {\n return ViewerType.Xml;\n }\n return ViewerType.Unsupported;\n}\nexport function DocumentViewer({\n media,\n className,\n mimeTypeOverride,\n pdfViewerProps,\n imageViewerProps,\n videoViewerProps,\n tiffViewerProps,\n tiffRendererProps,\n fileName,\n enableTiffToPdf = false\n}) {\n const mimeType = mimeTypeOverride ?? media.getMediaReference().mimeType;\n const viewerType = useMemo(() => getViewerType(mimeType, fileName), [mimeType, fileName]);\n const rootClassName = classnames(styles.container, className);\n\n // `tiffRendererProps` is the deprecated name for `tiffViewerProps`. Coalescing\n // (rather than merging) keeps the alias behaving exactly like its replacement\n // and avoids creating a new object identity on every render.\n const resolvedTiffViewerProps = tiffViewerProps ?? tiffRendererProps;\n switch (viewerType) {\n case ViewerType.Pdf:\n return /*#__PURE__*/React.createElement(PdfViewer, _extends({\n media: media,\n className: rootClassName\n }, pdfViewerProps));\n case ViewerType.Tiff:\n if (enableTiffToPdf) {\n return /*#__PURE__*/React.createElement(TiffDocumentViewer, {\n media: media,\n className: rootClassName,\n enableTiffToPdf: enableTiffToPdf,\n tiffViewerProps: resolvedTiffViewerProps,\n pdfViewerProps: pdfViewerProps\n });\n }\n return /*#__PURE__*/React.createElement(TiffViewer, _extends({\n media: media,\n className: rootClassName\n }, resolvedTiffViewerProps));\n case ViewerType.Image:\n return /*#__PURE__*/React.createElement(ImageViewer, _extends({\n media: media,\n className: rootClassName\n }, imageViewerProps));\n case ViewerType.Video:\n return /*#__PURE__*/React.createElement(VideoViewer, _extends({\n media: media,\n className: rootClassName\n }, videoViewerProps));\n case ViewerType.Markdown:\n return /*#__PURE__*/React.createElement(MarkdownViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Spreadsheet:\n return /*#__PURE__*/React.createElement(SpreadsheetViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Email:\n return /*#__PURE__*/React.createElement(EmailViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Xml:\n return /*#__PURE__*/React.createElement(XmlViewer, {\n media: media,\n className: rootClassName\n });\n case ViewerType.Unsupported:\n return /*#__PURE__*/React.createElement(\"div\", {\n className: rootClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.unsupportedContainer\n }, /*#__PURE__*/React.createElement(DocumentIcon, {\n className: styles.unsupportedIcon\n }), \"Unsupported file type: \", mimeType));\n default:\n assertUnreachable(viewerType);\n }\n}","/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// DocumentViewer\nimport { DocumentViewer as _DocumentViewer } from \"../document-viewer/DocumentViewer.js\";\nimport { withOsdkMetrics } from \"../util/withOsdkMetrics.js\";\nexport const DocumentViewer = withOsdkMetrics(_DocumentViewer, \"DocumentViewer\");\nexport { ViewerType } from \"../document-viewer/DocumentViewerApi.js\";"]}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkVOVGHJJ6_cjs = require('./chunk-VOVGHJJ6.cjs');
3
+ var chunkR7OMZVSD_cjs = require('./chunk-R7OMZVSD.cjs');
4
4
  var chunkKHMOMROL_cjs = require('./chunk-KHMOMROL.cjs');
5
5
 
6
6
  // src/public/experimental/video-viewer.ts
7
7
  var BaseVideoViewer2 = chunkKHMOMROL_cjs.BaseVideoViewer;
8
- var VideoViewer2 = chunkVOVGHJJ6_cjs.VideoViewer;
8
+ var VideoViewer2 = chunkR7OMZVSD_cjs.VideoViewer;
9
9
 
10
10
  exports.BaseVideoViewer = BaseVideoViewer2;
11
11
  exports.VideoViewer = VideoViewer2;
12
- //# sourceMappingURL=chunk-RJKH2TFP.cjs.map
13
- //# sourceMappingURL=chunk-RJKH2TFP.cjs.map
12
+ //# sourceMappingURL=chunk-5MO4EEKT.cjs.map
13
+ //# sourceMappingURL=chunk-5MO4EEKT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public/experimental/video-viewer.ts"],"names":["BaseVideoViewer","VideoViewer"],"mappings":";;;;;;AAmBO,IAAMA,gBAAAA,GAAyBA;AAO/B,IAAMC,YAAAA,GAAqBA","file":"chunk-RJKH2TFP.cjs","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 * as Stable from \"../video-viewer.js\";\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\nexport const BaseVideoViewer = Stable.BaseVideoViewer;\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\nexport const VideoViewer = Stable.VideoViewer;"]}
1
+ {"version":3,"sources":["../../src/public/experimental/video-viewer.ts"],"names":["BaseVideoViewer","VideoViewer"],"mappings":";;;;;;AAmBO,IAAMA,gBAAAA,GAAyBA;AAO/B,IAAMC,YAAAA,GAAqBA","file":"chunk-5MO4EEKT.cjs","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 * as Stable from \"../video-viewer.js\";\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\nexport const BaseVideoViewer = Stable.BaseVideoViewer;\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/video-viewer` instead. */\nexport const VideoViewer = Stable.VideoViewer;"]}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkJQRF53LC_cjs = require('./chunk-JQRF53LC.cjs');
3
+ var chunkNZGG24BM_cjs = require('./chunk-NZGG24BM.cjs');
4
4
  var chunkVWHXC6MQ_cjs = require('./chunk-VWHXC6MQ.cjs');
5
5
 
6
6
  // src/public/experimental/spreadsheet-viewer.ts
7
7
  var BaseSpreadsheetViewer2 = chunkVWHXC6MQ_cjs.BaseSpreadsheetViewer;
8
- var SpreadsheetViewer2 = chunkJQRF53LC_cjs.SpreadsheetViewer;
8
+ var SpreadsheetViewer2 = chunkNZGG24BM_cjs.SpreadsheetViewer;
9
9
 
10
10
  exports.BaseSpreadsheetViewer = BaseSpreadsheetViewer2;
11
11
  exports.SpreadsheetViewer = SpreadsheetViewer2;
12
- //# sourceMappingURL=chunk-VSB3D3TI.cjs.map
13
- //# sourceMappingURL=chunk-VSB3D3TI.cjs.map
12
+ //# sourceMappingURL=chunk-C7MVNJCL.cjs.map
13
+ //# sourceMappingURL=chunk-C7MVNJCL.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public/experimental/spreadsheet-viewer.ts"],"names":["BaseSpreadsheetViewer","SpreadsheetViewer"],"mappings":";;;;;;AAmBO,IAAMA,sBAAAA,GAA+BA;AAWrC,IAAMC,kBAAAA,GAA2BA","file":"chunk-VSB3D3TI.cjs","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 * as Stable from \"../spreadsheet-viewer.js\";\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\nexport const BaseSpreadsheetViewer = Stable.BaseSpreadsheetViewer;\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\nexport const SpreadsheetViewer = Stable.SpreadsheetViewer;"]}
1
+ {"version":3,"sources":["../../src/public/experimental/spreadsheet-viewer.ts"],"names":["BaseSpreadsheetViewer","SpreadsheetViewer"],"mappings":";;;;;;AAmBO,IAAMA,sBAAAA,GAA+BA;AAWrC,IAAMC,kBAAAA,GAA2BA","file":"chunk-C7MVNJCL.cjs","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 * as Stable from \"../spreadsheet-viewer.js\";\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\nexport const BaseSpreadsheetViewer = Stable.BaseSpreadsheetViewer;\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\n\n/** @deprecated Import from `@osdk/react-components/spreadsheet-viewer` instead. */\nexport const SpreadsheetViewer = Stable.SpreadsheetViewer;"]}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var chunkZK4Z6LBE_cjs = require('./chunk-ZK4Z6LBE.cjs');
4
+
5
+ // src/public/experimental/object-table.ts
6
+ var ObjectTable2 = chunkZK4Z6LBE_cjs.ObjectTable;
7
+ var BaseTable2 = chunkZK4Z6LBE_cjs.BaseTable;
8
+ var ColumnConfigDialog2 = chunkZK4Z6LBE_cjs.ColumnConfigDialog;
9
+ var MultiColumnSortDialog2 = chunkZK4Z6LBE_cjs.MultiColumnSortDialog;
10
+ var LoadingCell2 = chunkZK4Z6LBE_cjs.LoadingCell;
11
+ var LoadingCellContent2 = chunkZK4Z6LBE_cjs.LoadingCellContent;
12
+ var useFunctionColumnsData2 = chunkZK4Z6LBE_cjs.useFunctionColumnsData;
13
+ var useObjectTableData2 = chunkZK4Z6LBE_cjs.useObjectTableData;
14
+ var useColumnDefs2 = chunkZK4Z6LBE_cjs.useColumnDefs;
15
+ var useSelectionColumn2 = chunkZK4Z6LBE_cjs.useSelectionColumn;
16
+ var useColumnPinning2 = chunkZK4Z6LBE_cjs.useColumnPinning;
17
+ var useColumnResize2 = chunkZK4Z6LBE_cjs.useColumnResize;
18
+ var useColumnVisibility2 = chunkZK4Z6LBE_cjs.useColumnVisibility;
19
+ var useFocusedRow2 = chunkZK4Z6LBE_cjs.useFocusedRow;
20
+ var useLoadedObjectsChanged2 = chunkZK4Z6LBE_cjs.useLoadedObjectsChanged;
21
+ var useRowSelection2 = chunkZK4Z6LBE_cjs.useRowSelection;
22
+ var useTableSorting2 = chunkZK4Z6LBE_cjs.useTableSorting;
23
+ var useEditableTable2 = chunkZK4Z6LBE_cjs.useEditableTable;
24
+ var useObjectTableSnapshot2 = chunkZK4Z6LBE_cjs.useObjectTableSnapshot;
25
+ var useCellContextMenu2 = chunkZK4Z6LBE_cjs.useCellContextMenu;
26
+
27
+ exports.BaseTable = BaseTable2;
28
+ exports.ColumnConfigDialog = ColumnConfigDialog2;
29
+ exports.LoadingCell = LoadingCell2;
30
+ exports.LoadingCellContent = LoadingCellContent2;
31
+ exports.MultiColumnSortDialog = MultiColumnSortDialog2;
32
+ exports.ObjectTable = ObjectTable2;
33
+ exports.useCellContextMenu = useCellContextMenu2;
34
+ exports.useColumnDefs = useColumnDefs2;
35
+ exports.useColumnPinning = useColumnPinning2;
36
+ exports.useColumnResize = useColumnResize2;
37
+ exports.useColumnVisibility = useColumnVisibility2;
38
+ exports.useEditableTable = useEditableTable2;
39
+ exports.useFocusedRow = useFocusedRow2;
40
+ exports.useFunctionColumnsData = useFunctionColumnsData2;
41
+ exports.useLoadedObjectsChanged = useLoadedObjectsChanged2;
42
+ exports.useObjectTableData = useObjectTableData2;
43
+ exports.useObjectTableSnapshot = useObjectTableSnapshot2;
44
+ exports.useRowSelection = useRowSelection2;
45
+ exports.useSelectionColumn = useSelectionColumn2;
46
+ exports.useTableSorting = useTableSorting2;
47
+ //# sourceMappingURL=chunk-DFULAPAD.cjs.map
48
+ //# sourceMappingURL=chunk-DFULAPAD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public/experimental/object-table.ts"],"names":["ObjectTable","BaseTable","ColumnConfigDialog","MultiColumnSortDialog","LoadingCell","LoadingCellContent","useFunctionColumnsData","useObjectTableData","useColumnDefs","useSelectionColumn","useColumnPinning","useColumnResize","useColumnVisibility","useFocusedRow","useLoadedObjectsChanged","useRowSelection","useTableSorting","useEditableTable","useObjectTableSnapshot","useCellContextMenu"],"mappings":";;;;;AAmBO,IAAMA,YAAAA,GAAqBA;AAmC3B,IAAMC,UAAAA,GAAmBA;AAGzB,IAAMC,mBAAAA,GAA4BA;AAOlC,IAAMC,sBAAAA,GAA+BA;AAOrC,IAAMC,YAAAA,GAAqBA;AAG3B,IAAMC,mBAAAA,GAA4BA;AAKlC,IAAMC,uBAAAA,GAAgCA;AAKtC,IAAMC,mBAAAA,GAA4BA;AAOlC,IAAMC,cAAAA,GAAuBA;AAK7B,IAAMC,mBAAAA,GAA4BA;AAKlC,IAAMC,iBAAAA,GAA0BA;AAOhC,IAAMC,gBAAAA,GAAyBA;AAO/B,IAAMC,oBAAAA,GAA6BA;AAOnC,IAAMC,cAAAA,GAAuBA;AAO7B,IAAMC,wBAAAA,GAAiCA;AAKvC,IAAMC,gBAAAA,GAAyBA;AAS/B,IAAMC,gBAAAA,GAAyBA;AAO/B,IAAMC,iBAAAA,GAA0BA;AAKhC,IAAMC,uBAAAA,GAAgCA;AAKtC,IAAMC,mBAAAA,GAA4BA","file":"chunk-BR7JOCXT.cjs","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 * as Stable from \"../object-table.js\";\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const ObjectTable = Stable.ObjectTable;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const BaseTable = Stable.BaseTable;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const ColumnConfigDialog = Stable.ColumnConfigDialog;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const MultiColumnSortDialog = Stable.MultiColumnSortDialog;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const LoadingCell = Stable.LoadingCell;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const LoadingCellContent = Stable.LoadingCellContent;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useFunctionColumnsData = Stable.useFunctionColumnsData;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useObjectTableData = Stable.useObjectTableData;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnDefs = Stable.useColumnDefs;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useSelectionColumn = Stable.useSelectionColumn;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnPinning = Stable.useColumnPinning;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnResize = Stable.useColumnResize;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnVisibility = Stable.useColumnVisibility;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useFocusedRow = Stable.useFocusedRow;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useLoadedObjectsChanged = Stable.useLoadedObjectsChanged;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useRowSelection = Stable.useRowSelection;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useTableSorting = Stable.useTableSorting;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useEditableTable = Stable.useEditableTable;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useObjectTableSnapshot = Stable.useObjectTableSnapshot;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useCellContextMenu = Stable.useCellContextMenu;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */"]}
1
+ {"version":3,"sources":["../../src/public/experimental/object-table.ts"],"names":["ObjectTable","BaseTable","ColumnConfigDialog","MultiColumnSortDialog","LoadingCell","LoadingCellContent","useFunctionColumnsData","useObjectTableData","useColumnDefs","useSelectionColumn","useColumnPinning","useColumnResize","useColumnVisibility","useFocusedRow","useLoadedObjectsChanged","useRowSelection","useTableSorting","useEditableTable","useObjectTableSnapshot","useCellContextMenu"],"mappings":";;;;;AAmBO,IAAMA,YAAAA,GAAqBA;AAmC3B,IAAMC,UAAAA,GAAmBA;AAGzB,IAAMC,mBAAAA,GAA4BA;AAOlC,IAAMC,sBAAAA,GAA+BA;AAOrC,IAAMC,YAAAA,GAAqBA;AAG3B,IAAMC,mBAAAA,GAA4BA;AAKlC,IAAMC,uBAAAA,GAAgCA;AAKtC,IAAMC,mBAAAA,GAA4BA;AAOlC,IAAMC,cAAAA,GAAuBA;AAK7B,IAAMC,mBAAAA,GAA4BA;AAKlC,IAAMC,iBAAAA,GAA0BA;AAOhC,IAAMC,gBAAAA,GAAyBA;AAO/B,IAAMC,oBAAAA,GAA6BA;AAOnC,IAAMC,cAAAA,GAAuBA;AAO7B,IAAMC,wBAAAA,GAAiCA;AAKvC,IAAMC,gBAAAA,GAAyBA;AAS/B,IAAMC,gBAAAA,GAAyBA;AAO/B,IAAMC,iBAAAA,GAA0BA;AAKhC,IAAMC,uBAAAA,GAAgCA;AAKtC,IAAMC,mBAAAA,GAA4BA","file":"chunk-DFULAPAD.cjs","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 * as Stable from \"../object-table.js\";\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const ObjectTable = Stable.ObjectTable;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const BaseTable = Stable.BaseTable;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const ColumnConfigDialog = Stable.ColumnConfigDialog;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const MultiColumnSortDialog = Stable.MultiColumnSortDialog;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const LoadingCell = Stable.LoadingCell;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const LoadingCellContent = Stable.LoadingCellContent;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useFunctionColumnsData = Stable.useFunctionColumnsData;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useObjectTableData = Stable.useObjectTableData;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnDefs = Stable.useColumnDefs;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useSelectionColumn = Stable.useSelectionColumn;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnPinning = Stable.useColumnPinning;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnResize = Stable.useColumnResize;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useColumnVisibility = Stable.useColumnVisibility;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useFocusedRow = Stable.useFocusedRow;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useLoadedObjectsChanged = Stable.useLoadedObjectsChanged;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useRowSelection = Stable.useRowSelection;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useTableSorting = Stable.useTableSorting;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useEditableTable = Stable.useEditableTable;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useObjectTableSnapshot = Stable.useObjectTableSnapshot;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\nexport const useCellContextMenu = Stable.useCellContextMenu;\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */\n\n/** @deprecated Import from `@osdk/react-components/object-table` instead. */"]}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var chunkVOROB7KJ_cjs = require('./chunk-VOROB7KJ.cjs');
4
+ var chunkLZTR5GS5_cjs = require('./chunk-LZTR5GS5.cjs');
5
+
6
+ // src/public/image-viewer.ts
7
+ var ImageViewer2 = chunkLZTR5GS5_cjs.withOsdkMetrics(chunkVOROB7KJ_cjs.ImageViewer, "ImageViewer");
8
+
9
+ exports.ImageViewer = ImageViewer2;
10
+ //# sourceMappingURL=chunk-GIUBOBJW.cjs.map
11
+ //# sourceMappingURL=chunk-GIUBOBJW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public/image-viewer.ts"],"names":["ImageViewer","withOsdkMetrics"],"mappings":";;;;;;AAqBO,IAAMA,YAAAA,GAAcC,iCAAA,CAAgBD,6BAAA,EAAc,aAAa","file":"chunk-TMUPZD4V.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// BaseImageViewer\nexport { BaseImageViewer } from \"../images/image-viewer/BaseImageViewer.js\";\n// ImageViewer (Media wrapper)\nimport { ImageViewer as _ImageViewer } from \"../images/image-viewer/ImageViewer.js\";\nimport { withOsdkMetrics } from \"../util/withOsdkMetrics.js\";\nexport const ImageViewer = withOsdkMetrics(_ImageViewer, \"ImageViewer\");"]}
1
+ {"version":3,"sources":["../../src/public/image-viewer.ts"],"names":["ImageViewer","withOsdkMetrics"],"mappings":";;;;;;AAqBO,IAAMA,YAAAA,GAAcC,iCAAA,CAAgBD,6BAAA,EAAc,aAAa","file":"chunk-GIUBOBJW.cjs","sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// BaseImageViewer\nexport { BaseImageViewer } from \"../images/image-viewer/BaseImageViewer.js\";\n// ImageViewer (Media wrapper)\nimport { ImageViewer as _ImageViewer } from \"../images/image-viewer/ImageViewer.js\";\nimport { withOsdkMetrics } from \"../util/withOsdkMetrics.js\";\nexport const ImageViewer = withOsdkMetrics(_ImageViewer, \"ImageViewer\");"]}