@caratlogic/design-system 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  import type { CustomComboboxProps } from './CustomCombobox.types';
2
- export declare function CustomCombobox({ options, placeholder, value, onChange, className, }: CustomComboboxProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function CustomCombobox({ options, placeholder, value, onChange, className, emptyMessage, }: CustomComboboxProps): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=CustomCombobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCombobox.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CustomCombobox/CustomCombobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,WAAgC,EAChC,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,mBAAmB,2CAerB"}
1
+ {"version":3,"file":"CustomCombobox.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CustomCombobox/CustomCombobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,WAAgC,EAChC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAiC,GAClC,EAAE,mBAAmB,2CAerB"}
@@ -8,5 +8,7 @@ export interface CustomComboboxProps {
8
8
  value: string;
9
9
  onChange: (label: string) => void;
10
10
  className?: string;
11
+ /** Shown when no option matches (or none exist). Defaults to "No option found." */
12
+ emptyMessage?: string;
11
13
  }
12
14
  //# sourceMappingURL=CustomCombobox.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCombobox.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CustomCombobox/CustomCombobox.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"CustomCombobox.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CustomCombobox/CustomCombobox.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,6 +1,6 @@
1
1
  import type { DataEditableTableProps } from './DataEditableTable.types';
2
2
  declare function DataEditableTable<T extends {
3
3
  id: string;
4
- }>({ data, columns, onRowClick, enableSelection, columnStyles, onEditChange, onSaveRow, sortBy, setSortBy, sortOrder, setSortOrder, saving, selectedRows, onSelectionChange, isArchiveView, selectionInArchiveView, permissionKey, columnWidths, onColumnResize, pagination, fetchBusinessContacts, showGrid, }: DataEditableTableProps<T>): import("react/jsx-runtime").JSX.Element;
4
+ }>({ data, columns, onRowClick, enableSelection, columnStyles, onEditChange, onSaveRow, sortBy, setSortBy, sortOrder, setSortOrder, saving, selectedRows, onSelectionChange, isArchiveView, selectionInArchiveView, permissionKey, columnWidths, onColumnResize, pagination, fetchBusinessContacts, showGrid, emptyState, }: DataEditableTableProps<T>): import("react/jsx-runtime").JSX.Element;
5
5
  export { DataEditableTable };
6
6
  //# sourceMappingURL=DataEditableTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataEditableTable.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/DataEditableTable/DataEditableTable.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,iBAAS,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EACnD,IAAI,EACJ,OAAO,EACP,UAAU,EACV,eAAuB,EACvB,YAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,EACN,YAAiB,EACjB,iBAAiB,EACjB,aAAqB,EACrB,sBAA8B,EAC9B,aAAkB,EAClB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,qBAAqB,EACrB,QAAe,GAChB,EAAE,sBAAsB,CAAC,CAAC,CAAC,2CA2S3B;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"DataEditableTable.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/DataEditableTable/DataEditableTable.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,iBAAS,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EACnD,IAAI,EACJ,OAAO,EACP,UAAU,EACV,eAAuB,EACvB,YAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,EACN,YAAiB,EACjB,iBAAiB,EACjB,aAAqB,EACrB,sBAA8B,EAC9B,aAAkB,EAClB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,qBAAqB,EACrB,QAAe,EACf,UAAU,GACX,EAAE,sBAAsB,CAAC,CAAC,CAAC,2CA+R3B;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -46,6 +46,8 @@ export interface DataEditableTableProps<T extends {
46
46
  onColumnResize?: (key: string, width: number) => void;
47
47
  pagination?: React.ReactNode;
48
48
  fetchBusinessContacts?: FetchBusinessContacts;
49
+ /** Rendered when `data` is empty; pinned to the visible scroll area. Defaults to "No data available". */
50
+ emptyState?: React.ReactNode;
49
51
  }
50
52
  export interface UseColumnResizeArgs {
51
53
  columnWidths?: Record<string, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"DataEditableTable.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/DataEditableTable/DataEditableTable.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAGjC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAEpC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC9D,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,CACV,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACjC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2GAA2G;IAC3G,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACnD,qBAAqB,EAAE,CACrB,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EACnC,GAAG,EAAE,MAAM,KACR,IAAI,CAAC;CACX;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC3D,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,CACV,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACjC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC;IAEP,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C"}
1
+ {"version":3,"file":"DataEditableTable.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/DataEditableTable/DataEditableTable.types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  /**
3
- * Pastel tile palettes used on the Partner Stone Detail Financial Summary.
3
+ * Pastel tile palettes used on the Partner Detail Financial Summary.
4
4
  * Each variant maps to a soft background + bolder icon chip in the same hue.
5
5
  */
6
6
  export type MetricTileTone = 'cost' | 'contribution' | 'partnerContribution' | 'partnerExpense' | 'companyExpense' | 'profit' | 'companyProfit' | 'partnerProfit' | 'caratsSold' | 'saleAmount';
@@ -1,7 +1,7 @@
1
1
  import type { FC } from 'react';
2
2
  import type { PartnerShareCardProps } from './PartnerShareCard.types';
3
3
  /**
4
- * One card per partner on the Partner Stone Detail page.
4
+ * One card per partner on the Partner Detail page.
5
5
  * - Header strip: "Partner N" badge + percentage.
6
6
  * - Identity row: name + subtitle on the left; Contribution / Expenses pair on the right.
7
7
  * - Optional post-sale block: Profit + share-percentage label + horizontal progress bar.
@@ -11,9 +11,11 @@ declare function SelectTrigger({ className, size, children, ...props }: React.Co
11
11
  type SelectContentProps = React.ComponentProps<typeof SelectPrimitive.Content> & {
12
12
  searchable?: boolean;
13
13
  searchPlaceholder?: string;
14
+ /** Shown when the list has no options. A search with no matches shows "No matching options". */
15
+ emptyMessage?: string;
14
16
  };
15
17
  declare function SelectContent({ className, children, position, searchable, // default: all selects are searchable
16
- searchPlaceholder, ...props }: SelectContentProps): import("react/jsx-runtime").JSX.Element;
18
+ searchPlaceholder, emptyMessage, ...props }: SelectContentProps): import("react/jsx-runtime").JSX.Element;
17
19
  declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
18
20
  declare function SelectItem({ className, children, searchValue, withCheckbox, ...props }: React.ComponentProps<typeof SelectPrimitive.Item> & {
19
21
  searchValue?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AA4B1D,iBAAS,MAAM,CAAC,EACd,YAAY,EACZ,QAAQ,EACR,gBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,2CAqCA;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAWpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAGD,KAAK,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAC5C,OAAO,eAAe,CAAC,OAAO,CAC/B,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,UAAiB,EAAE,sCAAsC;AACzD,iBAA+B,EAC/B,GAAG,KAAK,EACT,EAAE,kBAAkB,2CA2DpB;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAGD,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAoB,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,kDAuDA;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AA4B1D,iBAAS,MAAM,CAAC,EACd,YAAY,EACZ,QAAQ,EACR,gBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,2CAqCA;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAWpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAGD,KAAK,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAC5C,OAAO,eAAe,CAAC,OAAO,CAC/B,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,UAAiB,EAAE,sCAAsC;AACzD,iBAA+B,EAC/B,YAAqC,EACrC,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAqEpB;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAGD,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAoB,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,kDAuDA;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -21208,9 +21208,9 @@ function useSelectedComboboxOption(value, options) {
21208
21208
  }, [normalizedValue, options]);
21209
21209
  }
21210
21210
 
21211
- function CustomCombobox({ options, placeholder = 'Select option...', value, onChange, className, }) {
21211
+ function CustomCombobox({ options, placeholder = 'Select option...', value, onChange, className, emptyMessage = 'No option found.', }) {
21212
21212
  const selectedItem = useSelectedComboboxOption(value, options);
21213
- return (jsxRuntime.jsx(SearchableSelect, { selectedItem: selectedItem, onChange: (opt) => onChange(opt.label), getOptionKey: (o) => o.value, getOptionLabel: (o) => o.label, options: options, searchPlaceholder: placeholder, emptyMessage: "No option found.", className: className }));
21213
+ return (jsxRuntime.jsx(SearchableSelect, { selectedItem: selectedItem, onChange: (opt) => onChange(opt.label), getOptionKey: (o) => o.value, getOptionLabel: (o) => o.label, options: options, searchPlaceholder: placeholder, emptyMessage: emptyMessage, className: className }));
21214
21214
  }
21215
21215
 
21216
21216
  function useExpandableRows() {
@@ -21609,7 +21609,7 @@ function EditableCellContent({ col, row, value, isEditing, width, onEditValueCha
21609
21609
  return jsxRuntime.jsx(jsxRuntime.Fragment, { children: clipToWidth(stringValue, width) });
21610
21610
  }
21611
21611
 
21612
- function DataEditableTable({ data, columns, onRowClick, enableSelection = false, columnStyles = {}, onEditChange, onSaveRow, sortBy, setSortBy, sortOrder, setSortOrder, saving, selectedRows = [], onSelectionChange, isArchiveView = false, selectionInArchiveView = false, permissionKey = '', columnWidths, onColumnResize, pagination, fetchBusinessContacts, showGrid = true, }) {
21612
+ function DataEditableTable({ data, columns, onRowClick, enableSelection = false, columnStyles = {}, onEditChange, onSaveRow, sortBy, setSortBy, sortOrder, setSortOrder, saving, selectedRows = [], onSelectionChange, isArchiveView = false, selectionInArchiveView = false, permissionKey = '', columnWidths, onColumnResize, pagination, fetchBusinessContacts, showGrid = true, emptyState, }) {
21613
21613
  const showSelectionColumn = enableSelection && (!isArchiveView || selectionInArchiveView);
21614
21614
  const vBorder = showGrid ? 'border-r' : '';
21615
21615
  const { localWidths, draggingKey, tableRef, handleResizeMouseDown } = useColumnResize({
@@ -21633,77 +21633,73 @@ function DataEditableTable({ data, columns, onRowClick, enableSelection = false,
21633
21633
  setSortOrder('asc');
21634
21634
  }
21635
21635
  };
21636
- return (jsxRuntime.jsxs("div", { className: "w-full h-full rounded-lg border border-border bg-card flex flex-col overflow-hidden", children: [jsxRuntime.jsx("div", { className: "overflow-auto flex-1", children: jsxRuntime.jsxs("table", { ref: tableRef, className: "min-w-[70vh] w-full text-xs text-center border-separate", style: { borderSpacing: 0 }, children: [jsxRuntime.jsx("thead", { className: "sticky top-0 z-20 !bg-table-header border-b border-border text-secondary-foreground text-sm", children: jsxRuntime.jsxs("tr", { className: "h-[40px]", children: [!isArchiveView && (jsxRuntime.jsx("th", { className: cn('px-3 py-1.5 text-left font-semibold w-8 first:!pl-6 border-b border-solid !border-border', vBorder) })), showSelectionColumn && (jsxRuntime.jsx("th", { className: cn('px-3 py-1.5 text-center font-semibold first:!pl-6 border-b border-solid !border-border', vBorder), children: jsxRuntime.jsx(Checkbox, { checked: allSelected
21637
- ? true
21638
- : someSelected
21639
- ? 'indeterminate'
21640
- : false, onCheckedChange: toggleSelectAll }) })), columns.map((col) => {
21641
- const w = localWidths[col.key];
21642
- const isDragging = draggingKey === col.key;
21643
- const isPinnedRight = col.key === 'actions';
21644
- const thStyle = w || isDragging
21645
- ? {
21646
- width: `var(--col-w-${col.key})`,
21647
- minWidth: `var(--col-w-${col.key})`,
21648
- maxWidth: `var(--col-w-${col.key})`,
21649
- }
21650
- : isPinnedRight
21651
- ? { width: '72px', minWidth: '72px', maxWidth: '72px' }
21652
- : undefined;
21653
- return (jsxRuntime.jsxs("th", { className: cn('px-4 py-1.5 relative first:!pl-6 text-left whitespace-nowrap font-semibold text-sm border-b border-solid !border-border', vBorder, isArchiveView && !isPinnedRight && 'pl-1', col.sortable && '!cursor-pointer hover:bg-muted/60', isDragging && 'bg-primary/10', isPinnedRight && pinnedHeaderClass()), style: thStyle, onClick: () => handleColumnClick(col.key, col.sortable), children: [jsxRuntime.jsxs("div", { className: cn('gap-2', w && 'overflow-hidden', col.sortable && 'flex items-center !cursor-pointer', isPinnedRight && 'flex items-center justify-center'), children: [w && typeof col.header === 'string' ? (jsxRuntime.jsx("span", { className: "truncate", title: col.header, children: col.header })) : (col.header), col.sortable && (jsxRuntime.jsx(SortIcon, { active: sortBy === col.key, order: sortOrder }))] }), jsxRuntime.jsx("div", { className: cn('absolute right-0 top-0 h-full w-1.5 z-20 cursor-col-resize select-none transition-colors hover:bg-primary/40', isDragging && 'bg-primary/40'), onMouseDown: (e) => handleResizeMouseDown(e, col.key), onClick: (e) => e.stopPropagation() })] }, col.key.toString()));
21654
- })] }) }), jsxRuntime.jsx("tbody", { children: data.length === 0 ? (jsxRuntime.jsx("tr", { className: "h-12", children: jsxRuntime.jsx("td", { colSpan: columns.length +
21655
- (!isArchiveView ? 1 : 0) +
21656
- (showSelectionColumn ? 1 : 0), className: "text-center p-6 text-muted-foreground", children: "No data available" }) })) : (data.map((row, rowIndex) => {
21657
- const isEditing = editingRow === row.id && editingRow !== null;
21658
- const isSaving = savingRow === row.id;
21659
- const isSelected = selectedSet.has(row.id);
21660
- const bgClass = isEditing
21661
- ? 'bg-warning/10 hover:bg-warning/10'
21662
- : isSelected
21663
- ? 'bg-primary/10 hover:bg-primary/10'
21664
- : rowIndex % 2 === 0
21665
- ? 'bg-card hover:bg-secondary'
21666
- : 'bg-background hover:bg-secondary';
21667
- return (jsxRuntime.jsxs("tr", { className: cn('group/row h-[46px] transition-colors text-sm text-table-cell', bgClass, onRowClick && 'cursor-pointer'), onClick: () => onRowClick?.(row), children: [isArchiveView ? null : (jsxRuntime.jsx("td", { className: cn('px-3 py-1.5 text-center first:!pl-6 border-b border-solid !border-border', vBorder), children: jsxRuntime.jsx(Protected, { module: permissionKey, minLevel: PERMISSIONS.WRITE, children: jsxRuntime.jsx("button", { onClick: (e) => {
21668
- e.stopPropagation();
21669
- handleEditIconClick(row.id, row);
21670
- }, disabled: isSaving, className: cn('p-1 rounded hover:bg-primary/20 transition-colors !cursor-pointer', isEditing
21671
- ? 'text-success'
21672
- : 'text-muted-foreground'), children: isSaving ? (jsxRuntime.jsx(LoaderCircle, { size: 16, className: "animate-spin text-primary" })) : isEditing ? (jsxRuntime.jsx(Check, { size: 16 })) : (jsxRuntime.jsx(Pencil, { size: 16 })) }) }) })), showSelectionColumn && (jsxRuntime.jsx("td", { className: cn('px-3 py-1.5 first:!pl-6 border-b border-solid !border-border', vBorder), onClick: (e) => e.stopPropagation(), children: jsxRuntime.jsx(Checkbox, { checked: isSelected, onCheckedChange: () => toggleRow(row.id) }) })), columns.map((col) => {
21673
- const value = isEditing
21674
- ? editValues[col.key]
21675
- : row[col.key];
21636
+ return (jsxRuntime.jsxs("div", { className: "w-full h-full rounded-lg border border-border bg-card flex flex-col overflow-hidden", children: [jsxRuntime.jsxs("div", { className: "overflow-auto flex-1", children: [jsxRuntime.jsxs("table", { ref: tableRef, className: "min-w-[70vh] w-full text-xs text-center border-separate", style: { borderSpacing: 0 }, children: [jsxRuntime.jsx("thead", { className: "sticky top-0 z-20 !bg-table-header border-b border-border text-secondary-foreground text-sm", children: jsxRuntime.jsxs("tr", { className: "h-[40px]", children: [!isArchiveView && (jsxRuntime.jsx("th", { className: cn('px-3 py-1.5 text-left font-semibold w-8 first:!pl-6 border-b border-solid !border-border', vBorder) })), showSelectionColumn && (jsxRuntime.jsx("th", { className: cn('px-3 py-1.5 text-center font-semibold first:!pl-6 border-b border-solid !border-border', vBorder), children: jsxRuntime.jsx(Checkbox, { checked: allSelected
21637
+ ? true
21638
+ : someSelected
21639
+ ? 'indeterminate'
21640
+ : false, onCheckedChange: toggleSelectAll }) })), columns.map((col) => {
21676
21641
  const w = localWidths[col.key];
21642
+ const isDragging = draggingKey === col.key;
21677
21643
  const isPinnedRight = col.key === 'actions';
21678
- const tdStyle = w || draggingKey === col.key
21644
+ const thStyle = w || isDragging
21679
21645
  ? {
21680
21646
  width: `var(--col-w-${col.key})`,
21681
21647
  minWidth: `var(--col-w-${col.key})`,
21682
21648
  maxWidth: `var(--col-w-${col.key})`,
21683
21649
  }
21684
21650
  : isPinnedRight
21651
+ ? { width: '72px', minWidth: '72px', maxWidth: '72px' }
21652
+ : undefined;
21653
+ return (jsxRuntime.jsxs("th", { className: cn('px-4 py-1.5 relative first:!pl-6 text-left whitespace-nowrap font-semibold text-sm border-b border-solid !border-border', vBorder, isArchiveView && !isPinnedRight && 'pl-1', col.sortable && '!cursor-pointer hover:bg-muted/60', isDragging && 'bg-primary/10', isPinnedRight && pinnedHeaderClass()), style: thStyle, onClick: () => handleColumnClick(col.key, col.sortable), children: [jsxRuntime.jsxs("div", { className: cn('gap-2', w && 'overflow-hidden', col.sortable && 'flex items-center !cursor-pointer', isPinnedRight && 'flex items-center justify-center'), children: [w && typeof col.header === 'string' ? (jsxRuntime.jsx("span", { className: "truncate", title: col.header, children: col.header })) : (col.header), col.sortable && (jsxRuntime.jsx(SortIcon, { active: sortBy === col.key, order: sortOrder }))] }), jsxRuntime.jsx("div", { className: cn('absolute right-0 top-0 h-full w-1.5 z-20 cursor-col-resize select-none transition-colors hover:bg-primary/40', isDragging && 'bg-primary/40'), onMouseDown: (e) => handleResizeMouseDown(e, col.key), onClick: (e) => e.stopPropagation() })] }, col.key.toString()));
21654
+ })] }) }), jsxRuntime.jsx("tbody", { children: data.map((row, rowIndex) => {
21655
+ const isEditing = editingRow === row.id && editingRow !== null;
21656
+ const isSaving = savingRow === row.id;
21657
+ const isSelected = selectedSet.has(row.id);
21658
+ const bgClass = isEditing
21659
+ ? 'bg-warning/10 hover:bg-warning/10'
21660
+ : isSelected
21661
+ ? 'bg-primary/10 hover:bg-primary/10'
21662
+ : rowIndex % 2 === 0
21663
+ ? 'bg-card hover:bg-secondary'
21664
+ : 'bg-background hover:bg-secondary';
21665
+ return (jsxRuntime.jsxs("tr", { className: cn('group/row h-[46px] transition-colors text-sm text-table-cell', bgClass, onRowClick && 'cursor-pointer'), onClick: () => onRowClick?.(row), children: [isArchiveView ? null : (jsxRuntime.jsx("td", { className: cn('px-3 py-1.5 text-center first:!pl-6 border-b border-solid !border-border', vBorder), children: jsxRuntime.jsx(Protected, { module: permissionKey, minLevel: PERMISSIONS.WRITE, children: jsxRuntime.jsx("button", { onClick: (e) => {
21666
+ e.stopPropagation();
21667
+ handleEditIconClick(row.id, row);
21668
+ }, disabled: isSaving, className: cn('p-1 rounded hover:bg-primary/20 transition-colors !cursor-pointer', isEditing ? 'text-success' : 'text-muted-foreground'), children: isSaving ? (jsxRuntime.jsx(LoaderCircle, { size: 16, className: "animate-spin text-primary" })) : isEditing ? (jsxRuntime.jsx(Check, { size: 16 })) : (jsxRuntime.jsx(Pencil, { size: 16 })) }) }) })), showSelectionColumn && (jsxRuntime.jsx("td", { className: cn('px-3 py-1.5 first:!pl-6 border-b border-solid !border-border', vBorder), onClick: (e) => e.stopPropagation(), children: jsxRuntime.jsx(Checkbox, { checked: isSelected, onCheckedChange: () => toggleRow(row.id) }) })), columns.map((col) => {
21669
+ const value = isEditing
21670
+ ? editValues[col.key]
21671
+ : row[col.key];
21672
+ const w = localWidths[col.key];
21673
+ const isPinnedRight = col.key === 'actions';
21674
+ const tdStyle = w || draggingKey === col.key
21685
21675
  ? {
21686
- width: '72px',
21687
- minWidth: '72px',
21688
- maxWidth: '72px',
21676
+ width: `var(--col-w-${col.key})`,
21677
+ minWidth: `var(--col-w-${col.key})`,
21678
+ maxWidth: `var(--col-w-${col.key})`,
21689
21679
  }
21690
- : undefined;
21691
- // Pinned cells need an OPAQUE bg matching the row state so the
21692
- // scrolling content underneath doesn't bleed through — no alpha tints.
21693
- const pinnedBg = isPinnedRight
21694
- ? isEditing
21695
- ? 'bg-[#FEFCE8] dark:bg-[#422006]'
21696
- : isSelected
21697
- ? 'bg-[#EFF6FF] dark:bg-[#172554]'
21698
- : 'bg-card group-hover/row:bg-table-header'
21699
- : '';
21700
- return (jsxRuntime.jsx("td", { className: cn('px-4 py-1.5 first:!pl-6 border-b border-border whitespace-nowrap text-table-cell border-solid !border-border', vBorder, isPinnedRight || col.align === 'center'
21701
- ? 'text-center'
21702
- : typeof value === 'number'
21703
- ? 'text-right'
21704
- : 'text-left', isArchiveView && !isPinnedRight && 'pl-2', columnStyles?.[col.key.toString()] || '', draggingKey === col.key && 'bg-primary/5', isPinnedRight && pinnedCellClass(pinnedBg)), style: tdStyle, children: jsxRuntime.jsx(EditableCellContent, { col: col, row: row, value: value, isEditing: isEditing, width: w, onEditValueChange: handleEditValueChange, fetchBusinessContacts: fetchBusinessContacts }) }, col.key.toString()));
21705
- })] }, row.id));
21706
- })) })] }) }), pagination] }));
21680
+ : isPinnedRight
21681
+ ? {
21682
+ width: '72px',
21683
+ minWidth: '72px',
21684
+ maxWidth: '72px',
21685
+ }
21686
+ : undefined;
21687
+ // Pinned cells need an OPAQUE bg matching the row state so the
21688
+ // scrolling content underneath doesn't bleed through — no alpha tints.
21689
+ const pinnedBg = isPinnedRight
21690
+ ? isEditing
21691
+ ? 'bg-[#FEFCE8] dark:bg-[#422006]'
21692
+ : isSelected
21693
+ ? 'bg-[#EFF6FF] dark:bg-[#172554]'
21694
+ : 'bg-card group-hover/row:bg-table-header'
21695
+ : '';
21696
+ return (jsxRuntime.jsx("td", { className: cn('px-4 py-1.5 first:!pl-6 border-b border-border whitespace-nowrap text-table-cell border-solid !border-border', vBorder, isPinnedRight || col.align === 'center'
21697
+ ? 'text-center'
21698
+ : typeof value === 'number'
21699
+ ? 'text-right'
21700
+ : 'text-left', isArchiveView && !isPinnedRight && 'pl-2', columnStyles?.[col.key.toString()] || '', draggingKey === col.key && 'bg-primary/5', isPinnedRight && pinnedCellClass(pinnedBg)), style: tdStyle, children: jsxRuntime.jsx(EditableCellContent, { col: col, row: row, value: value, isEditing: isEditing, width: w, onEditValueChange: handleEditValueChange, fetchBusinessContacts: fetchBusinessContacts }) }, col.key.toString()));
21701
+ })] }, row.id));
21702
+ }) })] }), data.length === 0 && (jsxRuntime.jsx("div", { className: "sticky left-0 flex w-full items-center justify-center p-6 text-sm text-muted-foreground", children: emptyState ?? 'No data available' }))] }), pagination] }));
21707
21703
  }
21708
21704
 
21709
21705
  /**
@@ -37177,7 +37173,7 @@ function SelectTrigger({ className, size = 'default', children, ...props }) {
37177
37173
  return (jsxRuntime.jsxs(SelectPrimitive__namespace.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn("border-input-border cursor-pointer data-[placeholder]:!text-[var(--placeholder)] data-[placeholder]:!text-sm [&_[data-placeholder]]:!text-[var(--placeholder)] [&_[data-placeholder]]:!text-sm [&_span[data-placeholder]]:!text-[var(--placeholder)] [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-input-background px-3 py-2 text-sm whitespace-nowrap shadow-[0_1px_2px_0_rgba(0,0,0,0.05)] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:bg-muted/50 disabled:text-label data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: jsxRuntime.jsx(ChevronDown, { className: "size-4 text-gray-600" }) })] }));
37178
37174
  }
37179
37175
  function SelectContent({ className, children, position = 'popper', searchable = true, // default: all selects are searchable
37180
- searchPlaceholder = 'Search...', ...props }) {
37176
+ searchPlaceholder = 'Search...', emptyMessage = 'No options available', ...props }) {
37181
37177
  // Use the shared search context provided by Select root
37182
37178
  const searchCtx = useSelectSearchContext();
37183
37179
  const searchTerm = searchCtx?.searchTerm ?? '';
@@ -37189,7 +37185,9 @@ searchPlaceholder = 'Search...', ...props }) {
37189
37185
  return (jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: jsxRuntime.jsxs(SelectPrimitive__namespace.Content, { "data-slot": "select-content", className: cn('bg-card cursor-pointer text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border border-border shadow-[0_10px_15px_-3px_rgba(0,0,0,0.10),0_4px_6px_-4px_rgba(0,0,0,0.10)]', position === 'popper' &&
37190
37186
  'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), position: position, ...props, children: [searchable && (jsxRuntime.jsx("div", { className: "p-2 pb-1", children: jsxRuntime.jsxs("div", { className: "flex h-9 w-full items-center gap-2 rounded-lg bg-secondary px-3", children: [jsxRuntime.jsx(Search, { className: "h-4 w-4 shrink-0 text-[#737373]", "aria-hidden": "true" }), jsxRuntime.jsx("input", { type: "search", className: "min-w-0 flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-placeholder", placeholder: searchPlaceholder, value: searchTerm, onChange: (e) => setSearchTerm?.(e.target.value),
37191
37187
  // prevent keys from interfering with Radix keyboard nav
37192
- onKeyDown: (e) => e.stopPropagation() })] }) })), jsxRuntime.jsx(SelectScrollUpButton, {}), jsxRuntime.jsx(SelectPrimitive__namespace.Viewport, { className: cn('p-1 max-h-[12.5rem] overflow-y-auto', position === 'popper' &&
37188
+ onKeyDown: (e) => e.stopPropagation() })] }) })), jsxRuntime.jsx(SelectScrollUpButton, {}), jsxRuntime.jsx(SelectPrimitive__namespace.Viewport, { "data-slot": "select-viewport", style: {
37189
+ '--select-empty-message': JSON.stringify(searchTerm ? 'No matching options' : emptyMessage),
37190
+ }, className: cn('p-1 max-h-[12.5rem] overflow-y-auto', 'empty:after:block empty:after:px-2 empty:after:py-4 empty:after:text-center empty:after:text-sm empty:after:text-muted-foreground empty:after:content-(--select-empty-message)', position === 'popper' &&
37193
37191
  'w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1'), children: children }), jsxRuntime.jsx(SelectScrollDownButton, {})] }) }));
37194
37192
  }
37195
37193
  // 👇 Add searchValue + withCheckbox props here
@@ -37946,7 +37944,7 @@ function InventoryComboBox({ inventoryType, selectedItem, onSelect, fetchGems, f
37946
37944
 
37947
37945
  const OwnershipFilter = (props) => (jsxRuntime.jsx(FilterMultiSelect, { ...props, label: "Ownership", options: [
37948
37946
  { value: 'owned', label: 'Owned' },
37949
- { value: 'partner_stone', label: 'Partner Stone' },
37947
+ { value: 'partner', label: 'Partner' },
37950
37948
  { value: 'memo_in', label: 'Memo In' },
37951
37949
  ] }));
37952
37950
  const StockTypeFilter = (props) => (jsxRuntime.jsx(FilterMultiSelect, { ...props, label: "Stock Type", options: [
@@ -75544,7 +75542,7 @@ const OwnershipSplitCard = ({ totalAmountLabel, allocationPercentageLabel, total
75544
75542
  };
75545
75543
 
75546
75544
  /**
75547
- * One card per partner on the Partner Stone Detail page.
75545
+ * One card per partner on the Partner Detail page.
75548
75546
  * - Header strip: "Partner N" badge + percentage.
75549
75547
  * - Identity row: name + subtitle on the left; Contribution / Expenses pair on the right.
75550
75548
  * - Optional post-sale block: Profit + share-percentage label + horizontal progress bar.