@caratlogic/design-system 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/molecules/CustomCombobox/CustomCombobox.d.ts +1 -1
- package/dist/components/molecules/CustomCombobox/CustomCombobox.d.ts.map +1 -1
- package/dist/components/molecules/CustomCombobox/CustomCombobox.types.d.ts +2 -0
- package/dist/components/molecules/CustomCombobox/CustomCombobox.types.d.ts.map +1 -1
- package/dist/components/molecules/DataEditableTable/DataEditableTable.d.ts +1 -1
- package/dist/components/molecules/DataEditableTable/DataEditableTable.d.ts.map +1 -1
- package/dist/components/molecules/DataEditableTable/DataEditableTable.types.d.ts +2 -0
- package/dist/components/molecules/DataEditableTable/DataEditableTable.types.d.ts.map +1 -1
- package/dist/components/molecules/ShareModal/ShareModal.d.ts.map +1 -1
- package/dist/components/molecules/ShareModal/ShareModal.types.d.ts +12 -0
- package/dist/components/molecules/ShareModal/ShareModal.types.d.ts.map +1 -1
- package/dist/components/molecules/ShareModal/ShareModal.utils.d.ts +7 -0
- package/dist/components/molecules/ShareModal/ShareModal.utils.d.ts.map +1 -1
- package/dist/components/molecules/ShareModal/index.d.ts +2 -1
- package/dist/components/molecules/ShareModal/index.d.ts.map +1 -1
- package/dist/components/ui/select.d.ts +3 -1
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/index.cjs.js +102 -78
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +102 -79
- package/dist/index.esm.js.map +1 -1
- package/dist/ui.cjs.js +4 -2
- package/dist/ui.cjs.js.map +1 -1
- package/dist/ui.esm.js +4 -2
- package/dist/ui.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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;
|
|
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,
|
|
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;
|
|
1
|
+
{"version":3,"file":"DataEditableTable.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/DataEditableTable/DataEditableTable.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareModal.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/ShareModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ShareModal.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/ShareModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AA0B1D,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA4O3E,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAiCxC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA6C5C,CAAC"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
export interface ShareItem {
|
|
3
|
+
/** One-line description of the item, e.g. "Emerald · RRT1 · 2.50 ct". */
|
|
4
|
+
label: string;
|
|
5
|
+
/** Public URL for that item. */
|
|
6
|
+
url: string;
|
|
7
|
+
}
|
|
2
8
|
export interface ShareContentProps {
|
|
3
9
|
/** Public URL to share (single-item mode). */
|
|
4
10
|
url: string;
|
|
5
11
|
/** Multiple public URLs to share as one message (bulk mode). When non-empty, single-URL social tiles (Facebook/X) are hidden. */
|
|
6
12
|
urls?: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Bulk mode with a caption per link, shared as a numbered list. Preferred over
|
|
15
|
+
* `urls`, which sends bare links the recipient cannot tell apart. Takes
|
|
16
|
+
* precedence when both are given.
|
|
17
|
+
*/
|
|
18
|
+
items?: ShareItem[];
|
|
7
19
|
/** Title used in social share prefills. */
|
|
8
20
|
title?: string;
|
|
9
21
|
/** Entity label used in the subtitle copy ("public view of this {entityLabel}."). Default "item". */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareModal.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/ShareModal.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,iIAAiI;IACjI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxD,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,0GAA0G;IAC1G,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,6BAA6B;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,4CAA4C;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"ShareModal.types.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/ShareModal.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,iIAAiI;IACjI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxD,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,0GAA0G;IAC1G,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,6BAA6B;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,4CAA4C;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ShareItem } from './ShareModal.types';
|
|
1
2
|
export declare const buildInventoryPublicUrl: (entity: "gem" | "diamond", id?: string | null) => string;
|
|
2
3
|
export interface InventoryShareTitleParams {
|
|
3
4
|
entity: 'gem' | 'diamond';
|
|
@@ -11,4 +12,10 @@ export declare const buildFacebookUrl: (url: string) => string;
|
|
|
11
12
|
export declare const buildXUrl: (text: string, url: string) => string;
|
|
12
13
|
export declare const isWebShareAvailable: () => boolean;
|
|
13
14
|
export declare const isValidEmail: (value: string) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Bulk share message: the title, then one numbered entry per item with its
|
|
17
|
+
* caption above its link. Blank lines between entries stop chat clients from
|
|
18
|
+
* running the links together.
|
|
19
|
+
*/
|
|
20
|
+
export declare const buildBulkShareMessage: (title: string, items: ShareItem[]) => string;
|
|
14
21
|
//# sourceMappingURL=ShareModal.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareModal.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/ShareModal.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShareModal.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/ShareModal.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,eAAO,MAAM,uBAAuB,GAClC,QAAQ,KAAK,GAAG,SAAS,EACzB,KAAK,MAAM,GAAG,IAAI,KACjB,MAKF,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,wBAAwB,GAAI,qCAItC,yBAAyB,KAAG,MAY9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,KAAK,GAAG,SAAS,EACzB,OAAO,MAAM,KACZ,MAAiE,CAAC;AAErE,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,MACS,CAAC;AAEvE,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,MAC4B,CAAC;AAE5E,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,MAC8C,CAAC;AAErG,eAAO,MAAM,mBAAmB,QAAO,OACoC,CAAC;AAE5E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OACI,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,OAAO,SAAS,EAAE,KACjB,MAMW,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { ShareMenu, ShareDialog } from './ShareModal';
|
|
2
2
|
export type { ShareMenuProps, ShareDialogProps } from './ShareModal';
|
|
3
|
-
export {
|
|
3
|
+
export type { ShareItem } from './ShareModal.types';
|
|
4
|
+
export { buildInventoryShareTitle, buildInventoryPublicUrl, buildBulkShareTitle, buildBulkShareMessage, buildWhatsappUrl, } from './ShareModal.utils';
|
|
4
5
|
export type { InventoryShareTitleParams } from './ShareModal.utils';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ShareModal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -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;
|
|
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:
|
|
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.
|
|
21637
|
-
|
|
21638
|
-
|
|
21639
|
-
|
|
21640
|
-
|
|
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
|
|
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:
|
|
21687
|
-
minWidth:
|
|
21688
|
-
maxWidth:
|
|
21676
|
+
width: `var(--col-w-${col.key})`,
|
|
21677
|
+
minWidth: `var(--col-w-${col.key})`,
|
|
21678
|
+
maxWidth: `var(--col-w-${col.key})`,
|
|
21689
21679
|
}
|
|
21690
|
-
:
|
|
21691
|
-
|
|
21692
|
-
|
|
21693
|
-
|
|
21694
|
-
|
|
21695
|
-
|
|
21696
|
-
|
|
21697
|
-
|
|
21698
|
-
|
|
21699
|
-
|
|
21700
|
-
|
|
21701
|
-
|
|
21702
|
-
|
|
21703
|
-
|
|
21704
|
-
|
|
21705
|
-
|
|
21706
|
-
|
|
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, {
|
|
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
|
|
@@ -66692,16 +66690,43 @@ const buildFacebookUrl = (url) => `https://www.facebook.com/sharer/sharer.php?u=
|
|
|
66692
66690
|
const buildXUrl = (text, url) => `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`;
|
|
66693
66691
|
const isWebShareAvailable = () => typeof navigator !== 'undefined' && typeof navigator.share === 'function';
|
|
66694
66692
|
const isValidEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value.trim());
|
|
66693
|
+
/**
|
|
66694
|
+
* Bulk share message: the title, then one numbered entry per item with its
|
|
66695
|
+
* caption above its link. Blank lines between entries stop chat clients from
|
|
66696
|
+
* running the links together.
|
|
66697
|
+
*/
|
|
66698
|
+
const buildBulkShareMessage = (title, items) => [
|
|
66699
|
+
title,
|
|
66700
|
+
...items.map((item, index) => `\n${index + 1}. ${item.label}\n${item.url}`),
|
|
66701
|
+
].join('\n');
|
|
66695
66702
|
|
|
66696
66703
|
const WhatsappIcon = ({ className }) => (jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: className, children: [jsxRuntime.jsx("path", { d: "M17.5 14.4c-.3-.1-1.7-.8-1.9-.9-.3-.1-.5-.1-.7.1s-.8.9-1 1.1-.4.2-.7.1c-1.6-.8-2.7-1.4-3.7-3.2-.3-.5.3-.5.8-1.5.1-.2.1-.4 0-.5l-.9-2.1c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.2.2 2.2 3.3 5.3 4.6 2 .8 2.7.9 3.7.8.6-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.2-.3-.3-.6-.4Z" }), jsxRuntime.jsx("path", { d: "M20 4A11 11 0 0 0 4 4a10.9 10.9 0 0 0-1.7 13.4L1 23l5.7-1.5A11 11 0 0 0 23 12 10.9 10.9 0 0 0 20 4Zm-8 18a9.1 9.1 0 0 1-4.6-1.3l-.3-.2-3.4.9.9-3.3-.2-.4A9 9 0 1 1 12 22Z" })] }));
|
|
66697
66704
|
const SocialTile = ({ icon, label, bg, fg, onClick }) => (jsxRuntime.jsxs("button", { type: "button", onClick: onClick, className: "flex cursor-pointer flex-col items-center gap-2 focus-visible:outline-none", children: [jsxRuntime.jsx("span", { className: cn('flex h-12 w-12 items-center justify-center rounded-full transition-transform hover:scale-105', bg, fg), children: icon }), jsxRuntime.jsx("span", { className: "text-xs text-foreground", children: label })] }));
|
|
66698
|
-
const ShareBody = ({ url, urls, title = 'Check this out', entityLabel = 'item', onInviteEmail, hideInvite = false, hideHeader = false, }) => {
|
|
66705
|
+
const ShareBody = ({ url, urls, items, title = 'Check this out', entityLabel = 'item', onInviteEmail, hideInvite = false, hideHeader = false, }) => {
|
|
66699
66706
|
const [email, setEmail] = React.useState('');
|
|
66700
66707
|
const [sending, setSending] = React.useState(false);
|
|
66701
|
-
const
|
|
66702
|
-
const
|
|
66708
|
+
const shareItems = items ?? [];
|
|
66709
|
+
const isMulti = shareItems.length > 0 || (urls?.length ?? 0) > 0;
|
|
66710
|
+
const shareUrls = shareItems.length
|
|
66711
|
+
? shareItems.map((item) => item.url)
|
|
66712
|
+
: isMulti
|
|
66713
|
+
? (urls ?? [])
|
|
66714
|
+
: url
|
|
66715
|
+
? [url]
|
|
66716
|
+
: [];
|
|
66703
66717
|
const hasContent = shareUrls.length > 0;
|
|
66704
|
-
|
|
66718
|
+
// Captioned items read as a numbered list; bare urls keep the older format.
|
|
66719
|
+
const shareBody = shareItems.length
|
|
66720
|
+
? buildBulkShareMessage(title, shareItems)
|
|
66721
|
+
: isMulti
|
|
66722
|
+
? [title, ...shareUrls].join('\n')
|
|
66723
|
+
: url;
|
|
66724
|
+
/**
|
|
66725
|
+
* What chat apps receive. A single share puts its link on its own line, the
|
|
66726
|
+
* same shape as one entry of a bulk message — glued to the caption it reads
|
|
66727
|
+
* as one run-on sentence. Copy Link still copies the bare url.
|
|
66728
|
+
*/
|
|
66729
|
+
const shareMessage = isMulti ? shareBody : [title, url].filter(Boolean).join('\n');
|
|
66705
66730
|
const openInPopup = (href) => {
|
|
66706
66731
|
if (!hasContent)
|
|
66707
66732
|
return;
|
|
@@ -66728,7 +66753,7 @@ const ShareBody = ({ url, urls, title = 'Check this out', entityLabel = 'item',
|
|
|
66728
66753
|
return;
|
|
66729
66754
|
}
|
|
66730
66755
|
try {
|
|
66731
|
-
await navigator.share(isMulti ? { title, text:
|
|
66756
|
+
await navigator.share(isMulti ? { title, text: shareMessage } : { url, title, text: shareMessage });
|
|
66732
66757
|
}
|
|
66733
66758
|
catch (e) {
|
|
66734
66759
|
const err = e;
|
|
@@ -66763,16 +66788,14 @@ const ShareBody = ({ url, urls, title = 'Check this out', entityLabel = 'item',
|
|
|
66763
66788
|
};
|
|
66764
66789
|
return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [!hideHeader && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("header", { className: "flex flex-col gap-1", children: [jsxRuntime.jsx("h3", { className: "text-base font-semibold text-foreground", children: "Share" }), jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: isMulti
|
|
66765
66790
|
? `Anyone with these links can open the public view of the selected ${entityLabel}s.`
|
|
66766
|
-
: `Anyone with the link can open the public view of this ${entityLabel}.` })] }), jsxRuntime.jsx(Separator, {})] })), jsxRuntime.jsxs("section", { className: "flex flex-col gap-3", children: [jsxRuntime.jsx("h4", { className: "text-sm font-medium text-foreground", children: "Social" }), jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-3", children: [jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(WhatsappIcon, { className: "h-6 w-6" }), label: "Whatsapp", bg: "bg-[#25D366]", fg: "text-white", onClick: () => openInPopup(isMulti
|
|
66767
|
-
? buildWhatsappUrl('', shareBody)
|
|
66768
|
-
: buildWhatsappUrl(title, url)) }), !isMulti && (jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(Facebook, { className: "h-6 w-6", fill: "currentColor" }), label: "Facebook", bg: "bg-[#1877F2]", fg: "text-white", onClick: () => openInPopup(buildFacebookUrl(url)) })), !isMulti && (jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(X$2, { className: "h-6 w-6", strokeWidth: 2.5 }), label: "X", bg: "bg-black", fg: "text-white", onClick: () => openInPopup(buildXUrl(title, url)) })), jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(Link2, { className: "h-6 w-6", strokeWidth: 1.5 }), label: "Copy Link", bg: "bg-muted", fg: "text-foreground", onClick: handleCopy }), jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(Share2, { className: "h-6 w-6", strokeWidth: 1.5 }), label: "System Share", bg: "bg-muted", fg: "text-foreground", onClick: handleSystemShare })] })] }), !hideInvite && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Separator, {}), jsxRuntime.jsxs("section", { className: "flex flex-col gap-2", children: [jsxRuntime.jsx("h4", { className: "text-sm font-medium text-foreground", children: "Invite your Merchants" }), jsxRuntime.jsxs("form", { className: "flex items-center gap-2", onSubmit: (e) => {
|
|
66791
|
+
: `Anyone with the link can open the public view of this ${entityLabel}.` })] }), jsxRuntime.jsx(Separator, {})] })), jsxRuntime.jsxs("section", { className: "flex flex-col gap-3", children: [jsxRuntime.jsx("h4", { className: "text-sm font-medium text-foreground", children: "Social" }), jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-3", children: [jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(WhatsappIcon, { className: "h-6 w-6" }), label: "Whatsapp", bg: "bg-[#25D366]", fg: "text-white", onClick: () => openInPopup(buildWhatsappUrl('', shareMessage)) }), !isMulti && (jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(Facebook, { className: "h-6 w-6", fill: "currentColor" }), label: "Facebook", bg: "bg-[#1877F2]", fg: "text-white", onClick: () => openInPopup(buildFacebookUrl(url)) })), !isMulti && (jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(X$2, { className: "h-6 w-6", strokeWidth: 2.5 }), label: "X", bg: "bg-black", fg: "text-white", onClick: () => openInPopup(buildXUrl(title, url)) })), jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(Link2, { className: "h-6 w-6", strokeWidth: 1.5 }), label: "Copy Link", bg: "bg-muted", fg: "text-foreground", onClick: handleCopy }), jsxRuntime.jsx(SocialTile, { icon: jsxRuntime.jsx(Share2, { className: "h-6 w-6", strokeWidth: 1.5 }), label: "System Share", bg: "bg-muted", fg: "text-foreground", onClick: handleSystemShare })] })] }), !hideInvite && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Separator, {}), jsxRuntime.jsxs("section", { className: "flex flex-col gap-2", children: [jsxRuntime.jsx("h4", { className: "text-sm font-medium text-foreground", children: "Invite your Merchants" }), jsxRuntime.jsxs("form", { className: "flex items-center gap-2", onSubmit: (e) => {
|
|
66769
66792
|
e.preventDefault();
|
|
66770
66793
|
void handleSend();
|
|
66771
66794
|
}, children: [jsxRuntime.jsx("input", { type: "email", value: email, onChange: (e) => setEmail(e.target.value), placeholder: "Example@gmail.com", className: "flex-1 rounded-md border border-border bg-input-background px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus:border-primary focus:ring-2 focus:ring-primary/10" }), jsxRuntime.jsx(Button$1, { type: "submit", size: "sm", style: { width: '118px' }, className: "bg-primary text-primary-foreground hover:bg-primary/90", disabled: sending, children: sending ? 'Sending…' : 'Send' })] })] })] }))] }));
|
|
66772
66795
|
};
|
|
66773
|
-
const ShareMenu = ({ children, url, urls, title, entityLabel, onInviteEmail, hideInvite, side = 'bottom', align = 'end', open, onOpenChange, }) => (jsxRuntime.jsxs(Popover, { open: open, onOpenChange: onOpenChange, children: [jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: children }), jsxRuntime.jsx(PopoverContent, { side: side, align: align, sideOffset: 8, className: "w-[360px] p-4", children: jsxRuntime.jsx(ShareBody, { url: url, urls: urls, title: title, entityLabel: entityLabel, onInviteEmail: onInviteEmail, hideInvite: hideInvite }) })] }));
|
|
66774
|
-
const ShareDialog = ({ open, onOpenChange, url, urls, title, entityLabel = 'item', onInviteEmail, hideInvite, stockId, }) => {
|
|
66775
|
-
const count = urls?.length ?? 0;
|
|
66796
|
+
const ShareMenu = ({ children, url, urls, items, title, entityLabel, onInviteEmail, hideInvite, side = 'bottom', align = 'end', open, onOpenChange, }) => (jsxRuntime.jsxs(Popover, { open: open, onOpenChange: onOpenChange, children: [jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: children }), jsxRuntime.jsx(PopoverContent, { side: side, align: align, sideOffset: 8, className: "w-[360px] p-4", children: jsxRuntime.jsx(ShareBody, { url: url, urls: urls, items: items, title: title, entityLabel: entityLabel, onInviteEmail: onInviteEmail, hideInvite: hideInvite }) })] }));
|
|
66797
|
+
const ShareDialog = ({ open, onOpenChange, url, urls, items, title, entityLabel = 'item', onInviteEmail, hideInvite, stockId, }) => {
|
|
66798
|
+
const count = items?.length ?? urls?.length ?? 0;
|
|
66776
66799
|
const isMulti = count > 0;
|
|
66777
66800
|
const trimmedStockId = stockId?.trim();
|
|
66778
66801
|
const heading = isMulti
|
|
@@ -66782,7 +66805,7 @@ const ShareDialog = ({ open, onOpenChange, url, urls, title, entityLabel = 'item
|
|
|
66782
66805
|
: 'Share';
|
|
66783
66806
|
return (jsxRuntime.jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: jsxRuntime.jsxs(DialogContent, { className: "sm:max-w-[400px]", children: [jsxRuntime.jsxs(DialogHeader, { children: [jsxRuntime.jsx(DialogTitle, { children: heading }), jsxRuntime.jsx(DialogDescription, { children: isMulti
|
|
66784
66807
|
? `Anyone with these links can open the public view of the selected ${entityLabel}s.`
|
|
66785
|
-
: `Anyone with the link can open the public view of this ${entityLabel}.` })] }), jsxRuntime.jsx(ShareBody, { url: url, urls: urls, title: title, entityLabel: entityLabel, onInviteEmail: onInviteEmail, hideInvite: hideInvite, hideHeader: true })] }) }));
|
|
66808
|
+
: `Anyone with the link can open the public view of this ${entityLabel}.` })] }), jsxRuntime.jsx(ShareBody, { url: url, urls: urls, items: items, title: title, entityLabel: entityLabel, onInviteEmail: onInviteEmail, hideInvite: hideInvite, hideHeader: true })] }) }));
|
|
66786
66809
|
};
|
|
66787
66810
|
|
|
66788
66811
|
const Table = React__namespace.forwardRef(({ className, ...props }, ref) => (jsxRuntime.jsx("table", { ref: ref, className: cn('w-full text-sm text-left border-collapse', className), ...props })));
|
|
@@ -77832,6 +77855,7 @@ exports.ZoomSplitViewer = ZoomSplitViewer;
|
|
|
77832
77855
|
exports.asList = asList;
|
|
77833
77856
|
exports.asText = asText;
|
|
77834
77857
|
exports.badgeVariants = badgeVariants;
|
|
77858
|
+
exports.buildBulkShareMessage = buildBulkShareMessage;
|
|
77835
77859
|
exports.buildBulkShareTitle = buildBulkShareTitle;
|
|
77836
77860
|
exports.buildInventoryPublicUrl = buildInventoryPublicUrl;
|
|
77837
77861
|
exports.buildInventoryRowProps = buildInventoryRowProps;
|