@knpkv/rly 0.8.0 → 0.9.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.
Files changed (41) hide show
  1. package/README.md +38 -0
  2. package/dist/components.css +1 -1
  3. package/dist/dts/patterns/DecisionBar.d.ts +68 -0
  4. package/dist/dts/patterns/DecisionBar.d.ts.map +1 -0
  5. package/dist/dts/patterns/Hero.d.ts +69 -0
  6. package/dist/dts/patterns/Hero.d.ts.map +1 -0
  7. package/dist/dts/patterns/Region.d.ts +56 -0
  8. package/dist/dts/patterns/Region.d.ts.map +1 -0
  9. package/dist/dts/patterns/StageRail.d.ts +11 -1
  10. package/dist/dts/patterns/StageRail.d.ts.map +1 -1
  11. package/dist/dts/patterns/TimelineRow.d.ts +25 -0
  12. package/dist/dts/patterns/TimelineRow.d.ts.map +1 -1
  13. package/dist/dts/patterns/index.d.ts +8 -2
  14. package/dist/dts/patterns/index.d.ts.map +1 -1
  15. package/dist/dts/primitives/ChartLegend.d.ts +23 -0
  16. package/dist/dts/primitives/ChartLegend.d.ts.map +1 -0
  17. package/dist/dts/primitives/LimitTrack.d.ts +62 -0
  18. package/dist/dts/primitives/LimitTrack.d.ts.map +1 -0
  19. package/dist/dts/primitives/TrackKey.d.ts +20 -0
  20. package/dist/dts/primitives/TrackKey.d.ts.map +1 -0
  21. package/dist/dts/primitives/index.d.ts +6 -0
  22. package/dist/dts/primitives/index.d.ts.map +1 -1
  23. package/dist/dts/tokens/semantic-tokens.d.ts +1 -1
  24. package/dist/dts/tokens/semantic-tokens.d.ts.map +1 -1
  25. package/dist/generated-tokens.css +36 -0
  26. package/dist/index.js +5 -5
  27. package/dist/patterns/index.js +2 -2
  28. package/dist/{patterns-LJ8Y44f2.js → patterns-lOWLKH70.js} +1246 -947
  29. package/dist/patterns-lOWLKH70.js.map +1 -0
  30. package/dist/primitives/index.js +2 -2
  31. package/dist/{primitives-CjQX0eVM.js → primitives-Dj-qYrUZ.js} +215 -85
  32. package/dist/primitives-Dj-qYrUZ.js.map +1 -0
  33. package/dist/tokens/index.js +1 -1
  34. package/dist/{tokens-CjK9bxo7.js → tokens-DaF1m6rr.js} +2 -2
  35. package/dist/tokens-DaF1m6rr.js.map +1 -0
  36. package/package.json +1 -1
  37. package/registry/components.json +639 -12
  38. package/registry/search.json +163 -2
  39. package/dist/patterns-LJ8Y44f2.js.map +0 -1
  40. package/dist/primitives-CjQX0eVM.js.map +0 -1
  41. package/dist/tokens-CjK9bxo7.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, c as u, d, f, g as p, h as m, i as h, k as g, l as _, m as v, n as y, o as b, p as x, r as S, s as C, t as w, u as T, v as E, w as D, x as O, y as k } from "../Dialog-_t9OodCK.js";
3
- import { _ as A, a as j, c as M, d as N, f as P, g as F, h as I, i as L, l as R, m as z, n as B, o as V, p as H, r as U, s as W, t as G, u as K, v as q, y as J } from "../primitives-CjQX0eVM.js";
4
- export { k as Avatar, o as Button, w as Dialog, A as Divider, h as Field, p as IconButton, z as Notice, l as RLY_AVATAR_DEFAULT_VARIANTS, O as RLY_AVATAR_VARIANTS, r as RLY_BUTTON_DEFAULT_VARIANTS, n as RLY_BUTTON_VARIANTS, y as RLY_DIALOG_DEFAULT_VARIANTS, S as RLY_DIALOG_VARIANTS, q as RLY_DIVIDER_DEFAULT_VARIANTS, J as RLY_DIVIDER_VARIANTS, c as RLY_FIELD_DEFAULT_VARIANTS, b as RLY_FIELD_VARIANTS, s as RLY_ICON_BUTTON_DEFAULT_VARIANTS, E as RLY_ICON_BUTTON_VARIANTS, I as RLY_NOTICE_DEFAULT_VARIANTS, F as RLY_NOTICE_VARIANTS, x as RLY_SELECT_DEFAULT_VARIANTS, v as RLY_SELECT_VARIANTS, i as RLY_SHEET_DEFAULT_VARIANTS, g as RLY_SHEET_VARIANTS, T as RLY_SKELETON_DEFAULT_VARIANTS, d as RLY_SKELETON_VARIANTS, a as RLY_STATE_LABEL_DEFAULT_VARIANTS, t as RLY_STATE_LABEL_VARIANTS, C as RLY_STATE_PANEL_DEFAULT_VARIANTS, u as RLY_STATE_PANEL_VARIANTS, N as RLY_SURFACE_DEFAULT_VARIANTS, P as RLY_SURFACE_VARIANTS, M as RLY_TABS_DEFAULT_VARIANTS, R as RLY_TABS_VARIANTS, j as RLY_TEXT_DEFAULT_VARIANTS, V as RLY_TEXT_VARIANTS, G as RLY_TOGGLE_GROUP_DEFAULT_VARIANTS, B as RLY_TOGGLE_GROUP_VARIANTS, m as Select, e as Sheet, f as Skeleton, D as StateLabel, _ as StatePanel, H as Surface, K as Tabs, W as Text, L as ThemeSelect, U as ToggleGroup };
3
+ import { C as A, D as j, E as M, O as N, S as P, T as F, _ as I, a as L, b as R, c as z, d as B, f as V, g as H, h as U, i as W, l as G, m as K, n as q, o as J, p as Y, r as X, s as Z, t as Q, u as $, v as ee, w as te, x as ne, y as re } from "../primitives-Dj-qYrUZ.js";
4
+ export { k as Avatar, o as Button, M as ChartLegend, w as Dialog, A as Divider, h as Field, p as IconButton, re as LimitTrack, H as Notice, l as RLY_AVATAR_DEFAULT_VARIANTS, O as RLY_AVATAR_VARIANTS, r as RLY_BUTTON_DEFAULT_VARIANTS, n as RLY_BUTTON_VARIANTS, y as RLY_DIALOG_DEFAULT_VARIANTS, S as RLY_DIALOG_VARIANTS, te as RLY_DIVIDER_DEFAULT_VARIANTS, F as RLY_DIVIDER_VARIANTS, c as RLY_FIELD_DEFAULT_VARIANTS, b as RLY_FIELD_VARIANTS, s as RLY_ICON_BUTTON_DEFAULT_VARIANTS, E as RLY_ICON_BUTTON_VARIANTS, R as RLY_LIMIT_TRACK_DEFAULT_VARIANTS, ne as RLY_LIMIT_TRACK_VARIANTS, I as RLY_NOTICE_DEFAULT_VARIANTS, ee as RLY_NOTICE_VARIANTS, x as RLY_SELECT_DEFAULT_VARIANTS, v as RLY_SELECT_VARIANTS, j as RLY_SERIES, i as RLY_SHEET_DEFAULT_VARIANTS, g as RLY_SHEET_VARIANTS, T as RLY_SKELETON_DEFAULT_VARIANTS, d as RLY_SKELETON_VARIANTS, a as RLY_STATE_LABEL_DEFAULT_VARIANTS, t as RLY_STATE_LABEL_VARIANTS, C as RLY_STATE_PANEL_DEFAULT_VARIANTS, u as RLY_STATE_PANEL_VARIANTS, Y as RLY_SURFACE_DEFAULT_VARIANTS, K as RLY_SURFACE_VARIANTS, $ as RLY_TABS_DEFAULT_VARIANTS, B as RLY_TABS_VARIANTS, Z as RLY_TEXT_DEFAULT_VARIANTS, z as RLY_TEXT_VARIANTS, X as RLY_TOGGLE_GROUP_DEFAULT_VARIANTS, W as RLY_TOGGLE_GROUP_VARIANTS, Q as RLY_TRACK_KEY_MARKS, m as Select, e as Sheet, f as Skeleton, D as StateLabel, _ as StatePanel, U as Surface, V as Tabs, G as Text, J as ThemeSelect, L as ToggleGroup, q as TrackKey, P as limitTrackTone, N as rlySeriesColor };
5
5
 
6
6
  //# sourceMappingURL=index.js.map
@@ -6,40 +6,75 @@ import { RadioGroup as l, Tabs as u } from "radix-ui";
6
6
  import { createElement as d, useRef as f } from "react";
7
7
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
8
8
  var h = {
9
+ root: "rly_ChartLegend-module__root",
10
+ item: "rly_ChartLegend-module__item",
11
+ swatch: "rly_ChartLegend-module__swatch"
12
+ }, g = (e) => i(h, e), _ = [
13
+ 1,
14
+ 2,
15
+ 3,
16
+ 4,
17
+ 5,
18
+ 6,
19
+ 7,
20
+ 8,
21
+ "other"
22
+ ], v = (e) => `var(--rly-color-series-${e})`, y = (e) => {
23
+ let t = /* @__PURE__ */ new Set();
24
+ for (let n of e) {
25
+ let e = r(n.id, "ChartLegend item id");
26
+ if (t.has(e)) throw Error(`ChartLegend item ids must be unique: ${e}`);
27
+ t.add(e);
28
+ }
29
+ }, b = ({ className: e, items: t, label: n, ...i }) => (y(t), t.length === 0 ? null : /* @__PURE__ */ p("ul", {
30
+ ...i,
31
+ "aria-label": r(n, "ChartLegend label"),
32
+ className: o(g("root"), e),
33
+ role: "list",
34
+ children: t.map((e) => /* @__PURE__ */ m("li", {
35
+ className: g("item"),
36
+ children: [/* @__PURE__ */ p("span", {
37
+ "aria-hidden": "true",
38
+ className: g("swatch"),
39
+ "data-series": String(e.series),
40
+ style: { background: v(e.series) }
41
+ }), r(e.label, "ChartLegend item label")]
42
+ }, e.id))
43
+ })), x = {
9
44
  root: "rly_Divider-module__root",
10
45
  horizontal: "rly_Divider-module__horizontal",
11
46
  vertical: "rly_Divider-module__vertical",
12
47
  subtle: "rly_Divider-module__subtle",
13
48
  strong: "rly_Divider-module__strong"
14
- }, g = (e) => i(h, e), _ = a({
49
+ }, S = (e) => i(x, e), C = a({
15
50
  orientation: {
16
51
  horizontal: {
17
- className: g("horizontal"),
52
+ className: S("horizontal"),
18
53
  purpose: "Separate stacked content",
19
54
  tokens: ["space-0"]
20
55
  },
21
56
  vertical: {
22
- className: g("vertical"),
57
+ className: S("vertical"),
23
58
  purpose: "Separate adjacent content",
24
59
  tokens: ["space-0"]
25
60
  }
26
61
  },
27
62
  strength: {
28
63
  subtle: {
29
- className: g("subtle"),
64
+ className: S("subtle"),
30
65
  purpose: "Quiet structural boundary",
31
66
  tokens: ["color-border-1"]
32
67
  },
33
68
  strong: {
34
- className: g("strong"),
69
+ className: S("strong"),
35
70
  purpose: "Explicit structural boundary",
36
71
  tokens: ["color-border-2"]
37
72
  }
38
73
  }
39
- }), v = a({
74
+ }), ee = a({
40
75
  orientation: "horizontal",
41
76
  strength: "subtle"
42
- }), y = ({ className: e, decorative: t = !0, label: n, orientation: i = "horizontal", strength: a = "subtle", ...s }) => {
77
+ }), te = ({ className: e, decorative: t = !0, label: n, orientation: i = "horizontal", strength: a = "subtle", ...s }) => {
43
78
  if (!t && n === void 0) throw Error("Semantic Divider label must contain visible text");
44
79
  let c = t || n === void 0 ? void 0 : r(n, "Semantic Divider label");
45
80
  return /* @__PURE__ */ p("div", {
@@ -47,10 +82,72 @@ var h = {
47
82
  "aria-hidden": t ? "true" : void 0,
48
83
  "aria-label": c,
49
84
  "aria-orientation": t ? void 0 : i,
50
- className: o(g("root"), _.orientation[i].className, _.strength[a].className, e),
85
+ className: o(S("root"), C.orientation[i].className, C.strength[a].className, e),
51
86
  role: t ? "presentation" : "separator"
52
87
  });
53
- }, b = {
88
+ }, w = {
89
+ root: "rly_LimitTrack-module__root",
90
+ defaultSize: "rly_LimitTrack-module__defaultSize",
91
+ slim: "rly_LimitTrack-module__slim",
92
+ fill: "rly_LimitTrack-module__fill",
93
+ projection: "rly_LimitTrack-module__projection",
94
+ near: "rly_LimitTrack-module__near"
95
+ }, T = (e) => i(w, e), E = a({ size: {
96
+ default: {
97
+ className: T("defaultSize"),
98
+ purpose: "A limit beside its numbers",
99
+ tokens: ["space-12", "radius-tag"]
100
+ },
101
+ slim: {
102
+ className: T("slim"),
103
+ purpose: "A limit inside a dense row",
104
+ tokens: ["space-6", "radius-tag"]
105
+ }
106
+ } }), D = a({ size: "default" }), O = (e) => e !== null && Number.isFinite(e) ? e : null, k = (e, t) => {
107
+ if (!Number.isFinite(e)) throw Error(`${t} must be a finite number`);
108
+ return e;
109
+ }, A = (e, t) => {
110
+ let n = k(t, "limitTrackTone near"), r = O(e);
111
+ return r === null ? "unknown" : r >= 100 ? "full" : r >= n ? "near" : "ok";
112
+ }, j = (e) => Math.min(100, Math.max(0, e)), M = ({ className: e, decorative: t = !0, label: n, near: i = 80, projected: a, size: s = D.size, stale: c = !1, value: l, valueText: u, ...d }) => {
113
+ let f = O(l), h = k(i, "LimitTrack near"), g = !t, _ = g ? r(n ?? "", "LimitTrack label") : void 0, v = g ? r(u ?? "", "LimitTrack valueText") : void 0, y = g && f !== null, b = f !== null && a !== void 0 && Number.isFinite(a) && a > f ? {
114
+ start: j(f),
115
+ length: j(a) - j(f)
116
+ } : null;
117
+ return /* @__PURE__ */ m("span", {
118
+ ...d,
119
+ "aria-hidden": g ? void 0 : "true",
120
+ "aria-label": g && !y ? `${_}: ${v}` : _,
121
+ "aria-valuemax": y ? 100 : void 0,
122
+ "aria-valuemin": y ? 0 : void 0,
123
+ "aria-valuenow": y && f !== null ? j(f) : void 0,
124
+ "aria-valuetext": y ? v : void 0,
125
+ className: o(T("root"), E.size[s].className, e),
126
+ "data-stale": c ? "true" : void 0,
127
+ "data-tone": A(f, h),
128
+ role: g ? y ? "meter" : "img" : void 0,
129
+ children: [
130
+ f === null ? null : /* @__PURE__ */ p("span", {
131
+ className: T("fill"),
132
+ "data-part": "fill",
133
+ style: { inlineSize: `${j(f)}%` }
134
+ }),
135
+ b === null ? null : /* @__PURE__ */ p("span", {
136
+ className: T("projection"),
137
+ "data-part": "projection",
138
+ style: {
139
+ inlineSize: `${b.length}%`,
140
+ insetInlineStart: `${b.start}%`
141
+ }
142
+ }),
143
+ /* @__PURE__ */ p("span", {
144
+ className: T("near"),
145
+ "data-part": "near",
146
+ style: { insetInlineStart: `min(${j(h)}%, 100% - 1px)` }
147
+ })
148
+ ]
149
+ });
150
+ }, ne = {
54
151
  root: "rly_Notice-module__root",
55
152
  neutral: "rly_Notice-module__neutral",
56
153
  positive: "rly_Notice-module__positive",
@@ -61,9 +158,9 @@ var h = {
61
158
  lead: "rly_Notice-module__lead",
62
159
  message: "rly_Notice-module__message",
63
160
  action: "rly_Notice-module__action"
64
- }, x = (e) => i(b, e), S = a({ tone: {
161
+ }, N = (e) => i(ne, e), P = a({ tone: {
65
162
  neutral: {
66
- className: x("neutral"),
163
+ className: N("neutral"),
67
164
  purpose: "Neutral context",
68
165
  tokens: [
69
166
  "color-text-2",
@@ -72,58 +169,58 @@ var h = {
72
169
  ]
73
170
  },
74
171
  positive: {
75
- className: x("positive"),
172
+ className: N("positive"),
76
173
  purpose: "Completed outcome",
77
174
  tokens: ["color-success-ink", "color-success-tint"]
78
175
  },
79
176
  critical: {
80
- className: x("critical"),
177
+ className: N("critical"),
81
178
  purpose: "Failure that needs attention",
82
179
  tokens: ["color-blocked-ink", "color-blocked-tint"]
83
180
  },
84
181
  caution: {
85
- className: x("caution"),
182
+ className: N("caution"),
86
183
  purpose: "Limitation or warning",
87
184
  tokens: ["color-held-ink", "color-held-tint"]
88
185
  },
89
186
  progress: {
90
- className: x("progress"),
187
+ className: N("progress"),
91
188
  purpose: "Work in progress",
92
189
  tokens: ["color-deploying-ink", "color-deploying-tint"]
93
190
  }
94
- } }), C = a({ tone: "neutral" }), w = {
191
+ } }), F = a({ tone: "neutral" }), I = {
95
192
  neutral: void 0,
96
193
  positive: "check",
97
194
  critical: "alert",
98
195
  caution: "clock",
99
196
  progress: "loader"
100
- }, T = ({ action: e, announce: t = "off", children: r, className: i, icon: a, tone: s = "neutral", ...c }) => {
101
- let l = a ?? w[s], u = t === "assertive" ? "alert" : t === "polite" ? "status" : c.role;
197
+ }, re = ({ action: e, announce: t = "off", children: r, className: i, icon: a, tone: s = "neutral", ...c }) => {
198
+ let l = a ?? I[s], u = t === "assertive" ? "alert" : t === "polite" ? "status" : c.role;
102
199
  return /* @__PURE__ */ m("div", {
103
200
  ...c,
104
201
  "aria-live": t === "off" ? void 0 : t,
105
- className: o(x("root"), S.tone[s].className, i),
202
+ className: o(N("root"), P.tone[s].className, i),
106
203
  role: u,
107
204
  children: [/* @__PURE__ */ m("div", {
108
- className: x("lead"),
205
+ className: N("lead"),
109
206
  children: [l === void 0 ? null : /* @__PURE__ */ p("span", {
110
207
  "aria-hidden": "true",
111
- className: x("icon"),
208
+ className: N("icon"),
112
209
  children: /* @__PURE__ */ p(n, {
113
210
  decorative: !0,
114
211
  name: l,
115
212
  size: "small"
116
213
  })
117
214
  }), /* @__PURE__ */ p("div", {
118
- className: x("message"),
215
+ className: N("message"),
119
216
  children: r
120
217
  })]
121
218
  }), e === void 0 ? null : /* @__PURE__ */ p("div", {
122
- className: x("action"),
219
+ className: N("action"),
123
220
  children: e
124
221
  })]
125
222
  });
126
- }, E = {
223
+ }, ie = {
127
224
  root: "rly_Surface-module__root",
128
225
  tonePrimary: "rly_Surface-module__tonePrimary",
129
226
  toneSecondary: "rly_Surface-module__toneSecondary",
@@ -134,76 +231,76 @@ var h = {
134
231
  paddingCompact: "rly_Surface-module__paddingCompact",
135
232
  paddingDefault: "rly_Surface-module__paddingDefault",
136
233
  paddingSpacious: "rly_Surface-module__paddingSpacious"
137
- }, D = (e) => i(E, e), O = a({
234
+ }, L = (e) => i(ie, e), R = a({
138
235
  tone: {
139
236
  primary: {
140
- className: D("tonePrimary"),
237
+ className: L("tonePrimary"),
141
238
  purpose: "Primary bordered surface",
142
239
  tokens: ["color-surface-1", "color-border-1"]
143
240
  },
144
241
  secondary: {
145
- className: D("toneSecondary"),
242
+ className: L("toneSecondary"),
146
243
  purpose: "Quiet secondary surface",
147
244
  tokens: ["color-surface-2"]
148
245
  },
149
246
  tertiary: {
150
- className: D("toneTertiary"),
247
+ className: L("toneTertiary"),
151
248
  purpose: "Inset tertiary surface",
152
249
  tokens: ["color-surface-3"]
153
250
  }
154
251
  },
155
252
  form: {
156
253
  card: {
157
- className: D("shapeCard"),
254
+ className: L("shapeCard"),
158
255
  purpose: "Standard card geometry",
159
256
  tokens: ["radius-control"]
160
257
  },
161
258
  grouped: {
162
- className: D("shapeGrouped"),
259
+ className: L("shapeGrouped"),
163
260
  purpose: "Grouped content geometry",
164
261
  tokens: ["radius-group"]
165
262
  }
166
263
  },
167
264
  padding: {
168
265
  none: {
169
- className: D("paddingNone"),
266
+ className: L("paddingNone"),
170
267
  purpose: "Caller-owned internal layout",
171
268
  tokens: ["space-0"]
172
269
  },
173
270
  compact: {
174
- className: D("paddingCompact"),
271
+ className: L("paddingCompact"),
175
272
  purpose: "Dense supporting content",
176
273
  tokens: ["space-16"]
177
274
  },
178
275
  default: {
179
- className: D("paddingDefault"),
276
+ className: L("paddingDefault"),
180
277
  purpose: "Standard content",
181
278
  tokens: ["space-24"]
182
279
  },
183
280
  spacious: {
184
- className: D("paddingSpacious"),
281
+ className: L("paddingSpacious"),
185
282
  purpose: "Prominent grouped content",
186
283
  tokens: ["space-32"]
187
284
  }
188
285
  }
189
- }), k = a({
286
+ }), ae = a({
190
287
  tone: "primary",
191
288
  form: "card",
192
289
  padding: "default"
193
- }), A = ({ as: e, children: t, className: n, form: r = "card", padding: i = "default", ref: a, tone: s = "primary", ...c }) => d(e ?? "div", {
290
+ }), z = ({ as: e, children: t, className: n, form: r = "card", padding: i = "default", ref: a, tone: s = "primary", ...c }) => d(e ?? "div", {
194
291
  ...c,
195
- className: o(D("root"), O.tone[s].className, O.form[r].className, O.padding[i].className, n),
292
+ className: o(L("root"), R.tone[s].className, R.form[r].className, R.padding[i].className, n),
196
293
  ref: a
197
- }, t), j = {
294
+ }, t), B = {
198
295
  root: "rly_Tabs-module__root",
199
296
  list: "rly_Tabs-module__list",
200
297
  trigger: "rly_Tabs-module__trigger",
201
298
  defaultSize: "rly_Tabs-module__defaultSize",
202
299
  large: "rly_Tabs-module__large",
203
300
  panel: "rly_Tabs-module__panel"
204
- }, M = (e) => i(j, e), N = a({ size: {
301
+ }, V = (e) => i(B, e), H = a({ size: {
205
302
  default: {
206
- className: M("defaultSize"),
303
+ className: V("defaultSize"),
207
304
  purpose: "Standard section navigation",
208
305
  tokens: [
209
306
  "type-label",
@@ -212,11 +309,11 @@ var h = {
212
309
  ]
213
310
  },
214
311
  large: {
215
- className: M("large"),
312
+ className: V("large"),
216
313
  purpose: "Prominent page-level navigation",
217
314
  tokens: ["type-body", "space-48"]
218
315
  }
219
- } }), P = a({ size: "default" }), F = (e) => {
316
+ } }), U = a({ size: "default" }), W = (e) => {
220
317
  if (e.length === 0) throw Error("Tabs items must contain at least one enabled tab");
221
318
  let t = /* @__PURE__ */ new Set(), n;
222
319
  for (let i of e) {
@@ -226,8 +323,8 @@ var h = {
226
323
  }
227
324
  if (n === void 0) throw Error("Tabs items must contain at least one enabled tab");
228
325
  return n;
229
- }, I = ({ "aria-label": e, className: t, defaultValue: n, direction: i, items: a, onValueChange: s, ref: c, size: l = "default", value: f, ...h }) => {
230
- let g = r(e, "Tabs aria-label"), _ = F(a), v = f ?? n ?? _.value, y = a.find((e) => e.value === v);
326
+ }, G = ({ "aria-label": e, className: t, defaultValue: n, direction: i, items: a, onValueChange: s, ref: c, size: l = "default", value: f, ...h }) => {
327
+ let g = r(e, "Tabs aria-label"), _ = W(a), v = f ?? n ?? _.value, y = a.find((e) => e.value === v);
231
328
  if (y === void 0 || y.disabled) throw Error(`Tabs selected value must identify an enabled tab: ${v}`);
232
329
  let b = f === void 0 ? s === void 0 ? { defaultValue: v } : {
233
330
  defaultValue: v,
@@ -241,28 +338,28 @@ var h = {
241
338
  ...b,
242
339
  ...x,
243
340
  activationMode: "automatic",
244
- className: o(M("root"), N.size[l].className, t),
341
+ className: o(V("root"), H.size[l].className, t),
245
342
  orientation: "horizontal",
246
343
  ref: c,
247
344
  children: [/* @__PURE__ */ p(u.List, {
248
345
  "aria-label": g,
249
- className: M("list"),
346
+ className: V("list"),
250
347
  loop: !0,
251
348
  children: a.map((e) => /* @__PURE__ */ p(u.Trigger, {
252
- className: M("trigger"),
349
+ className: V("trigger"),
253
350
  "data-tab-value": e.value,
254
351
  disabled: e.disabled,
255
352
  value: e.value,
256
353
  children: e.label
257
354
  }, e.value))
258
355
  }), a.map((e) => /* @__PURE__ */ d(u.Content, {
259
- className: M("panel"),
356
+ className: V("panel"),
260
357
  ...e.forceMount === void 0 ? {} : { forceMount: e.forceMount },
261
358
  key: e.value,
262
359
  value: e.value
263
360
  }, e.content))]
264
361
  });
265
- }, L = {
362
+ }, K = {
266
363
  root: "rly_Text-module__root",
267
364
  verdict: "rly_Text-module__verdict",
268
365
  pageTitle: "rly_Text-module__pageTitle",
@@ -277,100 +374,100 @@ var h = {
277
374
  toneSecondary: "rly_Text-module__toneSecondary",
278
375
  toneTertiary: "rly_Text-module__toneTertiary",
279
376
  toneInherit: "rly_Text-module__toneInherit"
280
- }, R = (e) => i(L, e), z = a({
377
+ }, q = (e) => i(K, e), J = a({
281
378
  variant: {
282
379
  verdict: {
283
- className: R("verdict"),
380
+ className: q("verdict"),
284
381
  purpose: "One restrained verdict thesis",
285
382
  tokens: ["type-verdict"]
286
383
  },
287
384
  "page-title": {
288
- className: R("pageTitle"),
385
+ className: q("pageTitle"),
289
386
  purpose: "Primary page title",
290
387
  tokens: ["type-page-title"]
291
388
  },
292
389
  "section-title": {
293
- className: R("sectionTitle"),
390
+ className: q("sectionTitle"),
294
391
  purpose: "Section heading",
295
392
  tokens: ["type-section-title"]
296
393
  },
297
394
  "card-title": {
298
- className: R("cardTitle"),
395
+ className: q("cardTitle"),
299
396
  purpose: "Card or panel heading",
300
397
  tokens: ["type-card-title"]
301
398
  },
302
399
  "body-large": {
303
- className: R("bodyLarge"),
400
+ className: q("bodyLarge"),
304
401
  purpose: "Leading explanatory copy",
305
402
  tokens: ["type-body-large"]
306
403
  },
307
404
  body: {
308
- className: R("body"),
405
+ className: q("body"),
309
406
  purpose: "Default interface copy",
310
407
  tokens: ["type-body"]
311
408
  },
312
409
  label: {
313
- className: R("label"),
410
+ className: q("label"),
314
411
  purpose: "Control and metadata labels",
315
412
  tokens: ["type-label"]
316
413
  },
317
414
  meta: {
318
- className: R("meta"),
415
+ className: q("meta"),
319
416
  purpose: "Supporting metadata",
320
417
  tokens: ["type-meta"]
321
418
  },
322
419
  code: {
323
- className: R("code"),
420
+ className: q("code"),
324
421
  purpose: "Code and tabular data",
325
422
  tokens: ["type-code"]
326
423
  }
327
424
  },
328
425
  tone: {
329
426
  primary: {
330
- className: R("tonePrimary"),
427
+ className: q("tonePrimary"),
331
428
  purpose: "Primary readable text",
332
429
  tokens: ["color-text-1"]
333
430
  },
334
431
  secondary: {
335
- className: R("toneSecondary"),
432
+ className: q("toneSecondary"),
336
433
  purpose: "Supporting text",
337
434
  tokens: ["color-text-2"]
338
435
  },
339
436
  tertiary: {
340
- className: R("toneTertiary"),
437
+ className: q("toneTertiary"),
341
438
  purpose: "Restricted tertiary text",
342
439
  tokens: ["color-text-3"]
343
440
  },
344
441
  inherit: {
345
- className: R("toneInherit"),
442
+ className: q("toneInherit"),
346
443
  purpose: "Inherit semantic context",
347
444
  tokens: []
348
445
  }
349
446
  }
350
- }), B = a({
447
+ }), Y = a({
351
448
  variant: "body",
352
449
  tone: "primary"
353
- }), V = (e) => e === "code" ? "code" : e === "verdict" ? "p" : e === "label" || e === "meta" ? "span" : "p", H = ({ as: e, children: t, className: n, ref: r, tone: i = B.tone, variant: a = B.variant, ...s }) => d(e ?? V(a), {
450
+ }), oe = (e) => e === "code" ? "code" : e === "verdict" ? "p" : e === "label" || e === "meta" ? "span" : "p", se = ({ as: e, children: t, className: n, ref: r, tone: i = Y.tone, variant: a = Y.variant, ...s }) => d(e ?? oe(a), {
354
451
  ...s,
355
- className: o(R("root"), z.variant[a].className, z.tone[i].className, n),
452
+ className: o(q("root"), J.variant[a].className, J.tone[i].className, n),
356
453
  ref: r
357
- }, t), U = { intrinsic: "rly_ThemeSelect-module__intrinsic" }, W = {
454
+ }, t), ce = { intrinsic: "rly_ThemeSelect-module__intrinsic" }, le = {
358
455
  system: "System",
359
456
  light: "Light",
360
457
  dark: "Dark"
361
- }, G = t.map((e) => ({
362
- label: W[e],
458
+ }, X = t.map((e) => ({
459
+ label: le[e],
363
460
  value: e
364
- })), K = ({ className: t, label: n = "Appearance", labelVisibility: r = "visible", onValueChange: a, size: l = "compact", value: u }) => {
461
+ })), ue = ({ className: t, label: n = "Appearance", labelVisibility: r = "visible", onValueChange: a, size: l = "compact", value: u }) => {
365
462
  let d = (t) => {
366
463
  let n = e(t);
367
464
  n !== void 0 && a(n);
368
465
  };
369
466
  return r === "hidden" ? /* @__PURE__ */ p(s, {
370
467
  "aria-label": n,
371
- className: o(i(U, "intrinsic"), t),
468
+ className: o(i(ce, "intrinsic"), t),
372
469
  onValueChange: d,
373
- options: G,
470
+ options: X,
374
471
  size: l,
375
472
  value: u
376
473
  }) : /* @__PURE__ */ p(c, {
@@ -380,19 +477,19 @@ var h = {
380
477
  children: (e) => /* @__PURE__ */ p(s, {
381
478
  ...e,
382
479
  onValueChange: d,
383
- options: G,
480
+ options: X,
384
481
  size: l,
385
482
  value: u
386
483
  })
387
484
  });
388
- }, q = {
485
+ }, de = {
389
486
  root: "rly_ToggleGroup-module__root",
390
487
  item: "rly_ToggleGroup-module__item",
391
488
  defaultSize: "rly_ToggleGroup-module__defaultSize",
392
489
  compact: "rly_ToggleGroup-module__compact"
393
- }, J = (e) => i(q, e), Y = a({ size: {
490
+ }, Z = (e) => i(de, e), Q = a({ size: {
394
491
  compact: {
395
- className: J("compact"),
492
+ className: Z("compact"),
396
493
  purpose: "Dense filter rows beside other controls",
397
494
  tokens: [
398
495
  "type-meta",
@@ -401,7 +498,7 @@ var h = {
401
498
  ]
402
499
  },
403
500
  default: {
404
- className: J("defaultSize"),
501
+ className: Z("defaultSize"),
405
502
  purpose: "Standard view and filter choices",
406
503
  tokens: [
407
504
  "type-label",
@@ -409,7 +506,7 @@ var h = {
409
506
  "space-2"
410
507
  ]
411
508
  }
412
- } }), X = a({ size: "default" }), Z = (e) => e === "ArrowLeft" || e === "ArrowUp" ? -1 : e === "ArrowRight" || e === "ArrowDown" ? 1 : null, Q = (e, t) => {
509
+ } }), fe = a({ size: "default" }), pe = (e) => e === "ArrowLeft" || e === "ArrowUp" ? -1 : e === "ArrowRight" || e === "ArrowDown" ? 1 : null, me = (e, t) => {
413
510
  let n = /* @__PURE__ */ new Set();
414
511
  for (let t of e) {
415
512
  let e = r(t.value, "ToggleGroup item value");
@@ -417,11 +514,11 @@ var h = {
417
514
  n.add(e);
418
515
  }
419
516
  if (!n.has(t)) throw Error(`ToggleGroup value must identify an option: ${t}`);
420
- }, $ = ({ "aria-label": e, className: t, items: n, onValueChange: i, ref: a, size: s = "default", value: c, ...u }) => {
517
+ }, he = ({ "aria-label": e, className: t, items: n, onValueChange: i, ref: a, size: s = "default", value: c, ...u }) => {
421
518
  let d = r(e, "ToggleGroup aria-label");
422
- Q(n, c);
519
+ me(n, c);
423
520
  let m = f(/* @__PURE__ */ new Map()), h = (e, t) => {
424
- let r = Z(e.key);
521
+ let r = pe(e.key);
425
522
  if (r === null) return;
426
523
  e.preventDefault();
427
524
  let a = n[(t + r + n.length) % n.length];
@@ -430,14 +527,14 @@ var h = {
430
527
  return /* @__PURE__ */ p(l.Root, {
431
528
  ...u,
432
529
  "aria-label": d,
433
- className: o(J("root"), Y.size[s].className, t),
530
+ className: o(Z("root"), Q.size[s].className, t),
434
531
  loop: !0,
435
532
  onValueChange: i,
436
533
  orientation: "horizontal",
437
534
  ref: a,
438
535
  value: c,
439
536
  children: n.map((e, t) => /* @__PURE__ */ p(l.Item, {
440
- className: J("item"),
537
+ className: Z("item"),
441
538
  onKeyDown: (e) => h(e, t),
442
539
  ref: (t) => {
443
540
  t === null ? m.current.delete(e.value) : m.current.set(e.value, t);
@@ -446,8 +543,41 @@ var h = {
446
543
  children: e.label
447
544
  }, e.value))
448
545
  });
546
+ }, ge = {
547
+ root: "rly_TrackKey-module__root",
548
+ item: "rly_TrackKey-module__item",
549
+ near: "rly_TrackKey-module__near",
550
+ projected: "rly_TrackKey-module__projected",
551
+ stale: "rly_TrackKey-module__stale",
552
+ unknown: "rly_TrackKey-module__unknown"
553
+ }, $ = (e) => i(ge, e), _e = [
554
+ "near",
555
+ "projected",
556
+ "stale",
557
+ "unknown"
558
+ ], ve = ({ className: e, items: t, label: n, ...i }) => {
559
+ if (t.length === 0) throw Error("TrackKey needs at least one mark to explain");
560
+ let a = /* @__PURE__ */ new Set();
561
+ for (let e of t) {
562
+ if (a.has(e.mark)) throw Error(`TrackKey marks must be unique: ${e.mark}`);
563
+ a.add(e.mark);
564
+ }
565
+ return /* @__PURE__ */ p("ul", {
566
+ ...i,
567
+ "aria-label": r(n, "TrackKey label"),
568
+ className: o($("root"), e),
569
+ role: "list",
570
+ children: t.map((e) => /* @__PURE__ */ m("li", {
571
+ className: $("item"),
572
+ children: [/* @__PURE__ */ p("span", {
573
+ "aria-hidden": "true",
574
+ className: $(e.mark),
575
+ "data-mark": e.mark
576
+ }), r(e.label, "TrackKey item label")]
577
+ }, e.mark))
578
+ });
449
579
  };
450
580
  //#endregion
451
- export { y as _, B as a, P as c, k as d, O as f, S as g, C as h, K as i, N as l, T as m, Y as n, z as o, A as p, $ as r, H as s, X as t, I as u, v, _ as y };
581
+ export { te as C, _ as D, b as E, v as O, A as S, C as T, F as _, he as a, D as b, J as c, H as d, G as f, re as g, z as h, Q as i, se as l, R as m, ve as n, ue as o, ae as p, fe as r, Y as s, _e as t, U as u, P as v, ee as w, E as x, M as y };
452
582
 
453
- //# sourceMappingURL=primitives-CjQX0eVM.js.map
583
+ //# sourceMappingURL=primitives-Dj-qYrUZ.js.map