@osdk/react-components 0.9.0 → 0.10.0-main-b355bc3b41a4d89ec093054dc8d2845c772ef1e2
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/CHANGELOG.md +14 -0
- package/README.md +23 -0
- package/build/browser/action-form/FormFieldApi.js +8 -0
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/fields/AsyncDropdownField.js +81 -0
- package/build/browser/action-form/fields/AsyncDropdownField.js.map +1 -0
- package/build/browser/action-form/fields/AsyncDropdownField.module.css +31 -0
- package/build/browser/action-form/fields/AsyncDropdownField.module.css.js +8 -0
- package/build/browser/action-form/fields/DropdownField.js +29 -14
- package/build/browser/action-form/fields/DropdownField.js.map +1 -1
- package/build/browser/action-form/fields/FormFieldRenderer.js +17 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/browser/action-form/fields/ObjectSelectField.js +109 -0
- package/build/browser/action-form/fields/ObjectSelectField.js.map +1 -0
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +14 -5
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
- package/build/browser/base-components/combobox/Combobox.module.css +23 -2
- package/build/browser/base-components/combobox/Combobox.module.css.js +3 -3
- package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
- package/build/browser/shared/hooks/useDebouncedValue.js +35 -0
- package/build/browser/shared/hooks/useDebouncedValue.js.map +1 -0
- package/build/browser/shared/hooks/useEventCallback.js +44 -0
- package/build/browser/shared/hooks/useEventCallback.js.map +1 -0
- package/build/browser/shared/hooks/useInfiniteScroll.js +81 -0
- package/build/browser/shared/hooks/useInfiniteScroll.js.map +1 -0
- package/build/browser/styles.css +73 -2
- package/build/browser/tokens/component-tokens/async-dropdown.css +16 -0
- package/build/browser/tokens.css +1 -0
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/cjs/{chunk-EEES66LS.cjs → chunk-5DVHLBWS.cjs} +3 -3
- package/build/cjs/chunk-5DVHLBWS.cjs.map +1 -0
- package/build/cjs/{chunk-OXP3XQE4.cjs → chunk-ALZS624H.cjs} +47 -47
- package/build/cjs/{chunk-OXP3XQE4.cjs.map → chunk-ALZS624H.cjs.map} +1 -1
- package/build/cjs/{chunk-UEY63J2G.cjs → chunk-FURJRQWI.cjs} +9 -9
- package/build/cjs/{chunk-UEY63J2G.cjs.map → chunk-FURJRQWI.cjs.map} +1 -1
- package/build/cjs/{chunk-RY2GVYT2.cjs → chunk-MVNWOKH2.cjs} +49 -36
- package/build/cjs/chunk-MVNWOKH2.cjs.map +1 -0
- package/build/cjs/{chunk-O5ZAMFDU.cjs → chunk-QWFJF7IM.cjs} +468 -207
- package/build/cjs/chunk-QWFJF7IM.cjs.map +1 -0
- package/build/cjs/{chunk-2FPKTOPE.cjs → chunk-XBXC6VAS.cjs} +2 -2
- package/build/cjs/{chunk-2FPKTOPE.cjs.map → chunk-XBXC6VAS.cjs.map} +1 -1
- package/build/cjs/{chunk-SHTQGKS5.cjs → chunk-Z3CXMFCZ.cjs} +4 -4
- package/build/cjs/{chunk-SHTQGKS5.cjs.map → chunk-Z3CXMFCZ.cjs.map} +1 -1
- package/build/cjs/public/experimental/action-form.cjs +6 -6
- package/build/cjs/public/experimental/action-form.css +24 -1
- package/build/cjs/public/experimental/action-form.css.map +1 -1
- package/build/cjs/public/experimental/action-form.d.cts +48 -3
- package/build/cjs/public/experimental/filter-list.cjs +7 -7
- package/build/cjs/public/experimental/filter-list.css +9 -1
- package/build/cjs/public/experimental/filter-list.css.map +1 -1
- package/build/cjs/public/experimental/object-table.cjs +10 -10
- package/build/cjs/public/experimental/object-table.css +9 -1
- package/build/cjs/public/experimental/object-table.css.map +1 -1
- package/build/cjs/public/experimental/pdf-viewer.cjs +24 -24
- package/build/cjs/public/experimental.cjs +41 -41
- package/build/cjs/public/experimental.css +24 -1
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/esm/action-form/FormFieldApi.js +8 -0
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/fields/AsyncDropdownField.js +81 -0
- package/build/esm/action-form/fields/AsyncDropdownField.js.map +1 -0
- package/build/esm/action-form/fields/AsyncDropdownField.module.css +31 -0
- package/build/esm/action-form/fields/DropdownField.js +29 -14
- package/build/esm/action-form/fields/DropdownField.js.map +1 -1
- package/build/esm/action-form/fields/FormFieldRenderer.js +17 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/esm/action-form/fields/ObjectSelectField.js +109 -0
- package/build/esm/action-form/fields/ObjectSelectField.js.map +1 -0
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +14 -5
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
- package/build/esm/base-components/combobox/Combobox.module.css +23 -2
- package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
- package/build/esm/shared/hooks/useDebouncedValue.js +35 -0
- package/build/esm/shared/hooks/useDebouncedValue.js.map +1 -0
- package/build/esm/shared/hooks/useEventCallback.js +44 -0
- package/build/esm/shared/hooks/useEventCallback.js.map +1 -0
- package/build/esm/shared/hooks/useInfiniteScroll.js +81 -0
- package/build/esm/shared/hooks/useInfiniteScroll.js.map +1 -0
- package/build/esm/tokens/component-tokens/async-dropdown.css +16 -0
- package/build/esm/tokens.css +1 -0
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/types/action-form/FormFieldApi.d.ts +48 -3
- package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
- package/build/types/action-form/fields/AsyncDropdownField.d.ts +25 -0
- package/build/types/action-form/fields/AsyncDropdownField.d.ts.map +1 -0
- package/build/types/action-form/fields/DropdownField.d.ts +2 -2
- package/build/types/action-form/fields/DropdownField.d.ts.map +1 -1
- package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
- package/build/types/action-form/fields/ObjectSelectField.d.ts +3 -0
- package/build/types/action-form/fields/ObjectSelectField.d.ts.map +1 -0
- package/build/types/shared/hooks/useDebouncedValue.d.ts +5 -0
- package/build/types/shared/hooks/useDebouncedValue.d.ts.map +1 -0
- package/build/types/shared/hooks/useEventCallback.d.ts +13 -0
- package/build/types/shared/hooks/useEventCallback.d.ts.map +1 -0
- package/build/types/shared/hooks/useInfiniteScroll.d.ts +19 -0
- package/build/types/shared/hooks/useInfiniteScroll.d.ts.map +1 -0
- package/package.json +9 -9
- package/build/cjs/chunk-EEES66LS.cjs.map +0 -1
- package/build/cjs/chunk-O5ZAMFDU.cjs.map +0 -1
- package/build/cjs/chunk-RY2GVYT2.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkJLESWL47_cjs = require('./chunk-JLESWL47.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkXBXC6VAS_cjs = require('./chunk-XBXC6VAS.cjs');
|
|
5
5
|
var React6 = require('react');
|
|
6
6
|
var input = require('@base-ui/react/input');
|
|
7
7
|
var popover = require('@base-ui/react/popover');
|
|
@@ -89,7 +89,7 @@ function useDateEditState({
|
|
|
89
89
|
const inputError = (() => {
|
|
90
90
|
if (!isEditing || inputValue === "") return null;
|
|
91
91
|
if (dateValue == null) return "invalid";
|
|
92
|
-
if (!
|
|
92
|
+
if (!chunkXBXC6VAS_cjs.isDateInRange(dateValue, min, max)) return "out-of-range";
|
|
93
93
|
return null;
|
|
94
94
|
})();
|
|
95
95
|
const validatedDate = inputError == null && dateValue != null ? dateValue : null;
|
|
@@ -151,9 +151,9 @@ var DatetimePickerField = /* @__PURE__ */ React6__default.default.memo(function
|
|
|
151
151
|
const popoverRef = React6.useRef(null);
|
|
152
152
|
const [isOpen, setIsOpen] = React6.useState(false);
|
|
153
153
|
const skipReopenRef = React6.useRef(false);
|
|
154
|
-
const editFormatFn = showTime ?
|
|
155
|
-
const displayFormatFn = formatDate ?? (showTime ?
|
|
156
|
-
const parseFn = parseDate ?? (showTime ?
|
|
154
|
+
const editFormatFn = showTime ? chunkXBXC6VAS_cjs.formatDatetimeForInput : chunkXBXC6VAS_cjs.formatDateForInput;
|
|
155
|
+
const displayFormatFn = formatDate ?? (showTime ? chunkXBXC6VAS_cjs.formatDatetimeForInput : chunkXBXC6VAS_cjs.formatDateForDisplay);
|
|
156
|
+
const parseFn = parseDate ?? (showTime ? chunkXBXC6VAS_cjs.parseDatetimeFromInput : chunkXBXC6VAS_cjs.parseDateFromInput);
|
|
157
157
|
const {
|
|
158
158
|
displayedValue,
|
|
159
159
|
inputError,
|
|
@@ -239,7 +239,7 @@ var DatetimePickerField = /* @__PURE__ */ React6__default.default.memo(function
|
|
|
239
239
|
const {
|
|
240
240
|
hours,
|
|
241
241
|
minutes
|
|
242
|
-
} =
|
|
242
|
+
} = chunkXBXC6VAS_cjs.parseTimeString(timeString);
|
|
243
243
|
const base = value != null ? new Date(value.getTime()) : /* @__PURE__ */ new Date();
|
|
244
244
|
base.setHours(hours, minutes, 0, 0);
|
|
245
245
|
onChange?.(base);
|
|
@@ -264,7 +264,7 @@ var DatetimePickerField = /* @__PURE__ */ React6__default.default.memo(function
|
|
|
264
264
|
const timeFooter = showTime ? /* @__PURE__ */ React6__default.default.createElement("div", {
|
|
265
265
|
className: DatetimePickerField_default.osdkDatetimeTimeFooter
|
|
266
266
|
}, /* @__PURE__ */ React6__default.default.createElement(TimePicker, {
|
|
267
|
-
value:
|
|
267
|
+
value: chunkXBXC6VAS_cjs.getTimeValue(value),
|
|
268
268
|
onChange: handleTimeChange
|
|
269
269
|
})) : void 0;
|
|
270
270
|
const wrapperClassName = classnames2__default.default(DatePickerCommon_default.osdkDatePickerInputWrapper, DatetimePickerField_default.osdkDatetimeInputWrapper, inputError != null && DatePickerCommon_default.osdkDatePickerInputWrapperError);
|
|
@@ -419,12 +419,17 @@ function _extends2() {
|
|
|
419
419
|
}, _extends2.apply(null, arguments);
|
|
420
420
|
}
|
|
421
421
|
var EMPTY_ARRAY = [];
|
|
422
|
-
|
|
422
|
+
var DropdownField = typedReactMemo(function DropdownFieldFn({
|
|
423
423
|
isSearchable = false,
|
|
424
424
|
isMultiple,
|
|
425
425
|
itemToStringLabel,
|
|
426
426
|
itemToKey,
|
|
427
427
|
value,
|
|
428
|
+
query,
|
|
429
|
+
onQueryChange,
|
|
430
|
+
disableClientSideFiltering,
|
|
431
|
+
popupStatus,
|
|
432
|
+
trailingItem,
|
|
428
433
|
...rest
|
|
429
434
|
}) {
|
|
430
435
|
const normalizedValue = value ?? (isMultiple ? EMPTY_ARRAY : null);
|
|
@@ -436,7 +441,12 @@ function DropdownField({
|
|
|
436
441
|
value: normalizedValue,
|
|
437
442
|
itemToStringLabel: resolvedItemToStringLabel,
|
|
438
443
|
getKey,
|
|
439
|
-
isSearchable
|
|
444
|
+
isSearchable,
|
|
445
|
+
query,
|
|
446
|
+
onQueryChange,
|
|
447
|
+
disableClientSideFiltering,
|
|
448
|
+
popupStatus,
|
|
449
|
+
trailingItem
|
|
440
450
|
}));
|
|
441
451
|
}
|
|
442
452
|
return /* @__PURE__ */ React6__default.default.createElement(SelectDropdown, _extends2({}, rest, {
|
|
@@ -444,7 +454,7 @@ function DropdownField({
|
|
|
444
454
|
itemToStringLabel: resolvedItemToStringLabel,
|
|
445
455
|
getKey
|
|
446
456
|
}));
|
|
447
|
-
}
|
|
457
|
+
});
|
|
448
458
|
var SelectDropdown = typedReactMemo(function SelectDropdownFn({
|
|
449
459
|
id,
|
|
450
460
|
value,
|
|
@@ -482,7 +492,7 @@ var SelectDropdown = typedReactMemo(function SelectDropdownFn({
|
|
|
482
492
|
className: Select_default.osdkSelectClear,
|
|
483
493
|
onMouseDown: preventTriggerOpen,
|
|
484
494
|
onClick: handleClear
|
|
485
|
-
}, /* @__PURE__ */ React6__default.default.createElement(icons.
|
|
495
|
+
}, /* @__PURE__ */ React6__default.default.createElement(icons.SmallCross, null)), /* @__PURE__ */ React6__default.default.createElement("span", {
|
|
486
496
|
className: Select_default.osdkSelectIcon
|
|
487
497
|
}, /* @__PURE__ */ React6__default.default.createElement(icons.CaretDown, null))), /* @__PURE__ */ React6__default.default.createElement(Select.Portal, {
|
|
488
498
|
ref: portalRef
|
|
@@ -502,7 +512,12 @@ var ComboboxDropdown = typedReactMemo(function ComboboxDropdownFn({
|
|
|
502
512
|
isMultiple,
|
|
503
513
|
isSearchable,
|
|
504
514
|
placeholder,
|
|
505
|
-
portalRef
|
|
515
|
+
portalRef,
|
|
516
|
+
query,
|
|
517
|
+
onQueryChange,
|
|
518
|
+
disableClientSideFiltering,
|
|
519
|
+
popupStatus,
|
|
520
|
+
trailingItem
|
|
506
521
|
}) {
|
|
507
522
|
const [open, setOpen] = React6.useState(false);
|
|
508
523
|
const hasValue = isMultiple ? Array.isArray(value) && value.length > 0 : value != null;
|
|
@@ -520,15 +535,11 @@ var ComboboxDropdown = typedReactMemo(function ComboboxDropdownFn({
|
|
|
520
535
|
const next = value.filter((v) => isItemEqual != null ? !isItemEqual(v, itemToRemove) : v !== itemToRemove);
|
|
521
536
|
onChange?.(next);
|
|
522
537
|
}, [isMultiple, value, onChange, isItemEqual]);
|
|
523
|
-
const renderItem = React6.useCallback((item) => /* @__PURE__ */ React6__default.default.createElement(
|
|
524
|
-
key: getKey(item),
|
|
525
|
-
value: item
|
|
526
|
-
}, itemToStringLabel(item)), [getKey, itemToStringLabel]);
|
|
527
|
-
const renderItemWithIndicator = React6.useCallback((item) => /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.Item, {
|
|
538
|
+
const renderItem = React6.useCallback((item) => /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Item, {
|
|
528
539
|
key: getKey(item),
|
|
529
540
|
value: item
|
|
530
|
-
}, /* @__PURE__ */ React6__default.default.createElement(
|
|
531
|
-
return /* @__PURE__ */ React6__default.default.createElement("div", null, /* @__PURE__ */ React6__default.default.createElement(
|
|
541
|
+
}, isMultiple && /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.ItemIndicator, null, /* @__PURE__ */ React6__default.default.createElement(icons.Tick, null)), itemToStringLabel(item)), [getKey, isMultiple, itemToStringLabel]);
|
|
542
|
+
return /* @__PURE__ */ React6__default.default.createElement("div", null, /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Root, {
|
|
532
543
|
value,
|
|
533
544
|
onValueChange: onChange,
|
|
534
545
|
open,
|
|
@@ -537,40 +548,42 @@ var ComboboxDropdown = typedReactMemo(function ComboboxDropdownFn({
|
|
|
537
548
|
itemToStringLabel,
|
|
538
549
|
isItemEqualToValue: isItemEqual,
|
|
539
550
|
items,
|
|
540
|
-
|
|
541
|
-
|
|
551
|
+
inputValue: query,
|
|
552
|
+
onInputValueChange: onQueryChange,
|
|
553
|
+
filter: disableClientSideFiltering ? null : void 0
|
|
554
|
+
}, /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Trigger, {
|
|
542
555
|
id,
|
|
543
|
-
className: isMultiple ?
|
|
556
|
+
className: isMultiple ? chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxTriggerMulti : void 0
|
|
544
557
|
}, /* @__PURE__ */ React6__default.default.createElement("div", {
|
|
545
|
-
className:
|
|
558
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxValueContainer
|
|
546
559
|
}, isMultiple && Array.isArray(value) && value.length > 0 ? /* @__PURE__ */ React6__default.default.createElement("div", {
|
|
547
|
-
className:
|
|
560
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxTriggerChips
|
|
548
561
|
}, value.map((item) => /* @__PURE__ */ React6__default.default.createElement("span", {
|
|
549
562
|
key: getKey(item),
|
|
550
|
-
className:
|
|
563
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxTriggerChip
|
|
551
564
|
}, itemToStringLabel(item), /* @__PURE__ */ React6__default.default.createElement("span", {
|
|
552
565
|
role: "button",
|
|
553
566
|
"aria-label": `Remove ${itemToStringLabel(item)}`,
|
|
554
|
-
className:
|
|
567
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxTriggerChipRemove,
|
|
555
568
|
onMouseDown: preventTriggerOpen,
|
|
556
569
|
onClick: () => handleRemoveItem(item)
|
|
557
570
|
}, /* @__PURE__ */ React6__default.default.createElement(icons.Cross, {
|
|
558
571
|
size: 12
|
|
559
|
-
}))))) : /* @__PURE__ */ React6__default.default.createElement(React6__default.default.Fragment, null, /* @__PURE__ */ React6__default.default.createElement(
|
|
560
|
-
className:
|
|
572
|
+
}))))) : /* @__PURE__ */ React6__default.default.createElement(React6__default.default.Fragment, null, /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Value, null), !hasValue && placeholder != null && /* @__PURE__ */ React6__default.default.createElement("span", {
|
|
573
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxPlaceholder
|
|
561
574
|
}, placeholder))), hasValue && /* @__PURE__ */ React6__default.default.createElement("span", {
|
|
562
575
|
role: "button",
|
|
563
576
|
"aria-label": "Clear",
|
|
564
|
-
className:
|
|
577
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxClear,
|
|
565
578
|
onMouseDown: preventTriggerOpen,
|
|
566
579
|
onClick: handleClear
|
|
567
|
-
}, /* @__PURE__ */ React6__default.default.createElement(icons.
|
|
580
|
+
}, /* @__PURE__ */ React6__default.default.createElement(icons.SmallCross, null)), /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Icon, null, /* @__PURE__ */ React6__default.default.createElement(icons.CaretDown, null))), /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Portal, {
|
|
568
581
|
ref: portalRef
|
|
569
|
-
}, /* @__PURE__ */ React6__default.default.createElement(
|
|
570
|
-
className:
|
|
571
|
-
}, /* @__PURE__ */ React6__default.default.createElement(
|
|
582
|
+
}, /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Positioner, null, /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Popup, null, isSearchable && /* @__PURE__ */ React6__default.default.createElement("div", {
|
|
583
|
+
className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxPopupSearchInput
|
|
584
|
+
}, /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.SearchInput, {
|
|
572
585
|
placeholder: "Search\u2026"
|
|
573
|
-
})), /* @__PURE__ */ React6__default.default.createElement(
|
|
586
|
+
})), popupStatus, popupStatus == null && /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.Empty, null, "No results"), /* @__PURE__ */ React6__default.default.createElement(chunkXBXC6VAS_cjs.Combobox.List, null, items.map(renderItem), trailingItem))))));
|
|
574
587
|
});
|
|
575
588
|
function preventTriggerOpen(e) {
|
|
576
589
|
e.stopPropagation();
|
|
@@ -592,5 +605,5 @@ exports.DropdownField = DropdownField;
|
|
|
592
605
|
exports.TimePicker = TimePicker;
|
|
593
606
|
exports.typedReactMemo = typedReactMemo;
|
|
594
607
|
exports.useDateEditState = useDateEditState;
|
|
595
|
-
//# sourceMappingURL=chunk-
|
|
596
|
-
//# sourceMappingURL=chunk-
|
|
608
|
+
//# sourceMappingURL=chunk-MVNWOKH2.cjs.map
|
|
609
|
+
//# sourceMappingURL=chunk-MVNWOKH2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/shared/typedMemo.ts","../../src/action-form/fields/DatePickerCommon.module.css","../../src/action-form/fields/DatetimePickerField.module.css","../../src/action-form/fields/LazyDateCalendar.tsx","../../src/action-form/fields/TimePicker.module.css","../../src/action-form/fields/TimePicker.tsx","../../src/action-form/fields/useDateEditState.ts","../../src/action-form/fields/DatetimePickerField.tsx","../../src/base-components/select/Select.module.css","../../src/base-components/select/Select.tsx","../../src/action-form/fields/DropdownField.tsx"],"names":["React","Suspense","useState","useRef","useCallback","Input","isDateInRange","DatetimePickerField","useId","formatDatetimeForInput","formatDateForInput","formatDateForDisplay","parseDatetimeFromInput","parseDateFromInput","parseTimeString","getTimeValue","classnames","Popover","stopPropagation","BaseUISelect","CaretDown","_extends","SmallCross","Combobox","Tick","Combobox_default","Cross"],"mappings":"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","file":"chunk-MVNWOKH2.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 React from \"react\";\n\n/**\n * TODO: Delete this once `React.memo` is typed to not lose generics to `unknown`\n *\n * Context: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087\n */\nexport const typedReactMemo = React.memo;","/* Bare input inside a date picker wrapper */\n.osdkDatePickerInput {\n width: 100%;\n flex: 1;\n min-width: 0;\n min-height: var(--osdk-datetime-input-min-height);\n padding: var(--osdk-datetime-input-padding);\n border: none;\n border-radius: var(--osdk-datetime-input-border-radius);\n background: transparent;\n color: var(--osdk-datetime-input-color);\n font-family: var(--osdk-datetime-input-font-family);\n font-size: var(--osdk-datetime-input-font-size);\n line-height: var(--osdk-datetime-input-line-height);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &::placeholder {\n color: var(--osdk-datetime-input-placeholder-color);\n }\n\n &:focus-visible {\n outline: none;\n }\n}\n\n/* Popover container */\n.osdkDatePickerPopover {\n background: var(--osdk-datetime-popover-bg);\n padding: var(--osdk-datetime-popover-padding);\n z-index: var(--osdk-datetime-popover-z-index);\n box-shadow: var(--osdk-datetime-popover-shadow);\n}\n\n/* Visually-hidden focus boundary for Tab cycling between input and popover */\n.osdkDatePickerFocusBoundary {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n outline: none;\n}\n\n/* Shared input wrapper — border, bg, hover, focus-within */\n.osdkDatePickerInputWrapper {\n display: flex;\n align-items: center;\n border-radius: var(--osdk-datetime-input-border-radius);\n border: var(--osdk-datetime-input-border-width) solid\n var(--osdk-datetime-input-border-color);\n background-color: var(--osdk-datetime-input-bg);\n transition:\n background-color var(--osdk-datetime-input-transition-duration)\n var(--osdk-datetime-input-transition-ease),\n border-color var(--osdk-datetime-input-transition-duration)\n var(--osdk-datetime-input-transition-ease);\n cursor: text;\n\n &:hover {\n background-color: var(--osdk-datetime-input-bg-hover);\n }\n\n &:focus-within {\n outline: var(--osdk-datetime-input-focus-width) solid\n var(--osdk-datetime-input-focus-color);\n outline-offset: var(--osdk-datetime-input-focus-offset);\n border-color: var(--osdk-datetime-input-border-color-focus);\n }\n}\n\n.osdkDatePickerInputWrapperError {\n border-color: var(--osdk-datetime-input-error-border-color);\n\n &:focus-within {\n border-color: var(--osdk-datetime-input-error-border-color);\n }\n}\n\n/* Calendar fallback / loading skeleton */\n.osdkDatePickerFallback {\n width: var(--osdk-datetime-calendar-fallback-width);\n height: var(--osdk-datetime-calendar-fallback-height);\n}\n","/* DatetimePickerField — component-specific overrides.\n Wrapper doubles as Popover.Trigger — suppress its own outline since\n :focus-within handles the focus indicator when the inner input is focused. */\n.osdkDatetimeInputWrapper {\n outline: none;\n}\n\n/* Time footer — rendered as a popover sibling (not a DayPicker tfoot) so the\n border-top can span the full popover width via negative margins. */\n.osdkDatetimeTimeFooter {\n padding-top: var(--osdk-time-picker-padding-top);\n padding-left: var(--osdk-datetime-popover-padding);\n padding-right: var(--osdk-datetime-popover-padding);\n margin-top: var(--osdk-time-picker-margin-top);\n margin-left: calc(var(--osdk-datetime-popover-padding) * -1);\n margin-right: calc(var(--osdk-datetime-popover-padding) * -1);\n border-top: var(--osdk-time-picker-border-top);\n}\n","/*\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 React, { Suspense } from \"react\";\nimport styles from \"./DatePickerCommon.module.css\";\nconst DateCalendarLazy = /*#__PURE__*/React.lazy(() => import(\"./DateCalendar.js\"));\nexport function LazyDateCalendar(props) {\n return /*#__PURE__*/React.createElement(Suspense, {\n fallback: /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkDatePickerFallback\n })\n }, /*#__PURE__*/React.createElement(DateCalendarLazy, props));\n}","/* TimePicker — bare time input. Layout (spacing, borders) owned by the parent. */\n\n.osdkTimePickerInput {\n width: 100%;\n font-family: var(--osdk-time-picker-input-font-family);\n font-size: var(--osdk-time-picker-input-font-size);\n padding: var(--osdk-time-picker-input-padding);\n border: var(--osdk-time-picker-input-border);\n border-radius: var(--osdk-time-picker-input-border-radius);\n background: var(--osdk-time-picker-input-bg);\n color: var(--osdk-time-picker-input-color);\n box-sizing: border-box;\n\n &:focus {\n border-color: var(--osdk-time-picker-input-border-color-focus);\n outline: var(--osdk-time-picker-input-focus-outline);\n outline-offset: var(--osdk-time-picker-input-focus-offset);\n }\n}\n","/*\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, { useCallback, useRef, useState } from \"react\";\nimport styles from \"./TimePicker.module.css\";\nexport function TimePicker({\n value,\n onChange,\n label = \"Time\"\n}) {\n const [localValue, setLocalValue] = useState(value);\n const isFocusedRef = useRef(false);\n\n // Sync from prop when not focused (parent changed the value externally)\n const prevValueRef = useRef(value);\n if (prevValueRef.current !== value) {\n prevValueRef.current = value;\n if (!isFocusedRef.current) {\n setLocalValue(value);\n }\n }\n const handleFocus = useCallback(() => {\n isFocusedRef.current = true;\n }, []);\n const handleBlur = useCallback(() => {\n isFocusedRef.current = false;\n onChange(localValue);\n }, [onChange, localValue]);\n return /*#__PURE__*/React.createElement(Input, {\n type: \"time\",\n value: localValue,\n onValueChange: setLocalValue,\n onFocus: handleFocus,\n onBlur: handleBlur,\n className: styles.osdkTimePickerInput,\n \"aria-label\": label\n });\n}","/*\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 { useCallback, useRef, useState } from \"react\";\nimport { isDateInRange } from \"../../shared/dateUtils.js\";\n/**\n * Manages the editing lifecycle for a single date text input.\n *\n * Handles the two-phase display pattern where the input shows a formatted\n * display value when idle and switches to an editable format when focused.\n */\nexport function useDateEditState({\n value,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange\n}) {\n const [isEditing, setIsEditing] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n\n // Sync inputValue when external value changes (e.g. parent resets)\n const prevValueTimeRef = useRef(value?.getTime() ?? null);\n const currentValueTime = value?.getTime() ?? null;\n if (prevValueTimeRef.current !== currentValueTime) {\n prevValueTimeRef.current = currentValueTime;\n if (!isEditing) {\n setInputValue(value != null ? editFormatFn(value) : \"\");\n }\n }\n\n // During editing the user needs parsable text they can modify and that\n // round-trips through parseFn (e.g. \"2024-01-15\"). When idle the input\n // shows a locale-friendly string that may not be parsable (e.g. \"Jan 15, 2024\")\n // but is more readable. displayedValue is the single source of truth\n // for the input's visible text.\n const displayedValue = isEditing ? inputValue : value != null ? displayFormatFn(value) : \"\";\n\n // Parse the input once per render and derive all validation state from it.\n const dateValue = inputValue !== \"\" ? parseFn(inputValue) : undefined;\n const inputError = (() => {\n // Not editing: no validation feedback.\n // Empty input: the user cleared the field — that means null, not invalid.\n if (!isEditing || inputValue === \"\") return null;\n if (dateValue == null) return \"invalid\";\n if (!isDateInRange(dateValue, min, max)) return \"out-of-range\";\n return null;\n })();\n\n // The validated date ready for onChange, derived from dateValue + inputError.\n const validatedDate = inputError == null && dateValue != null ? dateValue : null;\n const setDateValue = useCallback(date => {\n setInputValue(date != null ? editFormatFn(date) : \"\");\n }, [editFormatFn]);\n const startEditing = useCallback(() => {\n setIsEditing(true);\n setDateValue(value);\n }, [value, setDateValue]);\n const stopEditing = useCallback(() => {\n setIsEditing(false);\n setDateValue(value);\n }, [value, setDateValue]);\n\n // Refs so commitAndStopEditing reads the latest derived values without\n // closing over inputValue/validatedDate (which change every keystroke).\n const inputValueRef = useRef(inputValue);\n inputValueRef.current = inputValue;\n const validatedDateRef = useRef(validatedDate);\n validatedDateRef.current = validatedDate;\n const commitAndStopEditing = useCallback(() => {\n if (inputValueRef.current === \"\") {\n onChange?.(null);\n } else if (validatedDateRef.current != null) {\n onChange?.(validatedDateRef.current);\n }\n setIsEditing(false);\n setDateValue(value);\n }, [onChange, setDateValue, value]);\n return {\n isEditing,\n displayedValue,\n inputError,\n dateValue,\n startEditing,\n stopEditing,\n commitAndStopEditing,\n setInputValue,\n setDateValue\n };\n}","/*\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 { Popover } from \"@base-ui/react/popover\";\nimport classnames from \"classnames\";\nimport React, { useCallback, useId, useRef, useState } from \"react\";\nimport { formatDateForDisplay, formatDateForInput, formatDatetimeForInput, getTimeValue, parseDateFromInput, parseDatetimeFromInput, parseTimeString } from \"../../shared/dateUtils.js\";\nimport { stopPropagation } from \"./calendarShared.js\";\nimport commonStyles from \"./DatePickerCommon.module.css\";\nimport styles from \"./DatetimePickerField.module.css\";\nimport { LazyDateCalendar } from \"./LazyDateCalendar.js\";\nimport { TimePicker } from \"./TimePicker.js\";\nimport { useDateEditState } from \"./useDateEditState.js\";\nexport const DatetimePickerField = /*#__PURE__*/React.memo(function DatetimePickerField({\n id,\n value,\n onChange,\n error,\n min,\n max,\n placeholder,\n formatDate,\n parseDate,\n showTime = false,\n closeOnSelection,\n portalRef\n}) {\n const shouldCloseOnSelection = closeOnSelection ?? !showTime;\n const popoverId = useId();\n const inputRef = useRef(null);\n const popoverRef = useRef(null);\n const [isOpen, setIsOpen] = useState(false);\n // When true, the next handleFocus call skips reopening the popover.\n // Set before focusing the input from a popover boundary exit so that\n // Tab/Shift-Tab proceeds to the adjacent form field naturally.\n const skipReopenRef = useRef(false);\n\n // Format/parse: pick between date-only and datetime variants.\n // editFormatFn produces a parsable string for typing (e.g. \"2024-01-15\" or \"2024-01-15 14:30\").\n // displayFormatFn produces a human-readable string for idle state (e.g. \"Jan 15, 2024\").\n const editFormatFn = showTime ? formatDatetimeForInput : formatDateForInput;\n const displayFormatFn = formatDate ?? (showTime ? formatDatetimeForInput : formatDateForDisplay);\n const parseFn = parseDate ?? (showTime ? parseDatetimeFromInput : parseDateFromInput);\n const {\n displayedValue,\n inputError,\n startEditing,\n stopEditing,\n commitAndStopEditing,\n setInputValue,\n setDateValue\n } = useDateEditState({\n value,\n displayFormatFn,\n editFormatFn,\n parseFn,\n min,\n max,\n onChange\n });\n\n // --- Input event handlers ---\n\n const handleFocus = useCallback(() => {\n if (skipReopenRef.current) {\n skipReopenRef.current = false;\n startEditing();\n return;\n }\n startEditing();\n setIsOpen(true);\n }, [startEditing]);\n const handleBlur = useCallback(e => {\n const relatedTarget = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(relatedTarget)) {\n // Focus moved into the popover portal (e.g. clicking a calendar day).\n // The field is still logically active, so suppress the blur from\n // bubbling — parent containers should not treat this as a field exit.\n e.stopPropagation();\n return;\n }\n commitAndStopEditing();\n }, [commitAndStopEditing]);\n\n // Shared close sequence: dismiss the popover, reset editing state, and\n // blur the input so focus doesn't linger after the calendar disappears.\n // Uses stopEditing (not commitAndStopEditing) to avoid double-firing\n // onChange when called from calendar-select or after Enter already committed.\n const closePopover = useCallback(() => {\n setIsOpen(false);\n stopEditing();\n inputRef.current?.blur();\n }, [stopEditing]);\n const handleKeyDown = useCallback(e => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commitAndStopEditing();\n setIsOpen(false);\n inputRef.current?.blur();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n closePopover();\n } else if (e.key === \"Tab\" && !e.shiftKey && isOpen) {\n // Move focus from the text input into the calendar popover.\n // The popover doesn't auto-focus on open (to keep the cursor in the input),\n // so Tab manually bridges focus to the first interactive calendar element.\n const firstFocusable = popoverRef.current?.querySelector(\"button, select\");\n if (firstFocusable != null) {\n e.preventDefault();\n firstFocusable.focus();\n }\n } else if (e.key === \"Tab\" && e.shiftKey) {\n setIsOpen(false);\n }\n }, [commitAndStopEditing, closePopover, isOpen]);\n\n // --- Popover handlers ---\n\n // Called by base-ui when the popover opens or closes (e.g. click outside, Escape).\n const handleOpenChange = useCallback(nextOpen => {\n if (nextOpen) {\n setIsOpen(true);\n } else {\n closePopover();\n }\n }, [closePopover]);\n\n // --- Calendar handlers ---\n\n const handleCalendarSelect = useCallback(selected => {\n if (selected == null) {\n onChange?.(null);\n setInputValue(\"\");\n return;\n }\n const date = new Date(selected.getTime());\n if (showTime && value != null) {\n date.setHours(value.getHours(), value.getMinutes());\n }\n onChange?.(date);\n setDateValue(date);\n if (shouldCloseOnSelection) {\n closePopover();\n }\n }, [onChange, showTime, value, shouldCloseOnSelection, setDateValue, setInputValue, closePopover]);\n const handleTimeChange = useCallback(timeString => {\n const {\n hours,\n minutes\n } = parseTimeString(timeString);\n const base = value != null ? new Date(value.getTime()) : new Date();\n base.setHours(hours, minutes, 0, 0);\n onChange?.(base);\n setDateValue(base);\n }, [value, onChange, setDateValue]);\n\n // --- Focus boundary handlers ---\n // Visually-hidden elements at the start/end of the popover that trap Tab\n // cycling between the text input and calendar. Without these, Tab would\n // escape the popover into the page behind it.\n\n const handleStartFocusBoundary = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n const handleEndFocusBoundary = useCallback(e => {\n const relatedTarget = e.relatedTarget ?? document.activeElement;\n if (popoverRef.current?.contains(relatedTarget)) {\n // Tab reached the end of the popover. Close the popover and\n // return focus to the input without reopening it, so the next\n // Tab advances to the next form field.\n skipReopenRef.current = true;\n setIsOpen(false);\n stopEditing();\n inputRef.current?.focus();\n } else {\n const buttons = popoverRef.current?.querySelectorAll(\"button, select\");\n const lastButton = buttons?.[buttons.length - 1];\n lastButton?.focus();\n }\n }, [stopEditing]);\n\n // --- Time picker (rendered as a popover sibling, not a DayPicker footer,\n // so the border-top can span the full popover width via negative margins) ---\n\n const timeFooter = showTime ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkDatetimeTimeFooter\n }, /*#__PURE__*/React.createElement(TimePicker, {\n value: getTimeValue(value),\n onChange: handleTimeChange\n })) : undefined;\n const wrapperClassName = classnames(commonStyles.osdkDatePickerInputWrapper, styles.osdkDatetimeInputWrapper, inputError != null && commonStyles.osdkDatePickerInputWrapperError);\n return /*#__PURE__*/React.createElement(Popover.Root, {\n open: isOpen,\n onOpenChange: handleOpenChange\n }, /*#__PURE__*/React.createElement(Popover.Trigger, {\n nativeButton: false,\n render: /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n tabIndex: -1\n })\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n id: id,\n className: commonStyles.osdkDatePickerInput,\n type: \"text\",\n value: displayedValue,\n onValueChange: setInputValue,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onClick: stopPropagation,\n onKeyDown: handleKeyDown,\n placeholder: placeholder,\n autoComplete: \"off\",\n role: \"combobox\",\n \"aria-expanded\": isOpen,\n \"aria-controls\": popoverId,\n \"aria-haspopup\": \"dialog\"\n })), /*#__PURE__*/React.createElement(Popover.Portal, {\n ref: portalRef\n }, /*#__PURE__*/React.createElement(Popover.Positioner, {\n sideOffset: 4\n }, /*#__PURE__*/React.createElement(Popover.Popup, {\n ref: popoverRef,\n className: commonStyles.osdkDatePickerPopover,\n id: popoverId,\n role: \"dialog\",\n \"aria-label\": \"date picker\"\n // Disable base-ui's automatic focus restoration to the trigger on close.\n // We manage focus ourselves via closePopover() which blurs the input.\n ,\n finalFocus: false\n }, /*#__PURE__*/React.createElement(\"div\", {\n onFocus: handleStartFocusBoundary,\n tabIndex: 0,\n \"aria-label\": \"Start of date picker dialog\",\n className: commonStyles.osdkDatePickerFocusBoundary\n }), /*#__PURE__*/React.createElement(LazyDateCalendar, {\n dateSelected: value ?? undefined,\n onSelect: handleCalendarSelect,\n min: min,\n max: max\n }), timeFooter, /*#__PURE__*/React.createElement(\"div\", {\n onFocus: handleEndFocusBoundary,\n tabIndex: 0,\n \"aria-label\": \"End of date picker dialog\",\n className: commonStyles.osdkDatePickerFocusBoundary\n })))));\n});","/*\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\n/* TODO: Extract each variable into its tokens file and map to default value there */\n\n.osdkSelectTrigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--osdk-select-spacing, var(--osdk-surface-spacing));\n width: 100%;\n min-height: var(--osdk-select-min-height, 30px);\n padding: var(\n --osdk-select-trigger-padding,\n calc(var(--osdk-surface-spacing) * 1.5)\n calc(var(--osdk-surface-spacing) * 2.5)\n );\n cursor: pointer;\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-select-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-select-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-select-trigger-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n color: var(\n --osdk-select-trigger-color,\n var(--osdk-typography-color-default-rest)\n );\n font-family: var(\n --osdk-select-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-select-font-size,\n var(--osdk-typography-size-body-medium)\n );\n line-height: var(\n --osdk-select-line-height,\n var(--osdk-typography-line-height-default)\n );\n transition:\n background-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default)),\n border-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:hover {\n background-color: var(\n --osdk-select-trigger-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n }\n\n &:active {\n background-color: var(\n --osdk-select-trigger-bg-active,\n var(--osdk-surface-background-color-default-active)\n );\n }\n\n &:focus-visible {\n outline: var(--osdk-select-focus-width, var(--osdk-emphasis-focus-width))\n solid var(--osdk-select-focus-color, var(--osdk-emphasis-focus-color));\n outline-offset: var(\n --osdk-select-focus-offset,\n var(--osdk-emphasis-focus-offset)\n );\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: var(--osdk-disabled-opacity, 0.5);\n }\n\n &[data-popup-open] {\n border-color: var(\n --osdk-select-border-color-active,\n var(--osdk-intent-primary-rest)\n );\n }\n}\n\n.osdkSelectValueContainer {\n flex: 1;\n display: grid;\n min-width: 0;\n\n & > * {\n grid-area: 1 / 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.osdkSelectValue {\n text-align: left;\n}\n\n.osdkSelectPlaceholder {\n text-align: left;\n color: var(\n --osdk-select-placeholder-color,\n var(--osdk-typography-color-muted)\n );\n pointer-events: none;\n}\n\n.osdkSelectValue:not([data-placeholder]) ~ .osdkSelectPlaceholder {\n display: none;\n}\n\n.osdkSelectIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n color: var(--osdk-select-icon-color, var(--osdk-iconography-color-muted));\n flex-shrink: 0;\n transition: transform\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n [data-popup-open] > & {\n transform: rotate(180deg);\n }\n}\n\n.osdkSelectClear {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n line-height: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n flex-shrink: 0;\n color: var(--osdk-select-clear-color, var(--osdk-iconography-color-muted));\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n transition:\n color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default)),\n background-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n &:hover {\n color: var(\n --osdk-select-clear-color-hover,\n var(--osdk-typography-color-default-rest)\n );\n background-color: var(\n --osdk-select-clear-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n }\n}\n\n.osdkSelectPositioner {\n z-index: var(--osdk-select-z-index, var(--osdk-surface-z-index-3));\n}\n\n.osdkSelectPopup {\n display: flex;\n flex-direction: column;\n min-width: var(--anchor-width);\n max-height: var(--available-height);\n overflow-y: auto;\n padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5);\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n border: var(--osdk-select-border-width, var(--osdk-surface-border-width))\n solid\n var(--osdk-select-border-color, var(--osdk-surface-border-color-default));\n background-color: var(\n --osdk-select-popup-bg,\n var(--osdk-surface-background-color-default-rest)\n );\n box-shadow: var(--osdk-select-popup-shadow, var(--osdk-surface-shadow-2));\n}\n\n.osdkSelectItem {\n display: flex;\n align-items: center;\n padding: calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 1.5)\n calc(var(--osdk-select-spacing, var(--osdk-surface-spacing)) * 2);\n border-radius: var(\n --osdk-select-border-radius,\n var(--osdk-surface-border-radius)\n );\n cursor: pointer;\n font-family: var(\n --osdk-select-font-family,\n var(--osdk-typography-family-default)\n );\n font-size: var(\n --osdk-select-font-size,\n var(--osdk-typography-size-body-medium)\n );\n line-height: var(\n --osdk-select-line-height,\n var(--osdk-typography-line-height-default)\n );\n color: var(\n --osdk-select-item-color,\n var(--osdk-typography-color-default-rest)\n );\n transition: background-color\n var(\n --osdk-select-transition-duration,\n var(--osdk-emphasis-transition-duration)\n )\n var(--osdk-select-transition-ease, var(--osdk-emphasis-ease-default));\n\n &[data-highlighted] {\n background-color: var(\n --osdk-select-item-bg-highlighted,\n var(--osdk-surface-background-color-default-hover)\n );\n outline: none;\n }\n\n &[data-selected] {\n background-color: var(\n --osdk-select-item-bg-selected,\n var(--osdk-surface-layer-primary)\n );\n color: var(\n --osdk-select-item-color-selected,\n var(--osdk-intent-primary-rest)\n );\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: var(--osdk-disabled-opacity, 0.5);\n }\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 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 { Select as BaseUISelect } from \"@base-ui/react/select\";\nimport { CaretDown } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React from \"react\";\nimport styles from \"./Select.module.css\";\nfunction SelectRoot({\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Root, rest, children);\n}\nfunction SelectTrigger({\n className,\n placeholder,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Trigger, _extends({\n className: classnames(styles.osdkSelectTrigger, className)\n }, rest), children ?? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.osdkSelectValueContainer\n }, /*#__PURE__*/React.createElement(BaseUISelect.Value, {\n className: styles.osdkSelectValue\n }), placeholder != null && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.osdkSelectPlaceholder\n }, placeholder)), /*#__PURE__*/React.createElement(BaseUISelect.Icon, {\n className: styles.osdkSelectIcon\n }, /*#__PURE__*/React.createElement(CaretDown, null))));\n}\nfunction SelectValue(props) {\n const {\n className,\n ...rest\n } = props;\n return /*#__PURE__*/React.createElement(BaseUISelect.Value, _extends({\n className: classnames(styles.osdkSelectValue, className)\n }, rest));\n}\nfunction SelectPositioner({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Positioner, _extends({\n className: classnames(styles.osdkSelectPositioner, className),\n sideOffset: 4\n /* Disable Base UI's default behavior of aligning the selected item in\n the popup with the trigger. This causes layout jumps when the popup\n opens because the list scrolls to center the selected item. A static\n dropdown position below the trigger is more predictable. */,\n alignItemWithTrigger: false\n }, rest), children);\n}\nfunction SelectPopup({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Popup, _extends({\n className: classnames(styles.osdkSelectPopup, className)\n }, rest), children);\n}\nfunction SelectItem({\n className,\n children,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(BaseUISelect.Item, _extends({\n className: classnames(styles.osdkSelectItem, className)\n }, rest), /*#__PURE__*/React.createElement(BaseUISelect.ItemText, null, children));\n}\nexport const Select = {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Portal: BaseUISelect.Portal,\n Positioner: SelectPositioner,\n Popup: SelectPopup,\n Item: SelectItem\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 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 { CaretDown, Cross, SmallCross, Tick } from \"@blueprintjs/icons\";\nimport React, { useCallback, useState } from \"react\";\nimport { Combobox } from \"../../base-components/combobox/Combobox.js\";\nimport comboboxStyles from \"../../base-components/combobox/Combobox.module.css\";\nimport { Select } from \"../../base-components/select/Select.js\";\nimport selectStyles from \"../../base-components/select/Select.module.css\";\nimport { typedReactMemo } from \"../../shared/typedMemo.js\";\nconst EMPTY_ARRAY = [];\n\n/**\n * SelectDropdown is only used for single-select (the multi-select path\n * always routes to ComboboxDropdown). We keep the `Multiple` generic so\n * the spread from DropdownField type-checks, but SelectDropdown never\n * reads `isMultiple`.\n */\n\nexport const DropdownField = typedReactMemo(function DropdownFieldFn({\n isSearchable = false,\n isMultiple,\n itemToStringLabel,\n itemToKey,\n value,\n query,\n onQueryChange,\n disableClientSideFiltering,\n popupStatus,\n trailingItem,\n ...rest\n}) {\n // Ensure always controlled from first render: multi-select needs [],\n // single-select needs null. Passing undefined switches Base UI from\n // uncontrolled to controlled and triggers a warning.\n const normalizedValue = value ?? (isMultiple ? EMPTY_ARRAY : null);\n const resolvedItemToStringLabel = itemToStringLabel ?? defaultItemToStringLabel;\n const getKey = useCallback(item => itemToKey?.(item) ?? resolvedItemToStringLabel(item), [itemToKey, resolvedItemToStringLabel]);\n\n // Multi-select always uses Combobox for the chip-based UI because it looks better\n if (isSearchable || isMultiple) {\n return /*#__PURE__*/React.createElement(ComboboxDropdown, _extends({}, rest, {\n isMultiple: isMultiple,\n value: normalizedValue,\n itemToStringLabel: resolvedItemToStringLabel,\n getKey: getKey,\n isSearchable: isSearchable,\n query: query,\n onQueryChange: onQueryChange,\n disableClientSideFiltering: disableClientSideFiltering,\n popupStatus: popupStatus,\n trailingItem: trailingItem\n }));\n }\n\n // TODO: Support trailingItem\n return /*#__PURE__*/React.createElement(SelectDropdown, _extends({}, rest, {\n value: normalizedValue,\n itemToStringLabel: resolvedItemToStringLabel,\n getKey: getKey\n }));\n});\nconst SelectDropdown = typedReactMemo(function SelectDropdownFn({\n id,\n value,\n onChange,\n items,\n itemToStringLabel,\n getKey,\n isItemEqual,\n placeholder,\n portalRef\n}) {\n const [open, setOpen] = useState(false);\n const hasValue = value != null;\n const handleClear = useCallback(() => {\n // SelectDropdown is always single-select, so cleared value is null.\n onChange?.(null);\n setOpen(false);\n }, [onChange]);\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Select.Root, {\n value: value,\n onValueChange: onChange,\n open: open,\n onOpenChange: setOpen,\n isItemEqualToValue: isItemEqual,\n itemToStringLabel: itemToStringLabel\n }, /*#__PURE__*/React.createElement(Select.Trigger, {\n id: id,\n placeholder: placeholder\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: selectStyles.osdkSelectValueContainer\n }, /*#__PURE__*/React.createElement(Select.Value, null), placeholder != null && /*#__PURE__*/React.createElement(\"span\", {\n className: selectStyles.osdkSelectPlaceholder\n }, placeholder)), hasValue && /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n \"aria-label\": \"Clear\",\n className: selectStyles.osdkSelectClear,\n onMouseDown: preventTriggerOpen,\n onClick: handleClear\n }, /*#__PURE__*/React.createElement(SmallCross, null)), /*#__PURE__*/React.createElement(\"span\", {\n className: selectStyles.osdkSelectIcon\n }, /*#__PURE__*/React.createElement(CaretDown, null))), /*#__PURE__*/React.createElement(Select.Portal, {\n ref: portalRef\n }, /*#__PURE__*/React.createElement(Select.Positioner, null, /*#__PURE__*/React.createElement(Select.Popup, null, items.map(item => /*#__PURE__*/React.createElement(Select.Item, {\n key: getKey(item),\n value: item\n }, itemToStringLabel(item))))))));\n});\nconst ComboboxDropdown = typedReactMemo(function ComboboxDropdownFn({\n id,\n value,\n onChange,\n items,\n itemToStringLabel,\n getKey,\n isItemEqual,\n isMultiple,\n isSearchable,\n placeholder,\n portalRef,\n query,\n onQueryChange,\n disableClientSideFiltering,\n popupStatus,\n trailingItem\n}) {\n const [open, setOpen] = useState(false);\n const hasValue = isMultiple ? Array.isArray(value) && value.length > 0 : value != null;\n const handleClear = useCallback(() => {\n // TypeScript can't narrow the conditional type `Multiple extends true ? V[] : V`\n // at runtime, so we cast through the known parameter type at this single call site.\n const cleared = isMultiple ? EMPTY_ARRAY : null;\n onChange?.(cleared);\n // Single-select: close after clearing. Multi-select: keep open for continued selection.\n if (!isMultiple) {\n setOpen(false);\n }\n }, [isMultiple, onChange]);\n const handleRemoveItem = useCallback(itemToRemove => {\n if (!isMultiple || !Array.isArray(value)) {\n return;\n }\n const next = value.filter(v => isItemEqual != null ? !isItemEqual(v, itemToRemove) : v !== itemToRemove);\n onChange?.(next);\n }, [isMultiple, value, onChange, isItemEqual]);\n const renderItem = useCallback(item => /*#__PURE__*/React.createElement(Combobox.Item, {\n key: getKey(item),\n value: item\n }, isMultiple && /*#__PURE__*/React.createElement(Combobox.ItemIndicator, null, /*#__PURE__*/React.createElement(Tick, null)), itemToStringLabel(item)), [getKey, isMultiple, itemToStringLabel]);\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Combobox.Root, {\n value: value,\n onValueChange: onChange,\n open: open,\n onOpenChange: setOpen,\n multiple: isMultiple,\n itemToStringLabel: itemToStringLabel,\n isItemEqualToValue: isItemEqual,\n items: items,\n inputValue: query,\n onInputValueChange: onQueryChange,\n filter: disableClientSideFiltering ? null : undefined\n }, /*#__PURE__*/React.createElement(Combobox.Trigger, {\n id: id,\n className: isMultiple ? comboboxStyles.osdkComboboxTriggerMulti : undefined\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: comboboxStyles.osdkComboboxValueContainer\n }, isMultiple && Array.isArray(value) && value.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: comboboxStyles.osdkComboboxTriggerChips\n }, value.map(item => /*#__PURE__*/React.createElement(\"span\", {\n key: getKey(item),\n className: comboboxStyles.osdkComboboxTriggerChip\n }, itemToStringLabel(item), /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n \"aria-label\": `Remove ${itemToStringLabel(item)}`,\n className: comboboxStyles.osdkComboboxTriggerChipRemove,\n onMouseDown: preventTriggerOpen,\n onClick: () => handleRemoveItem(item)\n }, /*#__PURE__*/React.createElement(Cross, {\n size: 12\n }))))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Combobox.Value, null), !hasValue && placeholder != null && /*#__PURE__*/React.createElement(\"span\", {\n className: comboboxStyles.osdkComboboxPlaceholder\n }, placeholder))), hasValue && /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n \"aria-label\": \"Clear\",\n className: comboboxStyles.osdkComboboxClear,\n onMouseDown: preventTriggerOpen,\n onClick: handleClear\n }, /*#__PURE__*/React.createElement(SmallCross, null)), /*#__PURE__*/React.createElement(Combobox.Icon, null, /*#__PURE__*/React.createElement(CaretDown, null))), /*#__PURE__*/React.createElement(Combobox.Portal, {\n ref: portalRef\n }, /*#__PURE__*/React.createElement(Combobox.Positioner, null, /*#__PURE__*/React.createElement(Combobox.Popup, null, isSearchable && /*#__PURE__*/React.createElement(\"div\", {\n className: comboboxStyles.osdkComboboxPopupSearchInput\n }, /*#__PURE__*/React.createElement(Combobox.SearchInput, {\n placeholder: \"Search\\u2026\"\n })), popupStatus, popupStatus == null && /*#__PURE__*/React.createElement(Combobox.Empty, null, \"No results\"), /*#__PURE__*/React.createElement(Combobox.List, null, items.map(renderItem), trailingItem))))));\n});\n\n// Prevent the clear/remove click from bubbling into the trigger\n// and toggling the dropdown open/closed.\nfunction preventTriggerOpen(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nfunction defaultItemToStringLabel(item) {\n if (item == null || typeof item !== \"object\") {\n return String(item);\n }\n if (\"label\" in item && item.label != null && typeof item.label === \"string\") {\n return item.label;\n }\n return String(item);\n}"]}
|