@osdk/react-components 0.2.0-beta.21 → 0.2.0-beta.22
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.
- package/AGENTS.md +14 -97
- package/CHANGELOG.md +19 -0
- package/README.md +1 -1
- package/build/browser/action-form/ActionFormApi.js.map +1 -1
- package/build/browser/action-form/BaseForm.js +18 -5
- package/build/browser/action-form/BaseForm.js.map +1 -1
- package/build/browser/action-form/BaseForm.module.css +38 -0
- package/build/browser/action-form/BaseForm.module.css.js +8 -0
- package/build/browser/action-form/FormField.js +42 -0
- package/build/browser/action-form/FormField.js.map +1 -0
- package/build/browser/action-form/FormField.module.css +41 -0
- package/build/browser/action-form/FormField.module.css.js +10 -0
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/FormHeader.js +26 -0
- package/build/browser/action-form/FormHeader.js.map +1 -0
- package/build/browser/action-form/FormHeader.module.css +26 -0
- package/build/browser/action-form/FormHeader.module.css.js +6 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js +7 -5
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/browser/action-form/fields/TextInputField.js +2 -0
- package/build/browser/action-form/fields/TextInputField.js.map +1 -1
- package/build/browser/action-form/fields/TextInputField.module.css +56 -0
- package/build/browser/action-form/fields/TextInputField.module.css.js +6 -0
- package/build/browser/base-components/checkbox/Checkbox.js +2 -2
- package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/browser/base-components/combobox/Combobox.js +3 -8
- package/build/browser/base-components/combobox/Combobox.js.map +1 -1
- package/build/browser/base-components/combobox/Combobox.module.css +0 -3
- package/build/browser/base-components/draggable-list/DraggableList.js +2 -4
- package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/browser/base-components/select/Select.js +1 -3
- package/build/browser/base-components/select/Select.js.map +1 -1
- package/build/browser/base-components/select/Select.module.css +0 -2
- package/build/browser/base-components/switch/Switch.module.css +0 -1
- package/build/browser/filter-list/FilterInput.js +14 -5
- package/build/browser/filter-list/FilterInput.js.map +1 -1
- package/build/browser/filter-list/FilterList.js +13 -5
- package/build/browser/filter-list/FilterList.js.map +1 -1
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/AddFilterPopover.js +4 -3
- package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/ExcludeDropdown.js +61 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css +94 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
- package/build/browser/filter-list/base/FilterIcons.js +0 -39
- package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
- package/build/browser/filter-list/base/FilterInputExcludeRow.js +55 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/browser/filter-list/base/FilterListItem.js +72 -23
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +96 -20
- package/build/browser/filter-list/base/FilterListItem.module.css.js +7 -2
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js +2 -2
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js +2 -6
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.js +2 -2
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -3
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/{useStaleData.js → useStableData.js} +5 -5
- package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +3 -2
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +15 -5
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js +10 -6
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +41 -18
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +15 -5
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +10 -6
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +36 -10
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +29 -1
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/object-table/LoadingCell.module.css +0 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +1 -3
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -1
- package/build/browser/object-table/TableCell.module.css +1 -1
- package/build/browser/object-table/TableHeader.module.css +2 -2
- package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -0
- package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css +0 -1
- package/build/browser/public/experimental.js +2 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/styles.css +372 -38
- package/build/cjs/public/experimental.cjs +1882 -1068
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +244 -38
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +420 -11
- package/build/esm/action-form/ActionFormApi.js.map +1 -1
- package/build/esm/action-form/BaseForm.js +18 -5
- package/build/esm/action-form/BaseForm.js.map +1 -1
- package/build/esm/action-form/BaseForm.module.css +38 -0
- package/build/esm/action-form/FormField.js +42 -0
- package/build/esm/action-form/FormField.js.map +1 -0
- package/build/esm/action-form/FormField.module.css +41 -0
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/FormHeader.js +26 -0
- package/build/esm/action-form/FormHeader.js.map +1 -0
- package/build/esm/action-form/FormHeader.module.css +26 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js +7 -5
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/esm/action-form/fields/TextInputField.js +2 -0
- package/build/esm/action-form/fields/TextInputField.js.map +1 -1
- package/build/esm/action-form/fields/TextInputField.module.css +56 -0
- package/build/esm/base-components/checkbox/Checkbox.js +2 -2
- package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/esm/base-components/combobox/Combobox.js +3 -8
- package/build/esm/base-components/combobox/Combobox.js.map +1 -1
- package/build/esm/base-components/combobox/Combobox.module.css +0 -3
- package/build/esm/base-components/draggable-list/DraggableList.js +2 -4
- package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/esm/base-components/select/Select.js +1 -3
- package/build/esm/base-components/select/Select.js.map +1 -1
- package/build/esm/base-components/select/Select.module.css +0 -2
- package/build/esm/base-components/switch/Switch.module.css +0 -1
- package/build/esm/filter-list/FilterInput.js +14 -5
- package/build/esm/filter-list/FilterInput.js.map +1 -1
- package/build/esm/filter-list/FilterList.js +13 -5
- package/build/esm/filter-list/FilterList.js.map +1 -1
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/AddFilterPopover.js +4 -3
- package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/ExcludeDropdown.js +61 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.module.css +94 -0
- package/build/esm/filter-list/base/FilterIcons.js +0 -39
- package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
- package/build/esm/filter-list/base/FilterInputExcludeRow.js +55 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/esm/filter-list/base/FilterListItem.js +72 -23
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +96 -20
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js +2 -2
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js +2 -6
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.js +2 -2
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -3
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/{useStaleData.js → useStableData.js} +5 -5
- package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +3 -2
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +15 -5
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js +10 -6
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +41 -18
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +15 -5
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +10 -6
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +36 -10
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +29 -1
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/object-table/LoadingCell.module.css +0 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +1 -3
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -1
- package/build/esm/object-table/TableCell.module.css +1 -1
- package/build/esm/object-table/TableHeader.module.css +2 -2
- package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -0
- package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.module.css +0 -1
- package/build/esm/public/experimental.js +2 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/types/action-form/ActionFormApi.d.ts +1 -0
- package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
- package/build/types/action-form/BaseForm.d.ts.map +1 -1
- package/build/types/action-form/FormField.d.ts +11 -0
- package/build/types/action-form/FormField.d.ts.map +1 -0
- package/build/types/action-form/FormFieldApi.d.ts +1 -1
- package/build/types/action-form/FormHeader.d.ts +6 -0
- package/build/types/action-form/FormHeader.d.ts.map +1 -0
- package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
- package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
- package/build/types/filter-list/FilterInput.d.ts +3 -1
- package/build/types/filter-list/FilterInput.d.ts.map +1 -1
- package/build/types/filter-list/FilterListApi.d.ts +12 -9
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts +2 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +2 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
- package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterIcons.d.ts +0 -2
- package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +12 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
- package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -2
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +5 -2
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +3 -2
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +2 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +5 -2
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +3 -2
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +3 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +2 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- package/build/types/public/experimental.d.ts +4 -0
- package/build/types/public/experimental.d.ts.map +1 -1
- package/package.json +4 -4
- package/build/browser/filter-list/base/inputs/useStaleData.js.map +0 -1
- package/build/esm/filter-list/base/inputs/useStaleData.js.map +0 -1
- package/build/types/filter-list/base/inputs/useStaleData.d.ts +0 -1
- package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +0 -1
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { Input } from "@base-ui/react/input";
|
|
18
18
|
import React from "react";
|
|
19
|
+
import styles from "./TextInputField.module.css.js";
|
|
19
20
|
export function TextInputField({
|
|
20
21
|
id,
|
|
21
22
|
value,
|
|
@@ -26,6 +27,7 @@ export function TextInputField({
|
|
|
26
27
|
}) {
|
|
27
28
|
return /*#__PURE__*/React.createElement(Input, {
|
|
28
29
|
id: id,
|
|
30
|
+
className: styles.osdkTextInput,
|
|
29
31
|
type: "text",
|
|
30
32
|
value: value ?? "",
|
|
31
33
|
onValueChange: onChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInputField.js","names":["Input","React","TextInputField","id","value","onChange","placeholder","minLength","maxLength","createElement","type","onValueChange"],"sources":["TextInputField.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport React from \"react\";\nimport type { TextInputFieldProps } from \"../FormFieldApi.js\";\n\nexport function TextInputField({\n id,\n value,\n onChange,\n placeholder,\n minLength,\n maxLength,\n}: TextInputFieldProps & { id?: string }): React.ReactElement {\n return (\n <Input\n id={id}\n type=\"text\"\n value={value ?? \"\"}\n onValueChange={onChange}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n />\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,KAAK,MAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"TextInputField.js","names":["Input","React","styles","TextInputField","id","value","onChange","placeholder","minLength","maxLength","createElement","className","osdkTextInput","type","onValueChange"],"sources":["TextInputField.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Input } from \"@base-ui/react/input\";\nimport React from \"react\";\nimport type { TextInputFieldProps } from \"../FormFieldApi.js\";\nimport styles from \"./TextInputField.module.css\";\n\nexport function TextInputField({\n id,\n value,\n onChange,\n placeholder,\n minLength,\n maxLength,\n}: TextInputFieldProps & { id?: string }): React.ReactElement {\n return (\n <Input\n id={id}\n className={styles.osdkTextInput}\n type=\"text\"\n value={value ?? \"\"}\n onValueChange={onChange}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n />\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,sBAAsB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAOC,MAAM,MAAM,6BAA6B;AAEhD,OAAO,SAASC,cAAcA,CAAC;EAC7BC,EAAE;EACFC,KAAK;EACLC,QAAQ;EACRC,WAAW;EACXC,SAAS;EACTC;AACqC,CAAC,EAAsB;EAC5D,oBACER,KAAA,CAAAS,aAAA,CAACV,KAAK;IACJI,EAAE,EAAEA,EAAG;IACPO,SAAS,EAAET,MAAM,CAACU,aAAc;IAChCC,IAAI,EAAC,MAAM;IACXR,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBS,aAAa,EAAER,QAAS;IACxBC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
.osdkTextInput {
|
|
18
|
+
display: block;
|
|
19
|
+
width: 100%;
|
|
20
|
+
min-height: var(--osdk-input-min-height);
|
|
21
|
+
padding: var(--osdk-input-padding);
|
|
22
|
+
border-radius: var(--osdk-input-border-radius);
|
|
23
|
+
border: var(--osdk-input-border-width) solid var(--osdk-input-border-color);
|
|
24
|
+
background-color: var(--osdk-input-bg);
|
|
25
|
+
color: var(--osdk-input-color);
|
|
26
|
+
font-family: var(--osdk-input-font-family);
|
|
27
|
+
font-size: var(--osdk-input-font-size);
|
|
28
|
+
line-height: var(
|
|
29
|
+
--osdk-input-line-height,
|
|
30
|
+
var(--osdk-typography-line-height-default)
|
|
31
|
+
);
|
|
32
|
+
transition:
|
|
33
|
+
background-color var(--osdk-input-transition-duration)
|
|
34
|
+
var(--osdk-input-transition-ease),
|
|
35
|
+
border-color var(--osdk-input-transition-duration)
|
|
36
|
+
var(--osdk-input-transition-ease);
|
|
37
|
+
|
|
38
|
+
&::placeholder {
|
|
39
|
+
color: var(--osdk-input-placeholder-color);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&:hover {
|
|
43
|
+
background-color: var(--osdk-input-bg-hover);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&:focus-visible {
|
|
47
|
+
outline: var(--osdk-input-focus-width) solid var(--osdk-input-focus-color);
|
|
48
|
+
outline-offset: var(--osdk-input-focus-offset);
|
|
49
|
+
border-color: var(--osdk-input-border-color-focus);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&:disabled {
|
|
53
|
+
cursor: not-allowed;
|
|
54
|
+
opacity: var(--osdk-input-disabled-opacity);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -32,9 +32,9 @@ export function Checkbox({
|
|
|
32
32
|
}, rest), /*#__PURE__*/React.createElement(BaseUICheckbox.Indicator, _extends({}, indicatorProps, {
|
|
33
33
|
className: classnames(styles.osdkCheckboxIndicator, indicatorProps?.className)
|
|
34
34
|
}), indeterminate ? /*#__PURE__*/React.createElement(Minus, {
|
|
35
|
-
|
|
35
|
+
size: 16
|
|
36
36
|
}) : /*#__PURE__*/React.createElement(Tick, {
|
|
37
|
-
|
|
37
|
+
size: 16
|
|
38
38
|
})));
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["Checkbox","BaseUICheckbox","Minus","Tick","classnames","React","styles","indeterminate","className","indicatorProps","rest","createElement","Root","_extends","osdkCheckboxRoot","Indicator","osdkCheckboxIndicator","
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["Checkbox","BaseUICheckbox","Minus","Tick","classnames","React","styles","indeterminate","className","indicatorProps","rest","createElement","Root","_extends","osdkCheckboxRoot","Indicator","osdkCheckboxIndicator","size"],"sources":["Checkbox.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Checkbox as BaseUICheckbox,\n type CheckboxIndicatorProps,\n type CheckboxRootProps,\n} from \"@base-ui/react/checkbox\";\nimport { Minus, Tick } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Checkbox.module.css\";\n\ninterface CheckboxProps extends Omit<CheckboxRootProps, \"className\"> {\n className?: string;\n indicatorProps?: Omit<CheckboxIndicatorProps, \"className\"> & {\n className?: string;\n };\n}\n\nexport function Checkbox(\n {\n indeterminate,\n className,\n indicatorProps,\n ...rest\n }: CheckboxProps,\n): React.ReactElement {\n return (\n <BaseUICheckbox.Root\n className={classnames(styles.osdkCheckboxRoot, className)}\n indeterminate={indeterminate}\n {...rest}\n >\n <BaseUICheckbox.Indicator\n {...indicatorProps}\n className={classnames(\n styles.osdkCheckboxIndicator,\n indicatorProps?.className,\n )}\n >\n {/* Color is used as the \"fill\" attribute on the svg */}\n {indeterminate\n ? (\n <Minus\n size={16}\n />\n )\n : <Tick size={16} />}\n </BaseUICheckbox.Indicator>\n </BaseUICheckbox.Root>\n );\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,QAAQ,IAAIC,cAAc,QAGrB,yBAAyB;AAChC,SAASC,KAAK,EAAEC,IAAI,QAAQ,oBAAoB;AAChD,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,uBAAuB;AAS1C,OAAO,SAASN,QAAQA,CACtB;EACEO,aAAa;EACbC,SAAS;EACTC,cAAc;EACd,GAAGC;AACU,CAAC,EACI;EACpB,oBACEL,KAAA,CAAAM,aAAA,CAACV,cAAc,CAACW,IAAI,EAAAC,QAAA;IAClBL,SAAS,EAAEJ,UAAU,CAACE,MAAM,CAACQ,gBAAgB,EAAEN,SAAS,CAAE;IAC1DD,aAAa,EAAEA;EAAc,GACzBG,IAAI,gBAERL,KAAA,CAAAM,aAAA,CAACV,cAAc,CAACc,SAAS,EAAAF,QAAA,KACnBJ,cAAc;IAClBD,SAAS,EAAEJ,UAAU,CACnBE,MAAM,CAACU,qBAAqB,EAC5BP,cAAc,EAAED,SAClB;EAAE,IAGDD,aAAa,gBAEVF,KAAA,CAAAM,aAAA,CAACT,KAAK;IACJe,IAAI,EAAE;EAAG,CACV,CAAC,gBAEFZ,KAAA,CAAAM,aAAA,CAACR,IAAI;IAACc,IAAI,EAAE;EAAG,CAAE,CACG,CACP,CAAC;AAE1B","ignoreList":[]}
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
var(--osdk-checkbox-icon-size) + var(--osdk-checkbox-padding) * 2
|
|
26
26
|
);
|
|
27
27
|
padding: var(--osdk-checkbox-padding);
|
|
28
|
-
box-sizing: border-box;
|
|
29
28
|
cursor: pointer;
|
|
30
29
|
border-radius: var(--osdk-surface-border-radius);
|
|
31
30
|
border: var(--osdk-checkbox-border);
|
|
@@ -62,9 +61,6 @@
|
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
.osdkCheckboxIndicator {
|
|
65
|
-
display: flex;
|
|
66
|
-
justify-content: center;
|
|
67
|
-
align-items: center;
|
|
68
64
|
color: var(--osdk-checkbox-checked-foreground);
|
|
69
65
|
width: var(--osdk-checkbox-icon-size);
|
|
70
66
|
height: var(--osdk-checkbox-icon-size);
|
|
@@ -27,8 +27,7 @@ function ComboboxSearchInput({
|
|
|
27
27
|
return /*#__PURE__*/React.createElement("div", {
|
|
28
28
|
className: classnames(styles.osdkComboboxInputWrapper, className)
|
|
29
29
|
}, /*#__PURE__*/React.createElement(Search, {
|
|
30
|
-
className: styles.osdkComboboxSearchIcon
|
|
31
|
-
color: "currentColor"
|
|
30
|
+
className: styles.osdkComboboxSearchIcon
|
|
32
31
|
}), /*#__PURE__*/React.createElement(BaseUICombobox.Input, _extends({
|
|
33
32
|
className: styles.osdkComboboxInput
|
|
34
33
|
}, rest)));
|
|
@@ -95,9 +94,7 @@ function ComboboxChipRemove({
|
|
|
95
94
|
return /*#__PURE__*/React.createElement(BaseUICombobox.ChipRemove, _extends({
|
|
96
95
|
className: classnames(styles.osdkComboboxChipRemove, className),
|
|
97
96
|
"aria-label": "Remove"
|
|
98
|
-
}, rest), /*#__PURE__*/React.createElement(Cross,
|
|
99
|
-
color: "currentColor"
|
|
100
|
-
}));
|
|
97
|
+
}, rest), /*#__PURE__*/React.createElement(Cross, null));
|
|
101
98
|
}
|
|
102
99
|
function ComboboxClear({
|
|
103
100
|
className,
|
|
@@ -106,9 +103,7 @@ function ComboboxClear({
|
|
|
106
103
|
return /*#__PURE__*/React.createElement(BaseUICombobox.Clear, _extends({
|
|
107
104
|
className: classnames(styles.osdkComboboxClear, className),
|
|
108
105
|
"aria-label": "Clear all"
|
|
109
|
-
}, rest), /*#__PURE__*/React.createElement(Cross,
|
|
110
|
-
color: "currentColor"
|
|
111
|
-
}));
|
|
106
|
+
}, rest), /*#__PURE__*/React.createElement(Cross, null));
|
|
112
107
|
}
|
|
113
108
|
function ComboboxEmpty({
|
|
114
109
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","names":["Combobox","BaseUICombobox","Cross","Search","classnames","React","styles","ComboboxSearchInput","className","rest","createElement","osdkComboboxInputWrapper","osdkComboboxSearchIcon","color","Input","_extends","osdkComboboxInput","ComboboxInput","ComboboxPositioner","children","Positioner","osdkComboboxPositioner","sideOffset","ComboboxPopup","Popup","osdkComboboxPopup","ComboboxItem","Item","osdkComboboxItem","ComboboxChips","Chips","render","props","ComboboxChip","Chip","osdkComboboxChip","ComboboxChipRemove","ChipRemove","osdkComboboxChipRemove","ComboboxClear","Clear","osdkComboboxClear","ComboboxEmpty","Empty","osdkComboboxEmpty","ComboboxList","List","osdkComboboxList","Root","SearchInput","Portal","Value"],"sources":["Combobox.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Combobox as BaseUICombobox,\n type ComboboxChipProps,\n type ComboboxChipRemoveProps,\n type ComboboxClearProps,\n type ComboboxInputProps,\n type ComboboxItemProps,\n type ComboboxListProps,\n type ComboboxPopupProps,\n type ComboboxPositionerProps,\n} from \"@base-ui/react/combobox\";\nimport { Cross, Search } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Combobox.module.css\";\n\ninterface ComboboxInputComponentProps\n extends Omit<ComboboxInputProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxSearchInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <div className={classnames(styles.osdkComboboxInputWrapper, className)}>\n <Search className={styles.osdkComboboxSearchIcon} color=\"currentColor\" />\n <BaseUICombobox.Input className={styles.osdkComboboxInput} {...rest} />\n </div>\n );\n}\n\nfunction ComboboxInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Input\n className={classnames(styles.osdkComboboxInput, className)}\n {...rest}\n />\n );\n}\n\ninterface ComboboxPositionerComponentProps\n extends Omit<ComboboxPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPositioner({\n className,\n children,\n ...rest\n}: ComboboxPositionerComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Positioner\n className={classnames(styles.osdkComboboxPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUICombobox.Positioner>\n );\n}\n\ninterface ComboboxPopupComponentProps\n extends Omit<ComboboxPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPopup({\n className,\n children,\n ...rest\n}: ComboboxPopupComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Popup\n className={classnames(styles.osdkComboboxPopup, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Popup>\n );\n}\n\ninterface ComboboxItemComponentProps\n extends Omit<ComboboxItemProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...rest\n}: ComboboxItemComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Item\n className={classnames(styles.osdkComboboxItem, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Item>\n );\n}\n\nfunction ComboboxChips({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Chips\n render={(props) => (\n <div\n {...props}\n className={classnames(styles.osdkComboboxInputWrapper, className)}\n >\n {props.children}\n </div>\n )}\n >\n {children}\n </BaseUICombobox.Chips>\n );\n}\n\ninterface ComboboxChipComponentProps\n extends Omit<ComboboxChipProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChip({\n className,\n children,\n ...rest\n}: ComboboxChipComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Chip\n className={classnames(styles.osdkComboboxChip, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Chip>\n );\n}\n\ninterface ComboboxChipRemoveComponentProps\n extends Omit<ComboboxChipRemoveProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChipRemove({\n className,\n ...rest\n}: ComboboxChipRemoveComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.ChipRemove\n className={classnames(styles.osdkComboboxChipRemove, className)}\n aria-label=\"Remove\"\n {...rest}\n >\n <Cross color=\"currentColor\" />\n </BaseUICombobox.ChipRemove>\n );\n}\n\ninterface ComboboxClearComponentProps\n extends Omit<ComboboxClearProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxClear({\n className,\n ...rest\n}: ComboboxClearComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Clear\n className={classnames(styles.osdkComboboxClear, className)}\n aria-label=\"Clear all\"\n {...rest}\n >\n <Cross color=\"currentColor\" />\n </BaseUICombobox.Clear>\n );\n}\n\nfunction ComboboxEmpty({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Empty\n className={classnames(styles.osdkComboboxEmpty, className)}\n >\n {children}\n </BaseUICombobox.Empty>\n );\n}\n\ninterface ComboboxListComponentProps\n extends Omit<ComboboxListProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxList({\n className,\n children,\n ...rest\n}: ComboboxListComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.List\n className={classnames(styles.osdkComboboxList, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.List>\n );\n}\n\nexport const Combobox: {\n Root: typeof BaseUICombobox.Root;\n SearchInput: typeof ComboboxSearchInput;\n Input: typeof ComboboxInput;\n Portal: typeof BaseUICombobox.Portal;\n Positioner: typeof ComboboxPositioner;\n Popup: typeof ComboboxPopup;\n List: typeof ComboboxList;\n Item: typeof ComboboxItem;\n Chips: typeof ComboboxChips;\n Chip: typeof ComboboxChip;\n ChipRemove: typeof ComboboxChipRemove;\n Clear: typeof ComboboxClear;\n Empty: typeof ComboboxEmpty;\n Value: typeof BaseUICombobox.Value;\n} = {\n Root: BaseUICombobox.Root,\n SearchInput: ComboboxSearchInput,\n Input: ComboboxInput,\n Portal: BaseUICombobox.Portal,\n Positioner: ComboboxPositioner,\n Popup: ComboboxPopup,\n List: ComboboxList,\n Item: ComboboxItem,\n Chips: ComboboxChips,\n Chip: ComboboxChip,\n ChipRemove: ComboboxChipRemove,\n Clear: ComboboxClear,\n Empty: ComboboxEmpty,\n Value: BaseUICombobox.Value,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Combobox.js","names":["Combobox","BaseUICombobox","Cross","Search","classnames","React","styles","ComboboxSearchInput","className","rest","createElement","osdkComboboxInputWrapper","osdkComboboxSearchIcon","Input","_extends","osdkComboboxInput","ComboboxInput","ComboboxPositioner","children","Positioner","osdkComboboxPositioner","sideOffset","ComboboxPopup","Popup","osdkComboboxPopup","ComboboxItem","Item","osdkComboboxItem","ComboboxChips","Chips","render","props","ComboboxChip","Chip","osdkComboboxChip","ComboboxChipRemove","ChipRemove","osdkComboboxChipRemove","ComboboxClear","Clear","osdkComboboxClear","ComboboxEmpty","Empty","osdkComboboxEmpty","ComboboxList","List","osdkComboboxList","Root","SearchInput","Portal","Value"],"sources":["Combobox.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Combobox as BaseUICombobox,\n type ComboboxChipProps,\n type ComboboxChipRemoveProps,\n type ComboboxClearProps,\n type ComboboxInputProps,\n type ComboboxItemProps,\n type ComboboxListProps,\n type ComboboxPopupProps,\n type ComboboxPositionerProps,\n} from \"@base-ui/react/combobox\";\nimport { Cross, Search } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Combobox.module.css\";\n\ninterface ComboboxInputComponentProps\n extends Omit<ComboboxInputProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxSearchInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <div className={classnames(styles.osdkComboboxInputWrapper, className)}>\n <Search className={styles.osdkComboboxSearchIcon} />\n <BaseUICombobox.Input className={styles.osdkComboboxInput} {...rest} />\n </div>\n );\n}\n\nfunction ComboboxInput({\n className,\n ...rest\n}: ComboboxInputComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Input\n className={classnames(styles.osdkComboboxInput, className)}\n {...rest}\n />\n );\n}\n\ninterface ComboboxPositionerComponentProps\n extends Omit<ComboboxPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPositioner({\n className,\n children,\n ...rest\n}: ComboboxPositionerComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Positioner\n className={classnames(styles.osdkComboboxPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUICombobox.Positioner>\n );\n}\n\ninterface ComboboxPopupComponentProps\n extends Omit<ComboboxPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxPopup({\n className,\n children,\n ...rest\n}: ComboboxPopupComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Popup\n className={classnames(styles.osdkComboboxPopup, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Popup>\n );\n}\n\ninterface ComboboxItemComponentProps\n extends Omit<ComboboxItemProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...rest\n}: ComboboxItemComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Item\n className={classnames(styles.osdkComboboxItem, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Item>\n );\n}\n\nfunction ComboboxChips({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Chips\n render={(props) => (\n <div\n {...props}\n className={classnames(styles.osdkComboboxInputWrapper, className)}\n >\n {props.children}\n </div>\n )}\n >\n {children}\n </BaseUICombobox.Chips>\n );\n}\n\ninterface ComboboxChipComponentProps\n extends Omit<ComboboxChipProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChip({\n className,\n children,\n ...rest\n}: ComboboxChipComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Chip\n className={classnames(styles.osdkComboboxChip, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.Chip>\n );\n}\n\ninterface ComboboxChipRemoveComponentProps\n extends Omit<ComboboxChipRemoveProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxChipRemove({\n className,\n ...rest\n}: ComboboxChipRemoveComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.ChipRemove\n className={classnames(styles.osdkComboboxChipRemove, className)}\n aria-label=\"Remove\"\n {...rest}\n >\n <Cross />\n </BaseUICombobox.ChipRemove>\n );\n}\n\ninterface ComboboxClearComponentProps\n extends Omit<ComboboxClearProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxClear({\n className,\n ...rest\n}: ComboboxClearComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.Clear\n className={classnames(styles.osdkComboboxClear, className)}\n aria-label=\"Clear all\"\n {...rest}\n >\n <Cross />\n </BaseUICombobox.Clear>\n );\n}\n\nfunction ComboboxEmpty({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}): React.ReactElement {\n return (\n <BaseUICombobox.Empty\n className={classnames(styles.osdkComboboxEmpty, className)}\n >\n {children}\n </BaseUICombobox.Empty>\n );\n}\n\ninterface ComboboxListComponentProps\n extends Omit<ComboboxListProps, \"className\">\n{\n className?: string;\n}\n\nfunction ComboboxList({\n className,\n children,\n ...rest\n}: ComboboxListComponentProps): React.ReactElement {\n return (\n <BaseUICombobox.List\n className={classnames(styles.osdkComboboxList, className)}\n {...rest}\n >\n {children}\n </BaseUICombobox.List>\n );\n}\n\nexport const Combobox: {\n Root: typeof BaseUICombobox.Root;\n SearchInput: typeof ComboboxSearchInput;\n Input: typeof ComboboxInput;\n Portal: typeof BaseUICombobox.Portal;\n Positioner: typeof ComboboxPositioner;\n Popup: typeof ComboboxPopup;\n List: typeof ComboboxList;\n Item: typeof ComboboxItem;\n Chips: typeof ComboboxChips;\n Chip: typeof ComboboxChip;\n ChipRemove: typeof ComboboxChipRemove;\n Clear: typeof ComboboxClear;\n Empty: typeof ComboboxEmpty;\n Value: typeof BaseUICombobox.Value;\n} = {\n Root: BaseUICombobox.Root,\n SearchInput: ComboboxSearchInput,\n Input: ComboboxInput,\n Portal: BaseUICombobox.Portal,\n Positioner: ComboboxPositioner,\n Popup: ComboboxPopup,\n List: ComboboxList,\n Item: ComboboxItem,\n Chips: ComboboxChips,\n Chip: ComboboxChip,\n ChipRemove: ComboboxChipRemove,\n Clear: ComboboxClear,\n Empty: ComboboxEmpty,\n Value: BaseUICombobox.Value,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
min-height: var(--osdk-combobox-min-height, 30px);
|
|
24
24
|
padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)
|
|
25
25
|
calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);
|
|
26
|
-
box-sizing: border-box;
|
|
27
26
|
border-radius: var(
|
|
28
27
|
--osdk-combobox-border-radius,
|
|
29
28
|
var(--osdk-surface-border-radius)
|
|
@@ -65,7 +64,6 @@
|
|
|
65
64
|
flex: 1;
|
|
66
65
|
min-width: 0;
|
|
67
66
|
width: 100%;
|
|
68
|
-
box-sizing: border-box;
|
|
69
67
|
padding: calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5)
|
|
70
68
|
calc(var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 2);
|
|
71
69
|
border-radius: var(
|
|
@@ -150,7 +148,6 @@
|
|
|
150
148
|
padding: calc(
|
|
151
149
|
var(--osdk-combobox-spacing, var(--osdk-surface-spacing)) * 1.5
|
|
152
150
|
);
|
|
153
|
-
box-sizing: border-box;
|
|
154
151
|
border-radius: var(
|
|
155
152
|
--osdk-combobox-border-radius,
|
|
156
153
|
var(--osdk-surface-border-radius)
|
|
@@ -56,8 +56,7 @@ function DraggableListItem({
|
|
|
56
56
|
className: styles.dragHandle,
|
|
57
57
|
"aria-label": `Reorder ${item.label}`
|
|
58
58
|
}, attributes, listeners), /*#__PURE__*/React.createElement(DragHandleVertical, {
|
|
59
|
-
className: styles.icon
|
|
60
|
-
color: "currentColor"
|
|
59
|
+
className: styles.icon
|
|
61
60
|
})), /*#__PURE__*/React.createElement("div", {
|
|
62
61
|
className: styles.itemContent
|
|
63
62
|
}, renderContent ? renderContent(item) : item.label), onRemove && /*#__PURE__*/React.createElement(Button, {
|
|
@@ -65,8 +64,7 @@ function DraggableListItem({
|
|
|
65
64
|
onClick: handleRemove,
|
|
66
65
|
"aria-label": `Remove ${item.label}`
|
|
67
66
|
}, /*#__PURE__*/React.createElement(RemoveIcon, {
|
|
68
|
-
className: styles.icon
|
|
69
|
-
color: "currentColor"
|
|
67
|
+
className: styles.icon
|
|
70
68
|
})));
|
|
71
69
|
}
|
|
72
70
|
export function DraggableList({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DraggableList.js","names":["Button","DragHandleVertical","SmallCross","Trash","closestCenter","DndContext","BaseDndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","useSortable","verticalListSortingStrategy","CSS","classNames","React","useCallback","useEffect","useMemo","useRef","styles","DraggableListItem","item","onRemove","removeIconVariant","renderContent","attributes","listeners","setNodeRef","transform","transition","isDragging","id","style","Transform","toString","handleRemove","RemoveIcon","createElement","ref","className","draggableItem","_extends","dragHandle","label","icon","color","itemContent","removeButton","onClick","DraggableList","items","onReorder","emptyMessage","itemIds","map","sensors","activationConstraint","distance","coordinateGetter","handleDragEnd","event","active","over","oldIndex","findIndex","newIndex","containerRef","useKeyboardEvents","draggableListContainer","collisionDetection","onDragEnd","strategy","key","length","emptyState","el","current","ARROW_KEYS","Set","handleCapture","has","querySelector","stopPropagation","document","dispatchEvent","KeyboardEvent","code","bubbles","addEventListener","removeEventListener"],"sources":["DraggableList.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { DragHandleVertical, SmallCross, Trash } from \"@blueprintjs/icons\";\nimport {\n closestCenter,\n DndContext as BaseDndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classNames from \"classnames\";\nimport type { RefObject } from \"react\";\nimport React, { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport styles from \"./DraggableList.module.css\";\n\nexport interface DraggableItem {\n id: string;\n label: string;\n}\n\ntype RemoveIconVariant = \"trash\" | \"cross\";\n\ninterface DraggableListItemProps<T extends DraggableItem> {\n item: T;\n onRemove?: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n}\n\nfunction DraggableListItem<T extends DraggableItem>({\n item,\n onRemove,\n removeIconVariant = \"trash\",\n renderContent,\n}: DraggableListItemProps<T>): React.ReactElement {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: item.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handleRemove = useCallback(() => {\n onRemove?.(item.id);\n }, [item.id, onRemove]);\n\n const RemoveIcon = removeIconVariant === \"trash\" ? Trash : SmallCross;\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={styles.draggableItem}\n data-dragging={isDragging}\n >\n <div\n className={styles.dragHandle}\n aria-label={`Reorder ${item.label}`}\n {...attributes}\n {...listeners}\n >\n <DragHandleVertical className={styles.icon} color={\"currentColor\"} />\n </div>\n <div className={styles.itemContent}>\n {renderContent ? renderContent(item) : item.label}\n </div>\n {onRemove && (\n <Button\n className={styles.removeButton}\n onClick={handleRemove}\n aria-label={`Remove ${item.label}`}\n >\n <RemoveIcon className={styles.icon} color={\"currentColor\"} />\n </Button>\n )}\n </div>\n );\n}\n\nexport interface DraggableListProps<T extends DraggableItem> {\n items: T[];\n onReorder: (fromIndex: number, toIndex: number) => void;\n onRemove: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function DraggableList<T extends DraggableItem>({\n items,\n onReorder,\n onRemove,\n removeIconVariant = \"cross\",\n renderContent,\n emptyMessage,\n className,\n}: DraggableListProps<T>): React.ReactElement {\n const itemIds = useMemo(() => items.map((item) => item.id), [items]);\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && active.id !== over.id) {\n const oldIndex = items.findIndex((item) => item.id === active.id);\n const newIndex = items.findIndex((item) => item.id === over.id);\n onReorder(oldIndex, newIndex);\n }\n },\n [items, onReorder],\n );\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useKeyboardEvents(containerRef);\n\n // TODO: Revert when @types/react is fixed\n const DndContext = BaseDndContext as any;\n\n return (\n <div\n ref={containerRef}\n className={classNames(styles.draggableListContainer, className)}\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n >\n <SortableContext\n items={itemIds}\n strategy={verticalListSortingStrategy}\n >\n {items.map((item) => (\n <DraggableListItem<T>\n key={item.id}\n item={item}\n onRemove={onRemove}\n removeIconVariant={removeIconVariant}\n renderContent={renderContent}\n />\n ))}\n </SortableContext>\n </DndContext>\n {items.length === 0 && emptyMessage && (\n <div className={styles.emptyState}>{emptyMessage}</div>\n )}\n </div>\n );\n}\n\nconst useKeyboardEvents = (containerRef: RefObject<HTMLDivElement>) => {\n // Base UI's DialogPopup calls stopPropagation on arrow key events, which\n // prevents them from reaching @dnd-kit's document-level KeyboardSensor\n // listener. We use a native capture-phase listener to intercept arrow keys\n // before the dialog can swallow them, and re-dispatch them on the document\n // so @dnd-kit can process keyboard-driven reordering.\n useEffect(() => {\n const el = containerRef.current;\n if (el == null) {\n return;\n }\n\n const ARROW_KEYS = new Set([\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ]);\n\n function handleCapture(event: KeyboardEvent) {\n if (!ARROW_KEYS.has(event.key)) {\n return;\n }\n\n // Only intercept when a drag is active (an item has [data-dragging=\"true\"])\n if (el!.querySelector(\"[data-dragging=\\\"true\\\"]\") == null) {\n return;\n }\n\n event.stopPropagation();\n\n document.dispatchEvent(\n new KeyboardEvent(\"keydown\", {\n key: event.key,\n code: event.code,\n bubbles: true,\n }),\n );\n }\n\n el.addEventListener(\"keydown\", handleCapture, true);\n return () => el.removeEventListener(\"keydown\", handleCapture, true);\n }, [containerRef]);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DraggableList.js","names":["Button","DragHandleVertical","SmallCross","Trash","closestCenter","DndContext","BaseDndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","useSortable","verticalListSortingStrategy","CSS","classNames","React","useCallback","useEffect","useMemo","useRef","styles","DraggableListItem","item","onRemove","removeIconVariant","renderContent","attributes","listeners","setNodeRef","transform","transition","isDragging","id","style","Transform","toString","handleRemove","RemoveIcon","createElement","ref","className","draggableItem","_extends","dragHandle","label","icon","itemContent","removeButton","onClick","DraggableList","items","onReorder","emptyMessage","itemIds","map","sensors","activationConstraint","distance","coordinateGetter","handleDragEnd","event","active","over","oldIndex","findIndex","newIndex","containerRef","useKeyboardEvents","draggableListContainer","collisionDetection","onDragEnd","strategy","key","length","emptyState","el","current","ARROW_KEYS","Set","handleCapture","has","querySelector","stopPropagation","document","dispatchEvent","KeyboardEvent","code","bubbles","addEventListener","removeEventListener"],"sources":["DraggableList.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button } from \"@base-ui/react/button\";\nimport { DragHandleVertical, SmallCross, Trash } from \"@blueprintjs/icons\";\nimport {\n closestCenter,\n DndContext as BaseDndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport classNames from \"classnames\";\nimport type { RefObject } from \"react\";\nimport React, { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport styles from \"./DraggableList.module.css\";\n\nexport interface DraggableItem {\n id: string;\n label: string;\n}\n\ntype RemoveIconVariant = \"trash\" | \"cross\";\n\ninterface DraggableListItemProps<T extends DraggableItem> {\n item: T;\n onRemove?: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n}\n\nfunction DraggableListItem<T extends DraggableItem>({\n item,\n onRemove,\n removeIconVariant = \"trash\",\n renderContent,\n}: DraggableListItemProps<T>): React.ReactElement {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: item.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handleRemove = useCallback(() => {\n onRemove?.(item.id);\n }, [item.id, onRemove]);\n\n const RemoveIcon = removeIconVariant === \"trash\" ? Trash : SmallCross;\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={styles.draggableItem}\n data-dragging={isDragging}\n >\n <div\n className={styles.dragHandle}\n aria-label={`Reorder ${item.label}`}\n {...attributes}\n {...listeners}\n >\n <DragHandleVertical className={styles.icon} />\n </div>\n <div className={styles.itemContent}>\n {renderContent ? renderContent(item) : item.label}\n </div>\n {onRemove && (\n <Button\n className={styles.removeButton}\n onClick={handleRemove}\n aria-label={`Remove ${item.label}`}\n >\n <RemoveIcon className={styles.icon} />\n </Button>\n )}\n </div>\n );\n}\n\nexport interface DraggableListProps<T extends DraggableItem> {\n items: T[];\n onReorder: (fromIndex: number, toIndex: number) => void;\n onRemove: (id: string) => void;\n removeIconVariant?: RemoveIconVariant;\n renderContent?: (item: T) => React.ReactNode;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function DraggableList<T extends DraggableItem>({\n items,\n onReorder,\n onRemove,\n removeIconVariant = \"cross\",\n renderContent,\n emptyMessage,\n className,\n}: DraggableListProps<T>): React.ReactElement {\n const itemIds = useMemo(() => items.map((item) => item.id), [items]);\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && active.id !== over.id) {\n const oldIndex = items.findIndex((item) => item.id === active.id);\n const newIndex = items.findIndex((item) => item.id === over.id);\n onReorder(oldIndex, newIndex);\n }\n },\n [items, onReorder],\n );\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n useKeyboardEvents(containerRef);\n\n // TODO: Revert when @types/react is fixed\n const DndContext = BaseDndContext as any;\n\n return (\n <div\n ref={containerRef}\n className={classNames(styles.draggableListContainer, className)}\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n >\n <SortableContext\n items={itemIds}\n strategy={verticalListSortingStrategy}\n >\n {items.map((item) => (\n <DraggableListItem<T>\n key={item.id}\n item={item}\n onRemove={onRemove}\n removeIconVariant={removeIconVariant}\n renderContent={renderContent}\n />\n ))}\n </SortableContext>\n </DndContext>\n {items.length === 0 && emptyMessage && (\n <div className={styles.emptyState}>{emptyMessage}</div>\n )}\n </div>\n );\n}\n\nconst useKeyboardEvents = (containerRef: RefObject<HTMLDivElement>) => {\n // Base UI's DialogPopup calls stopPropagation on arrow key events, which\n // prevents them from reaching @dnd-kit's document-level KeyboardSensor\n // listener. We use a native capture-phase listener to intercept arrow keys\n // before the dialog can swallow them, and re-dispatch them on the document\n // so @dnd-kit can process keyboard-driven reordering.\n useEffect(() => {\n const el = containerRef.current;\n if (el == null) {\n return;\n }\n\n const ARROW_KEYS = new Set([\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ]);\n\n function handleCapture(event: KeyboardEvent) {\n if (!ARROW_KEYS.has(event.key)) {\n return;\n }\n\n // Only intercept when a drag is active (an item has [data-dragging=\"true\"])\n if (el!.querySelector(\"[data-dragging=\\\"true\\\"]\") == null) {\n return;\n }\n\n event.stopPropagation();\n\n document.dispatchEvent(\n new KeyboardEvent(\"keydown\", {\n key: event.key,\n code: event.code,\n bubbles: true,\n }),\n );\n }\n\n el.addEventListener(\"keydown\", handleCapture, true);\n return () => el.removeEventListener(\"keydown\", handleCapture, true);\n }, [containerRef]);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
.searchBar {
|
|
18
18
|
display: flex;
|
|
19
19
|
align-items: center;
|
|
20
|
-
gap: var(--osdk-surface-spacing);
|
|
21
|
-
padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) *
|
|
20
|
+
gap: calc(var(--osdk-surface-spacing) * 3);
|
|
21
|
+
padding: var(--osdk-surface-spacing) calc(var(--osdk-surface-spacing) * 3);
|
|
22
22
|
border: var(--osdk-surface-border);
|
|
23
23
|
border-radius: var(--osdk-surface-border-radius);
|
|
24
24
|
|
|
@@ -42,9 +42,7 @@ function SelectTrigger({
|
|
|
42
42
|
className: styles.osdkSelectPlaceholder
|
|
43
43
|
}, placeholder)), /*#__PURE__*/React.createElement(BaseUISelect.Icon, {
|
|
44
44
|
className: styles.osdkSelectIcon
|
|
45
|
-
}, /*#__PURE__*/React.createElement(CaretDown,
|
|
46
|
-
color: "currentColor"
|
|
47
|
-
}))));
|
|
45
|
+
}, /*#__PURE__*/React.createElement(CaretDown, null))));
|
|
48
46
|
}
|
|
49
47
|
function SelectValue(props) {
|
|
50
48
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["Select","BaseUISelect","CaretDown","classnames","React","styles","SelectRoot","children","rest","createElement","Root","SelectTrigger","className","placeholder","Trigger","_extends","osdkSelectTrigger","Fragment","osdkSelectValueContainer","Value","osdkSelectValue","osdkSelectPlaceholder","Icon","osdkSelectIcon","
|
|
1
|
+
{"version":3,"file":"Select.js","names":["Select","BaseUISelect","CaretDown","classnames","React","styles","SelectRoot","children","rest","createElement","Root","SelectTrigger","className","placeholder","Trigger","_extends","osdkSelectTrigger","Fragment","osdkSelectValueContainer","Value","osdkSelectValue","osdkSelectPlaceholder","Icon","osdkSelectIcon","SelectValue","props","SelectPositioner","Positioner","osdkSelectPositioner","sideOffset","SelectPopup","Popup","osdkSelectPopup","SelectItem","Item","osdkSelectItem","ItemText","Portal"],"sources":["Select.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Select as BaseUISelect,\n type SelectItemProps,\n type SelectPopupProps,\n type SelectPositionerProps,\n type SelectRootProps,\n type SelectTriggerProps,\n type SelectValueProps,\n} from \"@base-ui/react/select\";\nimport { CaretDown } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Select.module.css\";\n\nexport interface SelectProps<Value, Multiple extends boolean = false>\n extends Omit<SelectRootProps<Value, Multiple>, \"className\">\n{}\n\nfunction SelectRoot<Value, Multiple extends boolean = false>({\n children,\n ...rest\n}: SelectProps<Value, Multiple>): React.ReactElement {\n return (\n <BaseUISelect.Root<Value, Multiple> {...rest}>{children}</BaseUISelect.Root>\n );\n}\n\ninterface SelectTriggerComponentProps\n extends Omit<SelectTriggerProps, \"className\">\n{\n className?: string;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n className,\n placeholder,\n children,\n ...rest\n}: SelectTriggerComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Trigger\n className={classnames(styles.osdkSelectTrigger, className)}\n {...rest}\n >\n {children ?? (\n <>\n <div className={styles.osdkSelectValueContainer}>\n <BaseUISelect.Value className={styles.osdkSelectValue} />\n {placeholder != null && (\n <span className={styles.osdkSelectPlaceholder}>\n {placeholder}\n </span>\n )}\n </div>\n <BaseUISelect.Icon className={styles.osdkSelectIcon}>\n <CaretDown />\n </BaseUISelect.Icon>\n </>\n )}\n </BaseUISelect.Trigger>\n );\n}\n\nfunction SelectValue(\n props: Omit<SelectValueProps, \"className\"> & { className?: string },\n): React.ReactElement {\n const { className, ...rest } = props;\n return (\n <BaseUISelect.Value\n className={classnames(styles.osdkSelectValue, className)}\n {...rest}\n />\n );\n}\n\ninterface SelectPositionerComponentProps\n extends Omit<SelectPositionerProps, \"className\">\n{\n className?: string;\n}\n\nfunction SelectPositioner({\n className,\n children,\n ...rest\n}: SelectPositionerComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Positioner\n className={classnames(styles.osdkSelectPositioner, className)}\n sideOffset={4}\n {...rest}\n >\n {children}\n </BaseUISelect.Positioner>\n );\n}\n\ninterface SelectPopupComponentProps\n extends Omit<SelectPopupProps, \"className\">\n{\n className?: string;\n}\n\nfunction SelectPopup({\n className,\n children,\n ...rest\n}: SelectPopupComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Popup\n className={classnames(styles.osdkSelectPopup, className)}\n {...rest}\n >\n {children}\n </BaseUISelect.Popup>\n );\n}\n\ninterface SelectItemComponentProps extends Omit<SelectItemProps, \"className\"> {\n className?: string;\n}\n\nfunction SelectItem({\n className,\n children,\n ...rest\n}: SelectItemComponentProps): React.ReactElement {\n return (\n <BaseUISelect.Item\n className={classnames(styles.osdkSelectItem, className)}\n {...rest}\n >\n <BaseUISelect.ItemText>{children}</BaseUISelect.ItemText>\n </BaseUISelect.Item>\n );\n}\n\nexport const Select: {\n Root: typeof SelectRoot;\n Trigger: typeof SelectTrigger;\n Value: typeof SelectValue;\n Portal: typeof BaseUISelect.Portal;\n Positioner: typeof SelectPositioner;\n Popup: typeof SelectPopup;\n Item: typeof SelectItem;\n} = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Portal: BaseUISelect.Portal,\n Positioner: SelectPositioner,\n Popup: SelectPopup,\n Item: SelectItem,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
min-height: var(--osdk-select-min-height, 30px);
|
|
24
24
|
padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5)
|
|
25
25
|
calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 2.5);
|
|
26
|
-
box-sizing: border-box;
|
|
27
26
|
cursor: pointer;
|
|
28
27
|
border-radius: var(
|
|
29
28
|
--osdk-select-border-radius,
|
|
@@ -161,7 +160,6 @@
|
|
|
161
160
|
max-height: var(--available-height);
|
|
162
161
|
overflow-y: auto;
|
|
163
162
|
padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5);
|
|
164
|
-
box-sizing: border-box;
|
|
165
163
|
border-radius: var(
|
|
166
164
|
--osdk-select-border-radius,
|
|
167
165
|
var(--osdk-surface-border-radius)
|
|
@@ -25,7 +25,9 @@ function FilterInputInner({
|
|
|
25
25
|
definition,
|
|
26
26
|
filterState,
|
|
27
27
|
onFilterStateChanged,
|
|
28
|
-
whereClause
|
|
28
|
+
whereClause,
|
|
29
|
+
searchQuery,
|
|
30
|
+
excludeRowOpen
|
|
29
31
|
}) {
|
|
30
32
|
return /*#__PURE__*/React.createElement(FilterInputContent, {
|
|
31
33
|
objectType: objectType,
|
|
@@ -33,7 +35,9 @@ function FilterInputInner({
|
|
|
33
35
|
definition: definition,
|
|
34
36
|
filterState: filterState,
|
|
35
37
|
onFilterStateChanged: onFilterStateChanged,
|
|
36
|
-
whereClause: whereClause
|
|
38
|
+
whereClause: whereClause,
|
|
39
|
+
searchQuery: searchQuery,
|
|
40
|
+
excludeRowOpen: excludeRowOpen
|
|
37
41
|
});
|
|
38
42
|
}
|
|
39
43
|
export const FilterInput = /*#__PURE__*/memo(FilterInputInner);
|
|
@@ -43,7 +47,9 @@ function FilterInputContent({
|
|
|
43
47
|
definition,
|
|
44
48
|
filterState,
|
|
45
49
|
onFilterStateChanged,
|
|
46
|
-
whereClause
|
|
50
|
+
whereClause,
|
|
51
|
+
searchQuery,
|
|
52
|
+
excludeRowOpen
|
|
47
53
|
}) {
|
|
48
54
|
switch (definition.type) {
|
|
49
55
|
case "HAS_LINK":
|
|
@@ -56,7 +62,8 @@ function FilterInputContent({
|
|
|
56
62
|
objectSet: objectSet,
|
|
57
63
|
definition: definition,
|
|
58
64
|
filterState: filterState,
|
|
59
|
-
onFilterStateChanged: onFilterStateChanged
|
|
65
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
66
|
+
searchQuery: searchQuery
|
|
60
67
|
});
|
|
61
68
|
case "KEYWORD_SEARCH":
|
|
62
69
|
return /*#__PURE__*/React.createElement(KeywordSearchInput, {
|
|
@@ -85,7 +92,9 @@ function FilterInputContent({
|
|
|
85
92
|
definition: definition,
|
|
86
93
|
filterState: filterState,
|
|
87
94
|
onFilterStateChanged: onFilterStateChanged,
|
|
88
|
-
whereClause: whereClause
|
|
95
|
+
whereClause: whereClause,
|
|
96
|
+
searchQuery: searchQuery,
|
|
97
|
+
excludeRowOpen: excludeRowOpen
|
|
89
98
|
});
|
|
90
99
|
default:
|
|
91
100
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterInput.js","names":["React","memo","useCallback","ContainsTextInput","ToggleInput","LinkedPropertyInput","PropertyFilterInput","FilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","createElement","FilterInputContent","FilterInput","type","HasLinkInput","KeywordSearchInput","placeholder","label","renderInput","customFilterState","Fragment","state","hasLink","handleChange","enabled","onChange","searchTerm","undefined","operator","newSearchTerm","value"],"sources":["FilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { memo, useCallback } from \"react\";\nimport { ContainsTextInput } from \"./base/inputs/ContainsTextInput.js\";\nimport { ToggleInput } from \"./base/inputs/ToggleInput.js\";\nimport type { FilterDefinitionUnion } from \"./FilterListApi.js\";\nimport type { FilterState } from \"./FilterListItemApi.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { PropertyFilterInput } from \"./inputs/PropertyFilterInput.js\";\n\ninterface FilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: FilterDefinitionUnion<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction FilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: FilterInputProps<Q>): React.ReactElement {\n return (\n <FilterInputContent\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n}\n\nexport const FilterInput = memo(FilterInputInner) as typeof FilterInputInner;\n\nfunction FilterInputContent<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: FilterInputProps<Q>): React.ReactElement {\n switch (definition.type) {\n case \"HAS_LINK\":\n return (\n <HasLinkInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LINKED_PROPERTY\":\n return (\n <LinkedPropertyInput\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"KEYWORD_SEARCH\":\n return (\n <KeywordSearchInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n placeholder={definition.label ?? \"Search...\"}\n />\n );\n\n case \"CUSTOM\": {\n if (!definition.renderInput) {\n return (\n <div data-unsupported=\"true\">Custom filter missing renderInput</div>\n );\n }\n const customFilterState = filterState?.type === \"custom\"\n ? filterState\n : definition.filterState;\n return (\n <>\n {definition.renderInput({\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: (state) => onFilterStateChanged(state),\n })}\n </>\n );\n }\n\n case \"PROPERTY\":\n return (\n <PropertyFilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n default:\n return <div data-unsupported=\"true\">Unsupported filter type</div>;\n }\n}\n\ninterface HasLinkInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst HasLinkInput = memo(function HasLinkInput({\n filterState,\n onFilterStateChanged,\n}: HasLinkInputProps): React.ReactElement {\n const hasLink = filterState?.type === \"hasLink\"\n ? filterState.hasLink\n : false;\n\n const handleChange = useCallback(\n (hasLink: boolean) => {\n onFilterStateChanged({ type: \"hasLink\", hasLink });\n },\n [onFilterStateChanged],\n );\n\n return <ToggleInput enabled={hasLink} onChange={handleChange} />;\n});\n\ninterface KeywordSearchInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n placeholder: string;\n}\n\nconst KeywordSearchInput = memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder,\n}: KeywordSearchInputProps): React.ReactElement {\n const searchTerm = filterState?.type === \"keywordSearch\"\n ? filterState.searchTerm\n : undefined;\n const operator = filterState?.type === \"keywordSearch\"\n ? filterState.operator\n : \"AND\";\n\n const handleChange = useCallback(\n (newSearchTerm: string | undefined) => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator,\n });\n },\n [onFilterStateChanged, operator],\n );\n\n return (\n <ContainsTextInput\n value={searchTerm}\n onChange={handleChange}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAChD,SAASC,iBAAiB,QAAQ,oCAAoC;AACtE,SAASC,WAAW,QAAQ,8BAA8B;AAG1D,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,mBAAmB,QAAQ,iCAAiC;
|
|
1
|
+
{"version":3,"file":"FilterInput.js","names":["React","memo","useCallback","ContainsTextInput","ToggleInput","LinkedPropertyInput","PropertyFilterInput","FilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","searchQuery","excludeRowOpen","createElement","FilterInputContent","FilterInput","type","HasLinkInput","KeywordSearchInput","placeholder","label","renderInput","customFilterState","Fragment","state","hasLink","handleChange","enabled","onChange","searchTerm","undefined","operator","newSearchTerm","value"],"sources":["FilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { memo, useCallback } from \"react\";\nimport { ContainsTextInput } from \"./base/inputs/ContainsTextInput.js\";\nimport { ToggleInput } from \"./base/inputs/ToggleInput.js\";\nimport type { FilterDefinitionUnion } from \"./FilterListApi.js\";\nimport type { FilterState } from \"./FilterListItemApi.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { PropertyFilterInput } from \"./inputs/PropertyFilterInput.js\";\n\ninterface FilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: FilterDefinitionUnion<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n}\n\nfunction FilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen,\n}: FilterInputProps<Q>): React.ReactElement {\n return (\n <FilterInputContent\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n />\n );\n}\n\nexport const FilterInput = memo(FilterInputInner) as typeof FilterInputInner;\n\nfunction FilterInputContent<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen,\n}: FilterInputProps<Q>): React.ReactElement {\n switch (definition.type) {\n case \"HAS_LINK\":\n return (\n <HasLinkInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LINKED_PROPERTY\":\n return (\n <LinkedPropertyInput\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n searchQuery={searchQuery}\n />\n );\n\n case \"KEYWORD_SEARCH\":\n return (\n <KeywordSearchInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n placeholder={definition.label ?? \"Search...\"}\n />\n );\n\n case \"CUSTOM\": {\n if (!definition.renderInput) {\n return (\n <div data-unsupported=\"true\">Custom filter missing renderInput</div>\n );\n }\n const customFilterState = filterState?.type === \"custom\"\n ? filterState\n : definition.filterState;\n return (\n <>\n {definition.renderInput({\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: (state) => onFilterStateChanged(state),\n })}\n </>\n );\n }\n\n case \"PROPERTY\":\n return (\n <PropertyFilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n />\n );\n\n default:\n return <div data-unsupported=\"true\">Unsupported filter type</div>;\n }\n}\n\ninterface HasLinkInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst HasLinkInput = memo(function HasLinkInput({\n filterState,\n onFilterStateChanged,\n}: HasLinkInputProps): React.ReactElement {\n const hasLink = filterState?.type === \"hasLink\"\n ? filterState.hasLink\n : false;\n\n const handleChange = useCallback(\n (hasLink: boolean) => {\n onFilterStateChanged({ type: \"hasLink\", hasLink });\n },\n [onFilterStateChanged],\n );\n\n return <ToggleInput enabled={hasLink} onChange={handleChange} />;\n});\n\ninterface KeywordSearchInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n placeholder: string;\n}\n\nconst KeywordSearchInput = memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder,\n}: KeywordSearchInputProps): React.ReactElement {\n const searchTerm = filterState?.type === \"keywordSearch\"\n ? filterState.searchTerm\n : undefined;\n const operator = filterState?.type === \"keywordSearch\"\n ? filterState.operator\n : \"AND\";\n\n const handleChange = useCallback(\n (newSearchTerm: string | undefined) => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator,\n });\n },\n [onFilterStateChanged, operator],\n );\n\n return (\n <ContainsTextInput\n value={searchTerm}\n onChange={handleChange}\n placeholder={placeholder}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,7 +30,7 @@ export function FilterList(props) {
|
|
|
30
30
|
collapsed,
|
|
31
31
|
onCollapsedChange,
|
|
32
32
|
filterDefinitions,
|
|
33
|
-
addFilterMode = "
|
|
33
|
+
addFilterMode = "uncontrolled",
|
|
34
34
|
showResetButton = false,
|
|
35
35
|
onReset,
|
|
36
36
|
showActiveFilterCount = false,
|
|
@@ -82,10 +82,14 @@ export function FilterList(props) {
|
|
|
82
82
|
label: getFilterLabel(def)
|
|
83
83
|
})), [managedHiddenDefinitions]);
|
|
84
84
|
const effectiveRenderAddFilterButton = useMemo(() => {
|
|
85
|
-
if (uncontrolledAddFilterMode
|
|
85
|
+
if (uncontrolledAddFilterMode) {
|
|
86
|
+
if (managedHiddenDefinitions.length === 0) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
86
89
|
return () => /*#__PURE__*/React.createElement(AddFilterPopover, {
|
|
87
90
|
hiddenDefinitions: hiddenFilterItems,
|
|
88
|
-
onShowFilter: handleFilterShown
|
|
91
|
+
onShowFilter: handleFilterShown,
|
|
92
|
+
renderTrigger: renderAddFilterButton
|
|
89
93
|
});
|
|
90
94
|
}
|
|
91
95
|
return renderAddFilterButton;
|
|
@@ -95,14 +99,18 @@ export function FilterList(props) {
|
|
|
95
99
|
definition,
|
|
96
100
|
filterKey,
|
|
97
101
|
filterState,
|
|
98
|
-
onFilterStateChanged
|
|
102
|
+
onFilterStateChanged,
|
|
103
|
+
searchQuery,
|
|
104
|
+
excludeRowOpen
|
|
99
105
|
}) => /*#__PURE__*/React.createElement(FilterInput, {
|
|
100
106
|
objectType: objectType,
|
|
101
107
|
objectSet: objectSet,
|
|
102
108
|
definition: definition,
|
|
103
109
|
filterState: filterState,
|
|
104
110
|
onFilterStateChanged: onFilterStateChanged,
|
|
105
|
-
whereClause: perFilterWhereClauses.get(filterKey) ?? {}
|
|
111
|
+
whereClause: perFilterWhereClauses.get(filterKey) ?? {},
|
|
112
|
+
searchQuery: searchQuery,
|
|
113
|
+
excludeRowOpen: excludeRowOpen
|
|
106
114
|
}), [objectType, objectSet, perFilterWhereClauses]);
|
|
107
115
|
return /*#__PURE__*/React.createElement(BaseFilterList, {
|
|
108
116
|
title: title,
|