@particle-academy/react-fancy 5.14.0 → 5.16.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 (173) hide show
  1. package/dist/badge.cjs +3 -2
  2. package/dist/badge.js +2 -1
  3. package/dist/button.cjs +4 -3
  4. package/dist/button.js +2 -1
  5. package/dist/callout.cjs +3 -2
  6. package/dist/callout.js +2 -1
  7. package/dist/{chunk-VE3EM4K2.cjs → chunk-23CLGUMT.cjs} +2 -2
  8. package/dist/{chunk-VE3EM4K2.cjs.map → chunk-23CLGUMT.cjs.map} +1 -1
  9. package/dist/{chunk-C4Z4S3CX.js → chunk-2ICXWLKS.js} +2 -2
  10. package/dist/{chunk-C4Z4S3CX.js.map → chunk-2ICXWLKS.js.map} +1 -1
  11. package/dist/chunk-3I2KWNXT.cjs +4 -0
  12. package/dist/chunk-3I2KWNXT.cjs.map +1 -0
  13. package/dist/{chunk-7C7VF4WY.cjs → chunk-6FYMMQ3G.cjs} +2 -2
  14. package/dist/{chunk-7C7VF4WY.cjs.map → chunk-6FYMMQ3G.cjs.map} +1 -1
  15. package/dist/{chunk-WEGL4S52.js → chunk-6RYZ2MOE.js} +2 -2
  16. package/dist/{chunk-WEGL4S52.js.map → chunk-6RYZ2MOE.js.map} +1 -1
  17. package/dist/{chunk-2CNSZCVE.cjs → chunk-6Y2QO7YV.cjs} +4 -4
  18. package/dist/{chunk-2CNSZCVE.cjs.map → chunk-6Y2QO7YV.cjs.map} +1 -1
  19. package/dist/chunk-AR2IBCX7.cjs +1354 -0
  20. package/dist/chunk-AR2IBCX7.cjs.map +1 -0
  21. package/dist/chunk-AY3JABE3.cjs +32 -0
  22. package/dist/chunk-AY3JABE3.cjs.map +1 -0
  23. package/dist/{chunk-CTMJYV3O.js → chunk-B4JLRS5E.js} +2 -2
  24. package/dist/{chunk-CTMJYV3O.js.map → chunk-B4JLRS5E.js.map} +1 -1
  25. package/dist/{chunk-ECZ66DKF.js → chunk-BWT2L6XP.js} +2 -2
  26. package/dist/{chunk-ECZ66DKF.js.map → chunk-BWT2L6XP.js.map} +1 -1
  27. package/dist/{chunk-O432BDEO.js → chunk-CEEEENPW.js} +6 -3
  28. package/dist/chunk-CEEEENPW.js.map +1 -0
  29. package/dist/{chunk-MILTPAF6.js → chunk-CQWPMRYS.js} +2 -2
  30. package/dist/{chunk-MILTPAF6.js.map → chunk-CQWPMRYS.js.map} +1 -1
  31. package/dist/chunk-DBJWHDWP.js +31 -0
  32. package/dist/chunk-DBJWHDWP.js.map +1 -0
  33. package/dist/{chunk-C5AZNBVB.js → chunk-DDRHCFUE.js} +2 -2
  34. package/dist/{chunk-C5AZNBVB.js.map → chunk-DDRHCFUE.js.map} +1 -1
  35. package/dist/{chunk-FA3D4GFC.cjs → chunk-EQGY3QDJ.cjs} +5 -5
  36. package/dist/{chunk-FA3D4GFC.cjs.map → chunk-EQGY3QDJ.cjs.map} +1 -1
  37. package/dist/{chunk-DOSSIU6S.cjs → chunk-FO4GCX67.cjs} +6 -3
  38. package/dist/chunk-FO4GCX67.cjs.map +1 -0
  39. package/dist/chunk-GNHQVPZP.js +3 -0
  40. package/dist/chunk-GNHQVPZP.js.map +1 -0
  41. package/dist/{chunk-GZIUE4DE.js → chunk-HNITJ2UR.js} +3 -3
  42. package/dist/{chunk-GZIUE4DE.js.map → chunk-HNITJ2UR.js.map} +1 -1
  43. package/dist/{chunk-XZYKPGSK.cjs → chunk-HTKDPFLJ.cjs} +2 -2
  44. package/dist/{chunk-XZYKPGSK.cjs.map → chunk-HTKDPFLJ.cjs.map} +1 -1
  45. package/dist/chunk-HXLSEBAL.cjs +4 -0
  46. package/dist/chunk-HXLSEBAL.cjs.map +1 -0
  47. package/dist/{chunk-GKPCXPCD.js → chunk-I2JXK25I.js} +51 -12
  48. package/dist/chunk-I2JXK25I.js.map +1 -0
  49. package/dist/chunk-IQ4KQJAO.js +3 -0
  50. package/dist/chunk-IQ4KQJAO.js.map +1 -0
  51. package/dist/chunk-J324MF75.js +3 -0
  52. package/dist/chunk-J324MF75.js.map +1 -0
  53. package/dist/{chunk-PZIAL4OP.cjs → chunk-JU5W65N3.cjs} +2 -2
  54. package/dist/{chunk-PZIAL4OP.cjs.map → chunk-JU5W65N3.cjs.map} +1 -1
  55. package/dist/{chunk-2G3L4BLU.cjs → chunk-KKYP5R3G.cjs} +2 -2
  56. package/dist/{chunk-2G3L4BLU.cjs.map → chunk-KKYP5R3G.cjs.map} +1 -1
  57. package/dist/chunk-LQ4ICCN2.js +3 -0
  58. package/dist/chunk-LQ4ICCN2.js.map +1 -0
  59. package/dist/{chunk-IF3T3ZCB.cjs → chunk-LYFUPTLG.cjs} +51 -12
  60. package/dist/chunk-LYFUPTLG.cjs.map +1 -0
  61. package/dist/chunk-M5MUGSON.cjs +4 -0
  62. package/dist/chunk-M5MUGSON.cjs.map +1 -0
  63. package/dist/chunk-MKFWFZVX.js +30 -0
  64. package/dist/chunk-MKFWFZVX.js.map +1 -0
  65. package/dist/{chunk-UH2YXQ2B.cjs → chunk-MPDLL4X3.cjs} +2 -2
  66. package/dist/{chunk-UH2YXQ2B.cjs.map → chunk-MPDLL4X3.cjs.map} +1 -1
  67. package/dist/chunk-NMXCQOHV.js +3 -0
  68. package/dist/chunk-NMXCQOHV.js.map +1 -0
  69. package/dist/chunk-NW3GJWJ7.js +3 -0
  70. package/dist/chunk-NW3GJWJ7.js.map +1 -0
  71. package/dist/chunk-OYZDSMNP.cjs +4 -0
  72. package/dist/chunk-OYZDSMNP.cjs.map +1 -0
  73. package/dist/{chunk-UWVVEB2N.js → chunk-P7AJAN62.js} +2 -2
  74. package/dist/{chunk-UWVVEB2N.js.map → chunk-P7AJAN62.js.map} +1 -1
  75. package/dist/chunk-PG3ILQIW.js +30 -0
  76. package/dist/chunk-PG3ILQIW.js.map +1 -0
  77. package/dist/{chunk-NPKE2IX6.js → chunk-PITWDKKY.js} +2 -2
  78. package/dist/{chunk-NPKE2IX6.js.map → chunk-PITWDKKY.js.map} +1 -1
  79. package/dist/{chunk-7AFEKDUS.js → chunk-PJ4TQ6YO.js} +4 -4
  80. package/dist/{chunk-7AFEKDUS.js.map → chunk-PJ4TQ6YO.js.map} +1 -1
  81. package/dist/chunk-QGPMVFZJ.cjs +4 -0
  82. package/dist/chunk-QGPMVFZJ.cjs.map +1 -0
  83. package/dist/{chunk-W2Q4OWHX.cjs → chunk-RMFLRBUC.cjs} +6 -6
  84. package/dist/{chunk-W2Q4OWHX.cjs.map → chunk-RMFLRBUC.cjs.map} +1 -1
  85. package/dist/chunk-SHDSKHCC.js +3 -0
  86. package/dist/chunk-SHDSKHCC.js.map +1 -0
  87. package/dist/chunk-SYXLPCQP.cjs +33 -0
  88. package/dist/chunk-SYXLPCQP.cjs.map +1 -0
  89. package/dist/chunk-TMR56BBE.js +3 -0
  90. package/dist/chunk-TMR56BBE.js.map +1 -0
  91. package/dist/chunk-URTLYNZI.cjs +4 -0
  92. package/dist/chunk-URTLYNZI.cjs.map +1 -0
  93. package/dist/chunk-V4EARA4F.js +3 -0
  94. package/dist/chunk-V4EARA4F.js.map +1 -0
  95. package/dist/chunk-VBWRH4UW.cjs +4 -0
  96. package/dist/chunk-VBWRH4UW.cjs.map +1 -0
  97. package/dist/chunk-VQ4M25U3.cjs +32 -0
  98. package/dist/chunk-VQ4M25U3.cjs.map +1 -0
  99. package/dist/{chunk-K2DZEYBF.js → chunk-WNIP443K.js} +3 -3
  100. package/dist/{chunk-K2DZEYBF.js.map → chunk-WNIP443K.js.map} +1 -1
  101. package/dist/{chunk-2S7WRR5P.cjs → chunk-X5VZRFQD.cjs} +2 -2
  102. package/dist/{chunk-2S7WRR5P.cjs.map → chunk-X5VZRFQD.cjs.map} +1 -1
  103. package/dist/chunk-XFBLUPKF.cjs +4 -0
  104. package/dist/chunk-XFBLUPKF.cjs.map +1 -0
  105. package/dist/chunk-XURQVDCN.cjs +4 -0
  106. package/dist/chunk-XURQVDCN.cjs.map +1 -0
  107. package/dist/{chunk-WVO2EKE6.cjs → chunk-Y5V5GBN4.cjs} +2 -2
  108. package/dist/{chunk-WVO2EKE6.cjs.map → chunk-Y5V5GBN4.cjs.map} +1 -1
  109. package/dist/chunk-Y6DK4CGY.js +1341 -0
  110. package/dist/chunk-Y6DK4CGY.js.map +1 -0
  111. package/dist/color-picker.cjs +3 -2
  112. package/dist/color-picker.d.cts +10 -1
  113. package/dist/color-picker.d.ts +10 -1
  114. package/dist/color-picker.js +2 -1
  115. package/dist/container.cjs +13 -0
  116. package/dist/container.cjs.map +1 -0
  117. package/dist/container.d.cts +21 -0
  118. package/dist/container.d.ts +21 -0
  119. package/dist/container.js +4 -0
  120. package/dist/container.js.map +1 -0
  121. package/dist/date-picker.cjs +3 -2
  122. package/dist/date-picker.js +2 -1
  123. package/dist/editor.cjs +1 -1
  124. package/dist/editor.js +1 -1
  125. package/dist/grid.cjs +13 -0
  126. package/dist/grid.cjs.map +1 -0
  127. package/dist/grid.d.cts +30 -0
  128. package/dist/grid.d.ts +30 -0
  129. package/dist/grid.js +4 -0
  130. package/dist/grid.js.map +1 -0
  131. package/dist/index-BfFk-CIv.d.ts +330 -0
  132. package/dist/index-BypPN_6l.d.cts +330 -0
  133. package/dist/index.cjs +214 -141
  134. package/dist/index.d.cts +4 -0
  135. package/dist/index.d.ts +4 -0
  136. package/dist/index.js +46 -33
  137. package/dist/input.cjs +3 -2
  138. package/dist/input.js +2 -1
  139. package/dist/inputs.cjs +31 -27
  140. package/dist/inputs.js +10 -6
  141. package/dist/json-editor.cjs +77 -0
  142. package/dist/json-editor.cjs.map +1 -0
  143. package/dist/json-editor.d.cts +4 -0
  144. package/dist/json-editor.d.ts +4 -0
  145. package/dist/json-editor.js +28 -0
  146. package/dist/json-editor.js.map +1 -0
  147. package/dist/magic-wand.cjs +6 -4
  148. package/dist/magic-wand.js +5 -3
  149. package/dist/prompt-input.cjs +4 -3
  150. package/dist/prompt-input.js +3 -2
  151. package/dist/reason-tag.cjs +4 -3
  152. package/dist/reason-tag.js +3 -2
  153. package/dist/section.cjs +13 -0
  154. package/dist/section.cjs.map +1 -0
  155. package/dist/section.d.cts +23 -0
  156. package/dist/section.d.ts +23 -0
  157. package/dist/section.js +4 -0
  158. package/dist/section.js.map +1 -0
  159. package/dist/select.cjs +3 -2
  160. package/dist/select.js +2 -1
  161. package/dist/switch.cjs +3 -2
  162. package/dist/switch.js +2 -1
  163. package/dist/table.cjs +11 -11
  164. package/dist/table.d.cts +18 -9
  165. package/dist/table.d.ts +18 -9
  166. package/dist/table.js +1 -1
  167. package/dist/text.cjs +3 -2
  168. package/dist/text.js +2 -1
  169. package/package.json +42 -2
  170. package/dist/chunk-DOSSIU6S.cjs.map +0 -1
  171. package/dist/chunk-GKPCXPCD.js.map +0 -1
  172. package/dist/chunk-IF3T3ZCB.cjs.map +0 -1
  173. package/dist/chunk-O432BDEO.js.map +0 -1
package/dist/table.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIF3T3ZCB_cjs = require('./chunk-IF3T3ZCB.cjs');
3
+ var chunkLYFUPTLG_cjs = require('./chunk-LYFUPTLG.cjs');
4
4
  require('./chunk-OUOEQZHY.cjs');
5
5
  require('./chunk-3Z6ALUWP.cjs');
6
6
 
@@ -8,43 +8,43 @@ require('./chunk-3Z6ALUWP.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "Table", {
10
10
  enumerable: true,
11
- get: function () { return chunkIF3T3ZCB_cjs.Table; }
11
+ get: function () { return chunkLYFUPTLG_cjs.Table; }
12
12
  });
13
13
  Object.defineProperty(exports, "TableBody", {
14
14
  enumerable: true,
15
- get: function () { return chunkIF3T3ZCB_cjs.TableBody; }
15
+ get: function () { return chunkLYFUPTLG_cjs.TableBody; }
16
16
  });
17
17
  Object.defineProperty(exports, "TableCell", {
18
18
  enumerable: true,
19
- get: function () { return chunkIF3T3ZCB_cjs.TableCell; }
19
+ get: function () { return chunkLYFUPTLG_cjs.TableCell; }
20
20
  });
21
21
  Object.defineProperty(exports, "TableColumn", {
22
22
  enumerable: true,
23
- get: function () { return chunkIF3T3ZCB_cjs.TableColumn; }
23
+ get: function () { return chunkLYFUPTLG_cjs.TableColumn; }
24
24
  });
25
25
  Object.defineProperty(exports, "TableHead", {
26
26
  enumerable: true,
27
- get: function () { return chunkIF3T3ZCB_cjs.TableHead; }
27
+ get: function () { return chunkLYFUPTLG_cjs.TableHead; }
28
28
  });
29
29
  Object.defineProperty(exports, "TablePagination", {
30
30
  enumerable: true,
31
- get: function () { return chunkIF3T3ZCB_cjs.TablePagination; }
31
+ get: function () { return chunkLYFUPTLG_cjs.TablePagination; }
32
32
  });
33
33
  Object.defineProperty(exports, "TableRow", {
34
34
  enumerable: true,
35
- get: function () { return chunkIF3T3ZCB_cjs.TableRow; }
35
+ get: function () { return chunkLYFUPTLG_cjs.TableRow; }
36
36
  });
37
37
  Object.defineProperty(exports, "TableRowTray", {
38
38
  enumerable: true,
39
- get: function () { return chunkIF3T3ZCB_cjs.TableRowTray; }
39
+ get: function () { return chunkLYFUPTLG_cjs.TableRowTray; }
40
40
  });
41
41
  Object.defineProperty(exports, "TableSearch", {
42
42
  enumerable: true,
43
- get: function () { return chunkIF3T3ZCB_cjs.TableSearch; }
43
+ get: function () { return chunkLYFUPTLG_cjs.TableSearch; }
44
44
  });
45
45
  Object.defineProperty(exports, "TableTray", {
46
46
  enumerable: true,
47
- get: function () { return chunkIF3T3ZCB_cjs.TableTray; }
47
+ get: function () { return chunkLYFUPTLG_cjs.TableTray; }
48
48
  });
49
49
  //# sourceMappingURL=table.cjs.map
50
50
  //# sourceMappingURL=table.cjs.map
package/dist/table.d.cts CHANGED
@@ -1,15 +1,15 @@
1
1
  import * as react from 'react';
2
- import { ReactNode, HTMLAttributes, TdHTMLAttributes } from 'react';
2
+ import { HTMLAttributes, ReactNode, TdHTMLAttributes, ThHTMLAttributes } from 'react';
3
3
 
4
- interface TableProps {
4
+ interface TableProps extends HTMLAttributes<HTMLDivElement> {
5
5
  children: ReactNode;
6
6
  className?: string;
7
7
  }
8
- interface TableHeadProps {
8
+ interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {
9
9
  children: ReactNode;
10
10
  className?: string;
11
11
  }
12
- interface TableBodyProps {
12
+ interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {
13
13
  children: ReactNode;
14
14
  className?: string;
15
15
  }
@@ -36,7 +36,16 @@ interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {
36
36
  /** Render a `<th>` header cell instead of a `<td>`. */
37
37
  header?: boolean;
38
38
  }
39
- interface TableColumnProps {
39
+ /**
40
+ * Extends the native `<th>` attributes so `scope`, `colSpan`, `data-*` and
41
+ * `aria-*` reach the header cell instead of being dropped.
42
+ *
43
+ * `aria-sort` is the one worth calling out: it is emitted automatically from
44
+ * the column's own sort state, and passing it explicitly overrides that — which
45
+ * is what a server-sorted table needs, since it knows its state and the
46
+ * component does not.
47
+ */
48
+ interface TableColumnProps extends ThHTMLAttributes<HTMLTableCellElement> {
40
49
  label: string;
41
50
  sortKey?: string;
42
51
  className?: string;
@@ -55,15 +64,15 @@ interface TableTrayProps {
55
64
  className?: string;
56
65
  }
57
66
 
58
- declare function TableHead({ children, className }: TableHeadProps): react.JSX.Element;
67
+ declare function TableHead({ children, className, ...rest }: TableHeadProps): react.JSX.Element;
59
68
 
60
- declare function TableBody({ children, className }: TableBodyProps): react.JSX.Element;
69
+ declare function TableBody({ children, className, ...rest }: TableBodyProps): react.JSX.Element;
61
70
 
62
71
  declare function TableRow({ children, className, onClick, tray, trayTriggerPosition, expanded: controlledExpanded, defaultExpanded, onExpandedChange, ...rest }: TableRowProps): react.JSX.Element;
63
72
 
64
73
  declare function TableCell({ children, className, header, ...rest }: TableCellProps): react.JSX.Element;
65
74
 
66
- declare function TableColumn({ label, sortKey, className }: TableColumnProps): react.JSX.Element;
75
+ declare function TableColumn({ label, sortKey, className, "aria-sort": ariaSortProp, onClick, ...rest }: TableColumnProps): react.JSX.Element;
67
76
 
68
77
  declare function TablePagination({ className, total, pageSize, }: TablePaginationProps): react.JSX.Element | null;
69
78
 
@@ -73,7 +82,7 @@ declare function TableTray({ children, className }: TableTrayProps): react.JSX.E
73
82
 
74
83
  declare function TableRowTray({ children, className }: TableRowTrayProps): react.JSX.Element;
75
84
 
76
- declare function TableRoot({ children, className }: TableProps): react.JSX.Element;
85
+ declare function TableRoot({ children, className, ...rest }: TableProps): react.JSX.Element;
77
86
  declare const Table: typeof TableRoot & {
78
87
  Head: typeof TableHead;
79
88
  Body: typeof TableBody;
package/dist/table.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import * as react from 'react';
2
- import { ReactNode, HTMLAttributes, TdHTMLAttributes } from 'react';
2
+ import { HTMLAttributes, ReactNode, TdHTMLAttributes, ThHTMLAttributes } from 'react';
3
3
 
4
- interface TableProps {
4
+ interface TableProps extends HTMLAttributes<HTMLDivElement> {
5
5
  children: ReactNode;
6
6
  className?: string;
7
7
  }
8
- interface TableHeadProps {
8
+ interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {
9
9
  children: ReactNode;
10
10
  className?: string;
11
11
  }
12
- interface TableBodyProps {
12
+ interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {
13
13
  children: ReactNode;
14
14
  className?: string;
15
15
  }
@@ -36,7 +36,16 @@ interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {
36
36
  /** Render a `<th>` header cell instead of a `<td>`. */
37
37
  header?: boolean;
38
38
  }
39
- interface TableColumnProps {
39
+ /**
40
+ * Extends the native `<th>` attributes so `scope`, `colSpan`, `data-*` and
41
+ * `aria-*` reach the header cell instead of being dropped.
42
+ *
43
+ * `aria-sort` is the one worth calling out: it is emitted automatically from
44
+ * the column's own sort state, and passing it explicitly overrides that — which
45
+ * is what a server-sorted table needs, since it knows its state and the
46
+ * component does not.
47
+ */
48
+ interface TableColumnProps extends ThHTMLAttributes<HTMLTableCellElement> {
40
49
  label: string;
41
50
  sortKey?: string;
42
51
  className?: string;
@@ -55,15 +64,15 @@ interface TableTrayProps {
55
64
  className?: string;
56
65
  }
57
66
 
58
- declare function TableHead({ children, className }: TableHeadProps): react.JSX.Element;
67
+ declare function TableHead({ children, className, ...rest }: TableHeadProps): react.JSX.Element;
59
68
 
60
- declare function TableBody({ children, className }: TableBodyProps): react.JSX.Element;
69
+ declare function TableBody({ children, className, ...rest }: TableBodyProps): react.JSX.Element;
61
70
 
62
71
  declare function TableRow({ children, className, onClick, tray, trayTriggerPosition, expanded: controlledExpanded, defaultExpanded, onExpandedChange, ...rest }: TableRowProps): react.JSX.Element;
63
72
 
64
73
  declare function TableCell({ children, className, header, ...rest }: TableCellProps): react.JSX.Element;
65
74
 
66
- declare function TableColumn({ label, sortKey, className }: TableColumnProps): react.JSX.Element;
75
+ declare function TableColumn({ label, sortKey, className, "aria-sort": ariaSortProp, onClick, ...rest }: TableColumnProps): react.JSX.Element;
67
76
 
68
77
  declare function TablePagination({ className, total, pageSize, }: TablePaginationProps): react.JSX.Element | null;
69
78
 
@@ -73,7 +82,7 @@ declare function TableTray({ children, className }: TableTrayProps): react.JSX.E
73
82
 
74
83
  declare function TableRowTray({ children, className }: TableRowTrayProps): react.JSX.Element;
75
84
 
76
- declare function TableRoot({ children, className }: TableProps): react.JSX.Element;
85
+ declare function TableRoot({ children, className, ...rest }: TableProps): react.JSX.Element;
77
86
  declare const Table: typeof TableRoot & {
78
87
  Head: typeof TableHead;
79
88
  Body: typeof TableBody;
package/dist/table.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Table, TableBody, TableCell, TableColumn, TableHead, TablePagination, TableRow, TableRowTray, TableSearch, TableTray } from './chunk-GKPCXPCD.js';
1
+ export { Table, TableBody, TableCell, TableColumn, TableHead, TablePagination, TableRow, TableRowTray, TableSearch, TableTray } from './chunk-I2JXK25I.js';
2
2
  import './chunk-6FQGMVF2.js';
3
3
  import './chunk-DSUHZO6T.js';
4
4
  //# sourceMappingURL=table.js.map
package/dist/text.cjs CHANGED
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkVE3EM4K2_cjs = require('./chunk-VE3EM4K2.cjs');
3
+ require('./chunk-XURQVDCN.cjs');
4
+ var chunk23CLGUMT_cjs = require('./chunk-23CLGUMT.cjs');
4
5
  require('./chunk-3Z6ALUWP.cjs');
5
6
 
6
7
 
7
8
 
8
9
  Object.defineProperty(exports, "Text", {
9
10
  enumerable: true,
10
- get: function () { return chunkVE3EM4K2_cjs.Text; }
11
+ get: function () { return chunk23CLGUMT_cjs.Text; }
11
12
  });
12
13
  //# sourceMappingURL=text.cjs.map
13
14
  //# sourceMappingURL=text.cjs.map
package/dist/text.js CHANGED
@@ -1,4 +1,5 @@
1
- export { Text } from './chunk-UWVVEB2N.js';
1
+ import './chunk-TMR56BBE.js';
2
+ export { Text } from './chunk-P7AJAN62.js';
2
3
  import './chunk-DSUHZO6T.js';
3
4
  //# sourceMappingURL=text.js.map
4
5
  //# sourceMappingURL=text.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@particle-academy/react-fancy",
3
- "version": "5.14.0",
4
- "description": "React UI component library for Human+ UX \u2014 controlled, agent-bridgeable primitives",
3
+ "version": "5.16.0",
4
+ "description": "React UI component library for Human+ UX controlled, agent-bridgeable primitives",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/Particle-Academy/react-fancy.git"
@@ -233,6 +233,16 @@
233
233
  "default": "./dist/composer.cjs"
234
234
  }
235
235
  },
236
+ "./container": {
237
+ "import": {
238
+ "types": "./dist/container.d.ts",
239
+ "default": "./dist/container.js"
240
+ },
241
+ "require": {
242
+ "types": "./dist/container.d.cts",
243
+ "default": "./dist/container.cjs"
244
+ }
245
+ },
236
246
  "./content-renderer": {
237
247
  "import": {
238
248
  "types": "./dist/content-renderer.d.ts",
@@ -363,6 +373,16 @@
363
373
  "default": "./dist/file-upload.cjs"
364
374
  }
365
375
  },
376
+ "./grid": {
377
+ "import": {
378
+ "types": "./dist/grid.d.ts",
379
+ "default": "./dist/grid.js"
380
+ },
381
+ "require": {
382
+ "types": "./dist/grid.d.cts",
383
+ "default": "./dist/grid.cjs"
384
+ }
385
+ },
366
386
  "./heading": {
367
387
  "import": {
368
388
  "types": "./dist/heading.d.ts",
@@ -443,6 +463,16 @@
443
463
  "default": "./dist/inputs.cjs"
444
464
  }
445
465
  },
466
+ "./json-editor": {
467
+ "import": {
468
+ "types": "./dist/json-editor.d.ts",
469
+ "default": "./dist/json-editor.js"
470
+ },
471
+ "require": {
472
+ "types": "./dist/json-editor.d.cts",
473
+ "default": "./dist/json-editor.cjs"
474
+ }
475
+ },
446
476
  "./kanban": {
447
477
  "import": {
448
478
  "types": "./dist/kanban.d.ts",
@@ -683,6 +713,16 @@
683
713
  "default": "./dist/reason-tag.cjs"
684
714
  }
685
715
  },
716
+ "./section": {
717
+ "import": {
718
+ "types": "./dist/section.d.ts",
719
+ "default": "./dist/section.js"
720
+ },
721
+ "require": {
722
+ "types": "./dist/section.d.cts",
723
+ "default": "./dist/section.cjs"
724
+ }
725
+ },
686
726
  "./select": {
687
727
  "import": {
688
728
  "types": "./dist/select.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/ColorPicker/ColorPicker.tsx"],"names":["forwardRef","useControllableState","useFieldMode","useInlineEdit","useRef","useId","jsxs","cn","jsx"],"mappings":";;;;;;;;;AAOA,IAAM,aAAA,GAAgB,SAAA;AAEtB,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,WAAA,GAAcA,gBAAA;AAAA,EACzB,CACE;AAAA,IACE,KAAA;AAAA,IACA,YAAA,GAAe,aAAA;AAAA,IACf,QAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA;AAAA,KAEF,GAAA,KACG;AACH,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,sCAAA;AAAA,MACxB,KAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,YAAA,GAAeC,+BAAa,IAAI,CAAA;AACtC,IAAA,MAAM,EAAE,aAAa,WAAA,EAAa,SAAA,EAAW,UAAS,GAAIC,+BAAA,CAAc,cAAc,QAAQ,CAAA;AAE9F,IAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAC9C,IAAA,MAAM,aAAaC,WAAA,EAAM;AAEzB,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAA2C;AAC/D,MAAA,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AAAA,MAC1B;AAAA,IACF,CAAA;AAEA,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,uBACEC,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,+BAAA,EAA8B,EAAA;AAAA,UAC9B,WAAA,EAAU,MAAA;AAAA,UACV,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,UAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,UAC5B,KAAA,EAAO,cAAc,eAAA,GAAkB,MAAA;AAAA,UACvC,OAAA,EAAS,cAAc,SAAA,GAAY,MAAA;AAAA,UACnC,SAAA,EACE,WAAA,GACI,CAAC,CAAA,KAAM;AACL,YAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,SAAA,EAAU;AAAA,YACZ;AAAA,UACF,CAAA,GACA,MAAA;AAAA,UAEN,SAAA,EAAWC,oBAAA;AAAA,YACT,gCAAA;AAAA,YACA,WAAA,IACE,gIAAA;AAAA,YACF;AAAA,WACF;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAC,cAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWD,oBAAA;AAAA,kBACT,uBAAA;AAAA,kBACA,aAAa,IAAI,CAAA;AAAA,kBACjB,YAAY,SAAA,IAAa;AAAA,iBAC3B;AAAA,gBACA,KAAA,EAAO,EAAE,eAAA,EAAiB,KAAA,EAAM;AAAA,gBAChC,YAAA,EAAY,UAAU,KAAK,CAAA;AAAA;AAAA,aAC7B;AAAA,4BACAC,cAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWD,oBAAA;AAAA,kBACT,gCAAA;AAAA,kBACA,WAAW,IAAI,CAAA;AAAA,kBACf;AAAA,iBACF;AAAA,gBAEC,gBAAM,WAAA;AAAY;AAAA;AACrB;AAAA;AAAA,OACF;AAAA,IAEJ;AAEA,IAAA,uBACED,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,+BAAA,EAA8B,EAAA;AAAA,QAC9B,SAAA,EAAWC,oBAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,QACzD,MAAA,EAAQ,CAAC,CAAA,KAAM;AACb,UAAA,IAAI,WAAA,IAAe,CAAC,CAAA,CAAE,aAAA,CAAc,SAAS,CAAA,CAAE,aAAqB,GAAG,QAAA,EAAS;AAAA,QAClF,CAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAC,cAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,QAAA;AAAA,cACA,SAAA,EAAW,WAAA;AAAA,cACX,OAAA,EAAS,iBAAA;AAAA,cACT,SAAA,EAAWD,oBAAA;AAAA,gBACT,kDAAA;AAAA,gBACA,aAAa,IAAI,CAAA;AAAA,gBACjB,YAAY,SAAA,IACV,yCAAA;AAAA,gBACF,WACI,+BAAA,GACA;AAAA,eACN;AAAA,cACA,KAAA,EAAO,EAAE,eAAA,EAAiB,KAAA,EAAM;AAAA,cAChC,YAAA,EAAY,mBAAmB,KAAK,CAAA,CAAA;AAAA,cAEpC,QAAA,kBAAAC,cAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,GAAA,EAAK,QAAA;AAAA,kBACL,IAAA,EAAK,OAAA;AAAA,kBACL,KAAA,EAAO,KAAA;AAAA,kBACP,QAAA,EAAU,YAAA;AAAA,kBACV,QAAA;AAAA,kBACA,SAAA,EAAU,yDAAA;AAAA,kBACV,QAAA,EAAU,EAAA;AAAA,kBACV,IAAA,EAAM,UAAU,UAAA,GAAa;AAAA;AAAA;AAC/B;AAAA,WACF;AAAA,0BAEAA,cAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWD,oBAAA;AAAA,gBACT,gCAAA;AAAA,gBACA,WAAW,IAAI,CAAA;AAAA,gBACf,kCAAA;AAAA,gBACA,QAAA,IAAY;AAAA,eACd;AAAA,cAEC,gBAAM,WAAA;AAAY;AAAA,WACrB;AAAA,UAEC,OAAA,oBACCC,cAAA,CAAC,UAAA,EAAA,EAAS,EAAA,EAAI,YACX,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,oCACX,QAAA,EAAA,EAAoB,KAAA,EAAO,MAAA,EAAA,EAAf,MAAuB,CACrC,CAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-DOSSIU6S.cjs","sourcesContent":["import { forwardRef, useId, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport { useFieldMode } from \"../inputs/mode/FieldMode.context\";\nimport { useInlineEdit } from \"../inputs/mode/useInlineEdit\";\nimport type { ColorPickerProps } from \"./ColorPicker.types\";\n\nconst DEFAULT_COLOR = \"#3b82f6\";\n\nconst SWATCH_SIZES = {\n sm: \"h-6 w-6\",\n md: \"h-8 w-8\",\n lg: \"h-10 w-10\",\n} as const;\n\nconst TEXT_SIZES = {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n} as const;\n\nexport const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (\n {\n value,\n defaultValue = DEFAULT_COLOR,\n onChange,\n presets,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n className,\n mode,\n },\n ref,\n ) => {\n const [color, setColor] = useControllableState(\n value,\n defaultValue,\n onChange,\n );\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const datalistId = useId();\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setColor(e.target.value);\n };\n\n const handleSwatchClick = () => {\n if (!disabled) {\n inputRef.current?.click();\n }\n };\n\n if (!showControl) {\n return (\n <div\n ref={ref}\n data-react-fancy-color-picker=\"\"\n data-mode=\"view\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n title={interactive ? \"Click to edit\" : undefined}\n onClick={interactive ? enterEdit : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n enterEdit();\n }\n }\n : undefined\n }\n className={cn(\n \"inline-flex items-center gap-2\",\n interactive &&\n \"cursor-pointer rounded-md outline-none transition-opacity hover:opacity-80 focus-visible:ring-2 focus-visible:ring-blue-500/40\",\n className,\n )}\n >\n <span\n className={cn(\n \"shrink-0 rounded-full\",\n SWATCH_SIZES[size],\n variant === \"outline\" && \"ring-1 ring-zinc-300 dark:ring-zinc-600\",\n )}\n style={{ backgroundColor: color }}\n aria-label={`Color: ${color}`}\n />\n <span\n className={cn(\n \"select-all font-mono uppercase\",\n TEXT_SIZES[size],\n \"text-zinc-700 dark:text-zinc-300\",\n )}\n >\n {color.toUpperCase()}\n </span>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-react-fancy-color-picker=\"\"\n className={cn(\"inline-flex items-center gap-2\", className)}\n onBlur={(e) => {\n if (interactive && !e.currentTarget.contains(e.relatedTarget as Node)) exitEdit();\n }}\n >\n <button\n type=\"button\"\n disabled={disabled}\n autoFocus={interactive}\n onClick={handleSwatchClick}\n className={cn(\n \"relative shrink-0 rounded-full transition-shadow\",\n SWATCH_SIZES[size],\n variant === \"outline\" &&\n \"ring-1 ring-zinc-300 dark:ring-zinc-600\",\n disabled\n ? \"cursor-not-allowed opacity-50\"\n : \"cursor-pointer hover:ring-2 hover:ring-zinc-400 dark:hover:ring-zinc-500\",\n )}\n style={{ backgroundColor: color }}\n aria-label={`Selected color: ${color}`}\n >\n <input\n ref={inputRef}\n type=\"color\"\n value={color}\n onChange={handleChange}\n disabled={disabled}\n className=\"absolute inset-0 h-full w-full cursor-pointer opacity-0\"\n tabIndex={-1}\n list={presets ? datalistId : undefined}\n />\n </button>\n\n <span\n className={cn(\n \"select-all font-mono uppercase\",\n TEXT_SIZES[size],\n \"text-zinc-700 dark:text-zinc-300\",\n disabled && \"opacity-50\",\n )}\n >\n {color.toUpperCase()}\n </span>\n\n {presets && (\n <datalist id={datalistId}>\n {presets.map((preset) => (\n <option key={preset} value={preset} />\n ))}\n </datalist>\n )}\n </div>\n );\n },\n);\n\nColorPicker.displayName = \"ColorPicker\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Table/Table.context.ts","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableColumn.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableSearch.tsx","../src/components/Table/TableTray.tsx","../src/components/Table/TableRowTray.tsx","../src/components/Table/Table.tsx"],"names":["jsx","jsxs","Fragment"],"mappings":"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","file":"chunk-GKPCXPCD.js","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { TableContextValue } from \"./Table.types\";\n\nexport const TableContext = createContext<TableContextValue | null>(null);\n\nexport function useTable(): TableContextValue {\n const ctx = useContext(TableContext);\n if (!ctx) {\n throw new Error(\"Table compound components must be used within <Table>\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableHeadProps } from \"./Table.types\";\n\nexport function TableHead({ children, className }: TableHeadProps) {\n return <thead data-react-fancy-table-head=\"\" className={cn(\"border-b border-zinc-200 dark:border-zinc-700\", className)}>{children}</thead>;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableBodyProps } from \"./Table.types\";\n\nexport function TableBody({ children, className }: TableBodyProps) {\n return <tbody data-react-fancy-table-body=\"\" className={cn(\"divide-y divide-zinc-100 dark:divide-zinc-800\", className)}>{children}</tbody>;\n}\n","import { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type { TableRowProps } from \"./Table.types\";\n\nexport function TableRow({\n children,\n className,\n onClick,\n tray,\n trayTriggerPosition = \"end\",\n expanded: controlledExpanded,\n defaultExpanded = false,\n onExpandedChange,\n ...rest\n}: TableRowProps) {\n const [expanded, setExpanded] = useControllableState(\n controlledExpanded,\n defaultExpanded,\n onExpandedChange,\n );\n\n const hasTray = tray != null;\n const showTrigger = hasTray && trayTriggerPosition !== \"hidden\";\n\n const triggerCell = showTrigger ? (\n <td className=\"w-8 px-2\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n setExpanded(!expanded);\n }}\n className=\"inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-700 dark:text-zinc-500 dark:hover:text-zinc-300\"\n aria-label={expanded ? \"Collapse row\" : \"Expand row\"}\n >\n <svg\n className={cn(\n \"h-4 w-4 transition-transform duration-200\",\n expanded && \"rotate-90\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </td>\n ) : null;\n\n return (\n <>\n <tr\n {...rest}\n data-react-fancy-table-row=\"\"\n className={cn(\n \"transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50\",\n onClick && \"cursor-pointer\",\n className,\n )}\n onClick={onClick}\n >\n {trayTriggerPosition === \"start\" && triggerCell}\n {children}\n {trayTriggerPosition === \"end\" && triggerCell}\n </tr>\n {hasTray && expanded && (\n <tr className=\"bg-zinc-50/50 dark:bg-zinc-800/30\">\n <td colSpan={999}>\n {tray}\n </td>\n </tr>\n )}\n </>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableCellProps } from \"./Table.types\";\n\nexport function TableCell({ children, className, header, ...rest }: TableCellProps) {\n const Tag = header ? \"th\" : \"td\";\n return (\n <Tag\n data-react-fancy-table-cell=\"\"\n className={cn(\n \"px-4 py-3 text-sm\",\n header && \"text-left font-medium text-zinc-500 dark:text-zinc-400\",\n className,\n )}\n {...rest}\n >\n {children}\n </Tag>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableColumnProps } from \"./Table.types\";\n\nexport function TableColumn({ label, sortKey, className }: TableColumnProps) {\n const { sortKey: currentSort, sortDir, toggleSort } = useTable();\n const isSorted = sortKey && currentSort === sortKey;\n\n return (\n <th\n data-react-fancy-table-column=\"\"\n className={cn(\n \"px-4 py-3 text-left text-sm font-medium text-zinc-500 dark:text-zinc-400\",\n sortKey && \"cursor-pointer select-none\",\n className,\n )}\n onClick={sortKey ? () => toggleSort(sortKey) : undefined}\n >\n <span className=\"inline-flex items-center gap-1\">\n {label}\n {isSorted && (\n <span className=\"text-xs\">{sortDir === \"asc\" ? \"\\u25B2\" : \"\\u25BC\"}</span>\n )}\n </span>\n </th>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TablePaginationProps } from \"./Table.types\";\n\nexport function TablePagination({\n className,\n total,\n pageSize = 10,\n}: TablePaginationProps) {\n const { page, setPage } = useTable();\n const totalPages = Math.ceil(total / pageSize);\n\n if (totalPages <= 1) return null;\n\n return (\n <div data-react-fancy-table-pagination=\"\" className={cn(\"flex items-center justify-between px-4 py-3 text-sm\", className)}>\n <span className=\"text-zinc-500\">\n Page {page + 1} of {totalPages}\n </span>\n <div className=\"flex gap-1\">\n <button\n type=\"button\"\n disabled={page === 0}\n onClick={() => setPage(page - 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Prev\n </button>\n <button\n type=\"button\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage(page + 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableSearchProps } from \"./Table.types\";\n\nexport function TableSearch({\n className,\n placeholder = \"Search...\",\n}: TableSearchProps) {\n const { searchQuery, setSearchQuery } = useTable();\n\n return (\n <input\n data-react-fancy-table-search=\"\"\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-600 dark:bg-zinc-800\",\n className,\n )}\n />\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableTrayProps } from \"./Table.types\";\n\nexport function TableTray({ children, className }: TableTrayProps) {\n return (\n <div data-react-fancy-table-tray=\"\" className={cn(\"flex items-center justify-between px-4 py-3\", className)}>\n {children}\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableRowTrayProps } from \"./Table.types\";\n\nexport function TableRowTray({ children, className }: TableRowTrayProps) {\n return (\n <div\n data-react-fancy-table-row-tray=\"\"\n className={cn(\n \"border-t border-zinc-200 px-4 py-3 dark:border-zinc-700\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { Children, isValidElement, useCallback, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { TableContext } from \"./Table.context\";\nimport { TableHead } from \"./TableHead\";\nimport { TableBody } from \"./TableBody\";\nimport { TableRow } from \"./TableRow\";\nimport { TableCell } from \"./TableCell\";\nimport { TableColumn } from \"./TableColumn\";\nimport { TablePagination } from \"./TablePagination\";\nimport { TableSearch } from \"./TableSearch\";\nimport { TableTray } from \"./TableTray\";\nimport { TableRowTray } from \"./TableRowTray\";\nimport type { TableProps, TableContextValue } from \"./Table.types\";\n\nfunction TableRoot({ children, className }: TableProps) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n const [page, setPage] = useState(0);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const toggleSort = useCallback(\n (key: string) => {\n if (sortKey === key) {\n setSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n } else {\n setSortKey(key);\n setSortDir(\"asc\");\n }\n },\n [sortKey],\n );\n\n const ctx = useMemo<TableContextValue>(\n () => ({\n sortKey,\n sortDir,\n toggleSort,\n page,\n setPage,\n pageSize: 10,\n totalRows: 0,\n searchQuery,\n setSearchQuery,\n }),\n [sortKey, sortDir, toggleSort, page, searchQuery],\n );\n\n return (\n <TableContext.Provider value={ctx}>\n <div data-react-fancy-table=\"\" className={cn(\"overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-700\", className)}>\n {splitTableChildren(children)}\n </div>\n </TableContext.Provider>\n );\n}\n\nfunction splitTableChildren(children: ReactNode): ReactNode {\n const before: ReactNode[] = [];\n const inside: ReactNode[] = [];\n const after: ReactNode[] = [];\n let seenTableContent = false;\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && (child.type === TableHead || child.type === TableBody)) {\n inside.push(child);\n seenTableContent = true;\n return;\n }\n (seenTableContent ? after : before).push(child);\n });\n\n return (\n <>\n {before}\n {inside.length > 0 && <table className=\"w-full border-collapse\">{inside}</table>}\n {after}\n </>\n );\n}\n\nexport const Table = Object.assign(TableRoot, {\n Head: TableHead,\n Body: TableBody,\n Row: TableRow,\n Cell: TableCell,\n Column: TableColumn,\n Pagination: TablePagination,\n Search: TableSearch,\n Tray: TableTray,\n RowTray: TableRowTray,\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Table/Table.context.ts","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableColumn.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableSearch.tsx","../src/components/Table/TableTray.tsx","../src/components/Table/TableRowTray.tsx","../src/components/Table/Table.tsx"],"names":["createContext","useContext","jsx","cn","useControllableState","jsxs","Fragment","useState","useCallback","useMemo","Children","isValidElement"],"mappings":"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","file":"chunk-IF3T3ZCB.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { TableContextValue } from \"./Table.types\";\n\nexport const TableContext = createContext<TableContextValue | null>(null);\n\nexport function useTable(): TableContextValue {\n const ctx = useContext(TableContext);\n if (!ctx) {\n throw new Error(\"Table compound components must be used within <Table>\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableHeadProps } from \"./Table.types\";\n\nexport function TableHead({ children, className }: TableHeadProps) {\n return <thead data-react-fancy-table-head=\"\" className={cn(\"border-b border-zinc-200 dark:border-zinc-700\", className)}>{children}</thead>;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableBodyProps } from \"./Table.types\";\n\nexport function TableBody({ children, className }: TableBodyProps) {\n return <tbody data-react-fancy-table-body=\"\" className={cn(\"divide-y divide-zinc-100 dark:divide-zinc-800\", className)}>{children}</tbody>;\n}\n","import { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type { TableRowProps } from \"./Table.types\";\n\nexport function TableRow({\n children,\n className,\n onClick,\n tray,\n trayTriggerPosition = \"end\",\n expanded: controlledExpanded,\n defaultExpanded = false,\n onExpandedChange,\n ...rest\n}: TableRowProps) {\n const [expanded, setExpanded] = useControllableState(\n controlledExpanded,\n defaultExpanded,\n onExpandedChange,\n );\n\n const hasTray = tray != null;\n const showTrigger = hasTray && trayTriggerPosition !== \"hidden\";\n\n const triggerCell = showTrigger ? (\n <td className=\"w-8 px-2\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n setExpanded(!expanded);\n }}\n className=\"inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-700 dark:text-zinc-500 dark:hover:text-zinc-300\"\n aria-label={expanded ? \"Collapse row\" : \"Expand row\"}\n >\n <svg\n className={cn(\n \"h-4 w-4 transition-transform duration-200\",\n expanded && \"rotate-90\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </td>\n ) : null;\n\n return (\n <>\n <tr\n {...rest}\n data-react-fancy-table-row=\"\"\n className={cn(\n \"transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50\",\n onClick && \"cursor-pointer\",\n className,\n )}\n onClick={onClick}\n >\n {trayTriggerPosition === \"start\" && triggerCell}\n {children}\n {trayTriggerPosition === \"end\" && triggerCell}\n </tr>\n {hasTray && expanded && (\n <tr className=\"bg-zinc-50/50 dark:bg-zinc-800/30\">\n <td colSpan={999}>\n {tray}\n </td>\n </tr>\n )}\n </>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableCellProps } from \"./Table.types\";\n\nexport function TableCell({ children, className, header, ...rest }: TableCellProps) {\n const Tag = header ? \"th\" : \"td\";\n return (\n <Tag\n data-react-fancy-table-cell=\"\"\n className={cn(\n \"px-4 py-3 text-sm\",\n header && \"text-left font-medium text-zinc-500 dark:text-zinc-400\",\n className,\n )}\n {...rest}\n >\n {children}\n </Tag>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableColumnProps } from \"./Table.types\";\n\nexport function TableColumn({ label, sortKey, className }: TableColumnProps) {\n const { sortKey: currentSort, sortDir, toggleSort } = useTable();\n const isSorted = sortKey && currentSort === sortKey;\n\n return (\n <th\n data-react-fancy-table-column=\"\"\n className={cn(\n \"px-4 py-3 text-left text-sm font-medium text-zinc-500 dark:text-zinc-400\",\n sortKey && \"cursor-pointer select-none\",\n className,\n )}\n onClick={sortKey ? () => toggleSort(sortKey) : undefined}\n >\n <span className=\"inline-flex items-center gap-1\">\n {label}\n {isSorted && (\n <span className=\"text-xs\">{sortDir === \"asc\" ? \"\\u25B2\" : \"\\u25BC\"}</span>\n )}\n </span>\n </th>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TablePaginationProps } from \"./Table.types\";\n\nexport function TablePagination({\n className,\n total,\n pageSize = 10,\n}: TablePaginationProps) {\n const { page, setPage } = useTable();\n const totalPages = Math.ceil(total / pageSize);\n\n if (totalPages <= 1) return null;\n\n return (\n <div data-react-fancy-table-pagination=\"\" className={cn(\"flex items-center justify-between px-4 py-3 text-sm\", className)}>\n <span className=\"text-zinc-500\">\n Page {page + 1} of {totalPages}\n </span>\n <div className=\"flex gap-1\">\n <button\n type=\"button\"\n disabled={page === 0}\n onClick={() => setPage(page - 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Prev\n </button>\n <button\n type=\"button\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage(page + 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableSearchProps } from \"./Table.types\";\n\nexport function TableSearch({\n className,\n placeholder = \"Search...\",\n}: TableSearchProps) {\n const { searchQuery, setSearchQuery } = useTable();\n\n return (\n <input\n data-react-fancy-table-search=\"\"\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-600 dark:bg-zinc-800\",\n className,\n )}\n />\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableTrayProps } from \"./Table.types\";\n\nexport function TableTray({ children, className }: TableTrayProps) {\n return (\n <div data-react-fancy-table-tray=\"\" className={cn(\"flex items-center justify-between px-4 py-3\", className)}>\n {children}\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableRowTrayProps } from \"./Table.types\";\n\nexport function TableRowTray({ children, className }: TableRowTrayProps) {\n return (\n <div\n data-react-fancy-table-row-tray=\"\"\n className={cn(\n \"border-t border-zinc-200 px-4 py-3 dark:border-zinc-700\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { Children, isValidElement, useCallback, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { TableContext } from \"./Table.context\";\nimport { TableHead } from \"./TableHead\";\nimport { TableBody } from \"./TableBody\";\nimport { TableRow } from \"./TableRow\";\nimport { TableCell } from \"./TableCell\";\nimport { TableColumn } from \"./TableColumn\";\nimport { TablePagination } from \"./TablePagination\";\nimport { TableSearch } from \"./TableSearch\";\nimport { TableTray } from \"./TableTray\";\nimport { TableRowTray } from \"./TableRowTray\";\nimport type { TableProps, TableContextValue } from \"./Table.types\";\n\nfunction TableRoot({ children, className }: TableProps) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n const [page, setPage] = useState(0);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const toggleSort = useCallback(\n (key: string) => {\n if (sortKey === key) {\n setSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n } else {\n setSortKey(key);\n setSortDir(\"asc\");\n }\n },\n [sortKey],\n );\n\n const ctx = useMemo<TableContextValue>(\n () => ({\n sortKey,\n sortDir,\n toggleSort,\n page,\n setPage,\n pageSize: 10,\n totalRows: 0,\n searchQuery,\n setSearchQuery,\n }),\n [sortKey, sortDir, toggleSort, page, searchQuery],\n );\n\n return (\n <TableContext.Provider value={ctx}>\n <div data-react-fancy-table=\"\" className={cn(\"overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-700\", className)}>\n {splitTableChildren(children)}\n </div>\n </TableContext.Provider>\n );\n}\n\nfunction splitTableChildren(children: ReactNode): ReactNode {\n const before: ReactNode[] = [];\n const inside: ReactNode[] = [];\n const after: ReactNode[] = [];\n let seenTableContent = false;\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && (child.type === TableHead || child.type === TableBody)) {\n inside.push(child);\n seenTableContent = true;\n return;\n }\n (seenTableContent ? after : before).push(child);\n });\n\n return (\n <>\n {before}\n {inside.length > 0 && <table className=\"w-full border-collapse\">{inside}</table>}\n {after}\n </>\n );\n}\n\nexport const Table = Object.assign(TableRoot, {\n Head: TableHead,\n Body: TableBody,\n Row: TableRow,\n Cell: TableCell,\n Column: TableColumn,\n Pagination: TablePagination,\n Search: TableSearch,\n Tray: TableTray,\n RowTray: TableRowTray,\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/ColorPicker/ColorPicker.tsx"],"names":[],"mappings":"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","file":"chunk-O432BDEO.js","sourcesContent":["import { forwardRef, useId, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport { useFieldMode } from \"../inputs/mode/FieldMode.context\";\nimport { useInlineEdit } from \"../inputs/mode/useInlineEdit\";\nimport type { ColorPickerProps } from \"./ColorPicker.types\";\n\nconst DEFAULT_COLOR = \"#3b82f6\";\n\nconst SWATCH_SIZES = {\n sm: \"h-6 w-6\",\n md: \"h-8 w-8\",\n lg: \"h-10 w-10\",\n} as const;\n\nconst TEXT_SIZES = {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n} as const;\n\nexport const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (\n {\n value,\n defaultValue = DEFAULT_COLOR,\n onChange,\n presets,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n className,\n mode,\n },\n ref,\n ) => {\n const [color, setColor] = useControllableState(\n value,\n defaultValue,\n onChange,\n );\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const datalistId = useId();\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setColor(e.target.value);\n };\n\n const handleSwatchClick = () => {\n if (!disabled) {\n inputRef.current?.click();\n }\n };\n\n if (!showControl) {\n return (\n <div\n ref={ref}\n data-react-fancy-color-picker=\"\"\n data-mode=\"view\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n title={interactive ? \"Click to edit\" : undefined}\n onClick={interactive ? enterEdit : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n enterEdit();\n }\n }\n : undefined\n }\n className={cn(\n \"inline-flex items-center gap-2\",\n interactive &&\n \"cursor-pointer rounded-md outline-none transition-opacity hover:opacity-80 focus-visible:ring-2 focus-visible:ring-blue-500/40\",\n className,\n )}\n >\n <span\n className={cn(\n \"shrink-0 rounded-full\",\n SWATCH_SIZES[size],\n variant === \"outline\" && \"ring-1 ring-zinc-300 dark:ring-zinc-600\",\n )}\n style={{ backgroundColor: color }}\n aria-label={`Color: ${color}`}\n />\n <span\n className={cn(\n \"select-all font-mono uppercase\",\n TEXT_SIZES[size],\n \"text-zinc-700 dark:text-zinc-300\",\n )}\n >\n {color.toUpperCase()}\n </span>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-react-fancy-color-picker=\"\"\n className={cn(\"inline-flex items-center gap-2\", className)}\n onBlur={(e) => {\n if (interactive && !e.currentTarget.contains(e.relatedTarget as Node)) exitEdit();\n }}\n >\n <button\n type=\"button\"\n disabled={disabled}\n autoFocus={interactive}\n onClick={handleSwatchClick}\n className={cn(\n \"relative shrink-0 rounded-full transition-shadow\",\n SWATCH_SIZES[size],\n variant === \"outline\" &&\n \"ring-1 ring-zinc-300 dark:ring-zinc-600\",\n disabled\n ? \"cursor-not-allowed opacity-50\"\n : \"cursor-pointer hover:ring-2 hover:ring-zinc-400 dark:hover:ring-zinc-500\",\n )}\n style={{ backgroundColor: color }}\n aria-label={`Selected color: ${color}`}\n >\n <input\n ref={inputRef}\n type=\"color\"\n value={color}\n onChange={handleChange}\n disabled={disabled}\n className=\"absolute inset-0 h-full w-full cursor-pointer opacity-0\"\n tabIndex={-1}\n list={presets ? datalistId : undefined}\n />\n </button>\n\n <span\n className={cn(\n \"select-all font-mono uppercase\",\n TEXT_SIZES[size],\n \"text-zinc-700 dark:text-zinc-300\",\n disabled && \"opacity-50\",\n )}\n >\n {color.toUpperCase()}\n </span>\n\n {presets && (\n <datalist id={datalistId}>\n {presets.map((preset) => (\n <option key={preset} value={preset} />\n ))}\n </datalist>\n )}\n </div>\n );\n },\n);\n\nColorPicker.displayName = \"ColorPicker\";\n"]}