@particle-academy/react-fancy 5.13.1 → 5.14.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.
@@ -0,0 +1,40 @@
1
+ import { cn } from './chunk-DSUHZO6T.js';
2
+ import { forwardRef } from 'react';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ var StatList = forwardRef(
6
+ ({ items, align = "right", className, ...props }, ref) => {
7
+ if (items.length === 0) return null;
8
+ return /* @__PURE__ */ jsx(
9
+ "div",
10
+ {
11
+ ref,
12
+ ...props,
13
+ "data-react-fancy-stat-list": "",
14
+ "data-align": align,
15
+ className: cn(
16
+ "flex flex-col gap-0.5 font-mono text-[11.5px] text-zinc-500 dark:text-zinc-400",
17
+ align === "right" ? "items-end text-right" : "items-start text-left",
18
+ className
19
+ ),
20
+ children: items.map((item, i) => /* @__PURE__ */ jsxs(
21
+ "span",
22
+ {
23
+ "data-stat": item.key ?? (typeof item.label === "string" ? item.label : void 0),
24
+ children: [
25
+ /* @__PURE__ */ jsx("b", { className: "font-medium text-zinc-900 dark:text-zinc-100", children: item.value }),
26
+ " ",
27
+ item.label
28
+ ]
29
+ },
30
+ item.key ?? (typeof item.label === "string" ? item.label : i)
31
+ ))
32
+ }
33
+ );
34
+ }
35
+ );
36
+ StatList.displayName = "StatList";
37
+
38
+ export { StatList };
39
+ //# sourceMappingURL=chunk-3F66SAE7.js.map
40
+ //# sourceMappingURL=chunk-3F66SAE7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/StatList/StatList.tsx"],"names":[],"mappings":";;;;AAoBO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,KAAA,GAAQ,SAAS,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACxD,IAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,4BAAA,EAA2B,EAAA;AAAA,QAC3B,YAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAW,EAAA;AAAA,UACT,gFAAA;AAAA,UACA,KAAA,KAAU,UAAU,sBAAA,GAAyB,uBAAA;AAAA,UAC7C;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChB,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,WAAA,EAAW,KAAK,GAAA,KAAQ,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,MAAA,CAAA;AAAA,YAEtE,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAAgD,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,cAAK,GAAA;AAAA,cAC5E,IAAA,CAAK;AAAA;AAAA,WAAA;AAAA,UAJD,KAAK,GAAA,KAAQ,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,CAAA;AAAA,SAMnE;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-3F66SAE7.js","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { StatListProps } from \"./StatList.types\";\n\n/**\n * The mono figure stack — `70 packages / 261 components / MIT licensed`.\n *\n * The Inspiration index and `/packages` each hand-rolled this from tokens, which\n * is the gallery working as intended: it stress-tests the kit, and what it\n * hand-rolls is the gap list. The list only pays off when the gap comes back\n * here, otherwise every surface keeps a copy and they drift apart.\n *\n * Takes `items` as DATA rather than children. What those surfaces repeat is a\n * shape, not a layout, so there is nothing to assemble at the call site — and a\n * data prop is what an agent can emit, which children are not.\n *\n * The value is a `<b>` rather than a colour, because in most of these stacks the\n * figure is the only part that is not muted, and expressing that structurally\n * keeps it meaningful when a design replaces the styling wholesale.\n */\nexport const StatList = forwardRef<HTMLDivElement, StatListProps>(\n ({ items, align = \"right\", className, ...props }, ref) => {\n if (items.length === 0) return null;\n\n return (\n <div\n ref={ref}\n {...props}\n data-react-fancy-stat-list=\"\"\n data-align={align}\n className={cn(\n \"flex flex-col gap-0.5 font-mono text-[11.5px] text-zinc-500 dark:text-zinc-400\",\n align === \"right\" ? \"items-end text-right\" : \"items-start text-left\",\n className,\n )}\n >\n {items.map((item, i) => (\n <span\n key={item.key ?? (typeof item.label === \"string\" ? item.label : i)}\n data-stat={item.key ?? (typeof item.label === \"string\" ? item.label : undefined)}\n >\n <b className=\"font-medium text-zinc-900 dark:text-zinc-100\">{item.value}</b>{\" \"}\n {item.label}\n </span>\n ))}\n </div>\n );\n },\n);\n\nStatList.displayName = \"StatList\";\n"]}
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var chunk3Z6ALUWP_cjs = require('./chunk-3Z6ALUWP.cjs');
4
+ var react = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var StatList = react.forwardRef(
8
+ ({ items, align = "right", className, ...props }, ref) => {
9
+ if (items.length === 0) return null;
10
+ return /* @__PURE__ */ jsxRuntime.jsx(
11
+ "div",
12
+ {
13
+ ref,
14
+ ...props,
15
+ "data-react-fancy-stat-list": "",
16
+ "data-align": align,
17
+ className: chunk3Z6ALUWP_cjs.cn(
18
+ "flex flex-col gap-0.5 font-mono text-[11.5px] text-zinc-500 dark:text-zinc-400",
19
+ align === "right" ? "items-end text-right" : "items-start text-left",
20
+ className
21
+ ),
22
+ children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
23
+ "span",
24
+ {
25
+ "data-stat": item.key ?? (typeof item.label === "string" ? item.label : void 0),
26
+ children: [
27
+ /* @__PURE__ */ jsxRuntime.jsx("b", { className: "font-medium text-zinc-900 dark:text-zinc-100", children: item.value }),
28
+ " ",
29
+ item.label
30
+ ]
31
+ },
32
+ item.key ?? (typeof item.label === "string" ? item.label : i)
33
+ ))
34
+ }
35
+ );
36
+ }
37
+ );
38
+ StatList.displayName = "StatList";
39
+
40
+ exports.StatList = StatList;
41
+ //# sourceMappingURL=chunk-5LHG7HEY.cjs.map
42
+ //# sourceMappingURL=chunk-5LHG7HEY.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/StatList/StatList.tsx"],"names":["forwardRef","jsx","cn","jsxs"],"mappings":";;;;;;AAoBO,IAAM,QAAA,GAAWA,gBAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,KAAA,GAAQ,SAAS,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACxD,IAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,IAAA,uBACEC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,4BAAA,EAA2B,EAAA;AAAA,QAC3B,YAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAWC,oBAAA;AAAA,UACT,gFAAA;AAAA,UACA,KAAA,KAAU,UAAU,sBAAA,GAAyB,uBAAA;AAAA,UAC7C;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChBC,eAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,WAAA,EAAW,KAAK,GAAA,KAAQ,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,MAAA,CAAA;AAAA,YAEtE,QAAA,EAAA;AAAA,8BAAAF,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAAgD,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,cAAK,GAAA;AAAA,cAC5E,IAAA,CAAK;AAAA;AAAA,WAAA;AAAA,UAJD,KAAK,GAAA,KAAQ,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,CAAA;AAAA,SAMnE;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-5LHG7HEY.cjs","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { StatListProps } from \"./StatList.types\";\n\n/**\n * The mono figure stack — `70 packages / 261 components / MIT licensed`.\n *\n * The Inspiration index and `/packages` each hand-rolled this from tokens, which\n * is the gallery working as intended: it stress-tests the kit, and what it\n * hand-rolls is the gap list. The list only pays off when the gap comes back\n * here, otherwise every surface keeps a copy and they drift apart.\n *\n * Takes `items` as DATA rather than children. What those surfaces repeat is a\n * shape, not a layout, so there is nothing to assemble at the call site — and a\n * data prop is what an agent can emit, which children are not.\n *\n * The value is a `<b>` rather than a colour, because in most of these stacks the\n * figure is the only part that is not muted, and expressing that structurally\n * keeps it meaningful when a design replaces the styling wholesale.\n */\nexport const StatList = forwardRef<HTMLDivElement, StatListProps>(\n ({ items, align = \"right\", className, ...props }, ref) => {\n if (items.length === 0) return null;\n\n return (\n <div\n ref={ref}\n {...props}\n data-react-fancy-stat-list=\"\"\n data-align={align}\n className={cn(\n \"flex flex-col gap-0.5 font-mono text-[11.5px] text-zinc-500 dark:text-zinc-400\",\n align === \"right\" ? \"items-end text-right\" : \"items-start text-left\",\n className,\n )}\n >\n {items.map((item, i) => (\n <span\n key={item.key ?? (typeof item.label === \"string\" ? item.label : i)}\n data-stat={item.key ?? (typeof item.label === \"string\" ? item.label : undefined)}\n >\n <b className=\"font-medium text-zinc-900 dark:text-zinc-100\">{item.value}</b>{\" \"}\n {item.label}\n </span>\n ))}\n </div>\n );\n },\n);\n\nStatList.displayName = \"StatList\";\n"]}
package/dist/index.cjs CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var chunkYXC7QHNT_cjs = require('./chunk-YXC7QHNT.cjs');
4
4
  require('./chunk-O5IO7TCO.cjs');
5
+ var chunk7C7VF4WY_cjs = require('./chunk-7C7VF4WY.cjs');
5
6
  var chunkIGU5YXRV_cjs = require('./chunk-IGU5YXRV.cjs');
6
7
  var chunkWXADO5TS_cjs = require('./chunk-WXADO5TS.cjs');
7
8
  var chunkPZIAL4OP_cjs = require('./chunk-PZIAL4OP.cjs');
@@ -12,7 +13,7 @@ var chunk6MDZQIMZ_cjs = require('./chunk-6MDZQIMZ.cjs');
12
13
  var chunkKICZTIZL_cjs = require('./chunk-KICZTIZL.cjs');
13
14
  var chunk3SQ34IQC_cjs = require('./chunk-3SQ34IQC.cjs');
14
15
  var chunk2G3L4BLU_cjs = require('./chunk-2G3L4BLU.cjs');
15
- var chunk7C7VF4WY_cjs = require('./chunk-7C7VF4WY.cjs');
16
+ var chunkTVRCOKJQ_cjs = require('./chunk-TVRCOKJQ.cjs');
16
17
  var chunkIF3T3ZCB_cjs = require('./chunk-IF3T3ZCB.cjs');
17
18
  var chunkAOOBRPTE_cjs = require('./chunk-AOOBRPTE.cjs');
18
19
  var chunkVE3EM4K2_cjs = require('./chunk-VE3EM4K2.cjs');
@@ -28,7 +29,7 @@ var chunkRR7BWUVP_cjs = require('./chunk-RR7BWUVP.cjs');
28
29
  var chunkXBBEQLMY_cjs = require('./chunk-XBBEQLMY.cjs');
29
30
  var chunkANEX75DF_cjs = require('./chunk-ANEX75DF.cjs');
30
31
  var chunkGIDW3SUE_cjs = require('./chunk-GIDW3SUE.cjs');
31
- var chunkTVRCOKJQ_cjs = require('./chunk-TVRCOKJQ.cjs');
32
+ var chunk5LHG7HEY_cjs = require('./chunk-5LHG7HEY.cjs');
32
33
  var chunkE7PHL3TD_cjs = require('./chunk-E7PHL3TD.cjs');
33
34
  var chunkARSQY4P7_cjs = require('./chunk-ARSQY4P7.cjs');
34
35
  var chunk47TFRODY_cjs = require('./chunk-47TFRODY.cjs');
@@ -114,6 +115,10 @@ Object.defineProperty(exports, "useTreeNav", {
114
115
  enumerable: true,
115
116
  get: function () { return chunkYXC7QHNT_cjs.useTreeNav; }
116
117
  });
118
+ Object.defineProperty(exports, "Input", {
119
+ enumerable: true,
120
+ get: function () { return chunk7C7VF4WY_cjs.Input; }
121
+ });
117
122
  Object.defineProperty(exports, "MultiSwitch", {
118
123
  enumerable: true,
119
124
  get: function () { return chunkIGU5YXRV_cjs.MultiSwitch; }
@@ -154,9 +159,9 @@ Object.defineProperty(exports, "DatePicker", {
154
159
  enumerable: true,
155
160
  get: function () { return chunk2G3L4BLU_cjs.DatePicker; }
156
161
  });
157
- Object.defineProperty(exports, "Input", {
162
+ Object.defineProperty(exports, "StickyNote", {
158
163
  enumerable: true,
159
- get: function () { return chunk7C7VF4WY_cjs.Input; }
164
+ get: function () { return chunkTVRCOKJQ_cjs.StickyNote; }
160
165
  });
161
166
  Object.defineProperty(exports, "Table", {
162
167
  enumerable: true,
@@ -234,9 +239,9 @@ Object.defineProperty(exports, "StatBand", {
234
239
  enumerable: true,
235
240
  get: function () { return chunkGIDW3SUE_cjs.StatBand; }
236
241
  });
237
- Object.defineProperty(exports, "StickyNote", {
242
+ Object.defineProperty(exports, "StatList", {
238
243
  enumerable: true,
239
- get: function () { return chunkTVRCOKJQ_cjs.StickyNote; }
244
+ get: function () { return chunk5LHG7HEY_cjs.StatList; }
240
245
  });
241
246
  Object.defineProperty(exports, "OtpInput", {
242
247
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -29,6 +29,7 @@ export { Skeleton, SkeletonProps } from './skeleton.cjs';
29
29
  export { Progress, ProgressProps } from './progress.cjs';
30
30
  export { Brand, BrandMark, BrandMarkProps, BrandProps } from './brand.cjs';
31
31
  export { Eyebrow, EyebrowProps } from './eyebrow.cjs';
32
+ export { StatList, StatListItem, StatListProps } from './stat-list.cjs';
32
33
  export { Kbd, KbdProps } from './kbd.cjs';
33
34
  export { IndexList, IndexListItem, IndexListProps } from './index-list.cjs';
34
35
  export { PullQuote, PullQuoteProps } from './pull-quote.cjs';
package/dist/index.d.ts CHANGED
@@ -29,6 +29,7 @@ export { Skeleton, SkeletonProps } from './skeleton.js';
29
29
  export { Progress, ProgressProps } from './progress.js';
30
30
  export { Brand, BrandMark, BrandMarkProps, BrandProps } from './brand.js';
31
31
  export { Eyebrow, EyebrowProps } from './eyebrow.js';
32
+ export { StatList, StatListItem, StatListProps } from './stat-list.js';
32
33
  export { Kbd, KbdProps } from './kbd.js';
33
34
  export { IndexList, IndexListItem, IndexListProps } from './index-list.js';
34
35
  export { PullQuote, PullQuoteProps } from './pull-quote.js';
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { TreeNav, useTreeNav } from './chunk-7XDKIZQE.js';
2
2
  import './chunk-VXHFR5MV.js';
3
+ export { Input } from './chunk-C5AZNBVB.js';
3
4
  export { MultiSwitch } from './chunk-ZT36VWIA.js';
4
5
  export { RadioGroup } from './chunk-JYKZKSZJ.js';
5
6
  export { Select } from './chunk-ECZ66DKF.js';
@@ -10,7 +11,7 @@ export { Form, FormProvider } from './chunk-PQWQ5K6J.js';
10
11
  export { Checkbox } from './chunk-CS4GQXYY.js';
11
12
  export { CheckboxGroup } from './chunk-IE4CM2SN.js';
12
13
  export { DatePicker } from './chunk-MILTPAF6.js';
13
- export { Input } from './chunk-C5AZNBVB.js';
14
+ export { StickyNote } from './chunk-HAOYXGGJ.js';
14
15
  export { Table } from './chunk-GKPCXPCD.js';
15
16
  export { Tabs, useTabs } from './chunk-5OC6DUYT.js';
16
17
  export { Text } from './chunk-UWVVEB2N.js';
@@ -26,7 +27,7 @@ export { Separator } from './chunk-QFFC2DKK.js';
26
27
  export { Sidebar, useSidebar } from './chunk-N7WQ53US.js';
27
28
  export { Skeleton } from './chunk-AGDW5ENV.js';
28
29
  export { Stat, StatBand } from './chunk-ESKVRRVA.js';
29
- export { StickyNote } from './chunk-HAOYXGGJ.js';
30
+ export { StatList } from './chunk-3F66SAE7.js';
30
31
  export { OtpInput } from './chunk-UCYAHLGM.js';
31
32
  export { Pagination } from './chunk-YT6N44Z3.js';
32
33
  export { Pillbox } from './chunk-6H6OYLMJ.js';
package/dist/inputs.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  require('./chunk-O5IO7TCO.cjs');
4
+ var chunk7C7VF4WY_cjs = require('./chunk-7C7VF4WY.cjs');
4
5
  var chunkIGU5YXRV_cjs = require('./chunk-IGU5YXRV.cjs');
5
6
  var chunkWXADO5TS_cjs = require('./chunk-WXADO5TS.cjs');
6
7
  var chunkPZIAL4OP_cjs = require('./chunk-PZIAL4OP.cjs');
@@ -11,7 +12,6 @@ var chunk6MDZQIMZ_cjs = require('./chunk-6MDZQIMZ.cjs');
11
12
  var chunkKICZTIZL_cjs = require('./chunk-KICZTIZL.cjs');
12
13
  var chunk3SQ34IQC_cjs = require('./chunk-3SQ34IQC.cjs');
13
14
  var chunk2G3L4BLU_cjs = require('./chunk-2G3L4BLU.cjs');
14
- var chunk7C7VF4WY_cjs = require('./chunk-7C7VF4WY.cjs');
15
15
  var chunk5I4PR2KV_cjs = require('./chunk-5I4PR2KV.cjs');
16
16
  require('./chunk-7NLKXBZ2.cjs');
17
17
  var chunk6BW5BQMN_cjs = require('./chunk-6BW5BQMN.cjs');
@@ -28,6 +28,10 @@ require('./chunk-3Z6ALUWP.cjs');
28
28
 
29
29
 
30
30
 
31
+ Object.defineProperty(exports, "Input", {
32
+ enumerable: true,
33
+ get: function () { return chunk7C7VF4WY_cjs.Input; }
34
+ });
31
35
  Object.defineProperty(exports, "MultiSwitch", {
32
36
  enumerable: true,
33
37
  get: function () { return chunkIGU5YXRV_cjs.MultiSwitch; }
@@ -68,10 +72,6 @@ Object.defineProperty(exports, "DatePicker", {
68
72
  enumerable: true,
69
73
  get: function () { return chunk2G3L4BLU_cjs.DatePicker; }
70
74
  });
71
- Object.defineProperty(exports, "Input", {
72
- enumerable: true,
73
- get: function () { return chunk7C7VF4WY_cjs.Input; }
74
- });
75
75
  Object.defineProperty(exports, "Textarea", {
76
76
  enumerable: true,
77
77
  get: function () { return chunk5I4PR2KV_cjs.Textarea; }
package/dist/inputs.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import './chunk-VXHFR5MV.js';
2
+ export { Input } from './chunk-C5AZNBVB.js';
2
3
  export { MultiSwitch } from './chunk-ZT36VWIA.js';
3
4
  export { RadioGroup } from './chunk-JYKZKSZJ.js';
4
5
  export { Select } from './chunk-ECZ66DKF.js';
@@ -9,7 +10,6 @@ export { Form, FormProvider } from './chunk-PQWQ5K6J.js';
9
10
  export { Checkbox } from './chunk-CS4GQXYY.js';
10
11
  export { CheckboxGroup } from './chunk-IE4CM2SN.js';
11
12
  export { DatePicker } from './chunk-MILTPAF6.js';
12
- export { Input } from './chunk-C5AZNBVB.js';
13
13
  export { Textarea } from './chunk-4UA45GB4.js';
14
14
  import './chunk-D7NAXQ2N.js';
15
15
  export { DisplayValue } from './chunk-K7JGOQJG.js';
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var chunk5LHG7HEY_cjs = require('./chunk-5LHG7HEY.cjs');
4
+ require('./chunk-3Z6ALUWP.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "StatList", {
9
+ enumerable: true,
10
+ get: function () { return chunk5LHG7HEY_cjs.StatList; }
11
+ });
12
+ //# sourceMappingURL=stat-list.cjs.map
13
+ //# sourceMappingURL=stat-list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"stat-list.cjs"}
@@ -0,0 +1,43 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ /** One figure and what it counts. */
5
+ interface StatListItem {
6
+ /** The figure. Emphasised — it is what the eye lands on first. */
7
+ value: ReactNode;
8
+ /** What the figure counts. */
9
+ label: ReactNode;
10
+ /**
11
+ * Stable handle for this row, for an agent reading a figure off the page.
12
+ *
13
+ * Defaults to `label` when it is a plain string, which covers the common
14
+ * case without asking a caller to repeat themselves.
15
+ */
16
+ key?: string;
17
+ }
18
+ interface StatListProps extends HTMLAttributes<HTMLDivElement> {
19
+ /** The figures. Data rather than children — the repeated thing is a shape. */
20
+ items: StatListItem[];
21
+ /** Which edge the stack aligns to. Default `"right"`. */
22
+ align?: "left" | "right";
23
+ }
24
+
25
+ /**
26
+ * The mono figure stack — `70 packages / 261 components / MIT licensed`.
27
+ *
28
+ * The Inspiration index and `/packages` each hand-rolled this from tokens, which
29
+ * is the gallery working as intended: it stress-tests the kit, and what it
30
+ * hand-rolls is the gap list. The list only pays off when the gap comes back
31
+ * here, otherwise every surface keeps a copy and they drift apart.
32
+ *
33
+ * Takes `items` as DATA rather than children. What those surfaces repeat is a
34
+ * shape, not a layout, so there is nothing to assemble at the call site — and a
35
+ * data prop is what an agent can emit, which children are not.
36
+ *
37
+ * The value is a `<b>` rather than a colour, because in most of these stacks the
38
+ * figure is the only part that is not muted, and expressing that structurally
39
+ * keeps it meaningful when a design replaces the styling wholesale.
40
+ */
41
+ declare const StatList: react.ForwardRefExoticComponent<StatListProps & react.RefAttributes<HTMLDivElement>>;
42
+
43
+ export { StatList, type StatListItem, type StatListProps };
@@ -0,0 +1,43 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ /** One figure and what it counts. */
5
+ interface StatListItem {
6
+ /** The figure. Emphasised — it is what the eye lands on first. */
7
+ value: ReactNode;
8
+ /** What the figure counts. */
9
+ label: ReactNode;
10
+ /**
11
+ * Stable handle for this row, for an agent reading a figure off the page.
12
+ *
13
+ * Defaults to `label` when it is a plain string, which covers the common
14
+ * case without asking a caller to repeat themselves.
15
+ */
16
+ key?: string;
17
+ }
18
+ interface StatListProps extends HTMLAttributes<HTMLDivElement> {
19
+ /** The figures. Data rather than children — the repeated thing is a shape. */
20
+ items: StatListItem[];
21
+ /** Which edge the stack aligns to. Default `"right"`. */
22
+ align?: "left" | "right";
23
+ }
24
+
25
+ /**
26
+ * The mono figure stack — `70 packages / 261 components / MIT licensed`.
27
+ *
28
+ * The Inspiration index and `/packages` each hand-rolled this from tokens, which
29
+ * is the gallery working as intended: it stress-tests the kit, and what it
30
+ * hand-rolls is the gap list. The list only pays off when the gap comes back
31
+ * here, otherwise every surface keeps a copy and they drift apart.
32
+ *
33
+ * Takes `items` as DATA rather than children. What those surfaces repeat is a
34
+ * shape, not a layout, so there is nothing to assemble at the call site — and a
35
+ * data prop is what an agent can emit, which children are not.
36
+ *
37
+ * The value is a `<b>` rather than a colour, because in most of these stacks the
38
+ * figure is the only part that is not muted, and expressing that structurally
39
+ * keeps it meaningful when a design replaces the styling wholesale.
40
+ */
41
+ declare const StatList: react.ForwardRefExoticComponent<StatListProps & react.RefAttributes<HTMLDivElement>>;
42
+
43
+ export { StatList, type StatListItem, type StatListProps };
@@ -0,0 +1,4 @@
1
+ export { StatList } from './chunk-3F66SAE7.js';
2
+ import './chunk-DSUHZO6T.js';
3
+ //# sourceMappingURL=stat-list.js.map
4
+ //# sourceMappingURL=stat-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"stat-list.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@particle-academy/react-fancy",
3
- "version": "5.13.1",
3
+ "version": "5.14.0",
4
4
  "description": "React UI component library for Human+ UX \u2014 controlled, agent-bridgeable primitives",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,17 +23,6 @@
23
23
  "default": "./dist/index.cjs"
24
24
  }
25
25
  },
26
- "./icons": {
27
- "import": {
28
- "types": "./dist/icons.d.ts",
29
- "default": "./dist/icons.js"
30
- },
31
- "require": {
32
- "types": "./dist/icons.d.cts",
33
- "default": "./dist/icons.cjs"
34
- }
35
- },
36
- "./styles.css": "./dist/styles.css",
37
26
  "./accordion": {
38
27
  "import": {
39
28
  "types": "./dist/accordion.d.ts",
@@ -394,6 +383,16 @@
394
383
  "default": "./dist/icon.cjs"
395
384
  }
396
385
  },
386
+ "./icons": {
387
+ "import": {
388
+ "types": "./dist/icons.d.ts",
389
+ "default": "./dist/icons.js"
390
+ },
391
+ "require": {
392
+ "types": "./dist/icons.d.cts",
393
+ "default": "./dist/icons.cjs"
394
+ }
395
+ },
397
396
  "./image-viewer": {
398
397
  "import": {
399
398
  "types": "./dist/image-viewer.d.ts",
@@ -744,6 +743,16 @@
744
743
  "default": "./dist/stat.cjs"
745
744
  }
746
745
  },
746
+ "./stat-list": {
747
+ "import": {
748
+ "types": "./dist/stat-list.d.ts",
749
+ "default": "./dist/stat-list.js"
750
+ },
751
+ "require": {
752
+ "types": "./dist/stat-list.d.cts",
753
+ "default": "./dist/stat-list.cjs"
754
+ }
755
+ },
747
756
  "./sticky-note": {
748
757
  "import": {
749
758
  "types": "./dist/sticky-note.d.ts",
@@ -754,6 +763,7 @@
754
763
  "default": "./dist/sticky-note.cjs"
755
764
  }
756
765
  },
766
+ "./styles.css": "./dist/styles.css",
757
767
  "./switch": {
758
768
  "import": {
759
769
  "types": "./dist/switch.d.ts",