@krak-stack/registry 0.1.43 → 0.1.44
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.
|
@@ -40,7 +40,9 @@ export interface DataTableListOptions {
|
|
|
40
40
|
export type DataTableListColumn<TData> = DataTableListOptions & {
|
|
41
41
|
/** Includes items not loaded in the preview; the dropdown only shows supplied items. */
|
|
42
42
|
getTotalCount?: (row: TData) => number;
|
|
43
|
-
/**
|
|
43
|
+
/** Optional primary action for items without submenu actions. */
|
|
44
|
+
onItemClick?: (context: DataTableListItemContext<TData>) => void;
|
|
45
|
+
/** Optional secondary actions shown in each item's submenu. */
|
|
44
46
|
itemActions?: readonly DataTableItemAction<DataTableListItemContext<TData>>[];
|
|
45
47
|
actionsLabel?: string;
|
|
46
48
|
} & ({
|
|
@@ -76,6 +78,7 @@ interface EditableDataTableListCellProps extends DataTableListOptions {
|
|
|
76
78
|
totalCount?: number | undefined;
|
|
77
79
|
}
|
|
78
80
|
interface DataTableListCellActionsProps {
|
|
81
|
+
onItemClick?: ((item: DataTableListItem) => void) | undefined;
|
|
79
82
|
actionsLabel?: string | undefined;
|
|
80
83
|
itemActions?: readonly DataTableItemAction<DataTableListItem>[] | undefined;
|
|
81
84
|
}
|
|
@@ -1494,6 +1494,7 @@ var renderCell = (row, column, locale = "en", labels = dataTableMessages(locale)
|
|
|
1494
1494
|
return /* @__PURE__ */ jsx14(DataTableListCell, {
|
|
1495
1495
|
...config,
|
|
1496
1496
|
itemActions,
|
|
1497
|
+
onItemClick: config.onItemClick ? (item) => config.onItemClick?.({ item, row: row.data }) : undefined,
|
|
1497
1498
|
items: config.getItems(row.data),
|
|
1498
1499
|
locale,
|
|
1499
1500
|
messages: { [locale]: labels },
|
|
@@ -1506,6 +1507,7 @@ var renderCell = (row, column, locale = "en", labels = dataTableMessages(locale)
|
|
|
1506
1507
|
return /* @__PURE__ */ jsx14(DataTableListCell, {
|
|
1507
1508
|
...config,
|
|
1508
1509
|
itemActions,
|
|
1510
|
+
onItemClick: config.onItemClick ? (item) => config.onItemClick?.({ item, row: row.data }) : undefined,
|
|
1509
1511
|
items: config.getItems(row.data),
|
|
1510
1512
|
locale,
|
|
1511
1513
|
messages: { [locale]: labels },
|
|
@@ -3001,11 +3003,10 @@ var DataTableListCell = (props) => {
|
|
|
3001
3003
|
...resolvedProps
|
|
3002
3004
|
});
|
|
3003
3005
|
}
|
|
3004
|
-
const { actionsLabel, itemActions, ...summaryProps } = resolvedProps;
|
|
3006
|
+
const { actionsLabel, itemActions, onItemClick, ...summaryProps } = resolvedProps;
|
|
3005
3007
|
const labels = dataTableMessages(locale, resolvedProps.messages);
|
|
3006
|
-
const
|
|
3007
|
-
|
|
3008
|
-
if (!itemActions?.length && !overflow) {
|
|
3008
|
+
const hasItems = resolvedProps.items.length > 0;
|
|
3009
|
+
if (!itemActions?.length && !hasItems) {
|
|
3009
3010
|
return /* @__PURE__ */ jsx14(DataTableListSummary, {
|
|
3010
3011
|
...summaryProps
|
|
3011
3012
|
});
|
|
@@ -3019,11 +3020,12 @@ var DataTableListCell = (props) => {
|
|
|
3019
3020
|
children: /* @__PURE__ */ jsx14(DataTableListMenu, {
|
|
3020
3021
|
actions: itemActions ?? [],
|
|
3021
3022
|
display: resolvedProps.display,
|
|
3022
|
-
force:
|
|
3023
|
+
force: hasItems,
|
|
3023
3024
|
label: menuLabel,
|
|
3024
3025
|
items: resolvedProps.items,
|
|
3025
3026
|
locale,
|
|
3026
3027
|
messages: resolvedProps.messages,
|
|
3028
|
+
onItemClick,
|
|
3027
3029
|
trigger: /* @__PURE__ */ jsxs8(Button, {
|
|
3028
3030
|
"aria-label": menuLabel,
|
|
3029
3031
|
className: "h-full w-full min-w-0 justify-between rounded-none px-2 focus-visible:ring-inset",
|
|
@@ -3051,6 +3053,7 @@ var EditableDataTableListCell = ({
|
|
|
3051
3053
|
totalCount,
|
|
3052
3054
|
actionsLabel,
|
|
3053
3055
|
itemActions,
|
|
3056
|
+
onItemClick,
|
|
3054
3057
|
locale = "en",
|
|
3055
3058
|
messages
|
|
3056
3059
|
}) => {
|
|
@@ -3093,6 +3096,7 @@ var EditableDataTableListCell = ({
|
|
|
3093
3096
|
display,
|
|
3094
3097
|
force: true,
|
|
3095
3098
|
items: selected,
|
|
3099
|
+
onItemClick,
|
|
3096
3100
|
label: actionsLabel ?? manageLabel,
|
|
3097
3101
|
locale,
|
|
3098
3102
|
messages,
|
|
@@ -3133,6 +3137,7 @@ var DataTableListMenu = ({
|
|
|
3133
3137
|
locale = "en",
|
|
3134
3138
|
messages,
|
|
3135
3139
|
onAdd,
|
|
3140
|
+
onItemClick,
|
|
3136
3141
|
trigger
|
|
3137
3142
|
}) => {
|
|
3138
3143
|
const entries = items.map((item) => {
|
|
@@ -3160,7 +3165,7 @@ var DataTableListMenu = ({
|
|
|
3160
3165
|
}),
|
|
3161
3166
|
/* @__PURE__ */ jsx14(DropdownMenuContent, {
|
|
3162
3167
|
align: "end",
|
|
3163
|
-
className: "max-h-72 w-
|
|
3168
|
+
className: "max-h-[min(18rem,var(--available-height))] w-72 max-w-[calc(100vw-2rem)]",
|
|
3164
3169
|
onClick: (event) => event.stopPropagation(),
|
|
3165
3170
|
onPointerDown: (event) => event.stopPropagation(),
|
|
3166
3171
|
children: /* @__PURE__ */ jsxs8(DropdownMenuGroup, {
|
|
@@ -3194,8 +3199,12 @@ var DataTableListMenu = ({
|
|
|
3194
3199
|
}, action.id ?? action.name))
|
|
3195
3200
|
})
|
|
3196
3201
|
]
|
|
3197
|
-
}, item.value ?? `${item.label}-${index}`) : /* @__PURE__ */ jsx14(
|
|
3198
|
-
|
|
3202
|
+
}, item.value ?? `${item.label}-${index}`) : /* @__PURE__ */ jsx14(DropdownMenuItem, {
|
|
3203
|
+
closeOnClick: Boolean(onItemClick),
|
|
3204
|
+
onClick: (event) => {
|
|
3205
|
+
event.stopPropagation();
|
|
3206
|
+
onItemClick?.(item);
|
|
3207
|
+
},
|
|
3199
3208
|
children: /* @__PURE__ */ jsx14(DataTableListEntry, {
|
|
3200
3209
|
item,
|
|
3201
3210
|
appearance: display === "icon" ? "detail" : "list"
|
|
@@ -3377,7 +3386,8 @@ var DataTableListEntry = ({
|
|
|
3377
3386
|
});
|
|
3378
3387
|
if (appearance === "list") {
|
|
3379
3388
|
return /* @__PURE__ */ jsx14("span", {
|
|
3380
|
-
className: "truncate",
|
|
3389
|
+
className: "min-w-0 flex-1 truncate",
|
|
3390
|
+
title: item.label,
|
|
3381
3391
|
children: item.label
|
|
3382
3392
|
});
|
|
3383
3393
|
}
|