@danxbot/ui 16.1.0 → 16.2.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.
@@ -259,7 +259,10 @@ declare const ring: import("tailwind-variants").TVReturnType<{
259
259
  * unit of a card face row, `leading-4`), with nothing around it. Built to
260
260
  * carry an `xs` icon in its centre (`children`, `showValue={false}`): the
261
261
  * ring is the indicator and the icon says what it indicates. `xs` (14px)
262
- * is a hair short of a 16px line and leaves the ring floating in it.
262
+ * is a hair short of a 16px line and leaves the ring floating in it. Its
263
+ * track is thinner than every other size's (`RING_GEOMETRY`), so the icon
264
+ * fits inside it. Like `xs`, always pair with `showValue={false}`: two
265
+ * digits do not fit a 16px circle, and nothing clips or shrinks them.
263
266
  */
264
267
  row: "size-4";
265
268
  sm: "size-10";
@@ -290,7 +293,10 @@ declare const ring: import("tailwind-variants").TVReturnType<{
290
293
  * unit of a card face row, `leading-4`), with nothing around it. Built to
291
294
  * carry an `xs` icon in its centre (`children`, `showValue={false}`): the
292
295
  * ring is the indicator and the icon says what it indicates. `xs` (14px)
293
- * is a hair short of a 16px line and leaves the ring floating in it.
296
+ * is a hair short of a 16px line and leaves the ring floating in it. Its
297
+ * track is thinner than every other size's (`RING_GEOMETRY`), so the icon
298
+ * fits inside it. Like `xs`, always pair with `showValue={false}`: two
299
+ * digits do not fit a 16px circle, and nothing clips or shrinks them.
294
300
  */
295
301
  row: "size-4";
296
302
  sm: "size-10";
@@ -321,7 +327,10 @@ declare const ring: import("tailwind-variants").TVReturnType<{
321
327
  * unit of a card face row, `leading-4`), with nothing around it. Built to
322
328
  * carry an `xs` icon in its centre (`children`, `showValue={false}`): the
323
329
  * ring is the indicator and the icon says what it indicates. `xs` (14px)
324
- * is a hair short of a 16px line and leaves the ring floating in it.
330
+ * is a hair short of a 16px line and leaves the ring floating in it. Its
331
+ * track is thinner than every other size's (`RING_GEOMETRY`), so the icon
332
+ * fits inside it. Like `xs`, always pair with `showValue={false}`: two
333
+ * digits do not fit a 16px circle, and nothing clips or shrinks them.
325
334
  */
326
335
  row: "size-4";
327
336
  sm: "size-10";
@@ -30,3 +30,26 @@ export interface PlacedRingNode {
30
30
  * against its own node array by index without a lookup.
31
31
  */
32
32
  export declare function layoutRing(ids: readonly string[], threshold?: number): PlacedRingNode[];
33
+ /** One slot's measured vertical box, for `labelOverhang`. `height` is the slot body's own layout height (disc plus
34
+ label), `disc` the disc's diameter: both in px, both read untransformed so a glide in flight cannot skew them. */
35
+ export interface SlotBox {
36
+ topPct: number;
37
+ height: number;
38
+ disc: number;
39
+ placement: "above" | "below" | "beside";
40
+ /** A caller's own body: centred whole on its point (see `slotTranslate` in FocusWeb.tsx). */
41
+ custom: boolean;
42
+ }
43
+ /**
44
+ * DX-4219: how far the slots' boxes run above and below the plane's own `planeHeight`-px box. The plane is a fixed
45
+ * aspect ratio and the ring sits at fixed percentages of it, so a top node's label (it grows UP from its disc) or a
46
+ * bottom node's (it grows DOWN) leaves the plane by however many lines it wraps to — into whatever sits above or
47
+ * below the web. The component pads the web by exactly this, so every label sits inside the web's own area.
48
+ *
49
+ * The vertical placement mirrors `slotTranslate` in FocusWeb.tsx: that function is the one place the slot's
50
+ * `translate` is decided, and this is its arithmetic on measured sizes.
51
+ */
52
+ export declare function labelOverhang(boxes: readonly SlotBox[], planeHeight: number): {
53
+ top: number;
54
+ bottom: number;
55
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danxbot/ui",
3
- "version": "16.1.0",
3
+ "version": "16.2.1",
4
4
  "type": "module",
5
5
  "description": "Danxbot — a domain-agnostic React design system with motion as a first-class primitive.",
6
6
  "license": "MIT",