@flamingo-stack/openframe-frontend-core 0.0.577 → 0.0.578-snapshot.20260831161155
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-XBSW7IF6.cjs → chunk-36TJYCF3.cjs} +27 -27
- package/dist/{chunk-XBSW7IF6.cjs.map → chunk-36TJYCF3.cjs.map} +1 -1
- package/dist/{chunk-ET3Q4FIZ.cjs → chunk-37XJYOAY.cjs} +17 -17
- package/dist/{chunk-ET3Q4FIZ.cjs.map → chunk-37XJYOAY.cjs.map} +1 -1
- package/dist/{chunk-4D2BR756.js → chunk-3AX3ZEY3.js} +53 -32
- package/dist/chunk-3AX3ZEY3.js.map +1 -0
- package/dist/{chunk-JQI726T3.js → chunk-3LMYQGAJ.js} +3 -2
- package/dist/chunk-3LMYQGAJ.js.map +1 -0
- package/dist/{chunk-XBBCUC32.cjs → chunk-4FJSN2XW.cjs} +15 -15
- package/dist/{chunk-XBBCUC32.cjs.map → chunk-4FJSN2XW.cjs.map} +1 -1
- package/dist/{chunk-RCLJSENK.cjs → chunk-4HGRXFQP.cjs} +6 -6
- package/dist/{chunk-RCLJSENK.cjs.map → chunk-4HGRXFQP.cjs.map} +1 -1
- package/dist/{chunk-NQCGDZJ3.cjs → chunk-4LZ7B5H5.cjs} +5 -5
- package/dist/{chunk-NQCGDZJ3.cjs.map → chunk-4LZ7B5H5.cjs.map} +1 -1
- package/dist/{chunk-IQFXDS5O.js → chunk-4WSKSNXL.js} +10 -10
- package/dist/{chunk-NEKT67O5.js → chunk-5Y6TPFW7.js} +6 -6
- package/dist/{chunk-XG2WNF4L.cjs → chunk-A6C5HOD7.cjs} +27 -27
- package/dist/{chunk-XG2WNF4L.cjs.map → chunk-A6C5HOD7.cjs.map} +1 -1
- package/dist/{chunk-AQ5MZVYN.js → chunk-AKPLEWMH.js} +3 -3
- package/dist/{chunk-HSOMYCUG.cjs → chunk-BCJQ7CJE.cjs} +13 -13
- package/dist/{chunk-HSOMYCUG.cjs.map → chunk-BCJQ7CJE.cjs.map} +1 -1
- package/dist/{chunk-RUJKOU5F.js → chunk-BW4WDUSI.js} +3 -3
- package/dist/{chunk-NP3XN6ZX.js → chunk-CP5EYMNL.js} +278 -162
- package/dist/chunk-CP5EYMNL.js.map +1 -0
- package/dist/{chunk-FCVAVOXS.js → chunk-D44S2QLI.js} +3 -3
- package/dist/{chunk-U3SDSA5K.js → chunk-DB3TV4CW.js} +7 -7
- package/dist/{chunk-KE2TCUOH.cjs → chunk-FEVLXRTC.cjs} +537 -421
- package/dist/chunk-FEVLXRTC.cjs.map +1 -0
- package/dist/{chunk-ZBJ6XSDO.js → chunk-H4BPHGU5.js} +4 -4
- package/dist/{chunk-6FJABKPX.cjs → chunk-H54EPP3P.cjs} +9 -9
- package/dist/{chunk-6FJABKPX.cjs.map → chunk-H54EPP3P.cjs.map} +1 -1
- package/dist/{chunk-4KR7JWKB.js → chunk-HGA74X35.js} +5 -5
- package/dist/{chunk-5DPCIIJ7.cjs → chunk-HHJVIHVR.cjs} +92 -92
- package/dist/{chunk-5DPCIIJ7.cjs.map → chunk-HHJVIHVR.cjs.map} +1 -1
- package/dist/{chunk-WOHHZZJK.cjs → chunk-IFYQ7DHV.cjs} +62 -62
- package/dist/{chunk-WOHHZZJK.cjs.map → chunk-IFYQ7DHV.cjs.map} +1 -1
- package/dist/{chunk-QYQXAXVR.cjs → chunk-IKDC3R7V.cjs} +4 -3
- package/dist/chunk-IKDC3R7V.cjs.map +1 -0
- package/dist/{chunk-W6JA6SFD.js → chunk-JRYS4VMV.js} +45 -45
- package/dist/chunk-JRYS4VMV.js.map +1 -0
- package/dist/{chunk-2YCUEUIZ.js → chunk-L2CF2QZW.js} +8 -8
- package/dist/{chunk-2BFZHTSD.cjs → chunk-LEISUAHF.cjs} +18 -8
- package/dist/chunk-LEISUAHF.cjs.map +1 -0
- package/dist/{chunk-GDWBJFMG.cjs → chunk-M5GWCMYE.cjs} +42 -42
- package/dist/{chunk-GDWBJFMG.cjs.map → chunk-M5GWCMYE.cjs.map} +1 -1
- package/dist/{chunk-JCH6HGQD.js → chunk-MCWAZ5XI.js} +2 -2
- package/dist/{chunk-PQETCTJ4.js → chunk-MXOSTJAG.js} +4 -3
- package/dist/chunk-MXOSTJAG.js.map +1 -0
- package/dist/{chunk-MIY5FYX3.cjs → chunk-NNFQLTJ3.cjs} +4 -3
- package/dist/chunk-NNFQLTJ3.cjs.map +1 -0
- package/dist/{chunk-CFTZAZ7R.cjs → chunk-NPVDKOGD.cjs} +28 -28
- package/dist/{chunk-CFTZAZ7R.cjs.map → chunk-NPVDKOGD.cjs.map} +1 -1
- package/dist/{chunk-LYOGSVFO.js → chunk-O2FTVZOD.js} +5 -5
- package/dist/{chunk-CIUYHBAY.cjs → chunk-OGZAFM6M.cjs} +5 -5
- package/dist/{chunk-CIUYHBAY.cjs.map → chunk-OGZAFM6M.cjs.map} +1 -1
- package/dist/{chunk-THDGDYJ3.js → chunk-PMENIZXI.js} +7 -7
- package/dist/{chunk-TU32TSAK.js → chunk-PWOYEUIQ.js} +7 -7
- package/dist/{chunk-RSMUAAPW.js → chunk-QCP2KV7P.js} +5 -5
- package/dist/{chunk-RNUH5IHZ.js → chunk-QGJYWLF4.js} +3 -3
- package/dist/{chunk-75X6BRID.cjs → chunk-RKGOVTXZ.cjs} +500 -479
- package/dist/chunk-RKGOVTXZ.cjs.map +1 -0
- package/dist/{chunk-HM2R5MDR.js → chunk-T5HDPHN6.js} +13 -3
- package/dist/chunk-T5HDPHN6.js.map +1 -0
- package/dist/{chunk-GPWU3PPR.cjs → chunk-VEHZNQ77.cjs} +30 -30
- package/dist/{chunk-GPWU3PPR.cjs.map → chunk-VEHZNQ77.cjs.map} +1 -1
- package/dist/{chunk-APFGR2KK.cjs → chunk-YW4WBNYV.cjs} +41 -41
- package/dist/{chunk-APFGR2KK.cjs.map → chunk-YW4WBNYV.cjs.map} +1 -1
- package/dist/{chunk-36NFJULV.cjs → chunk-ZI27ALYX.cjs} +41 -41
- package/dist/chunk-ZI27ALYX.cjs.map +1 -0
- package/dist/components/case-studies/index.cjs +13 -13
- package/dist/components/case-studies/index.js +7 -7
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-unified-chat.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/index.js +3 -3
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +9 -2
- package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -1
- package/dist/components/chat/utils/chat-nav-resolution.d.ts +9 -3
- package/dist/components/chat/utils/chat-nav-resolution.d.ts.map +1 -1
- package/dist/components/chat/utils/execute-navigation.d.ts +11 -0
- package/dist/components/chat/utils/execute-navigation.d.ts.map +1 -1
- package/dist/components/chat/utils/index.d.ts +1 -1
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/nav-anchor-props.d.ts +4 -0
- package/dist/components/chat/utils/nav-anchor-props.d.ts.map +1 -1
- package/dist/components/chat/utils/resolve-fetched-card-href.d.ts +42 -3
- package/dist/components/chat/utils/resolve-fetched-card-href.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +8 -8
- package/dist/components/contact/index.js +7 -7
- package/dist/components/docs/index.cjs +11 -11
- package/dist/components/docs/index.js +10 -10
- package/dist/components/embeds/index.cjs +8 -8
- package/dist/components/embeds/index.js +7 -7
- package/dist/components/faq/index.cjs +8 -8
- package/dist/components/faq/index.js +7 -7
- package/dist/components/features/board/board.d.ts.map +1 -1
- package/dist/components/features/index.cjs +9 -7
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +8 -6
- package/dist/components/features/sortable-list/index.d.ts +2 -1
- package/dist/components/features/sortable-list/index.d.ts.map +1 -1
- package/dist/components/features/sortable-list/sortable-list.d.ts +8 -1
- package/dist/components/features/sortable-list/sortable-list.d.ts.map +1 -1
- package/dist/components/features/sortable-list/sortable-move-buttons.d.ts +24 -0
- package/dist/components/features/sortable-list/sortable-move-buttons.d.ts.map +1 -0
- package/dist/components/features/sortable-list/use-sortable-item.d.ts +12 -4
- package/dist/components/features/sortable-list/use-sortable-item.d.ts.map +1 -1
- package/dist/components/features/ticket-status-config-list/ticket-status-config-list.d.ts +21 -5
- package/dist/components/features/ticket-status-config-list/ticket-status-config-list.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +27 -27
- package/dist/components/help-center-pages/index.js +18 -18
- package/dist/components/index.cjs +146 -144
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +20 -18
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +47 -47
- package/dist/components/meeting-scheduler/index.js +6 -6
- package/dist/components/navigation/index.cjs +10 -10
- package/dist/components/navigation/index.js +9 -9
- package/dist/components/onboarding-guides/index.cjs +10 -10
- package/dist/components/onboarding-guides/index.js +9 -9
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +11 -11
- package/dist/components/tickets/index.js +10 -10
- package/dist/components/ui/file-manager/index.cjs +4 -4
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +7 -7
- package/dist/components/ui/index.js +6 -6
- package/dist/components/ui/input.d.ts +2 -0
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/textarea.d.ts +2 -0
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/ticket-status-config-row.d.ts +10 -4
- package/dist/components/ui/ticket-status-config-row.d.ts.map +1 -1
- package/dist/hooks/index.cjs +7 -3
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +6 -2
- package/dist/hooks/ui/index.d.ts +1 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/use-drag-and-drop-enabled.d.ts +31 -0
- package/dist/hooks/ui/use-drag-and-drop-enabled.d.ts.map +1 -0
- package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
- package/dist/index.cjs +18 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +16 -10
- package/dist/index.js.map +1 -1
- package/dist/schemas/meeting-booking-schema.d.ts +2 -2
- package/dist/utils/content-href.d.ts +26 -5
- package/dist/utils/content-href.d.ts.map +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -4
- package/src/components/chat/embeddable-chat.tsx +9 -2
- package/src/components/chat/entity-cards/.dispatch.md +1 -1
- package/src/components/chat/entity-cards/dispatch.tsx +43 -23
- package/src/components/chat/hooks/.use-unified-chat.md +5 -1
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +4 -7
- package/src/components/chat/hooks/use-unified-chat.ts +8 -2
- package/src/components/chat/nav-link-anchor-via-runtime.tsx +8 -10
- package/src/components/chat/types/.unified-chat-state.types.md +2 -1
- package/src/components/chat/types/unified-chat-state.types.ts +9 -2
- package/src/components/chat/utils/__tests__/execute-navigation.test.ts +190 -0
- package/src/components/chat/utils/__tests__/resolve-fetched-card-href.test.ts +75 -2
- package/src/components/chat/utils/chat-nav-resolution.ts +9 -3
- package/src/components/chat/utils/execute-navigation.ts +32 -2
- package/src/components/chat/utils/index.ts +1 -1
- package/src/components/chat/utils/nav-anchor-props.ts +4 -2
- package/src/components/chat/utils/resolve-fetched-card-href.ts +50 -2
- package/src/components/features/board/.board.md +1 -0
- package/src/components/features/board/board.tsx +11 -1
- package/src/components/features/sortable-list/.sortable-list.md +23 -12
- package/src/components/features/sortable-list/index.ts +2 -1
- package/src/components/features/sortable-list/sortable-list.tsx +16 -5
- package/src/components/features/sortable-list/sortable-move-buttons.tsx +81 -0
- package/src/components/features/sortable-list/use-sortable-item.ts +25 -13
- package/src/components/features/ticket-status-config-list/ticket-status-config-list.tsx +55 -62
- package/src/components/ui/.ticket-status-config-row.md +11 -9
- package/src/components/ui/input.tsx +5 -2
- package/src/components/ui/textarea.tsx +5 -2
- package/src/components/ui/ticket-status-config-row.tsx +162 -70
- package/src/hooks/ui/.index.md +1 -0
- package/src/hooks/ui/.use-drag-and-drop-enabled.md +32 -0
- package/src/hooks/ui/index.ts +1 -0
- package/src/hooks/ui/use-drag-and-drop-enabled.ts +37 -0
- package/src/hooks/ui/use-media-query.ts +3 -2
- package/src/utils/.content-href.md +1 -1
- package/src/utils/__tests__/content-href.test.ts +3 -0
- package/src/utils/content-href.ts +30 -3
- package/src/utils/index.ts +1 -0
- package/dist/chunk-2BFZHTSD.cjs.map +0 -1
- package/dist/chunk-36NFJULV.cjs.map +0 -1
- package/dist/chunk-4D2BR756.js.map +0 -1
- package/dist/chunk-75X6BRID.cjs.map +0 -1
- package/dist/chunk-HM2R5MDR.js.map +0 -1
- package/dist/chunk-JQI726T3.js.map +0 -1
- package/dist/chunk-KE2TCUOH.cjs.map +0 -1
- package/dist/chunk-MIY5FYX3.cjs.map +0 -1
- package/dist/chunk-NP3XN6ZX.js.map +0 -1
- package/dist/chunk-PQETCTJ4.js.map +0 -1
- package/dist/chunk-QYQXAXVR.cjs.map +0 -1
- package/dist/chunk-W6JA6SFD.js.map +0 -1
- package/dist/components/chat/utils/nav-click-handler.d.ts +0 -24
- package/dist/components/chat/utils/nav-click-handler.d.ts.map +0 -1
- package/src/components/chat/utils/.nav-click-handler.md +0 -43
- package/src/components/chat/utils/nav-click-handler.ts +0 -34
- /package/dist/{chunk-IQFXDS5O.js.map → chunk-4WSKSNXL.js.map} +0 -0
- /package/dist/{chunk-NEKT67O5.js.map → chunk-5Y6TPFW7.js.map} +0 -0
- /package/dist/{chunk-AQ5MZVYN.js.map → chunk-AKPLEWMH.js.map} +0 -0
- /package/dist/{chunk-RUJKOU5F.js.map → chunk-BW4WDUSI.js.map} +0 -0
- /package/dist/{chunk-FCVAVOXS.js.map → chunk-D44S2QLI.js.map} +0 -0
- /package/dist/{chunk-U3SDSA5K.js.map → chunk-DB3TV4CW.js.map} +0 -0
- /package/dist/{chunk-ZBJ6XSDO.js.map → chunk-H4BPHGU5.js.map} +0 -0
- /package/dist/{chunk-4KR7JWKB.js.map → chunk-HGA74X35.js.map} +0 -0
- /package/dist/{chunk-2YCUEUIZ.js.map → chunk-L2CF2QZW.js.map} +0 -0
- /package/dist/{chunk-JCH6HGQD.js.map → chunk-MCWAZ5XI.js.map} +0 -0
- /package/dist/{chunk-LYOGSVFO.js.map → chunk-O2FTVZOD.js.map} +0 -0
- /package/dist/{chunk-THDGDYJ3.js.map → chunk-PMENIZXI.js.map} +0 -0
- /package/dist/{chunk-TU32TSAK.js.map → chunk-PWOYEUIQ.js.map} +0 -0
- /package/dist/{chunk-RSMUAAPW.js.map → chunk-QCP2KV7P.js.map} +0 -0
- /package/dist/{chunk-RNUH5IHZ.js.map → chunk-QGJYWLF4.js.map} +0 -0
|
@@ -14,13 +14,14 @@ import {
|
|
|
14
14
|
useClaudeMirrorSrc,
|
|
15
15
|
useCopyToClipboard,
|
|
16
16
|
useDeferredError,
|
|
17
|
+
useDragAndDropEnabled,
|
|
17
18
|
useHorizontalScrollbar,
|
|
18
19
|
useHumanitySignals,
|
|
19
20
|
useKeyboardCollisionPadding,
|
|
20
21
|
useLocalStorage,
|
|
21
22
|
useNotificationPermission,
|
|
22
23
|
useToast
|
|
23
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-T5HDPHN6.js";
|
|
24
25
|
import {
|
|
25
26
|
Pagination
|
|
26
27
|
} from "./chunk-BBZ6NQL2.js";
|
|
@@ -28,7 +29,7 @@ import {
|
|
|
28
29
|
Checkbox,
|
|
29
30
|
FieldWrapper,
|
|
30
31
|
Input
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-MXOSTJAG.js";
|
|
32
33
|
import {
|
|
33
34
|
APPROVAL_STATUS,
|
|
34
35
|
ActionsMenuDropdown,
|
|
@@ -88,7 +89,7 @@ import {
|
|
|
88
89
|
useCollapsible,
|
|
89
90
|
useIsHydrated,
|
|
90
91
|
useScrollFade
|
|
91
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-3AX3ZEY3.js";
|
|
92
93
|
import {
|
|
93
94
|
ToolIcon,
|
|
94
95
|
createHeadingIdDeduper,
|
|
@@ -101,7 +102,7 @@ import {
|
|
|
101
102
|
useIsomorphicLayoutEffect,
|
|
102
103
|
useLgUp,
|
|
103
104
|
useMdUp
|
|
104
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-JRYS4VMV.js";
|
|
105
106
|
import {
|
|
106
107
|
usePathname,
|
|
107
108
|
useRouter,
|
|
@@ -213,7 +214,7 @@ import {
|
|
|
213
214
|
canonicalContentRefType,
|
|
214
215
|
formatLargeNumber,
|
|
215
216
|
getFirstLastInitials
|
|
216
|
-
} from "./chunk-
|
|
217
|
+
} from "./chunk-3LMYQGAJ.js";
|
|
217
218
|
import {
|
|
218
219
|
next_image_default
|
|
219
220
|
} from "./chunk-MDKCTSDS.js";
|
|
@@ -4354,6 +4355,7 @@ var Textarea = forwardRef11(
|
|
|
4354
4355
|
className,
|
|
4355
4356
|
invalid = false,
|
|
4356
4357
|
label,
|
|
4358
|
+
labelVariant,
|
|
4357
4359
|
error,
|
|
4358
4360
|
endIcon,
|
|
4359
4361
|
endIconAsButton = false,
|
|
@@ -4367,7 +4369,7 @@ var Textarea = forwardRef11(
|
|
|
4367
4369
|
const reactId = useId3();
|
|
4368
4370
|
const fieldId = props.id ?? reactId;
|
|
4369
4371
|
if (!hasAdornment) {
|
|
4370
|
-
return /* @__PURE__ */ jsx36(FieldWrapper, { label, error, children: /* @__PURE__ */ jsx36(
|
|
4372
|
+
return /* @__PURE__ */ jsx36(FieldWrapper, { label, labelVariant, error, children: /* @__PURE__ */ jsx36(
|
|
4371
4373
|
"textarea",
|
|
4372
4374
|
{
|
|
4373
4375
|
className: cn(
|
|
@@ -4496,7 +4498,7 @@ var Textarea = forwardRef11(
|
|
|
4496
4498
|
]
|
|
4497
4499
|
}
|
|
4498
4500
|
);
|
|
4499
|
-
return /* @__PURE__ */ jsx36(FieldWrapper, { label, error, children: content });
|
|
4501
|
+
return /* @__PURE__ */ jsx36(FieldWrapper, { label, labelVariant, error, children: content });
|
|
4500
4502
|
}
|
|
4501
4503
|
);
|
|
4502
4504
|
Textarea.displayName = "Textarea";
|
|
@@ -10782,7 +10784,7 @@ function makeComposeContentUrl(opts) {
|
|
|
10782
10784
|
return ({ type: rawType, identifier, slug: slugHint, externalUrl, targetPlatform, platforms }) => {
|
|
10783
10785
|
const type = canonicalContentRefType(rawType);
|
|
10784
10786
|
const override = opts.overrides && Object.prototype.hasOwnProperty.call(opts.overrides, type) ? opts.overrides[type] : void 0;
|
|
10785
|
-
if (override) return override(identifier);
|
|
10787
|
+
if (override) return { ...override(identifier), hostOverride: true };
|
|
10786
10788
|
const seg = (Object.prototype.hasOwnProperty.call(suffixes, type) ? suffixes[type] : void 0) ?? type;
|
|
10787
10789
|
if (opts.hostedTypes.has(type)) {
|
|
10788
10790
|
const recovered = externalUrl ? lastPathSegment(externalUrl) : null;
|
|
@@ -16015,6 +16017,9 @@ function ActionIconButton({ onClick, disabled, ariaLabel, children }) {
|
|
|
16015
16017
|
);
|
|
16016
16018
|
}
|
|
16017
16019
|
|
|
16020
|
+
// src/components/ui/ticket-status-config-row.tsx
|
|
16021
|
+
import { useId as useId5 } from "react";
|
|
16022
|
+
|
|
16018
16023
|
// src/components/ui/color-preset-select.tsx
|
|
16019
16024
|
import { useState as useState40 } from "react";
|
|
16020
16025
|
import { HexColorPicker } from "react-colorful";
|
|
@@ -16284,7 +16289,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16284
16289
|
}
|
|
16285
16290
|
|
|
16286
16291
|
// src/components/ui/ticket-status-config-row.tsx
|
|
16287
|
-
import { jsx as jsx145, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
16292
|
+
import { Fragment as Fragment25, jsx as jsx145, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
16288
16293
|
function TicketStatusConfigRow({
|
|
16289
16294
|
variant,
|
|
16290
16295
|
statusKey,
|
|
@@ -16299,82 +16304,152 @@ function TicketStatusConfigRow({
|
|
|
16299
16304
|
deleteDisabled,
|
|
16300
16305
|
deleteDisabledReason,
|
|
16301
16306
|
dragHandleProps,
|
|
16302
|
-
|
|
16303
|
-
|
|
16307
|
+
isDragging,
|
|
16308
|
+
moveButtons
|
|
16304
16309
|
}) {
|
|
16310
|
+
const dragAndDropEnabled = useDragAndDropEnabled();
|
|
16311
|
+
const nameInputId = useId5();
|
|
16305
16312
|
const isSystem = variant === "system";
|
|
16306
16313
|
const isCustomColor = !isSystem && presetKey === void 0;
|
|
16307
16314
|
const previewColor = isSystem ? void 0 : color;
|
|
16308
16315
|
const showColorPicker = !isSystem && onColorChange && color !== void 0;
|
|
16309
16316
|
const previewVariant = systemTagVariant ?? (isSystem ? void 0 : "primary");
|
|
16310
|
-
const
|
|
16317
|
+
const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
|
|
16318
|
+
const chip = /* @__PURE__ */ jsx145(
|
|
16319
|
+
TicketStatusTag,
|
|
16320
|
+
{
|
|
16321
|
+
status: statusKey,
|
|
16322
|
+
label: name || " ",
|
|
16323
|
+
color: previewColor,
|
|
16324
|
+
variant: previewVariant,
|
|
16325
|
+
showIcon: isSystem,
|
|
16326
|
+
className: "max-w-full"
|
|
16327
|
+
}
|
|
16328
|
+
);
|
|
16311
16329
|
return /* @__PURE__ */ jsxs113(
|
|
16312
16330
|
"div",
|
|
16313
16331
|
{
|
|
16314
16332
|
className: cn(
|
|
16315
|
-
|
|
16333
|
+
// Transparent background — only the border outlines the row.
|
|
16334
|
+
"flex w-full items-start gap-3 rounded-md border border-ods-border md:gap-[var(--spacing-system-m)]",
|
|
16316
16335
|
"p-[var(--spacing-system-m)]",
|
|
16317
|
-
|
|
16336
|
+
// The dragged row travels over its siblings, so it needs an opaque back.
|
|
16337
|
+
isDragging && "bg-ods-bg opacity-70 shadow-lg"
|
|
16318
16338
|
),
|
|
16319
16339
|
children: [
|
|
16320
|
-
|
|
16321
|
-
"
|
|
16322
|
-
{
|
|
16323
|
-
type: "button",
|
|
16324
|
-
"aria-label": "Drag to reorder",
|
|
16325
|
-
className: "flex size-6 cursor-grab items-center justify-center rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ods-focus active:cursor-grabbing",
|
|
16326
|
-
...dragHandleAttributes,
|
|
16327
|
-
...dragHandleProps,
|
|
16328
|
-
children: /* @__PURE__ */ jsx145(DraggerIcon, { size: 24 })
|
|
16329
|
-
}
|
|
16330
|
-
) }),
|
|
16331
|
-
/* @__PURE__ */ jsxs113("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: [
|
|
16332
|
-
/* @__PURE__ */ jsx145("div", { className: cn("flex flex-col gap-[var(--spacing-system-xxs)]", colClass), children: /* @__PURE__ */ jsx145(
|
|
16333
|
-
Input,
|
|
16334
|
-
{
|
|
16335
|
-
value: name,
|
|
16336
|
-
onChange: (e) => onNameChange?.(e.target.value),
|
|
16337
|
-
disabled: isSystem,
|
|
16338
|
-
readOnly: isSystem,
|
|
16339
|
-
"aria-label": "Status name",
|
|
16340
|
-
maxLength: 50
|
|
16341
|
-
}
|
|
16342
|
-
) }),
|
|
16343
|
-
showColorPicker ? /* @__PURE__ */ jsx145("div", { className: cn("flex", colClass), children: /* @__PURE__ */ jsx145(ColorPresetSelect, { value: color, presetKey, onChange: onColorChange }) }) : /* @__PURE__ */ jsx145("div", { "aria-hidden": true, className: cn("hidden md:block", colClass) }),
|
|
16344
|
-
showColorPicker && isCustomColor ? /* @__PURE__ */ jsx145("div", { className: cn("flex", colClass), children: /* @__PURE__ */ jsx145(ColorPickerInput, { value: color, onChange: (next) => onColorChange({ color: next, preset: void 0 }) }) }) : /* @__PURE__ */ jsx145("div", { "aria-hidden": true, className: cn("hidden md:block", colClass) }),
|
|
16345
|
-
/* @__PURE__ */ jsx145("div", { className: cn("flex h-11 items-center justify-start md:h-12 md:justify-end", colClass), children: /* @__PURE__ */ jsx145(
|
|
16346
|
-
TicketStatusTag,
|
|
16347
|
-
{
|
|
16348
|
-
status: statusKey,
|
|
16349
|
-
label: name || " ",
|
|
16350
|
-
color: previewColor,
|
|
16351
|
-
variant: previewVariant,
|
|
16352
|
-
showIcon: isSystem,
|
|
16353
|
-
className: "max-w-full"
|
|
16354
|
-
}
|
|
16355
|
-
) })
|
|
16356
|
-
] }),
|
|
16357
|
-
/* @__PURE__ */ jsx145("div", { className: "flex h-11 w-12 shrink-0 items-center justify-center md:h-12", children: isSystem ? /* @__PURE__ */ jsx145(TouchFriendlyTooltip, { content: systemTooltip, children: /* @__PURE__ */ jsx145(
|
|
16358
|
-
"button",
|
|
16340
|
+
dragAndDropEnabled && /* @__PURE__ */ jsx145(
|
|
16341
|
+
"div",
|
|
16359
16342
|
{
|
|
16360
|
-
|
|
16361
|
-
|
|
16362
|
-
|
|
16363
|
-
|
|
16343
|
+
className: cn(
|
|
16344
|
+
"flex h-11 w-8 shrink-0 items-center justify-center text-ods-text-secondary md:h-12",
|
|
16345
|
+
fieldRowOffset
|
|
16346
|
+
),
|
|
16347
|
+
children: isSystem ? /* @__PURE__ */ jsx145(DraggerIcon, { size: 24, "aria-hidden": true, className: "opacity-40" }) : /* @__PURE__ */ jsx145(
|
|
16348
|
+
"button",
|
|
16349
|
+
{
|
|
16350
|
+
type: "button",
|
|
16351
|
+
"aria-label": "Drag to reorder",
|
|
16352
|
+
className: "flex size-6 cursor-grab items-center justify-center rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ods-focus active:cursor-grabbing",
|
|
16353
|
+
...dragHandleProps,
|
|
16354
|
+
children: /* @__PURE__ */ jsx145(DraggerIcon, { size: 24 })
|
|
16355
|
+
}
|
|
16356
|
+
)
|
|
16364
16357
|
}
|
|
16365
|
-
)
|
|
16366
|
-
|
|
16358
|
+
),
|
|
16359
|
+
/* @__PURE__ */ jsxs113(
|
|
16360
|
+
"div",
|
|
16367
16361
|
{
|
|
16368
|
-
|
|
16369
|
-
|
|
16370
|
-
|
|
16371
|
-
|
|
16372
|
-
|
|
16373
|
-
|
|
16374
|
-
|
|
16375
|
-
|
|
16362
|
+
className: cn(
|
|
16363
|
+
"min-w-0 flex-1 items-start gap-x-3 gap-y-[var(--spacing-system-m)] md:gap-x-[var(--spacing-system-m)]",
|
|
16364
|
+
isSystem ? "flex flex-wrap" : (
|
|
16365
|
+
// Mobile custom rows are a strict two-column grid, per the mock:
|
|
16366
|
+
// fields (name / color / hex, all one width) on the left, the
|
|
16367
|
+
// controls and the chip stacked in the right column. From md up
|
|
16368
|
+
// the same children flow as a wrapping flex row.
|
|
16369
|
+
"grid grid-cols-[minmax(0,1fr)_auto] md:flex md:flex-wrap"
|
|
16370
|
+
)
|
|
16371
|
+
),
|
|
16372
|
+
children: [
|
|
16373
|
+
/* @__PURE__ */ jsxs113("div", { className: "order-1 flex min-w-0 grow basis-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
|
|
16374
|
+
/* @__PURE__ */ jsx145(Label, { variant: "large", htmlFor: nameInputId, children: "Status Name" }),
|
|
16375
|
+
/* @__PURE__ */ jsx145(
|
|
16376
|
+
Input,
|
|
16377
|
+
{
|
|
16378
|
+
id: nameInputId,
|
|
16379
|
+
value: name,
|
|
16380
|
+
onChange: (e) => onNameChange?.(e.target.value),
|
|
16381
|
+
disabled: isSystem,
|
|
16382
|
+
readOnly: isSystem,
|
|
16383
|
+
maxLength: 50
|
|
16384
|
+
}
|
|
16385
|
+
)
|
|
16386
|
+
] }),
|
|
16387
|
+
showColorPicker ? /* @__PURE__ */ jsxs113("div", { className: "order-3 flex min-w-0 grow basis-full flex-col gap-[var(--spacing-system-xxs)] md:order-2 md:basis-0", children: [
|
|
16388
|
+
/* @__PURE__ */ jsx145(Label, { variant: "large", children: "Color" }),
|
|
16389
|
+
/* @__PURE__ */ jsx145(ColorPresetSelect, { value: color, presetKey, onChange: onColorChange }),
|
|
16390
|
+
isCustomColor && /* @__PURE__ */ jsx145("div", { className: "mt-[var(--spacing-system-xxs)] flex min-w-0", children: /* @__PURE__ */ jsx145(ColorPickerInput, { value: color, onChange: (next) => onColorChange({ color: next, preset: void 0 }) }) })
|
|
16391
|
+
] }) : /* @__PURE__ */ jsx145("div", { "aria-hidden": true, className: "hidden min-w-0 grow basis-0 lg:order-2 lg:block" }),
|
|
16392
|
+
/* @__PURE__ */ jsx145("div", { "aria-hidden": true, className: "hidden min-w-0 grow basis-0 lg:order-3 lg:block" }),
|
|
16393
|
+
isSystem ? /* @__PURE__ */ jsx145(
|
|
16394
|
+
"div",
|
|
16395
|
+
{
|
|
16396
|
+
className: cn(
|
|
16397
|
+
"order-2 flex h-11 min-w-0 grow basis-0 items-center justify-end md:h-12 lg:order-4",
|
|
16398
|
+
fieldRowOffset
|
|
16399
|
+
),
|
|
16400
|
+
children: chip
|
|
16401
|
+
}
|
|
16402
|
+
) : /* @__PURE__ */ jsxs113(Fragment25, { children: [
|
|
16403
|
+
/* @__PURE__ */ jsx145(
|
|
16404
|
+
"div",
|
|
16405
|
+
{
|
|
16406
|
+
className: cn(
|
|
16407
|
+
"hidden h-12 min-w-0 grow basis-0 items-center justify-end lg:order-4 lg:flex",
|
|
16408
|
+
fieldRowOffset
|
|
16409
|
+
),
|
|
16410
|
+
children: chip
|
|
16411
|
+
}
|
|
16412
|
+
),
|
|
16413
|
+
/* @__PURE__ */ jsx145("div", { className: "hidden min-w-0 basis-full items-center justify-end md:order-4 md:flex lg:hidden", children: chip }),
|
|
16414
|
+
/* @__PURE__ */ jsx145("div", { className: cn("order-4 flex h-11 min-w-0 items-center md:hidden", fieldRowOffset), children: chip })
|
|
16415
|
+
] }),
|
|
16416
|
+
/* @__PURE__ */ jsxs113(
|
|
16417
|
+
"div",
|
|
16418
|
+
{
|
|
16419
|
+
className: cn(
|
|
16420
|
+
"flex h-11 shrink-0 items-center justify-end gap-[var(--spacing-system-s)] md:h-12 lg:order-5",
|
|
16421
|
+
isSystem ? "order-3" : "order-2 md:order-3",
|
|
16422
|
+
fieldRowOffset
|
|
16423
|
+
),
|
|
16424
|
+
children: [
|
|
16425
|
+
!isSystem && moveButtons,
|
|
16426
|
+
isSystem ? /* @__PURE__ */ jsx145("div", { className: "flex w-11 justify-center md:w-12", children: /* @__PURE__ */ jsx145(TouchFriendlyTooltip, { content: systemTooltip, children: /* @__PURE__ */ jsx145(
|
|
16427
|
+
"button",
|
|
16428
|
+
{
|
|
16429
|
+
type: "button",
|
|
16430
|
+
"aria-label": systemTooltip ?? "System status",
|
|
16431
|
+
className: "flex size-6 items-center justify-center text-ods-text-secondary outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
|
|
16432
|
+
children: /* @__PURE__ */ jsx145(InfoCircleIcon, { size: 24 })
|
|
16433
|
+
}
|
|
16434
|
+
) }) }) : /* @__PURE__ */ jsx145(TouchFriendlyTooltip, { content: deleteDisabled ? deleteDisabledReason : void 0, children: /* @__PURE__ */ jsx145("span", { className: "inline-flex", children: /* @__PURE__ */ jsx145(
|
|
16435
|
+
Button,
|
|
16436
|
+
{
|
|
16437
|
+
type: "button",
|
|
16438
|
+
variant: "outline",
|
|
16439
|
+
size: "icon",
|
|
16440
|
+
"aria-label": "Delete status",
|
|
16441
|
+
disabled: deleteDisabled,
|
|
16442
|
+
onClick: deleteDisabled ? void 0 : onDelete,
|
|
16443
|
+
className: cn("size-11 md:size-12", deleteDisabled && "pointer-events-none"),
|
|
16444
|
+
children: /* @__PURE__ */ jsx145(TrashIcon, { className: "text-ods-error" })
|
|
16445
|
+
}
|
|
16446
|
+
) }) })
|
|
16447
|
+
]
|
|
16448
|
+
}
|
|
16449
|
+
)
|
|
16450
|
+
]
|
|
16376
16451
|
}
|
|
16377
|
-
)
|
|
16452
|
+
)
|
|
16378
16453
|
]
|
|
16379
16454
|
}
|
|
16380
16455
|
);
|
|
@@ -16638,7 +16713,7 @@ import { useState as useState43 } from "react";
|
|
|
16638
16713
|
|
|
16639
16714
|
// src/components/ui/ticket-note-card.tsx
|
|
16640
16715
|
import { useState as useState42 } from "react";
|
|
16641
|
-
import { Fragment as
|
|
16716
|
+
import { Fragment as Fragment26, jsx as jsx149, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
16642
16717
|
function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
16643
16718
|
const [isEditing, setIsEditing] = useState42(false);
|
|
16644
16719
|
const [editText, setEditText] = useState42(note.text);
|
|
@@ -16696,7 +16771,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
16696
16771
|
children: /* @__PURE__ */ jsx149(XmarkIcon, { className: "size-5" })
|
|
16697
16772
|
}
|
|
16698
16773
|
)
|
|
16699
|
-
] }) : /* @__PURE__ */ jsxs117(
|
|
16774
|
+
] }) : /* @__PURE__ */ jsxs117(Fragment26, { children: [
|
|
16700
16775
|
/* @__PURE__ */ jsx149("p", { className: "text-ods-text-primary text-h4", children: note.text }),
|
|
16701
16776
|
/* @__PURE__ */ jsxs117("p", { className: "truncate text-ods-text-secondary text-h6", title: `${note.authorName} \u2022 ${note.createdAt}`, children: [
|
|
16702
16777
|
note.authorName,
|
|
@@ -16786,7 +16861,7 @@ function TicketNotesSection({
|
|
|
16786
16861
|
}
|
|
16787
16862
|
|
|
16788
16863
|
// src/components/ui/ticket-info-section.tsx
|
|
16789
|
-
import { Fragment as
|
|
16864
|
+
import { Fragment as Fragment27, jsx as jsx151, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
16790
16865
|
function InfoCell({
|
|
16791
16866
|
value,
|
|
16792
16867
|
label,
|
|
@@ -16905,7 +16980,7 @@ function TicketInfoSection({
|
|
|
16905
16980
|
)
|
|
16906
16981
|
] })
|
|
16907
16982
|
] }),
|
|
16908
|
-
expanded && /* @__PURE__ */ jsxs119(
|
|
16983
|
+
expanded && /* @__PURE__ */ jsxs119(Fragment27, { children: [
|
|
16909
16984
|
createdAt && /* @__PURE__ */ jsx151("div", { className: "grid grid-cols-2 items-center gap-4 border-b border-ods-border bg-ods-bg px-4 py-3", children: /* @__PURE__ */ jsx151(InfoCell, { value: createdAt, label: "Created" }) }),
|
|
16910
16985
|
/* @__PURE__ */ jsxs119("div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
16911
16986
|
description && /* @__PURE__ */ jsx151(SimpleMarkdownRenderer, { content: description }),
|
|
@@ -17567,7 +17642,7 @@ function SsoProviderButtons({
|
|
|
17567
17642
|
}
|
|
17568
17643
|
|
|
17569
17644
|
// src/components/features/auth/complete-account-form.tsx
|
|
17570
|
-
import { Fragment as
|
|
17645
|
+
import { Fragment as Fragment28, jsx as jsx162, jsxs as jsxs128 } from "react/jsx-runtime";
|
|
17571
17646
|
function CompleteAccountForm({
|
|
17572
17647
|
firstName,
|
|
17573
17648
|
lastName,
|
|
@@ -17616,7 +17691,7 @@ function CompleteAccountForm({
|
|
|
17616
17691
|
/* @__PURE__ */ jsx162("h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
|
|
17617
17692
|
/* @__PURE__ */ jsx162("p", { className: "text-ods-text-secondary text-h4", children: subtitle })
|
|
17618
17693
|
] }),
|
|
17619
|
-
ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ jsxs128(
|
|
17694
|
+
ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ jsxs128(Fragment28, { children: [
|
|
17620
17695
|
/* @__PURE__ */ jsx162(
|
|
17621
17696
|
SsoProviderButtons,
|
|
17622
17697
|
{
|
|
@@ -17753,7 +17828,7 @@ function TermsAgreementLabel({ termsUrl = "#", privacyPolicyUrl = "#" }) {
|
|
|
17753
17828
|
}
|
|
17754
17829
|
|
|
17755
17830
|
// src/components/features/auth/create-organization-form.tsx
|
|
17756
|
-
import { Fragment as
|
|
17831
|
+
import { Fragment as Fragment29, jsx as jsx164, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
17757
17832
|
function CreateOrganizationForm({
|
|
17758
17833
|
email,
|
|
17759
17834
|
organizationName,
|
|
@@ -17874,7 +17949,7 @@ function CreateOrganizationForm({
|
|
|
17874
17949
|
children: submitLabel
|
|
17875
17950
|
}
|
|
17876
17951
|
),
|
|
17877
|
-
hasSso && /* @__PURE__ */ jsxs130(
|
|
17952
|
+
hasSso && /* @__PURE__ */ jsxs130(Fragment29, { children: [
|
|
17878
17953
|
/* @__PURE__ */ jsxs130("div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
|
|
17879
17954
|
/* @__PURE__ */ jsx164("div", { className: "h-px flex-1 bg-ods-border" }),
|
|
17880
17955
|
/* @__PURE__ */ jsx164("span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
|
|
@@ -21008,7 +21083,7 @@ var ConfidenceBadge = ({
|
|
|
21008
21083
|
};
|
|
21009
21084
|
|
|
21010
21085
|
// src/components/features/seo-editor-preview.tsx
|
|
21011
|
-
import { Fragment as
|
|
21086
|
+
import { Fragment as Fragment30, jsx as jsx194, jsxs as jsxs155 } from "react/jsx-runtime";
|
|
21012
21087
|
var SEO_MEDIA_BOX_HEIGHT = "h-[280px]";
|
|
21013
21088
|
function SEOEditorPreview({
|
|
21014
21089
|
seoTitle,
|
|
@@ -21065,7 +21140,7 @@ function SEOEditorPreview({
|
|
|
21065
21140
|
{
|
|
21066
21141
|
label: "SEO Title",
|
|
21067
21142
|
error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${SEO_TITLE_MAX_LENGTH})` : null,
|
|
21068
|
-
labelExtras: aiConfidenceSeoTitle !== void 0 ? /* @__PURE__ */ jsxs155(
|
|
21143
|
+
labelExtras: aiConfidenceSeoTitle !== void 0 ? /* @__PURE__ */ jsxs155(Fragment30, { children: [
|
|
21069
21144
|
/* @__PURE__ */ jsx194(AIGeneratedBadge, {}),
|
|
21070
21145
|
/* @__PURE__ */ jsx194(ConfidenceBadge, { confidence: aiConfidenceSeoTitle, showLabel: true, showPercentage: true, size: "sm" })
|
|
21071
21146
|
] }) : void 0,
|
|
@@ -21104,7 +21179,7 @@ function SEOEditorPreview({
|
|
|
21104
21179
|
Field,
|
|
21105
21180
|
{
|
|
21106
21181
|
label: "SEO Keywords",
|
|
21107
|
-
labelExtras: aiConfidenceSeoKeywords !== void 0 ? /* @__PURE__ */ jsxs155(
|
|
21182
|
+
labelExtras: aiConfidenceSeoKeywords !== void 0 ? /* @__PURE__ */ jsxs155(Fragment30, { children: [
|
|
21108
21183
|
/* @__PURE__ */ jsx194(AIGeneratedBadge, {}),
|
|
21109
21184
|
/* @__PURE__ */ jsx194(
|
|
21110
21185
|
ConfidenceBadge,
|
|
@@ -21137,7 +21212,7 @@ function SEOEditorPreview({
|
|
|
21137
21212
|
{
|
|
21138
21213
|
label: "SEO Description",
|
|
21139
21214
|
error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${SEO_DESCRIPTION_MAX_LENGTH})` : null,
|
|
21140
|
-
labelExtras: aiConfidenceSeoDescription !== void 0 ? /* @__PURE__ */ jsxs155(
|
|
21215
|
+
labelExtras: aiConfidenceSeoDescription !== void 0 ? /* @__PURE__ */ jsxs155(Fragment30, { children: [
|
|
21141
21216
|
/* @__PURE__ */ jsx194(AIGeneratedBadge, {}),
|
|
21142
21217
|
/* @__PURE__ */ jsx194(
|
|
21143
21218
|
ConfidenceBadge,
|
|
@@ -21228,7 +21303,7 @@ function SEOEditorPreview({
|
|
|
21228
21303
|
"flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
|
|
21229
21304
|
),
|
|
21230
21305
|
onClick: () => onOgImageUpload && fileInputRef?.click(),
|
|
21231
|
-
children: isUploading ? /* @__PURE__ */ jsx194(Loader28, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs155(
|
|
21306
|
+
children: isUploading ? /* @__PURE__ */ jsx194(Loader28, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs155(Fragment30, { children: [
|
|
21232
21307
|
/* @__PURE__ */ jsx194(Upload4, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
|
|
21233
21308
|
/* @__PURE__ */ jsx194("span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
21234
21309
|
] })
|
|
@@ -21741,7 +21816,7 @@ function VideoBitesDisplay({
|
|
|
21741
21816
|
// src/components/features/walkthrough-video.tsx
|
|
21742
21817
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
21743
21818
|
import { useCallback as useCallback20, useEffect as useEffect29, useLayoutEffect as useLayoutEffect2, useMemo as useMemo19, useRef as useRef32, useState as useState58 } from "react";
|
|
21744
|
-
import { Fragment as
|
|
21819
|
+
import { Fragment as Fragment31, jsx as jsx201, jsxs as jsxs160 } from "react/jsx-runtime";
|
|
21745
21820
|
var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
|
|
21746
21821
|
function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
|
|
21747
21822
|
const time = live?.getCurrentTime() ?? 0;
|
|
@@ -22291,7 +22366,7 @@ function WalkthroughVideo({
|
|
|
22291
22366
|
]
|
|
22292
22367
|
}
|
|
22293
22368
|
);
|
|
22294
|
-
return /* @__PURE__ */ jsxs160(
|
|
22369
|
+
return /* @__PURE__ */ jsxs160(Fragment31, { children: [
|
|
22295
22370
|
showCard && (inline ? (
|
|
22296
22371
|
// No wrapper: a positioning / z-index / safe-area shell around an
|
|
22297
22372
|
// in-flow block is exactly what stops it sizing to its container.
|
|
@@ -23784,7 +23859,7 @@ function ViewToggle({
|
|
|
23784
23859
|
// src/components/features/policy-configuration-panel.tsx
|
|
23785
23860
|
import { ChevronDown as ChevronDown8, Shield } from "lucide-react";
|
|
23786
23861
|
import { useState as useState61 } from "react";
|
|
23787
|
-
import { Fragment as
|
|
23862
|
+
import { Fragment as Fragment32, jsx as jsx220, jsxs as jsxs175 } from "react/jsx-runtime";
|
|
23788
23863
|
var approvalLevelLabels = {
|
|
23789
23864
|
ALLOW: "Allow",
|
|
23790
23865
|
ASK_USER: "Ask User",
|
|
@@ -23850,7 +23925,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
23850
23925
|
var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
|
|
23851
23926
|
const { innerRef, containerStyle } = useCollapsible({ expanded: isExpanded, durationMs: 300 });
|
|
23852
23927
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
23853
|
-
return /* @__PURE__ */ jsxs175(
|
|
23928
|
+
return /* @__PURE__ */ jsxs175(Fragment32, { children: [
|
|
23854
23929
|
/* @__PURE__ */ jsxs175(
|
|
23855
23930
|
"div",
|
|
23856
23931
|
{
|
|
@@ -23991,7 +24066,7 @@ PolicyConfigurationPanel.displayName = "PolicyConfigurationPanel";
|
|
|
23991
24066
|
// src/components/features/waitlist-form.tsx
|
|
23992
24067
|
import { getCountries as getCountries2 } from "libphonenumber-js";
|
|
23993
24068
|
import { useEffect as useEffect30, useState as useState62 } from "react";
|
|
23994
|
-
import { Fragment as
|
|
24069
|
+
import { Fragment as Fragment33, jsx as jsx221, jsxs as jsxs176 } from "react/jsx-runtime";
|
|
23995
24070
|
function WaitlistForm({
|
|
23996
24071
|
id = "waitlist-form",
|
|
23997
24072
|
className,
|
|
@@ -24152,7 +24227,7 @@ function WaitlistForm({
|
|
|
24152
24227
|
error: showConsentError ? "Please agree to SMS notifications to continue." : void 0,
|
|
24153
24228
|
disabled: isSubmitting,
|
|
24154
24229
|
label: smsCheckboxLabel,
|
|
24155
|
-
description: /* @__PURE__ */ jsxs176(
|
|
24230
|
+
description: /* @__PURE__ */ jsxs176(Fragment33, { children: [
|
|
24156
24231
|
consentText,
|
|
24157
24232
|
" View our ",
|
|
24158
24233
|
/* @__PURE__ */ jsx221(
|
|
@@ -25050,7 +25125,7 @@ function NotificationTile({
|
|
|
25050
25125
|
}
|
|
25051
25126
|
|
|
25052
25127
|
// src/components/features/notifications/notification-drawer.tsx
|
|
25053
|
-
import { Fragment as
|
|
25128
|
+
import { Fragment as Fragment34, jsx as jsx225, jsxs as jsxs179 } from "react/jsx-runtime";
|
|
25054
25129
|
function NotificationDrawer({
|
|
25055
25130
|
className,
|
|
25056
25131
|
liveDurationMs,
|
|
@@ -25083,7 +25158,7 @@ function NotificationDrawer({
|
|
|
25083
25158
|
} = ctx;
|
|
25084
25159
|
const renderTile = renderTileProp ?? ctxRenderTile;
|
|
25085
25160
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
25086
|
-
const content = /* @__PURE__ */ jsxs179(
|
|
25161
|
+
const content = /* @__PURE__ */ jsxs179(Fragment34, { children: [
|
|
25087
25162
|
/* @__PURE__ */ jsx225("div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ jsx225(
|
|
25088
25163
|
DrawerTitle,
|
|
25089
25164
|
{
|
|
@@ -25195,7 +25270,7 @@ function DrawerScrollList({
|
|
|
25195
25270
|
{
|
|
25196
25271
|
ref: scrollRef,
|
|
25197
25272
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
25198
|
-
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ jsx225(EmptyState, {}) : /* @__PURE__ */ jsxs179(
|
|
25273
|
+
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ jsx225(EmptyState, {}) : /* @__PURE__ */ jsxs179(Fragment34, { children: [
|
|
25199
25274
|
unreadNotifications.map((n) => {
|
|
25200
25275
|
const custom = renderTile?.(n, { onComplete, onSettle, liveDurationMs });
|
|
25201
25276
|
if (custom) return /* @__PURE__ */ jsx225("div", { children: custom }, n.id);
|
|
@@ -25217,7 +25292,7 @@ function DrawerScrollList({
|
|
|
25217
25292
|
);
|
|
25218
25293
|
}
|
|
25219
25294
|
function DrawerLoadingTiles() {
|
|
25220
|
-
return /* @__PURE__ */ jsxs179(
|
|
25295
|
+
return /* @__PURE__ */ jsxs179(Fragment34, { children: [
|
|
25221
25296
|
/* @__PURE__ */ jsx225(
|
|
25222
25297
|
"div",
|
|
25223
25298
|
{
|
|
@@ -25447,7 +25522,7 @@ function approvalMetaToBatchData(approval) {
|
|
|
25447
25522
|
}
|
|
25448
25523
|
|
|
25449
25524
|
// src/components/features/notifications/approval-request-notification-tile.tsx
|
|
25450
|
-
import { Fragment as
|
|
25525
|
+
import { Fragment as Fragment35, jsx as jsx227, jsxs as jsxs180 } from "react/jsx-runtime";
|
|
25451
25526
|
function ApprovalRequestNotificationTile({
|
|
25452
25527
|
notification,
|
|
25453
25528
|
onApprove,
|
|
@@ -25497,7 +25572,7 @@ function ApprovalRequestNotificationTile({
|
|
|
25497
25572
|
className,
|
|
25498
25573
|
paused: pinned || processing,
|
|
25499
25574
|
actions: /* @__PURE__ */ jsxs180("div", { className: "flex w-full items-center gap-[var(--spacing-system-xs)]", children: [
|
|
25500
|
-
status === "pending" ? /* @__PURE__ */ jsxs180(
|
|
25575
|
+
status === "pending" ? /* @__PURE__ */ jsxs180(Fragment35, { children: [
|
|
25501
25576
|
/* @__PURE__ */ jsx227(
|
|
25502
25577
|
Button,
|
|
25503
25578
|
{
|
|
@@ -25982,7 +26057,7 @@ function HeaderButton({
|
|
|
25982
26057
|
}
|
|
25983
26058
|
|
|
25984
26059
|
// src/components/features/time-tracker/time-tracker-header-button.tsx
|
|
25985
|
-
import { Fragment as
|
|
26060
|
+
import { Fragment as Fragment36, jsx as jsx232, jsxs as jsxs183 } from "react/jsx-runtime";
|
|
25986
26061
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
25987
26062
|
const ctx = useOptionalTimeTracker();
|
|
25988
26063
|
const elapsedLabel = useTrackerClock({
|
|
@@ -26027,7 +26102,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
26027
26102
|
isActive && "md:w-auto md:min-w-[144px] md:justify-center md:gap-[var(--spacing-system-xsf)] md:px-[var(--spacing-system-sf)]",
|
|
26028
26103
|
className
|
|
26029
26104
|
),
|
|
26030
|
-
icon: /* @__PURE__ */ jsxs183(
|
|
26105
|
+
icon: /* @__PURE__ */ jsxs183(Fragment36, { children: [
|
|
26031
26106
|
/* @__PURE__ */ jsx232(
|
|
26032
26107
|
ClockHistoryIcon,
|
|
26033
26108
|
{
|
|
@@ -26082,7 +26157,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
26082
26157
|
import { combine as combine3 } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
26083
26158
|
import { monitorForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
26084
26159
|
import { preventUnhandled } from "@atlaskit/pragmatic-drag-and-drop/utils/prevent-unhandled";
|
|
26085
|
-
import { Fragment as
|
|
26160
|
+
import { Fragment as Fragment39, useCallback as useCallback27, useEffect as useEffect41, useMemo as useMemo23, useRef as useRef41, useState as useState76 } from "react";
|
|
26086
26161
|
import { createPortal } from "react-dom";
|
|
26087
26162
|
|
|
26088
26163
|
// src/utils/auto-scroll-ancestors.ts
|
|
@@ -26468,7 +26543,7 @@ function hasMoveSettled(columns, move) {
|
|
|
26468
26543
|
}
|
|
26469
26544
|
|
|
26470
26545
|
// src/components/features/board/ticket-card.tsx
|
|
26471
|
-
import { Fragment as
|
|
26546
|
+
import { Fragment as Fragment37, jsx as jsx235, jsxs as jsxs186 } from "react/jsx-runtime";
|
|
26472
26547
|
var PRIORITY_COLOR_CLASS = {
|
|
26473
26548
|
low: "text-ods-text-secondary",
|
|
26474
26549
|
medium: "text-ods-info",
|
|
@@ -26529,7 +26604,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26529
26604
|
] }) : null;
|
|
26530
26605
|
const timestampLabel = ticket.createdAt ? formatTicketRelativeTime(ticket.createdAt) : null;
|
|
26531
26606
|
const tooltipLabel = ticket.createdAt ? formatTicketFullTimestamp(ticket.createdAt) : null;
|
|
26532
|
-
return /* @__PURE__ */ jsxs186(
|
|
26607
|
+
return /* @__PURE__ */ jsxs186(Fragment37, { children: [
|
|
26533
26608
|
/* @__PURE__ */ jsxs186("div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
26534
26609
|
/* @__PURE__ */ jsxs186("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
|
|
26535
26610
|
/* @__PURE__ */ jsx235("p", { className: "truncate text-ods-text-primary text-h3", children: ticket.title }),
|
|
@@ -26820,7 +26895,7 @@ var TicketCardSkeleton = forwardRef31(
|
|
|
26820
26895
|
TicketCardSkeleton.displayName = "TicketCardSkeleton";
|
|
26821
26896
|
|
|
26822
26897
|
// src/components/features/board/board-column.tsx
|
|
26823
|
-
import { Fragment as
|
|
26898
|
+
import { Fragment as Fragment38, jsx as jsx237, jsxs as jsxs188 } from "react/jsx-runtime";
|
|
26824
26899
|
var BoardColumn = memo6(function BoardColumnImpl({
|
|
26825
26900
|
column,
|
|
26826
26901
|
collapsed = false,
|
|
@@ -26895,7 +26970,7 @@ var BoardColumn = memo6(function BoardColumnImpl({
|
|
|
26895
26970
|
onArchive: !collapsed && column.archivable && onArchive ? () => onArchive(column.id) : void 0
|
|
26896
26971
|
}
|
|
26897
26972
|
),
|
|
26898
|
-
!collapsed && /* @__PURE__ */ jsxs188(
|
|
26973
|
+
!collapsed && /* @__PURE__ */ jsxs188(Fragment38, { children: [
|
|
26899
26974
|
/* @__PURE__ */ jsx237("div", { "aria-hidden": true, className: "-mx-[var(--spacing-system-sf)] h-px shrink-0 bg-ods-border" }),
|
|
26900
26975
|
/* @__PURE__ */ jsx237(
|
|
26901
26976
|
ColumnBody,
|
|
@@ -26988,7 +27063,7 @@ function ColumnBody({
|
|
|
26988
27063
|
);
|
|
26989
27064
|
}
|
|
26990
27065
|
function SkeletonStack({ count = 4 }) {
|
|
26991
|
-
return /* @__PURE__ */ jsx237(
|
|
27066
|
+
return /* @__PURE__ */ jsx237(Fragment38, { children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx237(TicketCardSkeleton, {}, `skeleton-${i}`)) });
|
|
26992
27067
|
}
|
|
26993
27068
|
function EmptyState2({ columnId }) {
|
|
26994
27069
|
const aim = useDropAim();
|
|
@@ -27085,7 +27160,12 @@ function Board({
|
|
|
27085
27160
|
const previewRef = useRef41(null);
|
|
27086
27161
|
const [reportedMove, setPendingMove] = useState76(null);
|
|
27087
27162
|
const pendingMove = reportedMove && !hasMoveSettled(columns, reportedMove) ? reportedMove : null;
|
|
27088
|
-
const
|
|
27163
|
+
const dragAndDropEnabled = useDragAndDropEnabled();
|
|
27164
|
+
const view = useMemo23(() => {
|
|
27165
|
+
const base = pendingMove ? applyPendingMove(columns, pendingMove) : columns;
|
|
27166
|
+
if (dragAndDropEnabled) return base;
|
|
27167
|
+
return base.map((column) => ({ ...column, dragDisabled: true, dropDisabled: true }));
|
|
27168
|
+
}, [columns, pendingMove, dragAndDropEnabled]);
|
|
27089
27169
|
useEffect41(() => {
|
|
27090
27170
|
columnsRef.current = view;
|
|
27091
27171
|
onChangeRef.current = onChange;
|
|
@@ -27330,7 +27410,7 @@ function Board({
|
|
|
27330
27410
|
const joinLeft = !!(column.system && prev?.system);
|
|
27331
27411
|
const joinRight = !!(column.system && next?.system);
|
|
27332
27412
|
const showGap = i > 0 && !joinLeft;
|
|
27333
|
-
return /* @__PURE__ */ jsxs189(
|
|
27413
|
+
return /* @__PURE__ */ jsxs189(Fragment39, { children: [
|
|
27334
27414
|
showGap && /* @__PURE__ */ jsx238("div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
27335
27415
|
/* @__PURE__ */ jsx238(
|
|
27336
27416
|
BoardColumn,
|
|
@@ -27477,7 +27557,7 @@ import {
|
|
|
27477
27557
|
useCallback as useCallback28,
|
|
27478
27558
|
useContext as useContext12,
|
|
27479
27559
|
useEffect as useEffect42,
|
|
27480
|
-
useId as
|
|
27560
|
+
useId as useId6,
|
|
27481
27561
|
useMemo as useMemo24,
|
|
27482
27562
|
useRef as useRef42,
|
|
27483
27563
|
useState as useState77
|
|
@@ -27495,7 +27575,8 @@ function useSortableListContext() {
|
|
|
27495
27575
|
}
|
|
27496
27576
|
function SortableList({ onReorder, getItemLabel, disabled = false, className, children }) {
|
|
27497
27577
|
const listRef = useRef42(null);
|
|
27498
|
-
const
|
|
27578
|
+
const dragAndDropEnabled = useDragAndDropEnabled();
|
|
27579
|
+
const dragType = useId6();
|
|
27499
27580
|
const [announcement, setAnnouncement] = useState77("");
|
|
27500
27581
|
const onReorderRef = useRef42(onReorder);
|
|
27501
27582
|
const getItemLabelRef = useRef42(getItemLabel);
|
|
@@ -27521,7 +27602,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27521
27602
|
);
|
|
27522
27603
|
useEffect42(() => {
|
|
27523
27604
|
const list = listRef.current;
|
|
27524
|
-
if (!list) return void 0;
|
|
27605
|
+
if (!list || disabled || !dragAndDropEnabled) return void 0;
|
|
27525
27606
|
let drag = null;
|
|
27526
27607
|
return combine4(
|
|
27527
27608
|
// Dragging towards the edge of the screen — or past it — scrolls whatever
|
|
@@ -27585,7 +27666,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27585
27666
|
}
|
|
27586
27667
|
})
|
|
27587
27668
|
);
|
|
27588
|
-
}, [dragType, readItems, reorder]);
|
|
27669
|
+
}, [dragType, disabled, dragAndDropEnabled, readItems, reorder]);
|
|
27589
27670
|
useIsomorphicLayoutEffect(() => {
|
|
27590
27671
|
const from = flipFrom.current;
|
|
27591
27672
|
flipFrom.current = null;
|
|
@@ -27617,8 +27698,8 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27617
27698
|
[]
|
|
27618
27699
|
);
|
|
27619
27700
|
const context = useMemo24(
|
|
27620
|
-
() => ({ dragType, disabled, reorder, readItems }),
|
|
27621
|
-
[dragType, disabled, reorder, readItems]
|
|
27701
|
+
() => ({ dragType, disabled, dragAndDropEnabled, reorder, readItems }),
|
|
27702
|
+
[dragType, disabled, dragAndDropEnabled, reorder, readItems]
|
|
27622
27703
|
);
|
|
27623
27704
|
return /* @__PURE__ */ jsx239(SortableListContext.Provider, { value: context, children: /* @__PURE__ */ jsxs190("div", { ref: listRef, className, children: [
|
|
27624
27705
|
children,
|
|
@@ -27626,13 +27707,63 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27626
27707
|
] }) });
|
|
27627
27708
|
}
|
|
27628
27709
|
|
|
27710
|
+
// src/components/features/sortable-list/sortable-move-buttons.tsx
|
|
27711
|
+
import { useRef as useRef43 } from "react";
|
|
27712
|
+
import { jsx as jsx240, jsxs as jsxs191 } from "react/jsx-runtime";
|
|
27713
|
+
function SortableMoveButtons({ index, count, label, className }) {
|
|
27714
|
+
const { disabled, reorder } = useSortableListContext();
|
|
27715
|
+
const upRef = useRef43(null);
|
|
27716
|
+
const downRef = useRef43(null);
|
|
27717
|
+
const move = (step) => {
|
|
27718
|
+
const to = index + step;
|
|
27719
|
+
if (to < 0 || to >= count) return;
|
|
27720
|
+
reorder(index, to);
|
|
27721
|
+
requestAnimationFrame(() => {
|
|
27722
|
+
if (step === -1 && to === 0) downRef.current?.focus();
|
|
27723
|
+
if (step === 1 && to === count - 1) upRef.current?.focus();
|
|
27724
|
+
});
|
|
27725
|
+
};
|
|
27726
|
+
const subject = label ?? "item";
|
|
27727
|
+
return /* @__PURE__ */ jsxs191("div", { className: cn("inline-flex shrink-0", className), children: [
|
|
27728
|
+
/* @__PURE__ */ jsx240(
|
|
27729
|
+
Button,
|
|
27730
|
+
{
|
|
27731
|
+
ref: upRef,
|
|
27732
|
+
type: "button",
|
|
27733
|
+
variant: "outline",
|
|
27734
|
+
size: "icon",
|
|
27735
|
+
"aria-label": `Move ${subject} up`,
|
|
27736
|
+
disabled: disabled || index <= 0,
|
|
27737
|
+
onClick: () => move(-1),
|
|
27738
|
+
className: "rounded-r-none border-r-0",
|
|
27739
|
+
children: /* @__PURE__ */ jsx240(Arrow01UpIcon, {})
|
|
27740
|
+
}
|
|
27741
|
+
),
|
|
27742
|
+
/* @__PURE__ */ jsx240(
|
|
27743
|
+
Button,
|
|
27744
|
+
{
|
|
27745
|
+
ref: downRef,
|
|
27746
|
+
type: "button",
|
|
27747
|
+
variant: "outline",
|
|
27748
|
+
size: "icon",
|
|
27749
|
+
"aria-label": `Move ${subject} down`,
|
|
27750
|
+
disabled: disabled || index >= count - 1,
|
|
27751
|
+
onClick: () => move(1),
|
|
27752
|
+
className: "rounded-l-none",
|
|
27753
|
+
children: /* @__PURE__ */ jsx240(Arrow01DownIcon, {})
|
|
27754
|
+
}
|
|
27755
|
+
)
|
|
27756
|
+
] });
|
|
27757
|
+
}
|
|
27758
|
+
|
|
27629
27759
|
// src/components/features/sortable-list/use-sortable-item.ts
|
|
27630
27760
|
import { combine as combine5 } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
27631
27761
|
import { draggable as draggable2 } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
27632
27762
|
import { disableNativeDragPreview } from "@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview";
|
|
27633
27763
|
import { useCallback as useCallback29, useEffect as useEffect43, useState as useState78 } from "react";
|
|
27634
27764
|
function useSortableItem() {
|
|
27635
|
-
const { dragType, disabled, reorder, readItems } = useSortableListContext();
|
|
27765
|
+
const { dragType, disabled, dragAndDropEnabled, reorder, readItems } = useSortableListContext();
|
|
27766
|
+
const inert = disabled || !dragAndDropEnabled;
|
|
27636
27767
|
const [item, setItem] = useState78(null);
|
|
27637
27768
|
const [handle, setHandle] = useState78(null);
|
|
27638
27769
|
const [isDragging, setIsDragging] = useState78(false);
|
|
@@ -27641,7 +27772,7 @@ function useSortableItem() {
|
|
|
27641
27772
|
setItem(node);
|
|
27642
27773
|
}, []);
|
|
27643
27774
|
useEffect43(() => {
|
|
27644
|
-
if (!item || !handle ||
|
|
27775
|
+
if (!item || !handle || inert) return void 0;
|
|
27645
27776
|
return combine5(
|
|
27646
27777
|
// The drag has to start as a "move", or its first frame is drawn with the
|
|
27647
27778
|
// copy cursor — see `drag-effect.ts`.
|
|
@@ -27656,11 +27787,11 @@ function useSortableItem() {
|
|
|
27656
27787
|
onDrop: () => setIsDragging(false)
|
|
27657
27788
|
})
|
|
27658
27789
|
);
|
|
27659
|
-
}, [item, handle,
|
|
27790
|
+
}, [item, handle, inert, dragType]);
|
|
27660
27791
|
const onKeyDown = useCallback29(
|
|
27661
27792
|
(event) => {
|
|
27662
27793
|
const step = event.key === "ArrowUp" ? -1 : event.key === "ArrowDown" ? 1 : 0;
|
|
27663
|
-
if (!step ||
|
|
27794
|
+
if (!step || inert) return;
|
|
27664
27795
|
const items = readItems();
|
|
27665
27796
|
const from = items.indexOf(event.currentTarget.closest(`[${SORTABLE_ITEM_ATTRIBUTE}]`));
|
|
27666
27797
|
const to = from + step;
|
|
@@ -27669,65 +27800,49 @@ function useSortableItem() {
|
|
|
27669
27800
|
reorder(from, to);
|
|
27670
27801
|
requestAnimationFrame(() => handle?.focus());
|
|
27671
27802
|
},
|
|
27672
|
-
[
|
|
27803
|
+
[inert, readItems, reorder, handle]
|
|
27673
27804
|
);
|
|
27674
|
-
return { itemRef, dragHandleProps: { ref: setHandle, onKeyDown }, isDragging };
|
|
27805
|
+
return { itemRef, dragHandleProps: { ref: setHandle, onKeyDown }, isDragging, dragAndDropEnabled };
|
|
27675
27806
|
}
|
|
27676
27807
|
|
|
27677
27808
|
// src/components/features/ticket-status-config-list/ticket-status-config-list.tsx
|
|
27678
|
-
import {
|
|
27679
|
-
DndContext,
|
|
27680
|
-
KeyboardSensor,
|
|
27681
|
-
PointerSensor,
|
|
27682
|
-
closestCenter,
|
|
27683
|
-
useSensor,
|
|
27684
|
-
useSensors
|
|
27685
|
-
} from "@dnd-kit/core";
|
|
27686
|
-
import {
|
|
27687
|
-
SortableContext,
|
|
27688
|
-
sortableKeyboardCoordinates,
|
|
27689
|
-
useSortable,
|
|
27690
|
-
verticalListSortingStrategy
|
|
27691
|
-
} from "@dnd-kit/sortable";
|
|
27692
|
-
import { CSS } from "@dnd-kit/utilities";
|
|
27693
|
-
import { useMemo as useMemo25 } from "react";
|
|
27694
|
-
import { jsx as jsx240 } from "react/jsx-runtime";
|
|
27809
|
+
import { jsx as jsx241 } from "react/jsx-runtime";
|
|
27695
27810
|
function TicketStatusConfigList({
|
|
27696
27811
|
items,
|
|
27697
27812
|
onReorder,
|
|
27698
27813
|
renderRow,
|
|
27814
|
+
getItemLabel,
|
|
27699
27815
|
className
|
|
27700
27816
|
}) {
|
|
27701
|
-
|
|
27702
|
-
|
|
27703
|
-
|
|
27817
|
+
return /* @__PURE__ */ jsx241(
|
|
27818
|
+
SortableList,
|
|
27819
|
+
{
|
|
27820
|
+
onReorder,
|
|
27821
|
+
getItemLabel,
|
|
27822
|
+
className: cn("flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
|
|
27823
|
+
children: items.map((item, index) => /* @__PURE__ */ jsx241(SortableRow, { index, count: items.length, label: getItemLabel?.(index), children: (args) => renderRow(item, args) }, item.id))
|
|
27824
|
+
}
|
|
27825
|
+
);
|
|
27826
|
+
}
|
|
27827
|
+
function SortableRow({
|
|
27828
|
+
index,
|
|
27829
|
+
count,
|
|
27830
|
+
label,
|
|
27831
|
+
children
|
|
27832
|
+
}) {
|
|
27833
|
+
const { itemRef, dragHandleProps, isDragging, dragAndDropEnabled } = useSortableItem();
|
|
27834
|
+
return /* @__PURE__ */ jsx241(
|
|
27835
|
+
"div",
|
|
27836
|
+
{
|
|
27837
|
+
ref: itemRef,
|
|
27838
|
+
className: isDragging ? "relative z-10" : void 0,
|
|
27839
|
+
children: children({
|
|
27840
|
+
dragHandleProps,
|
|
27841
|
+
isDragging,
|
|
27842
|
+
moveButtons: dragAndDropEnabled ? null : /* @__PURE__ */ jsx241(SortableMoveButtons, { index, count, label })
|
|
27843
|
+
})
|
|
27844
|
+
}
|
|
27704
27845
|
);
|
|
27705
|
-
const handleDragEnd = (event) => {
|
|
27706
|
-
const { active, over } = event;
|
|
27707
|
-
if (!over || active.id === over.id) return;
|
|
27708
|
-
const oldIndex = items.findIndex((i) => i.id === active.id);
|
|
27709
|
-
const newIndex = items.findIndex((i) => i.id === over.id);
|
|
27710
|
-
if (oldIndex === -1 || newIndex === -1) return;
|
|
27711
|
-
onReorder(oldIndex, newIndex);
|
|
27712
|
-
};
|
|
27713
|
-
const sortableIds = useMemo25(() => items.map((i) => i.id), [items]);
|
|
27714
|
-
return /* @__PURE__ */ jsx240(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx240(SortableContext, { items: sortableIds, strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx240("div", { className: cn("flex w-full flex-col gap-[var(--spacing-system-xs)]", className), children: items.map((item) => /* @__PURE__ */ jsx240(SortableRow, { id: item.id, children: (args) => renderRow(item, args) }, item.id)) }) }) });
|
|
27715
|
-
}
|
|
27716
|
-
function SortableRow({ id, children }) {
|
|
27717
|
-
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id });
|
|
27718
|
-
const style = {
|
|
27719
|
-
transform: CSS.Transform.toString(transform),
|
|
27720
|
-
transition,
|
|
27721
|
-
// Raise the actively dragged row above its siblings — without this the
|
|
27722
|
-
// stacking follows DOM order, so a row dragged DOWN slides UNDER the rows
|
|
27723
|
-
// below it while a row dragged up correctly renders on top.
|
|
27724
|
-
zIndex: isDragging ? 1 : void 0
|
|
27725
|
-
};
|
|
27726
|
-
return /* @__PURE__ */ jsx240("div", { ref: setNodeRef, style, children: children({
|
|
27727
|
-
dragHandleProps: listeners,
|
|
27728
|
-
dragHandleAttributes: attributes,
|
|
27729
|
-
isDragging
|
|
27730
|
-
}) });
|
|
27731
27846
|
}
|
|
27732
27847
|
|
|
27733
27848
|
export {
|
|
@@ -28217,6 +28332,7 @@ export {
|
|
|
28217
28332
|
groupTicketsByStatus,
|
|
28218
28333
|
SLOT_STICKINESS,
|
|
28219
28334
|
SortableList,
|
|
28335
|
+
SortableMoveButtons,
|
|
28220
28336
|
useSortableItem,
|
|
28221
28337
|
TicketStatusConfigList,
|
|
28222
28338
|
TableHeader,
|
|
@@ -28294,4 +28410,4 @@ export {
|
|
|
28294
28410
|
ReopenTicketRequestModal,
|
|
28295
28411
|
FilterPillRow
|
|
28296
28412
|
};
|
|
28297
|
-
//# sourceMappingURL=chunk-
|
|
28413
|
+
//# sourceMappingURL=chunk-CP5EYMNL.js.map
|