@factorialco/f0-react 4.40.0 → 4.41.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/f0.d.ts CHANGED
@@ -4902,6 +4902,8 @@ export declare const defaultTranslations: {
4902
4902
  readonly noResults: "No chats found";
4903
4903
  readonly backToLatest: "Jump to latest";
4904
4904
  readonly muted: "Muted";
4905
+ readonly mute: "Mute";
4906
+ readonly unmute: "Unmute";
4905
4907
  readonly attachFile: "Attach file";
4906
4908
  readonly addEmoji: "Add emoji";
4907
4909
  readonly recordAudio: "Record audio";
@@ -4928,6 +4930,13 @@ export declare const defaultTranslations: {
4928
4930
  readonly twoTyping: "{{first}} and {{second}} are writing…";
4929
4931
  readonly severalTyping: "Several people are writing…";
4930
4932
  readonly deletedMessage: "Message deleted";
4933
+ readonly location: "Location";
4934
+ readonly voiceNote: "Voice note";
4935
+ readonly sendVoiceNote: "Send voice note";
4936
+ readonly sendingVoiceNote: "Sending voice note…";
4937
+ readonly sending: "Sending…";
4938
+ readonly notSent: "Not sent";
4939
+ readonly retry: "Retry";
4931
4940
  readonly moreActions: "Message actions";
4932
4941
  readonly options: "Options";
4933
4942
  readonly pin: "Pin";
@@ -4966,6 +4975,22 @@ export declare const defaultTranslations: {
4966
4975
  };
4967
4976
  readonly scrollToBottom: "Scroll to bottom";
4968
4977
  readonly newMessages: "New messages";
4978
+ readonly system: {
4979
+ readonly memberAdded: {
4980
+ readonly one: "{{members}} was added to the group";
4981
+ readonly other: "{{members}} were added to the group";
4982
+ };
4983
+ readonly memberRemoved: {
4984
+ readonly one: "{{members}} was removed from the group";
4985
+ readonly other: "{{members}} were removed from the group";
4986
+ };
4987
+ readonly memberLeft: {
4988
+ readonly one: "{{members}} left the group";
4989
+ readonly other: "{{members}} left the group";
4990
+ };
4991
+ readonly membersWithLast: "{{names}} and {{last}}";
4992
+ readonly membersWithMore: "{{names}} and {{count}} more";
4993
+ };
4969
4994
  readonly unreadCount: {
4970
4995
  readonly one: "{{count}} unread";
4971
4996
  readonly other: "{{count}} unread";
package/dist/f0.js CHANGED
@@ -1,13 +1,13 @@
1
- import { gR as LayoutProvider$1, a8 as withDataTestId, c0 as Component, o as cn, q as cva, gz as useDeepCompareEffect, p as motion, eU as isEqual, gS as Text, af as withSkeleton, U as Skeleton, u as useI18n, H as F0Icon, dp as ForwardRef, A as AnimatePresence, j as DropdownInternal, L as ButtonInternal, bP as ForwardRef$2, a9 as experimentalComponent, a5 as Dropdown, gT as require_baseFlatten, ae as OneEllipsis, gw as Tag$1, gU as useNormalizeNumericValueWithFormatter, gV as numericFormatter, gW as numericFinalValue, e2 as F0TagBalance, gX as actionButtonVariants, gY as actionSizes, ft as useControllableState, gZ as createContextScope, g_ as createCollection, g$ as composeEventHandlers, h0 as Primitive, h1 as useComposedRefs, h2 as useDirection, h3 as clamp$1, h4 as useSize, h5 as usePrevious, cj as ForwardRef$3, ci as ForwardRef$4, v as focusRing, J as DropdownMenu, K as DropdownMenuTrigger, Q as F0Button, O as DropdownMenuContent, fZ as DropdownMenuLabel, Y as DropdownMenuItem, ad as ForwardRef$5, _ as DropdownMenuSeparator, aQ as useReducedMotion, am as ScrollArea, h6 as actionLinkVariants, b9 as Collapsible, dZ as CollapsibleTrigger, bN as ForwardRef$6, ba as ForwardRef$7, bb as CollapsibleContent, aE as Popover, aF as PopoverTrigger, aG as PopoverContent, cP as Chip, fH as ScrollBar, h7 as OverflowList, gy as getDataCollectionStorageKey, fy as INPUTFIELD_SIZES, h8 as getFilterType, fr as DataTestIdWrapper, h9 as FilterPickerInternal, aa as ForwardRef$8, ar as Counter, c_ as ForwardRef$9, bW as ForwardRef$a, g5 as unwrapToZodObject, g6 as getF0Config, g8 as objectType, gF as inferFieldType, fX as InputMessages, ha as getAugmentedNamespace, eE as getDefaultExportFromCjs, hb as invariant, ey as clsx, dA as ForwardRef$b, at as ForwardRef$c, aw as F0Select, dF as ForwardRef$d, bV as ForwardRef$f, fW as Label, hc as F0AvatarIcon, dy as ForwardRef$g, gm as GroupHeader, a3 as F0TagStatus, fq as Progress, cl as ForwardRef$h, gO as Metadata, bA as HoverCard, bB as HoverCardTrigger, bC as HoverCardContent, d as F0OneIcon, G as ForwardRef$k, d4 as ForwardRef$l, dM as ForwardRef$m, dx as ForwardRef$o, co as ForwardRef$p, bL as ForwardRef$q, cU as ForwardRef$r, f$ as DropdownMenuSub, g0 as DropdownMenuSubTrigger, N as DropdownMenuPortal, g1 as DropdownMenuSubContent, f_ as DropdownMenuGroup, bX as ForwardRef$t, dv as ForwardRef$u, bm as ForwardRef$v, be as F0Icon$1, cv as Switch, a2 as Tooltip, dz as ForwardRef$x, d_ as F0Checkbox, cu as F0TextInput, $ as ForwardRef$y, aZ as F0TagRaw, aD as F0DialogContext, gf as f0FormField, hd as unknownType, he as booleanType, hf as arrayType, hg as stringType, hh as numberType, hi as dateType, bQ as ForwardRef$A, bR as ForwardRef$B, dX as F0Dialog$1, hj as ProgressBarCell, aT as F0AvatarModule, bS as Dialog$1, bT as DialogContent, bU as DialogTitle, c1 as Card, c5 as CardContent, cc as CardFooter, dO as ForwardRef$C, c2 as CardHeader, b8 as ForwardRef$D, S as ForwardRef$E, bd as F0Avatar, a1 as ForwardRef$F, bv as ForwardRef$G, dL as ForwardRef$H, fu as ToggleGroup, fv as ToggleGroupItem, hk as F0ButtonToggleInternal, aY as F0RichTextDisplay2, c6 as ForwardRef$I, a6 as ForwardRef$O, b$ as ForwardRef$P, gC as OneFilterPicker, fI as toArray, bH as F0AvatarAlert, b0 as F0Link, y as useMediaQuery, hl as useIsomorphicLayoutEffect, hm as UserPlatformProvider, hn as L10nProvider, I as I18nProvider, ho as LinkProvider, hp as XRayProvider, hq as ImageProvider, hr as DataCollectionStorageProvider } from "./F0CanvasPanel-C9dAQPQK.js";
2
- import { hH as fe, C as ve, D as Le, aR as Ye, c as Xe, F as Se, a as Ve, hA as xe, f as Ie, bh as Re, aS as we, ce as ze, dU as De, aJ as Ce, bq as ke, al as Oe, e1 as Fe, au as je, cs as Ee, g as Ue, bD as Je, ct as Pe, hv as Ke, hM as He, bI as Ae, e as Qe, bM as Be, c7 as _e, hC as $e, b4 as qe, hD as ti, hF as ei, hG as ii, cS as ai, hJ as ni, cL as li, cM as ri, P as si, cQ as oi, hE as ci, cN as di, hI as ui, hN as hi, hs as mi, ht as pi, hu as bi, cO as Zi, hL as yi, hB as Mi, hy as Ni, hx as Wi, cR as Gi, fU as Ti, gn as gi, hK as fi, aW as vi, cK as Li, cH as Yi, cJ as Xi, cG as Si, hz as Vi, gp as xi, gj as Ii, g9 as Ri, hQ as wi, cy as zi, cI as Di, hP as Ci, br as ki, dV as Oi, fT as Fi, ga as ji, b as Ei, bu as Ui, gE as Ji, aU as Pi, dW as Ki, hw as Hi, gl as Ai, gk as Qi, hO as Bi } from "./F0CanvasPanel-C9dAQPQK.js";
1
+ import { gT as LayoutProvider$1, a9 as withDataTestId, c8 as Component, p as cn, r as cva, gB as useDeepCompareEffect, q as motion, eW as isEqual, gU as Text, ag as withSkeleton, V as Skeleton, u as useI18n, J as F0Icon, du as ForwardRef, E as AnimatePresence, k as DropdownInternal, M as ButtonInternal, bR as ForwardRef$2, aa as experimentalComponent, a6 as Dropdown, gV as require_baseFlatten, af as OneEllipsis, gy as Tag$1, gW as useNormalizeNumericValueWithFormatter, gX as numericFormatter, gY as numericFinalValue, e5 as F0TagBalance, gZ as actionButtonVariants, g_ as actionSizes, fv as useControllableState, g$ as createContextScope, h0 as createCollection, h1 as composeEventHandlers, h2 as Primitive, h3 as useComposedRefs, h4 as useDirection, h5 as clamp$1, h6 as useSize, h7 as usePrevious, c1 as ForwardRef$3, c2 as ForwardRef$4, w as focusRing, K as DropdownMenu, L as DropdownMenuTrigger, S as F0Button, Q as DropdownMenuContent, f$ as DropdownMenuLabel, Z as DropdownMenuItem, ae as ForwardRef$5, $ as DropdownMenuSeparator, aR as useReducedMotion, an as ScrollArea, h8 as actionLinkVariants, ba as Collapsible, e2 as CollapsibleTrigger, bP as ForwardRef$6, bb as ForwardRef$7, bc as CollapsibleContent, aF as Popover, aG as PopoverTrigger, aH as PopoverContent, cV as Chip, fJ as ScrollBar, h9 as OverflowList, gA as getDataCollectionStorageKey, fA as INPUTFIELD_SIZES, ha as getFilterType, ft as DataTestIdWrapper, hb as FilterPickerInternal, ab as ForwardRef$8, as as Counter, d4 as ForwardRef$9, bY as ForwardRef$a, g7 as unwrapToZodObject, g8 as getF0Config, ga as objectType, gH as inferFieldType, fZ as InputMessages, hc as getAugmentedNamespace, h as getDefaultExportFromCjs, hd as invariant, eB as clsx, dF as ForwardRef$b, au as ForwardRef$c, ax as F0Select, dK as ForwardRef$d, bX as ForwardRef$f, fY as Label, he as F0AvatarIcon, dD as ForwardRef$g, go as GroupHeader, a4 as F0TagStatus, fs as Progress, cr as ForwardRef$h, gQ as Metadata, by as ForwardRef$j, bD as HoverCard, bE as HoverCardTrigger, bF as HoverCardContent, d as F0OneIcon, H as ForwardRef$k, da as ForwardRef$l, dR as ForwardRef$m, dC as ForwardRef$o, cu as ForwardRef$p, bN as ForwardRef$q, c_ as ForwardRef$r, g1 as DropdownMenuSub, g2 as DropdownMenuSubTrigger, O as DropdownMenuPortal, g3 as DropdownMenuSubContent, g0 as DropdownMenuGroup, bZ as ForwardRef$t, dA as ForwardRef$u, bn as ForwardRef$v, bf as F0Icon$1, cB as Switch, a3 as Tooltip, dE as ForwardRef$x, e3 as F0Checkbox, cA as F0TextInput, a0 as ForwardRef$y, a_ as F0TagRaw, aE as F0DialogContext, gh as f0FormField, hf as unknownType, hg as booleanType, hh as arrayType, hi as stringType, hj as numberType, hk as dateType, bS as ForwardRef$A, bT as ForwardRef$B, e0 as F0Dialog$1, hl as ProgressBarCell, aU as F0AvatarModule, bU as Dialog$1, bV as DialogContent, bW as DialogTitle, c9 as Card, cd as CardContent, ck as CardFooter, dT as ForwardRef$C, ca as CardHeader, b9 as ForwardRef$D, U as ForwardRef$E, be as F0Avatar, a2 as ForwardRef$F, bw as ForwardRef$G, dQ as ForwardRef$H, fw as ToggleGroup, fx as ToggleGroupItem, hm as F0ButtonToggleInternal, aZ as F0RichTextDisplay2, ce as ForwardRef$I, a7 as ForwardRef$O, c7 as ForwardRef$P, gE as OneFilterPicker, fK as toArray, bK as F0AvatarAlert, b1 as F0Link, z as useMediaQuery, hn as useIsomorphicLayoutEffect, ho as UserPlatformProvider, hp as L10nProvider, I as I18nProvider, hq as LinkProvider, hr as XRayProvider, hs as ImageProvider, ht as DataCollectionStorageProvider } from "./F0CanvasPanel-G_pQo8tM.js";
2
+ import { hJ as fe, C as ve, D as Le, aS as Ye, c as Xe, F as Se, a as Ve, hC as xe, f as Ie, bi as Re, aT as we, cm as ze, dZ as De, aK as Ce, br as ke, am as Oe, e4 as Fe, av as je, cy as Ee, g as Ue, bG as Je, cz as Pe, hx as Ke, hO as He, bL as Ae, e as Qe, bO as Be, cf as _e, hE as $e, b5 as qe, hF as ti, hH as ei, hI as ii, cY as ai, hL as ni, cR as li, cS as ri, P as si, cW as oi, hG as ci, cT as di, hK as ui, hP as hi, hu as mi, hv as pi, hw as bi, cU as Zi, hN as yi, hD as Mi, hA as Ni, hz as Wi, cX as Gi, fW as Ti, gp as gi, hM as fi, aX as vi, cQ as Li, cN as Yi, cP as Xi, cM as Si, hB as Vi, gr as xi, gl as Ii, gb as Ri, hS as wi, cE as zi, cO as Di, hR as Ci, bs as ki, d_ as Oi, fV as Fi, gc as ji, b as Ei, bv as Ui, gG as Ji, aV as Pi, d$ as Ki, hy as Hi, gn as Ai, gm as Qi, hQ as Bi } from "./F0CanvasPanel-G_pQo8tM.js";
3
3
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
4
4
  import * as React from "react";
5
5
  import React__default, { forwardRef, useRef, useImperativeHandle, Children, createContext, useContext, useState, useMemo, useEffect, useCallback, useLayoutEffect, isValidElement, Fragment as Fragment$1, useSyncExternalStore, useId, useReducer, memo } from "react";
6
- import { D as AIButton, E as ForwardRef$1, G as ForwardRef$e, H as ForwardRef$i, I as ForwardRef$j, J as ForwardRef$n, K as ForwardRef$s, L as ForwardRef$w, M as ForwardRef$z, N as F0Box, O as ForwardRef$J, P as ForwardRef$K, Q as ForwardRef$L, R as ForwardRef$M, S as ForwardRef$N, F as FormCardValueFormatterProvider } from "./F0AiProcessingOverlay-BLmKNois.js";
7
- import { A as $i, C as qi, t as ta, s as ea, v as ia, y as aa, l as na, i as la, q as ra, z as sa, B as oa, p as ca, r as da, j as ua, e as ha, g as ma, k as pa, T as ba, w as Za, h as ya, a as Ma, n as Na, m as Wa, o as Ga, b as Ta, f as ga, x as fa, c as va, d as La, u as Ya } from "./F0AiProcessingOverlay-BLmKNois.js";
6
+ import { D as AIButton, E as ForwardRef$1, G as ForwardRef$e, H as ForwardRef$i, I as ForwardRef$n, J as ForwardRef$s, K as ForwardRef$w, L as ForwardRef$z, M as F0Box, N as ForwardRef$J, O as ForwardRef$K, P as ForwardRef$L, Q as ForwardRef$M, R as ForwardRef$N, F as FormCardValueFormatterProvider } from "./F0AiProcessingOverlay-BoowZoPM.js";
7
+ import { A as $i, C as qi, t as ta, s as ea, v as ia, y as aa, l as na, i as la, q as ra, z as sa, B as oa, p as ca, r as da, j as ua, e as ha, g as ma, k as pa, T as ba, w as Za, h as ya, a as Ma, n as Na, m as Wa, o as Ga, b as Ta, f as ga, x as fa, c as va, d as La, u as Ya } from "./F0AiProcessingOverlay-BoowZoPM.js";
8
8
  import { createPortal } from "react-dom";
9
- import { C as Carousel, ai as useSortable, aj as CSS$1, ak as useSensors, al as useSensor, am as sortableKeyboardCoordinates, an as KeyboardSensor, ao as PointerSensor, ap as DndContext, aq as SortableContext, ar as DragOverlay, as as arrayMove, F as F0SegmentedControl, at as Header, au as Content, av as Footer, aw as DialogWrapper, ax as dialogAlikePrivateProps, ay as F0Dialog, az as useF0Form, aA as F0Form, G as F0ActionBar, aB as F0FormSection, aC as formOverlaysStore, aD as isFieldRequired, aE as evaluateRenderIf, aF as buildDynamicSchema, aG as renderFieldInput, aH as nanoid, aI as mountFormOverlay, aJ as unmountFormOverlay, aK as openFormDialog, aL as dequal, Y as F0TableOfContent, a9 as Dialog, aM as FormMessage, Q as F0NumberInput, aN as EmojiPicker, aO as data, c as ReorderItem, R as ReorderGroup, u as useDragControls, W as ResourceHeader, O as OneEmptyState, aP as UpsellRequestResponseDialog, aQ as Label$1, aR as UpsellingButton, o as BaseBanner, d as useDataCollectionSource, a0 as OneDataCollection, aS as extractDisplayValue, aT as navigationFilterTypes, aU as NavigationFilters, aV as DialogInternal, aW as DialogDescription, aX as PrivacyModeProvider, M as MotionConfig } from "./index-CtSPmGXi.js";
10
- import { r as Sa, s as Va, H as xa, t as Ia, z as Ra, bf as wa, be as za, ba as Da, aZ as Ca, aY as ka, a_ as Oa, a$ as Fa, b1 as ja, b2 as Ea, ab as Ua, aa as Ja, ae as Pa, U as Ka, J as Ha, ag as Aa, K as Qa, v as Ba, bg as $a, ac as qa, ad as tn, N as en, w as an, P as nn, y as ln, D as rn, af as sn, T as on, ah as dn, x as un, E as hn, bi as mn, m as pn, n as bn, b9 as Zn, b5 as yn, b4 as Mn, bh as Nn, a7 as Wn, b7 as Gn, b8 as Tn, I as gn, bj as fn, bk as vn, e as Ln, bb as Yn, bc as Xn, bd as Sn, b0 as Vn, b6 as xn, f as In, h as Rn, b3 as wn, bl as zn } from "./index-CtSPmGXi.js";
9
+ import { C as Carousel, aj as useSortable, ak as CSS$1, al as useSensors, am as useSensor, an as sortableKeyboardCoordinates, ao as KeyboardSensor, ap as PointerSensor, aq as DndContext, ar as SortableContext, as as DragOverlay, at as arrayMove, h as useAudioPlayer, F as F0SegmentedControl, au as Header, av as Content, aw as Footer, ax as DialogWrapper, ay as dialogAlikePrivateProps, az as F0Dialog, aA as useF0Form, aB as F0Form, H as F0ActionBar, aC as F0FormSection, aD as formOverlaysStore, aE as isFieldRequired, aF as evaluateRenderIf, aG as buildDynamicSchema, aH as renderFieldInput, aI as nanoid, aJ as mountFormOverlay, aK as unmountFormOverlay, aL as openFormDialog, aM as dequal, Z as F0TableOfContent, aa as Dialog, aN as FormMessage, T as F0NumberInput, aO as EmojiPicker, aP as data, c as ReorderItem, R as ReorderGroup, u as useDragControls, X as ResourceHeader, O as OneEmptyState, aQ as UpsellRequestResponseDialog, aR as Label$1, aS as UpsellingButton, q as BaseBanner, d as useDataCollectionSource, a1 as OneDataCollection, aT as extractDisplayValue, aU as navigationFilterTypes, aV as NavigationFilters, aW as DialogInternal, aX as DialogDescription, aY as PrivacyModeProvider, M as MotionConfig } from "./index-BOxXUdnM.js";
10
+ import { s as Sa, t as Va, I as xa, v as Ia, D as Ra, bg as wa, bf as za, bb as Da, a_ as Ca, aZ as ka, a$ as Oa, b0 as Fa, b2 as ja, b3 as Ea, ac as Ua, ab as Ja, af as Pa, W as Ka, K as Ha, ah as Aa, N as Qa, w as Ba, bh as $a, ad as qa, ae as tn, Q as en, x as an, P as nn, z as ln, E as rn, ag as sn, U as on, ai as dn, y as un, G as hn, bj as mn, n as pn, o as bn, ba as Zn, b6 as yn, b5 as Mn, bi as Nn, a8 as Wn, b8 as Gn, b9 as Tn, J as gn, bk as fn, bl as vn, e as Ln, bc as Yn, bd as Xn, be as Sn, b1 as Vn, b7 as xn, f as In, i as Rn, b4 as wn, bm as zn } from "./index-BOxXUdnM.js";
11
11
  import { utils, write as writeSync } from "./xlsx-Bedf3nwD.js";
12
12
  import { defaultTranslations as Cn } from "./i18n-provider-defaults.js";
13
13
  import './f0.css';const CAROUSEL_COLUMNS = {
@@ -55318,72 +55318,6 @@ const Slider = Root, SliderTrack = Track, SliderRange = Range, SliderThumb = Thu
55318
55318
  children: /* @__PURE__ */ jsx(Y, { className: W === "sm" ? "size-5" : "size-6" })
55319
55319
  }
55320
55320
  );
55321
- }, useAudioPlayer = (G, Z = {}, W = 0) => {
55322
- const T = useRef(Z);
55323
- T.current = Z;
55324
- const L = useRef(W);
55325
- L.current = W;
55326
- const [Y, X] = useState(!1), [S, V] = useState(0), [I, R] = useState(W), [z, D] = useState(0), [C, O] = useState(1), [F, E] = useState(!0), [U, J] = useState(null);
55327
- useEffect(() => {
55328
- const _ = G.current;
55329
- if (!_) return;
55330
- const q = () => {
55331
- R(
55332
- Number.isFinite(_.duration) ? _.duration : L.current
55333
- ), E(!1);
55334
- }, et = () => {
55335
- V(_.currentTime), T.current.onTimeUpdate?.(_.currentTime);
55336
- }, tt = () => {
55337
- X(!0), T.current.onPlay?.();
55338
- }, ot = () => {
55339
- X(!1), T.current.onPause?.();
55340
- }, nt = () => {
55341
- X(!1), T.current.onEnded?.();
55342
- }, ht = () => {
55343
- _.buffered.length > 0 && D(_.buffered.end(_.buffered.length - 1));
55344
- }, pt = () => E(!0), mt = () => E(!1), ut = () => O(_.playbackRate), at = () => {
55345
- J(_.error), E(!1), T.current.onError?.(_.error);
55346
- };
55347
- return _.addEventListener("loadedmetadata", q), _.addEventListener("timeupdate", et), _.addEventListener("play", tt), _.addEventListener("pause", ot), _.addEventListener("ended", nt), _.addEventListener("progress", ht), _.addEventListener("waiting", pt), _.addEventListener("canplay", mt), _.addEventListener("ratechange", ut), _.addEventListener("error", at), _.readyState >= 1 && q(), () => {
55348
- _.removeEventListener("loadedmetadata", q), _.removeEventListener("timeupdate", et), _.removeEventListener("play", tt), _.removeEventListener("pause", ot), _.removeEventListener("ended", nt), _.removeEventListener("progress", ht), _.removeEventListener("waiting", pt), _.removeEventListener("canplay", mt), _.removeEventListener("ratechange", ut), _.removeEventListener("error", at);
55349
- };
55350
- }, [G]);
55351
- const P = useCallback(() => {
55352
- G.current?.play().catch(() => {
55353
- });
55354
- }, [G]), A = useCallback(() => {
55355
- G.current?.pause();
55356
- }, [G]), K = useCallback(() => {
55357
- Y ? A() : P();
55358
- }, [Y, P, A]), Q = useCallback(
55359
- (_) => {
55360
- const q = G.current;
55361
- if (!q) return;
55362
- const et = Number.isFinite(q.duration) ? q.duration : _, tt = Math.min(Math.max(_, 0), et);
55363
- q.currentTime = tt, V(tt), T.current.onSeek?.(tt);
55364
- },
55365
- [G]
55366
- ), B = useCallback(
55367
- (_) => {
55368
- const q = G.current;
55369
- q && (q.playbackRate = _, O(_));
55370
- },
55371
- [G]
55372
- );
55373
- return {
55374
- isPlaying: Y,
55375
- currentTime: S,
55376
- duration: I,
55377
- buffered: z,
55378
- playbackRate: C,
55379
- isLoading: F,
55380
- error: U,
55381
- play: P,
55382
- pause: A,
55383
- toggle: K,
55384
- seek: Q,
55385
- setPlaybackRate: B
55386
- };
55387
55321
  }, usePlayerController = (G) => {
55388
55322
  const {
55389
55323
  src: Z,
@@ -55860,7 +55794,7 @@ const audioPlayerSizes = ["sm", "md"], F0AudioPlayer = experimentalComponent(
55860
55794
  "aria-live": "polite",
55861
55795
  className: cn(
55862
55796
  "flex flex-col rounded-md border border-solid border-f1-border-secondary",
55863
- "overflow-hidden bg-f1-background shadow"
55797
+ "overflow-hidden bg-f1-background"
55864
55798
  ),
55865
55799
  children: Array.from({ length: G }).map((Z, W) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
55866
55800
  W > 0 && /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-f1-border-secondary" }),
@@ -55887,7 +55821,7 @@ const audioPlayerSizes = ["sm", "md"], F0AudioPlayer = experimentalComponent(
55887
55821
  ...X,
55888
55822
  className: cn(
55889
55823
  "flex flex-col rounded-md border border-solid border-f1-border-secondary",
55890
- "overflow-hidden bg-f1-background shadow"
55824
+ "overflow-hidden bg-f1-background"
55891
55825
  ),
55892
55826
  children: W.map((z, D) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
55893
55827
  D > 0 && /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-f1-border-secondary" }),
@@ -582,6 +582,8 @@ export declare const defaultTranslations: {
582
582
  readonly noResults: "No chats found";
583
583
  readonly backToLatest: "Jump to latest";
584
584
  readonly muted: "Muted";
585
+ readonly mute: "Mute";
586
+ readonly unmute: "Unmute";
585
587
  readonly attachFile: "Attach file";
586
588
  readonly addEmoji: "Add emoji";
587
589
  readonly recordAudio: "Record audio";
@@ -608,6 +610,13 @@ export declare const defaultTranslations: {
608
610
  readonly twoTyping: "{{first}} and {{second}} are writing…";
609
611
  readonly severalTyping: "Several people are writing…";
610
612
  readonly deletedMessage: "Message deleted";
613
+ readonly location: "Location";
614
+ readonly voiceNote: "Voice note";
615
+ readonly sendVoiceNote: "Send voice note";
616
+ readonly sendingVoiceNote: "Sending voice note…";
617
+ readonly sending: "Sending…";
618
+ readonly notSent: "Not sent";
619
+ readonly retry: "Retry";
611
620
  readonly moreActions: "Message actions";
612
621
  readonly options: "Options";
613
622
  readonly pin: "Pin";
@@ -646,6 +655,22 @@ export declare const defaultTranslations: {
646
655
  };
647
656
  readonly scrollToBottom: "Scroll to bottom";
648
657
  readonly newMessages: "New messages";
658
+ readonly system: {
659
+ readonly memberAdded: {
660
+ readonly one: "{{members}} was added to the group";
661
+ readonly other: "{{members}} were added to the group";
662
+ };
663
+ readonly memberRemoved: {
664
+ readonly one: "{{members}} was removed from the group";
665
+ readonly other: "{{members}} were removed from the group";
666
+ };
667
+ readonly memberLeft: {
668
+ readonly one: "{{members}} left the group";
669
+ readonly other: "{{members}} left the group";
670
+ };
671
+ readonly membersWithLast: "{{names}} and {{last}}";
672
+ readonly membersWithMore: "{{names}} and {{count}} more";
673
+ };
649
674
  readonly unreadCount: {
650
675
  readonly one: "{{count}} unread";
651
676
  readonly other: "{{count}} unread";
@@ -582,6 +582,8 @@ const e = {
582
582
  noResults: "No chats found",
583
583
  backToLatest: "Jump to latest",
584
584
  muted: "Muted",
585
+ mute: "Mute",
586
+ unmute: "Unmute",
585
587
  attachFile: "Attach file",
586
588
  addEmoji: "Add emoji",
587
589
  recordAudio: "Record audio",
@@ -611,6 +613,17 @@ const e = {
611
613
  twoTyping: "{{first}} and {{second}} are writing…",
612
614
  severalTyping: "Several people are writing…",
613
615
  deletedMessage: "Message deleted",
616
+ // Shared-location attachments (map preview card + reply quote descriptor).
617
+ location: "Location",
618
+ // Voice notes (mic in the composer records + sends audio, no transcript).
619
+ voiceNote: "Voice note",
620
+ sendVoiceNote: "Send voice note",
621
+ sendingVoiceNote: "Sending voice note…",
622
+ // Delivery-state indicators beside your own bubble (icon labels + the
623
+ // failed message's reduced actions menu).
624
+ sending: "Sending…",
625
+ notSent: "Not sent",
626
+ retry: "Retry",
614
627
  moreActions: "Message actions",
615
628
  // Header overflow menu (the ellipsis dropdown) + its pin/favourite action.
616
629
  options: "Options",
@@ -658,6 +671,29 @@ const e = {
658
671
  },
659
672
  scrollToBottom: "Scroll to bottom",
660
673
  newMessages: "New messages",
674
+ // Centered membership system rows. `{{members}}` / `{{names}}` / `{{last}}`
675
+ // are replaced with React nodes (`@name` hover-card chips) by the component
676
+ // via token split — NOT through `t(key, args)`, whose interpolation is
677
+ // string-only. The fragment keys compose the name list ("@Pedro, @Juan and
678
+ // @Raúl" / "…and 5 more") so every language words the conjunction its own
679
+ // way. Plural shape mirrors `readBy`.
680
+ system: {
681
+ memberAdded: {
682
+ one: "{{members}} was added to the group",
683
+ other: "{{members}} were added to the group"
684
+ },
685
+ memberRemoved: {
686
+ one: "{{members}} was removed from the group",
687
+ other: "{{members}} were removed from the group"
688
+ },
689
+ memberLeft: {
690
+ one: "{{members}} left the group",
691
+ other: "{{members}} left the group"
692
+ },
693
+ // Name-list fragments: "Ana, Luis and Carla" / "Ana, Luis, Carla and 5 more".
694
+ membersWithLast: "{{names}} and {{last}}",
695
+ membersWithMore: "{{names}} and {{count}} more"
696
+ },
661
697
  unreadCount: {
662
698
  one: "{{count}} unread",
663
699
  other: "{{count}} unread"