@flamingo-stack/openframe-frontend-core 0.0.273 → 0.0.274
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/{chunk-IXRPEMZP.cjs → chunk-2KHFSSFZ.cjs} +11 -11
- package/dist/{chunk-IXRPEMZP.cjs.map → chunk-2KHFSSFZ.cjs.map} +1 -1
- package/dist/{chunk-Q32JUFIK.cjs → chunk-4DYXV3E7.cjs} +508 -543
- package/dist/chunk-4DYXV3E7.cjs.map +1 -0
- package/dist/{chunk-MCCYGAPE.js → chunk-FLIWL6V4.js} +2 -2
- package/dist/{chunk-4SNHFZQT.js → chunk-GL5X6VVC.js} +2 -2
- package/dist/{chunk-VFMMVGA4.js → chunk-OPSZNW3I.js} +316 -351
- package/dist/chunk-OPSZNW3I.js.map +1 -0
- package/dist/{chunk-UQCB2CP7.js → chunk-VASNLWPZ.js} +2 -2
- package/dist/{chunk-EEMZBQ7O.cjs → chunk-W5KBDFCR.cjs} +25 -25
- package/dist/{chunk-EEMZBQ7O.cjs.map → chunk-W5KBDFCR.cjs.map} +1 -1
- package/dist/{chunk-V5OZQF4B.cjs → chunk-WU6PMH5L.cjs} +32 -32
- package/dist/{chunk-V5OZQF4B.cjs.map → chunk-WU6PMH5L.cjs.map} +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/index.cjs +54 -56
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +3 -5
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +53 -53
- package/dist/components/tickets/index.js +3 -3
- package/dist/components/ui/data-table/data-table-body.d.ts +5 -1
- package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-empty.d.ts +10 -10
- package/dist/components/ui/data-table/data-table-empty.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +2 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +1 -3
- package/dist/components/ui/no-data/no-data-actions.d.ts +11 -15
- package/dist/components/ui/no-data/no-data-actions.d.ts.map +1 -1
- package/dist/components/ui/no-data/no-data-styles.d.ts +0 -1
- package/dist/components/ui/no-data/no-data-styles.d.ts.map +1 -1
- package/dist/components/ui/no-data/no-data.d.ts.map +1 -1
- package/dist/components/ui/query-report-table/query-report-table.d.ts.map +1 -1
- package/dist/components/ui/table/table-empty-state.d.ts +1 -2
- package/dist/components/ui/table/table-empty-state.d.ts.map +1 -1
- package/dist/components/ui/table/table.d.ts.map +1 -1
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -3
- package/package.json +1 -1
- package/src/components/ui/data-table/.data-table-empty.md +28 -24
- package/src/components/ui/data-table/data-table-body.tsx +13 -2
- package/src/components/ui/data-table/data-table-empty.tsx +18 -35
- package/src/components/ui/no-data/no-data-actions.tsx +20 -43
- package/src/components/ui/no-data/no-data-styles.ts +8 -18
- package/src/components/ui/no-data/no-data.tsx +7 -1
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/table/table-empty-state.tsx +12 -37
- package/src/components/ui/table/table.tsx +1 -1
- package/src/stories/DataTable.stories.tsx +26 -2
- package/src/stories/EmptyState.stories.tsx +21 -34
- package/dist/chunk-Q32JUFIK.cjs.map +0 -1
- package/dist/chunk-VFMMVGA4.js.map +0 -1
- /package/dist/{chunk-MCCYGAPE.js.map → chunk-FLIWL6V4.js.map} +0 -0
- /package/dist/{chunk-4SNHFZQT.js.map → chunk-GL5X6VVC.js.map} +0 -0
- /package/dist/{chunk-UQCB2CP7.js.map → chunk-VASNLWPZ.js.map} +0 -0
|
@@ -9113,12 +9113,11 @@ var noDataIconClasses = "inline-flex shrink-0 items-center justify-center [&_svg
|
|
|
9113
9113
|
var noDataActionsVariants = cva2("overflow-hidden rounded-md", {
|
|
9114
9114
|
variants: {
|
|
9115
9115
|
variant: {
|
|
9116
|
-
outline: "
|
|
9116
|
+
outline: "border border-ods-border"
|
|
9117
9117
|
}
|
|
9118
9118
|
},
|
|
9119
9119
|
defaultVariants: { variant: "outline" }
|
|
9120
9120
|
});
|
|
9121
|
-
var noDataActionInteractiveClasses = "cursor-pointer transition-colors hover:bg-ods-bg-hover active:bg-ods-bg-active focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus focus-visible:ring-inset disabled:cursor-default disabled:pointer-events-none disabled:text-ods-text-disabled";
|
|
9122
9121
|
|
|
9123
9122
|
// src/components/ui/no-data/no-data-message.tsx
|
|
9124
9123
|
import { jsx as jsx75, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
@@ -9150,22 +9149,19 @@ init_cn();
|
|
|
9150
9149
|
import React32 from "react";
|
|
9151
9150
|
import { jsx as jsx76, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
9152
9151
|
var NoDataAction = React32.forwardRef(
|
|
9153
|
-
function NoDataAction2({ icon, label, children, className,
|
|
9152
|
+
function NoDataAction2({ icon, label, children, className, ...props }, ref) {
|
|
9154
9153
|
return /* @__PURE__ */ jsxs60(
|
|
9155
|
-
"
|
|
9154
|
+
"div",
|
|
9156
9155
|
{
|
|
9157
9156
|
ref,
|
|
9158
|
-
type: type ?? "button",
|
|
9159
|
-
disabled,
|
|
9160
9157
|
className: cn(
|
|
9161
|
-
"flex flex-1 items-center gap-[var(--spacing-system-s)] p-[var(--spacing-system-m)] text-
|
|
9162
|
-
"md:flex-col md:items-start md:gap-[var(--spacing-system-xs)]",
|
|
9163
|
-
noDataActionInteractiveClasses,
|
|
9158
|
+
"flex flex-1 items-center gap-[var(--spacing-system-s)] p-[var(--spacing-system-m)] text-ods-text-secondary",
|
|
9159
|
+
"md:w-[224px] md:flex-none md:flex-col md:items-start md:gap-[var(--spacing-system-xs)]",
|
|
9164
9160
|
className
|
|
9165
9161
|
),
|
|
9166
9162
|
...props,
|
|
9167
9163
|
children: [
|
|
9168
|
-
icon && /* @__PURE__ */ jsx76("span", { className: noDataIconClasses, children: icon }),
|
|
9164
|
+
icon && /* @__PURE__ */ jsx76("span", { className: cn(noDataIconClasses, "text-ods-text-primary"), children: icon }),
|
|
9169
9165
|
/* @__PURE__ */ jsx76("span", { className: "min-w-0 flex-1 break-words text-h6 md:w-full md:flex-none", children: label ?? children })
|
|
9170
9166
|
]
|
|
9171
9167
|
}
|
|
@@ -9179,11 +9175,7 @@ var NoDataActions = React32.forwardRef(
|
|
|
9179
9175
|
"div",
|
|
9180
9176
|
{
|
|
9181
9177
|
ref,
|
|
9182
|
-
className: cn(
|
|
9183
|
-
noDataActionsVariants({ variant }),
|
|
9184
|
-
"flex w-full flex-col md:w-auto md:flex-row",
|
|
9185
|
-
className
|
|
9186
|
-
),
|
|
9178
|
+
className: cn(noDataActionsVariants({ variant }), "flex w-full flex-col md:w-auto md:flex-row", className),
|
|
9187
9179
|
...props,
|
|
9188
9180
|
children: blocks.map((block, index) => /* @__PURE__ */ jsxs60(React32.Fragment, { children: [
|
|
9189
9181
|
index > 0 && /* @__PURE__ */ jsx76(
|
|
@@ -9217,7 +9209,17 @@ var NoData = React33.forwardRef(function NoData2({
|
|
|
9217
9209
|
}, ref) {
|
|
9218
9210
|
const hasMessage = !!(icon || title || description);
|
|
9219
9211
|
const hasActions = !!actions?.length;
|
|
9220
|
-
const footerButton = button ?? (buttonLabel != null ? /* @__PURE__ */ jsx77(
|
|
9212
|
+
const footerButton = button ?? (buttonLabel != null ? /* @__PURE__ */ jsx77(
|
|
9213
|
+
Button,
|
|
9214
|
+
{
|
|
9215
|
+
variant: "outline",
|
|
9216
|
+
leftIcon: buttonIcon,
|
|
9217
|
+
onClick: onButtonClick,
|
|
9218
|
+
...buttonProps,
|
|
9219
|
+
className: cn("w-full md:w-auto", buttonProps?.className),
|
|
9220
|
+
children: buttonLabel
|
|
9221
|
+
}
|
|
9222
|
+
) : null);
|
|
9221
9223
|
return /* @__PURE__ */ jsxs61(
|
|
9222
9224
|
"div",
|
|
9223
9225
|
{
|
|
@@ -25859,35 +25861,17 @@ function CursorPaginationSimple({
|
|
|
25859
25861
|
|
|
25860
25862
|
// src/components/ui/table/table-empty-state.tsx
|
|
25861
25863
|
init_cn();
|
|
25862
|
-
|
|
25863
|
-
|
|
25864
|
-
|
|
25865
|
-
|
|
25866
|
-
message: message2 = "No data available",
|
|
25867
|
-
icon,
|
|
25868
|
-
action,
|
|
25869
|
-
className
|
|
25870
|
-
}) {
|
|
25871
|
-
return /* @__PURE__ */ jsxs182(
|
|
25872
|
-
"div",
|
|
25864
|
+
import { jsx as jsx228 } from "react/jsx-runtime";
|
|
25865
|
+
function TableEmptyState({ message: message2, icon, action, className }) {
|
|
25866
|
+
return /* @__PURE__ */ jsx228(
|
|
25867
|
+
NoData,
|
|
25873
25868
|
{
|
|
25874
|
-
|
|
25875
|
-
|
|
25876
|
-
|
|
25877
|
-
|
|
25878
|
-
|
|
25879
|
-
|
|
25880
|
-
/* @__PURE__ */ jsx228("p", { className: "text-h4 text-ods-text-secondary text-center mb-6", children: message2 }),
|
|
25881
|
-
action && /* @__PURE__ */ jsx228(
|
|
25882
|
-
Button,
|
|
25883
|
-
{
|
|
25884
|
-
variant: "outline",
|
|
25885
|
-
onClick: action.onClick,
|
|
25886
|
-
className: "bg-ods-card border-ods-border hover:bg-ods-bg-active text-ods-text-primary",
|
|
25887
|
-
children: action.label
|
|
25888
|
-
}
|
|
25889
|
-
)
|
|
25890
|
-
]
|
|
25869
|
+
icon: icon ?? /* @__PURE__ */ jsx228(SearchIcon, {}),
|
|
25870
|
+
title: message2 ?? "No results found",
|
|
25871
|
+
description: message2 == null ? "Try adjusting your search or filters" : void 0,
|
|
25872
|
+
buttonLabel: action?.label,
|
|
25873
|
+
onButtonClick: action?.onClick,
|
|
25874
|
+
className: cn("py-[var(--spacing-system-xxl)]", className)
|
|
25891
25875
|
}
|
|
25892
25876
|
);
|
|
25893
25877
|
}
|
|
@@ -25897,7 +25881,7 @@ init_cn();
|
|
|
25897
25881
|
|
|
25898
25882
|
// src/components/ui/table/table-column-filter-dropdown.tsx
|
|
25899
25883
|
init_cn();
|
|
25900
|
-
import { jsx as jsx229, jsxs as
|
|
25884
|
+
import { jsx as jsx229, jsxs as jsxs182 } from "react/jsx-runtime";
|
|
25901
25885
|
function TableColumnFilterDropdown({
|
|
25902
25886
|
columnKey,
|
|
25903
25887
|
columnLabel,
|
|
@@ -25911,7 +25895,7 @@ function TableColumnFilterDropdown({
|
|
|
25911
25895
|
return /* @__PURE__ */ jsx229(
|
|
25912
25896
|
FiltersDropdown,
|
|
25913
25897
|
{
|
|
25914
|
-
triggerElement: /* @__PURE__ */
|
|
25898
|
+
triggerElement: /* @__PURE__ */ jsxs182(
|
|
25915
25899
|
"div",
|
|
25916
25900
|
{
|
|
25917
25901
|
className: "flex items-center gap-1.5 rounded px-1 py-0.5 cursor-pointer hover:bg-ods-bg-active transition-all duration-200",
|
|
@@ -25980,7 +25964,7 @@ function getHideClasses(hideAt) {
|
|
|
25980
25964
|
}
|
|
25981
25965
|
|
|
25982
25966
|
// src/components/ui/table/table-header.tsx
|
|
25983
|
-
import { Fragment as Fragment34, jsx as jsx230, jsxs as
|
|
25967
|
+
import { Fragment as Fragment34, jsx as jsx230, jsxs as jsxs183 } from "react/jsx-runtime";
|
|
25984
25968
|
function TableHeader({
|
|
25985
25969
|
columns,
|
|
25986
25970
|
className,
|
|
@@ -26026,7 +26010,7 @@ function TableHeader({
|
|
|
26026
26010
|
return sortDirection === "asc" ? /* @__PURE__ */ jsx230(Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ jsx230(Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
|
|
26027
26011
|
};
|
|
26028
26012
|
const isLgUp = useLgUp() ?? false;
|
|
26029
|
-
return /* @__PURE__ */
|
|
26013
|
+
return /* @__PURE__ */ jsxs183(
|
|
26030
26014
|
"div",
|
|
26031
26015
|
{
|
|
26032
26016
|
className: cn(
|
|
@@ -26063,7 +26047,7 @@ function TableHeader({
|
|
|
26063
26047
|
),
|
|
26064
26048
|
children: isActionsColumn ? (
|
|
26065
26049
|
// Render total items count in actions column
|
|
26066
|
-
totalItemsCount > 0 && /* @__PURE__ */
|
|
26050
|
+
totalItemsCount > 0 && /* @__PURE__ */ jsxs183("span", { className: "text-h6 text-ods-text-secondary whitespace-nowrap", children: [
|
|
26067
26051
|
"Showing ",
|
|
26068
26052
|
totalItemsCount,
|
|
26069
26053
|
" ",
|
|
@@ -26091,10 +26075,10 @@ function TableHeader({
|
|
|
26091
26075
|
column.sortable && "cursor-pointer hover:text-ods-text-primary transition-colors"
|
|
26092
26076
|
),
|
|
26093
26077
|
onClick: () => handleSort(column),
|
|
26094
|
-
children: column.renderHeader ? /* @__PURE__ */
|
|
26078
|
+
children: column.renderHeader ? /* @__PURE__ */ jsxs183(Fragment34, { children: [
|
|
26095
26079
|
column.renderHeader(),
|
|
26096
26080
|
getSortIcon(column)
|
|
26097
|
-
] }) : /* @__PURE__ */
|
|
26081
|
+
] }) : /* @__PURE__ */ jsxs183(Fragment34, { children: [
|
|
26098
26082
|
/* @__PURE__ */ jsx230("span", { className: "text-h5 text-ods-text-secondary uppercase whitespace-nowrap", children: column.label }),
|
|
26099
26083
|
getSortIcon(column)
|
|
26100
26084
|
] })
|
|
@@ -26149,7 +26133,7 @@ function TableCell({
|
|
|
26149
26133
|
|
|
26150
26134
|
// src/components/ui/table/table-skeleton.tsx
|
|
26151
26135
|
init_cn();
|
|
26152
|
-
import { Fragment as Fragment35, jsx as jsx232, jsxs as
|
|
26136
|
+
import { Fragment as Fragment35, jsx as jsx232, jsxs as jsxs184 } from "react/jsx-runtime";
|
|
26153
26137
|
var ROW_HEIGHT_DESKTOP = "h-[68px] md:h-[80px]";
|
|
26154
26138
|
var ROW_HEIGHT_MOBILE = "h-[68px]";
|
|
26155
26139
|
function TableCardSkeleton({
|
|
@@ -26160,7 +26144,7 @@ function TableCardSkeleton({
|
|
|
26160
26144
|
className,
|
|
26161
26145
|
rowClassName
|
|
26162
26146
|
}) {
|
|
26163
|
-
return /* @__PURE__ */ jsx232(Fragment35, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */
|
|
26147
|
+
return /* @__PURE__ */ jsx232(Fragment35, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs184(
|
|
26164
26148
|
"div",
|
|
26165
26149
|
{
|
|
26166
26150
|
className: cn(
|
|
@@ -26168,12 +26152,12 @@ function TableCardSkeleton({
|
|
|
26168
26152
|
className
|
|
26169
26153
|
),
|
|
26170
26154
|
children: [
|
|
26171
|
-
/* @__PURE__ */
|
|
26155
|
+
/* @__PURE__ */ jsxs184("div", { className: cn(
|
|
26172
26156
|
"hidden md:flex items-center gap-4 px-4 py-0",
|
|
26173
26157
|
ROW_HEIGHT_DESKTOP,
|
|
26174
26158
|
rowClassName
|
|
26175
26159
|
), children: [
|
|
26176
|
-
columns.map((column) => /* @__PURE__ */
|
|
26160
|
+
columns.map((column) => /* @__PURE__ */ jsxs184(
|
|
26177
26161
|
"div",
|
|
26178
26162
|
{
|
|
26179
26163
|
className: cn(
|
|
@@ -26187,18 +26171,18 @@ function TableCardSkeleton({
|
|
|
26187
26171
|
},
|
|
26188
26172
|
column.key
|
|
26189
26173
|
)),
|
|
26190
|
-
hasActions && /* @__PURE__ */
|
|
26174
|
+
hasActions && /* @__PURE__ */ jsxs184("div", { className: cn("flex gap-2 items-center shrink-0", !hasChevron && "ml-auto"), children: [
|
|
26191
26175
|
/* @__PURE__ */ jsx232("div", { className: "h-12 w-12 bg-ods-bg-surface rounded" }),
|
|
26192
26176
|
/* @__PURE__ */ jsx232("div", { className: "h-12 w-24 bg-ods-bg-surface rounded" })
|
|
26193
26177
|
] }),
|
|
26194
26178
|
hasChevron && /* @__PURE__ */ jsx232("div", { className: cn("flex items-center justify-end shrink-0 w-12", !hasActions && "ml-auto"), children: /* @__PURE__ */ jsx232("div", { className: "h-8 w-8 bg-ods-bg-surface rounded" }) })
|
|
26195
26179
|
] }),
|
|
26196
|
-
/* @__PURE__ */
|
|
26180
|
+
/* @__PURE__ */ jsxs184("div", { className: cn(
|
|
26197
26181
|
"flex md:hidden gap-3 items-center justify-start px-3 py-0",
|
|
26198
26182
|
ROW_HEIGHT_MOBILE,
|
|
26199
26183
|
rowClassName
|
|
26200
26184
|
), children: [
|
|
26201
|
-
/* @__PURE__ */
|
|
26185
|
+
/* @__PURE__ */ jsxs184("div", { className: "flex-1 flex flex-col justify-center min-w-0 py-3", children: [
|
|
26202
26186
|
/* @__PURE__ */ jsx232("div", { className: "h-4 bg-ods-bg-surface rounded w-3/4 mb-2" }),
|
|
26203
26187
|
/* @__PURE__ */ jsx232("div", { className: "h-3 bg-ods-bg-surface rounded w-1/2 opacity-60" })
|
|
26204
26188
|
] }),
|
|
@@ -26212,7 +26196,7 @@ function TableCardSkeleton({
|
|
|
26212
26196
|
}
|
|
26213
26197
|
|
|
26214
26198
|
// src/components/ui/table/table-row.tsx
|
|
26215
|
-
import { jsx as jsx233, jsxs as
|
|
26199
|
+
import { jsx as jsx233, jsxs as jsxs185 } from "react/jsx-runtime";
|
|
26216
26200
|
function TableRow({
|
|
26217
26201
|
item,
|
|
26218
26202
|
columns,
|
|
@@ -26260,7 +26244,7 @@ function TableRow({
|
|
|
26260
26244
|
}
|
|
26261
26245
|
return String(value);
|
|
26262
26246
|
};
|
|
26263
|
-
return /* @__PURE__ */
|
|
26247
|
+
return /* @__PURE__ */ jsxs185(
|
|
26264
26248
|
"div",
|
|
26265
26249
|
{
|
|
26266
26250
|
className: cn(
|
|
@@ -26279,7 +26263,7 @@ function TableRow({
|
|
|
26279
26263
|
"aria-label": "View details"
|
|
26280
26264
|
}
|
|
26281
26265
|
),
|
|
26282
|
-
/* @__PURE__ */
|
|
26266
|
+
/* @__PURE__ */ jsxs185(
|
|
26283
26267
|
"div",
|
|
26284
26268
|
{
|
|
26285
26269
|
className: cn(
|
|
@@ -26315,7 +26299,7 @@ function TableRow({
|
|
|
26315
26299
|
}
|
|
26316
26300
|
|
|
26317
26301
|
// src/components/ui/table/table.tsx
|
|
26318
|
-
import { Fragment as Fragment36, jsx as jsx234, jsxs as
|
|
26302
|
+
import { Fragment as Fragment36, jsx as jsx234, jsxs as jsxs186 } from "react/jsx-runtime";
|
|
26319
26303
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
26320
26304
|
const hasActions = Boolean(rowActions?.length) || Boolean(renderRowActions);
|
|
26321
26305
|
const result = [...columns];
|
|
@@ -26373,7 +26357,7 @@ function Table({
|
|
|
26373
26357
|
columns,
|
|
26374
26358
|
rowKey,
|
|
26375
26359
|
loading = false,
|
|
26376
|
-
emptyMessage
|
|
26360
|
+
emptyMessage,
|
|
26377
26361
|
skeletonRows = 10,
|
|
26378
26362
|
className,
|
|
26379
26363
|
containerClassName,
|
|
@@ -26462,15 +26446,15 @@ function Table({
|
|
|
26462
26446
|
observer.observe(sentinel);
|
|
26463
26447
|
return () => observer.disconnect();
|
|
26464
26448
|
}, [infiniteScroll?.hasNextPage, infiniteScroll?.isFetchingNextPage]);
|
|
26465
|
-
return /* @__PURE__ */
|
|
26466
|
-
showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */
|
|
26467
|
-
/* @__PURE__ */
|
|
26449
|
+
return /* @__PURE__ */ jsxs186("div", { className: cn("flex flex-col gap-1 w-full", containerClassName), children: [
|
|
26450
|
+
showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ jsxs186("div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
|
|
26451
|
+
/* @__PURE__ */ jsxs186("span", { className: "text-ods-text-secondary text-sm", children: [
|
|
26468
26452
|
selectedRows.length,
|
|
26469
26453
|
" item",
|
|
26470
26454
|
selectedRows.length !== 1 ? "s" : "",
|
|
26471
26455
|
" selected"
|
|
26472
26456
|
] }),
|
|
26473
|
-
/* @__PURE__ */ jsx234("div", { className: "flex gap-2", children: bulkActions.map((action, index) => /* @__PURE__ */
|
|
26457
|
+
/* @__PURE__ */ jsx234("div", { className: "flex gap-2", children: bulkActions.map((action, index) => /* @__PURE__ */ jsxs186(
|
|
26474
26458
|
"button",
|
|
26475
26459
|
{
|
|
26476
26460
|
onClick: () => action.onClick(selectedRows),
|
|
@@ -26515,7 +26499,7 @@ function Table({
|
|
|
26515
26499
|
hasActions: Boolean(rowActions) && rowActions.length > 0,
|
|
26516
26500
|
hasChevron: Boolean(rowHref)
|
|
26517
26501
|
}
|
|
26518
|
-
) : data.length === 0 ? /* @__PURE__ */ jsx234(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */
|
|
26502
|
+
) : data.length === 0 ? /* @__PURE__ */ jsx234(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs186(Fragment36, { children: [
|
|
26519
26503
|
data.map((item, index) => /* @__PURE__ */ jsx234(
|
|
26520
26504
|
TableRow,
|
|
26521
26505
|
{
|
|
@@ -26542,7 +26526,7 @@ function Table({
|
|
|
26542
26526
|
}
|
|
26543
26527
|
),
|
|
26544
26528
|
infiniteScroll?.hasNextPage && /* @__PURE__ */ jsx234("div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
|
|
26545
|
-
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */
|
|
26529
|
+
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ jsxs186(
|
|
26546
26530
|
"div",
|
|
26547
26531
|
{
|
|
26548
26532
|
className: "relative rounded-[6px] overflow-hidden pointer-events-none",
|
|
@@ -26622,7 +26606,7 @@ function TableDescriptionCell({
|
|
|
26622
26606
|
|
|
26623
26607
|
// src/components/ui/table/table-timestamp-cell.tsx
|
|
26624
26608
|
init_cn();
|
|
26625
|
-
import { jsx as jsx236, jsxs as
|
|
26609
|
+
import { jsx as jsx236, jsxs as jsxs187 } from "react/jsx-runtime";
|
|
26626
26610
|
function formatTimestampValue(timestamp) {
|
|
26627
26611
|
if (timestamp instanceof Date) {
|
|
26628
26612
|
return timestamp.toLocaleString();
|
|
@@ -26646,7 +26630,7 @@ function TableTimestampCell({
|
|
|
26646
26630
|
formatTimestamp: formatTimestamp2 = true
|
|
26647
26631
|
}) {
|
|
26648
26632
|
const displayTimestamp = formatTimestamp2 ? formatTimestampValue(timestamp) : String(timestamp);
|
|
26649
|
-
return /* @__PURE__ */
|
|
26633
|
+
return /* @__PURE__ */ jsxs187("div", { className: cn("flex flex-col justify-center shrink-0", className), children: [
|
|
26650
26634
|
/* @__PURE__ */ jsx236("span", { className: "text-h4 text-ods-text-primary truncate", children: displayTimestamp }),
|
|
26651
26635
|
/* @__PURE__ */ jsx236("span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", children: idLabel ? `${idLabel}: ${id}` : id })
|
|
26652
26636
|
] });
|
|
@@ -26660,7 +26644,7 @@ import { useMemo as useMemo21 } from "react";
|
|
|
26660
26644
|
// src/components/ui/query-report-table/query-report-table-header.tsx
|
|
26661
26645
|
init_cn();
|
|
26662
26646
|
import { useRef as useRef38, useState as useState64, useCallback as useCallback26 } from "react";
|
|
26663
|
-
import { jsx as jsx237, jsxs as
|
|
26647
|
+
import { jsx as jsx237, jsxs as jsxs188 } from "react/jsx-runtime";
|
|
26664
26648
|
function QueryReportTableHeader({
|
|
26665
26649
|
columns,
|
|
26666
26650
|
columnWidth,
|
|
@@ -26696,7 +26680,7 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
26696
26680
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
26697
26681
|
}
|
|
26698
26682
|
}, []);
|
|
26699
|
-
return /* @__PURE__ */ jsx237(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */
|
|
26683
|
+
return /* @__PURE__ */ jsx237(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsxs188(Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
26700
26684
|
/* @__PURE__ */ jsx237(TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ jsx237(
|
|
26701
26685
|
"div",
|
|
26702
26686
|
{
|
|
@@ -26719,7 +26703,7 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
26719
26703
|
// src/components/ui/query-report-table/query-report-table-row.tsx
|
|
26720
26704
|
init_cn();
|
|
26721
26705
|
import { useRef as useRef39, useState as useState65, useCallback as useCallback27 } from "react";
|
|
26722
|
-
import { jsx as jsx238, jsxs as
|
|
26706
|
+
import { jsx as jsx238, jsxs as jsxs189 } from "react/jsx-runtime";
|
|
26723
26707
|
function QueryReportTableRow({
|
|
26724
26708
|
row,
|
|
26725
26709
|
columns,
|
|
@@ -26772,7 +26756,7 @@ function TruncatedCell({ value, className }) {
|
|
|
26772
26756
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
26773
26757
|
}
|
|
26774
26758
|
}, []);
|
|
26775
|
-
return /* @__PURE__ */ jsx238(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */
|
|
26759
|
+
return /* @__PURE__ */ jsx238(TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ jsxs189(Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
26776
26760
|
/* @__PURE__ */ jsx238(TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ jsx238("span", { ref: textRef, className: cn("truncate block", className), children: value }) }),
|
|
26777
26761
|
/* @__PURE__ */ jsx238(TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
|
|
26778
26762
|
] }) });
|
|
@@ -26780,7 +26764,7 @@ function TruncatedCell({ value, className }) {
|
|
|
26780
26764
|
|
|
26781
26765
|
// src/components/ui/query-report-table/query-report-table-skeleton.tsx
|
|
26782
26766
|
init_cn();
|
|
26783
|
-
import { jsx as jsx239, jsxs as
|
|
26767
|
+
import { jsx as jsx239, jsxs as jsxs190 } from "react/jsx-runtime";
|
|
26784
26768
|
function QueryReportTableSkeleton({
|
|
26785
26769
|
rows,
|
|
26786
26770
|
columns,
|
|
@@ -26789,7 +26773,7 @@ function QueryReportTableSkeleton({
|
|
|
26789
26773
|
className
|
|
26790
26774
|
}) {
|
|
26791
26775
|
const isCompact = variant === "compact";
|
|
26792
|
-
return /* @__PURE__ */
|
|
26776
|
+
return /* @__PURE__ */ jsxs190("div", { className: cn("flex flex-col", isCompact ? "gap-0" : "gap-2", className), children: [
|
|
26793
26777
|
/* @__PURE__ */ jsx239("div", { className: cn(
|
|
26794
26778
|
"flex items-center gap-4 px-4",
|
|
26795
26779
|
isCompact ? "py-2 border-b border-ods-border" : ""
|
|
@@ -26874,14 +26858,14 @@ function exportToCSV(data, columns, filename) {
|
|
|
26874
26858
|
}
|
|
26875
26859
|
|
|
26876
26860
|
// src/components/ui/query-report-table/query-report-table.tsx
|
|
26877
|
-
import { jsx as jsx240, jsxs as
|
|
26861
|
+
import { jsx as jsx240, jsxs as jsxs191 } from "react/jsx-runtime";
|
|
26878
26862
|
function QueryReportTable({
|
|
26879
26863
|
title,
|
|
26880
26864
|
data,
|
|
26881
26865
|
loading = false,
|
|
26882
26866
|
skeletonRows = 8,
|
|
26883
26867
|
skeletonColumns = 6,
|
|
26884
|
-
emptyMessage
|
|
26868
|
+
emptyMessage,
|
|
26885
26869
|
columnWidth = 160,
|
|
26886
26870
|
columnOrder,
|
|
26887
26871
|
showExport = true,
|
|
@@ -26916,10 +26900,10 @@ function QueryReportTable({
|
|
|
26916
26900
|
onThumbPointerMove,
|
|
26917
26901
|
onThumbPointerUp
|
|
26918
26902
|
} = useHorizontalScrollbar();
|
|
26919
|
-
return /* @__PURE__ */
|
|
26920
|
-
!isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */
|
|
26903
|
+
return /* @__PURE__ */ jsxs191("div", { className: cn("flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
|
|
26904
|
+
!isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ jsxs191("div", { className: "flex items-end justify-between pt-6", children: [
|
|
26921
26905
|
/* @__PURE__ */ jsx240("h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
|
|
26922
|
-
/* @__PURE__ */
|
|
26906
|
+
/* @__PURE__ */ jsxs191("div", { className: "flex items-center gap-3", children: [
|
|
26923
26907
|
headerActions,
|
|
26924
26908
|
showExport && data.length > 0 && /* @__PURE__ */ jsx240(
|
|
26925
26909
|
Button,
|
|
@@ -26944,7 +26928,7 @@ function QueryReportTable({
|
|
|
26944
26928
|
}
|
|
26945
26929
|
),
|
|
26946
26930
|
!loading && data.length === 0 && /* @__PURE__ */ jsx240(TableEmptyState, { message: emptyMessage }),
|
|
26947
|
-
!loading && data.length > 0 && /* @__PURE__ */
|
|
26931
|
+
!loading && data.length > 0 && /* @__PURE__ */ jsxs191("div", { className: "flex flex-col gap-1", children: [
|
|
26948
26932
|
!isCompact && thumbRatio > 0 && /* @__PURE__ */ jsx240(
|
|
26949
26933
|
"div",
|
|
26950
26934
|
{
|
|
@@ -26969,14 +26953,14 @@ function QueryReportTable({
|
|
|
26969
26953
|
)
|
|
26970
26954
|
}
|
|
26971
26955
|
),
|
|
26972
|
-
/* @__PURE__ */
|
|
26956
|
+
/* @__PURE__ */ jsxs191("div", { className: "relative", children: [
|
|
26973
26957
|
/* @__PURE__ */ jsx240(
|
|
26974
26958
|
"div",
|
|
26975
26959
|
{
|
|
26976
26960
|
ref: scrollRef,
|
|
26977
26961
|
className: cn("overflow-x-auto", tableClassName),
|
|
26978
26962
|
onScroll,
|
|
26979
|
-
children: /* @__PURE__ */
|
|
26963
|
+
children: /* @__PURE__ */ jsxs191("div", { style: { minWidth: tableMinWidth }, children: [
|
|
26980
26964
|
/* @__PURE__ */ jsx240(
|
|
26981
26965
|
QueryReportTableHeader,
|
|
26982
26966
|
{
|
|
@@ -27062,7 +27046,7 @@ var multiSelectFilterFn = (row, columnId, filterValue) => {
|
|
|
27062
27046
|
};
|
|
27063
27047
|
|
|
27064
27048
|
// src/components/ui/data-table/data-table-column-filter.tsx
|
|
27065
|
-
import { jsx as jsx242, jsxs as
|
|
27049
|
+
import { jsx as jsx242, jsxs as jsxs192 } from "react/jsx-runtime";
|
|
27066
27050
|
var EMPTY_ARRAY = [];
|
|
27067
27051
|
function DataTableColumnFilter({
|
|
27068
27052
|
column,
|
|
@@ -27103,7 +27087,7 @@ function DataTableColumnFilter({
|
|
|
27103
27087
|
FiltersDropdown,
|
|
27104
27088
|
{
|
|
27105
27089
|
className: "!block w-full",
|
|
27106
|
-
triggerElement: /* @__PURE__ */
|
|
27090
|
+
triggerElement: /* @__PURE__ */ jsxs192(
|
|
27107
27091
|
"div",
|
|
27108
27092
|
{
|
|
27109
27093
|
className: cn(
|
|
@@ -27136,7 +27120,7 @@ function DataTableColumnFilter({
|
|
|
27136
27120
|
}
|
|
27137
27121
|
|
|
27138
27122
|
// src/components/ui/data-table/data-table-header.tsx
|
|
27139
|
-
import { Fragment as Fragment37, jsx as jsx243, jsxs as
|
|
27123
|
+
import { Fragment as Fragment37, jsx as jsx243, jsxs as jsxs193 } from "react/jsx-runtime";
|
|
27140
27124
|
function DataTableHeader({
|
|
27141
27125
|
className,
|
|
27142
27126
|
stickyHeader,
|
|
@@ -27162,7 +27146,7 @@ function DataTableHeader({
|
|
|
27162
27146
|
stickyHeader && `sticky z-10 bg-ods-bg ${stickyHeaderOffset ?? "top-0"}`,
|
|
27163
27147
|
className
|
|
27164
27148
|
),
|
|
27165
|
-
children: /* @__PURE__ */
|
|
27149
|
+
children: /* @__PURE__ */ jsxs193("div", { className: "flex items-stretch gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)] relative", children: [
|
|
27166
27150
|
headerGroup.headers.map((header) => /* @__PURE__ */ jsx243(
|
|
27167
27151
|
HeaderCell,
|
|
27168
27152
|
{
|
|
@@ -27206,7 +27190,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
27206
27190
|
label: resolveHeaderLabel(header),
|
|
27207
27191
|
align
|
|
27208
27192
|
}
|
|
27209
|
-
) : /* @__PURE__ */
|
|
27193
|
+
) : /* @__PURE__ */ jsxs193(
|
|
27210
27194
|
"div",
|
|
27211
27195
|
{
|
|
27212
27196
|
className: cn(
|
|
@@ -27247,35 +27231,16 @@ init_cn();
|
|
|
27247
27231
|
|
|
27248
27232
|
// src/components/ui/data-table/data-table-empty.tsx
|
|
27249
27233
|
init_cn();
|
|
27250
|
-
|
|
27251
|
-
|
|
27252
|
-
|
|
27253
|
-
|
|
27254
|
-
message: message2 = "No data available",
|
|
27255
|
-
icon,
|
|
27256
|
-
action,
|
|
27257
|
-
className
|
|
27258
|
-
}) {
|
|
27259
|
-
return /* @__PURE__ */ jsxs195(
|
|
27260
|
-
"div",
|
|
27234
|
+
import { jsx as jsx244 } from "react/jsx-runtime";
|
|
27235
|
+
function DataTableEmpty({ className, ...props }) {
|
|
27236
|
+
return /* @__PURE__ */ jsx244(
|
|
27237
|
+
NoData,
|
|
27261
27238
|
{
|
|
27262
|
-
|
|
27263
|
-
|
|
27264
|
-
|
|
27265
|
-
|
|
27266
|
-
|
|
27267
|
-
/* @__PURE__ */ jsx244("div", { className: "mb-[var(--spacing-system-mf)] text-ods-text-secondary", children: icon ?? /* @__PURE__ */ jsx244(FileX22, { className: "w-12 h-12" }) }),
|
|
27268
|
-
/* @__PURE__ */ jsx244("p", { className: "text-h4 text-ods-text-secondary text-center mb-[var(--spacing-system-lf)]", children: message2 }),
|
|
27269
|
-
action && /* @__PURE__ */ jsx244(
|
|
27270
|
-
Button,
|
|
27271
|
-
{
|
|
27272
|
-
variant: "outline",
|
|
27273
|
-
onClick: action.onClick,
|
|
27274
|
-
className: "bg-ods-card border-ods-border hover:bg-ods-bg-active text-ods-text-primary",
|
|
27275
|
-
children: action.label
|
|
27276
|
-
}
|
|
27277
|
-
)
|
|
27278
|
-
]
|
|
27239
|
+
icon: /* @__PURE__ */ jsx244(SearchIcon, {}),
|
|
27240
|
+
title: "No results found",
|
|
27241
|
+
description: "Try adjusting your search or filters",
|
|
27242
|
+
...props,
|
|
27243
|
+
className: cn("py-[var(--spacing-system-xxl)]", className)
|
|
27279
27244
|
}
|
|
27280
27245
|
);
|
|
27281
27246
|
}
|
|
@@ -27288,7 +27253,7 @@ import { flexRender as flexRender2 } from "@tanstack/react-table";
|
|
|
27288
27253
|
|
|
27289
27254
|
// src/components/ui/data-table/data-table-skeleton.tsx
|
|
27290
27255
|
init_cn();
|
|
27291
|
-
import { Fragment as Fragment38, jsx as jsx245, jsxs as
|
|
27256
|
+
import { Fragment as Fragment38, jsx as jsx245, jsxs as jsxs194 } from "react/jsx-runtime";
|
|
27292
27257
|
var ROW_HEIGHT_DESKTOP2 = "h-[68px] md:h-[80px]";
|
|
27293
27258
|
var ROW_HEIGHT_MOBILE2 = "h-[68px]";
|
|
27294
27259
|
function DataTableSkeleton({
|
|
@@ -27299,7 +27264,7 @@ function DataTableSkeleton({
|
|
|
27299
27264
|
const table = useDataTableContext();
|
|
27300
27265
|
const columns = table.getVisibleFlatColumns();
|
|
27301
27266
|
const firstColumnId = columns[0]?.id;
|
|
27302
|
-
return /* @__PURE__ */ jsx245(Fragment38, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */
|
|
27267
|
+
return /* @__PURE__ */ jsx245(Fragment38, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs194(
|
|
27303
27268
|
"div",
|
|
27304
27269
|
{
|
|
27305
27270
|
className: cn(
|
|
@@ -27317,7 +27282,7 @@ function DataTableSkeleton({
|
|
|
27317
27282
|
),
|
|
27318
27283
|
children: columns.map((column) => {
|
|
27319
27284
|
const meta = column.columnDef.meta;
|
|
27320
|
-
return /* @__PURE__ */
|
|
27285
|
+
return /* @__PURE__ */ jsxs194(
|
|
27321
27286
|
"div",
|
|
27322
27287
|
{
|
|
27323
27288
|
className: cn(
|
|
@@ -27342,7 +27307,7 @@ function DataTableSkeleton({
|
|
|
27342
27307
|
ROW_HEIGHT_MOBILE2,
|
|
27343
27308
|
rowClassName
|
|
27344
27309
|
),
|
|
27345
|
-
children: /* @__PURE__ */
|
|
27310
|
+
children: /* @__PURE__ */ jsxs194("div", { className: "flex-1 flex flex-col justify-center min-w-0 py-[var(--spacing-system-sf)]", children: [
|
|
27346
27311
|
/* @__PURE__ */ jsx245("div", { className: "h-4 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xsf)]" }),
|
|
27347
27312
|
/* @__PURE__ */ jsx245("div", { className: "h-3 bg-ods-bg-surface rounded-sm w-1/2 opacity-60" })
|
|
27348
27313
|
] })
|
|
@@ -27355,7 +27320,7 @@ function DataTableSkeleton({
|
|
|
27355
27320
|
}
|
|
27356
27321
|
|
|
27357
27322
|
// src/components/ui/data-table/data-table-row.tsx
|
|
27358
|
-
import { Fragment as Fragment39, jsx as jsx246, jsxs as
|
|
27323
|
+
import { Fragment as Fragment39, jsx as jsx246, jsxs as jsxs195 } from "react/jsx-runtime";
|
|
27359
27324
|
function DataTableRowImpl({
|
|
27360
27325
|
row,
|
|
27361
27326
|
onClick,
|
|
@@ -27429,7 +27394,7 @@ function DataTableRowImpl({
|
|
|
27429
27394
|
}
|
|
27430
27395
|
);
|
|
27431
27396
|
}
|
|
27432
|
-
return /* @__PURE__ */
|
|
27397
|
+
return /* @__PURE__ */ jsxs195(
|
|
27433
27398
|
"div",
|
|
27434
27399
|
{
|
|
27435
27400
|
ref: containerRef,
|
|
@@ -27460,10 +27425,11 @@ function CellContent({ children }) {
|
|
|
27460
27425
|
}
|
|
27461
27426
|
|
|
27462
27427
|
// src/components/ui/data-table/data-table-body.tsx
|
|
27463
|
-
import { jsx as jsx247, jsxs as
|
|
27428
|
+
import { jsx as jsx247, jsxs as jsxs196 } from "react/jsx-runtime";
|
|
27464
27429
|
function DataTableBody({
|
|
27465
27430
|
loading,
|
|
27466
|
-
emptyMessage
|
|
27431
|
+
emptyMessage,
|
|
27432
|
+
emptyState,
|
|
27467
27433
|
skeletonRows = 10,
|
|
27468
27434
|
className,
|
|
27469
27435
|
rowClassName,
|
|
@@ -27479,10 +27445,10 @@ function DataTableBody({
|
|
|
27479
27445
|
return /* @__PURE__ */ jsx247("div", { className: cn("flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: /* @__PURE__ */ jsx247(DataTableSkeleton, { rows: skeletonRows }) });
|
|
27480
27446
|
}
|
|
27481
27447
|
if (rows.length === 0) {
|
|
27482
|
-
return /* @__PURE__ */ jsx247("div", { className: cn("flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: /* @__PURE__ */ jsx247(DataTableEmpty, {
|
|
27448
|
+
return /* @__PURE__ */ jsx247("div", { className: cn("flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: emptyState ? /* @__PURE__ */ jsx247(DataTableEmpty, { ...emptyState }) : emptyMessage != null ? /* @__PURE__ */ jsx247(DataTableEmpty, { title: emptyMessage, description: void 0 }) : /* @__PURE__ */ jsx247(DataTableEmpty, {}) });
|
|
27483
27449
|
}
|
|
27484
27450
|
const padCount = minRows ? Math.max(0, minRows - rows.length) : 0;
|
|
27485
|
-
return /* @__PURE__ */
|
|
27451
|
+
return /* @__PURE__ */ jsxs196("div", { className: cn("flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
|
|
27486
27452
|
rows.map((row, index) => {
|
|
27487
27453
|
const item = row.original;
|
|
27488
27454
|
const href = rowHref?.(item) ?? void 0;
|
|
@@ -27500,7 +27466,7 @@ function DataTableBody({
|
|
|
27500
27466
|
row.id
|
|
27501
27467
|
);
|
|
27502
27468
|
}),
|
|
27503
|
-
padCount > 0 && Array.from({ length: padCount }).map((_, i) => /* @__PURE__ */
|
|
27469
|
+
padCount > 0 && Array.from({ length: padCount }).map((_, i) => /* @__PURE__ */ jsxs196(
|
|
27504
27470
|
"div",
|
|
27505
27471
|
{
|
|
27506
27472
|
className: "relative rounded-md overflow-hidden pointer-events-none",
|
|
@@ -27533,7 +27499,7 @@ function DataTableBody({
|
|
|
27533
27499
|
|
|
27534
27500
|
// src/components/ui/data-table/data-table-infinite-footer.tsx
|
|
27535
27501
|
import { useEffect as useEffect49, useRef as useRef41 } from "react";
|
|
27536
|
-
import { Fragment as Fragment40, jsx as jsx248, jsxs as
|
|
27502
|
+
import { Fragment as Fragment40, jsx as jsx248, jsxs as jsxs197 } from "react/jsx-runtime";
|
|
27537
27503
|
function DataTableInfiniteFooter({
|
|
27538
27504
|
hasNextPage,
|
|
27539
27505
|
isFetchingNextPage,
|
|
@@ -27557,7 +27523,7 @@ function DataTableInfiniteFooter({
|
|
|
27557
27523
|
observer.observe(sentinel);
|
|
27558
27524
|
return () => observer.disconnect();
|
|
27559
27525
|
}, [hasNextPage, isFetchingNextPage, rootMargin]);
|
|
27560
|
-
return /* @__PURE__ */
|
|
27526
|
+
return /* @__PURE__ */ jsxs197(Fragment40, { children: [
|
|
27561
27527
|
isFetchingNextPage && /* @__PURE__ */ jsx248(DataTableSkeleton, { rows: skeletonRows }),
|
|
27562
27528
|
hasNextPage && /* @__PURE__ */ jsx248("div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" })
|
|
27563
27529
|
] });
|
|
@@ -27587,7 +27553,7 @@ function DataTableCursorFooter({
|
|
|
27587
27553
|
|
|
27588
27554
|
// src/components/ui/data-table/data-table-row-count.tsx
|
|
27589
27555
|
init_cn();
|
|
27590
|
-
import { jsxs as
|
|
27556
|
+
import { jsxs as jsxs198 } from "react/jsx-runtime";
|
|
27591
27557
|
function DataTableRowCount({
|
|
27592
27558
|
itemName = "result",
|
|
27593
27559
|
totalCount,
|
|
@@ -27599,7 +27565,7 @@ function DataTableRowCount({
|
|
|
27599
27565
|
const count = totalCount ?? table.getRowModel().rows.length;
|
|
27600
27566
|
if (hideWhenEmpty && count === 0) return null;
|
|
27601
27567
|
const label = pluralize?.(count, itemName) ?? (count === 1 ? itemName : `${itemName}s`);
|
|
27602
|
-
return /* @__PURE__ */
|
|
27568
|
+
return /* @__PURE__ */ jsxs198(
|
|
27603
27569
|
"span",
|
|
27604
27570
|
{
|
|
27605
27571
|
className: cn(
|
|
@@ -27672,7 +27638,7 @@ var DataTable = Object.assign(DataTableRoot, {
|
|
|
27672
27638
|
init_cn();
|
|
27673
27639
|
import * as React94 from "react";
|
|
27674
27640
|
import * as CheckboxPrimitive4 from "@radix-ui/react-checkbox";
|
|
27675
|
-
import { jsx as jsx250, jsxs as
|
|
27641
|
+
import { jsx as jsx250, jsxs as jsxs199 } from "react/jsx-runtime";
|
|
27676
27642
|
function FilterListItem({
|
|
27677
27643
|
title,
|
|
27678
27644
|
meta,
|
|
@@ -27685,7 +27651,7 @@ function FilterListItem({
|
|
|
27685
27651
|
if (disabled) return;
|
|
27686
27652
|
onToggle?.(!selected);
|
|
27687
27653
|
};
|
|
27688
|
-
return /* @__PURE__ */
|
|
27654
|
+
return /* @__PURE__ */ jsxs199(
|
|
27689
27655
|
"div",
|
|
27690
27656
|
{
|
|
27691
27657
|
role: "button",
|
|
@@ -27710,7 +27676,7 @@ function FilterListItem({
|
|
|
27710
27676
|
className
|
|
27711
27677
|
),
|
|
27712
27678
|
children: [
|
|
27713
|
-
/* @__PURE__ */
|
|
27679
|
+
/* @__PURE__ */ jsxs199("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
27714
27680
|
/* @__PURE__ */ jsx250("p", { className: "truncate text-h4 text-ods-text-primary", title, children: title }),
|
|
27715
27681
|
meta && meta.length > 0 && /* @__PURE__ */ jsx250(
|
|
27716
27682
|
"div",
|
|
@@ -27719,7 +27685,7 @@ function FilterListItem({
|
|
|
27719
27685
|
"flex items-start gap-[var(--spacing-system-xxs)] text-h6",
|
|
27720
27686
|
selected ? "text-ods-accent" : "text-ods-text-secondary"
|
|
27721
27687
|
),
|
|
27722
|
-
children: meta.map((item, index) => /* @__PURE__ */
|
|
27688
|
+
children: meta.map((item, index) => /* @__PURE__ */ jsxs199(React94.Fragment, { children: [
|
|
27723
27689
|
index > 0 && /* @__PURE__ */ jsx250("span", { "aria-hidden": "true", children: "\u2022" }),
|
|
27724
27690
|
/* @__PURE__ */ jsx250("span", { children: item })
|
|
27725
27691
|
] }, index))
|
|
@@ -27790,7 +27756,7 @@ import {
|
|
|
27790
27756
|
useState as useState66
|
|
27791
27757
|
} from "react";
|
|
27792
27758
|
init_cn();
|
|
27793
|
-
import { jsx as jsx251, jsxs as
|
|
27759
|
+
import { jsx as jsx251, jsxs as jsxs200 } from "react/jsx-runtime";
|
|
27794
27760
|
function TagSearchInput({
|
|
27795
27761
|
tags,
|
|
27796
27762
|
searchValue,
|
|
@@ -27853,8 +27819,8 @@ function TagSearchInput({
|
|
|
27853
27819
|
onClearAll?.();
|
|
27854
27820
|
inputRef.current?.focus();
|
|
27855
27821
|
};
|
|
27856
|
-
return /* @__PURE__ */
|
|
27857
|
-
/* @__PURE__ */
|
|
27822
|
+
return /* @__PURE__ */ jsxs200("div", { ref: wrapperRef, className: "relative", children: [
|
|
27823
|
+
/* @__PURE__ */ jsxs200(
|
|
27858
27824
|
"div",
|
|
27859
27825
|
{
|
|
27860
27826
|
className: cn(
|
|
@@ -27872,7 +27838,7 @@ function TagSearchInput({
|
|
|
27872
27838
|
},
|
|
27873
27839
|
children: [
|
|
27874
27840
|
/* @__PURE__ */ jsx251("div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ jsx251(SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
|
|
27875
|
-
/* @__PURE__ */
|
|
27841
|
+
/* @__PURE__ */ jsxs200("div", { ref: middleRef, className: "flex-1 flex items-center gap-2 min-w-0 overflow-hidden px-2", children: [
|
|
27876
27842
|
visibleTags.map((tag) => /* @__PURE__ */ jsx251(
|
|
27877
27843
|
Tag,
|
|
27878
27844
|
{
|
|
@@ -27983,7 +27949,7 @@ function TagSearchInput({
|
|
|
27983
27949
|
import { useRef as useRef43, useCallback as useCallback30, useState as useState67, useEffect as useEffect51 } from "react";
|
|
27984
27950
|
init_cn();
|
|
27985
27951
|
import { Loader2 as Loader29, Upload as Upload8 } from "lucide-react";
|
|
27986
|
-
import { jsx as jsx252, jsxs as
|
|
27952
|
+
import { jsx as jsx252, jsxs as jsxs201 } from "react/jsx-runtime";
|
|
27987
27953
|
var MDEditor = dynamic(() => import("@uiw/react-md-editor"), { ssr: false });
|
|
27988
27954
|
var MARKDOWN_EDITOR_STYLE_ID = "ods-markdown-editor-styles";
|
|
27989
27955
|
var mdEditorCSS = `
|
|
@@ -28193,7 +28159,7 @@ function MarkdownEditor({
|
|
|
28193
28159
|
cancelAnimationFrame(rafRef.current);
|
|
28194
28160
|
};
|
|
28195
28161
|
}, [scrollLoop, findScrollParent]);
|
|
28196
|
-
return /* @__PURE__ */
|
|
28162
|
+
return /* @__PURE__ */ jsxs201(
|
|
28197
28163
|
"div",
|
|
28198
28164
|
{
|
|
28199
28165
|
ref: wrapperRef,
|
|
@@ -28258,7 +28224,7 @@ function MarkdownEditor({
|
|
|
28258
28224
|
import * as React96 from "react";
|
|
28259
28225
|
import { Loader2 as Loader210, X as X11 } from "lucide-react";
|
|
28260
28226
|
init_cn();
|
|
28261
|
-
import { jsx as jsx253, jsxs as
|
|
28227
|
+
import { jsx as jsx253, jsxs as jsxs202 } from "react/jsx-runtime";
|
|
28262
28228
|
function formatFileSize2(bytes) {
|
|
28263
28229
|
if (bytes === 0) return "0 B";
|
|
28264
28230
|
const k = 1024;
|
|
@@ -28447,7 +28413,7 @@ function FileUpload({
|
|
|
28447
28413
|
const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
|
|
28448
28414
|
const fileCount = currentCount;
|
|
28449
28415
|
const canAddMore = multiple && fileCount < maxFiles;
|
|
28450
|
-
return /* @__PURE__ */
|
|
28416
|
+
return /* @__PURE__ */ jsxs202(FieldWrapper, { label: fieldLabel, error: displayError, className, children: [
|
|
28451
28417
|
/* @__PURE__ */ jsx253(
|
|
28452
28418
|
"input",
|
|
28453
28419
|
{
|
|
@@ -28460,7 +28426,7 @@ function FileUpload({
|
|
|
28460
28426
|
disabled
|
|
28461
28427
|
}
|
|
28462
28428
|
),
|
|
28463
|
-
!hasFiles && /* @__PURE__ */
|
|
28429
|
+
!hasFiles && /* @__PURE__ */ jsxs202(
|
|
28464
28430
|
"button",
|
|
28465
28431
|
{
|
|
28466
28432
|
type: "button",
|
|
@@ -28480,14 +28446,14 @@ function FileUpload({
|
|
|
28480
28446
|
),
|
|
28481
28447
|
children: [
|
|
28482
28448
|
/* @__PURE__ */ jsx253("div", { className: "flex items-center p-3 rounded-full bg-ods-card border border-ods-border shrink-0", children: icon || /* @__PURE__ */ jsx253(ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
|
|
28483
|
-
/* @__PURE__ */
|
|
28449
|
+
/* @__PURE__ */ jsxs202("div", { className: "flex flex-1 flex-col font-['DM_Sans'] font-medium min-w-0", children: [
|
|
28484
28450
|
/* @__PURE__ */ jsx253("span", { className: "text-heading-4 text-ods-text-primary", children: label }),
|
|
28485
28451
|
/* @__PURE__ */ jsx253("span", { className: "text-heading-5 text-ods-text-secondary", children: description })
|
|
28486
28452
|
] })
|
|
28487
28453
|
]
|
|
28488
28454
|
}
|
|
28489
28455
|
),
|
|
28490
|
-
hasFiles && /* @__PURE__ */
|
|
28456
|
+
hasFiles && /* @__PURE__ */ jsxs202("div", { className: "flex flex-col gap-2", children: [
|
|
28491
28457
|
/* @__PURE__ */ jsx253(
|
|
28492
28458
|
"div",
|
|
28493
28459
|
{
|
|
@@ -28496,7 +28462,7 @@ function FileUpload({
|
|
|
28496
28462
|
dragActive && "bg-ods-accent/5"
|
|
28497
28463
|
),
|
|
28498
28464
|
style: maxListHeight ? { maxHeight: typeof maxListHeight === "number" ? `${maxListHeight}px` : maxListHeight, overflowY: "auto" } : void 0,
|
|
28499
|
-
children: isManaged ? managedFiles.map((entry) => /* @__PURE__ */
|
|
28465
|
+
children: isManaged ? managedFiles.map((entry) => /* @__PURE__ */ jsxs202(
|
|
28500
28466
|
"div",
|
|
28501
28467
|
{
|
|
28502
28468
|
className: cn(
|
|
@@ -28504,11 +28470,11 @@ function FileUpload({
|
|
|
28504
28470
|
entry.status === "error" ? "border-[var(--ods-attention-red-error)]/40" : "border-ods-border"
|
|
28505
28471
|
),
|
|
28506
28472
|
children: [
|
|
28507
|
-
/* @__PURE__ */
|
|
28473
|
+
/* @__PURE__ */ jsxs202("div", { className: "flex-1 min-w-0", children: [
|
|
28508
28474
|
/* @__PURE__ */ jsx253("p", { className: "text-heading-5 font-medium text-ods-text-primary truncate", title: entry.fileName, children: entry.fileName }),
|
|
28509
|
-
/* @__PURE__ */
|
|
28475
|
+
/* @__PURE__ */ jsxs202("div", { className: "flex items-center gap-2", children: [
|
|
28510
28476
|
/* @__PURE__ */ jsx253("span", { className: "text-heading-6 text-ods-text-secondary", children: formatFileSize2(entry.fileSize) }),
|
|
28511
|
-
entry.status === "uploading" && /* @__PURE__ */
|
|
28477
|
+
entry.status === "uploading" && /* @__PURE__ */ jsxs202("span", { className: "flex items-center gap-1 text-heading-6 text-ods-text-secondary", children: [
|
|
28512
28478
|
/* @__PURE__ */ jsx253(Loader210, { className: "size-3 animate-spin" }),
|
|
28513
28479
|
"Uploading..."
|
|
28514
28480
|
] }),
|
|
@@ -28528,12 +28494,12 @@ function FileUpload({
|
|
|
28528
28494
|
]
|
|
28529
28495
|
},
|
|
28530
28496
|
entry.id
|
|
28531
|
-
)) : files.map((file, index) => /* @__PURE__ */
|
|
28497
|
+
)) : files.map((file, index) => /* @__PURE__ */ jsxs202(
|
|
28532
28498
|
"div",
|
|
28533
28499
|
{
|
|
28534
28500
|
className: "flex items-center gap-3 p-3 rounded-[6px] bg-ods-card border border-ods-border",
|
|
28535
28501
|
children: [
|
|
28536
|
-
/* @__PURE__ */
|
|
28502
|
+
/* @__PURE__ */ jsxs202("div", { className: "flex-1 min-w-0", children: [
|
|
28537
28503
|
/* @__PURE__ */ jsx253("p", { className: "text-heading-5 font-medium text-ods-text-primary truncate", title: file.name, children: file.name }),
|
|
28538
28504
|
/* @__PURE__ */ jsx253("p", { className: "text-heading-6 text-ods-text-secondary", children: formatFileSize2(file.size) })
|
|
28539
28505
|
] }),
|
|
@@ -28582,7 +28548,7 @@ function FileUpload({
|
|
|
28582
28548
|
import * as React97 from "react";
|
|
28583
28549
|
import { Loader2 as Loader211 } from "lucide-react";
|
|
28584
28550
|
init_cn();
|
|
28585
|
-
import { Fragment as Fragment42, jsx as jsx254, jsxs as
|
|
28551
|
+
import { Fragment as Fragment42, jsx as jsx254, jsxs as jsxs203 } from "react/jsx-runtime";
|
|
28586
28552
|
var DEFAULT_MAX_SIZE = 25 * 1024 * 1024;
|
|
28587
28553
|
function formatSize(bytes) {
|
|
28588
28554
|
const mb = bytes / (1024 * 1024);
|
|
@@ -28671,7 +28637,7 @@ function ImageUploader({
|
|
|
28671
28637
|
}
|
|
28672
28638
|
};
|
|
28673
28639
|
const isActionState = dragActive || pressed && !hasImage;
|
|
28674
|
-
return /* @__PURE__ */
|
|
28640
|
+
return /* @__PURE__ */ jsxs203(FieldWrapper, { label: fieldLabel, error: displayError, className, children: [
|
|
28675
28641
|
/* @__PURE__ */ jsx254(
|
|
28676
28642
|
"input",
|
|
28677
28643
|
{
|
|
@@ -28708,7 +28674,7 @@ function ImageUploader({
|
|
|
28708
28674
|
!interactive && "opacity-60",
|
|
28709
28675
|
!hasImage && !interactive && "cursor-not-allowed"
|
|
28710
28676
|
),
|
|
28711
|
-
children: hasImage ? /* @__PURE__ */
|
|
28677
|
+
children: hasImage ? /* @__PURE__ */ jsxs203(Fragment42, { children: [
|
|
28712
28678
|
/* @__PURE__ */ jsx254("div", { className: "relative min-h-0 w-full flex-1 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx254(
|
|
28713
28679
|
"img",
|
|
28714
28680
|
{
|
|
@@ -28724,7 +28690,7 @@ function ImageUploader({
|
|
|
28724
28690
|
)
|
|
28725
28691
|
}
|
|
28726
28692
|
) }),
|
|
28727
|
-
/* @__PURE__ */
|
|
28693
|
+
/* @__PURE__ */ jsxs203("div", { className: "absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center gap-4", children: [
|
|
28728
28694
|
/* @__PURE__ */ jsx254(
|
|
28729
28695
|
ActionIconButton,
|
|
28730
28696
|
{
|
|
@@ -28745,9 +28711,9 @@ function ImageUploader({
|
|
|
28745
28711
|
)
|
|
28746
28712
|
] }),
|
|
28747
28713
|
loading && /* @__PURE__ */ jsx254("div", { className: "absolute inset-0 flex items-center justify-center rounded-md bg-ods-overlay", children: /* @__PURE__ */ jsx254(Loader211, { className: "size-8 animate-spin text-ods-text-on-dark" }) })
|
|
28748
|
-
] }) : loading ? /* @__PURE__ */ jsx254(Loader211, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */
|
|
28714
|
+
] }) : loading ? /* @__PURE__ */ jsx254(Loader211, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs203(Fragment42, { children: [
|
|
28749
28715
|
/* @__PURE__ */ jsx254("div", { className: "flex shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-card p-[var(--spacing-system-s)]", children: /* @__PURE__ */ jsx254(ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
|
|
28750
|
-
/* @__PURE__ */
|
|
28716
|
+
/* @__PURE__ */ jsxs203("div", { className: "flex w-full flex-col items-center text-center", children: [
|
|
28751
28717
|
/* @__PURE__ */ jsx254("p", { className: "text-h4 text-ods-text-primary", children: label }),
|
|
28752
28718
|
/* @__PURE__ */ jsx254("p", { className: "text-h6 text-ods-text-secondary", children: description }),
|
|
28753
28719
|
resolvedHint && /* @__PURE__ */ jsx254("p", { className: "text-h6 text-ods-text-secondary", children: resolvedHint })
|
|
@@ -28815,7 +28781,7 @@ PopoverContent.displayName = PopoverPrimitive3.Content.displayName;
|
|
|
28815
28781
|
|
|
28816
28782
|
// src/components/ui/color-preset-select.tsx
|
|
28817
28783
|
init_cn();
|
|
28818
|
-
import { Fragment as Fragment43, jsx as jsx256, jsxs as
|
|
28784
|
+
import { Fragment as Fragment43, jsx as jsx256, jsxs as jsxs204 } from "react/jsx-runtime";
|
|
28819
28785
|
var TICKET_STATUS_COLOR_PRESETS = [
|
|
28820
28786
|
{ key: "green", label: "Green", color: "#5ea62e" },
|
|
28821
28787
|
{ key: "lime", label: "Lime", color: "#8bc34a" },
|
|
@@ -28966,7 +28932,7 @@ function RgbInputs({ value, onChange }) {
|
|
|
28966
28932
|
const b = next.b ?? rgb.b;
|
|
28967
28933
|
onChange(rgbToHex(r, g, b));
|
|
28968
28934
|
};
|
|
28969
|
-
return /* @__PURE__ */
|
|
28935
|
+
return /* @__PURE__ */ jsxs204(Fragment43, { children: [
|
|
28970
28936
|
/* @__PURE__ */ jsx256(ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
28971
28937
|
/* @__PURE__ */ jsx256(ChannelInput, { value: rgb.g, min: 0, max: 255, ariaLabel: "Green", onCommit: (g) => update({ g }) }),
|
|
28972
28938
|
/* @__PURE__ */ jsx256(ChannelInput, { value: rgb.b, min: 0, max: 255, ariaLabel: "Blue", onCommit: (b) => update({ b }) })
|
|
@@ -28982,7 +28948,7 @@ function HslInputs({ value, onChange }) {
|
|
|
28982
28948
|
const out = hslToRgb(h, s, l);
|
|
28983
28949
|
onChange(rgbToHex(out.r, out.g, out.b));
|
|
28984
28950
|
};
|
|
28985
|
-
return /* @__PURE__ */
|
|
28951
|
+
return /* @__PURE__ */ jsxs204(Fragment43, { children: [
|
|
28986
28952
|
/* @__PURE__ */ jsx256(ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
28987
28953
|
/* @__PURE__ */ jsx256(ChannelInput, { value: hsl.s, min: 0, max: 100, ariaLabel: "Saturation", onCommit: (s) => update({ s }) }),
|
|
28988
28954
|
/* @__PURE__ */ jsx256(ChannelInput, { value: hsl.l, min: 0, max: 100, ariaLabel: "Lightness", onCommit: (l) => update({ l }) })
|
|
@@ -29000,7 +28966,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
29000
28966
|
}))
|
|
29001
28967
|
}
|
|
29002
28968
|
];
|
|
29003
|
-
return /* @__PURE__ */
|
|
28969
|
+
return /* @__PURE__ */ jsxs204(Popover2, { open, onOpenChange: setOpen, children: [
|
|
29004
28970
|
/* @__PURE__ */ jsx256(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx256(
|
|
29005
28971
|
InputTrigger,
|
|
29006
28972
|
{
|
|
@@ -29018,9 +28984,9 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
29018
28984
|
align: "start",
|
|
29019
28985
|
sideOffset: 4,
|
|
29020
28986
|
className: "z-[1400] w-[320px] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-sf)] text-ods-text-primary shadow-md [&_.react-colorful]:!w-full [&_.react-colorful]:!h-[190px] [&_.react-colorful\\\\_\\\\_saturation]:!rounded-sm [&_.react-colorful\\\\_\\\\_last-control]:!rounded-lg [&_.react-colorful\\\\_\\\\_hue]:!h-4 [&_.react-colorful\\\\_\\\\_hue]:!mt-[var(--spacing-system-m)]",
|
|
29021
|
-
children: /* @__PURE__ */
|
|
28987
|
+
children: /* @__PURE__ */ jsxs204("div", { className: "flex flex-col gap-[var(--spacing-system-m)]", children: [
|
|
29022
28988
|
/* @__PURE__ */ jsx256(HexColorPicker, { color: value, onChange }),
|
|
29023
|
-
/* @__PURE__ */
|
|
28989
|
+
/* @__PURE__ */ jsxs204("div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
29024
28990
|
/* @__PURE__ */ jsx256(
|
|
29025
28991
|
ActionsMenuDropdown,
|
|
29026
28992
|
{
|
|
@@ -29039,7 +29005,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
29039
29005
|
)
|
|
29040
29006
|
}
|
|
29041
29007
|
),
|
|
29042
|
-
/* @__PURE__ */
|
|
29008
|
+
/* @__PURE__ */ jsxs204("div", { className: "flex flex-1 min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
29043
29009
|
format2 === "HEX" && /* @__PURE__ */ jsx256(HexInputs, { value, onChange }),
|
|
29044
29010
|
format2 === "RGB" && /* @__PURE__ */ jsx256(RgbInputs, { value, onChange }),
|
|
29045
29011
|
format2 === "HSL" && /* @__PURE__ */ jsx256(HslInputs, { value, onChange })
|
|
@@ -29052,7 +29018,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
29052
29018
|
}
|
|
29053
29019
|
|
|
29054
29020
|
// src/components/ui/ticket-status-config-row.tsx
|
|
29055
|
-
import { jsx as jsx257, jsxs as
|
|
29021
|
+
import { jsx as jsx257, jsxs as jsxs205 } from "react/jsx-runtime";
|
|
29056
29022
|
var dismissOpenTooltip = null;
|
|
29057
29023
|
function WithLeftTooltip({ content, children }) {
|
|
29058
29024
|
const [open, setOpen] = React100.useState(false);
|
|
@@ -29071,7 +29037,7 @@ function WithLeftTooltip({ content, children }) {
|
|
|
29071
29037
|
return next;
|
|
29072
29038
|
});
|
|
29073
29039
|
};
|
|
29074
|
-
return /* @__PURE__ */ jsx257(TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */
|
|
29040
|
+
return /* @__PURE__ */ jsx257(TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ jsxs205(Tooltip, { open, onOpenChange: setOpen, children: [
|
|
29075
29041
|
/* @__PURE__ */ jsx257(
|
|
29076
29042
|
TooltipTrigger,
|
|
29077
29043
|
{
|
|
@@ -29117,7 +29083,7 @@ function TicketStatusConfigRow({
|
|
|
29117
29083
|
const showColorPicker = !isSystem && onColorChange && color !== void 0;
|
|
29118
29084
|
const previewVariant = systemTagVariant ?? (isSystem ? void 0 : "primary");
|
|
29119
29085
|
const colClass = "min-w-0 grow basis-[calc(50%-6px)] md:basis-0";
|
|
29120
|
-
return /* @__PURE__ */
|
|
29086
|
+
return /* @__PURE__ */ jsxs205(
|
|
29121
29087
|
"div",
|
|
29122
29088
|
{
|
|
29123
29089
|
className: cn(
|
|
@@ -29137,7 +29103,7 @@ function TicketStatusConfigRow({
|
|
|
29137
29103
|
children: /* @__PURE__ */ jsx257(DraggerIcon, { size: 24 })
|
|
29138
29104
|
}
|
|
29139
29105
|
) }),
|
|
29140
|
-
/* @__PURE__ */
|
|
29106
|
+
/* @__PURE__ */ jsxs205("div", { className: "flex min-w-0 flex-1 flex-wrap items-start gap-x-3 gap-y-4 md:flex-nowrap md:gap-[var(--spacing-system-m)]", children: [
|
|
29141
29107
|
/* @__PURE__ */ jsx257("div", { className: cn("flex flex-col gap-[var(--spacing-system-xxs)]", colClass), children: /* @__PURE__ */ jsx257(
|
|
29142
29108
|
Input,
|
|
29143
29109
|
{
|
|
@@ -29193,7 +29159,7 @@ function TicketStatusConfigRow({
|
|
|
29193
29159
|
import * as PopoverPrimitive4 from "@radix-ui/react-popover";
|
|
29194
29160
|
import * as React101 from "react";
|
|
29195
29161
|
init_cn();
|
|
29196
|
-
import { jsx as jsx258, jsxs as
|
|
29162
|
+
import { jsx as jsx258, jsxs as jsxs206 } from "react/jsx-runtime";
|
|
29197
29163
|
function AssigneeDropdown(props) {
|
|
29198
29164
|
if (props.variant === "compact") {
|
|
29199
29165
|
return /* @__PURE__ */ jsx258(CompactAssigneeDropdown, { ...props });
|
|
@@ -29263,9 +29229,9 @@ function CompactAssigneeDropdown({
|
|
|
29263
29229
|
children: /* @__PURE__ */ jsx258(UserPlusIcon, { className: "size-4" })
|
|
29264
29230
|
}
|
|
29265
29231
|
);
|
|
29266
|
-
return /* @__PURE__ */
|
|
29232
|
+
return /* @__PURE__ */ jsxs206(PopoverPrimitive4.Root, { open: isOpen, onOpenChange: setIsOpen, modal: false, children: [
|
|
29267
29233
|
/* @__PURE__ */ jsx258(PopoverPrimitive4.Trigger, { asChild: true, children: trigger }),
|
|
29268
|
-
/* @__PURE__ */ jsx258(PopoverPrimitive4.Portal, { children: /* @__PURE__ */
|
|
29234
|
+
/* @__PURE__ */ jsx258(PopoverPrimitive4.Portal, { children: /* @__PURE__ */ jsxs206(
|
|
29269
29235
|
PopoverPrimitive4.Content,
|
|
29270
29236
|
{
|
|
29271
29237
|
align: "end",
|
|
@@ -29291,7 +29257,7 @@ function CompactAssigneeDropdown({
|
|
|
29291
29257
|
) }),
|
|
29292
29258
|
/* @__PURE__ */ jsx258("div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ jsx258("div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ jsx258("div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
|
|
29293
29259
|
const isCurrent = currentAssignee?.id === opt.value;
|
|
29294
|
-
return /* @__PURE__ */
|
|
29260
|
+
return /* @__PURE__ */ jsxs206(
|
|
29295
29261
|
"button",
|
|
29296
29262
|
{
|
|
29297
29263
|
type: "button",
|
|
@@ -29338,7 +29304,7 @@ function DefaultAssigneeDropdown({
|
|
|
29338
29304
|
const hasAssignee = !!currentAssignee;
|
|
29339
29305
|
const renderOption = React101.useCallback((option) => {
|
|
29340
29306
|
const opt = option;
|
|
29341
|
-
return /* @__PURE__ */
|
|
29307
|
+
return /* @__PURE__ */ jsxs206("div", { className: "flex items-center gap-[var(--spacing-system-sf)] w-full min-w-0", children: [
|
|
29342
29308
|
/* @__PURE__ */ jsx258(
|
|
29343
29309
|
SquareAvatar,
|
|
29344
29310
|
{
|
|
@@ -29354,7 +29320,7 @@ function DefaultAssigneeDropdown({
|
|
|
29354
29320
|
] });
|
|
29355
29321
|
}, []);
|
|
29356
29322
|
if (isEditing) {
|
|
29357
|
-
return /* @__PURE__ */
|
|
29323
|
+
return /* @__PURE__ */ jsxs206("div", { className: cn("min-w-0", className), children: [
|
|
29358
29324
|
/* @__PURE__ */ jsx258(
|
|
29359
29325
|
Autocomplete,
|
|
29360
29326
|
{
|
|
@@ -29385,7 +29351,7 @@ function DefaultAssigneeDropdown({
|
|
|
29385
29351
|
] });
|
|
29386
29352
|
}
|
|
29387
29353
|
if (hasAssignee) {
|
|
29388
|
-
return /* @__PURE__ */
|
|
29354
|
+
return /* @__PURE__ */ jsxs206("div", { className: cn("flex items-center gap-[var(--spacing-system-xs)] min-w-0", className), children: [
|
|
29389
29355
|
/* @__PURE__ */ jsx258(
|
|
29390
29356
|
SquareAvatar,
|
|
29391
29357
|
{
|
|
@@ -29397,8 +29363,8 @@ function DefaultAssigneeDropdown({
|
|
|
29397
29363
|
className: "shrink-0"
|
|
29398
29364
|
}
|
|
29399
29365
|
),
|
|
29400
|
-
/* @__PURE__ */ jsx258("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */
|
|
29401
|
-
/* @__PURE__ */ jsx258("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full min-w-0", children: /* @__PURE__ */
|
|
29366
|
+
/* @__PURE__ */ jsx258("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxs206("div", { className: "flex flex-col justify-center", children: [
|
|
29367
|
+
/* @__PURE__ */ jsx258("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full min-w-0", children: /* @__PURE__ */ jsxs206(
|
|
29402
29368
|
"button",
|
|
29403
29369
|
{
|
|
29404
29370
|
type: "button",
|
|
@@ -29414,8 +29380,8 @@ function DefaultAssigneeDropdown({
|
|
|
29414
29380
|
] }) })
|
|
29415
29381
|
] });
|
|
29416
29382
|
}
|
|
29417
|
-
return /* @__PURE__ */
|
|
29418
|
-
/* @__PURE__ */
|
|
29383
|
+
return /* @__PURE__ */ jsxs206("div", { className: cn("min-w-0", className), children: [
|
|
29384
|
+
/* @__PURE__ */ jsxs206(
|
|
29419
29385
|
"button",
|
|
29420
29386
|
{
|
|
29421
29387
|
type: "button",
|
|
@@ -29436,9 +29402,9 @@ init_cn();
|
|
|
29436
29402
|
|
|
29437
29403
|
// src/components/ui/ticket-detail-section.tsx
|
|
29438
29404
|
init_cn();
|
|
29439
|
-
import { jsx as jsx259, jsxs as
|
|
29405
|
+
import { jsx as jsx259, jsxs as jsxs207 } from "react/jsx-runtime";
|
|
29440
29406
|
function TicketDetailSection({ label, children, className }) {
|
|
29441
|
-
return /* @__PURE__ */
|
|
29407
|
+
return /* @__PURE__ */ jsxs207("div", { className: cn("flex flex-col gap-1", className), children: [
|
|
29442
29408
|
/* @__PURE__ */ jsx259("p", { className: "text-h5 text-ods-text-secondary", children: label }),
|
|
29443
29409
|
children
|
|
29444
29410
|
] });
|
|
@@ -29447,11 +29413,11 @@ function TicketDetailSection({ label, children, className }) {
|
|
|
29447
29413
|
// src/components/ui/ticket-attachments-list.tsx
|
|
29448
29414
|
init_cn();
|
|
29449
29415
|
import { Download, FileIcon as FileIcon2 } from "lucide-react";
|
|
29450
|
-
import { jsx as jsx260, jsxs as
|
|
29416
|
+
import { jsx as jsx260, jsxs as jsxs208 } from "react/jsx-runtime";
|
|
29451
29417
|
function TicketAttachmentsList({ attachments, className, size = "default" }) {
|
|
29452
29418
|
if (attachments.length === 0) return null;
|
|
29453
29419
|
const compact = size === "compact";
|
|
29454
|
-
return /* @__PURE__ */ jsx260("div", { className: cn("rounded-[6px] border border-ods-border overflow-hidden", className), children: attachments.map((attachment, index) => /* @__PURE__ */
|
|
29420
|
+
return /* @__PURE__ */ jsx260("div", { className: cn("rounded-[6px] border border-ods-border overflow-hidden", className), children: attachments.map((attachment, index) => /* @__PURE__ */ jsxs208(
|
|
29455
29421
|
"div",
|
|
29456
29422
|
{
|
|
29457
29423
|
className: cn(
|
|
@@ -29478,7 +29444,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
|
|
|
29478
29444
|
children: /* @__PURE__ */ jsx260(FileIcon2, { className: cn("text-ods-text-secondary", compact ? "size-4" : "size-6") })
|
|
29479
29445
|
}
|
|
29480
29446
|
),
|
|
29481
|
-
/* @__PURE__ */
|
|
29447
|
+
/* @__PURE__ */ jsxs208("div", { className: "flex-1 min-w-0 overflow-hidden", children: [
|
|
29482
29448
|
/* @__PURE__ */ jsx260(
|
|
29483
29449
|
"p",
|
|
29484
29450
|
{
|
|
@@ -29512,7 +29478,7 @@ init_cn();
|
|
|
29512
29478
|
// src/components/ui/ticket-note-card.tsx
|
|
29513
29479
|
import * as React102 from "react";
|
|
29514
29480
|
init_cn();
|
|
29515
|
-
import { Fragment as Fragment44, jsx as jsx261, jsxs as
|
|
29481
|
+
import { Fragment as Fragment44, jsx as jsx261, jsxs as jsxs209 } from "react/jsx-runtime";
|
|
29516
29482
|
function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
29517
29483
|
const [isEditing, setIsEditing] = React102.useState(false);
|
|
29518
29484
|
const [editText, setEditText] = React102.useState(note.text);
|
|
@@ -29535,7 +29501,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
29535
29501
|
handleCancel();
|
|
29536
29502
|
}
|
|
29537
29503
|
};
|
|
29538
|
-
return /* @__PURE__ */
|
|
29504
|
+
return /* @__PURE__ */ jsxs209(
|
|
29539
29505
|
"div",
|
|
29540
29506
|
{
|
|
29541
29507
|
className: cn(
|
|
@@ -29555,7 +29521,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
29555
29521
|
className: "shrink-0"
|
|
29556
29522
|
}
|
|
29557
29523
|
),
|
|
29558
|
-
/* @__PURE__ */ jsx261("div", { className: "flex-1 min-w-0 overflow-hidden", children: isEditing ? /* @__PURE__ */
|
|
29524
|
+
/* @__PURE__ */ jsx261("div", { className: "flex-1 min-w-0 overflow-hidden", children: isEditing ? /* @__PURE__ */ jsxs209("div", { className: "flex items-center gap-2", children: [
|
|
29559
29525
|
/* @__PURE__ */ jsx261("div", { className: "flex-1", children: /* @__PURE__ */ jsx261(
|
|
29560
29526
|
Input,
|
|
29561
29527
|
{
|
|
@@ -29586,9 +29552,9 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
29586
29552
|
children: /* @__PURE__ */ jsx261(XmarkIcon, { className: "size-5" })
|
|
29587
29553
|
}
|
|
29588
29554
|
)
|
|
29589
|
-
] }) : /* @__PURE__ */
|
|
29555
|
+
] }) : /* @__PURE__ */ jsxs209(Fragment44, { children: [
|
|
29590
29556
|
/* @__PURE__ */ jsx261("p", { className: "text-h4 text-ods-text-primary", children: note.text }),
|
|
29591
|
-
/* @__PURE__ */
|
|
29557
|
+
/* @__PURE__ */ jsxs209(
|
|
29592
29558
|
"p",
|
|
29593
29559
|
{
|
|
29594
29560
|
className: "text-h6 text-ods-text-secondary truncate",
|
|
@@ -29601,7 +29567,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
29601
29567
|
}
|
|
29602
29568
|
)
|
|
29603
29569
|
] }) }),
|
|
29604
|
-
note.isOwn && !isEditing && /* @__PURE__ */
|
|
29570
|
+
note.isOwn && !isEditing && /* @__PURE__ */ jsxs209("div", { className: "flex items-center gap-4 shrink-0", children: [
|
|
29605
29571
|
onDelete && /* @__PURE__ */ jsx261(
|
|
29606
29572
|
"button",
|
|
29607
29573
|
{
|
|
@@ -29629,7 +29595,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
29629
29595
|
}
|
|
29630
29596
|
|
|
29631
29597
|
// src/components/ui/ticket-notes-section.tsx
|
|
29632
|
-
import { jsx as jsx262, jsxs as
|
|
29598
|
+
import { jsx as jsx262, jsxs as jsxs210 } from "react/jsx-runtime";
|
|
29633
29599
|
function TicketNotesSection({
|
|
29634
29600
|
notes,
|
|
29635
29601
|
onAddNote,
|
|
@@ -29651,7 +29617,7 @@ function TicketNotesSection({
|
|
|
29651
29617
|
handleSend();
|
|
29652
29618
|
}
|
|
29653
29619
|
};
|
|
29654
|
-
return /* @__PURE__ */
|
|
29620
|
+
return /* @__PURE__ */ jsxs210("div", { className: cn("flex flex-col gap-2", className), children: [
|
|
29655
29621
|
notes.map((note) => /* @__PURE__ */ jsx262(
|
|
29656
29622
|
TicketNoteCard,
|
|
29657
29623
|
{
|
|
@@ -29661,7 +29627,7 @@ function TicketNotesSection({
|
|
|
29661
29627
|
},
|
|
29662
29628
|
note.id
|
|
29663
29629
|
)),
|
|
29664
|
-
onAddNote && /* @__PURE__ */
|
|
29630
|
+
onAddNote && /* @__PURE__ */ jsxs210("div", { className: "flex items-center gap-2", children: [
|
|
29665
29631
|
/* @__PURE__ */ jsx262("div", { className: "flex-1", children: /* @__PURE__ */ jsx262(
|
|
29666
29632
|
Input,
|
|
29667
29633
|
{
|
|
@@ -29693,10 +29659,10 @@ function TicketNotesSection({
|
|
|
29693
29659
|
}
|
|
29694
29660
|
|
|
29695
29661
|
// src/components/ui/ticket-info-section.tsx
|
|
29696
|
-
import { Fragment as Fragment45, jsx as jsx263, jsxs as
|
|
29662
|
+
import { Fragment as Fragment45, jsx as jsx263, jsxs as jsxs211 } from "react/jsx-runtime";
|
|
29697
29663
|
function InfoCell2({ value, label, icon, onClick }) {
|
|
29698
|
-
return /* @__PURE__ */ jsx263("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */
|
|
29699
|
-
/* @__PURE__ */
|
|
29664
|
+
return /* @__PURE__ */ jsx263("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxs211("div", { className: "flex flex-col justify-center", children: [
|
|
29665
|
+
/* @__PURE__ */ jsxs211("div", { className: "flex items-center gap-1 w-full min-w-0", children: [
|
|
29700
29666
|
icon && /* @__PURE__ */ jsx263("span", { className: "shrink-0 size-4 flex items-center justify-center text-ods-text-secondary", children: icon }),
|
|
29701
29667
|
onClick ? /* @__PURE__ */ jsx263(
|
|
29702
29668
|
"button",
|
|
@@ -29735,7 +29701,7 @@ function TicketInfoSection({
|
|
|
29735
29701
|
onDeleteNote,
|
|
29736
29702
|
isAddingNote
|
|
29737
29703
|
}) {
|
|
29738
|
-
return /* @__PURE__ */
|
|
29704
|
+
return /* @__PURE__ */ jsxs211(
|
|
29739
29705
|
"div",
|
|
29740
29706
|
{
|
|
29741
29707
|
className: cn(
|
|
@@ -29743,8 +29709,8 @@ function TicketInfoSection({
|
|
|
29743
29709
|
className
|
|
29744
29710
|
),
|
|
29745
29711
|
children: [
|
|
29746
|
-
/* @__PURE__ */
|
|
29747
|
-
/* @__PURE__ */
|
|
29712
|
+
/* @__PURE__ */ jsxs211("div", { className: "grid grid-cols-2 lg:grid-cols-[1fr_1fr_1fr_auto] gap-4 px-4 py-3 bg-ods-card border-b border-ods-border items-center", children: [
|
|
29713
|
+
/* @__PURE__ */ jsxs211("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
29748
29714
|
/* @__PURE__ */ jsx263(
|
|
29749
29715
|
SquareAvatar,
|
|
29750
29716
|
{
|
|
@@ -29766,8 +29732,8 @@ function TicketInfoSection({
|
|
|
29766
29732
|
isPending: assigned.isPending,
|
|
29767
29733
|
onAssign: assigned.onAssign
|
|
29768
29734
|
}
|
|
29769
|
-
) : /* @__PURE__ */
|
|
29770
|
-
/* @__PURE__ */
|
|
29735
|
+
) : /* @__PURE__ */ jsxs211("div", { className: "min-w-0", children: [
|
|
29736
|
+
/* @__PURE__ */ jsxs211("div", { className: "flex items-center gap-1 text-h4 text-ods-text-secondary", children: [
|
|
29771
29737
|
/* @__PURE__ */ jsx263(UserIcon, { className: "size-4 shrink-0" }),
|
|
29772
29738
|
/* @__PURE__ */ jsx263("span", { className: "truncate", children: "Unassigned" })
|
|
29773
29739
|
] }),
|
|
@@ -29782,7 +29748,7 @@ function TicketInfoSection({
|
|
|
29782
29748
|
onClick: device?.onClick
|
|
29783
29749
|
}
|
|
29784
29750
|
),
|
|
29785
|
-
/* @__PURE__ */
|
|
29751
|
+
/* @__PURE__ */ jsxs211("div", { className: "flex items-center gap-4 min-w-0", children: [
|
|
29786
29752
|
(status || statusLabel) && /* @__PURE__ */ jsx263("div", { className: "min-w-0", children: /* @__PURE__ */ jsx263(
|
|
29787
29753
|
TicketStatusTag,
|
|
29788
29754
|
{
|
|
@@ -29818,9 +29784,9 @@ function TicketInfoSection({
|
|
|
29818
29784
|
)
|
|
29819
29785
|
] })
|
|
29820
29786
|
] }),
|
|
29821
|
-
expanded && /* @__PURE__ */
|
|
29787
|
+
expanded && /* @__PURE__ */ jsxs211(Fragment45, { children: [
|
|
29822
29788
|
createdAt && /* @__PURE__ */ jsx263("div", { className: "grid grid-cols-2 gap-4 px-4 py-3 bg-ods-bg border-b border-ods-border items-center", children: /* @__PURE__ */ jsx263(InfoCell2, { value: createdAt, label: "Created" }) }),
|
|
29823
|
-
/* @__PURE__ */
|
|
29789
|
+
/* @__PURE__ */ jsxs211("div", { className: "flex flex-col gap-4 p-4 bg-ods-bg border-b border-ods-border", children: [
|
|
29824
29790
|
description && /* @__PURE__ */ jsx263(SimpleMarkdownRenderer, { content: description }),
|
|
29825
29791
|
attachments && attachments.length > 0 && /* @__PURE__ */ jsx263(TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ jsx263(TicketAttachmentsList, { attachments }) }),
|
|
29826
29792
|
tags && tags.length > 0 && /* @__PURE__ */ jsx263(TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ jsx263("div", { className: "flex flex-wrap gap-2 min-w-0", children: tags.map((tag) => /* @__PURE__ */ jsx263(Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
@@ -29843,7 +29809,7 @@ function TicketInfoSection({
|
|
|
29843
29809
|
|
|
29844
29810
|
// src/components/ui/image-gallery-modal.tsx
|
|
29845
29811
|
import { ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight9 } from "lucide-react";
|
|
29846
|
-
import { Fragment as Fragment46, jsx as jsx264, jsxs as
|
|
29812
|
+
import { Fragment as Fragment46, jsx as jsx264, jsxs as jsxs212 } from "react/jsx-runtime";
|
|
29847
29813
|
function ImageGalleryModal({
|
|
29848
29814
|
images,
|
|
29849
29815
|
isOpen,
|
|
@@ -29898,8 +29864,8 @@ function ImageGalleryModal({
|
|
|
29898
29864
|
isOpen,
|
|
29899
29865
|
onClose,
|
|
29900
29866
|
className: "max-w-[95vw]",
|
|
29901
|
-
children: /* @__PURE__ */
|
|
29902
|
-
images.length > 1 && /* @__PURE__ */
|
|
29867
|
+
children: /* @__PURE__ */ jsxs212("div", { className: "relative flex items-center justify-center bg-black rounded-lg", children: [
|
|
29868
|
+
images.length > 1 && /* @__PURE__ */ jsxs212(Fragment46, { children: [
|
|
29903
29869
|
selectedImageIndex > 0 && /* @__PURE__ */ jsx264("div", { className: "absolute left-4 top-1/2 -translate-y-1/2 z-[10000]", children: /* @__PURE__ */ jsx264(
|
|
29904
29870
|
Button,
|
|
29905
29871
|
{
|
|
@@ -29951,7 +29917,7 @@ function ImageGalleryModal({
|
|
|
29951
29917
|
}
|
|
29952
29918
|
}
|
|
29953
29919
|
) }),
|
|
29954
|
-
images.length > 1 && /* @__PURE__ */
|
|
29920
|
+
images.length > 1 && /* @__PURE__ */ jsxs212("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 z-[10000] px-4 py-2 rounded-full bg-black/50 text-white text-sm", children: [
|
|
29955
29921
|
selectedImageIndex + 1,
|
|
29956
29922
|
" / ",
|
|
29957
29923
|
images.length
|
|
@@ -30017,17 +29983,17 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
30017
29983
|
}
|
|
30018
29984
|
|
|
30019
29985
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
30020
|
-
import { Fragment as Fragment47, jsx as jsx266, jsxs as
|
|
29986
|
+
import { Fragment as Fragment47, jsx as jsx266, jsxs as jsxs213 } from "react/jsx-runtime";
|
|
30021
29987
|
function RoadmapCardSkeleton({ size = "default" }) {
|
|
30022
29988
|
if (size === "sm") {
|
|
30023
|
-
return /* @__PURE__ */
|
|
29989
|
+
return /* @__PURE__ */ jsxs213("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
30024
29990
|
/* @__PURE__ */ jsx266("span", { className: "block h-12 w-12 aspect-square shrink-0 self-start rounded-md bg-ods-bg border border-ods-border p-1.5" }),
|
|
30025
|
-
/* @__PURE__ */
|
|
30026
|
-
/* @__PURE__ */
|
|
29991
|
+
/* @__PURE__ */ jsxs213("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
29992
|
+
/* @__PURE__ */ jsxs213("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-2`, children: [
|
|
30027
29993
|
/* @__PURE__ */ jsx266("span", { className: "h-3.5 w-1/2 rounded bg-ods-bg" }),
|
|
30028
29994
|
/* @__PURE__ */ jsx266("span", { className: "h-4 w-12 rounded bg-ods-bg/70 shrink-0" })
|
|
30029
29995
|
] }),
|
|
30030
|
-
/* @__PURE__ */
|
|
29996
|
+
/* @__PURE__ */ jsxs213("span", { className: `${COMPACT_CARD_META_ROW_BOX} flex-nowrap gap-2`, children: [
|
|
30031
29997
|
/* @__PURE__ */ jsx266("span", { className: "h-3 w-2/5 rounded bg-ods-bg/60 flex-1" }),
|
|
30032
29998
|
/* @__PURE__ */ jsx266("span", { className: "h-3 w-10 rounded bg-ods-bg/40 shrink-0" })
|
|
30033
29999
|
] }),
|
|
@@ -30035,22 +30001,22 @@ function RoadmapCardSkeleton({ size = "default" }) {
|
|
|
30035
30001
|
] })
|
|
30036
30002
|
] });
|
|
30037
30003
|
}
|
|
30038
|
-
return /* @__PURE__ */
|
|
30039
|
-
/* @__PURE__ */
|
|
30004
|
+
return /* @__PURE__ */ jsxs213("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-4 h-full animate-pulse", children: [
|
|
30005
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex gap-4 items-center", children: [
|
|
30040
30006
|
/* @__PURE__ */ jsx266("div", { className: "w-16 h-16 rounded-lg bg-ods-bg flex-shrink-0" }),
|
|
30041
|
-
/* @__PURE__ */
|
|
30007
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex-1 space-y-2", children: [
|
|
30042
30008
|
/* @__PURE__ */ jsx266("div", { className: "h-5 w-3/4 bg-ods-bg rounded" }),
|
|
30043
30009
|
/* @__PURE__ */ jsx266("div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
|
|
30044
30010
|
] }),
|
|
30045
30011
|
/* @__PURE__ */ jsx266("div", { className: "h-6 w-16 bg-ods-bg rounded" })
|
|
30046
30012
|
] }),
|
|
30047
|
-
/* @__PURE__ */
|
|
30013
|
+
/* @__PURE__ */ jsxs213("div", { className: "space-y-2", children: [
|
|
30048
30014
|
/* @__PURE__ */ jsx266("div", { className: "h-3 w-full bg-ods-bg/60 rounded" }),
|
|
30049
30015
|
/* @__PURE__ */ jsx266("div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" }),
|
|
30050
30016
|
/* @__PURE__ */ jsx266("div", { className: "h-3 w-4/5 bg-ods-bg/60 rounded" })
|
|
30051
30017
|
] }),
|
|
30052
30018
|
/* @__PURE__ */ jsx266("div", { className: "flex-1" }),
|
|
30053
|
-
/* @__PURE__ */
|
|
30019
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex items-center justify-between", children: [
|
|
30054
30020
|
/* @__PURE__ */ jsx266("div", { className: "h-12 w-32 bg-ods-bg rounded" }),
|
|
30055
30021
|
/* @__PURE__ */ jsx266("div", { className: "h-8 w-20 bg-ods-bg rounded" })
|
|
30056
30022
|
] })
|
|
@@ -30078,7 +30044,7 @@ function RoadmapCard({
|
|
|
30078
30044
|
const hasScreenshots = (item.screenshots?.length ?? 0) > 0;
|
|
30079
30045
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
30080
30046
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
30081
|
-
const body = /* @__PURE__ */
|
|
30047
|
+
const body = /* @__PURE__ */ jsxs213(Fragment47, { children: [
|
|
30082
30048
|
/* @__PURE__ */ jsx266(
|
|
30083
30049
|
"span",
|
|
30084
30050
|
{
|
|
@@ -30097,8 +30063,8 @@ function RoadmapCard({
|
|
|
30097
30063
|
) : /* @__PURE__ */ jsx266("span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: item.title?.substring(0, 2) || "??" })
|
|
30098
30064
|
}
|
|
30099
30065
|
),
|
|
30100
|
-
/* @__PURE__ */
|
|
30101
|
-
/* @__PURE__ */
|
|
30066
|
+
/* @__PURE__ */ jsxs213("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30067
|
+
/* @__PURE__ */ jsxs213("span", { className: `${COMPACT_CARD_TITLE_ROW} gap-2`, children: [
|
|
30102
30068
|
/* @__PURE__ */ jsx266("span", { className: `${COMPACT_CARD_TITLE} min-w-0`, children: item.title }),
|
|
30103
30069
|
item.status && item.status.trim().length > 0 ? /* @__PURE__ */ jsx266(
|
|
30104
30070
|
StatusBadge,
|
|
@@ -30111,7 +30077,7 @@ function RoadmapCard({
|
|
|
30111
30077
|
}
|
|
30112
30078
|
) : null
|
|
30113
30079
|
] }),
|
|
30114
|
-
/* @__PURE__ */
|
|
30080
|
+
/* @__PURE__ */ jsxs213("span", { className: `${COMPACT_CARD_META_ROW_BOX} gap-2 text-ods-text-secondary`, children: [
|
|
30115
30081
|
/* @__PURE__ */ jsx266("span", { className: "truncate text-[11px] leading-4 min-w-0 flex-1", children: (() => {
|
|
30116
30082
|
const parts = [
|
|
30117
30083
|
item.quarter,
|
|
@@ -30126,18 +30092,18 @@ function RoadmapCard({
|
|
|
30126
30092
|
}
|
|
30127
30093
|
return "Roadmap item";
|
|
30128
30094
|
})() }),
|
|
30129
|
-
hasVotes ? /* @__PURE__ */
|
|
30130
|
-
/* @__PURE__ */
|
|
30095
|
+
hasVotes ? /* @__PURE__ */ jsxs213("span", { className: "hidden sm:flex items-center gap-2 shrink-0 text-[11px] leading-4 text-ods-text-secondary", children: [
|
|
30096
|
+
/* @__PURE__ */ jsxs213("span", { className: "flex items-center gap-0.5", children: [
|
|
30131
30097
|
/* @__PURE__ */ jsx266(ThumbsUp, { className: "h-3 w-3" }),
|
|
30132
30098
|
/* @__PURE__ */ jsx266("span", { children: item.upvotes ?? 0 })
|
|
30133
30099
|
] }),
|
|
30134
|
-
/* @__PURE__ */
|
|
30100
|
+
/* @__PURE__ */ jsxs213("span", { className: "flex items-center gap-0.5", children: [
|
|
30135
30101
|
/* @__PURE__ */ jsx266(ThumbsDown, { className: "h-3 w-3" }),
|
|
30136
30102
|
/* @__PURE__ */ jsx266("span", { children: item.downvotes ?? 0 })
|
|
30137
30103
|
] })
|
|
30138
30104
|
] }) : null,
|
|
30139
30105
|
hasFigma ? /* @__PURE__ */ jsx266("span", { className: "hidden sm:flex shrink-0 items-center", title: "Has Figma prototype", children: /* @__PURE__ */ jsx266(FigmaIcon, { className: "h-3 w-3" }) }) : null,
|
|
30140
|
-
hasScreenshots ? /* @__PURE__ */
|
|
30106
|
+
hasScreenshots ? /* @__PURE__ */ jsxs213(
|
|
30141
30107
|
"span",
|
|
30142
30108
|
{
|
|
30143
30109
|
className: "hidden sm:flex shrink-0 items-center gap-0.5 text-[11px] leading-4",
|
|
@@ -30157,8 +30123,8 @@ function RoadmapCard({
|
|
|
30157
30123
|
}
|
|
30158
30124
|
return /* @__PURE__ */ jsx266("a", { href: compactHref, target, rel, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
30159
30125
|
}
|
|
30160
|
-
return /* @__PURE__ */
|
|
30161
|
-
/* @__PURE__ */
|
|
30126
|
+
return /* @__PURE__ */ jsxs213("div", { className: `bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] hover:border-ods-accent transition-all h-full ${className ?? ""}`, children: [
|
|
30127
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex gap-[16px] items-center w-full", children: [
|
|
30162
30128
|
/* @__PURE__ */ jsx266("div", { className: "w-16 h-16 rounded-lg flex items-center justify-center flex-shrink-0 bg-ods-bg border border-ods-border", children: iconSrc ? /* @__PURE__ */ jsx266(
|
|
30163
30129
|
next_image_default,
|
|
30164
30130
|
{
|
|
@@ -30170,9 +30136,9 @@ function RoadmapCard({
|
|
|
30170
30136
|
className: "object-contain p-1"
|
|
30171
30137
|
}
|
|
30172
30138
|
) : /* @__PURE__ */ jsx266("span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: item.title?.substring(0, 2) || "??" }) }),
|
|
30173
|
-
/* @__PURE__ */
|
|
30139
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
30174
30140
|
/* @__PURE__ */ jsx266("div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ jsx266("h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2", children: item.title }) }),
|
|
30175
|
-
/* @__PURE__ */ jsx266("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */
|
|
30141
|
+
/* @__PURE__ */ jsx266("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsxs213("p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
|
|
30176
30142
|
item.quarter,
|
|
30177
30143
|
", ",
|
|
30178
30144
|
item.id
|
|
@@ -30197,8 +30163,8 @@ function RoadmapCard({
|
|
|
30197
30163
|
) }),
|
|
30198
30164
|
/* @__PURE__ */ jsx266("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsx266("p", { className: "text-h4 text-ods-text-secondary line-clamp-3", children: item.description || "" }) }),
|
|
30199
30165
|
/* @__PURE__ */ jsx266("div", { className: "flex-1" }),
|
|
30200
|
-
/* @__PURE__ */
|
|
30201
|
-
onVote && /* @__PURE__ */
|
|
30166
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex items-center justify-between w-full", children: [
|
|
30167
|
+
onVote && /* @__PURE__ */ jsxs213("div", { className: "bg-ods-card border border-ods-border h-[48px] rounded-[6px] flex overflow-hidden", children: [
|
|
30202
30168
|
/* @__PURE__ */ jsx266(
|
|
30203
30169
|
RoadmapVoteButton,
|
|
30204
30170
|
{
|
|
@@ -30224,7 +30190,7 @@ function RoadmapCard({
|
|
|
30224
30190
|
}
|
|
30225
30191
|
)
|
|
30226
30192
|
] }),
|
|
30227
|
-
/* @__PURE__ */
|
|
30193
|
+
/* @__PURE__ */ jsxs213("div", { className: "flex items-center gap-2", children: [
|
|
30228
30194
|
item.screenshots && item.screenshots.length > 0 && /* @__PURE__ */ jsx266(
|
|
30229
30195
|
Button,
|
|
30230
30196
|
{
|
|
@@ -30270,7 +30236,7 @@ function RoadmapCard({
|
|
|
30270
30236
|
// src/components/chat/entity-cards/github-activity-card.tsx
|
|
30271
30237
|
import React105 from "react";
|
|
30272
30238
|
import { GitPullRequest, Eye as Eye4, ExternalLink as ExternalLink5 } from "lucide-react";
|
|
30273
|
-
import { Fragment as Fragment48, jsx as jsx267, jsxs as
|
|
30239
|
+
import { Fragment as Fragment48, jsx as jsx267, jsxs as jsxs214 } from "react/jsx-runtime";
|
|
30274
30240
|
function parseRepoFromUrl(url) {
|
|
30275
30241
|
if (!url) return null;
|
|
30276
30242
|
try {
|
|
@@ -30381,12 +30347,12 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
30381
30347
|
const { display: title, reviewState } = parseGithubTitle(item.title, kind);
|
|
30382
30348
|
const primaryText = kind === "pr_review" ? title.replace(/^by\s+/i, "").trim() || "Reviewer" : title;
|
|
30383
30349
|
if (variant === "row") {
|
|
30384
|
-
return /* @__PURE__ */
|
|
30385
|
-
/* @__PURE__ */
|
|
30350
|
+
return /* @__PURE__ */ jsxs214("div", { className: `flex items-center gap-3 min-w-0 ${className ?? ""}`, children: [
|
|
30351
|
+
/* @__PURE__ */ jsxs214("span", { className: "flex items-center gap-2 w-28 shrink-0", children: [
|
|
30386
30352
|
kindIcon(kind, "h-3.5 w-3.5"),
|
|
30387
30353
|
/* @__PURE__ */ jsx267("code", { className: "text-ods-text-secondary font-mono text-xs truncate", children: idLabel })
|
|
30388
30354
|
] }),
|
|
30389
|
-
/* @__PURE__ */
|
|
30355
|
+
/* @__PURE__ */ jsxs214("span", { className: "flex items-center gap-2 text-ods-text-primary text-sm flex-1 min-w-0", children: [
|
|
30390
30356
|
reviewState ? /* @__PURE__ */ jsx267(ReviewStateBadge, { state: reviewState }) : null,
|
|
30391
30357
|
/* @__PURE__ */ jsx267("span", { className: "truncate", children: primaryText })
|
|
30392
30358
|
] }),
|
|
@@ -30402,14 +30368,14 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
30402
30368
|
if (repo) metaParts.push(/* @__PURE__ */ jsx267("span", { className: "font-mono truncate", children: repo }, "repo"));
|
|
30403
30369
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx267("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
30404
30370
|
const href = safeHref(item.url);
|
|
30405
|
-
const body = /* @__PURE__ */
|
|
30371
|
+
const body = /* @__PURE__ */ jsxs214(Fragment48, { children: [
|
|
30406
30372
|
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
30407
|
-
/* @__PURE__ */
|
|
30408
|
-
/* @__PURE__ */
|
|
30373
|
+
/* @__PURE__ */ jsxs214("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30374
|
+
/* @__PURE__ */ jsxs214("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
30409
30375
|
reviewState ? /* @__PURE__ */ jsx267(ReviewStateBadge, { state: reviewState }) : null,
|
|
30410
30376
|
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_TITLE, children: primaryText })
|
|
30411
30377
|
] }),
|
|
30412
|
-
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */
|
|
30378
|
+
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ jsxs214(React105.Fragment, { children: [
|
|
30413
30379
|
i > 0 ? /* @__PURE__ */ jsx267("span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
30414
30380
|
/* @__PURE__ */ jsx267("span", { className: "min-w-0 truncate", children: part })
|
|
30415
30381
|
] }, i)) }) }),
|
|
@@ -30433,8 +30399,8 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
30433
30399
|
}
|
|
30434
30400
|
function GitHubActivityCardSkeleton({ variant = "compact", className }) {
|
|
30435
30401
|
if (variant === "row") {
|
|
30436
|
-
return /* @__PURE__ */
|
|
30437
|
-
/* @__PURE__ */
|
|
30402
|
+
return /* @__PURE__ */ jsxs214("div", { className: `flex items-center gap-3 min-w-0 animate-pulse ${className ?? ""}`, children: [
|
|
30403
|
+
/* @__PURE__ */ jsxs214("div", { className: "flex items-center gap-2 w-28 shrink-0", children: [
|
|
30438
30404
|
/* @__PURE__ */ jsx267("div", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }),
|
|
30439
30405
|
/* @__PURE__ */ jsx267("div", { className: "h-3 w-16 bg-ods-bg rounded" })
|
|
30440
30406
|
] }),
|
|
@@ -30443,9 +30409,9 @@ function GitHubActivityCardSkeleton({ variant = "compact", className }) {
|
|
|
30443
30409
|
/* @__PURE__ */ jsx267("div", { className: "h-3 w-20 bg-ods-bg/60 rounded shrink-0" })
|
|
30444
30410
|
] });
|
|
30445
30411
|
}
|
|
30446
|
-
return /* @__PURE__ */
|
|
30412
|
+
return /* @__PURE__ */ jsxs214("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
30447
30413
|
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
30448
|
-
/* @__PURE__ */
|
|
30414
|
+
/* @__PURE__ */ jsxs214("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30449
30415
|
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx267("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
|
|
30450
30416
|
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx267("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
|
|
30451
30417
|
/* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx267("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) })
|
|
@@ -30457,7 +30423,7 @@ function GitHubActivityCardSkeleton({ variant = "compact", className }) {
|
|
|
30457
30423
|
// src/components/chat/entity-cards/slack-message-card.tsx
|
|
30458
30424
|
import React106 from "react";
|
|
30459
30425
|
import { ExternalLink as ExternalLink6, Hash } from "lucide-react";
|
|
30460
|
-
import { Fragment as Fragment49, jsx as jsx268, jsxs as
|
|
30426
|
+
import { Fragment as Fragment49, jsx as jsx268, jsxs as jsxs215 } from "react/jsx-runtime";
|
|
30461
30427
|
function parseChannelFromUrl(url) {
|
|
30462
30428
|
if (!url) return null;
|
|
30463
30429
|
try {
|
|
@@ -30474,11 +30440,11 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
30474
30440
|
const channel = item.channel ?? parseChannelFromUrl(item.url) ?? null;
|
|
30475
30441
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
30476
30442
|
if (variant === "row") {
|
|
30477
|
-
return /* @__PURE__ */
|
|
30443
|
+
return /* @__PURE__ */ jsxs215("div", { className: `flex items-center gap-3 min-w-0 ${className ?? ""}`, children: [
|
|
30478
30444
|
/* @__PURE__ */ jsx268(SlackIcon, { className: "h-3.5 w-3.5 shrink-0" }),
|
|
30479
30445
|
/* @__PURE__ */ jsx268("span", { className: "text-ods-text-primary text-sm font-medium truncate max-w-[180px] shrink-0", children: item.title }),
|
|
30480
30446
|
item.preview ? /* @__PURE__ */ jsx268("span", { className: "text-ods-text-secondary text-sm flex-1 min-w-0 truncate", children: item.preview }) : null,
|
|
30481
|
-
channel ? /* @__PURE__ */
|
|
30447
|
+
channel ? /* @__PURE__ */ jsxs215("span", { className: "font-mono text-[11px] text-ods-text-secondary truncate max-w-[140px] shrink-0", children: [
|
|
30482
30448
|
/* @__PURE__ */ jsx268(Hash, { className: "inline h-3 w-3" }),
|
|
30483
30449
|
channel
|
|
30484
30450
|
] }) : null,
|
|
@@ -30488,7 +30454,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
30488
30454
|
const metaParts = [];
|
|
30489
30455
|
if (channel) {
|
|
30490
30456
|
metaParts.push(
|
|
30491
|
-
/* @__PURE__ */
|
|
30457
|
+
/* @__PURE__ */ jsxs215("span", { className: "flex items-center gap-0.5 min-w-0", children: [
|
|
30492
30458
|
/* @__PURE__ */ jsx268(Hash, { className: "h-3 w-3 shrink-0" }),
|
|
30493
30459
|
/* @__PURE__ */ jsx268("span", { className: "truncate font-mono", children: channel })
|
|
30494
30460
|
] }, "channel")
|
|
@@ -30496,12 +30462,12 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
30496
30462
|
}
|
|
30497
30463
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx268("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
30498
30464
|
const href = safeHref(item.url);
|
|
30499
|
-
const body = /* @__PURE__ */
|
|
30465
|
+
const body = /* @__PURE__ */ jsxs215(Fragment49, { children: [
|
|
30500
30466
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx268(SlackIcon, { className: "h-5 w-5" }) }),
|
|
30501
|
-
/* @__PURE__ */
|
|
30467
|
+
/* @__PURE__ */ jsxs215("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30502
30468
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
|
|
30503
30469
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_SUMMARY, children: item.preview || COMPACT_CARD_ROW_FILLER }) }),
|
|
30504
|
-
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */
|
|
30470
|
+
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ jsxs215(React106.Fragment, { children: [
|
|
30505
30471
|
i > 0 ? /* @__PURE__ */ jsx268("span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
30506
30472
|
/* @__PURE__ */ jsx268("span", { className: "min-w-0 truncate", children: part })
|
|
30507
30473
|
] }, i)) : /* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
|
|
@@ -30524,7 +30490,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
30524
30490
|
}
|
|
30525
30491
|
function SlackMessageCardSkeleton({ variant = "compact", className }) {
|
|
30526
30492
|
if (variant === "row") {
|
|
30527
|
-
return /* @__PURE__ */
|
|
30493
|
+
return /* @__PURE__ */ jsxs215("div", { className: `flex items-center gap-3 min-w-0 animate-pulse ${className ?? ""}`, children: [
|
|
30528
30494
|
/* @__PURE__ */ jsx268("div", { className: "h-3.5 w-3.5 rounded bg-ods-bg shrink-0" }),
|
|
30529
30495
|
/* @__PURE__ */ jsx268("div", { className: "h-3 w-32 bg-ods-bg rounded shrink-0" }),
|
|
30530
30496
|
/* @__PURE__ */ jsx268("div", { className: "h-3 w-2/3 bg-ods-bg/60 rounded flex-1" }),
|
|
@@ -30532,9 +30498,9 @@ function SlackMessageCardSkeleton({ variant = "compact", className }) {
|
|
|
30532
30498
|
/* @__PURE__ */ jsx268("div", { className: "h-3 w-20 bg-ods-bg/60 rounded shrink-0" })
|
|
30533
30499
|
] });
|
|
30534
30500
|
}
|
|
30535
|
-
return /* @__PURE__ */
|
|
30501
|
+
return /* @__PURE__ */ jsxs215("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
30536
30502
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
30537
|
-
/* @__PURE__ */
|
|
30503
|
+
/* @__PURE__ */ jsxs215("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30538
30504
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx268("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
|
|
30539
30505
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx268("span", { className: "h-3 w-5/6 rounded bg-ods-bg/60" }) }),
|
|
30540
30506
|
/* @__PURE__ */ jsx268("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx268("span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
|
|
@@ -30546,7 +30512,7 @@ function SlackMessageCardSkeleton({ variant = "compact", className }) {
|
|
|
30546
30512
|
// src/components/chat/entity-cards/hubspot-ticket-card.tsx
|
|
30547
30513
|
import React107 from "react";
|
|
30548
30514
|
import { ExternalLink as ExternalLink7 } from "lucide-react";
|
|
30549
|
-
import { Fragment as Fragment50, jsx as jsx269, jsxs as
|
|
30515
|
+
import { Fragment as Fragment50, jsx as jsx269, jsxs as jsxs216 } from "react/jsx-runtime";
|
|
30550
30516
|
function formatToken(token) {
|
|
30551
30517
|
if (!token) return null;
|
|
30552
30518
|
const lower = token.toLowerCase().replace(/_/g, " ");
|
|
@@ -30570,7 +30536,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
30570
30536
|
const priorityText = formatToken(item.priority);
|
|
30571
30537
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
30572
30538
|
if (variant === "row") {
|
|
30573
|
-
return /* @__PURE__ */
|
|
30539
|
+
return /* @__PURE__ */ jsxs216("div", { className: `flex items-center gap-3 min-w-0 ${className ?? ""}`, children: [
|
|
30574
30540
|
/* @__PURE__ */ jsx269("span", { className: "text-ods-text-primary text-sm font-medium truncate max-w-[260px] shrink-0", children: item.title }),
|
|
30575
30541
|
item.preview ? /* @__PURE__ */ jsx269("span", { className: "text-ods-text-secondary text-sm flex-1 min-w-0 truncate", children: item.preview }) : null,
|
|
30576
30542
|
statusText ? /* @__PURE__ */ jsx269(StatusBadge, { text: statusText, variant: "button", colorScheme: statusScheme(item.status) }) : null,
|
|
@@ -30585,9 +30551,9 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
30585
30551
|
}
|
|
30586
30552
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx269("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
30587
30553
|
const href = safeHref(item.url);
|
|
30588
|
-
const body = /* @__PURE__ */
|
|
30589
|
-
/* @__PURE__ */
|
|
30590
|
-
/* @__PURE__ */
|
|
30554
|
+
const body = /* @__PURE__ */ jsxs216(Fragment50, { children: [
|
|
30555
|
+
/* @__PURE__ */ jsxs216("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30556
|
+
/* @__PURE__ */ jsxs216("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
30591
30557
|
/* @__PURE__ */ jsx269("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
30592
30558
|
priorityText ? /* @__PURE__ */ jsx269(
|
|
30593
30559
|
StatusBadge,
|
|
@@ -30608,12 +30574,12 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
30608
30574
|
}
|
|
30609
30575
|
) : null
|
|
30610
30576
|
] }),
|
|
30611
|
-
item.customerEmail ? /* @__PURE__ */
|
|
30577
|
+
item.customerEmail ? /* @__PURE__ */ jsxs216("span", { className: "flex min-w-0 items-center gap-1 text-[11px] leading-4 text-ods-text-secondary", children: [
|
|
30612
30578
|
/* @__PURE__ */ jsx269("span", { className: "shrink-0 text-ods-text-secondary/70", children: "From:" }),
|
|
30613
30579
|
/* @__PURE__ */ jsx269("span", { className: "min-w-0 truncate", children: item.customerEmail })
|
|
30614
30580
|
] }) : null,
|
|
30615
30581
|
/* @__PURE__ */ jsx269("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx269("span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview || /* @__PURE__ */ jsx269("span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
|
|
30616
|
-
metaParts.length > 0 ? /* @__PURE__ */ jsx269("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx269("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */
|
|
30582
|
+
metaParts.length > 0 ? /* @__PURE__ */ jsx269("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx269("span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ jsxs216(React107.Fragment, { children: [
|
|
30617
30583
|
i > 0 ? /* @__PURE__ */ jsx269("span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
|
|
30618
30584
|
/* @__PURE__ */ jsx269("span", { className: "min-w-0 truncate", children: part })
|
|
30619
30585
|
] }, i)) }) }) : null
|
|
@@ -30636,22 +30602,22 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
30636
30602
|
}
|
|
30637
30603
|
function HubspotTicketCardSkeleton({ variant = "compact", className }) {
|
|
30638
30604
|
if (variant === "row") {
|
|
30639
|
-
return /* @__PURE__ */
|
|
30605
|
+
return /* @__PURE__ */ jsxs216("div", { className: `flex items-center gap-3 min-w-0 animate-pulse ${className ?? ""}`, children: [
|
|
30640
30606
|
/* @__PURE__ */ jsx269("div", { className: "h-3 w-40 bg-ods-bg rounded shrink-0" }),
|
|
30641
30607
|
/* @__PURE__ */ jsx269("div", { className: "h-3 w-2/3 bg-ods-bg/60 rounded flex-1" }),
|
|
30642
30608
|
/* @__PURE__ */ jsx269("div", { className: "h-3 w-16 bg-ods-bg/60 rounded shrink-0" }),
|
|
30643
30609
|
/* @__PURE__ */ jsx269("div", { className: "h-3 w-20 bg-ods-bg/60 rounded shrink-0" })
|
|
30644
30610
|
] });
|
|
30645
30611
|
}
|
|
30646
|
-
return /* @__PURE__ */
|
|
30647
|
-
/* @__PURE__ */
|
|
30648
|
-
/* @__PURE__ */
|
|
30612
|
+
return /* @__PURE__ */ jsxs216("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
30613
|
+
/* @__PURE__ */ jsxs216("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30614
|
+
/* @__PURE__ */ jsxs216("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
30649
30615
|
/* @__PURE__ */ jsx269("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
30650
30616
|
/* @__PURE__ */ jsx269("span", { className: "h-4 w-12 rounded-full bg-ods-bg/60" }),
|
|
30651
30617
|
/* @__PURE__ */ jsx269("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
30652
30618
|
] }),
|
|
30653
30619
|
/* @__PURE__ */ jsx269("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
30654
|
-
/* @__PURE__ */
|
|
30620
|
+
/* @__PURE__ */ jsxs216("span", { className: "flex flex-col gap-0 min-w-0", children: [
|
|
30655
30621
|
/* @__PURE__ */ jsx269("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
30656
30622
|
/* @__PURE__ */ jsx269("span", { className: "h-5 w-4/6 rounded bg-ods-bg/60" }),
|
|
30657
30623
|
/* @__PURE__ */ jsx269("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" }),
|
|
@@ -30665,15 +30631,15 @@ function HubspotTicketCardSkeleton({ variant = "compact", className }) {
|
|
|
30665
30631
|
|
|
30666
30632
|
// src/components/chat/entity-cards/data-room-doc-card.tsx
|
|
30667
30633
|
import { ExternalLink as ExternalLink8 } from "lucide-react";
|
|
30668
|
-
import { Fragment as Fragment51, jsx as jsx270, jsxs as
|
|
30634
|
+
import { Fragment as Fragment51, jsx as jsx270, jsxs as jsxs217 } from "react/jsx-runtime";
|
|
30669
30635
|
function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
30670
|
-
const body = /* @__PURE__ */
|
|
30671
|
-
/* @__PURE__ */
|
|
30672
|
-
/* @__PURE__ */
|
|
30636
|
+
const body = /* @__PURE__ */ jsxs217(Fragment51, { children: [
|
|
30637
|
+
/* @__PURE__ */ jsxs217("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30638
|
+
/* @__PURE__ */ jsxs217("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
30673
30639
|
/* @__PURE__ */ jsx270("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
30674
30640
|
/* @__PURE__ */ jsx270(StatusBadge, { text: badgeText, variant: "button", colorScheme: "cyan", className: "shrink-0" })
|
|
30675
30641
|
] }),
|
|
30676
|
-
item.path ? /* @__PURE__ */
|
|
30642
|
+
item.path ? /* @__PURE__ */ jsxs217("span", { className: "flex min-w-0 items-center gap-1 text-[11px] leading-4 text-ods-text-secondary", children: [
|
|
30677
30643
|
/* @__PURE__ */ jsx270("span", { className: "shrink-0 text-ods-text-secondary/70", children: "Path:" }),
|
|
30678
30644
|
/* @__PURE__ */ jsx270("span", { className: "min-w-0 truncate font-mono", children: item.path })
|
|
30679
30645
|
] }) : null,
|
|
@@ -30687,14 +30653,14 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
30687
30653
|
return /* @__PURE__ */ jsx270("a", { ...anchorProps, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body });
|
|
30688
30654
|
}
|
|
30689
30655
|
function DataRoomDocCardSkeleton({ className }) {
|
|
30690
|
-
return /* @__PURE__ */
|
|
30691
|
-
/* @__PURE__ */
|
|
30692
|
-
/* @__PURE__ */
|
|
30656
|
+
return /* @__PURE__ */ jsxs217("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
30657
|
+
/* @__PURE__ */ jsxs217("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
30658
|
+
/* @__PURE__ */ jsxs217("span", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
30693
30659
|
/* @__PURE__ */ jsx270("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
30694
30660
|
/* @__PURE__ */ jsx270("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
30695
30661
|
] }),
|
|
30696
30662
|
/* @__PURE__ */ jsx270("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
30697
|
-
/* @__PURE__ */
|
|
30663
|
+
/* @__PURE__ */ jsxs217("span", { className: "flex flex-col gap-0 min-w-0", children: [
|
|
30698
30664
|
/* @__PURE__ */ jsx270("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
30699
30665
|
/* @__PURE__ */ jsx270("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" })
|
|
30700
30666
|
] })
|
|
@@ -32277,12 +32243,12 @@ function cleanEscapedString(input) {
|
|
|
32277
32243
|
init_button();
|
|
32278
32244
|
import { ExternalLink as ExternalLink9, Clock, Play as Play2, Video as Video6 } from "lucide-react";
|
|
32279
32245
|
init_cn();
|
|
32280
|
-
import { Fragment as Fragment52, jsx as jsx271, jsxs as
|
|
32246
|
+
import { Fragment as Fragment52, jsx as jsx271, jsxs as jsxs218 } from "react/jsx-runtime";
|
|
32281
32247
|
function ProgramCardSkeleton({ size = "default" }) {
|
|
32282
32248
|
if (size === "sm") {
|
|
32283
|
-
return /* @__PURE__ */
|
|
32249
|
+
return /* @__PURE__ */ jsxs218("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
32284
32250
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
32285
|
-
/* @__PURE__ */
|
|
32251
|
+
/* @__PURE__ */ jsxs218("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
32286
32252
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx271("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
|
|
32287
32253
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx271("span", { className: "h-3 w-2/5 rounded bg-ods-bg/70" }) }),
|
|
32288
32254
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx271("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
|
|
@@ -32290,19 +32256,19 @@ function ProgramCardSkeleton({ size = "default" }) {
|
|
|
32290
32256
|
/* @__PURE__ */ jsx271("span", { className: "flex shrink-0 items-center self-start h-5", children: /* @__PURE__ */ jsx271("span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
|
|
32291
32257
|
] });
|
|
32292
32258
|
}
|
|
32293
|
-
return /* @__PURE__ */
|
|
32259
|
+
return /* @__PURE__ */ jsxs218(
|
|
32294
32260
|
"div",
|
|
32295
32261
|
{
|
|
32296
32262
|
className: "border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse",
|
|
32297
32263
|
style: { backgroundColor: "var(--ods-system-greys-black)" },
|
|
32298
32264
|
children: [
|
|
32299
|
-
/* @__PURE__ */ jsx271("div", { className: "p-6 flex-1", children: /* @__PURE__ */
|
|
32265
|
+
/* @__PURE__ */ jsx271("div", { className: "p-6 flex-1", children: /* @__PURE__ */ jsxs218("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
32300
32266
|
/* @__PURE__ */ jsx271("div", { className: "w-full md:w-[180px] h-[180px] bg-ods-bg rounded-lg flex-shrink-0" }),
|
|
32301
|
-
/* @__PURE__ */
|
|
32267
|
+
/* @__PURE__ */ jsxs218("div", { className: "flex-1 min-w-0 flex flex-col gap-3", children: [
|
|
32302
32268
|
/* @__PURE__ */ jsx271("div", { className: "h-7 w-3/4 bg-ods-bg rounded" }),
|
|
32303
32269
|
/* @__PURE__ */ jsx271("div", { className: "h-7 w-1/2 bg-ods-bg rounded" }),
|
|
32304
32270
|
/* @__PURE__ */ jsx271("div", { className: "h-4 w-1/3 bg-ods-bg/60 rounded" }),
|
|
32305
|
-
/* @__PURE__ */
|
|
32271
|
+
/* @__PURE__ */ jsxs218("div", { className: "space-y-2", children: [
|
|
32306
32272
|
/* @__PURE__ */ jsx271("div", { className: "h-3 w-full bg-ods-bg/60 rounded" }),
|
|
32307
32273
|
/* @__PURE__ */ jsx271("div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" }),
|
|
32308
32274
|
/* @__PURE__ */ jsx271("div", { className: "h-3 w-4/5 bg-ods-bg/60 rounded" })
|
|
@@ -32349,8 +32315,8 @@ function MediaGallery({ images, title }) {
|
|
|
32349
32315
|
setIsModalOpen(false);
|
|
32350
32316
|
setSelectedImageIndex(null);
|
|
32351
32317
|
};
|
|
32352
|
-
return /* @__PURE__ */
|
|
32353
|
-
/* @__PURE__ */ jsx271("div", { className: "p-6 pt-4", children: /* @__PURE__ */ jsx271("div", { className: "overflow-x-auto mb-4", children: /* @__PURE__ */ jsx271("div", { className: "flex gap-3 pb-2", style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */
|
|
32318
|
+
return /* @__PURE__ */ jsxs218(Fragment52, { children: [
|
|
32319
|
+
/* @__PURE__ */ jsx271("div", { className: "p-6 pt-4", children: /* @__PURE__ */ jsx271("div", { className: "overflow-x-auto mb-4", children: /* @__PURE__ */ jsx271("div", { className: "flex gap-3 pb-2", style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ jsxs218(
|
|
32354
32320
|
"div",
|
|
32355
32321
|
{
|
|
32356
32322
|
className: "flex-shrink-0 w-24 h-24 relative rounded-md overflow-hidden cursor-pointer group/thumb",
|
|
@@ -32439,8 +32405,8 @@ function ProgramCard({
|
|
|
32439
32405
|
const subtitleParts = [itemDate2, typeMeta, config.labels?.singular].filter(
|
|
32440
32406
|
(s) => typeof s === "string" && s.length > 0
|
|
32441
32407
|
);
|
|
32442
|
-
return /* @__PURE__ */
|
|
32443
|
-
/* @__PURE__ */
|
|
32408
|
+
return /* @__PURE__ */ jsxs218("a", { href, target, rel, className: cn(COMPACT_CARD_OUTER, className), children: [
|
|
32409
|
+
/* @__PURE__ */ jsxs218("span", { className: COMPACT_CARD_IMAGE_SLOT, children: [
|
|
32444
32410
|
compactCover ? /* @__PURE__ */ jsx271(
|
|
32445
32411
|
next_image_default,
|
|
32446
32412
|
{
|
|
@@ -32454,7 +32420,7 @@ function ProgramCard({
|
|
|
32454
32420
|
) : /* @__PURE__ */ jsx271("span", { className: "flex h-full w-full items-center justify-center text-ods-accent", children: config.type === "podcast" ? /* @__PURE__ */ jsx271(Play2, { className: "w-4 h-4" }) : config.type === "webinar" ? /* @__PURE__ */ jsx271(Video6, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx271(Clock, { className: "w-4 h-4" }) }),
|
|
32455
32421
|
config.type === "podcast" && !isScheduled && compactCover && /* @__PURE__ */ jsx271("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx271(Play2, { className: "w-4 h-4 text-white", fill: "white" }) })
|
|
32456
32422
|
] }),
|
|
32457
|
-
/* @__PURE__ */
|
|
32423
|
+
/* @__PURE__ */ jsxs218("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
32458
32424
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx271("span", { className: cn(COMPACT_CARD_TITLE, "font-['Azeret_Mono']"), children: item.title }) }),
|
|
32459
32425
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx271("span", { className: "truncate text-[11px] leading-4 text-[var(--color-accent-primary)]", children: subtitleParts.join(" \xB7 ") }) }),
|
|
32460
32426
|
/* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx271("span", { className: COMPACT_CARD_SUMMARY, children: item.description || COMPACT_CARD_ROW_FILLER }) })
|
|
@@ -32466,7 +32432,7 @@ function ProgramCard({
|
|
|
32466
32432
|
const dateFormat = format(itemDate, "EEEE d MMMM");
|
|
32467
32433
|
const defaultRenderMeta = () => {
|
|
32468
32434
|
if (config.type === "podcast" && "duration_seconds" in item && !isScheduled) {
|
|
32469
|
-
return /* @__PURE__ */
|
|
32435
|
+
return /* @__PURE__ */ jsxs218(Fragment52, { children: [
|
|
32470
32436
|
/* @__PURE__ */ jsx271(Clock, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
32471
32437
|
/* @__PURE__ */ jsx271("span", { className: "font-['DM_Sans'] text-ods-text-secondary", children: formatDurationCompact(item.duration_seconds) })
|
|
32472
32438
|
] });
|
|
@@ -32477,13 +32443,13 @@ function ProgramCard({
|
|
|
32477
32443
|
if (config.type === "webinar" && "start_at" in item) {
|
|
32478
32444
|
const webinarItem = item;
|
|
32479
32445
|
const duration = formatDurationFromRange(webinarItem.start_at, webinarItem.end_at);
|
|
32480
|
-
return /* @__PURE__ */
|
|
32446
|
+
return /* @__PURE__ */ jsxs218(Fragment52, { children: [
|
|
32481
32447
|
/* @__PURE__ */ jsx271(Video6, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
32482
|
-
/* @__PURE__ */
|
|
32448
|
+
/* @__PURE__ */ jsxs218("span", { className: "font-['DM_Sans'] text-ods-text-secondary", children: [
|
|
32483
32449
|
formatTimeWithTimezone(webinarItem.start_at, null),
|
|
32484
32450
|
duration && ` \xB7 ${duration}`
|
|
32485
32451
|
] }),
|
|
32486
|
-
webinarItem.timezone && /* @__PURE__ */
|
|
32452
|
+
webinarItem.timezone && /* @__PURE__ */ jsxs218("span", { className: "font-['DM_Sans'] text-xs text-ods-text-secondary", children: [
|
|
32487
32453
|
"(",
|
|
32488
32454
|
webinarItem.timezone,
|
|
32489
32455
|
")"
|
|
@@ -32492,8 +32458,8 @@ function ProgramCard({
|
|
|
32492
32458
|
}
|
|
32493
32459
|
return null;
|
|
32494
32460
|
};
|
|
32495
|
-
const cardHeader = /* @__PURE__ */ jsx271("div", { className: "p-6 border-ods-border flex-1", children: /* @__PURE__ */
|
|
32496
|
-
coverImage && /* @__PURE__ */ jsx271("div", { className: "w-full md:w-[180px] flex-shrink-0 flex items-center", children: /* @__PURE__ */
|
|
32461
|
+
const cardHeader = /* @__PURE__ */ jsx271("div", { className: "p-6 border-ods-border flex-1", children: /* @__PURE__ */ jsxs218("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
32462
|
+
coverImage && /* @__PURE__ */ jsx271("div", { className: "w-full md:w-[180px] flex-shrink-0 flex items-center", children: /* @__PURE__ */ jsxs218("div", { className: "relative rounded-lg overflow-hidden", children: [
|
|
32497
32463
|
/* @__PURE__ */ jsx271(
|
|
32498
32464
|
next_image_default,
|
|
32499
32465
|
{
|
|
@@ -32507,14 +32473,14 @@ function ProgramCard({
|
|
|
32507
32473
|
),
|
|
32508
32474
|
config.type === "podcast" && !isScheduled && /* @__PURE__ */ jsx271("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity rounded-lg", children: /* @__PURE__ */ jsx271(Play2, { className: "w-10 h-10 text-white", fill: "white" }) })
|
|
32509
32475
|
] }) }),
|
|
32510
|
-
/* @__PURE__ */
|
|
32476
|
+
/* @__PURE__ */ jsxs218("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
32511
32477
|
/* @__PURE__ */ jsx271("h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight mb-3 min-h-[3rem] md:min-h-[3.5rem] line-clamp-2 flex items-center", children: item.title }),
|
|
32512
|
-
/* @__PURE__ */
|
|
32478
|
+
/* @__PURE__ */ jsxs218("div", { className: "flex flex-col md:flex-row md:items-center gap-2 md:gap-4 mb-4", children: [
|
|
32513
32479
|
/* @__PURE__ */ jsx271("span", { className: "font-['DM_Sans'] font-medium", style: { color: accentColor }, children: dateFormat }),
|
|
32514
|
-
renderMeta ? /* @__PURE__ */
|
|
32480
|
+
renderMeta ? /* @__PURE__ */ jsxs218(Fragment52, { children: [
|
|
32515
32481
|
/* @__PURE__ */ jsx271("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
32516
32482
|
renderMeta(item)
|
|
32517
|
-
] }) : defaultRenderMeta() && /* @__PURE__ */
|
|
32483
|
+
] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs218(Fragment52, { children: [
|
|
32518
32484
|
/* @__PURE__ */ jsx271("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
32519
32485
|
/* @__PURE__ */ jsx271("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
|
|
32520
32486
|
] })
|
|
@@ -32539,7 +32505,7 @@ function ProgramCard({
|
|
|
32539
32505
|
);
|
|
32540
32506
|
const cardFrameStyle = { backgroundColor: "var(--ods-system-greys-black)" };
|
|
32541
32507
|
if (wholeCardClickable) {
|
|
32542
|
-
return /* @__PURE__ */
|
|
32508
|
+
return /* @__PURE__ */ jsxs218(
|
|
32543
32509
|
"a",
|
|
32544
32510
|
{
|
|
32545
32511
|
href,
|
|
@@ -32551,7 +32517,7 @@ function ProgramCard({
|
|
|
32551
32517
|
children: [
|
|
32552
32518
|
cardHeader,
|
|
32553
32519
|
images.length > 0 && /* @__PURE__ */ jsx271(MediaGallery, { images, title: item.title }),
|
|
32554
|
-
/* @__PURE__ */ jsx271("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx271("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */
|
|
32520
|
+
/* @__PURE__ */ jsx271("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx271("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */ jsxs218(
|
|
32555
32521
|
"span",
|
|
32556
32522
|
{
|
|
32557
32523
|
className: "inline-flex items-center gap-2 px-4 py-2 rounded-md border border-ods-accent text-ods-accent text-sm font-medium font-['DM_Sans']",
|
|
@@ -32568,10 +32534,10 @@ function ProgramCard({
|
|
|
32568
32534
|
}
|
|
32569
32535
|
);
|
|
32570
32536
|
}
|
|
32571
|
-
return /* @__PURE__ */
|
|
32537
|
+
return /* @__PURE__ */ jsxs218("div", { className: cardFrameClass, style: cardFrameStyle, children: [
|
|
32572
32538
|
/* @__PURE__ */ jsx271("a", { href, target, rel, className: "block", "aria-label": `Open ${item.title}`, children: cardHeader }),
|
|
32573
32539
|
images.length > 0 && /* @__PURE__ */ jsx271(MediaGallery, { images, title: item.title }),
|
|
32574
|
-
/* @__PURE__ */ jsx271("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx271("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */
|
|
32540
|
+
/* @__PURE__ */ jsx271("div", { className: "p-6 pt-0 mt-auto", children: /* @__PURE__ */ jsx271("div", { className: "pt-4 border-t border-ods-border", children: /* @__PURE__ */ jsxs218(
|
|
32575
32541
|
Button,
|
|
32576
32542
|
{
|
|
32577
32543
|
variant: "outline",
|
|
@@ -32591,12 +32557,12 @@ function ProgramCard({
|
|
|
32591
32557
|
|
|
32592
32558
|
// src/components/chat/entity-cards/campaign-card-admin.tsx
|
|
32593
32559
|
import { Megaphone } from "lucide-react";
|
|
32594
|
-
import { Fragment as Fragment53, jsx as jsx272, jsxs as
|
|
32560
|
+
import { Fragment as Fragment53, jsx as jsx272, jsxs as jsxs219 } from "react/jsx-runtime";
|
|
32595
32561
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
32596
32562
|
const goalsCount = campaign.goals?.length || 0;
|
|
32597
|
-
const innerChildren = /* @__PURE__ */
|
|
32563
|
+
const innerChildren = /* @__PURE__ */ jsxs219(Fragment53, { children: [
|
|
32598
32564
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx272(Megaphone, { className: "h-5 w-5" }) }),
|
|
32599
|
-
/* @__PURE__ */
|
|
32565
|
+
/* @__PURE__ */ jsxs219("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
32600
32566
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_TITLE, children: campaign.name }) }),
|
|
32601
32567
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_SUBTITLE, children: [
|
|
32602
32568
|
campaign.start_date ? formatDateShort(campaign.start_date) : null,
|
|
@@ -32612,9 +32578,9 @@ function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
|
32612
32578
|
return /* @__PURE__ */ jsx272("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: innerChildren });
|
|
32613
32579
|
}
|
|
32614
32580
|
function CampaignCardAdminSkeleton({ className }) {
|
|
32615
|
-
return /* @__PURE__ */
|
|
32581
|
+
return /* @__PURE__ */ jsxs219("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
32616
32582
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_SKELETON_IMAGE_SLOT }),
|
|
32617
|
-
/* @__PURE__ */
|
|
32583
|
+
/* @__PURE__ */ jsxs219("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
32618
32584
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx272("span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
|
|
32619
32585
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx272("span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
|
|
32620
32586
|
/* @__PURE__ */ jsx272("span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ jsx272("span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
|
|
@@ -32624,13 +32590,13 @@ function CampaignCardAdminSkeleton({ className }) {
|
|
|
32624
32590
|
|
|
32625
32591
|
// src/components/chat/entity-cards/generic-entity-card.tsx
|
|
32626
32592
|
import { ExternalLink as ExternalLink10 } from "lucide-react";
|
|
32627
|
-
import { Fragment as Fragment54, jsx as jsx273, jsxs as
|
|
32593
|
+
import { Fragment as Fragment54, jsx as jsx273, jsxs as jsxs220 } from "react/jsx-runtime";
|
|
32628
32594
|
function GenericEntityCard({ item, className, anchorProps }) {
|
|
32629
32595
|
const href = safeHref(item.url);
|
|
32630
32596
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
32631
|
-
const body = /* @__PURE__ */
|
|
32632
|
-
/* @__PURE__ */
|
|
32633
|
-
/* @__PURE__ */
|
|
32597
|
+
const body = /* @__PURE__ */ jsxs220(Fragment54, { children: [
|
|
32598
|
+
/* @__PURE__ */ jsxs220("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
32599
|
+
/* @__PURE__ */ jsxs220("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
32634
32600
|
/* @__PURE__ */ jsx273("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
32635
32601
|
item.badge ? /* @__PURE__ */ jsx273(
|
|
32636
32602
|
StatusBadge,
|
|
@@ -32644,8 +32610,8 @@ function GenericEntityCard({ item, className, anchorProps }) {
|
|
|
32644
32610
|
] }),
|
|
32645
32611
|
item.subtitle ? /* @__PURE__ */ jsx273("span", { className: "flex min-w-0 items-center gap-1 text-[11px] leading-4 text-ods-text-secondary", children: /* @__PURE__ */ jsx273("span", { className: "min-w-0 truncate font-mono", children: item.subtitle }) }) : null,
|
|
32646
32612
|
item.preview ? /* @__PURE__ */ jsx273("span", { className: "flex min-w-0", children: /* @__PURE__ */ jsx273("span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview }) }) : null,
|
|
32647
|
-
item.facts && item.facts.length > 0 ? /* @__PURE__ */ jsx273("span", { className: "flex flex-wrap items-center gap-x-3 gap-y-0.5 min-w-0 text-[11px] leading-4", children: item.facts.map((f, i) => /* @__PURE__ */
|
|
32648
|
-
/* @__PURE__ */
|
|
32613
|
+
item.facts && item.facts.length > 0 ? /* @__PURE__ */ jsx273("span", { className: "flex flex-wrap items-center gap-x-3 gap-y-0.5 min-w-0 text-[11px] leading-4", children: item.facts.map((f, i) => /* @__PURE__ */ jsxs220("span", { className: "inline-flex items-center gap-1 min-w-0 truncate", children: [
|
|
32614
|
+
/* @__PURE__ */ jsxs220("span", { className: "text-ods-text-secondary/70 shrink-0", children: [
|
|
32649
32615
|
f.label,
|
|
32650
32616
|
":"
|
|
32651
32617
|
] }),
|
|
@@ -32661,14 +32627,14 @@ function GenericEntityCard({ item, className, anchorProps }) {
|
|
|
32661
32627
|
return href ? /* @__PURE__ */ jsx273("a", { href, className: `${COMPACT_CARD_OUTER} ${className ?? ""}`, children: body }) : /* @__PURE__ */ jsx273("span", { className: `${COMPACT_CARD_OUTER_STATIC} ${className ?? ""}`, "aria-label": "No link available", children: body });
|
|
32662
32628
|
}
|
|
32663
32629
|
function GenericEntityCardSkeleton({ className }) {
|
|
32664
|
-
return /* @__PURE__ */
|
|
32665
|
-
/* @__PURE__ */
|
|
32666
|
-
/* @__PURE__ */
|
|
32630
|
+
return /* @__PURE__ */ jsxs220("span", { className: `${COMPACT_CARD_SKELETON_OUTER} ${className ?? ""}`, children: [
|
|
32631
|
+
/* @__PURE__ */ jsxs220("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
32632
|
+
/* @__PURE__ */ jsxs220("span", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
32667
32633
|
/* @__PURE__ */ jsx273("span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
|
|
32668
32634
|
/* @__PURE__ */ jsx273("span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
|
|
32669
32635
|
] }),
|
|
32670
32636
|
/* @__PURE__ */ jsx273("span", { className: "h-4 w-1/2 rounded bg-ods-bg/60" }),
|
|
32671
|
-
/* @__PURE__ */
|
|
32637
|
+
/* @__PURE__ */ jsxs220("span", { className: "flex flex-col gap-0 min-w-0", children: [
|
|
32672
32638
|
/* @__PURE__ */ jsx273("span", { className: "h-5 w-5/6 rounded bg-ods-bg/60" }),
|
|
32673
32639
|
/* @__PURE__ */ jsx273("span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" })
|
|
32674
32640
|
] }),
|
|
@@ -32723,14 +32689,14 @@ function useChatCardItem(type, id) {
|
|
|
32723
32689
|
|
|
32724
32690
|
// src/components/chat/mingo-info-card.tsx
|
|
32725
32691
|
init_cn();
|
|
32726
|
-
import { Fragment as Fragment55, jsx as jsx274, jsxs as
|
|
32692
|
+
import { Fragment as Fragment55, jsx as jsx274, jsxs as jsxs221 } from "react/jsx-runtime";
|
|
32727
32693
|
function CardMedia({
|
|
32728
32694
|
imageSrc,
|
|
32729
32695
|
imageAlt,
|
|
32730
32696
|
icon
|
|
32731
32697
|
}) {
|
|
32732
32698
|
if (imageSrc) {
|
|
32733
|
-
return /* @__PURE__ */
|
|
32699
|
+
return /* @__PURE__ */ jsxs221("span", { className: "relative block size-10 shrink-0", children: [
|
|
32734
32700
|
/* @__PURE__ */ jsx274("span", { className: "absolute inset-0 flex items-center justify-center rounded-sm border border-ods-border bg-ods-bg text-xs font-medium text-ods-text-primary", children: getFirstLastInitials(imageAlt) || "?" }),
|
|
32735
32701
|
/* @__PURE__ */ jsx274(
|
|
32736
32702
|
"img",
|
|
@@ -32767,9 +32733,9 @@ function MingoInfoCard({
|
|
|
32767
32733
|
const hasMenu = !!menuGroups && menuGroups.length > 0;
|
|
32768
32734
|
const isAnchor = !!anchorProps;
|
|
32769
32735
|
const isInteractive = isAnchor || !!onClick;
|
|
32770
|
-
const content = /* @__PURE__ */
|
|
32736
|
+
const content = /* @__PURE__ */ jsxs221(Fragment55, { children: [
|
|
32771
32737
|
hasMedia && /* @__PURE__ */ jsx274(CardMedia, { imageSrc, imageAlt, icon }),
|
|
32772
|
-
/* @__PURE__ */
|
|
32738
|
+
/* @__PURE__ */ jsxs221("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
32773
32739
|
/* @__PURE__ */ jsx274("span", { className: "truncate text-h4 font-medium text-ods-text-primary", children: title }),
|
|
32774
32740
|
description ? /* @__PURE__ */ jsx274("span", { className: "truncate text-h6 text-ods-text-secondary", children: description }) : null
|
|
32775
32741
|
] }),
|
|
@@ -32784,7 +32750,7 @@ function MingoInfoCard({
|
|
|
32784
32750
|
hasMenu && "border-r border-ods-border",
|
|
32785
32751
|
isInteractive && "transition-colors hover:bg-ods-bg-hover active:bg-ods-bg-active focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent cursor-pointer"
|
|
32786
32752
|
);
|
|
32787
|
-
return /* @__PURE__ */
|
|
32753
|
+
return /* @__PURE__ */ jsxs221(
|
|
32788
32754
|
"span",
|
|
32789
32755
|
{
|
|
32790
32756
|
className: cn(
|
|
@@ -32816,7 +32782,7 @@ function MingoInfoCard({
|
|
|
32816
32782
|
}
|
|
32817
32783
|
|
|
32818
32784
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
32819
|
-
import { Fragment as Fragment56, jsx as jsx275, jsxs as
|
|
32785
|
+
import { Fragment as Fragment56, jsx as jsx275, jsxs as jsxs222 } from "react/jsx-runtime";
|
|
32820
32786
|
function githubKindIcon(kind) {
|
|
32821
32787
|
switch (kind) {
|
|
32822
32788
|
case "pull_request":
|
|
@@ -32990,7 +32956,7 @@ function GenericFinancialChatCard({
|
|
|
32990
32956
|
}
|
|
32991
32957
|
function ChatInlineVideoPill({ chatRef }) {
|
|
32992
32958
|
const title = chatRef.title || "Video";
|
|
32993
|
-
return /* @__PURE__ */
|
|
32959
|
+
return /* @__PURE__ */ jsxs222("span", { className: "inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs align-middle bg-ods-card border border-ods-border text-ods-text-primary", children: [
|
|
32994
32960
|
/* @__PURE__ */ jsx275("span", { "aria-hidden": "true", className: "text-ods-text-secondary", children: "\u25B6" }),
|
|
32995
32961
|
/* @__PURE__ */ jsx275("span", { className: "truncate max-w-[220px]", children: title })
|
|
32996
32962
|
] });
|
|
@@ -33009,9 +32975,9 @@ function ChatCardWithDiscuss({
|
|
|
33009
32975
|
const idDisplay = chatRef.id && (chatRef.id.length > 24 ? `${chatRef.id.slice(0, 24)}\u2026` : chatRef.id);
|
|
33010
32976
|
const useDisplay = displayAction && !!onDisplay;
|
|
33011
32977
|
const cardBody = /* @__PURE__ */ jsx275("span", { className: "block [&>*]:!my-0", children });
|
|
33012
|
-
return /* @__PURE__ */
|
|
32978
|
+
return /* @__PURE__ */ jsxs222("span", { className: "mt-1.5 mb-2 block w-full", children: [
|
|
33013
32979
|
cardBody,
|
|
33014
|
-
/* @__PURE__ */
|
|
32980
|
+
/* @__PURE__ */ jsxs222("span", { className: "mt-1 flex items-center justify-between gap-2 pl-0.5", children: [
|
|
33015
32981
|
/* @__PURE__ */ jsx275(
|
|
33016
32982
|
SourceActionButton,
|
|
33017
32983
|
{
|
|
@@ -33022,7 +32988,7 @@ function ChatCardWithDiscuss({
|
|
|
33022
32988
|
}
|
|
33023
32989
|
),
|
|
33024
32990
|
!onDiscuss && !useDisplay ? /* @__PURE__ */ jsx275("span", {}) : null,
|
|
33025
|
-
idDisplay ? /* @__PURE__ */
|
|
32991
|
+
idDisplay ? /* @__PURE__ */ jsxs222(
|
|
33026
32992
|
"span",
|
|
33027
32993
|
{
|
|
33028
32994
|
className: "inline-flex items-center gap-1 text-[10px] leading-3 font-mono shrink-0 text-ods-text-secondary opacity-60 hover:opacity-100 hover:text-ods-text-primary transition-opacity",
|
|
@@ -38353,7 +38319,7 @@ function useChatDialogManager({
|
|
|
38353
38319
|
|
|
38354
38320
|
// src/components/chat/embeddable-chat.tsx
|
|
38355
38321
|
init_next_navigation();
|
|
38356
|
-
import { Fragment as Fragment57, jsx as jsx279, jsxs as
|
|
38322
|
+
import { Fragment as Fragment57, jsx as jsx279, jsxs as jsxs223 } from "react/jsx-runtime";
|
|
38357
38323
|
var formatRelativePath = (p) => p.replace(/^\/+/, "").replace(/\/+$/, "");
|
|
38358
38324
|
var FALLBACK_TOP_RETRIEVED = 3;
|
|
38359
38325
|
var SKELETON_ROW_VARIANTS = [
|
|
@@ -38453,9 +38419,9 @@ function SourceChip({
|
|
|
38453
38419
|
children
|
|
38454
38420
|
}
|
|
38455
38421
|
),
|
|
38456
|
-
children: /* @__PURE__ */
|
|
38422
|
+
children: /* @__PURE__ */ jsxs223("span", { className: `${chipClass} cursor-pointer`, children: [
|
|
38457
38423
|
icon,
|
|
38458
|
-
/* @__PURE__ */
|
|
38424
|
+
/* @__PURE__ */ jsxs223("span", { className: "truncate max-w-[160px]", children: [
|
|
38459
38425
|
"[",
|
|
38460
38426
|
src.index,
|
|
38461
38427
|
"] ",
|
|
@@ -38466,16 +38432,16 @@ function SourceChip({
|
|
|
38466
38432
|
);
|
|
38467
38433
|
}
|
|
38468
38434
|
const displayName = src.name || formatRelativePath(src.path);
|
|
38469
|
-
const chipBody = (label) => /* @__PURE__ */
|
|
38435
|
+
const chipBody = (label) => /* @__PURE__ */ jsxs223(Fragment57, { children: [
|
|
38470
38436
|
icon,
|
|
38471
|
-
/* @__PURE__ */
|
|
38437
|
+
/* @__PURE__ */ jsxs223("span", { className: "truncate max-w-[160px]", children: [
|
|
38472
38438
|
"[",
|
|
38473
38439
|
src.index,
|
|
38474
38440
|
"] ",
|
|
38475
38441
|
label
|
|
38476
38442
|
] })
|
|
38477
38443
|
] });
|
|
38478
|
-
const wrapChip = (clickable) => /* @__PURE__ */
|
|
38444
|
+
const wrapChip = (clickable) => /* @__PURE__ */ jsxs223("span", { className: "inline-flex items-center", children: [
|
|
38479
38445
|
clickable,
|
|
38480
38446
|
/* @__PURE__ */ jsx279(
|
|
38481
38447
|
SourceActionButton,
|
|
@@ -38540,7 +38506,7 @@ function SourceChips({
|
|
|
38540
38506
|
if (cited.length === 0) {
|
|
38541
38507
|
const fallback = uncited.slice(0, FALLBACK_TOP_RETRIEVED);
|
|
38542
38508
|
if (fallback.length === 0) return null;
|
|
38543
|
-
return /* @__PURE__ */
|
|
38509
|
+
return /* @__PURE__ */ jsxs223("div", { className: "flex flex-col gap-1.5 mt-2 pt-2 border-t border-ods-border", children: [
|
|
38544
38510
|
/* @__PURE__ */ jsx279("span", { className: "text-[11px] text-ods-text-muted uppercase tracking-wider font-medium", children: "Top retrieved sources" }),
|
|
38545
38511
|
/* @__PURE__ */ jsx279("div", { className: "flex flex-wrap gap-1.5", children: fallback.map((src) => /* @__PURE__ */ jsx279(
|
|
38546
38512
|
SourceChip,
|
|
@@ -38557,9 +38523,9 @@ function SourceChips({
|
|
|
38557
38523
|
}
|
|
38558
38524
|
const hiddenCount = uncited.length;
|
|
38559
38525
|
const hasOverflow = hiddenCount > 0;
|
|
38560
|
-
return /* @__PURE__ */
|
|
38526
|
+
return /* @__PURE__ */ jsxs223("div", { className: "flex flex-col gap-1.5 mt-2 pt-2 border-t border-ods-border", children: [
|
|
38561
38527
|
/* @__PURE__ */ jsx279("span", { className: "text-[11px] text-ods-text-muted uppercase tracking-wider font-medium", children: "Sources" }),
|
|
38562
|
-
/* @__PURE__ */
|
|
38528
|
+
/* @__PURE__ */ jsxs223(
|
|
38563
38529
|
"div",
|
|
38564
38530
|
{
|
|
38565
38531
|
className: `flex flex-wrap gap-1.5 ${expanded ? "max-h-[200px] overflow-y-auto" : ""}`,
|
|
@@ -38947,7 +38913,7 @@ function EmbeddableChatInner({
|
|
|
38947
38913
|
return { cited, uncited };
|
|
38948
38914
|
}, [lastAssistantMsg, chatLoading]);
|
|
38949
38915
|
const [portalHost, setPortalHost] = useState89(null);
|
|
38950
|
-
const body = /* @__PURE__ */
|
|
38916
|
+
const body = /* @__PURE__ */ jsxs223(PortalContainerContext.Provider, { value: portalHost, children: [
|
|
38951
38917
|
/* @__PURE__ */ jsx279(
|
|
38952
38918
|
"div",
|
|
38953
38919
|
{
|
|
@@ -38972,7 +38938,7 @@ function EmbeddableChatInner({
|
|
|
38972
38938
|
)
|
|
38973
38939
|
},
|
|
38974
38940
|
"archive-view"
|
|
38975
|
-
) : /* @__PURE__ */
|
|
38941
|
+
) : /* @__PURE__ */ jsxs223(
|
|
38976
38942
|
"div",
|
|
38977
38943
|
{
|
|
38978
38944
|
className: "flex flex-1 min-h-0 flex-col animate-in fade-in-0 duration-200",
|
|
@@ -38993,7 +38959,7 @@ function EmbeddableChatInner({
|
|
|
38993
38959
|
}
|
|
38994
38960
|
),
|
|
38995
38961
|
activeMode === "guide" && hasMingoMode && /* @__PURE__ */ jsx279(GuideModeBanner, { className: "animate-in fade-in-0 duration-200" }),
|
|
38996
|
-
/* @__PURE__ */ jsx279("div", { className: "flex flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */
|
|
38962
|
+
/* @__PURE__ */ jsx279("div", { className: "flex flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxs223("div", { className: "flex flex-1 flex-col min-h-0 min-w-0", children: [
|
|
38997
38963
|
/* @__PURE__ */ jsx279(
|
|
38998
38964
|
"div",
|
|
38999
38965
|
{
|
|
@@ -39003,7 +38969,7 @@ function EmbeddableChatInner({
|
|
|
39003
38969
|
"div",
|
|
39004
38970
|
{
|
|
39005
38971
|
className: "flex-1 flex flex-col min-h-0 animate-in fade-in-0 duration-200",
|
|
39006
|
-
children: hasConversation ? /* @__PURE__ */
|
|
38972
|
+
children: hasConversation ? /* @__PURE__ */ jsxs223("div", { className: "flex-1 flex flex-col min-h-0", children: [
|
|
39007
38973
|
messagesInitialLoading ? (
|
|
39008
38974
|
// Match the real list's `fullWidth` layout so swapping
|
|
39009
38975
|
// skeleton → bubbles doesn't shift the column. The panel
|
|
@@ -39091,7 +39057,7 @@ function EmbeddableChatInner({
|
|
|
39091
39057
|
);
|
|
39092
39058
|
chatInputRef.current?.focus();
|
|
39093
39059
|
},
|
|
39094
|
-
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */
|
|
39060
|
+
children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ jsxs223("div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
|
|
39095
39061
|
!commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ jsx279(
|
|
39096
39062
|
MingoOnboardingCardSkeleton,
|
|
39097
39063
|
{
|
|
@@ -39194,13 +39160,13 @@ function EmbeddableChatInner({
|
|
|
39194
39160
|
),
|
|
39195
39161
|
/* @__PURE__ */ jsx279("div", { ref: setPortalHost, style: { display: "contents" } })
|
|
39196
39162
|
] });
|
|
39197
|
-
const panel = shellLess ? /* @__PURE__ */
|
|
39198
|
-
/* @__PURE__ */ jsx279(VisuallyHidden, { children: /* @__PURE__ */
|
|
39163
|
+
const panel = shellLess ? /* @__PURE__ */ jsxs223(ChatPanelContext.Provider, { value: chatPanelHandle, children: [
|
|
39164
|
+
/* @__PURE__ */ jsx279(VisuallyHidden, { children: /* @__PURE__ */ jsxs223(DialogPrimitive4.Title, { children: [
|
|
39199
39165
|
sourceLabel,
|
|
39200
39166
|
" AI Assistant"
|
|
39201
39167
|
] }) }),
|
|
39202
39168
|
body
|
|
39203
|
-
] }) : /* @__PURE__ */ jsx279(Drawer, { open: isOpen, onOpenChange: (o) => !o && handleClose(), children: /* @__PURE__ */ jsx279(ChatPanelContext.Provider, { value: chatPanelHandle, children: /* @__PURE__ */
|
|
39169
|
+
] }) : /* @__PURE__ */ jsx279(Drawer, { open: isOpen, onOpenChange: (o) => !o && handleClose(), children: /* @__PURE__ */ jsx279(ChatPanelContext.Provider, { value: chatPanelHandle, children: /* @__PURE__ */ jsxs223(
|
|
39204
39170
|
DrawerContent,
|
|
39205
39171
|
{
|
|
39206
39172
|
side: "right",
|
|
@@ -39215,7 +39181,7 @@ function EmbeddableChatInner({
|
|
|
39215
39181
|
"aria-describedby": void 0,
|
|
39216
39182
|
className: "\n mingo-chat-content !bg-ods-bg shadow-2xl\n focus:outline-none focus-visible:outline-none\n w-screen md:w-auto\n ",
|
|
39217
39183
|
children: [
|
|
39218
|
-
/* @__PURE__ */ jsx279(VisuallyHidden, { children: /* @__PURE__ */
|
|
39184
|
+
/* @__PURE__ */ jsx279(VisuallyHidden, { children: /* @__PURE__ */ jsxs223(DialogPrimitive4.Title, { children: [
|
|
39219
39185
|
sourceLabel,
|
|
39220
39186
|
" AI Assistant"
|
|
39221
39187
|
] }) }),
|
|
@@ -39223,7 +39189,7 @@ function EmbeddableChatInner({
|
|
|
39223
39189
|
]
|
|
39224
39190
|
}
|
|
39225
39191
|
) }) });
|
|
39226
|
-
return /* @__PURE__ */
|
|
39192
|
+
return /* @__PURE__ */ jsxs223(Fragment57, { children: [
|
|
39227
39193
|
showInternalTrigger && !shellLess && /* @__PURE__ */ jsx279(
|
|
39228
39194
|
"div",
|
|
39229
39195
|
{
|
|
@@ -39273,7 +39239,6 @@ export {
|
|
|
39273
39239
|
MediaTypeSelector,
|
|
39274
39240
|
noDataIconClasses,
|
|
39275
39241
|
noDataActionsVariants,
|
|
39276
|
-
noDataActionInteractiveClasses,
|
|
39277
39242
|
NoDataMessage,
|
|
39278
39243
|
NoDataAction,
|
|
39279
39244
|
NoDataActions,
|
|
@@ -39921,4 +39886,4 @@ export {
|
|
|
39921
39886
|
LogsList,
|
|
39922
39887
|
assets
|
|
39923
39888
|
};
|
|
39924
|
-
//# sourceMappingURL=chunk-
|
|
39889
|
+
//# sourceMappingURL=chunk-OPSZNW3I.js.map
|