@powerhousedao/design-system 6.0.2-staging.8 → 6.1.0-dev.0
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/{button-DIE3LLBZ.d.ts → button-49Walvwn.d.ts} +1 -1
- package/dist/{button-DIE3LLBZ.d.ts.map → button-49Walvwn.d.ts.map} +1 -1
- package/dist/{character-counter-BZ-4xC7Q.d.ts → character-counter-BcuG4STA.d.ts} +1 -1
- package/dist/{character-counter-BZ-4xC7Q.d.ts.map → character-counter-BcuG4STA.d.ts.map} +1 -1
- package/dist/{checkbox-base-Bh08IVG2.d.ts → checkbox-base-8xXJvAbj.d.ts} +1 -1
- package/dist/{checkbox-base-Bh08IVG2.d.ts.map → checkbox-base-8xXJvAbj.d.ts.map} +1 -1
- package/dist/{checkbox-BgS8z46p.d.ts → checkbox-dqrYEK5V.d.ts} +3 -3
- package/dist/{checkbox-BgS8z46p.d.ts.map → checkbox-dqrYEK5V.d.ts.map} +1 -1
- package/dist/{command-COqe4AfR.d.ts → command-BtOLY735.d.ts} +14 -14
- package/dist/{command-COqe4AfR.d.ts.map → command-BtOLY735.d.ts.map} +1 -1
- package/dist/connect/components/toast/toast.js +1 -1
- package/dist/connect/index.d.ts +345 -41
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +884 -345
- package/dist/connect/index.js.map +1 -1
- package/dist/{content-ZWaCzypo.d.ts → content-OpXUtrTe.d.ts} +2 -2
- package/dist/{content-ZWaCzypo.d.ts.map → content-OpXUtrTe.d.ts.map} +1 -1
- package/dist/{enum-field-7NPFL29j.d.ts → enum-field-BEyFQh8A.d.ts} +4 -4
- package/dist/{enum-field-7NPFL29j.d.ts.map → enum-field-BEyFQh8A.d.ts.map} +1 -1
- package/dist/{form-6Lmx7pU_.d.ts → form-B9JNvrH6.d.ts} +1 -1
- package/dist/{form-6Lmx7pU_.d.ts.map → form-B9JNvrH6.d.ts.map} +1 -1
- package/dist/{form-description-Bsurk7mm.d.ts → form-description-BpST5Ww-.d.ts} +1 -1
- package/dist/{form-description-Bsurk7mm.d.ts.map → form-description-BpST5Ww-.d.ts.map} +1 -1
- package/dist/{form-group-B092xF-f.d.ts → form-group-BauWlFkQ.d.ts} +1 -1
- package/dist/form-group-BauWlFkQ.d.ts.map +1 -0
- package/dist/{form-label-CURXUfpb.d.ts → form-label-Cz_gcj-B.d.ts} +1 -1
- package/dist/{form-label-CURXUfpb.d.ts.map → form-label-Cz_gcj-B.d.ts.map} +1 -1
- package/dist/{form-message-BeAVBzjc.d.ts → form-message-BPqNM4gG.d.ts} +1 -1
- package/dist/{form-message-BeAVBzjc.d.ts.map → form-message-BPqNM4gG.d.ts.map} +1 -1
- package/dist/{form-server-error-message-CbKMtocn.d.ts → form-server-error-message-CzMQQ8ru.d.ts} +1 -1
- package/dist/{form-server-error-message-CbKMtocn.d.ts.map → form-server-error-message-CzMQQ8ru.d.ts.map} +1 -1
- package/dist/{id-autocomplete-input-container-DefHskQg.d.ts → id-autocomplete-input-container-NIuWfCB_.d.ts} +2 -2
- package/dist/{id-autocomplete-input-container-DefHskQg.d.ts.map → id-autocomplete-input-container-NIuWfCB_.d.ts.map} +1 -1
- package/dist/{id-autocomplete-DGTfhFRw.d.ts → id-autocomplete-jkaREmPP.d.ts} +2 -2
- package/dist/{id-autocomplete-DGTfhFRw.d.ts.map → id-autocomplete-jkaREmPP.d.ts.map} +1 -1
- package/dist/{id-autocomplete-list-C5uiH5nJ.d.ts → id-autocomplete-list-Bi2IXdXg.d.ts} +2 -2
- package/dist/{id-autocomplete-list-C5uiH5nJ.d.ts.map → id-autocomplete-list-Bi2IXdXg.d.ts.map} +1 -1
- package/dist/{id-autocomplete-list-option-CyF3v8IB.d.ts → id-autocomplete-list-option-CA9HIqEh.d.ts} +2 -2
- package/dist/{id-autocomplete-list-option-CyF3v8IB.d.ts.map → id-autocomplete-list-option-CA9HIqEh.d.ts.map} +1 -1
- package/dist/{index-DoFR9kRM.d.ts → index-DtPJq-vz.d.ts} +1 -1
- package/dist/{index-DoFR9kRM.d.ts.map → index-DtPJq-vz.d.ts.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/{input-BMf1G8BP.d.ts → input-D11GgWGm.d.ts} +1 -1
- package/dist/{input-BMf1G8BP.d.ts.map → input-D11GgWGm.d.ts.map} +1 -1
- package/dist/{json-viewer-DD7b-PP2.d.ts → json-viewer-vWp8vOvz.d.ts} +1 -1
- package/dist/{json-viewer-DD7b-PP2.d.ts.map → json-viewer-vWp8vOvz.d.ts.map} +1 -1
- package/dist/{message-list-DDi6OrSM.d.ts → message-list-aysvo-xf.d.ts} +2 -2
- package/dist/{message-list-DDi6OrSM.d.ts.map → message-list-aysvo-xf.d.ts.map} +1 -1
- package/dist/{popover-BXlVJZZW.d.ts → popover-glLRVxPS.d.ts} +1 -1
- package/dist/{popover-BXlVJZZW.d.ts.map → popover-glLRVxPS.d.ts.map} +1 -1
- package/dist/{radio-YzIhzpRk.d.ts → radio-DZ4xl9oz.d.ts} +1 -1
- package/dist/{radio-YzIhzpRk.d.ts.map → radio-DZ4xl9oz.d.ts.map} +1 -1
- package/dist/{radio-group-D2NSfihe.d.ts → radio-group-DjJbcDzB.d.ts} +1 -1
- package/dist/{radio-group-D2NSfihe.d.ts.map → radio-group-DjJbcDzB.d.ts.map} +1 -1
- package/dist/{radio-group-field-xAiLWNsq.d.ts → radio-group-field-C8MQjHb7.d.ts} +3 -3
- package/dist/{radio-group-field-xAiLWNsq.d.ts.map → radio-group-field-C8MQjHb7.d.ts.map} +1 -1
- package/dist/{search-autocomplete-CfSjqceY.d.ts → search-autocomplete-OeZbE-VN.d.ts} +2 -2
- package/dist/{search-autocomplete-CfSjqceY.d.ts.map → search-autocomplete-OeZbE-VN.d.ts.map} +1 -1
- package/dist/{select-field-U8KSDxbg.d.ts → select-field-BClhLm83.d.ts} +2 -2
- package/dist/{select-field-U8KSDxbg.d.ts.map → select-field-BClhLm83.d.ts.map} +1 -1
- package/dist/{selected-content-iwV6vmSI.d.ts → selected-content-q33DjCYy.d.ts} +2 -2
- package/dist/{selected-content-iwV6vmSI.d.ts.map → selected-content-q33DjCYy.d.ts.map} +1 -1
- package/dist/{splitted-input-diff-DSME-KaQ.d.ts → splitted-input-diff-Ch6IKdEa.d.ts} +2 -2
- package/dist/{splitted-input-diff-DSME-KaQ.d.ts.map → splitted-input-diff-Ch6IKdEa.d.ts.map} +1 -1
- package/dist/{src-DTHkTkyy.js → src-BgCjYazJ.js} +6 -6
- package/dist/{src-DTHkTkyy.js.map → src-BgCjYazJ.js.map} +1 -1
- package/dist/style.css +309 -200
- package/dist/{text-field-Cxpz1D2u.d.ts → text-field-Cx-EfZP6.d.ts} +3 -3
- package/dist/{text-field-Cxpz1D2u.d.ts.map → text-field-Cx-EfZP6.d.ts.map} +1 -1
- package/dist/{text-input-t0uGOMAO.d.ts → text-input-DUddj4-C.d.ts} +3 -3
- package/dist/{text-input-t0uGOMAO.d.ts.map → text-input-DUddj4-C.d.ts.map} +1 -1
- package/dist/{text-input-diff-bO84di00.d.ts → text-input-diff-4i2zuulO.d.ts} +2 -2
- package/dist/{text-input-diff-bO84di00.d.ts.map → text-input-diff-4i2zuulO.d.ts.map} +1 -1
- package/dist/{tooltip-Db1dLIxg.d.ts → tooltip-Cf5jSzdt.d.ts} +1 -1
- package/dist/{tooltip-Db1dLIxg.d.ts.map → tooltip-Cf5jSzdt.d.ts.map} +1 -1
- package/dist/{types-BDeBOEOj.d.ts → types-9JRQnd7a.d.ts} +1 -1
- package/dist/{types-BDeBOEOj.d.ts.map → types-9JRQnd7a.d.ts.map} +1 -1
- package/dist/{types-BzoMu6VB.d.ts → types-BfmDXMrz.d.ts} +1 -1
- package/dist/{types-BzoMu6VB.d.ts.map → types-BfmDXMrz.d.ts.map} +1 -1
- package/dist/{types-BLss8ZBX.d.ts → types-tThrTH_c.d.ts} +1 -1
- package/dist/{types-BLss8ZBX.d.ts.map → types-tThrTH_c.d.ts.map} +1 -1
- package/dist/ui/components/button/button.d.ts +1 -1
- package/dist/ui/components/button/button.js +4 -4
- package/dist/ui/components/button/button.js.map +1 -1
- package/dist/ui/components/character-counter/character-counter.d.ts +1 -1
- package/dist/ui/components/character-counter/character-counter.js +3 -3
- package/dist/ui/components/character-counter/character-counter.js.map +1 -1
- package/dist/ui/components/checkbox/checkbox-base.d.ts +1 -1
- package/dist/ui/components/checkbox/checkbox-base.js +2 -2
- package/dist/ui/components/checkbox/checkbox-base.js.map +1 -1
- package/dist/ui/components/checkbox/checkbox.d.ts +1 -1
- package/dist/ui/components/checkbox/checkbox.js +1 -1
- package/dist/ui/components/command/command.d.ts +1 -1
- package/dist/ui/components/command/command.js +7 -7
- package/dist/ui/components/command/command.js.map +1 -1
- package/dist/ui/components/enum-field/enum-field.d.ts +1 -1
- package/dist/ui/components/enum-field/types.d.ts +1 -1
- package/dist/ui/components/form/form.d.ts +1 -1
- package/dist/ui/components/form-description/form-description.d.ts +1 -1
- package/dist/ui/components/form-description/form-description.js +2 -2
- package/dist/ui/components/form-description/form-description.js.map +1 -1
- package/dist/ui/components/form-group/form-group.d.ts +1 -1
- package/dist/ui/components/form-label/form-label.d.ts +1 -1
- package/dist/ui/components/form-label/form-label.js +3 -3
- package/dist/ui/components/form-label/form-label.js.map +1 -1
- package/dist/ui/components/form-message/form-message.d.ts +1 -1
- package/dist/ui/components/form-message/form-message.js +1 -1
- package/dist/ui/components/form-message/form-server-error-message.d.ts +1 -1
- package/dist/ui/components/form-message/message-list.d.ts +1 -1
- package/dist/ui/components/form-message/message-list.js +2 -2
- package/dist/ui/components/form-message/message-list.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js +2 -2
- package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js +9 -9
- package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js.map +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete-list.js +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/id-autocomplete.js +2 -2
- package/dist/ui/components/id-autocomplete/id-autocomplete.js.map +1 -1
- package/dist/ui/components/id-autocomplete/types.d.ts +1 -1
- package/dist/ui/components/id-autocomplete/use-id-autocomplete.d.ts +1 -1
- package/dist/ui/components/index.d.ts +36 -36
- package/dist/ui/components/input/input.d.ts +1 -1
- package/dist/ui/components/input/input.js +1 -1
- package/dist/ui/components/input/input.js.map +1 -1
- package/dist/ui/components/input/splitted-input-diff.d.ts +1 -1
- package/dist/ui/components/input/splitted-input-diff.js +2 -2
- package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
- package/dist/ui/components/input/subcomponent/input-diff.js +2 -2
- package/dist/ui/components/input/subcomponent/input-diff.js.map +1 -1
- package/dist/ui/components/input/subcomponent/text-diff.d.ts +1 -1
- package/dist/ui/components/input/subcomponent/text-diff.js +1 -1
- package/dist/ui/components/json-viewer/json-viewer.d.ts +1 -1
- package/dist/ui/components/popover/popover.d.ts +1 -1
- package/dist/ui/components/popover/popover.js +3 -3
- package/dist/ui/components/popover/popover.js.map +1 -1
- package/dist/ui/components/radio-group-field/radio-group-field.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio-group-field.js +1 -1
- package/dist/ui/components/radio-group-field/radio-group.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio.d.ts +1 -1
- package/dist/ui/components/radio-group-field/radio.js +2 -2
- package/dist/ui/components/radio-group-field/radio.js.map +1 -1
- package/dist/ui/components/search-autocomplete/index.d.ts +3 -3
- package/dist/ui/components/search-autocomplete/search-autocomplete.d.ts +1 -1
- package/dist/ui/components/search-autocomplete/search-autocomplete.js +1 -1
- package/dist/ui/components/search-autocomplete/types.d.ts +1 -1
- package/dist/ui/components/search-autocomplete/use-search-autocomplete.d.ts +1 -1
- package/dist/ui/components/select-field/content.d.ts +1 -1
- package/dist/ui/components/select-field/content.js +3 -3
- package/dist/ui/components/select-field/content.js.map +1 -1
- package/dist/ui/components/select-field/select-field.d.ts +1 -1
- package/dist/ui/components/select-field/select-field.js +2 -2
- package/dist/ui/components/select-field/select-field.js.map +1 -1
- package/dist/ui/components/select-field/selected-content.d.ts +1 -1
- package/dist/ui/components/select-field/selected-content.js +4 -4
- package/dist/ui/components/select-field/selected-content.js.map +1 -1
- package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts +1 -1
- package/dist/ui/components/select-field/subcomponents/CommandItemList.js +4 -4
- package/dist/ui/components/select-field/subcomponents/CommandItemList.js.map +1 -1
- package/dist/ui/components/select-field/use-select-field.d.ts +1 -1
- package/dist/ui/components/text-field/text-field.d.ts +1 -1
- package/dist/ui/components/text-input/text-input-diff.d.ts +1 -1
- package/dist/ui/components/text-input/text-input.d.ts +1 -1
- package/dist/ui/components/text-input/text-input.js +1 -1
- package/dist/ui/components/text-input/types.d.ts +1 -1
- package/dist/ui/components/tooltip/tooltip.d.ts +1 -1
- package/dist/ui/components/tooltip/tooltip.js +2 -2
- package/dist/ui/components/tooltip/tooltip.js.map +1 -1
- package/dist/ui/components/types.d.ts +1 -1
- package/dist/ui/components/value-transformer/value-transformer.d.ts +1 -1
- package/dist/ui/components/with-field-validation/with-field-validation.d.ts +1 -1
- package/dist/ui/components/with-field-validation/with-field-validation.js +5 -10
- package/dist/ui/components/with-field-validation/with-field-validation.js.map +1 -1
- package/dist/ui/index.d.ts +38 -38
- package/dist/ui/lib/date-picker.d.ts +1 -1
- package/dist/ui/lib/shared-value-transformers.d.ts +1 -1
- package/dist/ui/lib/types.d.ts +1 -1
- package/dist/ui/types.d.ts +2 -2
- package/dist/{use-id-autocomplete-BRzpIF4U.d.ts → use-id-autocomplete-BPHVmVE8.d.ts} +2 -2
- package/dist/{use-id-autocomplete-BRzpIF4U.d.ts.map → use-id-autocomplete-BPHVmVE8.d.ts.map} +1 -1
- package/dist/{use-search-autocomplete-ZLxfAC6X.d.ts → use-search-autocomplete-Xf7shCtk.d.ts} +2 -2
- package/dist/{use-search-autocomplete-ZLxfAC6X.d.ts.map → use-search-autocomplete-Xf7shCtk.d.ts.map} +1 -1
- package/dist/{value-transformer-MGhQTCdM.d.ts → value-transformer-DCiU65Qa.d.ts} +2 -2
- package/dist/{value-transformer-MGhQTCdM.d.ts.map → value-transformer-DCiU65Qa.d.ts.map} +1 -1
- package/dist/{with-field-validation-DWMigXJz.d.ts → with-field-validation-vt0l1Sp7.d.ts} +2 -2
- package/dist/{with-field-validation-DWMigXJz.d.ts.map → with-field-validation-vt0l1Sp7.d.ts.map} +1 -1
- package/package.json +11 -5
- package/theme.css +2 -2
- package/dist/document-timeline-BTTeXWMa.js +0 -288
- package/dist/document-timeline-BTTeXWMa.js.map +0 -1
- package/dist/form-group-B092xF-f.d.ts.map +0 -1
- /package/dist/{index-BN8Gwmlj.d.ts → index-CWsYGvaO.d.ts} +0 -0
- /package/dist/{index-Dw5cCt-A.d.ts → index-uQcTfU6c.d.ts} +0 -0
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import { h as Icon } from "./src-DTHkTkyy.js";
|
|
2
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { twMerge } from "tailwind-merge";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
import { Content, Portal, Provider, Root, Trigger } from "@radix-ui/react-tooltip";
|
|
6
|
-
import { format, formatDistanceToNow, parseISO } from "date-fns";
|
|
7
|
-
//#region \0rolldown/runtime.js
|
|
8
|
-
var __defProp = Object.defineProperty;
|
|
9
|
-
var __exportAll = (all, no_symbols) => {
|
|
10
|
-
let target = {};
|
|
11
|
-
for (var name in all) __defProp(target, name, {
|
|
12
|
-
get: all[name],
|
|
13
|
-
enumerable: true
|
|
14
|
-
});
|
|
15
|
-
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
16
|
-
return target;
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region src/connect/components/tooltip/tooltip.tsx
|
|
20
|
-
function ConnectTooltip(props) {
|
|
21
|
-
const { children, content, open, defaultOpen, onOpenChange, className, side = "top", sideOffset = 5, delayDuration, ...rest } = props;
|
|
22
|
-
return /* @__PURE__ */ jsxs(Root, {
|
|
23
|
-
defaultOpen,
|
|
24
|
-
delayDuration,
|
|
25
|
-
onOpenChange,
|
|
26
|
-
open,
|
|
27
|
-
children: [/* @__PURE__ */ jsx(Trigger, {
|
|
28
|
-
asChild: true,
|
|
29
|
-
children
|
|
30
|
-
}), /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Content, {
|
|
31
|
-
...rest,
|
|
32
|
-
side,
|
|
33
|
-
sideOffset,
|
|
34
|
-
className: twMerge("shadow-tooltip z-50 rounded-lg border border-gray-200 bg-white p-2 text-xs", className),
|
|
35
|
-
children: content
|
|
36
|
-
}) })]
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
const ConnectTooltipProvider = Provider;
|
|
40
|
-
//#endregion
|
|
41
|
-
//#region src/connect/components/document-timeline/components/h-divider.tsx
|
|
42
|
-
const HDivider = (props) => {
|
|
43
|
-
const { className, timestampUtcMs: timestamp, title, subtitle, onClick, isSelected = false } = props;
|
|
44
|
-
const [open, setOpen] = useState(false);
|
|
45
|
-
const hasContent = !!title || !!subtitle || !!timestamp;
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (open) {
|
|
48
|
-
setOpen(false);
|
|
49
|
-
setTimeout(() => hasContent && setOpen(true), 50);
|
|
50
|
-
}
|
|
51
|
-
}, [
|
|
52
|
-
title,
|
|
53
|
-
subtitle,
|
|
54
|
-
timestamp,
|
|
55
|
-
hasContent
|
|
56
|
-
]);
|
|
57
|
-
const formatTimestamp = (isoString) => {
|
|
58
|
-
if (!isoString) return "";
|
|
59
|
-
try {
|
|
60
|
-
return formatDistanceToNow(new Date(isoString), { addSuffix: true });
|
|
61
|
-
} catch {
|
|
62
|
-
return isoString;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
const tooltipContent = /* @__PURE__ */ jsxs("div", {
|
|
66
|
-
className: "flex flex-col text-xs",
|
|
67
|
-
children: [
|
|
68
|
-
!!title && /* @__PURE__ */ jsx("div", { children: title }),
|
|
69
|
-
!!subtitle && /* @__PURE__ */ jsx("div", {
|
|
70
|
-
className: "text-gray-300",
|
|
71
|
-
children: subtitle
|
|
72
|
-
}),
|
|
73
|
-
!!timestamp && /* @__PURE__ */ jsx("div", { children: formatTimestamp(timestamp) })
|
|
74
|
-
]
|
|
75
|
-
});
|
|
76
|
-
const handleMouseEnter = () => {
|
|
77
|
-
if (hasContent) setOpen(true);
|
|
78
|
-
};
|
|
79
|
-
const handleMouseLeave = () => {
|
|
80
|
-
setOpen(false);
|
|
81
|
-
};
|
|
82
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
83
|
-
className: "relative",
|
|
84
|
-
onMouseEnter: handleMouseEnter,
|
|
85
|
-
onMouseLeave: handleMouseLeave,
|
|
86
|
-
children: [isSelected && /* @__PURE__ */ jsx(Icon, {
|
|
87
|
-
name: "TimelineCaret",
|
|
88
|
-
color: "#4EA9FF",
|
|
89
|
-
size: 10,
|
|
90
|
-
className: "absolute top-[-11px] z-40"
|
|
91
|
-
}), /* @__PURE__ */ jsx(ConnectTooltip, {
|
|
92
|
-
className: "rounded-md bg-gray-900 text-white",
|
|
93
|
-
content: tooltipContent,
|
|
94
|
-
open: open && hasContent,
|
|
95
|
-
onOpenChange: setOpen,
|
|
96
|
-
delayDuration: 0,
|
|
97
|
-
side: "bottom",
|
|
98
|
-
sideOffset: 5,
|
|
99
|
-
children: /* @__PURE__ */ jsx("div", {
|
|
100
|
-
className: twMerge("mx-0.5 flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300", isSelected && "bg-blue-300", className),
|
|
101
|
-
onClick,
|
|
102
|
-
"data-title": title,
|
|
103
|
-
"data-subtitle": subtitle,
|
|
104
|
-
"data-timestamp": timestamp,
|
|
105
|
-
children: /* @__PURE__ */ jsx("div", { className: "h-0.5 w-1 rounded-full bg-gray-500" })
|
|
106
|
-
})
|
|
107
|
-
})]
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
//#endregion
|
|
111
|
-
//#region src/connect/components/document-timeline/components/timeline-bar.tsx
|
|
112
|
-
const getBarHeight = (size = 0) => {
|
|
113
|
-
switch (true) {
|
|
114
|
-
case size <= 0: return "h-[1px]";
|
|
115
|
-
case size === 1: return "h-[3px]";
|
|
116
|
-
case size === 2: return "h-[6px]";
|
|
117
|
-
case size === 3: return "h-[9px]";
|
|
118
|
-
case size >= 4: return "h-[12px]";
|
|
119
|
-
default: return "h-[1px]";
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
const formatTimestamp = (isoString) => {
|
|
123
|
-
if (!isoString) return "";
|
|
124
|
-
try {
|
|
125
|
-
return format(parseISO(isoString), "HH:mm, dd, MMMM");
|
|
126
|
-
} catch {
|
|
127
|
-
return isoString;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
const TimelineBar = ({ onClick, className, timestampUtcMs: timestamp, additions, deletions, addSize = 0, delSize = 0, isSelected = false }) => {
|
|
131
|
-
const [open, setOpen] = useState(false);
|
|
132
|
-
const noChanges = addSize === 0 && delSize === 0;
|
|
133
|
-
const addBarHeight = getBarHeight(addSize);
|
|
134
|
-
const delBarHeight = getBarHeight(delSize);
|
|
135
|
-
const tooltipContent = /* @__PURE__ */ jsxs("div", {
|
|
136
|
-
className: "flex flex-col text-xs",
|
|
137
|
-
children: [
|
|
138
|
-
/* @__PURE__ */ jsx("div", { children: formatTimestamp(timestamp) }),
|
|
139
|
-
/* @__PURE__ */ jsx("div", {
|
|
140
|
-
className: "text-green-900",
|
|
141
|
-
children: `${additions} additions +`
|
|
142
|
-
}),
|
|
143
|
-
/* @__PURE__ */ jsx("div", {
|
|
144
|
-
className: "text-red-700",
|
|
145
|
-
children: `${deletions} deletions -`
|
|
146
|
-
})
|
|
147
|
-
]
|
|
148
|
-
});
|
|
149
|
-
const handleMouseEnter = () => {
|
|
150
|
-
if (!noChanges) setOpen(true);
|
|
151
|
-
};
|
|
152
|
-
const handleMouseLeave = () => {
|
|
153
|
-
setOpen(false);
|
|
154
|
-
};
|
|
155
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
156
|
-
className: "relative",
|
|
157
|
-
onMouseEnter: handleMouseEnter,
|
|
158
|
-
onMouseLeave: handleMouseLeave,
|
|
159
|
-
children: [isSelected && /* @__PURE__ */ jsx(Icon, {
|
|
160
|
-
name: "TimelineCaret",
|
|
161
|
-
color: "#4EA9FF",
|
|
162
|
-
size: 10,
|
|
163
|
-
className: "absolute left-[-2px] top-[-11px] z-40"
|
|
164
|
-
}), noChanges ? /* @__PURE__ */ jsx("div", {
|
|
165
|
-
className: twMerge("flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300", className),
|
|
166
|
-
"data-timestamp": timestamp,
|
|
167
|
-
onClick,
|
|
168
|
-
children: /* @__PURE__ */ jsx("div", { className: "size-[3px] rounded-full bg-gray-500" })
|
|
169
|
-
}) : /* @__PURE__ */ jsx(ConnectTooltip, {
|
|
170
|
-
className: "rounded-md bg-gray-900 text-white",
|
|
171
|
-
content: tooltipContent,
|
|
172
|
-
open,
|
|
173
|
-
onOpenChange: setOpen,
|
|
174
|
-
delayDuration: 0,
|
|
175
|
-
side: "bottom",
|
|
176
|
-
sideOffset: 5,
|
|
177
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
178
|
-
className: twMerge("flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300", className, isSelected && "bg-blue-300"),
|
|
179
|
-
"data-timestamp": timestamp,
|
|
180
|
-
onClick,
|
|
181
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
182
|
-
className: "flex h-3 w-0.5 items-end",
|
|
183
|
-
children: /* @__PURE__ */ jsx("div", { className: twMerge("h-3 w-0.5 rounded-t-full bg-green-600", addBarHeight) })
|
|
184
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
185
|
-
className: "flex h-3 w-0.5 items-start",
|
|
186
|
-
children: /* @__PURE__ */ jsx("div", { className: twMerge("h-3 w-0.5 rounded-b-full bg-red-600", delBarHeight) })
|
|
187
|
-
})]
|
|
188
|
-
})
|
|
189
|
-
})]
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
//#endregion
|
|
193
|
-
//#region src/connect/components/document-timeline/document-timeline.tsx
|
|
194
|
-
var document_timeline_exports = /* @__PURE__ */ __exportAll({ DocumentTimeline: () => DocumentTimeline });
|
|
195
|
-
const defaultTimeLineItem = {
|
|
196
|
-
id: "default",
|
|
197
|
-
type: "bar",
|
|
198
|
-
addSize: 0,
|
|
199
|
-
delSize: 0
|
|
200
|
-
};
|
|
201
|
-
const DocumentTimeline = (props) => {
|
|
202
|
-
const { timeline = [], onItemClick } = props;
|
|
203
|
-
const [selectedItem, setSelectedItem] = useState(null);
|
|
204
|
-
const scrollContainerRef = useRef(null);
|
|
205
|
-
const handleClick = (item) => {
|
|
206
|
-
if (item.id === selectedItem || item.id === defaultTimeLineItem.id) {
|
|
207
|
-
onItemClick?.(null);
|
|
208
|
-
setSelectedItem(null);
|
|
209
|
-
} else {
|
|
210
|
-
onItemClick?.(item);
|
|
211
|
-
setSelectedItem(item.id);
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
const mergedTimelineItems = [...timeline, defaultTimeLineItem];
|
|
215
|
-
const [unselectedItems, selectedItems] = useMemo(() => {
|
|
216
|
-
const indexSelected = mergedTimelineItems.findIndex((item) => item.id === selectedItem);
|
|
217
|
-
return indexSelected === -1 ? [mergedTimelineItems, []] : [mergedTimelineItems.slice(0, indexSelected), mergedTimelineItems.slice(indexSelected)];
|
|
218
|
-
}, [mergedTimelineItems, selectedItem]);
|
|
219
|
-
const renderTimelineItems = useCallback((items) => {
|
|
220
|
-
return items.map((item) => {
|
|
221
|
-
if (item.type === "divider") {
|
|
222
|
-
const { timestampUtcMs, title, subtitle } = item;
|
|
223
|
-
return /* @__PURE__ */ jsx(HDivider, {
|
|
224
|
-
timestampUtcMs,
|
|
225
|
-
title,
|
|
226
|
-
subtitle,
|
|
227
|
-
onClick: () => handleClick(item),
|
|
228
|
-
isSelected: item.id === selectedItem
|
|
229
|
-
}, item.id);
|
|
230
|
-
}
|
|
231
|
-
return /* @__PURE__ */ jsx(TimelineBar, {
|
|
232
|
-
timestampUtcMs: item.timestampUtcMs,
|
|
233
|
-
addSize: item.addSize,
|
|
234
|
-
delSize: item.delSize,
|
|
235
|
-
additions: item.additions,
|
|
236
|
-
deletions: item.deletions,
|
|
237
|
-
isSelected: item.id === selectedItem,
|
|
238
|
-
onClick: () => handleClick(item)
|
|
239
|
-
}, item.id);
|
|
240
|
-
});
|
|
241
|
-
}, [handleClick, selectedItem]);
|
|
242
|
-
const unselectedContent = useMemo(() => renderTimelineItems(unselectedItems), [unselectedItems, renderTimelineItems]);
|
|
243
|
-
const selectedContent = useMemo(() => renderTimelineItems(selectedItems), [selectedItems, renderTimelineItems]);
|
|
244
|
-
useEffect(() => {
|
|
245
|
-
if (scrollContainerRef.current) scrollContainerRef.current.scrollLeft = scrollContainerRef.current.scrollWidth;
|
|
246
|
-
}, []);
|
|
247
|
-
return /* @__PURE__ */ jsx(ConnectTooltipProvider, {
|
|
248
|
-
delayDuration: 0,
|
|
249
|
-
skipDelayDuration: 0,
|
|
250
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
251
|
-
className: "relative h-[36px] w-full",
|
|
252
|
-
children: [
|
|
253
|
-
/* @__PURE__ */ jsx("div", {
|
|
254
|
-
className: "absolute left-[0px] z-[20] h-[17px] w-[6px] bg-white",
|
|
255
|
-
children: /* @__PURE__ */ jsx("div", { className: "mt-[11px] h-[6px] w-[6px] rounded-tl-md bg-slate-50" })
|
|
256
|
-
}),
|
|
257
|
-
/* @__PURE__ */ jsx("div", {
|
|
258
|
-
className: "absolute right-[0px] top-[11px] z-[20] h-[6px] w-[6px] bg-white",
|
|
259
|
-
children: /* @__PURE__ */ jsx("div", { className: "h-[6px] w-[6px] rounded-tr-md bg-slate-50" })
|
|
260
|
-
}),
|
|
261
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 bottom-0 h-[25px] rounded-md bg-slate-50" }),
|
|
262
|
-
/* @__PURE__ */ jsx("div", {
|
|
263
|
-
className: "absolute inset-x-0 bottom-0 h-[36px]",
|
|
264
|
-
children: /* @__PURE__ */ jsx("div", {
|
|
265
|
-
ref: scrollContainerRef,
|
|
266
|
-
className: "h-full overflow-x-auto rounded-md",
|
|
267
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
268
|
-
className: "ml-auto flex h-[36px] w-max items-end px-2 pb-0",
|
|
269
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
270
|
-
className: "flex",
|
|
271
|
-
children: unselectedContent
|
|
272
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
273
|
-
className: "flex rounded-sm bg-blue-200",
|
|
274
|
-
children: selectedContent
|
|
275
|
-
})]
|
|
276
|
-
})
|
|
277
|
-
})
|
|
278
|
-
}),
|
|
279
|
-
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute bottom-0 left-0 z-10 h-[25px] w-2 rounded-l-md bg-slate-50" }),
|
|
280
|
-
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute bottom-0 right-0 z-10 h-[25px] w-2 rounded-r-md bg-slate-50" })
|
|
281
|
-
]
|
|
282
|
-
})
|
|
283
|
-
});
|
|
284
|
-
};
|
|
285
|
-
//#endregion
|
|
286
|
-
export { ConnectTooltipProvider as i, document_timeline_exports as n, ConnectTooltip as r, DocumentTimeline as t };
|
|
287
|
-
|
|
288
|
-
//# sourceMappingURL=document-timeline-BTTeXWMa.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-timeline-BTTeXWMa.js","names":["Content","Portal","Provider","Root","Trigger","twMerge","ConnectTooltip","props","children","content","open","defaultOpen","onOpenChange","className","side","sideOffset","delayDuration","rest","ConnectTooltipProvider","Icon","formatDistanceToNow","useEffect","useState","twMerge","ConnectTooltip","HDivider","props","className","timestampUtcMs","timestamp","title","subtitle","onClick","isSelected","open","setOpen","hasContent","setTimeout","formatTimestamp","isoString","Date","addSuffix","tooltipContent","handleMouseEnter","handleMouseLeave","Icon","format","parseISO","useState","twMerge","ConnectTooltip","getBarHeight","size","formatTimestamp","isoString","date","TimelineBar","onClick","className","timestampUtcMs","timestamp","additions","deletions","addSize","delSize","isSelected","open","setOpen","noChanges","addBarHeight","delBarHeight","tooltipContent","handleMouseEnter","handleMouseLeave","useCallback","useEffect","useMemo","useRef","useState","ConnectTooltipProvider","HDivider","TimelineBar","defaultTimeLineItem","id","type","addSize","delSize","DocumentTimeline","props","timeline","onItemClick","selectedItem","setSelectedItem","scrollContainerRef","handleClick","item","mergedTimelineItems","unselectedItems","selectedItems","indexSelected","findIndex","slice","renderTimelineItems","items","map","timestampUtcMs","title","subtitle","additions","deletions","unselectedContent","selectedContent","current","scrollLeft","scrollWidth"],"sources":["../src/connect/components/tooltip/tooltip.tsx","../src/connect/components/document-timeline/components/h-divider.tsx","../src/connect/components/document-timeline/components/timeline-bar.tsx","../src/connect/components/document-timeline/document-timeline.tsx"],"sourcesContent":["import type { TooltipProps } from \"@radix-ui/react-tooltip\";\nimport {\n Content,\n Portal,\n Provider,\n Root,\n Trigger,\n} from \"@radix-ui/react-tooltip\";\nimport type { ReactNode } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Props = TooltipProps & {\n readonly className?: string;\n readonly content: ReactNode;\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n readonly sideOffset?: number;\n};\n\nexport function ConnectTooltip(props: Props) {\n const {\n children,\n content,\n open,\n defaultOpen,\n onOpenChange,\n className,\n side = \"top\",\n sideOffset = 5,\n delayDuration,\n ...rest\n } = props;\n\n return (\n <Root\n defaultOpen={defaultOpen}\n delayDuration={delayDuration}\n onOpenChange={onOpenChange}\n open={open}\n >\n <Trigger asChild>{children}</Trigger>\n <Portal>\n <Content\n {...rest}\n side={side}\n sideOffset={sideOffset}\n className={twMerge(\n \"shadow-tooltip z-50 rounded-lg border border-gray-200 bg-white p-2 text-xs\",\n className,\n )}\n >\n {content}\n </Content>\n </Portal>\n </Root>\n );\n}\n\nexport const ConnectTooltipProvider = Provider;\n","import { Icon } from \"#design-system\";\nimport { formatDistanceToNow } from \"date-fns\";\nimport { useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ConnectTooltip } from \"../../tooltip/tooltip.js\";\n\nexport interface HDividerProps {\n className?: string;\n timestampUtcMs?: string;\n title?: string;\n subtitle?: string;\n onClick?: () => void;\n isSelected?: boolean;\n}\n\nexport const HDivider = (props: HDividerProps) => {\n const {\n className,\n timestampUtcMs: timestamp,\n title,\n subtitle,\n onClick,\n isSelected = false,\n } = props;\n const [open, setOpen] = useState<boolean>(false);\n const hasContent = !!title || !!subtitle || !!timestamp;\n\n // Force update tooltips when props change\n useEffect(() => {\n // Force close and re-open if already open to refresh content\n if (open) {\n setOpen(false);\n setTimeout(() => hasContent && setOpen(true), 50);\n }\n }, [title, subtitle, timestamp, hasContent]);\n\n const formatTimestamp = (isoString?: string) => {\n if (!isoString) return \"\";\n try {\n return formatDistanceToNow(new Date(isoString), { addSuffix: true });\n } catch {\n return isoString;\n }\n };\n\n const tooltipContent = (\n <div className=\"flex flex-col text-xs\">\n {!!title && <div>{title}</div>}\n {!!subtitle && <div className=\"text-gray-300\">{subtitle}</div>}\n {!!timestamp && <div>{formatTimestamp(timestamp)}</div>}\n </div>\n );\n\n const handleMouseEnter = () => {\n if (hasContent) {\n setOpen(true);\n }\n };\n\n const handleMouseLeave = () => {\n setOpen(false);\n };\n\n return (\n <div\n className=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {isSelected && (\n <Icon\n name=\"TimelineCaret\"\n color=\"#4EA9FF\"\n size={10}\n className=\"absolute top-[-11px] z-40\"\n />\n )}\n <ConnectTooltip\n className=\"rounded-md bg-gray-900 text-white\"\n content={tooltipContent}\n open={open && hasContent}\n onOpenChange={setOpen}\n delayDuration={0}\n side=\"bottom\"\n sideOffset={5}\n >\n <div\n className={twMerge(\n \"mx-0.5 flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300\",\n isSelected && \"bg-blue-300\",\n className,\n )}\n onClick={onClick}\n data-title={title}\n data-subtitle={subtitle}\n data-timestamp={timestamp}\n >\n <div className=\"h-0.5 w-1 rounded-full bg-gray-500\" />\n </div>\n </ConnectTooltip>\n </div>\n );\n};\n","import { Icon } from \"#design-system\";\nimport type { TimelineBarItem } from \"@powerhousedao/reactor-browser\";\nimport { format, parseISO } from \"date-fns\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ConnectTooltip } from \"../../tooltip/tooltip.js\";\n\nexport interface TimelineBarProps extends Omit<\n TimelineBarItem,\n \"id\" | \"type\" | \"revision\" | \"startDate\" | \"endDate\"\n> {\n readonly className?: string;\n onClick?: () => void;\n isSelected?: boolean;\n}\n\nconst getBarHeight = (size = 0) => {\n switch (true) {\n case size <= 0:\n return \"h-[1px]\";\n case size === 1:\n return \"h-[3px]\";\n case size === 2:\n return \"h-[6px]\";\n case size === 3:\n return \"h-[9px]\";\n case size >= 4:\n return \"h-[12px]\";\n default:\n return \"h-[1px]\";\n }\n};\n\nconst formatTimestamp = (isoString?: string) => {\n if (!isoString) return \"\";\n try {\n const date = parseISO(isoString);\n return format(date, \"HH:mm, dd, MMMM\");\n } catch {\n return isoString;\n }\n};\n\nexport const TimelineBar: React.FC<TimelineBarProps> = ({\n onClick,\n className,\n timestampUtcMs: timestamp,\n additions,\n deletions,\n addSize = 0,\n delSize = 0,\n isSelected = false,\n}) => {\n const [open, setOpen] = useState<boolean>(false);\n const noChanges = addSize === 0 && delSize === 0;\n\n const addBarHeight = getBarHeight(addSize);\n const delBarHeight = getBarHeight(delSize);\n\n const tooltipContent = (\n <div className=\"flex flex-col text-xs\">\n <div>{formatTimestamp(timestamp)}</div>\n <div className=\"text-green-900\">{`${additions} additions +`}</div>\n <div className=\"text-red-700\">{`${deletions} deletions -`}</div>\n </div>\n );\n\n const handleMouseEnter = () => {\n if (!noChanges) {\n setOpen(true);\n }\n };\n\n const handleMouseLeave = () => {\n setOpen(false);\n };\n\n return (\n <div\n className=\"relative\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {isSelected && (\n <Icon\n name=\"TimelineCaret\"\n color=\"#4EA9FF\"\n size={10}\n className=\"absolute left-[-2px] top-[-11px] z-40\"\n />\n )}\n {noChanges ? (\n <div\n className={twMerge(\n \"flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300\",\n className,\n )}\n data-timestamp={timestamp}\n onClick={onClick}\n >\n <div className=\"size-[3px] rounded-full bg-gray-500\" />\n </div>\n ) : (\n <ConnectTooltip\n className=\"rounded-md bg-gray-900 text-white\"\n content={tooltipContent}\n open={open}\n onOpenChange={setOpen}\n delayDuration={0}\n side=\"bottom\"\n sideOffset={5}\n >\n <div\n className={twMerge(\n \"flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300\",\n className,\n isSelected && \"bg-blue-300\",\n )}\n data-timestamp={timestamp}\n onClick={onClick}\n >\n <div className=\"flex h-3 w-0.5 items-end\">\n <div\n className={twMerge(\n \"h-3 w-0.5 rounded-t-full bg-green-600\",\n addBarHeight,\n )}\n ></div>\n </div>\n <div className=\"flex h-3 w-0.5 items-start\">\n <div\n className={twMerge(\n \"h-3 w-0.5 rounded-b-full bg-red-600\",\n delBarHeight,\n )}\n ></div>\n </div>\n </div>\n </ConnectTooltip>\n )}\n </div>\n );\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { ConnectTooltipProvider } from \"../tooltip/tooltip.js\";\nimport { HDivider } from \"./components/h-divider.js\";\nimport { TimelineBar } from \"./components/timeline-bar.js\";\n\nexport type TimelineBarItem = {\n id: string;\n type: \"bar\";\n addSize?: 0 | 1 | 2 | 3 | 4;\n delSize?: 0 | 1 | 2 | 3 | 4;\n timestampUtcMs?: string;\n additions?: number;\n deletions?: number;\n revision?: number;\n startDate?: Date;\n endDate?: Date;\n};\n\nexport type TimelineDividerItem = {\n id: string;\n type: \"divider\";\n timestampUtcMs?: string;\n title?: string;\n subtitle?: string;\n revision?: number;\n startDate?: Date;\n endDate?: Date;\n};\n\nexport type TimelineItem = TimelineBarItem | TimelineDividerItem;\n\nexport interface DocumentTimelineProps {\n onItemClick?: (item: TimelineItem | null) => void;\n timeline?: Array<TimelineItem>;\n}\n\nconst defaultTimeLineItem: TimelineBarItem = {\n id: \"default\",\n type: \"bar\",\n addSize: 0,\n delSize: 0,\n};\n\nexport const DocumentTimeline = (props: DocumentTimelineProps) => {\n const { timeline = [], onItemClick } = props;\n const [selectedItem, setSelectedItem] = useState<null | string>(null);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const handleClick = (item: TimelineItem) => {\n if (item.id === selectedItem || item.id === defaultTimeLineItem.id) {\n onItemClick?.(null);\n setSelectedItem(null);\n } else {\n onItemClick?.(item);\n setSelectedItem(item.id);\n }\n };\n\n const mergedTimelineItems = [...timeline, defaultTimeLineItem];\n const [unselectedItems, selectedItems] = useMemo(() => {\n const indexSelected = mergedTimelineItems.findIndex(\n (item) => item.id === selectedItem,\n );\n\n return indexSelected === -1\n ? [mergedTimelineItems, []]\n : [\n mergedTimelineItems.slice(0, indexSelected),\n mergedTimelineItems.slice(indexSelected),\n ];\n }, [mergedTimelineItems, selectedItem]);\n\n const renderTimelineItems = useCallback(\n (items: Array<TimelineBarItem | TimelineDividerItem>) => {\n return items.map((item) => {\n if (item.type === \"divider\") {\n const { timestampUtcMs, title, subtitle } = item;\n return (\n <HDivider\n key={item.id}\n timestampUtcMs={timestampUtcMs}\n title={title}\n subtitle={subtitle}\n onClick={() => handleClick(item)}\n isSelected={item.id === selectedItem}\n />\n );\n }\n\n return (\n <TimelineBar\n key={item.id}\n timestampUtcMs={item.timestampUtcMs}\n addSize={item.addSize}\n delSize={item.delSize}\n additions={item.additions}\n deletions={item.deletions}\n isSelected={item.id === selectedItem}\n onClick={() => handleClick(item)}\n />\n );\n });\n },\n [handleClick, selectedItem],\n );\n\n const unselectedContent = useMemo(\n () => renderTimelineItems(unselectedItems),\n [unselectedItems, renderTimelineItems],\n );\n\n const selectedContent = useMemo(\n () => renderTimelineItems(selectedItems),\n [selectedItems, renderTimelineItems],\n );\n\n // Scroll to the end by default\n useEffect(() => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollLeft =\n scrollContainerRef.current.scrollWidth;\n }\n }, []);\n\n return (\n <ConnectTooltipProvider delayDuration={0} skipDelayDuration={0}>\n <div className=\"relative h-[36px] w-full\">\n <div className=\"absolute left-[0px] z-[20] h-[17px] w-[6px] bg-white\">\n <div className=\"mt-[11px] h-[6px] w-[6px] rounded-tl-md bg-slate-50\" />\n </div>\n\n <div className=\"absolute right-[0px] top-[11px] z-[20] h-[6px] w-[6px] bg-white\">\n <div className=\"h-[6px] w-[6px] rounded-tr-md bg-slate-50\" />\n </div>\n <div className=\"absolute inset-x-0 bottom-0 h-[25px] rounded-md bg-slate-50\" />\n\n <div className=\"absolute inset-x-0 bottom-0 h-[36px]\">\n <div\n ref={scrollContainerRef}\n className=\"h-full overflow-x-auto rounded-md\"\n >\n <div className=\"ml-auto flex h-[36px] w-max items-end px-2 pb-0\">\n <div className=\"flex\">{unselectedContent}</div>\n <div className=\"flex rounded-sm bg-blue-200\">\n {selectedContent}\n </div>\n </div>\n </div>\n </div>\n <div className=\"pointer-events-none absolute bottom-0 left-0 z-10 h-[25px] w-2 rounded-l-md bg-slate-50\" />\n <div className=\"pointer-events-none absolute bottom-0 right-0 z-10 h-[25px] w-2 rounded-r-md bg-slate-50\" />\n </div>\n </ConnectTooltipProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-group-B092xF-f.d.ts","names":[],"sources":["../src/ui/components/form-group/form-group.tsx"],"mappings":";cAAa,SAAA,EAAW,KAAA,CAAM,EAAA,CAAG,KAAA,CAAM,iBAAA"}
|
|
File without changes
|
|
File without changes
|