@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.
Files changed (102) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +23 -0
  3. package/build/browser/action-form/FormFieldApi.js +8 -0
  4. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  5. package/build/browser/action-form/fields/AsyncDropdownField.js +81 -0
  6. package/build/browser/action-form/fields/AsyncDropdownField.js.map +1 -0
  7. package/build/browser/action-form/fields/AsyncDropdownField.module.css +31 -0
  8. package/build/browser/action-form/fields/AsyncDropdownField.module.css.js +8 -0
  9. package/build/browser/action-form/fields/DropdownField.js +29 -14
  10. package/build/browser/action-form/fields/DropdownField.js.map +1 -1
  11. package/build/browser/action-form/fields/FormFieldRenderer.js +17 -0
  12. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  13. package/build/browser/action-form/fields/ObjectSelectField.js +109 -0
  14. package/build/browser/action-form/fields/ObjectSelectField.js.map +1 -0
  15. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +14 -5
  16. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  17. package/build/browser/base-components/combobox/Combobox.module.css +23 -2
  18. package/build/browser/base-components/combobox/Combobox.module.css.js +3 -3
  19. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  20. package/build/browser/shared/hooks/useDebouncedValue.js +35 -0
  21. package/build/browser/shared/hooks/useDebouncedValue.js.map +1 -0
  22. package/build/browser/shared/hooks/useEventCallback.js +44 -0
  23. package/build/browser/shared/hooks/useEventCallback.js.map +1 -0
  24. package/build/browser/shared/hooks/useInfiniteScroll.js +81 -0
  25. package/build/browser/shared/hooks/useInfiniteScroll.js.map +1 -0
  26. package/build/browser/styles.css +73 -2
  27. package/build/browser/tokens/component-tokens/async-dropdown.css +16 -0
  28. package/build/browser/tokens.css +1 -0
  29. package/build/browser/util/UserAgent.js +1 -1
  30. package/build/browser/util/UserAgent.js.map +1 -1
  31. package/build/cjs/{chunk-EEES66LS.cjs → chunk-5DVHLBWS.cjs} +3 -3
  32. package/build/cjs/chunk-5DVHLBWS.cjs.map +1 -0
  33. package/build/cjs/{chunk-OXP3XQE4.cjs → chunk-ALZS624H.cjs} +47 -47
  34. package/build/cjs/{chunk-OXP3XQE4.cjs.map → chunk-ALZS624H.cjs.map} +1 -1
  35. package/build/cjs/{chunk-UEY63J2G.cjs → chunk-FURJRQWI.cjs} +9 -9
  36. package/build/cjs/{chunk-UEY63J2G.cjs.map → chunk-FURJRQWI.cjs.map} +1 -1
  37. package/build/cjs/{chunk-RY2GVYT2.cjs → chunk-MVNWOKH2.cjs} +49 -36
  38. package/build/cjs/chunk-MVNWOKH2.cjs.map +1 -0
  39. package/build/cjs/{chunk-O5ZAMFDU.cjs → chunk-QWFJF7IM.cjs} +468 -207
  40. package/build/cjs/chunk-QWFJF7IM.cjs.map +1 -0
  41. package/build/cjs/{chunk-2FPKTOPE.cjs → chunk-XBXC6VAS.cjs} +2 -2
  42. package/build/cjs/{chunk-2FPKTOPE.cjs.map → chunk-XBXC6VAS.cjs.map} +1 -1
  43. package/build/cjs/{chunk-SHTQGKS5.cjs → chunk-Z3CXMFCZ.cjs} +4 -4
  44. package/build/cjs/{chunk-SHTQGKS5.cjs.map → chunk-Z3CXMFCZ.cjs.map} +1 -1
  45. package/build/cjs/public/experimental/action-form.cjs +6 -6
  46. package/build/cjs/public/experimental/action-form.css +24 -1
  47. package/build/cjs/public/experimental/action-form.css.map +1 -1
  48. package/build/cjs/public/experimental/action-form.d.cts +48 -3
  49. package/build/cjs/public/experimental/filter-list.cjs +7 -7
  50. package/build/cjs/public/experimental/filter-list.css +9 -1
  51. package/build/cjs/public/experimental/filter-list.css.map +1 -1
  52. package/build/cjs/public/experimental/object-table.cjs +10 -10
  53. package/build/cjs/public/experimental/object-table.css +9 -1
  54. package/build/cjs/public/experimental/object-table.css.map +1 -1
  55. package/build/cjs/public/experimental/pdf-viewer.cjs +24 -24
  56. package/build/cjs/public/experimental.cjs +41 -41
  57. package/build/cjs/public/experimental.css +24 -1
  58. package/build/cjs/public/experimental.css.map +1 -1
  59. package/build/esm/action-form/FormFieldApi.js +8 -0
  60. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  61. package/build/esm/action-form/fields/AsyncDropdownField.js +81 -0
  62. package/build/esm/action-form/fields/AsyncDropdownField.js.map +1 -0
  63. package/build/esm/action-form/fields/AsyncDropdownField.module.css +31 -0
  64. package/build/esm/action-form/fields/DropdownField.js +29 -14
  65. package/build/esm/action-form/fields/DropdownField.js.map +1 -1
  66. package/build/esm/action-form/fields/FormFieldRenderer.js +17 -0
  67. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  68. package/build/esm/action-form/fields/ObjectSelectField.js +109 -0
  69. package/build/esm/action-form/fields/ObjectSelectField.js.map +1 -0
  70. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +14 -5
  71. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  72. package/build/esm/base-components/combobox/Combobox.module.css +23 -2
  73. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  74. package/build/esm/shared/hooks/useDebouncedValue.js +35 -0
  75. package/build/esm/shared/hooks/useDebouncedValue.js.map +1 -0
  76. package/build/esm/shared/hooks/useEventCallback.js +44 -0
  77. package/build/esm/shared/hooks/useEventCallback.js.map +1 -0
  78. package/build/esm/shared/hooks/useInfiniteScroll.js +81 -0
  79. package/build/esm/shared/hooks/useInfiniteScroll.js.map +1 -0
  80. package/build/esm/tokens/component-tokens/async-dropdown.css +16 -0
  81. package/build/esm/tokens.css +1 -0
  82. package/build/esm/util/UserAgent.js +1 -1
  83. package/build/esm/util/UserAgent.js.map +1 -1
  84. package/build/types/action-form/FormFieldApi.d.ts +48 -3
  85. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  86. package/build/types/action-form/fields/AsyncDropdownField.d.ts +25 -0
  87. package/build/types/action-form/fields/AsyncDropdownField.d.ts.map +1 -0
  88. package/build/types/action-form/fields/DropdownField.d.ts +2 -2
  89. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -1
  90. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  91. package/build/types/action-form/fields/ObjectSelectField.d.ts +3 -0
  92. package/build/types/action-form/fields/ObjectSelectField.d.ts.map +1 -0
  93. package/build/types/shared/hooks/useDebouncedValue.d.ts +5 -0
  94. package/build/types/shared/hooks/useDebouncedValue.d.ts.map +1 -0
  95. package/build/types/shared/hooks/useEventCallback.d.ts +13 -0
  96. package/build/types/shared/hooks/useEventCallback.d.ts.map +1 -0
  97. package/build/types/shared/hooks/useInfiniteScroll.d.ts +19 -0
  98. package/build/types/shared/hooks/useInfiniteScroll.d.ts.map +1 -0
  99. package/package.json +9 -9
  100. package/build/cjs/chunk-EEES66LS.cjs.map +0 -1
  101. package/build/cjs/chunk-O5ZAMFDU.cjs.map +0 -1
  102. 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 chunk2FPKTOPE_cjs = require('./chunk-2FPKTOPE.cjs');
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 (!chunk2FPKTOPE_cjs.isDateInRange(dateValue, min, max)) return "out-of-range";
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 ? chunk2FPKTOPE_cjs.formatDatetimeForInput : chunk2FPKTOPE_cjs.formatDateForInput;
155
- const displayFormatFn = formatDate ?? (showTime ? chunk2FPKTOPE_cjs.formatDatetimeForInput : chunk2FPKTOPE_cjs.formatDateForDisplay);
156
- const parseFn = parseDate ?? (showTime ? chunk2FPKTOPE_cjs.parseDatetimeFromInput : chunk2FPKTOPE_cjs.parseDateFromInput);
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
- } = chunk2FPKTOPE_cjs.parseTimeString(timeString);
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: chunk2FPKTOPE_cjs.getTimeValue(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
- function DropdownField({
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.Cross, null)), /* @__PURE__ */ React6__default.default.createElement("span", {
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(chunk2FPKTOPE_cjs.Combobox.Item, {
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(chunk2FPKTOPE_cjs.Combobox.ItemIndicator, null, /* @__PURE__ */ React6__default.default.createElement(icons.Tick, null)), itemToStringLabel(item)), [getKey, itemToStringLabel]);
531
- return /* @__PURE__ */ React6__default.default.createElement("div", null, /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.Root, {
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
- autoHighlight: isSearchable
541
- }, /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.Trigger, {
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 ? chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxTriggerMulti : void 0
556
+ className: isMultiple ? chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxTriggerMulti : void 0
544
557
  }, /* @__PURE__ */ React6__default.default.createElement("div", {
545
- className: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxValueContainer
558
+ className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxValueContainer
546
559
  }, isMultiple && Array.isArray(value) && value.length > 0 ? /* @__PURE__ */ React6__default.default.createElement("div", {
547
- className: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxTriggerChips
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: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxTriggerChip
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: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxTriggerChipRemove,
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(chunk2FPKTOPE_cjs.Combobox.Value, null), !hasValue && placeholder != null && /* @__PURE__ */ React6__default.default.createElement("span", {
560
- className: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxPlaceholder
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: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxClear,
577
+ className: chunkXBXC6VAS_cjs.Combobox_default.osdkComboboxClear,
565
578
  onMouseDown: preventTriggerOpen,
566
579
  onClick: handleClear
567
- }, /* @__PURE__ */ React6__default.default.createElement(icons.Cross, null)), /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.Icon, null, /* @__PURE__ */ React6__default.default.createElement(icons.CaretDown, null))), /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.Portal, {
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(chunk2FPKTOPE_cjs.Combobox.Positioner, null, /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.Popup, null, isSearchable && /* @__PURE__ */ React6__default.default.createElement("div", {
570
- className: chunk2FPKTOPE_cjs.Combobox_default.osdkComboboxPopupSearchInput
571
- }, /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.SearchInput, {
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(chunk2FPKTOPE_cjs.Combobox.Empty, null, "No results"), /* @__PURE__ */ React6__default.default.createElement(chunk2FPKTOPE_cjs.Combobox.List, null, isMultiple ? renderItemWithIndicator : renderItem))))));
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-RY2GVYT2.cjs.map
596
- //# sourceMappingURL=chunk-RY2GVYT2.cjs.map
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}"]}