@airnauts/comments-client 0.4.0 → 0.5.1

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/index.js CHANGED
@@ -33750,7 +33750,7 @@ function IdentityModal({ open, onOpenChange, onSubmit }) {
33750
33750
  value: email3,
33751
33751
  onChange: (e) => setEmail(e.target.value),
33752
33752
  placeholder: "you@example.com",
33753
- className: "cmnt:block cmnt:w-full cmnt:my-3 cmnt:p-2 cmnt:border cmnt:border-gray-300 cmnt:rounded"
33753
+ className: "cmnt:block cmnt:w-full cmnt:my-3 cmnt:p-2 cmnt:border cmnt:border-gray-300 cmnt:rounded-[4px]"
33754
33754
  }
33755
33755
  ),
33756
33756
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
@@ -33761,7 +33761,7 @@ function IdentityModal({ open, onOpenChange, onSubmit }) {
33761
33761
  value: name,
33762
33762
  onChange: (e) => setName(e.target.value),
33763
33763
  placeholder: "Name (optional)",
33764
- className: "cmnt:block cmnt:w-full cmnt:my-3 cmnt:p-2 cmnt:border cmnt:border-gray-300 cmnt:rounded"
33764
+ className: "cmnt:block cmnt:w-full cmnt:my-3 cmnt:p-2 cmnt:border cmnt:border-gray-300 cmnt:rounded-[4px]"
33765
33765
  }
33766
33766
  ),
33767
33767
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Button, { variant: "primary", size: "md", type: "submit", children: "Log in" })
@@ -36640,6 +36640,15 @@ function createRuntime(opts) {
36640
36640
  });
36641
36641
  if (changed) emit();
36642
36642
  }
36643
+ function bumpCommentCount(id, delta) {
36644
+ let changed = false;
36645
+ placed = placed.map((p) => {
36646
+ if (p.item.id !== id) return p;
36647
+ changed = true;
36648
+ return { ...p, item: { ...p.item, commentCount: Math.max(0, p.item.commentCount + delta) } };
36649
+ });
36650
+ if (changed) emit();
36651
+ }
36643
36652
  function dispose() {
36644
36653
  resizeObs?.disconnect();
36645
36654
  }
@@ -36648,6 +36657,7 @@ function createRuntime(opts) {
36648
36657
  reposition: emit,
36649
36658
  rematchAll,
36650
36659
  setItemStatus,
36660
+ bumpCommentCount,
36651
36661
  dispose,
36652
36662
  get placed() {
36653
36663
  return placed;
@@ -36717,6 +36727,9 @@ function createPanelController(dispatch, deps) {
36717
36727
  },
36718
36728
  back() {
36719
36729
  dispatch({ type: "BACK" });
36730
+ },
36731
+ bumpCommentCount(id, delta) {
36732
+ dispatch({ type: "BUMP_COMMENT_COUNT", id, delta });
36720
36733
  }
36721
36734
  };
36722
36735
  }
@@ -36727,6 +36740,15 @@ var init_controller = __esm({
36727
36740
  });
36728
36741
 
36729
36742
  // src/panel/state.ts
36743
+ function bumpCount(list, id, delta) {
36744
+ let changed = false;
36745
+ const next = list.map((t) => {
36746
+ if (t.id !== id) return t;
36747
+ changed = true;
36748
+ return { ...t, commentCount: Math.max(0, t.commentCount + delta) };
36749
+ });
36750
+ return changed ? next : list;
36751
+ }
36730
36752
  function reducer(state, action) {
36731
36753
  switch (action.type) {
36732
36754
  case "OPEN":
@@ -36763,6 +36785,12 @@ function reducer(state, action) {
36763
36785
  };
36764
36786
  case "LOAD_MORE_ERROR":
36765
36787
  return { ...state, loadingMore: false };
36788
+ case "BUMP_COMMENT_COUNT":
36789
+ return {
36790
+ ...state,
36791
+ list: bumpCount(state.list, action.id, action.delta),
36792
+ needsReview: bumpCount(state.needsReview, action.id, action.delta)
36793
+ };
36766
36794
  default:
36767
36795
  return state;
36768
36796
  }
@@ -36923,6 +36951,17 @@ function reducer2(state, action) {
36923
36951
  } : state;
36924
36952
  return mapDetail(withItem, action.id, (t) => ({ ...t, status: action.status }));
36925
36953
  }
36954
+ case "BUMP_COMMENT_COUNT": {
36955
+ const item = state.itemsById[action.id];
36956
+ if (!item) return state;
36957
+ return {
36958
+ ...state,
36959
+ itemsById: {
36960
+ ...state.itemsById,
36961
+ [action.id]: { ...item, commentCount: Math.max(0, item.commentCount + action.delta) }
36962
+ }
36963
+ };
36964
+ }
36926
36965
  case "REQUEST_FOCUS":
36927
36966
  return {
36928
36967
  ...state,
@@ -36975,8 +37014,9 @@ var init_state3 = __esm({
36975
37014
 
36976
37015
  // src/threads/controller.ts
36977
37016
  function createController(dispatch, deps) {
36978
- let patchRuntime = null;
37017
+ let runtime = null;
36979
37018
  let statusListener = null;
37019
+ let commentCountListener = null;
36980
37020
  const lazyFetchDetail = (id) => {
36981
37021
  if (deps.isCached(id) || deps.isLoading(id)) return;
36982
37022
  dispatch({ type: "DETAIL_LOADING", id });
@@ -36984,7 +37024,12 @@ function createController(dispatch, deps) {
36984
37024
  };
36985
37025
  const patchStatus = (id, status) => {
36986
37026
  dispatch({ type: "SET_STATUS", id, status });
36987
- patchRuntime?.(id, status);
37027
+ runtime?.setStatus(id, status);
37028
+ };
37029
+ const bumpCommentCount = (id, delta) => {
37030
+ dispatch({ type: "BUMP_COMMENT_COUNT", id, delta });
37031
+ runtime?.bumpCommentCount(id, delta);
37032
+ commentCountListener?.(id, delta);
36988
37033
  };
36989
37034
  return {
36990
37035
  openThread(id) {
@@ -36998,9 +37043,10 @@ function createController(dispatch, deps) {
36998
37043
  dispatch({ type: "SET_SHOW_RESOLVED", value });
36999
37044
  },
37000
37045
  registerRuntime(patch2) {
37001
- patchRuntime = patch2;
37046
+ runtime = patch2;
37002
37047
  },
37003
37048
  patchStatus,
37049
+ bumpCommentCount,
37004
37050
  async setStatus(id, status) {
37005
37051
  const prev = status === "resolved" ? "open" : "resolved";
37006
37052
  patchStatus(id, status);
@@ -37022,6 +37068,9 @@ function createController(dispatch, deps) {
37022
37068
  },
37023
37069
  registerStatusListener(fn) {
37024
37070
  statusListener = fn;
37071
+ },
37072
+ registerCommentCountListener(fn) {
37073
+ commentCountListener = fn;
37025
37074
  }
37026
37075
  };
37027
37076
  }
@@ -37083,6 +37132,9 @@ function useDispatch() {
37083
37132
  function useVisiblePlacements() {
37084
37133
  return visiblePlacements(useCtx2().state);
37085
37134
  }
37135
+ function useShowResolved() {
37136
+ return useCtx2().state.showResolved;
37137
+ }
37086
37138
  function useOpenThread() {
37087
37139
  const { state } = useCtx2();
37088
37140
  const id = state.openId;
@@ -37168,7 +37220,7 @@ var init_Pin = __esm({
37168
37220
  "cmnt:absolute cmnt:w-[42px] cmnt:h-[42px] cmnt:-ml-[21px] cmnt:-mt-[42px] cmnt:p-0 cmnt:border-none cmnt:bg-transparent cmnt:cursor-pointer cmnt:pointer-events-auto",
37169
37221
  className
37170
37222
  ),
37171
- style: { transform: `translate(${pin.x}px, ${pin.y}px)`, ...style },
37223
+ style: { transform: `translate(${Math.round(pin.x)}px, ${Math.round(pin.y)}px)`, ...style },
37172
37224
  children: [
37173
37225
  focused && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
37174
37226
  "span",
@@ -37279,8 +37331,8 @@ function CommentList({
37279
37331
  children: [0, 1].map((i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "cmnt:flex cmnt:gap-[9px] cmnt:mb-3.5", children: [
37280
37332
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "cmnt:w-[26px] cmnt:h-[26px] cmnt:rounded-full cmnt:bg-gray-200" }),
37281
37333
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "cmnt:flex-1", children: [
37282
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "cmnt:w-2/5 cmnt:h-2.5 cmnt:bg-gray-200 cmnt:rounded" }),
37283
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "cmnt:w-[85%] cmnt:h-2.5 cmnt:bg-gray-100 cmnt:rounded cmnt:mt-1.5" })
37334
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "cmnt:w-2/5 cmnt:h-2.5 cmnt:bg-gray-200 cmnt:rounded-[4px]" }),
37335
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "cmnt:w-[85%] cmnt:h-2.5 cmnt:bg-gray-100 cmnt:rounded-[4px] cmnt:mt-1.5" })
37284
37336
  ] })
37285
37337
  ] }, i))
37286
37338
  }
@@ -37335,7 +37387,7 @@ function CommentList({
37335
37387
  "span",
37336
37388
  {
37337
37389
  "aria-hidden": true,
37338
- className: "cmnt:absolute cmnt:top-1 cmnt:right-1 cmnt:flex cmnt:items-center cmnt:justify-center cmnt:w-5 cmnt:h-5 cmnt:rounded cmnt:bg-black/55 cmnt:text-white cmnt:opacity-80 cmnt:group-hover:opacity-100 cmnt:transition-opacity",
37390
+ className: "cmnt:absolute cmnt:top-1 cmnt:right-1 cmnt:flex cmnt:items-center cmnt:justify-center cmnt:w-5 cmnt:h-5 cmnt:rounded-[4px] cmnt:bg-black/55 cmnt:text-white cmnt:opacity-80 cmnt:group-hover:opacity-100 cmnt:transition-opacity",
37339
37391
  children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
37340
37392
  "svg",
37341
37393
  {
@@ -37675,6 +37727,7 @@ function ThreadConversation({
37675
37727
  const { detail, loading, error: error51 } = useThreadDetail(id);
37676
37728
  const toast = useToast();
37677
37729
  const resolved = (detail?.status ?? item.status) === "resolved";
37730
+ const commentCount = detail ? detail.comments.length : item.commentCount;
37678
37731
  async function submitReply({ text, attachmentIds, who }) {
37679
37732
  const tempId = `temp-${nextTempId++}`;
37680
37733
  const optimistic = {
@@ -37685,6 +37738,7 @@ function ThreadConversation({
37685
37738
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
37686
37739
  };
37687
37740
  dispatch({ type: "ADD_OPTIMISTIC_COMMENT", id, comment: optimistic });
37741
+ controller.bumpCommentCount(id, 1);
37688
37742
  const wasResolved = resolved;
37689
37743
  if (wasResolved) controller.patchStatus(id, "open");
37690
37744
  let saved;
@@ -37696,6 +37750,7 @@ function ThreadConversation({
37696
37750
  });
37697
37751
  } catch {
37698
37752
  dispatch({ type: "REMOVE_OPTIMISTIC_COMMENT", id, tempId });
37753
+ controller.bumpCommentCount(id, -1);
37699
37754
  if (wasResolved) controller.patchStatus(id, "resolved");
37700
37755
  toast("Failed to post reply");
37701
37756
  return;
@@ -37732,7 +37787,7 @@ function ThreadConversation({
37732
37787
  "cmnt:text-[11px] cmnt:font-semibold",
37733
37788
  resolved ? "cmnt:text-green-600" : "cmnt:text-blue-600"
37734
37789
  ),
37735
- children: resolved ? "\u2713 Resolved" : `Open \xB7 ${item.commentCount} ${item.commentCount === 1 ? "comment" : "comments"}`
37790
+ children: resolved ? "\u2713 Resolved" : `Open \xB7 ${commentCount} ${commentCount === 1 ? "comment" : "comments"}`
37736
37791
  }
37737
37792
  ),
37738
37793
  /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "cmnt:flex cmnt:items-center cmnt:gap-1.5 cmnt:text-gray-500", children: [
@@ -37842,7 +37897,7 @@ function ThreadPopover({
37842
37897
  const target = e.detail.originalEvent.target;
37843
37898
  if (target?.closest("[data-comments-root]")) e.preventDefault();
37844
37899
  },
37845
- className: "cmnt:pointer-events-auto",
37900
+ className: "cmnt:z-[var(--cmnt-z-surface)] cmnt:pointer-events-auto",
37846
37901
  children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
37847
37902
  ThreadConversation,
37848
37903
  {
@@ -37999,9 +38054,9 @@ function DetachedThread({ client, identity, onNeedIdentity }) {
37999
38054
  "div",
38000
38055
  {
38001
38056
  "data-testid": "comments-detached",
38002
- className: "cmnt:fixed cmnt:top-4 cmnt:left-1/2 cmnt:-translate-x-1/2 cmnt:z-50 cmnt:pointer-events-auto",
38057
+ className: "cmnt:fixed cmnt:top-4 cmnt:left-1/2 cmnt:-translate-x-1/2 cmnt:z-[var(--cmnt-z-surface)] cmnt:pointer-events-auto",
38003
38058
  children: [
38004
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "cmnt:mb-1 cmnt:w-80 cmnt:max-w-[calc(100vw-16px)] cmnt:flex cmnt:items-center cmnt:gap-1 cmnt:px-2 cmnt:py-1 cmnt:rounded cmnt:bg-amber-100 cmnt:text-amber-700 cmnt:text-[11px] cmnt:font-medium", children: [
38059
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "cmnt:mb-1 cmnt:w-80 cmnt:max-w-[calc(100vw-16px)] cmnt:flex cmnt:items-center cmnt:gap-1 cmnt:px-2 cmnt:py-1 cmnt:rounded-[4px] cmnt:bg-amber-100 cmnt:text-amber-700 cmnt:text-[11px] cmnt:font-medium", children: [
38005
38060
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { "aria-hidden": true, children: "\u26A0" }),
38006
38061
  " This comment's anchor was lost"
38007
38062
  ] }),
@@ -38029,80 +38084,168 @@ var init_DetachedThread = __esm({
38029
38084
  }
38030
38085
  });
38031
38086
 
38087
+ // src/launcher/storage.ts
38088
+ function clampTop(top) {
38089
+ return Math.min(95, Math.max(5, top));
38090
+ }
38091
+ function loadLauncherPosition(store = localStorage) {
38092
+ try {
38093
+ const raw = store.getItem(STORAGE_KEY3);
38094
+ if (!raw) return DEFAULT_LAUNCHER_POSITION;
38095
+ const parsed = JSON.parse(raw);
38096
+ if (parsed && typeof parsed === "object") {
38097
+ const { edge, top } = parsed;
38098
+ if ((edge === "left" || edge === "right") && typeof top === "number" && Number.isFinite(top)) {
38099
+ return { edge, top: clampTop(top) };
38100
+ }
38101
+ }
38102
+ return DEFAULT_LAUNCHER_POSITION;
38103
+ } catch {
38104
+ return DEFAULT_LAUNCHER_POSITION;
38105
+ }
38106
+ }
38107
+ function saveLauncherPosition(pos, store = localStorage) {
38108
+ store.setItem(STORAGE_KEY3, JSON.stringify(pos));
38109
+ }
38110
+ var STORAGE_KEY3, DEFAULT_LAUNCHER_POSITION;
38111
+ var init_storage2 = __esm({
38112
+ "src/launcher/storage.ts"() {
38113
+ "use strict";
38114
+ STORAGE_KEY3 = "comments:launcher-position";
38115
+ DEFAULT_LAUNCHER_POSITION = { edge: "right", top: 92 };
38116
+ }
38117
+ });
38118
+
38119
+ // src/launcher/useDraggablePosition.ts
38120
+ function useDraggablePosition() {
38121
+ const [position, setPosition] = (0, import_react16.useState)(() => loadLauncherPosition());
38122
+ const [dragging, setDragging] = (0, import_react16.useState)(false);
38123
+ const movedRef = (0, import_react16.useRef)(false);
38124
+ const onPointerDown = (0, import_react16.useCallback)((e) => {
38125
+ if (e.button !== 0) return;
38126
+ movedRef.current = false;
38127
+ const startX = e.clientX;
38128
+ const startY = e.clientY;
38129
+ let moved = false;
38130
+ let next = null;
38131
+ const onMove = (ev) => {
38132
+ if (!moved && Math.hypot(ev.clientX - startX, ev.clientY - startY) < DRAG_THRESHOLD) return;
38133
+ if (!moved) {
38134
+ moved = true;
38135
+ movedRef.current = true;
38136
+ setDragging(true);
38137
+ }
38138
+ next = {
38139
+ edge: ev.clientX < window.innerWidth / 2 ? "left" : "right",
38140
+ top: clampTop(ev.clientY / window.innerHeight * 100)
38141
+ };
38142
+ setPosition(next);
38143
+ };
38144
+ const onUp = () => {
38145
+ window.removeEventListener("pointermove", onMove);
38146
+ window.removeEventListener("pointerup", onUp);
38147
+ if (moved && next) {
38148
+ setDragging(false);
38149
+ saveLauncherPosition(next);
38150
+ }
38151
+ };
38152
+ window.addEventListener("pointermove", onMove);
38153
+ window.addEventListener("pointerup", onUp);
38154
+ }, []);
38155
+ const onClickCapture = (0, import_react16.useCallback)(
38156
+ (e) => {
38157
+ if (movedRef.current) {
38158
+ e.preventDefault();
38159
+ e.stopPropagation();
38160
+ movedRef.current = false;
38161
+ }
38162
+ },
38163
+ []
38164
+ );
38165
+ const style = {
38166
+ top: `${position.top}%`,
38167
+ transform: "translateY(-50%)",
38168
+ ...position.edge === "left" ? { left: EDGE_INSET } : { right: EDGE_INSET }
38169
+ };
38170
+ return { position, dragging, style, onPointerDown, onClickCapture };
38171
+ }
38172
+ var import_react16, DRAG_THRESHOLD, EDGE_INSET;
38173
+ var init_useDraggablePosition = __esm({
38174
+ "src/launcher/useDraggablePosition.ts"() {
38175
+ "use strict";
38176
+ import_react16 = __toESM(require_react(), 1);
38177
+ init_storage2();
38178
+ DRAG_THRESHOLD = 4;
38179
+ EDGE_INSET = "16px";
38180
+ }
38181
+ });
38182
+
38032
38183
  // src/ui/Launcher.tsx
38033
38184
  function Launcher({
38034
38185
  placing,
38035
38186
  onTogglePlace,
38036
- showResolved,
38037
- onShowResolved,
38038
38187
  openCount,
38188
+ panelOpen,
38039
38189
  onTogglePanel
38040
38190
  }) {
38041
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "cmnt:fixed cmnt:bottom-4 cmnt:right-4 cmnt:flex cmnt:items-center cmnt:gap-2 cmnt:bg-white cmnt:border cmnt:border-gray-200 cmnt:rounded-full cmnt:py-1.5 cmnt:pl-3 cmnt:pr-2 cmnt:pointer-events-auto cmnt:shadow-[0_6px_20px_rgba(0,0,0,0.18)]", children: [
38042
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
38043
- Button,
38044
- {
38045
- variant: "ghost",
38046
- size: "icon",
38047
- "aria-label": "Open comments panel",
38048
- "data-testid": "comments-panel-open",
38049
- onClick: onTogglePanel,
38050
- className: "cmnt:hover:bg-gray-100",
38051
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { "aria-hidden": true, children: "\u2630" })
38052
- }
38053
- ),
38054
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
38055
- "button",
38056
- {
38057
- type: "button",
38058
- role: "switch",
38059
- "aria-checked": showResolved,
38060
- "aria-label": "Show resolved threads",
38061
- onClick: () => onShowResolved(!showResolved),
38062
- className: "cmnt:inline-flex cmnt:items-center cmnt:gap-1.5 cmnt:bg-transparent cmnt:border-none cmnt:cursor-pointer cmnt:text-xs cmnt:text-gray-500",
38063
- children: [
38064
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
38065
- "span",
38066
- {
38067
- "aria-hidden": true,
38068
- className: cn(
38069
- "cmnt:w-7 cmnt:h-4 cmnt:rounded-full cmnt:relative cmnt:transition-colors",
38070
- showResolved ? "cmnt:bg-blue-600" : "cmnt:bg-gray-300"
38071
- ),
38072
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
38191
+ const { style, dragging, onPointerDown, onClickCapture } = useDraggablePosition();
38192
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
38193
+ "div",
38194
+ {
38195
+ style,
38196
+ onPointerDown,
38197
+ onClickCapture,
38198
+ className: cn(
38199
+ "cmnt:fixed cmnt:z-[var(--cmnt-z-launcher)] cmnt:flex cmnt:items-center cmnt:gap-1 cmnt:bg-white cmnt:border cmnt:border-gray-200 cmnt:rounded-full cmnt:p-1 cmnt:pointer-events-auto cmnt:select-none cmnt:touch-none cmnt:shadow-[0_6px_20px_rgba(0,0,0,0.18)]",
38200
+ dragging ? "cmnt:cursor-grabbing" : "cmnt:cursor-grab"
38201
+ ),
38202
+ children: [
38203
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
38204
+ Button,
38205
+ {
38206
+ variant: "ghost",
38207
+ size: "icon",
38208
+ "aria-label": panelOpen ? "Close comments panel" : "Open comments panel",
38209
+ "aria-expanded": panelOpen,
38210
+ "data-testid": "comments-panel-open",
38211
+ onClick: onTogglePanel,
38212
+ className: "cmnt:hover:bg-gray-100",
38213
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { "aria-hidden": true, children: "\u2630" })
38214
+ }
38215
+ ),
38216
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
38217
+ Button,
38218
+ {
38219
+ variant: "primary",
38220
+ size: "icon",
38221
+ "data-comments-place": true,
38222
+ "data-testid": "comments-place",
38223
+ "aria-pressed": placing,
38224
+ "aria-label": placing ? "Click on the page to comment" : "Add comment",
38225
+ onClick: onTogglePlace,
38226
+ className: cn("cmnt:relative", placing && "cmnt:bg-blue-800"),
38227
+ children: [
38228
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { "aria-hidden": true, children: placing ? "\u270E" : "\uFF0B" }),
38229
+ !placing && openCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
38073
38230
  "span",
38074
38231
  {
38075
- className: cn(
38076
- "cmnt:absolute cmnt:top-0.5 cmnt:w-3 cmnt:h-3 cmnt:rounded-full cmnt:bg-white cmnt:transition-all",
38077
- showResolved ? "cmnt:left-[14px]" : "cmnt:left-0.5"
38078
- )
38232
+ "aria-hidden": true,
38233
+ className: "cmnt:absolute cmnt:-top-1 cmnt:-right-1 cmnt:min-w-4 cmnt:h-4 cmnt:px-1 cmnt:rounded-full cmnt:bg-blue-800 cmnt:text-white cmnt:text-[10px] cmnt:leading-4 cmnt:text-center cmnt:pointer-events-none",
38234
+ children: openCount
38079
38235
  }
38080
38236
  )
38081
- }
38082
- ),
38083
- "Resolved"
38084
- ]
38085
- }
38086
- ),
38087
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
38088
- Button,
38089
- {
38090
- variant: "primary",
38091
- size: "md",
38092
- "data-comments-place": true,
38093
- "data-testid": "comments-place",
38094
- "aria-pressed": placing,
38095
- onClick: onTogglePlace,
38096
- className: cn(placing && "cmnt:bg-blue-800"),
38097
- children: placing ? "Click to comment\u2026" : `+ Comment${openCount ? ` (${openCount})` : ""}`
38098
- }
38099
- )
38100
- ] });
38237
+ ]
38238
+ }
38239
+ )
38240
+ ]
38241
+ }
38242
+ );
38101
38243
  }
38102
38244
  var import_jsx_runtime26;
38103
38245
  var init_Launcher = __esm({
38104
38246
  "src/ui/Launcher.tsx"() {
38105
38247
  "use strict";
38248
+ init_useDraggablePosition();
38106
38249
  init_cn();
38107
38250
  init_Button();
38108
38251
  import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
@@ -38119,7 +38262,7 @@ function useFocusPin({
38119
38262
  toast,
38120
38263
  timeoutMs = 2e3
38121
38264
  }) {
38122
- (0, import_react16.useEffect)(() => {
38265
+ (0, import_react17.useEffect)(() => {
38123
38266
  if (!pendingFocusId) return;
38124
38267
  if (placed) {
38125
38268
  const el = getElement(pendingFocusId);
@@ -38136,17 +38279,17 @@ function useFocusPin({
38136
38279
  }, timeoutMs);
38137
38280
  return () => window.clearTimeout(giveUp);
38138
38281
  }, [pendingFocusId, placed, getElement, dispatch, toast, timeoutMs]);
38139
- (0, import_react16.useEffect)(() => {
38282
+ (0, import_react17.useEffect)(() => {
38140
38283
  if (!focusedId) return;
38141
38284
  const clear = window.setTimeout(() => dispatch({ type: "CLEAR_FOCUS" }), PULSE_MS);
38142
38285
  return () => window.clearTimeout(clear);
38143
38286
  }, [focusedId, dispatch]);
38144
38287
  }
38145
- var import_react16, PULSE_MS;
38288
+ var import_react17, PULSE_MS;
38146
38289
  var init_useFocusPin = __esm({
38147
38290
  "src/marker/useFocusPin.ts"() {
38148
38291
  "use strict";
38149
- import_react16 = __toESM(require_react(), 1);
38292
+ import_react17 = __toESM(require_react(), 1);
38150
38293
  PULSE_MS = 1500;
38151
38294
  }
38152
38295
  });
@@ -38166,16 +38309,17 @@ function MarkerLayer({
38166
38309
  const controller = useController();
38167
38310
  const state = useThreadsState();
38168
38311
  const placements2 = useVisiblePlacements();
38169
- const [placing, setPlacing] = (0, import_react17.useState)(false);
38170
- const [activeKey, setActiveKey] = (0, import_react17.useState)(pageKey);
38312
+ const [placing, setPlacing] = (0, import_react18.useState)(false);
38313
+ const [activeKey, setActiveKey] = (0, import_react18.useState)(pageKey);
38171
38314
  const toast = useToast();
38172
38315
  const container = usePortalContainer();
38173
- const runtime = (0, import_react17.useRef)(null);
38316
+ const runtime = (0, import_react18.useRef)(null);
38174
38317
  const openCount = Object.values(state.itemsById).filter((i) => i.status === "open").length;
38175
38318
  const panel = usePanelController();
38319
+ const panelOpen = usePanelState().open;
38176
38320
  const pendingFocusId = state.pendingFocusId;
38177
38321
  const placed = pendingFocusId ? Boolean(state.placementsById[pendingFocusId]) : false;
38178
- const getElement = (0, import_react17.useCallback)(
38322
+ const getElement = (0, import_react18.useCallback)(
38179
38323
  (id) => runtime.current?.placed.find((p) => p.item.id === id)?.el ?? null,
38180
38324
  []
38181
38325
  );
@@ -38187,7 +38331,7 @@ function MarkerLayer({
38187
38331
  dispatch,
38188
38332
  toast
38189
38333
  });
38190
- (0, import_react17.useEffect)(() => {
38334
+ (0, import_react18.useEffect)(() => {
38191
38335
  const rt = createRuntime({
38192
38336
  client,
38193
38337
  pageKey: activeKey,
@@ -38198,7 +38342,10 @@ function MarkerLayer({
38198
38342
  onPlacements: (next) => dispatch({ type: "INGEST_PLACEMENTS", placements: next })
38199
38343
  });
38200
38344
  runtime.current = rt;
38201
- controller.registerRuntime((id, status) => rt.setItemStatus(id, status));
38345
+ controller.registerRuntime({
38346
+ setStatus: (id, status) => rt.setItemStatus(id, status),
38347
+ bumpCommentCount: (id, delta) => rt.bumpCommentCount(id, delta)
38348
+ });
38202
38349
  void rt.refresh().then(() => {
38203
38350
  const handoff = takeFocusHandoff();
38204
38351
  if (handoff) {
@@ -38227,13 +38374,13 @@ function MarkerLayer({
38227
38374
  runtime.current = null;
38228
38375
  };
38229
38376
  }, [client, activeKey, dispatch, controller, panel]);
38230
- (0, import_react17.useEffect)(() => {
38377
+ (0, import_react18.useEffect)(() => {
38231
38378
  if (state.lostOpenId) {
38232
38379
  toast("This comment\u2019s anchor was lost");
38233
38380
  dispatch({ type: "CLEAR_LOST_OPEN" });
38234
38381
  }
38235
38382
  }, [state.lostOpenId, toast, dispatch]);
38236
- const createThread = (0, import_react17.useCallback)(
38383
+ const createThread = (0, import_react18.useCallback)(
38237
38384
  async ({ text, attachmentIds, who }, anchor) => {
38238
38385
  try {
38239
38386
  const created = await client.createThread({
@@ -38255,7 +38402,7 @@ function MarkerLayer({
38255
38402
  },
38256
38403
  [client, activeKey, provenance, toast, dispatch]
38257
38404
  );
38258
- (0, import_react17.useEffect)(() => {
38405
+ (0, import_react18.useEffect)(() => {
38259
38406
  if (!placing) return;
38260
38407
  const onClick = (e) => {
38261
38408
  const target = e.target;
@@ -38333,7 +38480,7 @@ function MarkerLayer({
38333
38480
  collisionPadding: 8,
38334
38481
  onOpenAutoFocus: (e) => e.preventDefault(),
38335
38482
  "data-testid": "comments-draft",
38336
- className: "cmnt:w-80 cmnt:max-w-[calc(100vw-16px)] cmnt:bg-white cmnt:border cmnt:border-gray-200 cmnt:rounded-xl cmnt:pointer-events-auto cmnt:overflow-hidden cmnt:shadow-[0_12px_32px_rgba(0,0,0,0.18)]",
38483
+ className: "cmnt:z-[var(--cmnt-z-surface)] cmnt:w-80 cmnt:max-w-[calc(100vw-16px)] cmnt:bg-white cmnt:border cmnt:border-gray-200 cmnt:rounded-xl cmnt:pointer-events-auto cmnt:overflow-hidden cmnt:shadow-[0_12px_32px_rgba(0,0,0,0.18)]",
38337
38484
  children: [
38338
38485
  state.draft.anchor.selection?.quote && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "cmnt:mx-3 cmnt:mt-2 cmnt:px-2 cmnt:py-1.5 cmnt:border-l-[3px] cmnt:border-blue-600 cmnt:bg-[#f3f6fc] cmnt:text-xs cmnt:text-gray-700 cmnt:italic", children: [
38339
38486
  "\u201C",
@@ -38361,20 +38508,19 @@ function MarkerLayer({
38361
38508
  {
38362
38509
  placing,
38363
38510
  onTogglePlace: () => setPlacing((p) => !p),
38364
- showResolved: state.showResolved,
38365
- onShowResolved: (v) => controller.setShowResolved(v),
38366
38511
  openCount,
38367
- onTogglePanel: () => void panel.openPanel()
38512
+ panelOpen,
38513
+ onTogglePanel: () => void (panelOpen ? panel.closePanel() : panel.openPanel())
38368
38514
  }
38369
38515
  )
38370
38516
  ] });
38371
38517
  }
38372
- var import_react17, import_jsx_runtime27;
38518
+ var import_react18, import_jsx_runtime27;
38373
38519
  var init_MarkerLayer = __esm({
38374
38520
  "src/marker/MarkerLayer.tsx"() {
38375
38521
  "use strict";
38376
38522
  init_dist21();
38377
- import_react17 = __toESM(require_react(), 1);
38523
+ import_react18 = __toESM(require_react(), 1);
38378
38524
  init_capture();
38379
38525
  init_runtime();
38380
38526
  init_errors3();
@@ -38403,6 +38549,16 @@ function PanelRow({ item, onSelect, onReply, onResolve }) {
38403
38549
  const rootText = item.rootComment?.text ?? "";
38404
38550
  const author = item.createdBy;
38405
38551
  const context = item.pageTitle ?? item.pageUrl;
38552
+ const [copied, setCopied] = (0, import_react19.useState)(false);
38553
+ const copiedTimer = (0, import_react19.useRef)(void 0);
38554
+ (0, import_react19.useEffect)(() => () => clearTimeout(copiedTimer.current), []);
38555
+ const onCopy = () => {
38556
+ void navigator.clipboard?.writeText(threadLink(item.pageUrl, item.id))?.catch(() => {
38557
+ });
38558
+ setCopied(true);
38559
+ clearTimeout(copiedTimer.current);
38560
+ copiedTimer.current = setTimeout(() => setCopied(false), 1e3);
38561
+ };
38406
38562
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { "data-thread-id": item.id, className: "cmnt:border-b cmnt:border-[#f1f3f5]", children: [
38407
38563
  /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
38408
38564
  "button",
@@ -38426,7 +38582,7 @@ function PanelRow({ item, onSelect, onReply, onResolve }) {
38426
38582
  /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "cmnt:flex cmnt:items-center cmnt:gap-1.5", children: [
38427
38583
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("b", { className: "cmnt:text-xs cmnt:truncate", children: author.name ?? author.email }),
38428
38584
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "cmnt:text-gray-400 cmnt:text-[11px]", children: relativeTime(item.updatedAt) }),
38429
- orphaned && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "cmnt:ml-1 cmnt:px-1.5 cmnt:py-0.5 cmnt:rounded cmnt:bg-amber-100 cmnt:text-amber-700 cmnt:font-medium cmnt:text-[11px]", children: [
38585
+ orphaned && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "cmnt:ml-1 cmnt:px-1.5 cmnt:py-0.5 cmnt:rounded-[4px] cmnt:bg-amber-100 cmnt:text-amber-700 cmnt:font-medium cmnt:text-[11px]", children: [
38430
38586
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { "aria-hidden": true, children: "\u26A0" }),
38431
38587
  " anchor lost"
38432
38588
  ] })
@@ -38469,19 +38625,19 @@ function PanelRow({ item, onSelect, onReply, onResolve }) {
38469
38625
  variant: "link",
38470
38626
  size: "inline",
38471
38627
  "aria-label": "Copy link",
38472
- onClick: () => void navigator.clipboard?.writeText(threadLink(item.pageUrl, item.id))?.catch(() => {
38473
- }),
38628
+ onClick: onCopy,
38474
38629
  className: "cmnt:ml-3 cmnt:text-[11px] cmnt:text-gray-500",
38475
- children: "Copy link"
38630
+ children: copied ? "Copied!" : "Copy link"
38476
38631
  }
38477
38632
  )
38478
38633
  ] })
38479
38634
  ] });
38480
38635
  }
38481
- var import_jsx_runtime28;
38636
+ var import_react19, import_jsx_runtime28;
38482
38637
  var init_PanelRow = __esm({
38483
38638
  "src/panel/PanelRow.tsx"() {
38484
38639
  "use strict";
38640
+ import_react19 = __toESM(require_react(), 1);
38485
38641
  init_config();
38486
38642
  init_relativeTime();
38487
38643
  init_avatar();
@@ -38525,13 +38681,19 @@ function PanelDrawer({
38525
38681
  const state = usePanelState();
38526
38682
  const panel = usePanelController();
38527
38683
  const threads = useController();
38684
+ const showResolved = useShowResolved();
38528
38685
  const container = usePortalContainer();
38529
38686
  const mainList = mainListExcludingReview(state);
38530
- (0, import_react18.useEffect)(() => {
38687
+ (0, import_react20.useEffect)(() => {
38531
38688
  if (!state.open) return;
38532
38689
  threads.registerStatusListener(() => void panel.refresh());
38533
38690
  return () => threads.registerStatusListener(null);
38534
38691
  }, [state.open, threads, panel]);
38692
+ (0, import_react20.useEffect)(() => {
38693
+ if (!state.open) return;
38694
+ threads.registerCommentCountListener((id, delta) => panel.bumpCommentCount(id, delta));
38695
+ return () => threads.registerCommentCountListener(null);
38696
+ }, [state.open, threads, panel]);
38535
38697
  function onSelect(row) {
38536
38698
  const here = resolvePageKey2(window.location.href);
38537
38699
  if (row.pageKey === here) {
@@ -38548,7 +38710,7 @@ function PanelDrawer({
38548
38710
  "data-testid": "comments-panel",
38549
38711
  onInteractOutside: (e) => e.preventDefault(),
38550
38712
  onOpenAutoFocus: (e) => e.preventDefault(),
38551
- className: "cmnt:fixed cmnt:top-0 cmnt:right-0 cmnt:bottom-0 cmnt:w-[360px] cmnt:max-w-[calc(100vw-16px)] cmnt:bg-white cmnt:border-l cmnt:border-gray-200 cmnt:flex cmnt:flex-col cmnt:pointer-events-auto cmnt:shadow-[-8px_0_24px_rgba(0,0,0,0.12)]",
38713
+ className: "cmnt:fixed cmnt:z-[var(--cmnt-z-surface)] cmnt:top-0 cmnt:right-0 cmnt:bottom-0 cmnt:w-[360px] cmnt:max-w-[calc(100vw-16px)] cmnt:bg-white cmnt:border-l cmnt:border-gray-200 cmnt:flex cmnt:flex-col cmnt:pointer-events-auto cmnt:shadow-[-8px_0_24px_rgba(0,0,0,0.12)]",
38552
38714
  children: state.view === "detail" && state.detailThreadId ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
38553
38715
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "cmnt:flex cmnt:items-center cmnt:justify-between cmnt:px-3 cmnt:py-2 cmnt:border-b cmnt:border-gray-200", children: [
38554
38716
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
@@ -38601,6 +38763,39 @@ function PanelDrawer({
38601
38763
  f.value
38602
38764
  )) })
38603
38765
  ] }),
38766
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "cmnt:flex cmnt:items-center cmnt:justify-between cmnt:px-3 cmnt:py-2 cmnt:border-b cmnt:border-gray-200", children: [
38767
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "cmnt:text-xs cmnt:text-gray-500", children: "Show resolved pins on page" }),
38768
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
38769
+ "button",
38770
+ {
38771
+ type: "button",
38772
+ role: "switch",
38773
+ "aria-checked": showResolved,
38774
+ "aria-label": "Show resolved threads",
38775
+ onClick: () => threads.setShowResolved(!showResolved),
38776
+ className: "cmnt:inline-flex cmnt:items-center cmnt:bg-transparent cmnt:border-0 cmnt:cursor-pointer cmnt:p-0",
38777
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
38778
+ "span",
38779
+ {
38780
+ "aria-hidden": true,
38781
+ className: cn(
38782
+ "cmnt:w-7 cmnt:h-4 cmnt:rounded-full cmnt:relative cmnt:transition-colors",
38783
+ showResolved ? "cmnt:bg-blue-600" : "cmnt:bg-gray-300"
38784
+ ),
38785
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
38786
+ "span",
38787
+ {
38788
+ className: cn(
38789
+ "cmnt:absolute cmnt:top-0.5 cmnt:w-3 cmnt:h-3 cmnt:rounded-full cmnt:bg-white cmnt:transition-all",
38790
+ showResolved ? "cmnt:left-[14px]" : "cmnt:left-0.5"
38791
+ )
38792
+ }
38793
+ )
38794
+ }
38795
+ )
38796
+ }
38797
+ )
38798
+ ] }),
38604
38799
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "cmnt:flex-1 cmnt:overflow-y-auto", children: [
38605
38800
  state.needsReview.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { "data-testid": "comments-needs-review", children: [
38606
38801
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "cmnt:px-3 cmnt:py-1.5 cmnt:text-[11px] cmnt:font-semibold cmnt:text-amber-700 cmnt:bg-amber-50", children: [
@@ -38679,12 +38874,12 @@ function PanelDrawer({
38679
38874
  }
38680
38875
  ) }) });
38681
38876
  }
38682
- var import_react18, import_jsx_runtime29, FILTERS;
38877
+ var import_react20, import_jsx_runtime29, FILTERS;
38683
38878
  var init_PanelDrawer = __esm({
38684
38879
  "src/panel/PanelDrawer.tsx"() {
38685
38880
  "use strict";
38686
38881
  init_dist17();
38687
- import_react18 = __toESM(require_react(), 1);
38882
+ import_react20 = __toESM(require_react(), 1);
38688
38883
  init_providers();
38689
38884
  init_DraftsProvider();
38690
38885
  init_cn();
@@ -38706,26 +38901,41 @@ var init_PanelDrawer = __esm({
38706
38901
 
38707
38902
  // src/ui/LoginLauncher.tsx
38708
38903
  function LoginLauncher({ onLogIn }) {
38709
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "cmnt:fixed cmnt:bottom-4 cmnt:right-4 cmnt:flex cmnt:items-center cmnt:pointer-events-auto", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
38710
- Button,
38904
+ const { style, dragging, onPointerDown, onClickCapture } = useDraggablePosition();
38905
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
38906
+ "div",
38711
38907
  {
38712
- variant: "primary",
38713
- size: "md",
38714
- "aria-label": "Log in",
38715
- "data-testid": "comments-login",
38716
- onClick: onLogIn,
38717
- className: "cmnt:gap-1.5 cmnt:shadow-[0_6px_20px_rgba(0,0,0,0.18)]",
38718
- children: [
38719
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { "aria-hidden": true, children: "\u{1F511}" }),
38720
- " Log In"
38721
- ]
38908
+ style,
38909
+ onPointerDown,
38910
+ onClickCapture,
38911
+ className: cn(
38912
+ "cmnt:fixed cmnt:z-[var(--cmnt-z-launcher)] cmnt:flex cmnt:items-center cmnt:pointer-events-auto cmnt:select-none cmnt:touch-none",
38913
+ dragging ? "cmnt:cursor-grabbing" : "cmnt:cursor-grab"
38914
+ ),
38915
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
38916
+ Button,
38917
+ {
38918
+ variant: "primary",
38919
+ size: "md",
38920
+ "aria-label": "Log in",
38921
+ "data-testid": "comments-login",
38922
+ onClick: onLogIn,
38923
+ className: "cmnt:gap-1.5 cmnt:shadow-[0_6px_20px_rgba(0,0,0,0.18)]",
38924
+ children: [
38925
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { "aria-hidden": true, children: "\u{1F511}" }),
38926
+ " Log In"
38927
+ ]
38928
+ }
38929
+ )
38722
38930
  }
38723
- ) });
38931
+ );
38724
38932
  }
38725
38933
  var import_jsx_runtime30;
38726
38934
  var init_LoginLauncher = __esm({
38727
38935
  "src/ui/LoginLauncher.tsx"() {
38728
38936
  "use strict";
38937
+ init_useDraggablePosition();
38938
+ init_cn();
38729
38939
  init_Button();
38730
38940
  import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
38731
38941
  }
@@ -38733,12 +38943,12 @@ var init_LoginLauncher = __esm({
38733
38943
 
38734
38944
  // src/app/app.tsx
38735
38945
  function WidgetApp({ options, client: injected }) {
38736
- const [client] = (0, import_react19.useState)(
38946
+ const [client] = (0, import_react21.useState)(
38737
38947
  () => injected ?? createApiClient({ endpoint: options.endpoint, key: options.key })
38738
38948
  );
38739
- const [identity, setIdentity] = (0, import_react19.useState)(() => loadIdentity());
38740
- const [modalOpen, setModalOpen] = (0, import_react19.useState)(false);
38741
- const resumeRef = (0, import_react19.useRef)(null);
38949
+ const [identity, setIdentity] = (0, import_react21.useState)(() => loadIdentity());
38950
+ const [modalOpen, setModalOpen] = (0, import_react21.useState)(false);
38951
+ const resumeRef = (0, import_react21.useRef)(null);
38742
38952
  const pageUrl = window.location.href;
38743
38953
  const pageKey = resolvePageKey(options, pageUrl);
38744
38954
  function onNeedIdentity(resume) {
@@ -38790,11 +39000,11 @@ function WidgetApp({ options, client: injected }) {
38790
39000
  )
38791
39001
  ] }) }) }) });
38792
39002
  }
38793
- var import_react19, import_jsx_runtime31;
39003
+ var import_react21, import_jsx_runtime31;
38794
39004
  var init_app = __esm({
38795
39005
  "src/app/app.tsx"() {
38796
39006
  "use strict";
38797
- import_react19 = __toESM(require_react(), 1);
39007
+ import_react21 = __toESM(require_react(), 1);
38798
39008
  init_client();
38799
39009
  init_config();
38800
39010
  init_DraftsProvider();
@@ -38817,7 +39027,7 @@ var widgetCss;
38817
39027
  var init_widget_css_generated = __esm({
38818
39028
  "src/app/widget-css.generated.ts"() {
38819
39029
  "use strict";
38820
- widgetCss = '/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--cmnt-color-red-500:oklch(63.7% .237 25.331);--cmnt-color-red-700:oklch(50.5% .213 27.518);--cmnt-color-amber-50:oklch(98.7% .022 95.277);--cmnt-color-amber-100:oklch(96.2% .059 95.617);--cmnt-color-amber-700:oklch(55.5% .163 48.998);--cmnt-color-green-600:oklch(62.7% .194 149.214);--cmnt-color-blue-500:oklch(62.3% .214 259.815);--cmnt-color-blue-600:oklch(54.6% .245 262.881);--cmnt-color-blue-800:oklch(42.4% .199 265.638);--cmnt-color-slate-300:oklch(86.9% .022 252.894);--cmnt-color-slate-500:oklch(55.4% .046 257.417);--cmnt-color-gray-50:oklch(98.5% .002 247.839);--cmnt-color-gray-100:oklch(96.7% .003 264.542);--cmnt-color-gray-200:oklch(92.8% .006 264.531);--cmnt-color-gray-300:oklch(87.2% .01 258.338);--cmnt-color-gray-400:oklch(70.7% .022 261.325);--cmnt-color-gray-500:oklch(55.1% .027 264.364);--cmnt-color-gray-600:oklch(44.6% .03 256.802);--cmnt-color-gray-700:oklch(37.3% .034 259.733);--cmnt-color-gray-800:oklch(27.8% .033 256.848);--cmnt-color-gray-900:oklch(21% .034 264.665);--cmnt-color-black:#000;--cmnt-color-white:#fff;--cmnt-spacing:.25rem;--cmnt-text-xs:.75rem;--cmnt-text-xs--line-height:calc(1 / .75);--cmnt-text-sm:.875rem;--cmnt-text-sm--line-height:calc(1.25 / .875);--cmnt-text-base:1rem;--cmnt-text-base--line-height:calc(1.5 / 1);--cmnt-font-weight-normal:400;--cmnt-font-weight-medium:500;--cmnt-font-weight-semibold:600;--cmnt-font-weight-bold:700;--cmnt-leading-relaxed:1.625;--cmnt-radius-md:.375rem;--cmnt-radius-lg:.5rem;--cmnt-radius-xl:.75rem;--cmnt-animate-spin:spin 1s linear infinite;--cmnt-animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--cmnt-default-transition-duration:.15s;--cmnt-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{[data-comments-root] button,[data-comments-root] input,[data-comments-root] textarea,[data-comments-root] select{font-family:inherit}[data-comments-root],[data-comments-root] *,[data-comments-root] :before,[data-comments-root] :after{box-sizing:border-box}}@layer components;.cmnt\\:pointer-events-auto{pointer-events:auto}.cmnt\\:pointer-events-none{pointer-events:none}.cmnt\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cmnt\\:absolute{position:absolute}.cmnt\\:fixed{position:fixed}.cmnt\\:relative{position:relative}.cmnt\\:inset-0{inset:calc(var(--cmnt-spacing) * 0)}.cmnt\\:-top-1\\.5{top:calc(var(--cmnt-spacing) * -1.5)}.cmnt\\:top-0{top:calc(var(--cmnt-spacing) * 0)}.cmnt\\:top-0\\.5{top:calc(var(--cmnt-spacing) * .5)}.cmnt\\:top-1{top:calc(var(--cmnt-spacing) * 1)}.cmnt\\:top-1\\.5{top:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:top-1\\/2{top:50%}.cmnt\\:top-4{top:calc(var(--cmnt-spacing) * 4)}.cmnt\\:-right-\\[7px\\]{right:-7px}.cmnt\\:right-0{right:calc(var(--cmnt-spacing) * 0)}.cmnt\\:right-0\\.5{right:calc(var(--cmnt-spacing) * .5)}.cmnt\\:right-1{right:calc(var(--cmnt-spacing) * 1)}.cmnt\\:right-4{right:calc(var(--cmnt-spacing) * 4)}.cmnt\\:bottom-0{bottom:calc(var(--cmnt-spacing) * 0)}.cmnt\\:bottom-4{bottom:calc(var(--cmnt-spacing) * 4)}.cmnt\\:left-0\\.5{left:calc(var(--cmnt-spacing) * .5)}.cmnt\\:left-1\\.5{left:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:left-1\\/2{left:50%}.cmnt\\:left-\\[14px\\]{left:14px}.cmnt\\:z-50{z-index:50}.cmnt\\:m-0{margin:calc(var(--cmnt-spacing) * 0)}.cmnt\\:mx-3{margin-inline:calc(var(--cmnt-spacing) * 3)}.cmnt\\:my-3{margin-block:calc(var(--cmnt-spacing) * 3)}.cmnt\\:-mt-\\[42px\\]{margin-top:-42px}.cmnt\\:mt-0{margin-top:calc(var(--cmnt-spacing) * 0)}.cmnt\\:mt-0\\.5{margin-top:calc(var(--cmnt-spacing) * .5)}.cmnt\\:mt-1\\.5{margin-top:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:mt-2{margin-top:calc(var(--cmnt-spacing) * 2)}.cmnt\\:mb-1{margin-bottom:calc(var(--cmnt-spacing) * 1)}.cmnt\\:mb-2{margin-bottom:calc(var(--cmnt-spacing) * 2)}.cmnt\\:mb-3\\.5{margin-bottom:calc(var(--cmnt-spacing) * 3.5)}.cmnt\\:-ml-\\[21px\\]{margin-left:-21px}.cmnt\\:ml-1{margin-left:calc(var(--cmnt-spacing) * 1)}.cmnt\\:ml-3{margin-left:calc(var(--cmnt-spacing) * 3)}.cmnt\\:block{display:block}.cmnt\\:flex{display:flex}.cmnt\\:hidden{display:none}.cmnt\\:inline-flex{display:inline-flex}.cmnt\\:h-2\\.5{height:calc(var(--cmnt-spacing) * 2.5)}.cmnt\\:h-3{height:calc(var(--cmnt-spacing) * 3)}.cmnt\\:h-4{height:calc(var(--cmnt-spacing) * 4)}.cmnt\\:h-5{height:calc(var(--cmnt-spacing) * 5)}.cmnt\\:h-7{height:calc(var(--cmnt-spacing) * 7)}.cmnt\\:h-\\[22px\\]{height:22px}.cmnt\\:h-\\[26px\\]{height:26px}.cmnt\\:h-\\[30px\\]{height:30px}.cmnt\\:h-\\[42px\\]{height:42px}.cmnt\\:h-\\[58px\\]{height:58px}.cmnt\\:h-full{height:100%}.cmnt\\:h-px{height:1px}.cmnt\\:max-h-\\[230px\\]{max-height:230px}.cmnt\\:min-h-0{min-height:calc(var(--cmnt-spacing) * 0)}.cmnt\\:w-2\\/5{width:40%}.cmnt\\:w-3{width:calc(var(--cmnt-spacing) * 3)}.cmnt\\:w-4{width:calc(var(--cmnt-spacing) * 4)}.cmnt\\:w-5{width:calc(var(--cmnt-spacing) * 5)}.cmnt\\:w-7{width:calc(var(--cmnt-spacing) * 7)}.cmnt\\:w-80{width:calc(var(--cmnt-spacing) * 80)}.cmnt\\:w-\\[26px\\]{width:26px}.cmnt\\:w-\\[30px\\]{width:30px}.cmnt\\:w-\\[42px\\]{width:42px}.cmnt\\:w-\\[85\\%\\]{width:85%}.cmnt\\:w-\\[88px\\]{width:88px}.cmnt\\:w-\\[360px\\]{width:360px}.cmnt\\:w-full{width:100%}.cmnt\\:w-max{width:max-content}.cmnt\\:max-w-\\[160px\\]{max-width:160px}.cmnt\\:max-w-\\[calc\\(100vw-16px\\)\\]{max-width:calc(100vw - 16px)}.cmnt\\:min-w-0{min-width:calc(var(--cmnt-spacing) * 0)}.cmnt\\:min-w-80{min-width:calc(var(--cmnt-spacing) * 80)}.cmnt\\:min-w-\\[22px\\]{min-width:22px}.cmnt\\:flex-1{flex:1}.cmnt\\:shrink-0{flex-shrink:0}.cmnt\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.cmnt\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.cmnt\\:animate-ping{animation:var(--cmnt-animate-ping)}.cmnt\\:animate-spin{animation:var(--cmnt-animate-spin)}.cmnt\\:cursor-pointer{cursor:pointer}.cmnt\\:flex-col{flex-direction:column}.cmnt\\:items-baseline{align-items:baseline}.cmnt\\:items-center{align-items:center}.cmnt\\:items-start{align-items:flex-start}.cmnt\\:justify-between{justify-content:space-between}.cmnt\\:justify-center{justify-content:center}.cmnt\\:gap-1{gap:calc(var(--cmnt-spacing) * 1)}.cmnt\\:gap-1\\.5{gap:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:gap-2{gap:calc(var(--cmnt-spacing) * 2)}.cmnt\\:gap-\\[9px\\]{gap:9px}.cmnt\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cmnt\\:overflow-auto{overflow:auto}.cmnt\\:overflow-hidden{overflow:hidden}.cmnt\\:overflow-y-auto{overflow-y:auto}.cmnt\\:rounded{border-radius:.25rem}.cmnt\\:rounded-\\[11px\\]{border-radius:11px}.cmnt\\:rounded-full{border-radius:3.40282e38px}.cmnt\\:rounded-lg{border-radius:var(--cmnt-radius-lg)}.cmnt\\:rounded-md{border-radius:var(--cmnt-radius-md)}.cmnt\\:rounded-xl{border-radius:var(--cmnt-radius-xl)}.cmnt\\:border{border-style:var(--tw-border-style);border-width:1px}.cmnt\\:border-0{border-style:var(--tw-border-style);border-width:0}.cmnt\\:border-2{border-style:var(--tw-border-style);border-width:2px}.cmnt\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.cmnt\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.cmnt\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.cmnt\\:border-l-\\[3px\\]{border-left-style:var(--tw-border-style);border-left-width:3px}.cmnt\\:border-none{--tw-border-style:none;border-style:none}.cmnt\\:border-\\[\\#f1f3f5\\]{border-color:#f1f3f5}.cmnt\\:border-blue-600{border-color:var(--cmnt-color-blue-600)}.cmnt\\:border-gray-200{border-color:var(--cmnt-color-gray-200)}.cmnt\\:border-gray-300{border-color:var(--cmnt-color-gray-300)}.cmnt\\:border-slate-300{border-color:var(--cmnt-color-slate-300)}.cmnt\\:border-white{border-color:var(--cmnt-color-white)}.cmnt\\:border-t-transparent{border-top-color:#0000}.cmnt\\:bg-\\[\\#93b4f5\\]{background-color:#93b4f5}.cmnt\\:bg-\\[\\#dbe3f0\\]{background-color:#dbe3f0}.cmnt\\:bg-\\[\\#f3f6fc\\]{background-color:#f3f6fc}.cmnt\\:bg-\\[\\#f7fdf9\\]{background-color:#f7fdf9}.cmnt\\:bg-amber-50{background-color:var(--cmnt-color-amber-50)}.cmnt\\:bg-amber-100{background-color:var(--cmnt-color-amber-100)}.cmnt\\:bg-black\\/40{background-color:var(--cmnt-color-black)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-black\\/40{background-color:color-mix(in oklab, var(--cmnt-color-black) 40%, transparent)}}.cmnt\\:bg-black\\/55{background-color:var(--cmnt-color-black)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-black\\/55{background-color:color-mix(in oklab, var(--cmnt-color-black) 55%, transparent)}}.cmnt\\:bg-blue-500\\/40{background-color:var(--cmnt-color-blue-500)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-blue-500\\/40{background-color:color-mix(in oklab, var(--cmnt-color-blue-500) 40%, transparent)}}.cmnt\\:bg-blue-600,.cmnt\\:bg-blue-600\\/20{background-color:var(--cmnt-color-blue-600)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-blue-600\\/20{background-color:color-mix(in oklab, var(--cmnt-color-blue-600) 20%, transparent)}}.cmnt\\:bg-blue-800{background-color:var(--cmnt-color-blue-800)}.cmnt\\:bg-gray-50{background-color:var(--cmnt-color-gray-50)}.cmnt\\:bg-gray-100{background-color:var(--cmnt-color-gray-100)}.cmnt\\:bg-gray-200{background-color:var(--cmnt-color-gray-200)}.cmnt\\:bg-gray-300{background-color:var(--cmnt-color-gray-300)}.cmnt\\:bg-gray-400{background-color:var(--cmnt-color-gray-400)}.cmnt\\:bg-gray-800{background-color:var(--cmnt-color-gray-800)}.cmnt\\:bg-gray-900{background-color:var(--cmnt-color-gray-900)}.cmnt\\:bg-red-500\\/15{background-color:var(--cmnt-color-red-500)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-red-500\\/15{background-color:color-mix(in oklab, var(--cmnt-color-red-500) 15%, transparent)}}.cmnt\\:bg-transparent{background-color:#0000}.cmnt\\:bg-white,.cmnt\\:bg-white\\/55{background-color:var(--cmnt-color-white)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-white\\/55{background-color:color-mix(in oklab, var(--cmnt-color-white) 55%, transparent)}}.cmnt\\:object-cover{object-fit:cover}.cmnt\\:p-0{padding:calc(var(--cmnt-spacing) * 0)}.cmnt\\:p-1{padding:calc(var(--cmnt-spacing) * 1)}.cmnt\\:p-2{padding:calc(var(--cmnt-spacing) * 2)}.cmnt\\:p-3{padding:calc(var(--cmnt-spacing) * 3)}.cmnt\\:p-6{padding:calc(var(--cmnt-spacing) * 6)}.cmnt\\:px-1{padding-inline:calc(var(--cmnt-spacing) * 1)}.cmnt\\:px-1\\.5{padding-inline:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:px-2{padding-inline:calc(var(--cmnt-spacing) * 2)}.cmnt\\:px-3{padding-inline:calc(var(--cmnt-spacing) * 3)}.cmnt\\:px-4{padding-inline:calc(var(--cmnt-spacing) * 4)}.cmnt\\:px-\\[5px\\]{padding-inline:5px}.cmnt\\:py-0\\.5{padding-block:calc(var(--cmnt-spacing) * .5)}.cmnt\\:py-1{padding-block:calc(var(--cmnt-spacing) * 1)}.cmnt\\:py-1\\.5{padding-block:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:py-2{padding-block:calc(var(--cmnt-spacing) * 2)}.cmnt\\:py-2\\.5{padding-block:calc(var(--cmnt-spacing) * 2.5)}.cmnt\\:py-4{padding-block:calc(var(--cmnt-spacing) * 4)}.cmnt\\:py-6{padding-block:calc(var(--cmnt-spacing) * 6)}.cmnt\\:py-\\[9px\\]{padding-block:9px}.cmnt\\:pt-2\\.5{padding-top:calc(var(--cmnt-spacing) * 2.5)}.cmnt\\:pr-2{padding-right:calc(var(--cmnt-spacing) * 2)}.cmnt\\:pb-1{padding-bottom:calc(var(--cmnt-spacing) * 1)}.cmnt\\:pb-2{padding-bottom:calc(var(--cmnt-spacing) * 2)}.cmnt\\:pl-3{padding-left:calc(var(--cmnt-spacing) * 3)}.cmnt\\:pl-\\[46px\\]{padding-left:46px}.cmnt\\:text-center{text-align:center}.cmnt\\:text-left{text-align:left}.cmnt\\:text-base{font-size:var(--cmnt-text-base);line-height:var(--tw-leading,var(--cmnt-text-base--line-height))}.cmnt\\:text-sm{font-size:var(--cmnt-text-sm);line-height:var(--tw-leading,var(--cmnt-text-sm--line-height))}.cmnt\\:text-xs{font-size:var(--cmnt-text-xs);line-height:var(--tw-leading,var(--cmnt-text-xs--line-height))}.cmnt\\:text-\\[10px\\]{font-size:10px}.cmnt\\:text-\\[11px\\]{font-size:11px}.cmnt\\:text-\\[13px\\]{font-size:13px}.cmnt\\:leading-\\[0\\]{--tw-leading:0;line-height:0}.cmnt\\:leading-relaxed{--tw-leading:var(--cmnt-leading-relaxed);line-height:var(--cmnt-leading-relaxed)}.cmnt\\:font-bold{--tw-font-weight:var(--cmnt-font-weight-bold);font-weight:var(--cmnt-font-weight-bold)}.cmnt\\:font-medium{--tw-font-weight:var(--cmnt-font-weight-medium);font-weight:var(--cmnt-font-weight-medium)}.cmnt\\:font-normal{--tw-font-weight:var(--cmnt-font-weight-normal);font-weight:var(--cmnt-font-weight-normal)}.cmnt\\:font-semibold{--tw-font-weight:var(--cmnt-font-weight-semibold);font-weight:var(--cmnt-font-weight-semibold)}.cmnt\\:whitespace-pre-wrap{white-space:pre-wrap}.cmnt\\:text-amber-700{color:var(--cmnt-color-amber-700)}.cmnt\\:text-blue-600{color:var(--cmnt-color-blue-600)}.cmnt\\:text-gray-400{color:var(--cmnt-color-gray-400)}.cmnt\\:text-gray-500{color:var(--cmnt-color-gray-500)}.cmnt\\:text-gray-600{color:var(--cmnt-color-gray-600)}.cmnt\\:text-gray-700{color:var(--cmnt-color-gray-700)}.cmnt\\:text-gray-900{color:var(--cmnt-color-gray-900)}.cmnt\\:text-green-600{color:var(--cmnt-color-green-600)}.cmnt\\:text-red-700{color:var(--cmnt-color-red-700)}.cmnt\\:text-slate-500{color:var(--cmnt-color-slate-500)}.cmnt\\:text-white{color:var(--cmnt-color-white)}.cmnt\\:italic{font-style:italic}.cmnt\\:underline{text-decoration-line:underline}.cmnt\\:opacity-80{opacity:.8}.cmnt\\:shadow-\\[-8px_0_24px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:-8px 0 24px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:shadow-\\[0_6px_20px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 6px 20px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:shadow-\\[0_12px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 12px 32px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--cmnt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--cmnt-default-transition-duration))}.cmnt\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--cmnt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--cmnt-default-transition-duration))}.cmnt\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--cmnt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--cmnt-default-transition-duration))}.cmnt\\:outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.cmnt\\:group-hover\\:opacity-100:is(:where(.cmnt\\:group):hover *){opacity:1}}.cmnt\\:first\\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}@media (hover:hover){.cmnt\\:hover\\:bg-gray-50:hover{background-color:var(--cmnt-color-gray-50)}.cmnt\\:hover\\:bg-gray-100:hover{background-color:var(--cmnt-color-gray-100)}.cmnt\\:hover\\:no-underline:hover{text-decoration-line:none}.cmnt\\:hover\\:underline:hover{text-decoration-line:underline}}.cmnt\\:disabled\\:cursor-default:disabled{cursor:default}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}';
39030
+ widgetCss = '/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--cmnt-color-red-500:oklch(63.7% .237 25.331);--cmnt-color-red-700:oklch(50.5% .213 27.518);--cmnt-color-amber-50:oklch(98.7% .022 95.277);--cmnt-color-amber-100:oklch(96.2% .059 95.617);--cmnt-color-amber-700:oklch(55.5% .163 48.998);--cmnt-color-green-600:oklch(62.7% .194 149.214);--cmnt-color-blue-500:oklch(62.3% .214 259.815);--cmnt-color-blue-600:oklch(54.6% .245 262.881);--cmnt-color-blue-800:oklch(42.4% .199 265.638);--cmnt-color-slate-300:oklch(86.9% .022 252.894);--cmnt-color-slate-500:oklch(55.4% .046 257.417);--cmnt-color-gray-50:oklch(98.5% .002 247.839);--cmnt-color-gray-100:oklch(96.7% .003 264.542);--cmnt-color-gray-200:oklch(92.8% .006 264.531);--cmnt-color-gray-300:oklch(87.2% .01 258.338);--cmnt-color-gray-400:oklch(70.7% .022 261.325);--cmnt-color-gray-500:oklch(55.1% .027 264.364);--cmnt-color-gray-600:oklch(44.6% .03 256.802);--cmnt-color-gray-700:oklch(37.3% .034 259.733);--cmnt-color-gray-800:oklch(27.8% .033 256.848);--cmnt-color-gray-900:oklch(21% .034 264.665);--cmnt-color-black:#000;--cmnt-color-white:#fff;--cmnt-spacing:4px;--cmnt-text-xs:12px;--cmnt-text-xs--line-height:calc(1 / .75);--cmnt-text-sm:14px;--cmnt-text-sm--line-height:calc(1.25 / .875);--cmnt-text-base:16px;--cmnt-text-base--line-height:calc(1.5 / 1);--cmnt-font-weight-normal:400;--cmnt-font-weight-medium:500;--cmnt-font-weight-semibold:600;--cmnt-font-weight-bold:700;--cmnt-leading-relaxed:1.625;--cmnt-radius-md:6px;--cmnt-radius-lg:8px;--cmnt-radius-xl:12px;--cmnt-animate-spin:spin 1s linear infinite;--cmnt-animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--cmnt-default-transition-duration:.15s;--cmnt-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{[data-comments-root] button,[data-comments-root] input,[data-comments-root] textarea,[data-comments-root] select{font-family:inherit}[data-comments-root],[data-comments-root] *,[data-comments-root] :before,[data-comments-root] :after{box-sizing:border-box}[data-comments-root] :is(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit;margin:0}}@layer components;.cmnt\\:pointer-events-auto{pointer-events:auto}.cmnt\\:pointer-events-none{pointer-events:none}.cmnt\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cmnt\\:absolute{position:absolute}.cmnt\\:fixed{position:fixed}.cmnt\\:relative{position:relative}.cmnt\\:inset-0{inset:calc(var(--cmnt-spacing) * 0)}.cmnt\\:-top-1{top:calc(var(--cmnt-spacing) * -1)}.cmnt\\:-top-1\\.5{top:calc(var(--cmnt-spacing) * -1.5)}.cmnt\\:top-0{top:calc(var(--cmnt-spacing) * 0)}.cmnt\\:top-0\\.5{top:calc(var(--cmnt-spacing) * .5)}.cmnt\\:top-1{top:calc(var(--cmnt-spacing) * 1)}.cmnt\\:top-1\\.5{top:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:top-1\\/2{top:50%}.cmnt\\:top-4{top:calc(var(--cmnt-spacing) * 4)}.cmnt\\:-right-1{right:calc(var(--cmnt-spacing) * -1)}.cmnt\\:-right-\\[7px\\]{right:-7px}.cmnt\\:right-0{right:calc(var(--cmnt-spacing) * 0)}.cmnt\\:right-0\\.5{right:calc(var(--cmnt-spacing) * .5)}.cmnt\\:right-1{right:calc(var(--cmnt-spacing) * 1)}.cmnt\\:right-4{right:calc(var(--cmnt-spacing) * 4)}.cmnt\\:bottom-0{bottom:calc(var(--cmnt-spacing) * 0)}.cmnt\\:bottom-4{bottom:calc(var(--cmnt-spacing) * 4)}.cmnt\\:left-0\\.5{left:calc(var(--cmnt-spacing) * .5)}.cmnt\\:left-1\\.5{left:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:left-1\\/2{left:50%}.cmnt\\:left-\\[14px\\]{left:14px}.cmnt\\:z-\\[var\\(--cmnt-z-launcher\\)\\]{z-index:var(--cmnt-z-launcher)}.cmnt\\:z-\\[var\\(--cmnt-z-surface\\)\\]{z-index:var(--cmnt-z-surface)}.cmnt\\:m-0{margin:calc(var(--cmnt-spacing) * 0)}.cmnt\\:mx-3{margin-inline:calc(var(--cmnt-spacing) * 3)}.cmnt\\:my-3{margin-block:calc(var(--cmnt-spacing) * 3)}.cmnt\\:-mt-\\[42px\\]{margin-top:-42px}.cmnt\\:mt-0{margin-top:calc(var(--cmnt-spacing) * 0)}.cmnt\\:mt-0\\.5{margin-top:calc(var(--cmnt-spacing) * .5)}.cmnt\\:mt-1\\.5{margin-top:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:mt-2{margin-top:calc(var(--cmnt-spacing) * 2)}.cmnt\\:mb-1{margin-bottom:calc(var(--cmnt-spacing) * 1)}.cmnt\\:mb-2{margin-bottom:calc(var(--cmnt-spacing) * 2)}.cmnt\\:mb-3\\.5{margin-bottom:calc(var(--cmnt-spacing) * 3.5)}.cmnt\\:-ml-\\[21px\\]{margin-left:-21px}.cmnt\\:ml-1{margin-left:calc(var(--cmnt-spacing) * 1)}.cmnt\\:ml-3{margin-left:calc(var(--cmnt-spacing) * 3)}.cmnt\\:block{display:block}.cmnt\\:flex{display:flex}.cmnt\\:hidden{display:none}.cmnt\\:inline-flex{display:inline-flex}.cmnt\\:h-2\\.5{height:calc(var(--cmnt-spacing) * 2.5)}.cmnt\\:h-3{height:calc(var(--cmnt-spacing) * 3)}.cmnt\\:h-4{height:calc(var(--cmnt-spacing) * 4)}.cmnt\\:h-5{height:calc(var(--cmnt-spacing) * 5)}.cmnt\\:h-7{height:calc(var(--cmnt-spacing) * 7)}.cmnt\\:h-\\[22px\\]{height:22px}.cmnt\\:h-\\[26px\\]{height:26px}.cmnt\\:h-\\[30px\\]{height:30px}.cmnt\\:h-\\[42px\\]{height:42px}.cmnt\\:h-\\[58px\\]{height:58px}.cmnt\\:h-full{height:100%}.cmnt\\:h-px{height:1px}.cmnt\\:max-h-\\[230px\\]{max-height:230px}.cmnt\\:min-h-0{min-height:calc(var(--cmnt-spacing) * 0)}.cmnt\\:w-2\\/5{width:40%}.cmnt\\:w-3{width:calc(var(--cmnt-spacing) * 3)}.cmnt\\:w-4{width:calc(var(--cmnt-spacing) * 4)}.cmnt\\:w-5{width:calc(var(--cmnt-spacing) * 5)}.cmnt\\:w-7{width:calc(var(--cmnt-spacing) * 7)}.cmnt\\:w-80{width:calc(var(--cmnt-spacing) * 80)}.cmnt\\:w-\\[26px\\]{width:26px}.cmnt\\:w-\\[30px\\]{width:30px}.cmnt\\:w-\\[42px\\]{width:42px}.cmnt\\:w-\\[85\\%\\]{width:85%}.cmnt\\:w-\\[88px\\]{width:88px}.cmnt\\:w-\\[360px\\]{width:360px}.cmnt\\:w-full{width:100%}.cmnt\\:w-max{width:max-content}.cmnt\\:max-w-\\[160px\\]{max-width:160px}.cmnt\\:max-w-\\[calc\\(100vw-16px\\)\\]{max-width:calc(100vw - 16px)}.cmnt\\:min-w-0{min-width:calc(var(--cmnt-spacing) * 0)}.cmnt\\:min-w-4{min-width:calc(var(--cmnt-spacing) * 4)}.cmnt\\:min-w-80{min-width:calc(var(--cmnt-spacing) * 80)}.cmnt\\:min-w-\\[22px\\]{min-width:22px}.cmnt\\:flex-1{flex:1}.cmnt\\:shrink-0{flex-shrink:0}.cmnt\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.cmnt\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.cmnt\\:animate-ping{animation:var(--cmnt-animate-ping)}.cmnt\\:animate-spin{animation:var(--cmnt-animate-spin)}.cmnt\\:cursor-grab{cursor:grab}.cmnt\\:cursor-grabbing{cursor:grabbing}.cmnt\\:cursor-pointer{cursor:pointer}.cmnt\\:touch-none{touch-action:none}.cmnt\\:flex-col{flex-direction:column}.cmnt\\:items-baseline{align-items:baseline}.cmnt\\:items-center{align-items:center}.cmnt\\:items-start{align-items:flex-start}.cmnt\\:justify-between{justify-content:space-between}.cmnt\\:justify-center{justify-content:center}.cmnt\\:gap-1{gap:calc(var(--cmnt-spacing) * 1)}.cmnt\\:gap-1\\.5{gap:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:gap-2{gap:calc(var(--cmnt-spacing) * 2)}.cmnt\\:gap-\\[9px\\]{gap:9px}.cmnt\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cmnt\\:overflow-auto{overflow:auto}.cmnt\\:overflow-hidden{overflow:hidden}.cmnt\\:overflow-y-auto{overflow-y:auto}.cmnt\\:rounded-\\[4px\\]{border-radius:4px}.cmnt\\:rounded-\\[11px\\]{border-radius:11px}.cmnt\\:rounded-full{border-radius:3.40282e38px}.cmnt\\:rounded-lg{border-radius:var(--cmnt-radius-lg)}.cmnt\\:rounded-md{border-radius:var(--cmnt-radius-md)}.cmnt\\:rounded-xl{border-radius:var(--cmnt-radius-xl)}.cmnt\\:border{border-style:var(--tw-border-style);border-width:1px}.cmnt\\:border-0{border-style:var(--tw-border-style);border-width:0}.cmnt\\:border-2{border-style:var(--tw-border-style);border-width:2px}.cmnt\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.cmnt\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.cmnt\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.cmnt\\:border-l-\\[3px\\]{border-left-style:var(--tw-border-style);border-left-width:3px}.cmnt\\:border-none{--tw-border-style:none;border-style:none}.cmnt\\:border-\\[\\#f1f3f5\\]{border-color:#f1f3f5}.cmnt\\:border-blue-600{border-color:var(--cmnt-color-blue-600)}.cmnt\\:border-gray-200{border-color:var(--cmnt-color-gray-200)}.cmnt\\:border-gray-300{border-color:var(--cmnt-color-gray-300)}.cmnt\\:border-slate-300{border-color:var(--cmnt-color-slate-300)}.cmnt\\:border-white{border-color:var(--cmnt-color-white)}.cmnt\\:border-t-transparent{border-top-color:#0000}.cmnt\\:bg-\\[\\#93b4f5\\]{background-color:#93b4f5}.cmnt\\:bg-\\[\\#dbe3f0\\]{background-color:#dbe3f0}.cmnt\\:bg-\\[\\#f3f6fc\\]{background-color:#f3f6fc}.cmnt\\:bg-\\[\\#f7fdf9\\]{background-color:#f7fdf9}.cmnt\\:bg-amber-50{background-color:var(--cmnt-color-amber-50)}.cmnt\\:bg-amber-100{background-color:var(--cmnt-color-amber-100)}.cmnt\\:bg-black\\/40{background-color:var(--cmnt-color-black)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-black\\/40{background-color:color-mix(in oklab, var(--cmnt-color-black) 40%, transparent)}}.cmnt\\:bg-black\\/55{background-color:var(--cmnt-color-black)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-black\\/55{background-color:color-mix(in oklab, var(--cmnt-color-black) 55%, transparent)}}.cmnt\\:bg-blue-500\\/40{background-color:var(--cmnt-color-blue-500)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-blue-500\\/40{background-color:color-mix(in oklab, var(--cmnt-color-blue-500) 40%, transparent)}}.cmnt\\:bg-blue-600,.cmnt\\:bg-blue-600\\/20{background-color:var(--cmnt-color-blue-600)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-blue-600\\/20{background-color:color-mix(in oklab, var(--cmnt-color-blue-600) 20%, transparent)}}.cmnt\\:bg-blue-800{background-color:var(--cmnt-color-blue-800)}.cmnt\\:bg-gray-50{background-color:var(--cmnt-color-gray-50)}.cmnt\\:bg-gray-100{background-color:var(--cmnt-color-gray-100)}.cmnt\\:bg-gray-200{background-color:var(--cmnt-color-gray-200)}.cmnt\\:bg-gray-300{background-color:var(--cmnt-color-gray-300)}.cmnt\\:bg-gray-400{background-color:var(--cmnt-color-gray-400)}.cmnt\\:bg-gray-800{background-color:var(--cmnt-color-gray-800)}.cmnt\\:bg-gray-900{background-color:var(--cmnt-color-gray-900)}.cmnt\\:bg-red-500\\/15{background-color:var(--cmnt-color-red-500)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-red-500\\/15{background-color:color-mix(in oklab, var(--cmnt-color-red-500) 15%, transparent)}}.cmnt\\:bg-transparent{background-color:#0000}.cmnt\\:bg-white,.cmnt\\:bg-white\\/55{background-color:var(--cmnt-color-white)}@supports (color:color-mix(in lab, red, red)){.cmnt\\:bg-white\\/55{background-color:color-mix(in oklab, var(--cmnt-color-white) 55%, transparent)}}.cmnt\\:object-cover{object-fit:cover}.cmnt\\:p-0{padding:calc(var(--cmnt-spacing) * 0)}.cmnt\\:p-1{padding:calc(var(--cmnt-spacing) * 1)}.cmnt\\:p-2{padding:calc(var(--cmnt-spacing) * 2)}.cmnt\\:p-3{padding:calc(var(--cmnt-spacing) * 3)}.cmnt\\:p-6{padding:calc(var(--cmnt-spacing) * 6)}.cmnt\\:px-1{padding-inline:calc(var(--cmnt-spacing) * 1)}.cmnt\\:px-1\\.5{padding-inline:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:px-2{padding-inline:calc(var(--cmnt-spacing) * 2)}.cmnt\\:px-3{padding-inline:calc(var(--cmnt-spacing) * 3)}.cmnt\\:px-4{padding-inline:calc(var(--cmnt-spacing) * 4)}.cmnt\\:px-\\[5px\\]{padding-inline:5px}.cmnt\\:py-0\\.5{padding-block:calc(var(--cmnt-spacing) * .5)}.cmnt\\:py-1{padding-block:calc(var(--cmnt-spacing) * 1)}.cmnt\\:py-1\\.5{padding-block:calc(var(--cmnt-spacing) * 1.5)}.cmnt\\:py-2{padding-block:calc(var(--cmnt-spacing) * 2)}.cmnt\\:py-2\\.5{padding-block:calc(var(--cmnt-spacing) * 2.5)}.cmnt\\:py-4{padding-block:calc(var(--cmnt-spacing) * 4)}.cmnt\\:py-6{padding-block:calc(var(--cmnt-spacing) * 6)}.cmnt\\:py-\\[9px\\]{padding-block:9px}.cmnt\\:pt-2\\.5{padding-top:calc(var(--cmnt-spacing) * 2.5)}.cmnt\\:pb-1{padding-bottom:calc(var(--cmnt-spacing) * 1)}.cmnt\\:pb-2{padding-bottom:calc(var(--cmnt-spacing) * 2)}.cmnt\\:pl-\\[46px\\]{padding-left:46px}.cmnt\\:text-center{text-align:center}.cmnt\\:text-left{text-align:left}.cmnt\\:text-base{font-size:var(--cmnt-text-base);line-height:var(--tw-leading,var(--cmnt-text-base--line-height))}.cmnt\\:text-sm{font-size:var(--cmnt-text-sm);line-height:var(--tw-leading,var(--cmnt-text-sm--line-height))}.cmnt\\:text-xs{font-size:var(--cmnt-text-xs);line-height:var(--tw-leading,var(--cmnt-text-xs--line-height))}.cmnt\\:text-\\[10px\\]{font-size:10px}.cmnt\\:text-\\[11px\\]{font-size:11px}.cmnt\\:text-\\[13px\\]{font-size:13px}.cmnt\\:leading-4{--tw-leading:calc(var(--cmnt-spacing) * 4);line-height:calc(var(--cmnt-spacing) * 4)}.cmnt\\:leading-\\[0\\]{--tw-leading:0;line-height:0}.cmnt\\:leading-relaxed{--tw-leading:var(--cmnt-leading-relaxed);line-height:var(--cmnt-leading-relaxed)}.cmnt\\:font-bold{--tw-font-weight:var(--cmnt-font-weight-bold);font-weight:var(--cmnt-font-weight-bold)}.cmnt\\:font-medium{--tw-font-weight:var(--cmnt-font-weight-medium);font-weight:var(--cmnt-font-weight-medium)}.cmnt\\:font-normal{--tw-font-weight:var(--cmnt-font-weight-normal);font-weight:var(--cmnt-font-weight-normal)}.cmnt\\:font-semibold{--tw-font-weight:var(--cmnt-font-weight-semibold);font-weight:var(--cmnt-font-weight-semibold)}.cmnt\\:whitespace-pre-wrap{white-space:pre-wrap}.cmnt\\:text-amber-700{color:var(--cmnt-color-amber-700)}.cmnt\\:text-blue-600{color:var(--cmnt-color-blue-600)}.cmnt\\:text-gray-400{color:var(--cmnt-color-gray-400)}.cmnt\\:text-gray-500{color:var(--cmnt-color-gray-500)}.cmnt\\:text-gray-600{color:var(--cmnt-color-gray-600)}.cmnt\\:text-gray-700{color:var(--cmnt-color-gray-700)}.cmnt\\:text-gray-900{color:var(--cmnt-color-gray-900)}.cmnt\\:text-green-600{color:var(--cmnt-color-green-600)}.cmnt\\:text-red-700{color:var(--cmnt-color-red-700)}.cmnt\\:text-slate-500{color:var(--cmnt-color-slate-500)}.cmnt\\:text-white{color:var(--cmnt-color-white)}.cmnt\\:italic{font-style:italic}.cmnt\\:underline{text-decoration-line:underline}.cmnt\\:opacity-80{opacity:.8}.cmnt\\:shadow-\\[-8px_0_24px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:-8px 0 24px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:shadow-\\[0_6px_20px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 6px 20px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:shadow-\\[0_12px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 12px 32px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmnt\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--cmnt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--cmnt-default-transition-duration))}.cmnt\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--cmnt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--cmnt-default-transition-duration))}.cmnt\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--cmnt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--cmnt-default-transition-duration))}.cmnt\\:outline-none{--tw-outline-style:none;outline-style:none}.cmnt\\:select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.cmnt\\:group-hover\\:opacity-100:is(:where(.cmnt\\:group):hover *){opacity:1}}.cmnt\\:first\\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}@media (hover:hover){.cmnt\\:hover\\:bg-gray-50:hover{background-color:var(--cmnt-color-gray-50)}.cmnt\\:hover\\:bg-gray-100:hover{background-color:var(--cmnt-color-gray-100)}.cmnt\\:hover\\:no-underline:hover{text-decoration-line:none}.cmnt\\:hover\\:underline:hover{text-decoration-line:underline}}.cmnt\\:disabled\\:cursor-default:disabled{cursor:default}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}';
38821
39031
  }
38822
39032
  });
38823
39033
 
@@ -38829,7 +39039,7 @@ __export(mount_exports, {
38829
39039
  function mount(options) {
38830
39040
  const host = document.createElement("div");
38831
39041
  host.setAttribute("data-comments-root", "");
38832
- host.style.cssText = 'all: revert; position: fixed; inset: 0; pointer-events: none; z-index: 2147483600; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";';
39042
+ host.style.cssText = 'all: revert; position: fixed; inset: 0; pointer-events: none; z-index: 2147483647; --cmnt-z-surface: 2147400100; --cmnt-z-launcher: 2147400200; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";';
38833
39043
  const style = document.createElement("style");
38834
39044
  style.setAttribute("data-comments-style", "");
38835
39045
  style.textContent = widgetCss;