@mriqbox/ui-kit 4.0.1 → 4.2.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/bin/cli.js CHANGED
@@ -182,7 +182,7 @@ async function checkDependencies(filePath, installDir) {
182
182
  program
183
183
  .name('mri-ui')
184
184
  .description('Add Mri UI components to your project')
185
- .version('4.0.1');
185
+ .version('4.2.0');
186
186
 
187
187
  program
188
188
  .command('add <component>')
@@ -12,6 +12,8 @@ export interface MriActionModalProps {
12
12
  cancelLabel?: string;
13
13
  isConfirmDisabled?: boolean;
14
14
  maxWidth?: string;
15
+ hideBlur?: boolean;
16
+ hideOverlay?: boolean;
15
17
  children: React.ReactNode;
16
18
  }
17
- export declare const MriActionModal: ({ title, icon: Icon, variant, onClose, onConfirm, confirmLabel, cancelLabel, isConfirmDisabled, maxWidth, children, }: MriActionModalProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const MriActionModal: ({ title, icon: Icon, variant, onClose, onConfirm, confirmLabel, cancelLabel, isConfirmDisabled, maxWidth, hideBlur, hideOverlay, children, }: MriActionModalProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  title: string;
3
- component: ({ title, icon: Icon, variant, onClose, onConfirm, confirmLabel, cancelLabel, isConfirmDisabled, maxWidth, children, }: import('./MriActionModal').MriActionModalProps) => import("react/jsx-runtime").JSX.Element;
3
+ component: ({ title, icon: Icon, variant, onClose, onConfirm, confirmLabel, cancelLabel, isConfirmDisabled, maxWidth, hideBlur, hideOverlay, children, }: import('./MriActionModal').MriActionModalProps) => import("react/jsx-runtime").JSX.Element;
4
4
  tags: string[];
5
5
  };
6
6
  export default _default;
@@ -0,0 +1,46 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export type MriTabletFrameSize = 'sm' | 'md' | 'lg' | 'fullscreen';
4
+ export interface MriTabletFrameProps {
5
+ /** Conteudo do tablet — geralmente um <MriDashboardLayout> ou panel custom. */
6
+ children: ReactNode;
7
+ /**
8
+ * Toggle de visibilidade. `false` usa display:none ao inves de unmount —
9
+ * preserva state interno (eg. video streamers, redux store) entre toggles.
10
+ */
11
+ visible?: boolean;
12
+ /**
13
+ * Zoom user-controlled (0-200, default 100). Aplicado via CSS transform
14
+ * scale a partir do centro — nao afeta layout interno.
15
+ */
16
+ scale?: number;
17
+ /**
18
+ * Preset de tamanho. Cada um combina porcentagem (responsivo) com max
19
+ * absoluto (clamp em telas grandes / 4K) e min absoluto (anti-colapso).
20
+ *
21
+ * - sm: ~80% até 1100x700, min 900x550
22
+ * - md: ~85% até 1400x900, min 1000x600 (default)
23
+ * - lg: ~90% até 1700x1080, min 1100x700
24
+ * - fullscreen: 100% sem border/radius (debug ou caso edge)
25
+ */
26
+ size?: MriTabletFrameSize;
27
+ /** Classes extras pro frame externo (sobrepoe sizing/border se necessario). */
28
+ className?: string;
29
+ }
30
+ /**
31
+ * Frame de tablet centralizado pra UIs FiveM. O body do consumer precisa de
32
+ * `background: transparent` pra deixar o jogo aparecer ao redor — nao da
33
+ * pra forcar isso de dentro do componente.
34
+ *
35
+ * Composivel com qualquer conteudo, mas o caso primario e envolver um
36
+ * <MriDashboardLayout>:
37
+ *
38
+ * ```tsx
39
+ * <MriTabletFrame size="md" visible={uiOpen} scale={userZoom}>
40
+ * <MriDashboardLayout sidebar={...} header={...}>
41
+ * {children}
42
+ * </MriDashboardLayout>
43
+ * </MriTabletFrame>
44
+ * ```
45
+ */
46
+ export declare function MriTabletFrame({ children, visible, scale, size, className, }: MriTabletFrameProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { MriTabletFrame } from './MriTabletFrame';
3
+
4
+ declare const meta: Meta<typeof MriTabletFrame>;
5
+ export default meta;
6
+ export declare const Default: StoryObj<typeof MriTabletFrame>;
7
+ export declare const Small: StoryObj<typeof MriTabletFrame>;
8
+ export declare const Large: StoryObj<typeof MriTabletFrame>;
9
+ export declare const Fullscreen: StoryObj<typeof MriTabletFrame>;
10
+ export declare const WithUserScale: StoryObj<typeof MriTabletFrame>;
11
+ export declare const Toggle: StoryObj<typeof MriTabletFrame>;
package/dist/index.d.ts CHANGED
@@ -39,4 +39,5 @@ export * from './components/organisms/MriTopbar';
39
39
  export * from './components/organisms/MriKeyboardVisualizer';
40
40
  export * from './components/organisms/MriPlayerScreenStream';
41
41
  export * from './components/templates/MriDashboardLayout';
42
+ export * from './components/templates/MriTabletFrame';
42
43
  export * from './lib/utils';
package/dist/index.es.js CHANGED
@@ -3802,39 +3802,39 @@ const Eu = ne("Zap", [
3802
3802
  }
3803
3803
  );
3804
3804
  te.displayName = "MriButton";
3805
- const ex = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3805
+ const tx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3806
3806
  /* @__PURE__ */ l.jsx("path", { d: "M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3807
3807
  /* @__PURE__ */ l.jsx("circle", { cx: "12", cy: "9", r: "2.5", fill: "currentColor" })
3808
- ] }), tx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3808
+ ] }), rx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3809
3809
  /* @__PURE__ */ l.jsx("path", { d: "M21 15v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3810
3810
  /* @__PURE__ */ l.jsx("path", { d: "M7 10l5-5 5 5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3811
3811
  /* @__PURE__ */ l.jsx("path", { d: "M12 5v12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
3812
- ] }), rx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3812
+ ] }), nx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3813
3813
  /* @__PURE__ */ l.jsx("path", { d: "M21 12H7", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3814
3814
  /* @__PURE__ */ l.jsx("path", { d: "M11 16l-4-4 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
3815
- ] }), nx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3815
+ ] }), ox = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3816
3816
  /* @__PURE__ */ l.jsx("path", { d: "M21 12a9 9 0 11-3-6.6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3817
3817
  /* @__PURE__ */ l.jsx("path", { d: "M12 8v8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3818
3818
  /* @__PURE__ */ l.jsx("path", { d: "M8 12h8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
3819
- ] }), ox = (e = {}) => /* @__PURE__ */ l.jsx("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ l.jsx("path", { d: "M20 6L9 17l-5-5", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) }), ax = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3819
+ ] }), ax = (e = {}) => /* @__PURE__ */ l.jsx("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ l.jsx("path", { d: "M20 6L9 17l-5-5", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) }), sx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3820
3820
  /* @__PURE__ */ l.jsx("rect", { x: "2", y: "7", width: "20", height: "14", rx: "2", stroke: "currentColor", strokeWidth: "1.5" }),
3821
3821
  /* @__PURE__ */ l.jsx("path", { d: "M12 11v6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3822
3822
  /* @__PURE__ */ l.jsx("circle", { cx: "12", cy: "10", r: "1.5", fill: "currentColor" })
3823
- ] }), sx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3823
+ ] }), ix = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3824
3824
  /* @__PURE__ */ l.jsx("path", { d: "M16 3l3 3v11a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6l3-3", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3825
3825
  /* @__PURE__ */ l.jsx("path", { d: "M9 8h6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
3826
- ] }), ix = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3826
+ ] }), lx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3827
3827
  /* @__PURE__ */ l.jsx("path", { d: "M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3828
3828
  /* @__PURE__ */ l.jsx("circle", { cx: "12", cy: "12", r: "3", stroke: "currentColor", strokeWidth: "1.5" })
3829
- ] }), lx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3829
+ ] }), cx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3830
3830
  /* @__PURE__ */ l.jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round" }),
3831
3831
  /* @__PURE__ */ l.jsx("path", { d: "M12 9v4", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" }),
3832
3832
  /* @__PURE__ */ l.jsx("circle", { cx: "12", cy: "17", r: "0.8", fill: "currentColor" })
3833
- ] }), cx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3833
+ ] }), dx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3834
3834
  /* @__PURE__ */ l.jsx("path", { d: "M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3835
3835
  /* @__PURE__ */ l.jsx("circle", { cx: "12", cy: "7", r: "4", stroke: "currentColor", strokeWidth: "1.5" }),
3836
3836
  /* @__PURE__ */ l.jsx("path", { d: "M15 10l-6-6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
3837
- ] }), dx = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3837
+ ] }), ux = (e = {}) => /* @__PURE__ */ l.jsxs("svg", { className: e.className, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
3838
3838
  /* @__PURE__ */ l.jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "1.5" }),
3839
3839
  /* @__PURE__ */ l.jsx("path", { d: "M4.93 4.93l14.14 14.14", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
3840
3840
  ] }), Oo = m.forwardRef(
@@ -4621,7 +4621,7 @@ const _i = m.forwardRef(({ className: e, orientation: t = "vertical", ...r }, n)
4621
4621
  }
4622
4622
  ));
4623
4623
  _i.displayName = Ao.displayName;
4624
- function ux({
4624
+ function fx({
4625
4625
  label: e,
4626
4626
  variant: t = "default",
4627
4627
  className: r,
@@ -5067,7 +5067,7 @@ function Hi(e) {
5067
5067
  return e ? "open" : "closed";
5068
5068
  }
5069
5069
  var kf = Di, _f = Ii, Mf = Fi, Yi = $i, Vi = zi;
5070
- const fx = kf, Ef = m.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ l.jsx(
5070
+ const hx = kf, Ef = m.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ l.jsx(
5071
5071
  _f,
5072
5072
  {
5073
5073
  ref: r,
@@ -7945,7 +7945,7 @@ Dp.displayName = Jl;
7945
7945
  function aa(e) {
7946
7946
  return e ? "open" : "closed";
7947
7947
  }
7948
- var ec = "DialogTitleWarning", [hx, tc] = $u(ec, {
7948
+ var ec = "DialogTitleWarning", [mx, tc] = $u(ec, {
7949
7949
  contentName: St,
7950
7950
  titleName: oa,
7951
7951
  docsSlug: "dialog"
@@ -8349,7 +8349,7 @@ const tv = ({
8349
8349
  }
8350
8350
  );
8351
8351
  tv.displayName = "MriCommandShortcut";
8352
- function mx({
8352
+ function px({
8353
8353
  options: e,
8354
8354
  value: t,
8355
8355
  onChange: r,
@@ -8478,7 +8478,7 @@ function ia({
8478
8478
  )
8479
8479
  ] }) });
8480
8480
  }
8481
- function px({ title: e, children: t, onClose: r, className: n }) {
8481
+ function vx({ title: e, children: t, onClose: r, className: n }) {
8482
8482
  return /* @__PURE__ */ l.jsxs(ia, { onClose: r, className: n, children: [
8483
8483
  /* @__PURE__ */ l.jsxs("div", { className: "flex items-center justify-between mb-6", children: [
8484
8484
  /* @__PURE__ */ l.jsx("h3", { className: "text-xl font-bold tracking-tight text-foreground", children: e }),
@@ -8709,7 +8709,7 @@ function nv({
8709
8709
  ] }) })
8710
8710
  ] });
8711
8711
  }
8712
- function vx(e) {
8712
+ function gx(e) {
8713
8713
  return e.multiple === !0 ? /* @__PURE__ */ l.jsx(nv, { ...e }) : /* @__PURE__ */ l.jsx(rv, { ...e });
8714
8714
  }
8715
8715
  var ov = (e, t, r, n, o, a, s, i) => {
@@ -8741,7 +8741,7 @@ m.memo(({ forcedTheme: e, storageKey: t, attribute: r, enableSystem: n, enableCo
8741
8741
  let u = JSON.stringify([r, t, a, e, i, s, n, o]).slice(1, -1);
8742
8742
  return m.createElement("script", { ...d, suppressHydrationWarning: !0, nonce: typeof window > "u" ? c : "", dangerouslySetInnerHTML: { __html: `(${ov.toString()})(${u})` } });
8743
8743
  });
8744
- const gx = ({ themeLabel: e = "Tema", themeIconLabel: t = "Alterar tema", lightLabel: r = "Claro", darkLabel: n = "Escuro", systemLabel: o = "Sistema" }) => {
8744
+ const bx = ({ themeLabel: e = "Tema", themeIconLabel: t = "Alterar tema", lightLabel: r = "Claro", darkLabel: n = "Escuro", systemLabel: o = "Sistema" }) => {
8745
8745
  const { theme: a, setTheme: s } = iv(), [i, c] = fe(!1), d = Le(null);
8746
8746
  we(() => {
8747
8747
  const f = (h) => {
@@ -8798,7 +8798,7 @@ const gx = ({ themeLabel: e = "Tema", themeIconLabel: t = "Alterar tema", lightL
8798
8798
  const [r, n] = t, o = Number(r), a = Number(n);
8799
8799
  return !Number.isFinite(o) || !Number.isFinite(a) || o < 0 || o > 23 || a < 0 || a > 59 ? [0, 0] : [o, a];
8800
8800
  };
8801
- function bx({ value: e, onChange: t, disabled: r, hourLabel: n = "Hora", minuteLabel: o = "Minuto", size: a = "default", error: s, minTime: i, maxTime: c }) {
8801
+ function xx({ value: e, onChange: t, disabled: r, hourLabel: n = "Hora", minuteLabel: o = "Minuto", size: a = "default", error: s, minTime: i, maxTime: c }) {
8802
8802
  const [d, u] = m.useState(!1), [f, h] = Gn(e), [p, g] = Gn(i), [v, b] = c ? Gn(c) : [23, 59], x = lv.map((C) => ({
8803
8803
  value: C,
8804
8804
  disabled: C < p || C > v
@@ -8872,7 +8872,7 @@ function bx({ value: e, onChange: t, disabled: r, hourLabel: n = "Hora", minuteL
8872
8872
  ] }) })
8873
8873
  ] });
8874
8874
  }
8875
- function xx({
8875
+ function yx({
8876
8876
  text: e,
8877
8877
  className: t,
8878
8878
  iconSize: r = 4,
@@ -8893,7 +8893,7 @@ function xx({
8893
8893
  }
8894
8894
  );
8895
8895
  }
8896
- function yx({
8896
+ function wx({
8897
8897
  label: e,
8898
8898
  amount: t,
8899
8899
  amountColorClass: r = "text-foreground",
@@ -8947,7 +8947,7 @@ function yx({
8947
8947
  ] })
8948
8948
  ] });
8949
8949
  }
8950
- const wx = ({
8950
+ const Nx = ({
8951
8951
  id: e = "",
8952
8952
  label: t,
8953
8953
  icon: r = Eu,
@@ -9124,7 +9124,7 @@ const wx = ({
9124
9124
  ]
9125
9125
  }
9126
9126
  );
9127
- }, Nx = ({
9127
+ }, Cx = ({
9128
9128
  title: e,
9129
9129
  icon: t,
9130
9130
  variant: r = "default",
@@ -9134,48 +9134,59 @@ const wx = ({
9134
9134
  cancelLabel: s = "Cancel",
9135
9135
  isConfirmDisabled: i = !1,
9136
9136
  maxWidth: c = "max-w-sm",
9137
- children: d
9137
+ hideBlur: d = !1,
9138
+ hideOverlay: u = !1,
9139
+ children: f
9138
9140
  }) => {
9139
- const u = {
9141
+ const h = {
9140
9142
  default: "bg-primary/10 text-primary",
9141
9143
  destructive: "bg-destructive/10 text-destructive",
9142
9144
  warning: "bg-yellow-500/10 text-yellow-500"
9143
- }, f = r === "destructive" ? "destructive" : "default";
9144
- return /* @__PURE__ */ l.jsxs(ia, { onClose: n, className: k("w-full", c), children: [
9145
- /* @__PURE__ */ l.jsxs("div", { className: "flex justify-between items-center mb-6", children: [
9146
- /* @__PURE__ */ l.jsxs("div", { className: "flex items-center gap-2", children: [
9147
- /* @__PURE__ */ l.jsx("div", { className: k("p-2 rounded-lg", u[r]), children: /* @__PURE__ */ l.jsx(t, { className: "w-5 h-5" }) }),
9148
- /* @__PURE__ */ l.jsx("p", { className: "font-bold text-lg text-foreground", children: e })
9149
- ] }),
9150
- /* @__PURE__ */ l.jsx(
9151
- "button",
9152
- {
9153
- onClick: n,
9154
- className: "text-muted-foreground hover:text-foreground transition-colors",
9155
- children: /* @__PURE__ */ l.jsx(dn, { className: "w-5 h-5" })
9156
- }
9157
- )
9158
- ] }),
9159
- /* @__PURE__ */ l.jsx("div", { className: "space-y-4", children: d }),
9160
- /* @__PURE__ */ l.jsxs("div", { className: "mt-6 flex gap-3", children: [
9161
- /* @__PURE__ */ l.jsx(te, { onClick: n, variant: "ghost", className: "flex-1", children: s }),
9162
- o && /* @__PURE__ */ l.jsx(
9163
- te,
9164
- {
9165
- className: k(
9166
- "flex-1",
9167
- r === "destructive" && "bg-destructive hover:bg-destructive/90 text-destructive-foreground"
9168
- ),
9169
- onClick: o,
9170
- disabled: i,
9171
- variant: f,
9172
- children: a
9173
- }
9174
- )
9175
- ] })
9176
- ] });
9145
+ }, p = r === "destructive" ? "destructive" : "default";
9146
+ return /* @__PURE__ */ l.jsxs(
9147
+ ia,
9148
+ {
9149
+ onClose: n,
9150
+ className: k("w-full", c),
9151
+ hideBlur: d,
9152
+ hideOverlay: u,
9153
+ children: [
9154
+ /* @__PURE__ */ l.jsxs("div", { className: "flex justify-between items-center mb-6", children: [
9155
+ /* @__PURE__ */ l.jsxs("div", { className: "flex items-center gap-2", children: [
9156
+ /* @__PURE__ */ l.jsx("div", { className: k("p-2 rounded-lg", h[r]), children: /* @__PURE__ */ l.jsx(t, { className: "w-5 h-5" }) }),
9157
+ /* @__PURE__ */ l.jsx("p", { className: "font-bold text-lg text-foreground", children: e })
9158
+ ] }),
9159
+ /* @__PURE__ */ l.jsx(
9160
+ "button",
9161
+ {
9162
+ onClick: n,
9163
+ className: "text-muted-foreground hover:text-foreground transition-colors",
9164
+ children: /* @__PURE__ */ l.jsx(dn, { className: "w-5 h-5" })
9165
+ }
9166
+ )
9167
+ ] }),
9168
+ /* @__PURE__ */ l.jsx("div", { className: "space-y-4", children: f }),
9169
+ /* @__PURE__ */ l.jsxs("div", { className: "mt-6 flex gap-3", children: [
9170
+ /* @__PURE__ */ l.jsx(te, { onClick: n, variant: "ghost", className: "flex-1", children: s }),
9171
+ o && /* @__PURE__ */ l.jsx(
9172
+ te,
9173
+ {
9174
+ className: k(
9175
+ "flex-1",
9176
+ r === "destructive" && "bg-destructive hover:bg-destructive/90 text-destructive-foreground"
9177
+ ),
9178
+ onClick: o,
9179
+ disabled: i,
9180
+ variant: p,
9181
+ children: a
9182
+ }
9183
+ )
9184
+ ] })
9185
+ ]
9186
+ }
9187
+ );
9177
9188
  };
9178
- function Cx({
9189
+ function jx({
9179
9190
  icon: e,
9180
9191
  label: t,
9181
9192
  onClick: r,
@@ -9204,7 +9215,7 @@ function Cx({
9204
9215
  }
9205
9216
  );
9206
9217
  }
9207
- function jx({
9218
+ function Sx({
9208
9219
  value: e,
9209
9220
  onChange: t,
9210
9221
  placeholder: r,
@@ -9228,7 +9239,7 @@ function jx({
9228
9239
  )
9229
9240
  ] });
9230
9241
  }
9231
- function Sx({ icon: e, title: t, className: r }) {
9242
+ function kx({ icon: e, title: t, className: r }) {
9232
9243
  return /* @__PURE__ */ l.jsxs("h3", { className: k("text-muted-foreground text-xs font-bold uppercase tracking-widest mb-3 flex items-center gap-2", r), children: [
9233
9244
  /* @__PURE__ */ l.jsx(e, { className: "w-3.5 h-3.5" }),
9234
9245
  " ",
@@ -12087,7 +12098,7 @@ function Oc({
12087
12098
  );
12088
12099
  }
12089
12100
  Oc.displayName = "MriCalendar";
12090
- function kx({ value: e, onChange: t, placeholder: r = "Selecione", disabled: n, locale: o = wc, size: a = "default", error: s, fromDate: i, toDate: c }) {
12101
+ function _x({ value: e, onChange: t, placeholder: r = "Selecione", disabled: n, locale: o = wc, size: a = "default", error: s, fromDate: i, toDate: c }) {
12091
12102
  return /* @__PURE__ */ l.jsxs(Jt, { children: [
12092
12103
  /* @__PURE__ */ l.jsx(er, { asChild: !0, children: /* @__PURE__ */ l.jsxs("div", { className: "w-full space-y-1", children: [
12093
12104
  /* @__PURE__ */ l.jsxs(
@@ -12441,7 +12452,7 @@ function G0(e, t) {
12441
12452
  }, "name"]);
12442
12453
  }
12443
12454
  q0([G0]);
12444
- const _x = ({ color: e, onChange: t, active: r, format: n = "hsl-string" }) => {
12455
+ const Mx = ({ color: e, onChange: t, active: r, format: n = "hsl-string" }) => {
12445
12456
  const o = (g) => /^\d+(\.\d+)?\s+\d+(\.\d+)?%\s+\d+(\.\d+)?%$/.test(g) ? be(`hsl(${g})`).toHex() : be(g).toHex(), [a, s] = fe(o(e)), [i, c] = fe("hex"), d = be(a), [u, f] = fe({
12446
12457
  hex: a,
12447
12458
  rgb: d.toRgb(),
@@ -12611,7 +12622,7 @@ const _x = ({ color: e, onChange: t, active: r, format: n = "hsl-string" }) => {
12611
12622
  /* @__PURE__ */ l.jsx(Su, { className: "w-6 h-6 text-red-500/80" }),
12612
12623
  /* @__PURE__ */ l.jsx("span", { className: "text-[10px] font-black uppercase tracking-widest text-red-500/80", children: e })
12613
12624
  ] });
12614
- function Mx({ vitals: e, size: t = "compact", onAction: r, onIconClick: n, className: o, labels: a, disabledVitals: s = [] }) {
12625
+ function Ex({ vitals: e, size: t = "compact", onAction: r, onIconClick: n, className: o, labels: a, disabledVitals: s = [] }) {
12615
12626
  var f;
12616
12627
  const i = ((f = e == null ? void 0 : e.metadata) == null ? void 0 : f.isdead) ?? !1, c = (a == null ? void 0 : a.dead) ?? "Dead", d = (h) => {
12617
12628
  var g;
@@ -12728,7 +12739,7 @@ const X0 = {
12728
12739
  thirst: { icon: ci, color: "text-cyan-500", bgColor: "bg-cyan-500", hex: "#06b6d4", label: "thirst", max: 100 },
12729
12740
  stress: { icon: ii, color: "text-purple-500", bgColor: "bg-purple-500", hex: "#a855f7", label: "stress", max: 100 }
12730
12741
  };
12731
- function Ex({
12742
+ function Px({
12732
12743
  isOpen: e,
12733
12744
  onClose: t,
12734
12745
  onSubmit: r,
@@ -12877,7 +12888,7 @@ function Ex({
12877
12888
  ` })
12878
12889
  ] });
12879
12890
  }
12880
- function Px({ title: e, icon: t, count: r, countLabel: n, children: o, className: a, ...s }) {
12891
+ function Rx({ title: e, icon: t, count: r, countLabel: n, children: o, className: a, ...s }) {
12881
12892
  return /* @__PURE__ */ l.jsxs("div", { className: k("w-full h-auto min-h-[5rem] border-b border-border flex items-center justify-between py-4 px-6 bg-card/30 shrink-0", a), ...s, children: [
12882
12893
  /* @__PURE__ */ l.jsxs("div", { className: "flex items-center gap-4", children: [
12883
12894
  /* @__PURE__ */ l.jsxs("div", { className: "flex items-center gap-3", children: [
@@ -12893,7 +12904,7 @@ function Px({ title: e, icon: t, count: r, countLabel: n, children: o, className
12893
12904
  /* @__PURE__ */ l.jsx("div", { className: "flex items-center gap-3", children: o })
12894
12905
  ] });
12895
12906
  }
12896
- function Rx({
12907
+ function Ox({
12897
12908
  items: e,
12898
12909
  activeRoute: t,
12899
12910
  onNavigate: r,
@@ -12949,7 +12960,7 @@ function Rx({
12949
12960
  ] })
12950
12961
  ] });
12951
12962
  }
12952
- function Ox({
12963
+ function Dx({
12953
12964
  items: e,
12954
12965
  activeRoute: t,
12955
12966
  onNavigate: r,
@@ -13144,7 +13155,7 @@ const Nt = ({ label: e, className: t, style: r, active: n }) => /* @__PURE__ */
13144
13155
  }, Q0 = {
13145
13156
  iceServers: [{ urls: "stun:stun.l.google.com:19302" }]
13146
13157
  };
13147
- function Dx({
13158
+ function Ax({
13148
13159
  playerId: e,
13149
13160
  // playerName is not used in this component but kept for API consistency if needed
13150
13161
  className: t,
@@ -13372,7 +13383,7 @@ function Dx({
13372
13383
  /* @__PURE__ */ l.jsx("div", { className: "absolute inset-0 pointer-events-none shadow-[inset_0_0_100px_rgba(0,0,0,0.5)] opacity-40" })
13373
13384
  ] });
13374
13385
  }
13375
- function Ax({
13386
+ function Tx({
13376
13387
  sidebar: e,
13377
13388
  topbar: t,
13378
13389
  header: r,
@@ -13399,19 +13410,52 @@ function Ax({
13399
13410
  h
13400
13411
  ] });
13401
13412
  }
13413
+ const Z0 = {
13414
+ sm: "w-[80%] h-[80%] max-w-[1100px] max-h-[700px] min-w-[900px] min-h-[550px]",
13415
+ md: "w-[85%] h-[85%] max-w-[1400px] max-h-[900px] min-w-[1000px] min-h-[600px]",
13416
+ lg: "w-[90%] h-[90%] max-w-[1700px] max-h-[1080px] min-w-[1100px] min-h-[700px]",
13417
+ fullscreen: "w-full h-full"
13418
+ };
13419
+ function Lx({
13420
+ children: e,
13421
+ visible: t = !0,
13422
+ scale: r = 100,
13423
+ size: n = "md",
13424
+ className: o
13425
+ }) {
13426
+ const a = n === "fullscreen";
13427
+ return /* @__PURE__ */ l.jsx(
13428
+ "div",
13429
+ {
13430
+ className: k(
13431
+ "fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
13432
+ "bg-background text-foreground overflow-hidden",
13433
+ !a && "border border-border rounded-xl shadow-2xl",
13434
+ Z0[n],
13435
+ o
13436
+ ),
13437
+ style: {
13438
+ display: t ? "block" : "none",
13439
+ transform: `translate(-50%, -50%) scale(${r / 100})`,
13440
+ transformOrigin: "center center"
13441
+ },
13442
+ children: e
13443
+ }
13444
+ );
13445
+ }
13402
13446
  export {
13403
- fx as MriAccordion,
13447
+ hx as MriAccordion,
13404
13448
  Rf as MriAccordionContent,
13405
13449
  Ef as MriAccordionItem,
13406
13450
  Pf as MriAccordionTrigger,
13407
- wx as MriActionCard,
13408
- Nx as MriActionModal,
13451
+ Nx as MriActionCard,
13452
+ Cx as MriActionModal,
13409
13453
  cu as MriAvatar,
13410
13454
  uu as MriAvatarFallback,
13411
13455
  du as MriAvatarImage,
13412
13456
  Ya as MriBadge,
13413
- dx as MriBanIcon,
13414
- tx as MriBringIcon,
13457
+ ux as MriBanIcon,
13458
+ rx as MriBringIcon,
13415
13459
  te as MriButton,
13416
13460
  Oc as MriCalendar,
13417
13461
  Of as MriCard,
@@ -13420,8 +13464,8 @@ export {
13420
13464
  If as MriCardFooter,
13421
13465
  Df as MriCardHeader,
13422
13466
  Af as MriCardTitle,
13423
- sx as MriClothingIcon,
13424
- _x as MriColorPicker,
13467
+ ix as MriClothingIcon,
13468
+ Mx as MriColorPicker,
13425
13469
  Cr as MriCommand,
13426
13470
  Sr as MriCommandEmpty,
13427
13471
  kr as MriCommandGroup,
@@ -13430,42 +13474,43 @@ export {
13430
13474
  jn as MriCommandList,
13431
13475
  ev as MriCommandSeparator,
13432
13476
  tv as MriCommandShortcut,
13433
- mx as MriCompactSearch,
13434
- xx as MriCopyButton,
13435
- Ax as MriDashboardLayout,
13436
- kx as MriDatePicker,
13437
- px as MriDialog,
13438
- yx as MriEconomyCard,
13439
- ix as MriEyeIcon,
13440
- Cx as MriGridActionButton,
13477
+ px as MriCompactSearch,
13478
+ yx as MriCopyButton,
13479
+ Tx as MriDashboardLayout,
13480
+ _x as MriDatePicker,
13481
+ vx as MriDialog,
13482
+ wx as MriEconomyCard,
13483
+ lx as MriEyeIcon,
13484
+ jx as MriGridActionButton,
13441
13485
  Oo as MriInput,
13442
13486
  K0 as MriKeyboardVisualizer,
13443
- cx as MriKickIcon,
13487
+ dx as MriKickIcon,
13444
13488
  ia as MriModal,
13445
- ax as MriMoneyIcon,
13446
- Px as MriPageHeader,
13447
- Dx as MriPlayerScreenStream,
13448
- Mx as MriPlayerVitals,
13489
+ sx as MriMoneyIcon,
13490
+ Rx as MriPageHeader,
13491
+ Ax as MriPlayerScreenStream,
13492
+ Ex as MriPlayerVitals,
13449
13493
  Jt as MriPopover,
13450
13494
  Rt as MriPopoverContent,
13451
13495
  er as MriPopoverTrigger,
13452
- nx as MriReviveIcon,
13496
+ ox as MriReviveIcon,
13453
13497
  Jr as MriScrollArea,
13454
13498
  _i as MriScrollBar,
13455
- jx as MriSearchInput,
13456
- Sx as MriSectionHeader,
13457
- vx as MriSelect,
13458
- rx as MriSendBackIcon,
13459
- Rx as MriSidebar,
13499
+ Sx as MriSearchInput,
13500
+ kx as MriSectionHeader,
13501
+ gx as MriSelect,
13502
+ nx as MriSendBackIcon,
13503
+ Ox as MriSidebar,
13460
13504
  nf as MriSpinner,
13461
- ux as MriStatusBadge,
13462
- ex as MriTeleportIcon,
13463
- gx as MriThemeToggle,
13464
- bx as MriTimePicker,
13465
- Ox as MriTopbar,
13466
- ox as MriVerifyIcon,
13467
- Ex as MriVitalAdjustModal,
13468
- lx as MriWarnIcon,
13505
+ fx as MriStatusBadge,
13506
+ Lx as MriTabletFrame,
13507
+ tx as MriTeleportIcon,
13508
+ bx as MriThemeToggle,
13509
+ xx as MriTimePicker,
13510
+ Dx as MriTopbar,
13511
+ ax as MriVerifyIcon,
13512
+ Px as MriVitalAdjustModal,
13513
+ cx as MriWarnIcon,
13469
13514
  k as cn,
13470
13515
  fu as mriBadgeVariants,
13471
13516
  lo as mriButtonVariants