@bigbinary/neeto-atoms 1.0.60 → 1.0.61

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 (77) hide show
  1. package/dist/{DataTable-BTdSpJfs.js → DataTable-DP06B8C7.js} +140 -124
  2. package/dist/{DataTable-BTdSpJfs.js.map → DataTable-DP06B8C7.js.map} +1 -1
  3. package/dist/{DatePicker-kulToqfM.js → DatePicker-mdjh5u40.js} +422 -157
  4. package/dist/DatePicker-mdjh5u40.js.map +1 -0
  5. package/dist/{Input-Bxs8n6xp.js → Input-B7twzkUr.js} +5 -3
  6. package/dist/Input-B7twzkUr.js.map +1 -0
  7. package/dist/{Pagination-C_X9kgc8.js → Pagination-BRd3WPJ_.js} +15 -4
  8. package/dist/Pagination-BRd3WPJ_.js.map +1 -0
  9. package/dist/{Select-BiyQTuiQ.js → Select-Zr8sFnAC.js} +46 -14
  10. package/dist/Select-Zr8sFnAC.js.map +1 -0
  11. package/dist/cjs/{DataTable-CCIIXb4B.js → DataTable-CXjAvPHV.js} +140 -124
  12. package/dist/cjs/{DataTable-CCIIXb4B.js.map → DataTable-CXjAvPHV.js.map} +1 -1
  13. package/dist/cjs/{DatePicker-BZd4rM2R.js → DatePicker-DpyYPJfR.js} +420 -155
  14. package/dist/cjs/DatePicker-DpyYPJfR.js.map +1 -0
  15. package/dist/cjs/{Input-BQh-GS_w.js → Input-Dwl5OhCq.js} +5 -3
  16. package/dist/cjs/Input-Dwl5OhCq.js.map +1 -0
  17. package/dist/cjs/{Pagination-DeWfLAq5.js → Pagination-8yFg8xR2.js} +15 -4
  18. package/dist/cjs/Pagination-8yFg8xR2.js.map +1 -0
  19. package/dist/cjs/{Select-DC23xcMU.js → Select-BJs-J8fs.js} +45 -13
  20. package/dist/cjs/Select-BJs-J8fs.js.map +1 -0
  21. package/dist/cjs/components/DataTable.js +1 -1
  22. package/dist/cjs/components/DatePicker.js +9 -9
  23. package/dist/cjs/components/Input.js +1 -1
  24. package/dist/cjs/components/Pagination.js +2 -1
  25. package/dist/cjs/components/Pagination.js.map +1 -1
  26. package/dist/cjs/components/Select.js +2 -2
  27. package/dist/cjs/components/index.js +5 -5
  28. package/dist/cjs/formik/ActionBlock.js +10 -4
  29. package/dist/cjs/formik/ActionBlock.js.map +1 -1
  30. package/dist/cjs/formik/Input.js +1 -1
  31. package/dist/cjs/formik/Select.js +2 -2
  32. package/dist/cjs/formik/index.js +3 -3
  33. package/dist/cjs/index.js +5 -5
  34. package/dist/cjs/primitives/Combobox.js +14 -2
  35. package/dist/cjs/primitives/Combobox.js.map +1 -1
  36. package/dist/components/DataTable/DataTable.d.ts +1 -1
  37. package/dist/components/DataTable/types.d.ts +1 -0
  38. package/dist/components/DataTable.js +1 -1
  39. package/dist/components/DatePicker/DatePickerField.d.ts +15 -0
  40. package/dist/components/DatePicker/DatePickerTrigger.d.ts +25 -0
  41. package/dist/components/DatePicker/RangeCalendar.d.ts +17 -0
  42. package/dist/components/DatePicker/types.d.ts +3 -3
  43. package/dist/components/DatePicker/useRangePicker.d.ts +28 -0
  44. package/dist/components/DatePicker/utils.d.ts +15 -0
  45. package/dist/components/DatePicker.js +9 -9
  46. package/dist/components/Input.js +1 -1
  47. package/dist/components/Pagination/Pagination.d.ts +5 -1
  48. package/dist/components/Pagination/hooks/usePaginationQueryParams.d.ts +11 -0
  49. package/dist/components/Pagination.js +2 -1
  50. package/dist/components/Pagination.js.map +1 -1
  51. package/dist/components/Select/MultiSelectCombobox.types.d.ts +1 -0
  52. package/dist/components/Select/MultiSelectDropdown.d.ts +2 -2
  53. package/dist/components/Select/OptionItem.d.ts +3 -2
  54. package/dist/components/Select/SelectCombobox.types.d.ts +2 -0
  55. package/dist/components/Select/hooks/useMultiSelectState.d.ts +3 -1
  56. package/dist/components/Select/hooks/useSelectState.d.ts +3 -1
  57. package/dist/components/Select/types.d.ts +7 -0
  58. package/dist/components/Select.js +2 -2
  59. package/dist/components/index.js +5 -5
  60. package/dist/formik/ActionBlock.js +10 -4
  61. package/dist/formik/ActionBlock.js.map +1 -1
  62. package/dist/formik/Input.js +1 -1
  63. package/dist/formik/Select.js +2 -2
  64. package/dist/formik/index.js +3 -3
  65. package/dist/index.js +5 -5
  66. package/dist/primitives/Combobox.d.ts +1 -1
  67. package/dist/primitives/Combobox.js +14 -2
  68. package/dist/primitives/Combobox.js.map +1 -1
  69. package/package.json +1 -1
  70. package/dist/DatePicker-kulToqfM.js.map +0 -1
  71. package/dist/Input-Bxs8n6xp.js.map +0 -1
  72. package/dist/Pagination-C_X9kgc8.js.map +0 -1
  73. package/dist/Select-BiyQTuiQ.js.map +0 -1
  74. package/dist/cjs/DatePicker-BZd4rM2R.js.map +0 -1
  75. package/dist/cjs/Input-BQh-GS_w.js.map +0 -1
  76. package/dist/cjs/Pagination-DeWfLAq5.js.map +0 -1
  77. package/dist/cjs/Select-DC23xcMU.js.map +0 -1
@@ -1,2 +1,2 @@
1
1
  import type { DataTableProps } from "./types";
2
- export declare const DataTable: <TData>({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, onSort: onSortProp, enableSorting, enableURLSort, totalCount, pageSize, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize, enableColumnFreeze, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading, bordered, className, emptyMessage, onRowClick, allowRowClick, }: DataTableProps<TData>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const DataTable: <TData>({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, onSort: onSortProp, enableSorting, enableURLSort, totalCount, pageSize, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize, enableColumnFreeze, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading, bordered, className, emptyMessage, onRowClick, allowRowClick, renderBody, }: DataTableProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -62,4 +62,5 @@ export interface DataTableProps<TData> {
62
62
  emptyMessage?: string | React.ReactNode;
63
63
  onRowClick?: (event: React.MouseEvent, row: TData, index: number) => void;
64
64
  allowRowClick?: boolean;
65
+ renderBody?: () => React.ReactNode;
65
66
  }
@@ -1,4 +1,4 @@
1
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-BTdSpJfs.js';
1
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-DP06B8C7.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../primitives/Table.js';
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ interface DatePickerFieldProps {
3
+ disabled: boolean;
4
+ error: React.ReactNode | undefined;
5
+ className?: string;
6
+ label?: React.ReactNode;
7
+ required?: boolean;
8
+ helpText?: React.ReactNode;
9
+ labelProps?: Record<string, unknown>;
10
+ errorId: string;
11
+ helpTextId: string;
12
+ children: React.ReactNode;
13
+ }
14
+ export declare const DatePickerField: React.ForwardRefExoticComponent<DatePickerFieldProps & React.RefAttributes<HTMLDivElement>>;
15
+ export {};
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ interface DatePickerTriggerProps {
3
+ containerRef: React.RefObject<HTMLDivElement | null>;
4
+ inputRef: React.RefObject<HTMLInputElement | null>;
5
+ disabled: boolean;
6
+ error: React.ReactNode | undefined;
7
+ hasField: boolean;
8
+ className?: string;
9
+ triggerSizeClass: string;
10
+ inputSizeClass: string;
11
+ iconSizeClass: string;
12
+ label?: React.ReactNode;
13
+ ariaDescribedBy?: string;
14
+ placeholder: string;
15
+ inputText: string;
16
+ allowClear: boolean;
17
+ timezone?: string;
18
+ onInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
19
+ onInputKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
20
+ onInputFocus: () => void;
21
+ onInputBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
22
+ onClear: (e: React.MouseEvent) => void;
23
+ }
24
+ export declare const DatePickerTrigger: React.ForwardRefExoticComponent<DatePickerTriggerProps & React.RefAttributes<HTMLDivElement>>;
25
+ export {};
@@ -0,0 +1,17 @@
1
+ import type React from "react";
2
+ import type { DateRange } from "react-day-picker";
3
+ interface RangeCalendarProps {
4
+ todayDate: Date;
5
+ weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
6
+ month: Date;
7
+ onMonthChange: (date: Date) => void;
8
+ selected: DateRange | undefined;
9
+ onSelect: (range: DateRange | undefined, triggerDate: Date) => void;
10
+ disabled: (date: Date) => boolean;
11
+ fromDate?: Date;
12
+ toDate?: Date;
13
+ onHoverIn: (e: React.MouseEvent<HTMLElement>) => void;
14
+ onHoverOut: () => void;
15
+ }
16
+ export declare const RangeCalendar: ({ todayDate, weekStartsOn, month, onMonthChange, selected, onSelect, disabled, fromDate, toDate, onHoverIn, onHoverOut, }: RangeCalendarProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -12,7 +12,7 @@ export interface DatePickerProps {
12
12
  /** Default value (uncontrolled). */
13
13
  defaultValue?: DateValue | [DateValue | null, DateValue | null];
14
14
  /** Callback on date change. Returns Dayjs objects for neeto ecosystem compatibility. */
15
- onChange?: (value: Dayjs | [Dayjs, Dayjs] | null, formatted: string | [string, string]) => void;
15
+ onChange?: (value: Dayjs | [Dayjs | null, Dayjs | null] | null, formatted: string | [string, string]) => void;
16
16
  /** Callback when the trigger input loses focus. */
17
17
  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
18
18
  /** Single date or range selection. */
@@ -28,9 +28,9 @@ export interface DatePickerProps {
28
28
  /** Show seconds in time picker. */
29
29
  showSeconds?: boolean;
30
30
  /** Minimum selectable date. */
31
- minDate?: Date;
31
+ minDate?: DateValue;
32
32
  /** Maximum selectable date. */
33
- maxDate?: Date;
33
+ maxDate?: DateValue;
34
34
  /** Predicate to disable arbitrary dates beyond minDate/maxDate. */
35
35
  disabledDate?: (date: Date) => boolean;
36
36
  /** Placeholder text for the trigger input. */
@@ -0,0 +1,28 @@
1
+ import type { DateRange } from "react-day-picker";
2
+ type RangeTuple = [Date | null, Date | null];
3
+ interface UseRangePickerOptions {
4
+ currentValue: unknown;
5
+ showTime: boolean;
6
+ needConfirm: boolean;
7
+ commitValue: (value: Date | [Date, Date] | null) => void;
8
+ setPendingDate: (date: Date | null) => void;
9
+ setOpen: (open: boolean) => void;
10
+ }
11
+ export declare const useRangePicker: ({ currentValue, showTime, needConfirm, commitValue, setPendingDate, setOpen, }: UseRangePickerOptions) => {
12
+ pendingRange: RangeTuple | null;
13
+ rangeSelectionStep: "from" | "to";
14
+ hoveredDate: Date | null;
15
+ handleRangeSelect: (_range: {
16
+ from?: Date;
17
+ to?: Date;
18
+ } | undefined, triggerDate: Date) => void;
19
+ handleHoverIn: (e: React.MouseEvent<HTMLElement>) => void;
20
+ handleHoverOut: () => void;
21
+ memoizedRangeSelected: DateRange | undefined;
22
+ getPreviewParts: () => {
23
+ from: Date | null;
24
+ to: Date | null;
25
+ };
26
+ resetTransientState: () => void;
27
+ };
28
+ export {};
@@ -6,7 +6,9 @@ import type { TimeValue } from "../TimePicker/types";
6
6
  * Calendar and input display the correct date after a controlled round-trip.
7
7
  */
8
8
  export declare const toBrowserLocalDate: (date: Date) => Date;
9
+ export declare const toNativeDate: (value: unknown) => Date | null;
9
10
  export declare const coerceDateValue: (value: unknown, type: "date" | "range") => Date | [Date | null, Date | null] | null;
11
+ export declare const getInitialCalendarMonth: (value: unknown, defaultValue: unknown, type: "date" | "range") => Date;
10
12
  /**
11
13
  * Format a date for display using browser-local time.
12
14
  * Calendar and input always show browser-local dates.
@@ -25,6 +27,7 @@ export declare const applyTimeToDate: (date: Date, time: TimeValue) => Date;
25
27
  * Matches neetoUI's getTimezoneAppliedDateTime behavior.
26
28
  */
27
29
  export declare const applyTimezone: (date: Date) => Date;
30
+ export declare const toUserTzDayjs: (date: Date) => Dayjs;
28
31
  export declare const toDayjs: (date: Date) => Dayjs;
29
32
  export declare const getDisplayFormat: (dateFormat: string, timeFormat: string, showTime: boolean) => string;
30
33
  export declare const getDatePlaceholder: (dateFormat: string, timeFormat: string, showTime: boolean, type: "date" | "range") => string;
@@ -36,4 +39,16 @@ export declare const isMonthDisabled: (monthDate: Date, minDate?: Date, maxDate?
36
39
  export declare const isYearDisabled: (yearDate: Date, minDate?: Date, maxDate?: Date) => boolean;
37
40
  export declare const buildMonth: (year: number, month: number) => Date;
38
41
  export declare const isSameMonth: (a: Date | null, b: Date) => boolean;
42
+ export declare const isSameDay: (a: Date | null, b: Date | null) => boolean;
43
+ export declare const orderRange: (from: Date | null, to: Date | null) => [Date | null, Date | null];
44
+ export declare const parseGridcellDay: (target: EventTarget | null) => Date | null;
45
+ export declare const computeRangePreview: ({ pendingRange, committed, hoveredDate, rangeStep, }: {
46
+ pendingRange: [Date | null, Date | null] | null;
47
+ committed: [Date | null, Date | null] | null;
48
+ hoveredDate: Date | null;
49
+ rangeStep: "from" | "to";
50
+ }) => {
51
+ from: Date | null;
52
+ to: Date | null;
53
+ };
39
54
  export declare const decadeStartFor: (year: number) => number;
@@ -1,4 +1,4 @@
1
- export { D as DatePicker } from '../DatePicker-kulToqfM.js';
1
+ export { D as DatePicker } from '../DatePicker-mdjh5u40.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../primitives/Calendar.js';
@@ -27,6 +27,14 @@ import '../index-BYZaLNq1.js';
27
27
  import '../index-fV_U4ZJM.js';
28
28
  import '../index-yFgkK_AM.js';
29
29
  import '../index-Cor698lu.js';
30
+ import '../TimePickerPanel--KDX5QwS.js';
31
+ import '../primitives/Button.js';
32
+ import '../primitives/ScrollArea.js';
33
+ import '../index-d0BBQf5t.js';
34
+ import '../index-BfAAoDv6.js';
35
+ import 'dayjs';
36
+ import 'dayjs/plugin/customParseFormat';
37
+ import '@bigbinary/neeto-commons-frontend/utils';
30
38
  import '../primitives/Field.js';
31
39
  import '../HelpIcon-Cm3ZgoCx.js';
32
40
  import '../primitives/Tooltip.js';
@@ -38,18 +46,10 @@ import '../primitives/HoverCard.js';
38
46
  import '../Typography-CmILccNh.js';
39
47
  import '../Button-DV9xCqlc.js';
40
48
  import 'react-router-dom';
41
- import '../primitives/Button.js';
42
49
  import '../primitives/Spinner.js';
43
50
  import 'react-i18next';
44
51
  import '../loader-circle-DycHUAWN.js';
45
52
  import '../label-BgLSVt4u.js';
46
53
  import '../separator-ByRsc-y-.js';
47
- import '../TimePickerPanel--KDX5QwS.js';
48
- import '../primitives/ScrollArea.js';
49
- import '../index-d0BBQf5t.js';
50
- import '../index-BfAAoDv6.js';
51
- import 'dayjs';
52
- import 'dayjs/plugin/customParseFormat';
53
- import '@bigbinary/neeto-commons-frontend/utils';
54
54
  import '../x-_o2T3n6D.js';
55
55
  //# sourceMappingURL=DatePicker.js.map
@@ -1,4 +1,4 @@
1
- export { I as Input } from '../Input-Bxs8n6xp.js';
1
+ export { I as Input } from '../Input-B7twzkUr.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../utils-BJnb9o5c.js';
@@ -9,7 +9,11 @@ export interface PaginationProps extends Omit<React.ComponentProps<typeof Primit
9
9
  pageSize: number;
10
10
  /** Number of sibling pages to show around the current page. */
11
11
  siblingCount?: number;
12
- /** Callback when a page is selected. */
12
+ /**
13
+ * Callback when a page is selected. When omitted, Pagination falls back
14
+ * to updating `?page=` in the URL via react-router history (matches v1
15
+ * neeto-ui behavior).
16
+ */
13
17
  navigate?: (page: number) => void;
14
18
  /** Additional CSS class names. */
15
19
  className?: string;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns a navigate callback that updates the `?page=` query param while
3
+ * preserving every other search param. Used as the default `navigate`
4
+ * for Pagination when the consumer doesn't pass one explicitly.
5
+ *
6
+ * Mirrors v1 neeto-ui Pagination's auto URL sync behavior. Must be
7
+ * rendered inside a react-router-dom v5 history context.
8
+ */
9
+ export declare const usePaginationQueryParams: () => {
10
+ updatePageInQueryParam: (page: number) => void;
11
+ };
@@ -1,4 +1,4 @@
1
- export { P as Pagination } from '../Pagination-C_X9kgc8.js';
1
+ export { P as Pagination } from '../Pagination-BRd3WPJ_.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../utils-BJnb9o5c.js';
@@ -12,4 +12,5 @@ import '../chevron-left-BDoT8E2-.js';
12
12
  import '../createLucideIcon-C8ycilSN.js';
13
13
  import '../ellipsis-lb8Ws6br.js';
14
14
  import '../chevron-right-DQnrO-ek.js';
15
+ import 'react-router-dom';
15
16
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Pagination.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -10,6 +10,7 @@ export interface MultiSelectComboboxProps {
10
10
  items: string[];
11
11
  }[];
12
12
  labelForValue: (val: string) => string;
13
+ renderOption: (val: string) => React.ReactNode;
13
14
  isSearchable: boolean;
14
15
  isAsync: boolean;
15
16
  isCreatable: boolean;
@@ -1,9 +1,9 @@
1
1
  import type React from "react";
2
2
  import type { DropdownPassthroughProps } from "./MultiSelectCombobox.types";
3
3
  interface MultiSelectDropdownProps extends DropdownPassthroughProps {
4
- labelForValue: (val: string) => string;
4
+ renderOption: (val: string) => React.ReactNode;
5
5
  testIdPrefix?: string;
6
6
  children?: React.ReactNode;
7
7
  }
8
- export declare function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, labelForValue, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }: MultiSelectDropdownProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, renderOption, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }: MultiSelectDropdownProps): import("react/jsx-runtime").JSX.Element;
9
9
  export {};
@@ -1,9 +1,10 @@
1
+ import type React from "react";
1
2
  import type { OptionBase } from "./types";
2
3
  interface OptionItemProps {
3
4
  val: string;
4
5
  flatOptionsMap: Map<string, OptionBase>;
5
- labelForValue: (val: string) => string;
6
+ renderOption: (val: string) => React.ReactNode;
6
7
  testIdPrefix?: string;
7
8
  }
8
- export declare function OptionItem({ val, flatOptionsMap, labelForValue, testIdPrefix, }: OptionItemProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function OptionItem({ val, flatOptionsMap, renderOption, testIdPrefix, }: OptionItemProps): import("react/jsx-runtime").JSX.Element;
9
10
  export {};
@@ -14,6 +14,8 @@ export interface SelectComboboxProps {
14
14
  }[];
15
15
  /** Returns the display label for a given value string. */
16
16
  labelForValue: (val: string) => string;
17
+ /** Returns the ReactNode for rendering a value (dropdown row & trigger). */
18
+ renderOption: (val: string) => React.ReactNode;
17
19
  /** Whether the search input is visible. */
18
20
  isSearchable: boolean;
19
21
  /** Whether options are loaded asynchronously. */
@@ -1,3 +1,4 @@
1
+ import type React from "react";
1
2
  import type { MultiSelectProps } from "src/components/Select/types";
2
3
  export declare function useMultiSelectState(props: MultiSelectProps): {
3
4
  id: string;
@@ -22,10 +23,11 @@ export declare function useMultiSelectState(props: MultiSelectProps): {
22
23
  ariaDescribedBy: string | undefined;
23
24
  testIdPrefix: string | undefined;
24
25
  labelForValue: (val: string) => string;
26
+ renderOption: (val: string) => React.ReactNode;
25
27
  flatOptionsMap: Map<string, import("src/components/Select/types").OptionBase>;
26
28
  label: string;
27
29
  error: string;
28
- helpText: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null;
30
+ helpText: string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null;
29
31
  isAsync: boolean;
30
32
  resolvedOptions: import("src/components/Select/types").Option[];
31
33
  flatOptions: import("src/components/Select/types").OptionBase[];
@@ -1,3 +1,4 @@
1
+ import type React from "react";
1
2
  import type { SelectProps } from "src/components/Select/types";
2
3
  type SingleSelectProps = Extract<SelectProps, {
3
4
  isMulti?: false;
@@ -27,10 +28,11 @@ export declare function useSelectState(props: SingleSelectProps): {
27
28
  ariaDescribedBy: string | undefined;
28
29
  testIdPrefix: string | undefined;
29
30
  labelForValue: (val: string) => string;
31
+ renderOption: (val: string) => React.ReactNode;
30
32
  flatOptionsMap: Map<string, import("src/components/Select/types").OptionBase>;
31
33
  label: string;
32
34
  error: string;
33
- helpText: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null;
35
+ helpText: string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null;
34
36
  isDisabled: boolean;
35
37
  required: boolean;
36
38
  isSearchable: boolean;
@@ -116,6 +116,13 @@ interface SelectSharedProps {
116
116
  inputClassName?: string;
117
117
  /** Children rendered inside the dropdown (overrides `options`). */
118
118
  children?: React.ReactNode;
119
+ /**
120
+ * Customize how each option is rendered. Receives the matched option (looked
121
+ * up from `options` by value) and returns a ReactNode. Used in the dropdown
122
+ * list and in the trigger (single-select label / multi-select chips).
123
+ * String filtering still uses `option.label` for searchable behavior.
124
+ */
125
+ formatOptionLabel?: (option: SelectOptionBase) => React.ReactNode;
119
126
  }
120
127
  interface SingleSelectProps extends SelectSharedProps {
121
128
  /** When true, multiple values can be selected and the trigger shows chips. @default false */
@@ -1,4 +1,4 @@
1
- export { S as Select } from '../Select-BiyQTuiQ.js';
1
+ export { S as Select } from '../Select-Zr8sFnAC.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../SelectFieldWrapper-CiBARDsn.js';
@@ -43,9 +43,9 @@ import '../primitives/Combobox.js';
43
43
  import '../input-group-BKkj65Uq.js';
44
44
  import '../input-1J5oQa1u.js';
45
45
  import '../textarea-B0vzA497.js';
46
+ import '../chevron-down-BNi0ntys.js';
46
47
  import '../check-Cpkv29p1.js';
47
48
  import '../x-_o2T3n6D.js';
48
- import '../chevron-down-BNi0ntys.js';
49
49
  import '../index-DZXbzIgC.js';
50
50
  import '../index-CSMSzzKM.js';
51
51
  import '../with-selector-Dv0G_V_o.js';
@@ -7,19 +7,19 @@ export { B as Badge } from '../Badge-DC6zxOwS.js';
7
7
  export { C as Callout } from '../Callout-NVYmCwJL.js';
8
8
  export { C as Checkbox } from '../Checkbox-m4rEnxUz.js';
9
9
  export { C as ColorPicker } from '../ColorPicker-ClnRUq9y.js';
10
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-BTdSpJfs.js';
11
- export { D as DatePicker } from '../DatePicker-kulToqfM.js';
10
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-DP06B8C7.js';
11
+ export { D as DatePicker } from '../DatePicker-mdjh5u40.js';
12
12
  export { D as Dialog } from '../Dialog-BOcBeB8v.js';
13
13
  export { E as Empty } from '../Empty-Bfido_mq.js';
14
- export { I as Input } from '../Input-Bxs8n6xp.js';
14
+ export { I as Input } from '../Input-B7twzkUr.js';
15
15
  export { K as Kbd } from '../Kbd-CAIAs4OO.js';
16
16
  export { L as Label } from '../Label-mrNM2drW.js';
17
17
  export { M as MultiEmailInput } from '../MultiEmailInput-Du1964Ka.js';
18
- export { P as Pagination } from '../Pagination-C_X9kgc8.js';
18
+ export { P as Pagination } from '../Pagination-BRd3WPJ_.js';
19
19
  export { P as Popover } from '../Popover-C1FNlRtU.js';
20
20
  export { P as Progress } from '../Progress-DURemsl_.js';
21
21
  export { R as RadioGroup } from '../RadioGroup-BRAVPPc3.js';
22
- export { S as Select } from '../Select-BiyQTuiQ.js';
22
+ export { S as Select } from '../Select-Zr8sFnAC.js';
23
23
  export { S as Sheet } from '../Sheet-Bw8GVQPS.js';
24
24
  export { S as Slider } from '../Slider-DNcH5X7b.js';
25
25
  export { S as Spinner } from '../Spinner-DgV3mILN.js';
@@ -1,6 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useFormikContext } from 'formik';
4
+ import { useTranslation } from 'react-i18next';
4
5
  import { c as cn } from '../utils-BJnb9o5c.js';
5
6
  import { FormikButton } from './Button.js';
6
7
  import { b as Button } from '../Button-DV9xCqlc.js';
@@ -13,7 +14,6 @@ import '../index-Bo3AAQJp.js';
13
14
  import '../index-CfriMyrd.js';
14
15
  import '../index-BtkPdosV.js';
15
16
  import '../primitives/Spinner.js';
16
- import 'react-i18next';
17
17
  import '../loader-circle-DycHUAWN.js';
18
18
  import '../createLucideIcon-C8ycilSN.js';
19
19
  import '../primitives/Tooltip.js';
@@ -42,14 +42,19 @@ const FormikActionBlock = forwardRef(
42
42
  isSubmitting: isSubmittingProp,
43
43
  position = "left"
44
44
  }, ref) => {
45
- const { handleReset, isSubmitting: isFormikSubmitting } = useFormikContext();
45
+ const { t } = useTranslation();
46
+ const {
47
+ handleReset,
48
+ isSubmitting: isFormikSubmitting,
49
+ dirty
50
+ } = useFormikContext();
46
51
  const isSubmitting = isSubmittingProp ?? isFormikSubmitting;
47
52
  const cancelButton = /* @__PURE__ */ jsx(
48
53
  Button,
49
54
  {
50
55
  "data-testid": "cancel-button",
51
56
  disabled: isSubmitting,
52
- label: "Cancel",
57
+ label: t("neetoui.actionBlock.cancel", "Cancel"),
53
58
  variant: "ghost",
54
59
  onClick: handleReset,
55
60
  onMouseDown: (e) => e.preventDefault(),
@@ -60,7 +65,8 @@ const FormikActionBlock = forwardRef(
60
65
  FormikButton,
61
66
  {
62
67
  "data-testid": "save-changes-button",
63
- label: "Save changes",
68
+ disabled: isSubmitting || !dirty,
69
+ label: t("neetoui.actionBlock.saveChanges", "Save changes"),
64
70
  type: "submit",
65
71
  ...submitButtonProps
66
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBlock.js","sources":["../../src/formik/ActionBlock.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport { Button, type ButtonProps } from \"src/components/Button\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { FormikButton } from \"./Button\";\n\nexport interface FormikActionBlockProps {\n /** Additional CSS class names for the wrapper. */\n className?: string;\n /** Props forwarded to the submit button. */\n submitButtonProps?: ButtonProps;\n /** Props forwarded to the cancel button. */\n cancelButtonProps?: ButtonProps;\n /**\n * Override the auto-computed submitting state (e.g. from React Query mutation).\n * Falls back to Formik's `isSubmitting` when not provided.\n */\n isSubmitting?: boolean;\n /** Alignment of the buttons. */\n position?: \"left\" | \"right\";\n}\n\nconst FormikActionBlock = forwardRef<HTMLDivElement, FormikActionBlockProps>(\n (\n {\n className,\n submitButtonProps,\n cancelButtonProps,\n isSubmitting: isSubmittingProp,\n position = \"left\",\n },\n ref\n ) => {\n const { handleReset, isSubmitting: isFormikSubmitting } =\n useFormikContext();\n\n const isSubmitting = isSubmittingProp ?? isFormikSubmitting;\n\n const cancelButton = (\n <Button\n data-testid=\"cancel-button\"\n disabled={isSubmitting}\n label=\"Cancel\"\n variant=\"ghost\"\n onClick={handleReset}\n onMouseDown={(e: React.MouseEvent) => e.preventDefault()}\n {...cancelButtonProps}\n />\n );\n\n const submitButton = (\n <FormikButton\n data-testid=\"save-changes-button\"\n label=\"Save changes\"\n type=\"submit\"\n {...submitButtonProps}\n />\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center gap-2\",\n position === \"right\" && \"justify-end\",\n className\n )}\n >\n {position === \"right\" ? (\n <>\n {cancelButton}\n {submitButton}\n </>\n ) : (\n <>\n {submitButton}\n {cancelButton}\n </>\n )}\n </div>\n );\n }\n);\n\nFormikActionBlock.displayName = \"FormikActionBlock\";\n\nexport { FormikActionBlock };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CACE;AAAA,IACE,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,YAAA,EAAc,gBAAA;AAAA,IACd,QAAA,GAAW;AAAA,KAEb,GAAA,KACG;AACH,IAAA,MAAM,EAAE,WAAA,EAAa,YAAA,EAAc,kBAAA,KACjC,gBAAA,EAAiB;AAEnB,IAAA,MAAM,eAAe,gBAAA,IAAoB,kBAAA;AAEzC,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,eAAA;AAAA,QACZ,QAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAQ,OAAA;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACT,WAAA,EAAa,CAAC,CAAA,KAAwB,CAAA,CAAE,cAAA,EAAe;AAAA,QACtD,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,qBAAA;AAAA,QACZ,KAAA,EAAM,cAAA;AAAA,QACN,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,yBAAA;AAAA,UACA,aAAa,OAAA,IAAW,aAAA;AAAA,UACxB;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,QAAA,KAAa,0BACZ,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;;;"}
1
+ {"version":3,"file":"ActionBlock.js","sources":["../../src/formik/ActionBlock.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Button, type ButtonProps } from \"src/components/Button\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { FormikButton } from \"./Button\";\n\nexport interface FormikActionBlockProps {\n /** Additional CSS class names for the wrapper. */\n className?: string;\n /** Props forwarded to the submit button. */\n submitButtonProps?: ButtonProps;\n /** Props forwarded to the cancel button. */\n cancelButtonProps?: ButtonProps;\n /**\n * Override the auto-computed submitting state (e.g. from React Query mutation).\n * Falls back to Formik's `isSubmitting` when not provided.\n */\n isSubmitting?: boolean;\n /** Alignment of the buttons. */\n position?: \"left\" | \"right\";\n}\n\nconst FormikActionBlock = forwardRef<HTMLDivElement, FormikActionBlockProps>(\n (\n {\n className,\n submitButtonProps,\n cancelButtonProps,\n isSubmitting: isSubmittingProp,\n position = \"left\",\n },\n ref\n ) => {\n const { t } = useTranslation();\n const {\n handleReset,\n isSubmitting: isFormikSubmitting,\n dirty,\n } = useFormikContext();\n\n const isSubmitting = isSubmittingProp ?? isFormikSubmitting;\n\n const cancelButton = (\n <Button\n data-testid=\"cancel-button\"\n disabled={isSubmitting}\n label={t(\"neetoui.actionBlock.cancel\", \"Cancel\")}\n variant=\"ghost\"\n onClick={handleReset}\n onMouseDown={(e: React.MouseEvent) => e.preventDefault()}\n {...cancelButtonProps}\n />\n );\n\n const submitButton = (\n <FormikButton\n data-testid=\"save-changes-button\"\n disabled={isSubmitting || !dirty}\n label={t(\"neetoui.actionBlock.saveChanges\", \"Save changes\")}\n type=\"submit\"\n {...submitButtonProps}\n />\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center gap-2\",\n position === \"right\" && \"justify-end\",\n className\n )}\n >\n {position === \"right\" ? (\n <>\n {cancelButton}\n {submitButton}\n </>\n ) : (\n <>\n {submitButton}\n {cancelButton}\n </>\n )}\n </div>\n );\n }\n);\n\nFormikActionBlock.displayName = \"FormikActionBlock\";\n\nexport { FormikActionBlock };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CACE;AAAA,IACE,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,YAAA,EAAc,gBAAA;AAAA,IACd,QAAA,GAAW;AAAA,KAEb,GAAA,KACG;AACH,IAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,IAAA,MAAM;AAAA,MACJ,WAAA;AAAA,MACA,YAAA,EAAc,kBAAA;AAAA,MACd;AAAA,QACE,gBAAA,EAAiB;AAErB,IAAA,MAAM,eAAe,gBAAA,IAAoB,kBAAA;AAEzC,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,eAAA;AAAA,QACZ,QAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAO,CAAA,CAAE,4BAAA,EAA8B,QAAQ,CAAA;AAAA,QAC/C,OAAA,EAAQ,OAAA;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACT,WAAA,EAAa,CAAC,CAAA,KAAwB,CAAA,CAAE,cAAA,EAAe;AAAA,QACtD,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,qBAAA;AAAA,QACZ,QAAA,EAAU,gBAAgB,CAAC,KAAA;AAAA,QAC3B,KAAA,EAAO,CAAA,CAAE,iCAAA,EAAmC,cAAc,CAAA;AAAA,QAC1D,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,yBAAA;AAAA,UACA,aAAa,OAAA,IAAW,aAAA;AAAA,UACxB;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,QAAA,KAAa,0BACZ,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;;;"}
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { Field, getIn } from 'formik';
4
4
  import { dissoc } from 'ramda';
5
- import { I as Input } from '../Input-Bxs8n6xp.js';
5
+ import { I as Input } from '../Input-B7twzkUr.js';
6
6
  import '../utils-BJnb9o5c.js';
7
7
  import '../primitives/Field.js';
8
8
  import '../HelpIcon-Cm3ZgoCx.js';
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useField, useFormikContext, getIn } from 'formik';
4
4
  import { dissoc } from 'ramda';
5
- import { S as Select } from '../Select-BiyQTuiQ.js';
5
+ import { S as Select } from '../Select-Zr8sFnAC.js';
6
6
  import '../SelectFieldWrapper-CiBARDsn.js';
7
7
  import '../primitives/Field.js';
8
8
  import '../HelpIcon-Cm3ZgoCx.js';
@@ -45,9 +45,9 @@ import '../primitives/Combobox.js';
45
45
  import '../input-group-BKkj65Uq.js';
46
46
  import '../input-1J5oQa1u.js';
47
47
  import '../textarea-B0vzA497.js';
48
+ import '../chevron-down-BNi0ntys.js';
48
49
  import '../check-Cpkv29p1.js';
49
50
  import '../x-_o2T3n6D.js';
50
- import '../chevron-down-BNi0ntys.js';
51
51
  import '../index-DZXbzIgC.js';
52
52
  import '../index-CSMSzzKM.js';
53
53
  import '../with-selector-Dv0G_V_o.js';
@@ -15,7 +15,7 @@ import 'react/jsx-runtime';
15
15
  import 'react';
16
16
  import 'formik';
17
17
  import 'ramda';
18
- import '../Input-Bxs8n6xp.js';
18
+ import '../Input-B7twzkUr.js';
19
19
  import '../utils-BJnb9o5c.js';
20
20
  import '../primitives/Field.js';
21
21
  import '../HelpIcon-Cm3ZgoCx.js';
@@ -60,12 +60,12 @@ import '../textarea-B0vzA497.js';
60
60
  import '../withIconSize-BonoFXeH.js';
61
61
  import '../Textarea-B2Uhx-Yy.js';
62
62
  import '../primitives/Textarea.js';
63
- import '../Select-BiyQTuiQ.js';
63
+ import '../Select-Zr8sFnAC.js';
64
64
  import '../SelectFieldWrapper-CiBARDsn.js';
65
65
  import '../primitives/Combobox.js';
66
+ import '../chevron-down-BNi0ntys.js';
66
67
  import '../check-Cpkv29p1.js';
67
68
  import '../x-_o2T3n6D.js';
68
- import '../chevron-down-BNi0ntys.js';
69
69
  import '../index-DZXbzIgC.js';
70
70
  import '../index-CSMSzzKM.js';
71
71
  import '../with-selector-Dv0G_V_o.js';
package/dist/index.js CHANGED
@@ -12,20 +12,20 @@ export { b as Button } from './Button-DV9xCqlc.js';
12
12
  export { C as Callout } from './Callout-NVYmCwJL.js';
13
13
  export { C as Checkbox } from './Checkbox-m4rEnxUz.js';
14
14
  export { C as ColorPicker } from './ColorPicker-ClnRUq9y.js';
15
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-BTdSpJfs.js';
16
- export { D as DatePicker } from './DatePicker-kulToqfM.js';
15
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-DP06B8C7.js';
16
+ export { D as DatePicker } from './DatePicker-mdjh5u40.js';
17
17
  export { D as Dialog } from './Dialog-BOcBeB8v.js';
18
18
  export { D as DirectionProvider } from './DirectionProvider-weqLz_BJ.js';
19
19
  export { E as Empty } from './Empty-Bfido_mq.js';
20
- export { I as Input } from './Input-Bxs8n6xp.js';
20
+ export { I as Input } from './Input-B7twzkUr.js';
21
21
  export { K as Kbd } from './Kbd-CAIAs4OO.js';
22
22
  export { L as Label } from './Label-mrNM2drW.js';
23
23
  export { M as MultiEmailInput } from './MultiEmailInput-Du1964Ka.js';
24
- export { P as Pagination } from './Pagination-C_X9kgc8.js';
24
+ export { P as Pagination } from './Pagination-BRd3WPJ_.js';
25
25
  export { P as Popover } from './Popover-C1FNlRtU.js';
26
26
  export { P as Progress } from './Progress-DURemsl_.js';
27
27
  export { R as RadioGroup } from './RadioGroup-BRAVPPc3.js';
28
- export { S as Select } from './Select-BiyQTuiQ.js';
28
+ export { S as Select } from './Select-Zr8sFnAC.js';
29
29
  export { S as Sheet } from './Sheet-Bw8GVQPS.js';
30
30
  export { S as Slider } from './Slider-DNcH5X7b.js';
31
31
  export { S as Spinner } from './Spinner-DgV3mILN.js';
@@ -4,7 +4,7 @@ declare const Combobox: (props: React.ComponentProps<typeof ShadcnCombobox>) =>
4
4
  declare const ComboboxInput: (props: React.ComponentProps<typeof ShadcnComboboxInput>) => import("react/jsx-runtime").JSX.Element;
5
5
  declare const ComboboxContent: (props: React.ComponentProps<typeof ShadcnComboboxContent>) => import("react/jsx-runtime").JSX.Element;
6
6
  declare const ComboboxList: (props: React.ComponentProps<typeof ShadcnComboboxList>) => import("react/jsx-runtime").JSX.Element;
7
- declare const ComboboxItem: (props: React.ComponentProps<typeof ShadcnComboboxItem>) => import("react/jsx-runtime").JSX.Element;
7
+ declare const ComboboxItem: ({ className, ...props }: React.ComponentProps<typeof ShadcnComboboxItem>) => import("react/jsx-runtime").JSX.Element;
8
8
  declare const ComboboxGroup: (props: React.ComponentProps<typeof ShadcnComboboxGroup>) => import("react/jsx-runtime").JSX.Element;
9
9
  declare const ComboboxLabel: (props: React.ComponentProps<typeof ShadcnComboboxLabel>) => import("react/jsx-runtime").JSX.Element;
10
10
  declare const ComboboxCollection: (props: React.ComponentProps<typeof ShadcnComboboxCollection>) => import("react/jsx-runtime").JSX.Element;
@@ -4,9 +4,9 @@ import React__default, { createElement } from 'react';
4
4
  import { c as cn } from '../utils-BJnb9o5c.js';
5
5
  import { B as Button } from '../button-CrEMzWKw.js';
6
6
  import { I as InputGroup, c as InputGroupInput, a as InputGroupAddon, d as InputGroupButton } from '../input-group-BKkj65Uq.js';
7
+ import { C as ChevronDown } from '../chevron-down-BNi0ntys.js';
7
8
  import { C as Check } from '../check-Cpkv29p1.js';
8
9
  import { X } from '../x-_o2T3n6D.js';
9
- import { C as ChevronDown } from '../chevron-down-BNi0ntys.js';
10
10
  import { i as isHTMLElement, d as isShadowRoot, g as getComputedStyle, e as floor, j as getNodeName, k as getWindow, m as isOverflowElement, n as isNode, p as isWebKit$1, q as isElement, r as isLastTraversableNode, t as getParentNode, u as useFloating$1, v as evaluate, w as getPaddingObject, x as getAlignmentAxis, y as getAlignment, z as getAxisLength, A as clamp, h as hide$1, o as offset, f as flip, s as shift, l as limitShift, a as size, B as getSide, C as getSideAxis, c as autoUpdate } from '../floating-ui.react-dom-D8_f_WWh.js';
11
11
  import { s as shimExports } from '../index-DZXbzIgC.js';
12
12
  import { w as withSelectorExports } from '../with-selector-Dv0G_V_o.js';
@@ -10150,7 +10150,19 @@ const Combobox = (props) => /* @__PURE__ */ jsx(Combobox$1, { ...props });
10150
10150
  const ComboboxInput = (props) => /* @__PURE__ */ jsx(ComboboxInput$1, { ...props });
10151
10151
  const ComboboxContent = (props) => /* @__PURE__ */ jsx(ComboboxContent$1, { ...props });
10152
10152
  const ComboboxList = (props) => /* @__PURE__ */ jsx(ComboboxList$1, { ...props });
10153
- const ComboboxItem = (props) => /* @__PURE__ */ jsx(ComboboxItem$1, { ...props });
10153
+ const ComboboxItem = ({
10154
+ className,
10155
+ ...props
10156
+ }) => /* @__PURE__ */ jsx(
10157
+ ComboboxItem$1,
10158
+ {
10159
+ className: cn(
10160
+ "not-data-[variant=destructive]:data-highlighted:**:text-inherit",
10161
+ className
10162
+ ),
10163
+ ...props
10164
+ }
10165
+ );
10154
10166
  const ComboboxGroup = (props) => /* @__PURE__ */ jsx(ComboboxGroup$1, { ...props });
10155
10167
  const ComboboxLabel = (props) => /* @__PURE__ */ jsx(ComboboxLabel$1, { ...props });
10156
10168
  const ComboboxCollection = (props) => /* @__PURE__ */ jsx(ComboboxCollection$1, { ...props });