@arbidocs/blocks 0.4.119 → 0.4.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-A7NCSZAP.cjs +207 -0
- package/dist/chunk-A7NCSZAP.cjs.map +1 -0
- package/dist/chunk-IBZJYCYM.js +204 -0
- package/dist/chunk-IBZJYCYM.js.map +1 -0
- package/dist/components/UsageMeter.d.ts +45 -8
- package/dist/index.cjs +9 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/settings/FirmPool.d.ts +28 -2
- package/dist/settings/index.cjs +67 -16
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.js +63 -12
- package/dist/settings/index.js.map +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +4 -4
- package/dist/chunk-46IU3UPF.cjs +0 -47
- package/dist/chunk-46IU3UPF.cjs.map +0 -1
- package/dist/chunk-D5T53XCL.js +0 -45
- package/dist/chunk-D5T53XCL.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/coedit",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.120",
|
|
4
4
|
"description": "Real-time collaboration for the ARBI native DOCX editor: a Yjs mirror of the canonical OOXML package, session, and server runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbidocs/blocks",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.120",
|
|
4
4
|
"description": "Composable, domain-neutral UI blocks for ARBI apps, organised by capability (retrieval, facts, agents, workspaces, citations, collaboration) plus shell, theme and site primitives, on top of @arbidocs/react.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -280,8 +280,8 @@
|
|
|
280
280
|
"example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
|
|
281
281
|
},
|
|
282
282
|
"dependencies": {
|
|
283
|
-
"@arbidocs/client": "0.4.
|
|
284
|
-
"@arbidocs/coedit": "0.4.
|
|
283
|
+
"@arbidocs/client": "0.4.120",
|
|
284
|
+
"@arbidocs/coedit": "0.4.120",
|
|
285
285
|
"@dnd-kit/core": "^6.3.1",
|
|
286
286
|
"@dnd-kit/sortable": "^10.0.0",
|
|
287
287
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
"y-protocols": "^1.0.6"
|
|
324
324
|
},
|
|
325
325
|
"peerDependencies": {
|
|
326
|
-
"@arbidocs/react": "0.4.
|
|
326
|
+
"@arbidocs/react": "0.4.120",
|
|
327
327
|
"@lexical/html": "0.35.0",
|
|
328
328
|
"@lexical/link": "0.35.0",
|
|
329
329
|
"@lexical/list": "0.35.0",
|
package/dist/chunk-46IU3UPF.cjs
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var ui = require('@arbidocs/react/ui');
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
|
|
7
|
-
// src/components/UsageMeter.tsx
|
|
8
|
-
function UsageMeter({
|
|
9
|
-
icon: Icon,
|
|
10
|
-
label,
|
|
11
|
-
value,
|
|
12
|
-
pct,
|
|
13
|
-
hint,
|
|
14
|
-
className,
|
|
15
|
-
testId
|
|
16
|
-
}) {
|
|
17
|
-
const clamped = Math.max(0, Math.min(100, pct));
|
|
18
|
-
const tone = clamped >= 100 ? "bg-red-500" : clamped >= 50 ? "bg-yellow-500" : "bg-primary";
|
|
19
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("space-y-1.5", className), "data-testid": testId, children: [
|
|
20
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3 text-sm", children: [
|
|
21
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 items-center gap-1.5 text-muted-foreground", children: [
|
|
22
|
-
Icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-3.5 shrink-0" }),
|
|
23
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate", children: [
|
|
24
|
-
label,
|
|
25
|
-
hint ? ` (${hint})` : ""
|
|
26
|
-
] })
|
|
27
|
-
] }),
|
|
28
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 font-medium tabular-nums text-foreground", children: value })
|
|
29
|
-
] }),
|
|
30
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-1.5 overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
31
|
-
"div",
|
|
32
|
-
{
|
|
33
|
-
className: ui.cn("h-full rounded-full transition-[width]", tone),
|
|
34
|
-
style: { width: `${clamped}%` },
|
|
35
|
-
role: "progressbar",
|
|
36
|
-
"aria-valuenow": clamped,
|
|
37
|
-
"aria-valuemin": 0,
|
|
38
|
-
"aria-valuemax": 100,
|
|
39
|
-
"aria-label": label
|
|
40
|
-
}
|
|
41
|
-
) })
|
|
42
|
-
] });
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
exports.UsageMeter = UsageMeter;
|
|
46
|
-
//# sourceMappingURL=chunk-46IU3UPF.cjs.map
|
|
47
|
-
//# sourceMappingURL=chunk-46IU3UPF.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/UsageMeter.tsx"],"names":["jsxs","cn","jsx"],"mappings":";;;;;;AAUO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA,EAAM,IAAA;AAAA,EACN,KAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAYG;AACD,EAAA,MAAM,OAAA,GAAU,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,GAAA,EAAK,GAAG,CAAC,CAAA;AAG9C,EAAA,MAAM,OAAO,OAAA,IAAW,GAAA,GAAM,YAAA,GAAe,OAAA,IAAW,KAAK,eAAA,GAAkB,YAAA;AAC/E,EAAA,uBACEA,eAAA,CAAC,SAAI,SAAA,EAAWC,KAAA,CAAG,eAAe,SAAS,CAAA,EAAG,eAAa,MAAA,EACzD,QAAA,EAAA;AAAA,oBAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iDAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yDAAA,EACb,QAAA,EAAA;AAAA,QAAA,IAAA,oBAAQE,cAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,wBAC7CF,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,IAAA,GAAO,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,CAAA,GAAM;AAAA,SAAA,EACzB;AAAA,OAAA,EACF,CAAA;AAAA,sBACAE,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mDAAA,EAAqD,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EAC7E,CAAA;AAAA,oBACAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6CAAA,EACb,QAAA,kBAAAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWD,KAAA,CAAG,wCAAA,EAA0C,IAAI,CAAA;AAAA,QAC5D,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,OAAO,CAAA,CAAA,CAAA,EAAI;AAAA,QAC9B,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAe,CAAA;AAAA,QACf,eAAA,EAAe,GAAA;AAAA,QACf,YAAA,EAAY;AAAA;AAAA,KACd,EACF;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-46IU3UPF.cjs","sourcesContent":["import type { LucideIcon } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\n\n/**\n * One labelled quota meter: icon + label on the left, used-of-limit on the\n * right, a thin bar underneath. The bar's tone follows pressure with the shared\n * green → yellow → red gradation — green while there's room, yellow past the\n * halfway mark, red at the limit — so a stack of meters reads at a glance which\n * quota is the one to think about.\n */\nexport function UsageMeter({\n icon: Icon,\n label,\n value,\n pct,\n hint,\n className,\n testId,\n}: {\n icon?: LucideIcon\n label: string\n /** Formatted used-of-limit text, e.g. \"1,200 / 25,000\" or \"40 / 500 MB\". */\n value: string\n /** Fill percentage, 0–100 (values are clamped). */\n pct: number\n /** Inline parenthetical after the label, e.g. \"resets May 31, 2025\" —\n * same font as the label, so the meter never grows an extra row. */\n hint?: string\n className?: string\n testId?: string\n}) {\n const clamped = Math.max(0, Math.min(100, pct))\n // Shared green → yellow → red gradation (same thresholds as the project-card\n // quota badges): green with room, yellow past the halfway mark, red at limit.\n const tone = clamped >= 100 ? 'bg-red-500' : clamped >= 50 ? 'bg-yellow-500' : 'bg-primary'\n return (\n <div className={cn('space-y-1.5', className)} data-testid={testId}>\n <div className=\"flex items-center justify-between gap-3 text-sm\">\n <span className=\"flex min-w-0 items-center gap-1.5 text-muted-foreground\">\n {Icon && <Icon className=\"size-3.5 shrink-0\" />}\n <span className=\"truncate\">\n {label}\n {hint ? ` (${hint})` : ''}\n </span>\n </span>\n <span className=\"shrink-0 font-medium tabular-nums text-foreground\">{value}</span>\n </div>\n <div className=\"h-1.5 overflow-hidden rounded-full bg-muted\">\n <div\n className={cn('h-full rounded-full transition-[width]', tone)}\n style={{ width: `${clamped}%` }}\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={label}\n />\n </div>\n </div>\n )\n}\n"]}
|
package/dist/chunk-D5T53XCL.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn } from '@arbidocs/react/ui';
|
|
3
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
// src/components/UsageMeter.tsx
|
|
6
|
-
function UsageMeter({
|
|
7
|
-
icon: Icon,
|
|
8
|
-
label,
|
|
9
|
-
value,
|
|
10
|
-
pct,
|
|
11
|
-
hint,
|
|
12
|
-
className,
|
|
13
|
-
testId
|
|
14
|
-
}) {
|
|
15
|
-
const clamped = Math.max(0, Math.min(100, pct));
|
|
16
|
-
const tone = clamped >= 100 ? "bg-red-500" : clamped >= 50 ? "bg-yellow-500" : "bg-primary";
|
|
17
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-1.5", className), "data-testid": testId, children: [
|
|
18
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 text-sm", children: [
|
|
19
|
-
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5 text-muted-foreground", children: [
|
|
20
|
-
Icon && /* @__PURE__ */ jsx(Icon, { className: "size-3.5 shrink-0" }),
|
|
21
|
-
/* @__PURE__ */ jsxs("span", { className: "truncate", children: [
|
|
22
|
-
label,
|
|
23
|
-
hint ? ` (${hint})` : ""
|
|
24
|
-
] })
|
|
25
|
-
] }),
|
|
26
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 font-medium tabular-nums text-foreground", children: value })
|
|
27
|
-
] }),
|
|
28
|
-
/* @__PURE__ */ jsx("div", { className: "h-1.5 overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx(
|
|
29
|
-
"div",
|
|
30
|
-
{
|
|
31
|
-
className: cn("h-full rounded-full transition-[width]", tone),
|
|
32
|
-
style: { width: `${clamped}%` },
|
|
33
|
-
role: "progressbar",
|
|
34
|
-
"aria-valuenow": clamped,
|
|
35
|
-
"aria-valuemin": 0,
|
|
36
|
-
"aria-valuemax": 100,
|
|
37
|
-
"aria-label": label
|
|
38
|
-
}
|
|
39
|
-
) })
|
|
40
|
-
] });
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export { UsageMeter };
|
|
44
|
-
//# sourceMappingURL=chunk-D5T53XCL.js.map
|
|
45
|
-
//# sourceMappingURL=chunk-D5T53XCL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/UsageMeter.tsx"],"names":[],"mappings":";;;;AAUO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA,EAAM,IAAA;AAAA,EACN,KAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAYG;AACD,EAAA,MAAM,OAAA,GAAU,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,GAAA,EAAK,GAAG,CAAC,CAAA;AAG9C,EAAA,MAAM,OAAO,OAAA,IAAW,GAAA,GAAM,YAAA,GAAe,OAAA,IAAW,KAAK,eAAA,GAAkB,YAAA;AAC/E,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,eAAe,SAAS,CAAA,EAAG,eAAa,MAAA,EACzD,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iDAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yDAAA,EACb,QAAA,EAAA;AAAA,QAAA,IAAA,oBAAQ,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,wBAC7C,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,IAAA,GAAO,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,CAAA,GAAM;AAAA,SAAA,EACzB;AAAA,OAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mDAAA,EAAqD,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EAC7E,CAAA;AAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6CAAA,EACb,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,IAAI,CAAA;AAAA,QAC5D,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,OAAO,CAAA,CAAA,CAAA,EAAI;AAAA,QAC9B,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,OAAA;AAAA,QACf,eAAA,EAAe,CAAA;AAAA,QACf,eAAA,EAAe,GAAA;AAAA,QACf,YAAA,EAAY;AAAA;AAAA,KACd,EACF;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-D5T53XCL.js","sourcesContent":["import type { LucideIcon } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\n\n/**\n * One labelled quota meter: icon + label on the left, used-of-limit on the\n * right, a thin bar underneath. The bar's tone follows pressure with the shared\n * green → yellow → red gradation — green while there's room, yellow past the\n * halfway mark, red at the limit — so a stack of meters reads at a glance which\n * quota is the one to think about.\n */\nexport function UsageMeter({\n icon: Icon,\n label,\n value,\n pct,\n hint,\n className,\n testId,\n}: {\n icon?: LucideIcon\n label: string\n /** Formatted used-of-limit text, e.g. \"1,200 / 25,000\" or \"40 / 500 MB\". */\n value: string\n /** Fill percentage, 0–100 (values are clamped). */\n pct: number\n /** Inline parenthetical after the label, e.g. \"resets May 31, 2025\" —\n * same font as the label, so the meter never grows an extra row. */\n hint?: string\n className?: string\n testId?: string\n}) {\n const clamped = Math.max(0, Math.min(100, pct))\n // Shared green → yellow → red gradation (same thresholds as the project-card\n // quota badges): green with room, yellow past the halfway mark, red at limit.\n const tone = clamped >= 100 ? 'bg-red-500' : clamped >= 50 ? 'bg-yellow-500' : 'bg-primary'\n return (\n <div className={cn('space-y-1.5', className)} data-testid={testId}>\n <div className=\"flex items-center justify-between gap-3 text-sm\">\n <span className=\"flex min-w-0 items-center gap-1.5 text-muted-foreground\">\n {Icon && <Icon className=\"size-3.5 shrink-0\" />}\n <span className=\"truncate\">\n {label}\n {hint ? ` (${hint})` : ''}\n </span>\n </span>\n <span className=\"shrink-0 font-medium tabular-nums text-foreground\">{value}</span>\n </div>\n <div className=\"h-1.5 overflow-hidden rounded-full bg-muted\">\n <div\n className={cn('h-full rounded-full transition-[width]', tone)}\n style={{ width: `${clamped}%` }}\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={label}\n />\n </div>\n </div>\n )\n}\n"]}
|