tekivex-ui 2.5.13 → 2.5.15

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 (239) hide show
  1. package/dist/{TkxForm-9-W3Nl6m.js → TkxForm-BaO4wvXt.js} +109 -103
  2. package/dist/{TkxForm-1KDzoniV.cjs → TkxForm-M6ttomry.cjs} +1 -1
  3. package/dist/charts.cjs +1 -1
  4. package/dist/charts.js +1 -0
  5. package/dist/headless.cjs +1 -1
  6. package/dist/headless.js +3 -2
  7. package/dist/index.cjs +20 -15
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1716 -1066
  11. package/dist/quantum.cjs +9 -9
  12. package/dist/quantum.js +160 -115
  13. package/dist/realtime.cjs +1 -1
  14. package/dist/realtime.js +1 -1
  15. package/dist/src/charts/TkxAreaChart.d.ts.map +1 -1
  16. package/dist/src/charts/TkxBarChart.d.ts.map +1 -1
  17. package/dist/src/charts/TkxDonutChart.d.ts.map +1 -1
  18. package/dist/src/charts/TkxLineChart.d.ts.map +1 -1
  19. package/dist/src/charts/TkxPieChart.d.ts.map +1 -1
  20. package/dist/src/charts/TkxRadarChart.d.ts.map +1 -1
  21. package/dist/src/charts/TkxScatterChart.d.ts.map +1 -1
  22. package/dist/src/charts/index.d.ts.map +1 -1
  23. package/dist/src/charts/shared.d.ts.map +1 -1
  24. package/dist/src/components/TkxAIChatBubble.d.ts.map +1 -1
  25. package/dist/src/components/TkxAIConfidenceBar.d.ts.map +1 -1
  26. package/dist/src/components/TkxAIThinking.d.ts.map +1 -1
  27. package/dist/src/components/TkxAccordion.d.ts.map +1 -1
  28. package/dist/src/components/TkxAffix.d.ts.map +1 -1
  29. package/dist/src/components/TkxAlert.d.ts.map +1 -1
  30. package/dist/src/components/TkxAnchor.d.ts.map +1 -1
  31. package/dist/src/components/TkxAppBar.d.ts.map +1 -1
  32. package/dist/src/components/TkxAutocomplete.d.ts.map +1 -1
  33. package/dist/src/components/TkxAvatar.d.ts.map +1 -1
  34. package/dist/src/components/TkxBadge.d.ts.map +1 -1
  35. package/dist/src/components/TkxBottomNav.d.ts.map +1 -1
  36. package/dist/src/components/TkxBreadcrumb.d.ts.map +1 -1
  37. package/dist/src/components/TkxButton.d.ts.map +1 -1
  38. package/dist/src/components/TkxCard.d.ts.map +1 -1
  39. package/dist/src/components/TkxCarousel.d.ts.map +1 -1
  40. package/dist/src/components/TkxCascader.d.ts.map +1 -1
  41. package/dist/src/components/TkxChat.d.ts.map +1 -1
  42. package/dist/src/components/TkxCheckbox.d.ts.map +1 -1
  43. package/dist/src/components/TkxClock.d.ts.map +1 -1
  44. package/dist/src/components/TkxColorPicker.d.ts.map +1 -1
  45. package/dist/src/components/TkxCommand.d.ts.map +1 -1
  46. package/dist/src/components/TkxConfigProvider.d.ts.map +1 -1
  47. package/dist/src/components/TkxDataGrid.d.ts.map +1 -1
  48. package/dist/src/components/TkxDatePicker.d.ts +1 -1
  49. package/dist/src/components/TkxDatePicker.d.ts.map +1 -1
  50. package/dist/src/components/TkxDivider.d.ts.map +1 -1
  51. package/dist/src/components/TkxDrawer.d.ts.map +1 -1
  52. package/dist/src/components/TkxDropdown.d.ts.map +1 -1
  53. package/dist/src/components/TkxEmpty.d.ts.map +1 -1
  54. package/dist/src/components/TkxFileUpload.d.ts.map +1 -1
  55. package/dist/src/components/TkxForm.d.ts.map +1 -1
  56. package/dist/src/components/TkxIcon.d.ts.map +1 -1
  57. package/dist/src/components/TkxImage.d.ts.map +1 -1
  58. package/dist/src/components/TkxInput.d.ts.map +1 -1
  59. package/dist/src/components/TkxLayout.d.ts.map +1 -1
  60. package/dist/src/components/TkxList.d.ts.map +1 -1
  61. package/dist/src/components/TkxLiveFeed.d.ts.map +1 -1
  62. package/dist/src/components/TkxLiveLog.d.ts.map +1 -1
  63. package/dist/src/components/TkxLiveMetrics.d.ts.map +1 -1
  64. package/dist/src/components/TkxLogo.d.ts.map +1 -1
  65. package/dist/src/components/TkxMarkdown.d.ts +29 -0
  66. package/dist/src/components/TkxMarkdown.d.ts.map +1 -0
  67. package/dist/src/components/TkxMasonry.d.ts.map +1 -1
  68. package/dist/src/components/TkxMentions.d.ts.map +1 -1
  69. package/dist/src/components/TkxMenu.d.ts.map +1 -1
  70. package/dist/src/components/TkxModal.d.ts.map +1 -1
  71. package/dist/src/components/TkxNumberInput.d.ts.map +1 -1
  72. package/dist/src/components/TkxOTP.d.ts.map +1 -1
  73. package/dist/src/components/TkxPagination.d.ts.map +1 -1
  74. package/dist/src/components/TkxPlayground.d.ts +15 -1
  75. package/dist/src/components/TkxPlayground.d.ts.map +1 -1
  76. package/dist/src/components/TkxPopover.d.ts.map +1 -1
  77. package/dist/src/components/TkxProgress.d.ts.map +1 -1
  78. package/dist/src/components/TkxQRCode.d.ts.map +1 -1
  79. package/dist/src/components/TkxQuantumForm.d.ts.map +1 -1
  80. package/dist/src/components/TkxRadio.d.ts.map +1 -1
  81. package/dist/src/components/TkxRating.d.ts.map +1 -1
  82. package/dist/src/components/TkxRealTimeChart.d.ts.map +1 -1
  83. package/dist/src/components/TkxResult.d.ts.map +1 -1
  84. package/dist/src/components/TkxRichTextDisplay.d.ts.map +1 -1
  85. package/dist/src/components/TkxSegmented.d.ts.map +1 -1
  86. package/dist/src/components/TkxSelect.d.ts.map +1 -1
  87. package/dist/src/components/TkxSkeleton.d.ts.map +1 -1
  88. package/dist/src/components/TkxSlider.d.ts.map +1 -1
  89. package/dist/src/components/TkxSnackbar.d.ts.map +1 -1
  90. package/dist/src/components/TkxSpeedDial.d.ts.map +1 -1
  91. package/dist/src/components/TkxSpin.d.ts.map +1 -1
  92. package/dist/src/components/TkxStatistic.d.ts.map +1 -1
  93. package/dist/src/components/TkxStepper.d.ts.map +1 -1
  94. package/dist/src/components/TkxTable.d.ts.map +1 -1
  95. package/dist/src/components/TkxTabs.d.ts.map +1 -1
  96. package/dist/src/components/TkxTag.d.ts.map +1 -1
  97. package/dist/src/components/TkxThemeBuilder.d.ts.map +1 -1
  98. package/dist/src/components/TkxTimeline.d.ts.map +1 -1
  99. package/dist/src/components/TkxToast.d.ts.map +1 -1
  100. package/dist/src/components/TkxToggle.d.ts.map +1 -1
  101. package/dist/src/components/TkxToolbar.d.ts.map +1 -1
  102. package/dist/src/components/TkxTooltip.d.ts.map +1 -1
  103. package/dist/src/components/TkxTour.d.ts.map +1 -1
  104. package/dist/src/components/TkxTransferList.d.ts.map +1 -1
  105. package/dist/src/components/TkxTreeView.d.ts.map +1 -1
  106. package/dist/src/components/TkxTypography.d.ts.map +1 -1
  107. package/dist/src/components/TkxVideoPlayer.d.ts.map +1 -1
  108. package/dist/src/components/TkxWatermark.d.ts.map +1 -1
  109. package/dist/src/components/index.d.ts +1 -0
  110. package/dist/src/components/index.d.ts.map +1 -1
  111. package/dist/src/engine/security.d.ts +8 -0
  112. package/dist/src/engine/security.d.ts.map +1 -1
  113. package/dist/src/headless/index.d.ts.map +1 -1
  114. package/dist/src/headless/useControllable.d.ts.map +1 -1
  115. package/dist/src/headless/useDebounce.d.ts.map +1 -1
  116. package/dist/src/headless/useDisclosure.d.ts.map +1 -1
  117. package/dist/src/headless/useFormState.d.ts.map +1 -1
  118. package/dist/src/headless/useInfiniteQuery.d.ts.map +1 -1
  119. package/dist/src/headless/useIntersectionObserver.d.ts.map +1 -1
  120. package/dist/src/headless/useListSelection.d.ts.map +1 -1
  121. package/dist/src/headless/useLocalStorage.d.ts.map +1 -1
  122. package/dist/src/headless/useMediaQuery.d.ts.map +1 -1
  123. package/dist/src/headless/useRovingTabIndex.d.ts.map +1 -1
  124. package/dist/src/headless/useSSE.d.ts.map +1 -1
  125. package/dist/src/headless/useThrottle.d.ts.map +1 -1
  126. package/dist/src/headless/useWebSocket.d.ts.map +1 -1
  127. package/dist/src/hooks/index.d.ts.map +1 -1
  128. package/dist/tkx-BoP5V5zy.cjs +4 -0
  129. package/dist/{tkx-DQkvHdE5.js → tkx-mOKMzvUK.js} +4 -2
  130. package/package.json +1 -1
  131. package/src/charts/TkxAreaChart.tsx +3 -1
  132. package/src/charts/TkxBarChart.tsx +3 -1
  133. package/src/charts/TkxDonutChart.tsx +3 -1
  134. package/src/charts/TkxLineChart.tsx +3 -1
  135. package/src/charts/TkxPieChart.tsx +3 -1
  136. package/src/charts/TkxRadarChart.tsx +3 -1
  137. package/src/charts/TkxScatterChart.tsx +3 -1
  138. package/src/charts/index.ts +3 -1
  139. package/src/charts/shared.ts +3 -1
  140. package/src/components/TkxAIChatBubble.tsx +55 -8
  141. package/src/components/TkxAIConfidenceBar.tsx +3 -1
  142. package/src/components/TkxAIThinking.tsx +3 -1
  143. package/src/components/TkxAccordion.tsx +3 -1
  144. package/src/components/TkxAffix.tsx +3 -1
  145. package/src/components/TkxAlert.tsx +3 -1
  146. package/src/components/TkxAnchor.tsx +3 -1
  147. package/src/components/TkxAppBar.tsx +3 -1
  148. package/src/components/TkxAutocomplete.tsx +3 -1
  149. package/src/components/TkxAvatar.tsx +3 -1
  150. package/src/components/TkxBadge.tsx +3 -1
  151. package/src/components/TkxBottomNav.tsx +3 -1
  152. package/src/components/TkxBreadcrumb.tsx +3 -1
  153. package/src/components/TkxButton.tsx +3 -1
  154. package/src/components/TkxCard.tsx +3 -1
  155. package/src/components/TkxCarousel.tsx +3 -1
  156. package/src/components/TkxCascader.tsx +3 -1
  157. package/src/components/TkxChat.tsx +3 -1
  158. package/src/components/TkxCheckbox.tsx +3 -1
  159. package/src/components/TkxClock.tsx +3 -1
  160. package/src/components/TkxColorPicker.tsx +3 -1
  161. package/src/components/TkxCommand.tsx +3 -1
  162. package/src/components/TkxConfigProvider.tsx +3 -1
  163. package/src/components/TkxDataGrid.tsx +3 -1
  164. package/src/components/TkxDatePicker.tsx +76 -18
  165. package/src/components/TkxDivider.tsx +3 -1
  166. package/src/components/TkxDrawer.tsx +3 -1
  167. package/src/components/TkxDropdown.tsx +3 -1
  168. package/src/components/TkxEmpty.tsx +3 -1
  169. package/src/components/TkxFileUpload.tsx +3 -1
  170. package/src/components/TkxForm.tsx +22 -3
  171. package/src/components/TkxIcon.tsx +3 -1
  172. package/src/components/TkxImage.tsx +3 -1
  173. package/src/components/TkxInput.tsx +3 -1
  174. package/src/components/TkxLayout.tsx +3 -1
  175. package/src/components/TkxList.tsx +3 -1
  176. package/src/components/TkxLiveFeed.tsx +3 -1
  177. package/src/components/TkxLiveLog.tsx +3 -1
  178. package/src/components/TkxLiveMetrics.tsx +3 -1
  179. package/src/components/TkxLogo.tsx +3 -1
  180. package/src/components/TkxMarkdown.tsx +855 -0
  181. package/src/components/TkxMasonry.tsx +3 -1
  182. package/src/components/TkxMentions.tsx +3 -1
  183. package/src/components/TkxMenu.tsx +3 -1
  184. package/src/components/TkxModal.tsx +3 -1
  185. package/src/components/TkxNumberInput.tsx +3 -1
  186. package/src/components/TkxOTP.tsx +3 -1
  187. package/src/components/TkxPagination.tsx +3 -1
  188. package/src/components/TkxPlayground.tsx +77 -3
  189. package/src/components/TkxPopover.tsx +3 -1
  190. package/src/components/TkxProgress.tsx +3 -1
  191. package/src/components/TkxQRCode.tsx +3 -1
  192. package/src/components/TkxQuantumForm.tsx +3 -1
  193. package/src/components/TkxRadio.tsx +3 -1
  194. package/src/components/TkxRating.tsx +3 -1
  195. package/src/components/TkxRealTimeChart.tsx +3 -1
  196. package/src/components/TkxResult.tsx +3 -1
  197. package/src/components/TkxRichTextDisplay.tsx +3 -1
  198. package/src/components/TkxSegmented.tsx +3 -1
  199. package/src/components/TkxSelect.tsx +3 -1
  200. package/src/components/TkxSkeleton.tsx +3 -1
  201. package/src/components/TkxSlider.tsx +3 -1
  202. package/src/components/TkxSnackbar.tsx +3 -1
  203. package/src/components/TkxSpeedDial.tsx +3 -1
  204. package/src/components/TkxSpin.tsx +3 -1
  205. package/src/components/TkxStatistic.tsx +3 -1
  206. package/src/components/TkxStepper.tsx +3 -1
  207. package/src/components/TkxTable.tsx +3 -1
  208. package/src/components/TkxTabs.tsx +3 -1
  209. package/src/components/TkxTag.tsx +3 -1
  210. package/src/components/TkxThemeBuilder.tsx +3 -1
  211. package/src/components/TkxTimeline.tsx +3 -1
  212. package/src/components/TkxToast.tsx +3 -1
  213. package/src/components/TkxToggle.tsx +3 -1
  214. package/src/components/TkxToolbar.tsx +3 -1
  215. package/src/components/TkxTooltip.tsx +15 -2
  216. package/src/components/TkxTour.tsx +3 -1
  217. package/src/components/TkxTransferList.tsx +3 -1
  218. package/src/components/TkxTreeView.tsx +3 -1
  219. package/src/components/TkxTypography.tsx +3 -1
  220. package/src/components/TkxVideoPlayer.tsx +3 -1
  221. package/src/components/TkxWatermark.tsx +3 -1
  222. package/src/components/index.ts +1 -0
  223. package/src/engine/security.ts +16 -1
  224. package/src/headless/index.ts +3 -1
  225. package/src/headless/useControllable.ts +3 -1
  226. package/src/headless/useDebounce.ts +3 -1
  227. package/src/headless/useDisclosure.ts +3 -1
  228. package/src/headless/useFormState.ts +3 -1
  229. package/src/headless/useInfiniteQuery.ts +3 -1
  230. package/src/headless/useIntersectionObserver.ts +3 -1
  231. package/src/headless/useListSelection.ts +3 -1
  232. package/src/headless/useLocalStorage.ts +3 -1
  233. package/src/headless/useMediaQuery.ts +3 -1
  234. package/src/headless/useRovingTabIndex.ts +3 -1
  235. package/src/headless/useSSE.ts +3 -1
  236. package/src/headless/useThrottle.ts +3 -1
  237. package/src/headless/useWebSocket.ts +3 -1
  238. package/src/hooks/index.ts +3 -1
  239. package/dist/tkx-0oAwZqgL.cjs +0 -4
@@ -1,15 +1,15 @@
1
1
  import { f as e } from "./themes-BbJanqiC.js";
2
- import { a as t, m as n, t as r } from "./tkx-DQkvHdE5.js";
3
- import { cloneElement as i, createContext as a, useCallback as o, useContext as s, useMemo as c, useRef as l, useState as u } from "react";
4
- import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
2
+ import { a as t, m as n, t as r } from "./tkx-mOKMzvUK.js";
3
+ import { cloneElement as i, createContext as a, useCallback as o, useContext as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
4
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
5
5
  //#region src/components/TkxForm.tsx
6
- var m = a(null);
7
- function h() {
8
- let e = s(m);
6
+ var h = a(null);
7
+ function g() {
8
+ let e = s(h);
9
9
  if (!e) throw Error("TkxFormField must be used inside a <TkxForm>. Wrap your fields in a TkxForm component.");
10
10
  return e;
11
11
  }
12
- async function g(e, t) {
12
+ async function _(e, t) {
13
13
  for (let n of t) {
14
14
  if (n.required && (e == null || e === "" || Array.isArray(e) && e.length === 0)) return n.message ?? "This field is required";
15
15
  if (!(e == null || e === "")) {
@@ -30,18 +30,18 @@ async function g(e, t) {
30
30
  }
31
31
  return null;
32
32
  }
33
- function _(e, t) {
33
+ function v(e, t) {
34
34
  let n = e ? [...e] : [];
35
35
  return t && !n.some((e) => e.required) && n.unshift({
36
36
  required: !0,
37
37
  message: "This field is required"
38
38
  }), n;
39
39
  }
40
- function v(e) {
40
+ function y(e) {
41
41
  return e.some((e) => e.required);
42
42
  }
43
- function y() {
44
- let e = s(m), t = l({}), n = l({}), r = l({}), i = c(() => ({
43
+ function b() {
44
+ let e = s(h), t = u({}), n = u({}), r = u({}), i = l(() => ({
45
45
  getFieldValue: (e) => t.current[e],
46
46
  setFieldValue: (e, n) => {
47
47
  t.current[e] = n;
@@ -60,19 +60,19 @@ function y() {
60
60
  }), []);
61
61
  return e ? e.instance : i;
62
62
  }
63
- function b({ onSubmit: n, onValuesChange: i, initialValues: a = {}, layout: s = "vertical", disabled: d = !1, children: p, className: h, style: _, form: v }) {
64
- let y = e(), [b, x] = u({
63
+ function x({ onSubmit: n, onValuesChange: i, initialValues: a = {}, layout: s = "vertical", disabled: f = !1, children: m, className: g, style: v, form: y }) {
64
+ let b = e(), [x, S] = d({
65
65
  values: { ...a },
66
66
  errors: {},
67
67
  touched: {}
68
- }), S = l(a), C = l({}), w = l(b);
69
- w.current = b;
70
- let T = o((e, t) => {
71
- C.current[e] = t;
72
- }, []), E = o((e) => {
73
- delete C.current[e];
74
- }, []), D = o((e, t) => {
75
- x((n) => {
68
+ }), C = u(a), w = u({}), T = u(x);
69
+ T.current = x;
70
+ let E = o((e, t) => {
71
+ w.current[e] = t;
72
+ }, []), D = o((e) => {
73
+ delete w.current[e];
74
+ }, []), O = o((e, t) => {
75
+ S((n) => {
76
76
  let r = {
77
77
  ...n,
78
78
  values: {
@@ -82,27 +82,27 @@ function b({ onSubmit: n, onValuesChange: i, initialValues: a = {}, layout: s =
82
82
  };
83
83
  return i?.({ [e]: t }, r.values), r;
84
84
  });
85
- }, [i]), O = o((e, t) => {
86
- x((n) => ({
85
+ }, [i]), k = o((e, t) => {
86
+ S((n) => ({
87
87
  ...n,
88
88
  errors: {
89
89
  ...n.errors,
90
90
  [e]: t
91
91
  }
92
92
  }));
93
- }, []), k = o((e) => {
94
- x((t) => ({
93
+ }, []), A = o((e) => {
94
+ S((t) => ({
95
95
  ...t,
96
96
  touched: {
97
97
  ...t.touched,
98
98
  [e]: !0
99
99
  }
100
100
  }));
101
- }, []), A = o(async (e) => {
102
- let t = C.current[e];
101
+ }, []), j = o(async (e) => {
102
+ let t = w.current[e];
103
103
  if (!t) return !0;
104
- let n = w.current.values[e], r = await g(n, t.rules);
105
- return x((t) => ({
104
+ let n = T.current.values[e], r = await _(n, t.rules);
105
+ return S((t) => ({
106
106
  ...t,
107
107
  errors: {
108
108
  ...t.errors,
@@ -113,16 +113,16 @@ function b({ onSubmit: n, onValuesChange: i, initialValues: a = {}, layout: s =
113
113
  [e]: !0
114
114
  }
115
115
  })), r === null;
116
- }, []), j = o(async () => {
117
- let e = Object.keys(C.current), t = await Promise.all(e.map(async (e) => {
118
- let t = C.current[e], n = w.current.values[e];
116
+ }, []), M = o(async () => {
117
+ let e = Object.keys(w.current), t = await Promise.all(e.map(async (e) => {
118
+ let t = w.current[e], n = T.current.values[e];
119
119
  return {
120
120
  name: e,
121
- error: await g(n, t.rules)
121
+ error: await _(n, t.rules)
122
122
  };
123
123
  })), n = {}, r = {}, i = !1;
124
124
  for (let { name: e, error: a } of t) n[e] = a, r[e] = !0, a && (i = !0);
125
- if (x((e) => ({
125
+ if (S((e) => ({
126
126
  ...e,
127
127
  errors: {
128
128
  ...e.errors,
@@ -136,19 +136,19 @@ function b({ onSubmit: n, onValuesChange: i, initialValues: a = {}, layout: s =
136
136
  let e = Object.fromEntries(t.filter((e) => e.error).map((e) => [e.name, e.error]));
137
137
  return Promise.reject(e);
138
138
  }
139
- return { ...w.current.values };
140
- }, []), M = o(() => {
141
- x({
142
- values: { ...S.current },
139
+ return { ...T.current.values };
140
+ }, []), N = o(() => {
141
+ S({
142
+ values: { ...C.current },
143
143
  errors: {},
144
144
  touched: {}
145
145
  });
146
- }, []), N = c(() => ({
147
- getFieldValue: (e) => w.current.values[e],
148
- setFieldValue: D,
149
- getFieldsValue: () => ({ ...w.current.values }),
146
+ }, []), P = l(() => ({
147
+ getFieldValue: (e) => T.current.values[e],
148
+ setFieldValue: O,
149
+ getFieldsValue: () => ({ ...T.current.values }),
150
150
  setFieldsValue: (e) => {
151
- x((t) => {
151
+ S((t) => {
152
152
  let n = {
153
153
  ...t.values,
154
154
  ...e
@@ -159,77 +159,83 @@ function b({ onSubmit: n, onValuesChange: i, initialValues: a = {}, layout: s =
159
159
  };
160
160
  });
161
161
  },
162
- validateFields: j,
163
- validateField: A,
164
- resetFields: M,
165
- getFieldError: (e) => w.current.errors[e] ?? null,
166
- isFieldTouched: (e) => !!w.current.touched[e]
162
+ validateFields: M,
163
+ validateField: j,
164
+ resetFields: N,
165
+ getFieldError: (e) => T.current.errors[e] ?? null,
166
+ isFieldTouched: (e) => !!T.current.touched[e]
167
167
  }), [
168
- D,
169
- j,
170
- A,
168
+ O,
171
169
  M,
170
+ j,
171
+ N,
172
172
  i
173
- ]), P = o(async (e) => {
173
+ ]), F = o(async (e) => {
174
174
  e.preventDefault();
175
175
  try {
176
- let e = await j();
176
+ let e = await M();
177
177
  await n?.(e);
178
178
  } catch {}
179
- }, [j, n]), F = t(s === "inline" ? "flex flex-row flex-wrap items-end gap-4" : "flex flex-col gap-5"), I = v ?? N, L = c(() => ({
180
- state: b,
181
- initialValues: S.current,
179
+ }, [M, n]), I = t(s === "inline" ? "flex flex-row flex-wrap items-end gap-4" : "flex flex-col gap-5");
180
+ c(() => {
181
+ if (!y) return;
182
+ let e = y;
183
+ e.getFieldValue = P.getFieldValue, e.setFieldValue = P.setFieldValue, e.getFieldsValue = P.getFieldsValue, e.setFieldsValue = P.setFieldsValue, e.validateFields = P.validateFields, e.validateField = P.validateField, e.resetFields = P.resetFields, e.getFieldError = P.getFieldError, e.isFieldTouched = P.isFieldTouched;
184
+ }, [y, P]);
185
+ let L = y ?? P, R = l(() => ({
186
+ state: x,
187
+ initialValues: C.current,
182
188
  layout: s,
183
- disabled: d,
184
- fieldMeta: C,
185
- setFieldValue: D,
186
- setFieldError: O,
187
- setFieldTouched: k,
188
- registerField: T,
189
- unregisterField: E,
190
- validateField: A,
191
- instance: I
189
+ disabled: f,
190
+ fieldMeta: w,
191
+ setFieldValue: O,
192
+ setFieldError: k,
193
+ setFieldTouched: A,
194
+ registerField: E,
195
+ unregisterField: D,
196
+ validateField: j,
197
+ instance: L
192
198
  }), [
193
- b,
199
+ x,
194
200
  s,
195
- d,
196
- D,
201
+ f,
197
202
  O,
198
203
  k,
199
- T,
200
- E,
201
204
  A,
202
- I
205
+ E,
206
+ D,
207
+ j,
208
+ L
203
209
  ]);
204
- return /* @__PURE__ */ f(m.Provider, {
205
- value: L,
206
- children: /* @__PURE__ */ f("form", {
210
+ return /* @__PURE__ */ p(h.Provider, {
211
+ value: R,
212
+ children: /* @__PURE__ */ p("form", {
207
213
  noValidate: !0,
208
214
  role: "form",
209
215
  "aria-label": "Form",
210
- onSubmit: P,
211
- className: r(F, h),
216
+ onSubmit: F,
217
+ className: r(I, g),
212
218
  style: {
213
- color: y.text,
214
- ..._
219
+ color: b.text,
220
+ ...v
215
221
  },
216
- children: p
222
+ children: m
217
223
  })
218
224
  });
219
225
  }
220
- b.displayName = "TkxForm";
221
- function x({ name: a, label: s, rules: u, help: m, required: g, children: y, className: b, style: x }) {
222
- let S = e(), C = h(), { state: w, layout: T, disabled: E } = C, D = c(() => _(u, g), [u, g]), O = v(D), k = l({ rules: D });
226
+ x.displayName = "TkxForm";
227
+ function S({ name: a, label: s, rules: c, help: d, required: h, children: _, className: b, style: x }) {
228
+ let S = e(), C = g(), { state: w, layout: T, disabled: E } = C, D = l(() => v(c, h), [c, h]), O = y(D), k = u({ rules: D });
223
229
  k.current.rules = D;
224
- let A = l(!1);
225
- A.current ||= (C.registerField(a, k.current), !0), c(() => {
230
+ let A = u(!1);
231
+ A.current ||= (C.registerField(a, k.current), !0), l(() => {
226
232
  C.registerField(a, k.current);
227
233
  }, [
228
234
  D,
229
235
  a,
230
236
  C
231
237
  ]);
232
- let j = w.values[a], M = w.touched[a] ? w.errors[a] ?? null : null, N = M ? n(M) : null, P = s ? n(s) : void 0, F = m ? n(m) : void 0, I = o((e) => {
238
+ let j = w.values[a], M = w.touched[a] ? w.errors[a] ?? null : null, N = M ? n(M) : null, P = s ? n(s) : void 0, F = d ? n(d) : void 0, I = o((e) => {
233
239
  let t;
234
240
  if (typeof e == "object" && e && "target" in e) {
235
241
  let n = e.target;
@@ -238,7 +244,7 @@ function x({ name: a, label: s, rules: u, help: m, required: g, children: y, cla
238
244
  C.setFieldValue(a, t);
239
245
  }, [C, a]), L = o(() => {
240
246
  C.setFieldTouched(a), C.validateField(a);
241
- }, [C, a]), R = y, z = i(R, {
247
+ }, [C, a]), R = _, z = i(R, {
242
248
  value: j ?? "",
243
249
  onChange: I,
244
250
  onBlur: L,
@@ -247,27 +253,27 @@ function x({ name: a, label: s, rules: u, help: m, required: g, children: y, cla
247
253
  isRequired: O,
248
254
  disabled: E || R.props.disabled,
249
255
  name: a
250
- }), B = T === "horizontal", V = T === "inline", H = /* @__PURE__ */ f("svg", {
256
+ }), B = T === "horizontal", V = T === "inline", H = /* @__PURE__ */ p("svg", {
251
257
  width: "12",
252
258
  height: "12",
253
259
  viewBox: "0 0 24 24",
254
260
  fill: "currentColor",
255
261
  "aria-hidden": "true",
256
- children: /* @__PURE__ */ f("path", { d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" })
257
- }), U = P ? /* @__PURE__ */ p("label", {
262
+ children: /* @__PURE__ */ p("path", { d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" })
263
+ }), U = P ? /* @__PURE__ */ m("label", {
258
264
  className: t("text-sm font-medium font-sans", B ? "min-w-[140px] pt-2.5" : ""),
259
265
  style: { color: S.text },
260
- children: [P, O && /* @__PURE__ */ f("span", {
266
+ children: [P, O && /* @__PURE__ */ p("span", {
261
267
  "aria-hidden": "true",
262
268
  className: t("ml-1"),
263
269
  style: { color: S.danger },
264
270
  children: "*"
265
271
  })]
266
- }) : null, W = /* @__PURE__ */ p(d, { children: [F && !N && /* @__PURE__ */ f("span", {
272
+ }) : null, W = /* @__PURE__ */ m(f, { children: [F && !N && /* @__PURE__ */ p("span", {
267
273
  className: t("text-xs mt-0.5"),
268
274
  style: { color: S.textMuted },
269
275
  children: F
270
- }), N && /* @__PURE__ */ p("span", {
276
+ }), N && /* @__PURE__ */ m("span", {
271
277
  role: "alert",
272
278
  className: t("text-xs flex items-center gap-1 mt-0.5"),
273
279
  style: {
@@ -276,7 +282,7 @@ function x({ name: a, label: s, rules: u, help: m, required: g, children: y, cla
276
282
  },
277
283
  children: [H, N]
278
284
  })] });
279
- return V ? /* @__PURE__ */ p("div", {
285
+ return V ? /* @__PURE__ */ m("div", {
280
286
  className: r(t("flex flex-col gap-1"), b),
281
287
  style: x,
282
288
  children: [
@@ -284,14 +290,14 @@ function x({ name: a, label: s, rules: u, help: m, required: g, children: y, cla
284
290
  z,
285
291
  W
286
292
  ]
287
- }) : B ? /* @__PURE__ */ p("div", {
293
+ }) : B ? /* @__PURE__ */ m("div", {
288
294
  className: r(t("flex flex-row gap-4 items-start"), b),
289
295
  style: x,
290
- children: [U, /* @__PURE__ */ p("div", {
296
+ children: [U, /* @__PURE__ */ m("div", {
291
297
  className: t("flex flex-col gap-1 flex-1 min-w-0"),
292
298
  children: [z, W]
293
299
  })]
294
- }) : /* @__PURE__ */ p("div", {
300
+ }) : /* @__PURE__ */ m("div", {
295
301
  className: r(t("flex flex-col gap-1"), b),
296
302
  style: x,
297
303
  children: [
@@ -301,14 +307,14 @@ function x({ name: a, label: s, rules: u, help: m, required: g, children: y, cla
301
307
  ]
302
308
  });
303
309
  }
304
- x.displayName = "TkxFormField";
305
- var S = !1;
306
- function C() {
307
- if (S || typeof document > "u") return;
308
- S = !0;
310
+ S.displayName = "TkxFormField";
311
+ var C = !1;
312
+ function w() {
313
+ if (C || typeof document > "u") return;
314
+ C = !0;
309
315
  let e = document.createElement("style");
310
316
  e.setAttribute("data-tkx-form", ""), e.textContent = "\n @keyframes tkxFormErrorReveal {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n ", document.head.appendChild(e);
311
317
  }
312
- C();
318
+ w();
313
319
  //#endregion
314
- export { x as n, y as r, b as t };
320
+ export { S as n, b as r, x as t };
@@ -1,4 +1,4 @@
1
- require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./tkx-0oAwZqgL.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.createContext)(null);function a(){let e=(0,n.useContext)(i);if(!e)throw Error(`TkxFormField must be used inside a <TkxForm>. Wrap your fields in a TkxForm component.`);return e}async function o(e,t){for(let n of t){if(n.required&&(e==null||e===``||Array.isArray(e)&&e.length===0))return n.message??`This field is required`;if(!(e==null||e===``)){if(n.min!==void 0){if(typeof e==`string`&&e.length<n.min)return n.message??`Must be at least ${n.min} characters`;if(typeof e==`number`&&e<n.min)return n.message??`Must be at least ${n.min}`}if(n.max!==void 0){if(typeof e==`string`&&e.length>n.max)return n.message??`Must be no more than ${n.max} characters`;if(typeof e==`number`&&e>n.max)return n.message??`Must be no more than ${n.max}`}if(n.pattern&&typeof e==`string`&&!n.pattern.test(e))return n.message??`Invalid format`;if(n.validator){let t=await n.validator(e);if(t)return t}}}return null}function s(e,t){let n=e?[...e]:[];return t&&!n.some(e=>e.required)&&n.unshift({required:!0,message:`This field is required`}),n}function c(e){return e.some(e=>e.required)}function l(){let e=(0,n.useContext)(i),t=(0,n.useRef)({}),r=(0,n.useRef)({}),a=(0,n.useRef)({}),o=(0,n.useMemo)(()=>({getFieldValue:e=>t.current[e],setFieldValue:(e,n)=>{t.current[e]=n},getFieldsValue:()=>({...t.current}),setFieldsValue:e=>{Object.assign(t.current,e)},validateFields:()=>Promise.resolve({...t.current}),validateField:e=>Promise.resolve(!0),resetFields:()=>{t.current={},r.current={},a.current={}},getFieldError:e=>r.current[e]??null,isFieldTouched:e=>a.current[e]??!1}),[]);return e?e.instance:o}function u({onSubmit:a,onValuesChange:s,initialValues:c={},layout:l=`vertical`,disabled:u=!1,children:d,className:f,style:p,form:m}){let h=e.f(),[g,_]=(0,n.useState)({values:{...c},errors:{},touched:{}}),v=(0,n.useRef)(c),y=(0,n.useRef)({}),b=(0,n.useRef)(g);b.current=g;let x=(0,n.useCallback)((e,t)=>{y.current[e]=t},[]),S=(0,n.useCallback)(e=>{delete y.current[e]},[]),C=(0,n.useCallback)((e,t)=>{_(n=>{let r={...n,values:{...n.values,[e]:t}};return s?.({[e]:t},r.values),r})},[s]),w=(0,n.useCallback)((e,t)=>{_(n=>({...n,errors:{...n.errors,[e]:t}}))},[]),T=(0,n.useCallback)(e=>{_(t=>({...t,touched:{...t.touched,[e]:!0}}))},[]),E=(0,n.useCallback)(async e=>{let t=y.current[e];if(!t)return!0;let n=b.current.values[e],r=await o(n,t.rules);return _(t=>({...t,errors:{...t.errors,[e]:r},touched:{...t.touched,[e]:!0}})),r===null},[]),D=(0,n.useCallback)(async()=>{let e=Object.keys(y.current),t=await Promise.all(e.map(async e=>{let t=y.current[e],n=b.current.values[e];return{name:e,error:await o(n,t.rules)}})),n={},r={},i=!1;for(let{name:e,error:a}of t)n[e]=a,r[e]=!0,a&&(i=!0);if(_(e=>({...e,errors:{...e.errors,...n},touched:{...e.touched,...r}})),i){let e=Object.fromEntries(t.filter(e=>e.error).map(e=>[e.name,e.error]));return Promise.reject(e)}return{...b.current.values}},[]),O=(0,n.useCallback)(()=>{_({values:{...v.current},errors:{},touched:{}})},[]),k=(0,n.useMemo)(()=>({getFieldValue:e=>b.current.values[e],setFieldValue:C,getFieldsValue:()=>({...b.current.values}),setFieldsValue:e=>{_(t=>{let n={...t.values,...e};return s?.(e,n),{...t,values:n}})},validateFields:D,validateField:E,resetFields:O,getFieldError:e=>b.current.errors[e]??null,isFieldTouched:e=>!!b.current.touched[e]}),[C,D,E,O,s]),A=(0,n.useCallback)(async e=>{e.preventDefault();try{let e=await D();await a?.(e)}catch{}},[D,a]),j=l===`inline`?t.a(`flex flex-row flex-wrap items-end gap-4`):t.a(`flex flex-col gap-5`),M=m??k,N=(0,n.useMemo)(()=>({state:g,initialValues:v.current,layout:l,disabled:u,fieldMeta:y,setFieldValue:C,setFieldError:w,setFieldTouched:T,registerField:x,unregisterField:S,validateField:E,instance:M}),[g,l,u,C,w,T,x,S,E,M]);return(0,r.jsx)(i.Provider,{value:N,children:(0,r.jsx)(`form`,{noValidate:!0,role:`form`,"aria-label":`Form`,onSubmit:A,className:t.t(j,f),style:{color:h.text,...p},children:d})})}u.displayName=`TkxForm`;function d({name:i,label:o,rules:l,help:u,required:d,children:f,className:p,style:m}){let h=e.f(),g=a(),{state:_,layout:v,disabled:y}=g,b=(0,n.useMemo)(()=>s(l,d),[l,d]),x=c(b),S=(0,n.useRef)({rules:b});S.current.rules=b;let C=(0,n.useRef)(!1);C.current||=(g.registerField(i,S.current),!0),(0,n.useMemo)(()=>{g.registerField(i,S.current)},[b,i,g]);let w=_.values[i],T=_.touched[i]?_.errors[i]??null:null,E=T?t.m(T):null,D=o?t.m(o):void 0,O=u?t.m(u):void 0,k=(0,n.useCallback)(e=>{let t;if(typeof e==`object`&&e&&`target`in e){let n=e.target;t=n.type===`checkbox`?n.checked:n.value}else t=e;g.setFieldValue(i,t)},[g,i]),A=(0,n.useCallback)(()=>{g.setFieldTouched(i),g.validateField(i)},[g,i]),j=f,M=(0,n.cloneElement)(j,{value:w??``,onChange:k,onBlur:A,error:E??void 0,isInvalid:!!E,isRequired:x,disabled:y||j.props.disabled,name:i}),N=v===`horizontal`,P=v===`inline`,F=(0,r.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,r.jsx)(`path`,{d:`M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z`})}),I=D?(0,r.jsxs)(`label`,{className:t.a(`text-sm font-medium font-sans`,N?`min-w-[140px] pt-2.5`:``),style:{color:h.text},children:[D,x&&(0,r.jsx)(`span`,{"aria-hidden":`true`,className:t.a(`ml-1`),style:{color:h.danger},children:`*`})]}):null,L=(0,r.jsxs)(r.Fragment,{children:[O&&!E&&(0,r.jsx)(`span`,{className:t.a(`text-xs mt-0.5`),style:{color:h.textMuted},children:O}),E&&(0,r.jsxs)(`span`,{role:`alert`,className:t.a(`text-xs flex items-center gap-1 mt-0.5`),style:{color:h.danger,animation:`tkxFormErrorReveal 200ms ease-out`},children:[F,E]})]});return P?(0,r.jsxs)(`div`,{className:t.t(t.a(`flex flex-col gap-1`),p),style:m,children:[I,M,L]}):N?(0,r.jsxs)(`div`,{className:t.t(t.a(`flex flex-row gap-4 items-start`),p),style:m,children:[I,(0,r.jsxs)(`div`,{className:t.a(`flex flex-col gap-1 flex-1 min-w-0`),children:[M,L]})]}):(0,r.jsxs)(`div`,{className:t.t(t.a(`flex flex-col gap-1`),p),style:m,children:[I,M,L]})}d.displayName=`TkxFormField`;var f=!1;function p(){if(f||typeof document>`u`)return;f=!0;let e=document.createElement(`style`);e.setAttribute(`data-tkx-form`,``),e.textContent=`
1
+ require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./tkx-BoP5V5zy.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.createContext)(null);function a(){let e=(0,n.useContext)(i);if(!e)throw Error(`TkxFormField must be used inside a <TkxForm>. Wrap your fields in a TkxForm component.`);return e}async function o(e,t){for(let n of t){if(n.required&&(e==null||e===``||Array.isArray(e)&&e.length===0))return n.message??`This field is required`;if(!(e==null||e===``)){if(n.min!==void 0){if(typeof e==`string`&&e.length<n.min)return n.message??`Must be at least ${n.min} characters`;if(typeof e==`number`&&e<n.min)return n.message??`Must be at least ${n.min}`}if(n.max!==void 0){if(typeof e==`string`&&e.length>n.max)return n.message??`Must be no more than ${n.max} characters`;if(typeof e==`number`&&e>n.max)return n.message??`Must be no more than ${n.max}`}if(n.pattern&&typeof e==`string`&&!n.pattern.test(e))return n.message??`Invalid format`;if(n.validator){let t=await n.validator(e);if(t)return t}}}return null}function s(e,t){let n=e?[...e]:[];return t&&!n.some(e=>e.required)&&n.unshift({required:!0,message:`This field is required`}),n}function c(e){return e.some(e=>e.required)}function l(){let e=(0,n.useContext)(i),t=(0,n.useRef)({}),r=(0,n.useRef)({}),a=(0,n.useRef)({}),o=(0,n.useMemo)(()=>({getFieldValue:e=>t.current[e],setFieldValue:(e,n)=>{t.current[e]=n},getFieldsValue:()=>({...t.current}),setFieldsValue:e=>{Object.assign(t.current,e)},validateFields:()=>Promise.resolve({...t.current}),validateField:e=>Promise.resolve(!0),resetFields:()=>{t.current={},r.current={},a.current={}},getFieldError:e=>r.current[e]??null,isFieldTouched:e=>a.current[e]??!1}),[]);return e?e.instance:o}function u({onSubmit:a,onValuesChange:s,initialValues:c={},layout:l=`vertical`,disabled:u=!1,children:d,className:f,style:p,form:m}){let h=e.f(),[g,_]=(0,n.useState)({values:{...c},errors:{},touched:{}}),v=(0,n.useRef)(c),y=(0,n.useRef)({}),b=(0,n.useRef)(g);b.current=g;let x=(0,n.useCallback)((e,t)=>{y.current[e]=t},[]),S=(0,n.useCallback)(e=>{delete y.current[e]},[]),C=(0,n.useCallback)((e,t)=>{_(n=>{let r={...n,values:{...n.values,[e]:t}};return s?.({[e]:t},r.values),r})},[s]),w=(0,n.useCallback)((e,t)=>{_(n=>({...n,errors:{...n.errors,[e]:t}}))},[]),T=(0,n.useCallback)(e=>{_(t=>({...t,touched:{...t.touched,[e]:!0}}))},[]),E=(0,n.useCallback)(async e=>{let t=y.current[e];if(!t)return!0;let n=b.current.values[e],r=await o(n,t.rules);return _(t=>({...t,errors:{...t.errors,[e]:r},touched:{...t.touched,[e]:!0}})),r===null},[]),D=(0,n.useCallback)(async()=>{let e=Object.keys(y.current),t=await Promise.all(e.map(async e=>{let t=y.current[e],n=b.current.values[e];return{name:e,error:await o(n,t.rules)}})),n={},r={},i=!1;for(let{name:e,error:a}of t)n[e]=a,r[e]=!0,a&&(i=!0);if(_(e=>({...e,errors:{...e.errors,...n},touched:{...e.touched,...r}})),i){let e=Object.fromEntries(t.filter(e=>e.error).map(e=>[e.name,e.error]));return Promise.reject(e)}return{...b.current.values}},[]),O=(0,n.useCallback)(()=>{_({values:{...v.current},errors:{},touched:{}})},[]),k=(0,n.useMemo)(()=>({getFieldValue:e=>b.current.values[e],setFieldValue:C,getFieldsValue:()=>({...b.current.values}),setFieldsValue:e=>{_(t=>{let n={...t.values,...e};return s?.(e,n),{...t,values:n}})},validateFields:D,validateField:E,resetFields:O,getFieldError:e=>b.current.errors[e]??null,isFieldTouched:e=>!!b.current.touched[e]}),[C,D,E,O,s]),A=(0,n.useCallback)(async e=>{e.preventDefault();try{let e=await D();await a?.(e)}catch{}},[D,a]),j=l===`inline`?t.a(`flex flex-row flex-wrap items-end gap-4`):t.a(`flex flex-col gap-5`);(0,n.useEffect)(()=>{if(!m)return;let e=m;e.getFieldValue=k.getFieldValue,e.setFieldValue=k.setFieldValue,e.getFieldsValue=k.getFieldsValue,e.setFieldsValue=k.setFieldsValue,e.validateFields=k.validateFields,e.validateField=k.validateField,e.resetFields=k.resetFields,e.getFieldError=k.getFieldError,e.isFieldTouched=k.isFieldTouched},[m,k]);let M=m??k,N=(0,n.useMemo)(()=>({state:g,initialValues:v.current,layout:l,disabled:u,fieldMeta:y,setFieldValue:C,setFieldError:w,setFieldTouched:T,registerField:x,unregisterField:S,validateField:E,instance:M}),[g,l,u,C,w,T,x,S,E,M]);return(0,r.jsx)(i.Provider,{value:N,children:(0,r.jsx)(`form`,{noValidate:!0,role:`form`,"aria-label":`Form`,onSubmit:A,className:t.t(j,f),style:{color:h.text,...p},children:d})})}u.displayName=`TkxForm`;function d({name:i,label:o,rules:l,help:u,required:d,children:f,className:p,style:m}){let h=e.f(),g=a(),{state:_,layout:v,disabled:y}=g,b=(0,n.useMemo)(()=>s(l,d),[l,d]),x=c(b),S=(0,n.useRef)({rules:b});S.current.rules=b;let C=(0,n.useRef)(!1);C.current||=(g.registerField(i,S.current),!0),(0,n.useMemo)(()=>{g.registerField(i,S.current)},[b,i,g]);let w=_.values[i],T=_.touched[i]?_.errors[i]??null:null,E=T?t.m(T):null,D=o?t.m(o):void 0,O=u?t.m(u):void 0,k=(0,n.useCallback)(e=>{let t;if(typeof e==`object`&&e&&`target`in e){let n=e.target;t=n.type===`checkbox`?n.checked:n.value}else t=e;g.setFieldValue(i,t)},[g,i]),A=(0,n.useCallback)(()=>{g.setFieldTouched(i),g.validateField(i)},[g,i]),j=f,M=(0,n.cloneElement)(j,{value:w??``,onChange:k,onBlur:A,error:E??void 0,isInvalid:!!E,isRequired:x,disabled:y||j.props.disabled,name:i}),N=v===`horizontal`,P=v===`inline`,F=(0,r.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,r.jsx)(`path`,{d:`M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z`})}),I=D?(0,r.jsxs)(`label`,{className:t.a(`text-sm font-medium font-sans`,N?`min-w-[140px] pt-2.5`:``),style:{color:h.text},children:[D,x&&(0,r.jsx)(`span`,{"aria-hidden":`true`,className:t.a(`ml-1`),style:{color:h.danger},children:`*`})]}):null,L=(0,r.jsxs)(r.Fragment,{children:[O&&!E&&(0,r.jsx)(`span`,{className:t.a(`text-xs mt-0.5`),style:{color:h.textMuted},children:O}),E&&(0,r.jsxs)(`span`,{role:`alert`,className:t.a(`text-xs flex items-center gap-1 mt-0.5`),style:{color:h.danger,animation:`tkxFormErrorReveal 200ms ease-out`},children:[F,E]})]});return P?(0,r.jsxs)(`div`,{className:t.t(t.a(`flex flex-col gap-1`),p),style:m,children:[I,M,L]}):N?(0,r.jsxs)(`div`,{className:t.t(t.a(`flex flex-row gap-4 items-start`),p),style:m,children:[I,(0,r.jsxs)(`div`,{className:t.a(`flex flex-col gap-1 flex-1 min-w-0`),children:[M,L]})]}):(0,r.jsxs)(`div`,{className:t.t(t.a(`flex flex-col gap-1`),p),style:m,children:[I,M,L]})}d.displayName=`TkxFormField`;var f=!1;function p(){if(f||typeof document>`u`)return;f=!0;let e=document.createElement(`style`);e.setAttribute(`data-tkx-form`,``),e.textContent=`
2
2
  @keyframes tkxFormErrorReveal {
3
3
  from {
4
4
  opacity: 0;
package/dist/charts.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./hooks-mivgRljH.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`),i=require(`recharts`);function a(e){return[e.primary,e.secondary,e.info,e.success,e.warning,e.danger,e.primary+`aa`,e.secondary+`aa`,e.info+`aa`,e.success+`aa`]}var o={top:10,right:30,bottom:10,left:0};function s(e){return{contentStyle:{backgroundColor:e.surface,border:`1px solid ${e.border}`,borderRadius:8,boxShadow:`0 4px 12px rgba(0,0,0,0.15)`,color:e.text,fontSize:13},labelStyle:{color:e.textMuted,fontWeight:600,marginBottom:4},itemStyle:{color:e.text},cursor:{fill:`${e.primary}15`}}}function c({data:t,series:n,xKey:c,height:l=300,margin:u=o,showGrid:d=!0,showLegend:f=!0,showTooltip:p=!0,smooth:m=!0,xTickFormatter:h,yTickFormatter:g,yDomain:_,ariaLabel:v=`Area chart`}){let y=e.f(),b=a(y),x=s(y),S={fill:y.textMuted,fontSize:12};return(0,r.jsx)(`div`,{role:`img`,"aria-label":v,style:{width:`100%`,height:l},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.AreaChart,{data:t,margin:u,children:[d&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:y.border,vertical:!1}),(0,r.jsx)(i.XAxis,{dataKey:c,tick:S,axisLine:{stroke:y.border},tickLine:!1,tickFormatter:h}),(0,r.jsx)(i.YAxis,{tick:S,axisLine:!1,tickLine:!1,tickFormatter:g,domain:_}),p&&(0,r.jsx)(i.Tooltip,{contentStyle:x.contentStyle,labelStyle:x.labelStyle,itemStyle:x.itemStyle,cursor:x.cursor}),f&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:y.textMuted,paddingTop:8}}),n.map((e,t)=>{let n=e.color??b[t%b.length];return(0,r.jsx)(i.Area,{type:m?`monotone`:`linear`,dataKey:e.key,name:e.label??e.key,stroke:n,strokeWidth:2,fill:n,fillOpacity:e.fillOpacity??.2,stackId:e.stacked?`stack`:void 0,dot:!1,activeDot:{r:5,strokeWidth:0}},e.key)})]})})})}function l({data:t,series:n,xKey:c,height:l=300,margin:u=o,showGrid:d=!0,showLegend:f=!0,showTooltip:p=!0,layout:m=`horizontal`,barSize:h,xTickFormatter:g,yTickFormatter:_,ariaLabel:v=`Bar chart`}){let y=e.f(),b=a(y),x=s(y),S={fill:y.textMuted,fontSize:12},C=m===`vertical`;return(0,r.jsx)(`div`,{role:`img`,"aria-label":v,style:{width:`100%`,height:l},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.BarChart,{data:t,margin:u,layout:m,children:[d&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:y.border,vertical:C,horizontal:!C}),C?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.YAxis,{dataKey:c,type:`category`,tick:S,axisLine:!1,tickLine:!1,tickFormatter:g,width:100}),(0,r.jsx)(i.XAxis,{type:`number`,tick:S,axisLine:{stroke:y.border},tickLine:!1,tickFormatter:_})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.XAxis,{dataKey:c,tick:S,axisLine:{stroke:y.border},tickLine:!1,tickFormatter:g}),(0,r.jsx)(i.YAxis,{tick:S,axisLine:!1,tickLine:!1,tickFormatter:_})]}),p&&(0,r.jsx)(i.Tooltip,{contentStyle:x.contentStyle,labelStyle:x.labelStyle,itemStyle:x.itemStyle,cursor:{fill:`${y.surfaceAlt}`}}),f&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:y.textMuted,paddingTop:8}}),n.map((e,t)=>{let n=e.color??b[t%b.length];return(0,r.jsx)(i.Bar,{dataKey:e.key,name:e.label??e.key,fill:n,stackId:e.stackId,maxBarSize:h??40,radius:e.radius??[4,4,0,0]},e.key)})]})})})}function u({data:t,series:n,xKey:c,height:l=300,margin:u=o,showGrid:d=!0,showLegend:f=!0,showTooltip:p=!0,smooth:m=!0,referenceLines:h=[],xTickFormatter:g,yTickFormatter:_,yDomain:v,connectNulls:y=!1,ariaLabel:b=`Line chart`}){let x=e.f(),S=a(x),C=s(x),w={fill:x.textMuted,fontSize:12};return(0,r.jsx)(`div`,{role:`img`,"aria-label":b,style:{width:`100%`,height:l},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.LineChart,{data:t,margin:u,children:[d&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:x.border,vertical:!1}),(0,r.jsx)(i.XAxis,{dataKey:c,tick:w,axisLine:{stroke:x.border},tickLine:!1,tickFormatter:g}),(0,r.jsx)(i.YAxis,{tick:w,axisLine:!1,tickLine:!1,tickFormatter:_,domain:v}),p&&(0,r.jsx)(i.Tooltip,{contentStyle:C.contentStyle,labelStyle:C.labelStyle,itemStyle:C.itemStyle,cursor:{stroke:x.border,strokeWidth:1}}),f&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:x.textMuted,paddingTop:8}}),h.map((e,t)=>(0,r.jsx)(i.ReferenceLine,{y:e.y,x:e.x,label:e.label?{value:e.label,fill:x.textMuted,fontSize:11}:void 0,stroke:e.color??x.border,strokeDasharray:e.dashed?`4 4`:void 0},t)),n.map((e,t)=>{let n=e.color??S[t%S.length];return(0,r.jsx)(i.Line,{type:m?`monotone`:`linear`,dataKey:e.key,name:e.label??e.key,stroke:n,strokeWidth:e.strokeWidth??2,strokeDasharray:e.dashed?`6 3`:void 0,dot:e.dot??!1,activeDot:{r:5,strokeWidth:0,fill:n},connectNulls:y},e.key)})]})})})}function d({data:o,height:c=300,showLegend:l=!0,showTooltip:u=!0,showLabels:d=!1,outerRadius:f=`70%`,startAngle:p=90,ariaLabel:m=`Pie chart`}){let h=e.f(),g=t.o(),_=a(h),v=s(h),[y,b]=(0,n.useState)(g);return(0,n.useEffect)(()=>{if(g){b(!0);return}let e=requestAnimationFrame(()=>b(!0));return()=>cancelAnimationFrame(e)},[g]),(0,r.jsx)(`div`,{role:`img`,"aria-label":m,style:{width:`100%`,minWidth:240,height:c,position:`relative`},children:y&&(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,debounce:50,children:(0,r.jsxs)(i.PieChart,{children:[u&&(0,r.jsx)(i.Tooltip,{contentStyle:v.contentStyle,labelStyle:v.labelStyle,itemStyle:v.itemStyle}),l&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:h.textMuted}}),(0,r.jsx)(i.Pie,{data:o,dataKey:`value`,nameKey:`name`,outerRadius:f,startAngle:p,endAngle:p-360,label:d?({name:e,percent:t})=>`${e} (${((t??0)*100).toFixed(0)}%)`:void 0,labelLine:d,strokeWidth:2,stroke:h.bg,children:o.map((e,t)=>(0,r.jsx)(i.Cell,{fill:e.color??_[t%_.length]},e.name))})]})})})}function f({data:o,height:c=300,showLegend:l=!0,showTooltip:u=!0,centerLabel:d,centerSublabel:f,innerRadius:p=`55%`,outerRadius:m=`75%`,startAngle:h=90,ariaLabel:g=`Donut chart`}){let _=e.f(),v=t.o(),y=a(_),b=s(_),[x,S]=(0,n.useState)(v);return(0,n.useEffect)(()=>{if(v){S(!0);return}let e=requestAnimationFrame(()=>S(!0));return()=>cancelAnimationFrame(e)},[v]),(0,r.jsxs)(`div`,{role:`img`,"aria-label":g,style:{width:`100%`,minWidth:240,height:c,position:`relative`},children:[x&&(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,debounce:50,children:(0,r.jsxs)(i.PieChart,{children:[u&&(0,r.jsx)(i.Tooltip,{contentStyle:b.contentStyle,labelStyle:b.labelStyle,itemStyle:b.itemStyle}),l&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:_.textMuted}}),(0,r.jsx)(i.Pie,{data:o,dataKey:`value`,nameKey:`name`,innerRadius:p,outerRadius:m,startAngle:h,endAngle:h-360,strokeWidth:3,stroke:_.bg,label:!1,labelLine:!1,children:o.map((e,t)=>(0,r.jsx)(i.Cell,{fill:e.color??y[t%y.length]},e.name))}),(d||f)&&(0,r.jsx)(`text`,{})]})}),(d||f)&&(0,r.jsxs)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`,marginTop:l?-24:0},children:[d&&(0,r.jsx)(`span`,{style:{fontSize:22,fontWeight:700,color:_.text,lineHeight:1},children:d}),f&&(0,r.jsx)(`span`,{style:{fontSize:13,color:_.textMuted,marginTop:4},children:f})]})]})}function p({series:t,height:n=300,margin:c=o,showGrid:l=!0,showLegend:u=!0,showTooltip:d=!0,xTickFormatter:f,yTickFormatter:p,zRange:m=[20,400],ariaLabel:h=`Scatter chart`}){let g=e.f(),_=a(g),v=s(g),y={fill:g.textMuted,fontSize:12};return(0,r.jsx)(`div`,{role:`img`,"aria-label":h,style:{width:`100%`,height:n},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.ScatterChart,{margin:c,children:[l&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:g.border}),(0,r.jsx)(i.XAxis,{type:`number`,dataKey:`x`,tick:y,axisLine:{stroke:g.border},tickLine:!1,tickFormatter:f}),(0,r.jsx)(i.YAxis,{type:`number`,dataKey:`y`,tick:y,axisLine:!1,tickLine:!1,tickFormatter:p}),(0,r.jsx)(i.ZAxis,{type:`number`,dataKey:`z`,range:m}),d&&(0,r.jsx)(i.Tooltip,{contentStyle:v.contentStyle,labelStyle:v.labelStyle,itemStyle:v.itemStyle,cursor:{strokeDasharray:`3 3`}}),u&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:g.textMuted,paddingTop:8}}),t.map((e,t)=>(0,r.jsx)(i.Scatter,{name:e.name,data:e.data,fill:e.color??_[t%_.length],fillOpacity:.8},e.name??t))]})})})}function m({data:t,series:n,angleKey:o,height:c=300,showLegend:l=!0,showTooltip:u=!0,outerRadius:d=`70%`,ariaLabel:f=`Radar chart`}){let p=e.f(),m=a(p),h=s(p);return(0,r.jsx)(`div`,{role:`img`,"aria-label":f,style:{width:`100%`,height:c},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.RadarChart,{data:t,outerRadius:d,children:[(0,r.jsx)(i.PolarGrid,{stroke:p.border}),(0,r.jsx)(i.PolarAngleAxis,{dataKey:o,tick:{fill:p.textMuted,fontSize:12}}),(0,r.jsx)(i.PolarRadiusAxis,{tick:{fill:p.textMuted,fontSize:10},axisLine:!1,tickLine:!1}),u&&(0,r.jsx)(i.Tooltip,{contentStyle:h.contentStyle,labelStyle:h.labelStyle,itemStyle:h.itemStyle}),l&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:p.textMuted}}),n.map((e,t)=>{let n=e.color??m[t%m.length];return(0,r.jsx)(i.Radar,{name:e.label??e.key,dataKey:e.key,stroke:n,fill:n,fillOpacity:e.fillOpacity??.2,strokeWidth:2},e.key)})]})})})}exports.TkxAreaChart=c,exports.TkxBarChart=l,exports.TkxDonutChart=f,exports.TkxLineChart=u,exports.TkxPieChart=d,exports.TkxRadarChart=m,exports.TkxScatterChart=p;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./hooks-mivgRljH.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`),i=require(`recharts`);function a(e){return[e.primary,e.secondary,e.info,e.success,e.warning,e.danger,e.primary+`aa`,e.secondary+`aa`,e.info+`aa`,e.success+`aa`]}var o={top:10,right:30,bottom:10,left:0};function s(e){return{contentStyle:{backgroundColor:e.surface,border:`1px solid ${e.border}`,borderRadius:8,boxShadow:`0 4px 12px rgba(0,0,0,0.15)`,color:e.text,fontSize:13},labelStyle:{color:e.textMuted,fontWeight:600,marginBottom:4},itemStyle:{color:e.text},cursor:{fill:`${e.primary}15`}}}function c({data:t,series:n,xKey:c,height:l=300,margin:u=o,showGrid:d=!0,showLegend:f=!0,showTooltip:p=!0,smooth:m=!0,xTickFormatter:h,yTickFormatter:g,yDomain:_,ariaLabel:v=`Area chart`}){let y=e.f(),b=a(y),x=s(y),S={fill:y.textMuted,fontSize:12};return(0,r.jsx)(`div`,{role:`img`,"aria-label":v,style:{width:`100%`,height:l},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.AreaChart,{data:t,margin:u,children:[d&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:y.border,vertical:!1}),(0,r.jsx)(i.XAxis,{dataKey:c,tick:S,axisLine:{stroke:y.border},tickLine:!1,tickFormatter:h}),(0,r.jsx)(i.YAxis,{tick:S,axisLine:!1,tickLine:!1,tickFormatter:g,domain:_}),p&&(0,r.jsx)(i.Tooltip,{contentStyle:x.contentStyle,labelStyle:x.labelStyle,itemStyle:x.itemStyle,cursor:x.cursor}),f&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:y.textMuted,paddingTop:8}}),n.map((e,t)=>{let n=e.color??b[t%b.length];return(0,r.jsx)(i.Area,{type:m?`monotone`:`linear`,dataKey:e.key,name:e.label??e.key,stroke:n,strokeWidth:2,fill:n,fillOpacity:e.fillOpacity??.2,stackId:e.stacked?`stack`:void 0,dot:!1,activeDot:{r:5,strokeWidth:0}},e.key)})]})})})}function l({data:t,series:n,xKey:c,height:l=300,margin:u=o,showGrid:d=!0,showLegend:f=!0,showTooltip:p=!0,layout:m=`horizontal`,barSize:h,xTickFormatter:g,yTickFormatter:_,ariaLabel:v=`Bar chart`}){let y=e.f(),b=a(y),x=s(y),S={fill:y.textMuted,fontSize:12},C=m===`vertical`;return(0,r.jsx)(`div`,{role:`img`,"aria-label":v,style:{width:`100%`,height:l},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.BarChart,{data:t,margin:u,layout:m,children:[d&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:y.border,vertical:C,horizontal:!C}),C?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.YAxis,{dataKey:c,type:`category`,tick:S,axisLine:!1,tickLine:!1,tickFormatter:g,width:100}),(0,r.jsx)(i.XAxis,{type:`number`,tick:S,axisLine:{stroke:y.border},tickLine:!1,tickFormatter:_})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.XAxis,{dataKey:c,tick:S,axisLine:{stroke:y.border},tickLine:!1,tickFormatter:g}),(0,r.jsx)(i.YAxis,{tick:S,axisLine:!1,tickLine:!1,tickFormatter:_})]}),p&&(0,r.jsx)(i.Tooltip,{contentStyle:x.contentStyle,labelStyle:x.labelStyle,itemStyle:x.itemStyle,cursor:{fill:`${y.surfaceAlt}`}}),f&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:y.textMuted,paddingTop:8}}),n.map((e,t)=>{let n=e.color??b[t%b.length];return(0,r.jsx)(i.Bar,{dataKey:e.key,name:e.label??e.key,fill:n,stackId:e.stackId,maxBarSize:h??40,radius:e.radius??[4,4,0,0]},e.key)})]})})})}function u({data:t,series:n,xKey:c,height:l=300,margin:u=o,showGrid:d=!0,showLegend:f=!0,showTooltip:p=!0,smooth:m=!0,referenceLines:h=[],xTickFormatter:g,yTickFormatter:_,yDomain:v,connectNulls:y=!1,ariaLabel:b=`Line chart`}){let x=e.f(),S=a(x),C=s(x),w={fill:x.textMuted,fontSize:12};return(0,r.jsx)(`div`,{role:`img`,"aria-label":b,style:{width:`100%`,height:l},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.LineChart,{data:t,margin:u,children:[d&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:x.border,vertical:!1}),(0,r.jsx)(i.XAxis,{dataKey:c,tick:w,axisLine:{stroke:x.border},tickLine:!1,tickFormatter:g}),(0,r.jsx)(i.YAxis,{tick:w,axisLine:!1,tickLine:!1,tickFormatter:_,domain:v}),p&&(0,r.jsx)(i.Tooltip,{contentStyle:C.contentStyle,labelStyle:C.labelStyle,itemStyle:C.itemStyle,cursor:{stroke:x.border,strokeWidth:1}}),f&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:x.textMuted,paddingTop:8}}),h.map((e,t)=>(0,r.jsx)(i.ReferenceLine,{y:e.y,x:e.x,label:e.label?{value:e.label,fill:x.textMuted,fontSize:11}:void 0,stroke:e.color??x.border,strokeDasharray:e.dashed?`4 4`:void 0},t)),n.map((e,t)=>{let n=e.color??S[t%S.length];return(0,r.jsx)(i.Line,{type:m?`monotone`:`linear`,dataKey:e.key,name:e.label??e.key,stroke:n,strokeWidth:e.strokeWidth??2,strokeDasharray:e.dashed?`6 3`:void 0,dot:e.dot??!1,activeDot:{r:5,strokeWidth:0,fill:n},connectNulls:y},e.key)})]})})})}function d({data:o,height:c=300,showLegend:l=!0,showTooltip:u=!0,showLabels:d=!1,outerRadius:f=`70%`,startAngle:p=90,ariaLabel:m=`Pie chart`}){let h=e.f(),g=t.o(),_=a(h),v=s(h),[y,b]=(0,n.useState)(g);return(0,n.useEffect)(()=>{if(g){b(!0);return}let e=requestAnimationFrame(()=>b(!0));return()=>cancelAnimationFrame(e)},[g]),(0,r.jsx)(`div`,{role:`img`,"aria-label":m,style:{width:`100%`,minWidth:240,height:c,position:`relative`},children:y&&(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,debounce:50,children:(0,r.jsxs)(i.PieChart,{children:[u&&(0,r.jsx)(i.Tooltip,{contentStyle:v.contentStyle,labelStyle:v.labelStyle,itemStyle:v.itemStyle}),l&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:h.textMuted}}),(0,r.jsx)(i.Pie,{data:o,dataKey:`value`,nameKey:`name`,outerRadius:f,startAngle:p,endAngle:p-360,label:d?({name:e,percent:t})=>`${e} (${((t??0)*100).toFixed(0)}%)`:void 0,labelLine:d,strokeWidth:2,stroke:h.bg,children:o.map((e,t)=>(0,r.jsx)(i.Cell,{fill:e.color??_[t%_.length]},e.name))})]})})})}function f({data:o,height:c=300,showLegend:l=!0,showTooltip:u=!0,centerLabel:d,centerSublabel:f,innerRadius:p=`55%`,outerRadius:m=`75%`,startAngle:h=90,ariaLabel:g=`Donut chart`}){let _=e.f(),v=t.o(),y=a(_),b=s(_),[x,S]=(0,n.useState)(v);return(0,n.useEffect)(()=>{if(v){S(!0);return}let e=requestAnimationFrame(()=>S(!0));return()=>cancelAnimationFrame(e)},[v]),(0,r.jsxs)(`div`,{role:`img`,"aria-label":g,style:{width:`100%`,minWidth:240,height:c,position:`relative`},children:[x&&(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,debounce:50,children:(0,r.jsxs)(i.PieChart,{children:[u&&(0,r.jsx)(i.Tooltip,{contentStyle:b.contentStyle,labelStyle:b.labelStyle,itemStyle:b.itemStyle}),l&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:_.textMuted}}),(0,r.jsx)(i.Pie,{data:o,dataKey:`value`,nameKey:`name`,innerRadius:p,outerRadius:m,startAngle:h,endAngle:h-360,strokeWidth:3,stroke:_.bg,label:!1,labelLine:!1,children:o.map((e,t)=>(0,r.jsx)(i.Cell,{fill:e.color??y[t%y.length]},e.name))}),(d||f)&&(0,r.jsx)(`text`,{})]})}),(d||f)&&(0,r.jsxs)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`,marginTop:l?-24:0},children:[d&&(0,r.jsx)(`span`,{style:{fontSize:22,fontWeight:700,color:_.text,lineHeight:1},children:d}),f&&(0,r.jsx)(`span`,{style:{fontSize:13,color:_.textMuted,marginTop:4},children:f})]})]})}function p({series:t,height:n=300,margin:c=o,showGrid:l=!0,showLegend:u=!0,showTooltip:d=!0,xTickFormatter:f,yTickFormatter:p,zRange:m=[20,400],ariaLabel:h=`Scatter chart`}){let g=e.f(),_=a(g),v=s(g),y={fill:g.textMuted,fontSize:12};return(0,r.jsx)(`div`,{role:`img`,"aria-label":h,style:{width:`100%`,height:n},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.ScatterChart,{margin:c,children:[l&&(0,r.jsx)(i.CartesianGrid,{strokeDasharray:`3 3`,stroke:g.border}),(0,r.jsx)(i.XAxis,{type:`number`,dataKey:`x`,tick:y,axisLine:{stroke:g.border},tickLine:!1,tickFormatter:f}),(0,r.jsx)(i.YAxis,{type:`number`,dataKey:`y`,tick:y,axisLine:!1,tickLine:!1,tickFormatter:p}),(0,r.jsx)(i.ZAxis,{type:`number`,dataKey:`z`,range:m}),d&&(0,r.jsx)(i.Tooltip,{contentStyle:v.contentStyle,labelStyle:v.labelStyle,itemStyle:v.itemStyle,cursor:{strokeDasharray:`3 3`}}),u&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:g.textMuted,paddingTop:8}}),t.map((e,t)=>(0,r.jsx)(i.Scatter,{name:e.name,data:e.data,fill:e.color??_[t%_.length],fillOpacity:.8},e.name??t))]})})})}function m({data:t,series:n,angleKey:o,height:c=300,showLegend:l=!0,showTooltip:u=!0,outerRadius:d=`70%`,ariaLabel:f=`Radar chart`}){let p=e.f(),m=a(p),h=s(p);return(0,r.jsx)(`div`,{role:`img`,"aria-label":f,style:{width:`100%`,height:c},children:(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:`100%`,children:(0,r.jsxs)(i.RadarChart,{data:t,outerRadius:d,children:[(0,r.jsx)(i.PolarGrid,{stroke:p.border}),(0,r.jsx)(i.PolarAngleAxis,{dataKey:o,tick:{fill:p.textMuted,fontSize:12}}),(0,r.jsx)(i.PolarRadiusAxis,{tick:{fill:p.textMuted,fontSize:10},axisLine:!1,tickLine:!1}),u&&(0,r.jsx)(i.Tooltip,{contentStyle:h.contentStyle,labelStyle:h.labelStyle,itemStyle:h.itemStyle}),l&&(0,r.jsx)(i.Legend,{wrapperStyle:{fontSize:13,color:p.textMuted}}),n.map((e,t)=>{let n=e.color??m[t%m.length];return(0,r.jsx)(i.Radar,{name:e.label??e.key,dataKey:e.key,stroke:n,fill:n,fillOpacity:e.fillOpacity??.2,strokeWidth:2},e.key)})]})})})}exports.TkxAreaChart=c,exports.TkxBarChart=l,exports.TkxDonutChart=f,exports.TkxLineChart=u,exports.TkxPieChart=d,exports.TkxRadarChart=m,exports.TkxScatterChart=p;
package/dist/charts.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { f as e } from "./themes-BbJanqiC.js";
2
3
  import { o as t } from "./hooks-6pRsPOyG.js";
3
4
  import { useEffect as n, useState as r } from "react";
package/dist/headless.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./tkx-0oAwZqgL.cjs`),n=require(`./hooks-mivgRljH.cjs`),r=require(`./TkxForm-1KDzoniV.cjs`);let i=require(`react`);function a(e=!1){let[t,n]=(0,i.useState)(e);return{isOpen:t,open:(0,i.useCallback)(()=>n(!0),[]),close:(0,i.useCallback)(()=>n(!1),[]),toggle:(0,i.useCallback)(()=>n(e=>!e),[])}}function o({count:e,initialIndex:t=0,orientation:n=`horizontal`,loop:r=!0}){let[a,o]=(0,i.useState)(t),s=(0,i.useRef)([]),c=(0,i.useCallback)(t=>{o(n=>{let i=n+t;return i=r?(i%e+e)%e:Math.max(0,Math.min(e-1,i)),requestAnimationFrame(()=>{s.current[i]?.focus()}),i})},[e,r]);return{focusedIndex:a,setFocusedIndex:o,getItemProps:(0,i.useCallback)(t=>({tabIndex:t===a?0:-1,"data-focused":t===a,onFocus:()=>o(t),onKeyDown:t=>{let r=n===`horizontal`||n===`both`,i=n===`vertical`||n===`both`;r&&t.key===`ArrowRight`&&(t.preventDefault(),c(1)),r&&t.key===`ArrowLeft`&&(t.preventDefault(),c(-1)),i&&t.key===`ArrowDown`&&(t.preventDefault(),c(1)),i&&t.key===`ArrowUp`&&(t.preventDefault(),c(-1)),t.key===`Home`&&(t.preventDefault(),o(0),requestAnimationFrame(()=>s.current[0]?.focus())),t.key===`End`&&(t.preventDefault(),o(e-1),requestAnimationFrame(()=>s.current[e-1]?.focus()))}}),[a,c,n,e])}}function s({initialValues:e,validate:t}){let[n,r]=(0,i.useState)({...e}),[a,o]=(0,i.useState)({}),[s,c]=(0,i.useState)({}),l=(0,i.useRef)(e),u=(0,i.useCallback)((e,t)=>{r(n=>({...n,[e]:t}))},[]),d=(0,i.useCallback)(e=>{r(t=>({...t,...e}))},[]),f=(0,i.useCallback)(e=>{c(t=>({...t,[e]:!0}))},[]),p=(0,i.useCallback)(()=>{if(!t)return!0;let e=t(n),r=Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null));return o(r),c(Object.fromEntries(Object.keys(n).map(e=>[e,!0]))),Object.keys(r).length===0},[n,t]),m=(0,i.useCallback)(()=>{r({...l.current}),o({}),c({})},[]);return{values:n,errors:a,touched:s,dirty:Object.keys(n).some(e=>n[e]!==l.current[e]),isValid:Object.keys(a).length===0,setValue:u,setValues:d,touchField:f,validate:p,reset:m,getFieldProps:(0,i.useCallback)(e=>({value:n[e],onChange:t=>{u(e,t.target.value)},onBlur:()=>f(e),"aria-invalid":s[e]&&a[e]?!0:void 0,"aria-describedby":a[e]?`${String(e)}-error`:void 0}),[n,a,s,u,f])}}function c({items:e,initialSelected:t=[],multiple:n=!0}){let[r,a]=(0,i.useState)(()=>new Set(t)),o=(0,i.useCallback)(e=>{a(t=>{let r=new Set(t);return r.has(e)?r.delete(e):(n||r.clear(),r.add(e)),r})},[n]),s=(0,i.useCallback)(e=>{a(t=>{if(t.has(e))return t;let r=n?new Set(t):new Set;return r.add(e),r})},[n]),c=(0,i.useCallback)(e=>{a(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},[]),l=(0,i.useCallback)(()=>{n&&a(new Set(e))},[e,n]),u=(0,i.useCallback)(()=>a(new Set),[]),d=(0,i.useCallback)(()=>{a(t=>e.every(e=>t.has(e))?new Set:new Set(e))},[e]),f=e.length>0&&e.every(e=>r.has(e)),p=e.some(e=>r.has(e)),m=(0,i.useMemo)(()=>Array.from(r),[r]);return{selected:r,isSelected:(0,i.useCallback)(e=>r.has(e),[r]),toggle:o,select:s,deselect:c,selectAll:l,deselectAll:u,toggleAll:d,allSelected:f,someSelected:p,selectedCount:r.size,selectedArray:m}}function l(e,t){let[n,r]=(0,i.useState)(e);return(0,i.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}function u(e,t){let[n,r]=(0,i.useState)(e),a=(0,i.useRef)(Date.now());return(0,i.useEffect)(()=>{let n=Date.now(),i=t-(n-a.current);if(i<=0)a.current=n,r(e);else{let t=setTimeout(()=>{a.current=Date.now(),r(e)},i);return()=>clearTimeout(t)}},[e,t]),n}function d({value:e,onChange:t,defaultValue:n}){let r=e!==void 0,[a,o]=(0,i.useState)(n),s=(0,i.useRef)(t);s.current=t;let c=(0,i.useCallback)(e=>{r||o(e),s.current?.(e)},[r]);return[r?e:a,c]}function f(e){let[t,n]=(0,i.useState)(()=>typeof window>`u`?!1:window.matchMedia(e).matches);return(0,i.useEffect)(()=>{if(typeof window>`u`)return;let t=window.matchMedia(e);n(t.matches);let r=e=>n(e.matches);return t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function p(e,t){let[n,r]=(0,i.useState)(()=>{if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n===null?t:JSON.parse(n)}catch{return t}});return[n,(0,i.useCallback)(t=>{r(n=>{let r=typeof t==`function`?t(n):t;if(typeof window<`u`)try{window.localStorage.setItem(e,JSON.stringify(r))}catch{}return r})},[e]),(0,i.useCallback)(()=>{if(r(t),typeof window<`u`)try{window.localStorage.removeItem(e)}catch{}},[e,t])]}function m({threshold:e=0,rootMargin:t=`0px`,root:n=null,once:r=!1}={}){let a=(0,i.useRef)(null),[o,s]=(0,i.useState)(null),c=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let i=a.current;if(!(!i||typeof IntersectionObserver>`u`))return c.current=new IntersectionObserver(([e])=>{s(e),r&&e.isIntersecting&&c.current?.unobserve(i)},{threshold:e,rootMargin:t,root:n}),c.current.observe(i),()=>c.current?.disconnect()},[e,t,n,r]),{ref:a,isIntersecting:o?.isIntersecting??!1,entry:o}}function h(e){let{url:t,protocols:n,reconnect:r=!0,reconnectDelay:a=1e3,reconnectAttempts:o=10,heartbeatInterval:s=3e4,heartbeatMessage:c=`ping`,onOpen:l,onClose:u,onError:d,onMessage:f}=e,[p,m]=(0,i.useState)(`disconnected`),[h,g]=(0,i.useState)(null),[_,v]=(0,i.useState)([]),[y,b]=(0,i.useState)(0),[x,S]=(0,i.useState)(null),C=(0,i.useRef)(null),w=(0,i.useRef)(0),T=(0,i.useRef)(null),E=(0,i.useRef)(null),D=(0,i.useRef)(null),O=(0,i.useRef)([]),k=(0,i.useRef)(!0),A=(0,i.useRef)(!1),j=(0,i.useRef)(l),M=(0,i.useRef)(u),N=(0,i.useRef)(d),P=(0,i.useRef)(f);j.current=l,M.current=u,N.current=d,P.current=f;let F=(0,i.useCallback)(()=>{T.current&&=(clearTimeout(T.current),null),E.current&&=(clearInterval(E.current),null)},[]),I=(0,i.useCallback)(e=>{for(;O.current.length>0;){let t=O.current.shift();t!==void 0&&e.send(typeof t==`string`?t:JSON.stringify(t))}},[]),L=(0,i.useCallback)(()=>{if(C.current&&C.current.readyState===WebSocket.OPEN)return;A.current=!1,F(),k.current&&m(`connecting`);let e=new WebSocket(t,n);C.current=e,e.onopen=t=>{k.current&&(m(`connected`),w.current=0,b(0),j.current?.(t),I(e),E.current=setInterval(()=>{if(e.readyState===WebSocket.OPEN){D.current=Date.now();try{e.send(JSON.stringify({type:`ping`,t:D.current}))}catch{}}},s))},e.onmessage=e=>{if(!k.current)return;let t;try{t=JSON.parse(e.data)}catch{t=e.data}let n=t;if(n&&typeof n==`object`&&n.type===`pong`&&typeof n.t==`number`){S(Date.now()-n.t);return}if(t===c&&D.current!==null){S(Date.now()-D.current),D.current=null;return}g(t),v(e=>{let n=[...e,t];return n.length>100?n.slice(n.length-100):n}),P.current?.(t)},e.onerror=e=>{k.current&&(m(`error`),N.current?.(e))},e.onclose=e=>{if(k.current&&(F(),m(`disconnected`),M.current?.(e),!A.current&&r&&w.current<o)){let e=a*1.5**w.current;w.current+=1,b(w.current),T.current=setTimeout(()=>{k.current&&L()},e)}}},[t,n,r,a,o,s,c,F,I]),R=(0,i.useCallback)(()=>{A.current=!0,F(),C.current&&=(C.current.close(),null),k.current&&m(`disconnected`)},[F]),z=(0,i.useCallback)(e=>{C.current&&C.current.readyState===WebSocket.OPEN?C.current.send(typeof e==`string`?e:JSON.stringify(e)):O.current.push(e)},[]);return(0,i.useEffect)(()=>(k.current=!0,L(),()=>{k.current=!1,A.current=!0,F(),C.current&&=(C.current.close(),null)}),[]),{status:p,lastMessage:h,messages:_,send:z,connect:L,disconnect:R,reconnectCount:y,latency:x}}function g(e){let{url:t,events:n=[`message`],withCredentials:r=!1,reconnect:a=!0,reconnectDelay:o=3e3,onOpen:s,onError:c}=e,[l,u]=(0,i.useState)(`connecting`),[d,f]=(0,i.useState)(null),[p,m]=(0,i.useState)([]),[h,g]=(0,i.useState)(0),_=(0,i.useRef)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(!0),b=(0,i.useRef)(!1),x=(0,i.useRef)(s),S=(0,i.useRef)(c);x.current=s,S.current=c;let C=(0,i.useCallback)(()=>{v.current&&=(clearTimeout(v.current),null)},[]),w=(0,i.useCallback)(()=>{if(typeof EventSource>`u`){y.current&&u(`error`);return}b.current=!1,C(),_.current&&=(_.current.close(),null),y.current&&u(`connecting`);let e=new EventSource(t,{withCredentials:r});_.current=e,e.onopen=()=>{y.current&&(u(`connected`),x.current?.())},e.onerror=e=>{y.current&&(u(`error`),S.current?.(e),!b.current&&a&&(C(),v.current=setTimeout(()=>{y.current&&w()},o)))};let i=e=>t=>{if(!y.current)return;let n;try{n=JSON.parse(t.data)}catch{n=t.data}let r={type:e,data:n,timestamp:Date.now(),...t.lastEventId?{id:t.lastEventId}:{}};f({type:r.type,data:r.data,id:r.id}),m(e=>{let t=[...e,r];return t.length>200?t.slice(t.length-200):t}),g(e=>e+1)};for(let t of n)e.addEventListener(t,i(t))},[t,r,a,o,C]),T=(0,i.useCallback)(()=>{b.current=!0,C(),_.current&&=(_.current.close(),null),y.current&&u(`closed`)},[C]);return(0,i.useEffect)(()=>(y.current=!0,w(),()=>{y.current=!1,b.current=!0,C(),_.current&&=(_.current.close(),null)}),[]),{status:l,lastEvent:d,events:p,connect:w,disconnect:T,eventCount:h}}function _(e){let{queryFn:t,initialCursor:n=null,enabled:r=!0,dedupKey:a}=e,[o,s]=(0,i.useState)([]),[c,l]=(0,i.useState)(`idle`),[u,d]=(0,i.useState)(null),[f,p]=(0,i.useState)(!1),[m,h]=(0,i.useState)(0),g=(0,i.useRef)(n??null),_=(0,i.useRef)(!1),v=(0,i.useRef)(!0),y=(0,i.useRef)(void 0),b=(0,i.useRef)(t);b.current=t;let x=(0,i.useCallback)(async(e,t,n)=>{if(_.current||a!==void 0&&a===y.current)return;_.current=!0;let r=!1;v.current&&(l(n?`loading`:`fetching-more`),d(null));try{let i=await b.current(e,t);if(r||!v.current)return;a!==void 0&&(y.current=a),g.current=i.nextCursor,s(e=>n?[i.data]:[...e,i.data]),p(i.hasMore),h(t),l(`success`)}catch(e){if(r||!v.current)return;d(e instanceof Error?e:Error(String(e))),l(`error`)}finally{r||(_.current=!1)}return()=>{r=!0}},[a]),S=(0,i.useCallback)(()=>{!f||_.current||x(g.current,m+1,!1)},[f,m,x]),C=(0,i.useCallback)(()=>{_.current=!1,y.current=void 0,g.current=n??null,s([]),l(`idle`),d(null),p(!1),h(0)},[n]);(0,i.useEffect)(()=>(v.current=!0,r&&x(n??null,0,!0),()=>{v.current=!1}),[r]);let w=o.flat();return{data:w,pages:o,status:c,error:u,hasMore:f,isFetchingMore:c===`fetching-more`,fetchMore:S,reset:C,pageIndex:m,totalLoaded:w.length}}exports.contrastRatio=e.h,exports.cssVar=e.E,exports.cx=t.t,exports.extractAtomicCSS=t.n,exports.extractCSS=e.D,exports.injectStyles=e.k,exports.meetsAA=e.b,exports.meetsAAA=e.x,exports.resetAtomicCSS=t.r,exports.resetStyles=e.j,exports.sanitizeProps=t.p,exports.sanitizeString=t.m,exports.tkxListPlugins=t.o,exports.tkxPlugin=t.s,exports.tkxRemovePlugin=t.c,exports.useAnnounce=n.t,exports.useClickOutside=n.n,exports.useControllable=d,exports.useDebounce=l,exports.useDisclosure=a,exports.useEscapeKey=n.r,exports.useFocusTrap=n.i,exports.useFormState=s,exports.useHighContrast=n.a,exports.useInfiniteQuery=_,exports.useIntersectionObserver=m,exports.useListSelection=c,exports.useLocalStorage=p,exports.useMediaQuery=f,exports.useReducedMotion=n.o,exports.useRovingTabIndex=o,exports.useSSE=g,exports.useThrottle=u,exports.useTkxForm=r.r,exports.useWebSocket=h;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./tkx-BoP5V5zy.cjs`),n=require(`./hooks-mivgRljH.cjs`),r=require(`./TkxForm-M6ttomry.cjs`);let i=require(`react`);function a(e=!1){let[t,n]=(0,i.useState)(e);return{isOpen:t,open:(0,i.useCallback)(()=>n(!0),[]),close:(0,i.useCallback)(()=>n(!1),[]),toggle:(0,i.useCallback)(()=>n(e=>!e),[])}}function o({count:e,initialIndex:t=0,orientation:n=`horizontal`,loop:r=!0}){let[a,o]=(0,i.useState)(t),s=(0,i.useRef)([]),c=(0,i.useCallback)(t=>{o(n=>{let i=n+t;return i=r?(i%e+e)%e:Math.max(0,Math.min(e-1,i)),requestAnimationFrame(()=>{s.current[i]?.focus()}),i})},[e,r]);return{focusedIndex:a,setFocusedIndex:o,getItemProps:(0,i.useCallback)(t=>({tabIndex:t===a?0:-1,"data-focused":t===a,onFocus:()=>o(t),onKeyDown:t=>{let r=n===`horizontal`||n===`both`,i=n===`vertical`||n===`both`;r&&t.key===`ArrowRight`&&(t.preventDefault(),c(1)),r&&t.key===`ArrowLeft`&&(t.preventDefault(),c(-1)),i&&t.key===`ArrowDown`&&(t.preventDefault(),c(1)),i&&t.key===`ArrowUp`&&(t.preventDefault(),c(-1)),t.key===`Home`&&(t.preventDefault(),o(0),requestAnimationFrame(()=>s.current[0]?.focus())),t.key===`End`&&(t.preventDefault(),o(e-1),requestAnimationFrame(()=>s.current[e-1]?.focus()))}}),[a,c,n,e])}}function s({initialValues:e,validate:t}){let[n,r]=(0,i.useState)({...e}),[a,o]=(0,i.useState)({}),[s,c]=(0,i.useState)({}),l=(0,i.useRef)(e),u=(0,i.useCallback)((e,t)=>{r(n=>({...n,[e]:t}))},[]),d=(0,i.useCallback)(e=>{r(t=>({...t,...e}))},[]),f=(0,i.useCallback)(e=>{c(t=>({...t,[e]:!0}))},[]),p=(0,i.useCallback)(()=>{if(!t)return!0;let e=t(n),r=Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null));return o(r),c(Object.fromEntries(Object.keys(n).map(e=>[e,!0]))),Object.keys(r).length===0},[n,t]),m=(0,i.useCallback)(()=>{r({...l.current}),o({}),c({})},[]);return{values:n,errors:a,touched:s,dirty:Object.keys(n).some(e=>n[e]!==l.current[e]),isValid:Object.keys(a).length===0,setValue:u,setValues:d,touchField:f,validate:p,reset:m,getFieldProps:(0,i.useCallback)(e=>({value:n[e],onChange:t=>{u(e,t.target.value)},onBlur:()=>f(e),"aria-invalid":s[e]&&a[e]?!0:void 0,"aria-describedby":a[e]?`${String(e)}-error`:void 0}),[n,a,s,u,f])}}function c({items:e,initialSelected:t=[],multiple:n=!0}){let[r,a]=(0,i.useState)(()=>new Set(t)),o=(0,i.useCallback)(e=>{a(t=>{let r=new Set(t);return r.has(e)?r.delete(e):(n||r.clear(),r.add(e)),r})},[n]),s=(0,i.useCallback)(e=>{a(t=>{if(t.has(e))return t;let r=n?new Set(t):new Set;return r.add(e),r})},[n]),c=(0,i.useCallback)(e=>{a(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},[]),l=(0,i.useCallback)(()=>{n&&a(new Set(e))},[e,n]),u=(0,i.useCallback)(()=>a(new Set),[]),d=(0,i.useCallback)(()=>{a(t=>e.every(e=>t.has(e))?new Set:new Set(e))},[e]),f=e.length>0&&e.every(e=>r.has(e)),p=e.some(e=>r.has(e)),m=(0,i.useMemo)(()=>Array.from(r),[r]);return{selected:r,isSelected:(0,i.useCallback)(e=>r.has(e),[r]),toggle:o,select:s,deselect:c,selectAll:l,deselectAll:u,toggleAll:d,allSelected:f,someSelected:p,selectedCount:r.size,selectedArray:m}}function l(e,t){let[n,r]=(0,i.useState)(e);return(0,i.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}function u(e,t){let[n,r]=(0,i.useState)(e),a=(0,i.useRef)(Date.now());return(0,i.useEffect)(()=>{let n=Date.now(),i=t-(n-a.current);if(i<=0)a.current=n,r(e);else{let t=setTimeout(()=>{a.current=Date.now(),r(e)},i);return()=>clearTimeout(t)}},[e,t]),n}function d({value:e,onChange:t,defaultValue:n}){let r=e!==void 0,[a,o]=(0,i.useState)(n),s=(0,i.useRef)(t);s.current=t;let c=(0,i.useCallback)(e=>{r||o(e),s.current?.(e)},[r]);return[r?e:a,c]}function f(e){let[t,n]=(0,i.useState)(()=>typeof window>`u`?!1:window.matchMedia(e).matches);return(0,i.useEffect)(()=>{if(typeof window>`u`)return;let t=window.matchMedia(e);n(t.matches);let r=e=>n(e.matches);return t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function p(e,t){let[n,r]=(0,i.useState)(()=>{if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n===null?t:JSON.parse(n)}catch{return t}});return[n,(0,i.useCallback)(t=>{r(n=>{let r=typeof t==`function`?t(n):t;if(typeof window<`u`)try{window.localStorage.setItem(e,JSON.stringify(r))}catch{}return r})},[e]),(0,i.useCallback)(()=>{if(r(t),typeof window<`u`)try{window.localStorage.removeItem(e)}catch{}},[e,t])]}function m({threshold:e=0,rootMargin:t=`0px`,root:n=null,once:r=!1}={}){let a=(0,i.useRef)(null),[o,s]=(0,i.useState)(null),c=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let i=a.current;if(!(!i||typeof IntersectionObserver>`u`))return c.current=new IntersectionObserver(([e])=>{s(e),r&&e.isIntersecting&&c.current?.unobserve(i)},{threshold:e,rootMargin:t,root:n}),c.current.observe(i),()=>c.current?.disconnect()},[e,t,n,r]),{ref:a,isIntersecting:o?.isIntersecting??!1,entry:o}}function h(e){let{url:t,protocols:n,reconnect:r=!0,reconnectDelay:a=1e3,reconnectAttempts:o=10,heartbeatInterval:s=3e4,heartbeatMessage:c=`ping`,onOpen:l,onClose:u,onError:d,onMessage:f}=e,[p,m]=(0,i.useState)(`disconnected`),[h,g]=(0,i.useState)(null),[_,v]=(0,i.useState)([]),[y,b]=(0,i.useState)(0),[x,S]=(0,i.useState)(null),C=(0,i.useRef)(null),w=(0,i.useRef)(0),T=(0,i.useRef)(null),E=(0,i.useRef)(null),D=(0,i.useRef)(null),O=(0,i.useRef)([]),k=(0,i.useRef)(!0),A=(0,i.useRef)(!1),j=(0,i.useRef)(l),M=(0,i.useRef)(u),N=(0,i.useRef)(d),P=(0,i.useRef)(f);j.current=l,M.current=u,N.current=d,P.current=f;let F=(0,i.useCallback)(()=>{T.current&&=(clearTimeout(T.current),null),E.current&&=(clearInterval(E.current),null)},[]),I=(0,i.useCallback)(e=>{for(;O.current.length>0;){let t=O.current.shift();t!==void 0&&e.send(typeof t==`string`?t:JSON.stringify(t))}},[]),L=(0,i.useCallback)(()=>{if(C.current&&C.current.readyState===WebSocket.OPEN)return;A.current=!1,F(),k.current&&m(`connecting`);let e=new WebSocket(t,n);C.current=e,e.onopen=t=>{k.current&&(m(`connected`),w.current=0,b(0),j.current?.(t),I(e),E.current=setInterval(()=>{if(e.readyState===WebSocket.OPEN){D.current=Date.now();try{e.send(JSON.stringify({type:`ping`,t:D.current}))}catch{}}},s))},e.onmessage=e=>{if(!k.current)return;let t;try{t=JSON.parse(e.data)}catch{t=e.data}let n=t;if(n&&typeof n==`object`&&n.type===`pong`&&typeof n.t==`number`){S(Date.now()-n.t);return}if(t===c&&D.current!==null){S(Date.now()-D.current),D.current=null;return}g(t),v(e=>{let n=[...e,t];return n.length>100?n.slice(n.length-100):n}),P.current?.(t)},e.onerror=e=>{k.current&&(m(`error`),N.current?.(e))},e.onclose=e=>{if(k.current&&(F(),m(`disconnected`),M.current?.(e),!A.current&&r&&w.current<o)){let e=a*1.5**w.current;w.current+=1,b(w.current),T.current=setTimeout(()=>{k.current&&L()},e)}}},[t,n,r,a,o,s,c,F,I]),R=(0,i.useCallback)(()=>{A.current=!0,F(),C.current&&=(C.current.close(),null),k.current&&m(`disconnected`)},[F]),z=(0,i.useCallback)(e=>{C.current&&C.current.readyState===WebSocket.OPEN?C.current.send(typeof e==`string`?e:JSON.stringify(e)):O.current.push(e)},[]);return(0,i.useEffect)(()=>(k.current=!0,L(),()=>{k.current=!1,A.current=!0,F(),C.current&&=(C.current.close(),null)}),[]),{status:p,lastMessage:h,messages:_,send:z,connect:L,disconnect:R,reconnectCount:y,latency:x}}function g(e){let{url:t,events:n=[`message`],withCredentials:r=!1,reconnect:a=!0,reconnectDelay:o=3e3,onOpen:s,onError:c}=e,[l,u]=(0,i.useState)(`connecting`),[d,f]=(0,i.useState)(null),[p,m]=(0,i.useState)([]),[h,g]=(0,i.useState)(0),_=(0,i.useRef)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(!0),b=(0,i.useRef)(!1),x=(0,i.useRef)(s),S=(0,i.useRef)(c);x.current=s,S.current=c;let C=(0,i.useCallback)(()=>{v.current&&=(clearTimeout(v.current),null)},[]),w=(0,i.useCallback)(()=>{if(typeof EventSource>`u`){y.current&&u(`error`);return}b.current=!1,C(),_.current&&=(_.current.close(),null),y.current&&u(`connecting`);let e=new EventSource(t,{withCredentials:r});_.current=e,e.onopen=()=>{y.current&&(u(`connected`),x.current?.())},e.onerror=e=>{y.current&&(u(`error`),S.current?.(e),!b.current&&a&&(C(),v.current=setTimeout(()=>{y.current&&w()},o)))};let i=e=>t=>{if(!y.current)return;let n;try{n=JSON.parse(t.data)}catch{n=t.data}let r={type:e,data:n,timestamp:Date.now(),...t.lastEventId?{id:t.lastEventId}:{}};f({type:r.type,data:r.data,id:r.id}),m(e=>{let t=[...e,r];return t.length>200?t.slice(t.length-200):t}),g(e=>e+1)};for(let t of n)e.addEventListener(t,i(t))},[t,r,a,o,C]),T=(0,i.useCallback)(()=>{b.current=!0,C(),_.current&&=(_.current.close(),null),y.current&&u(`closed`)},[C]);return(0,i.useEffect)(()=>(y.current=!0,w(),()=>{y.current=!1,b.current=!0,C(),_.current&&=(_.current.close(),null)}),[]),{status:l,lastEvent:d,events:p,connect:w,disconnect:T,eventCount:h}}function _(e){let{queryFn:t,initialCursor:n=null,enabled:r=!0,dedupKey:a}=e,[o,s]=(0,i.useState)([]),[c,l]=(0,i.useState)(`idle`),[u,d]=(0,i.useState)(null),[f,p]=(0,i.useState)(!1),[m,h]=(0,i.useState)(0),g=(0,i.useRef)(n??null),_=(0,i.useRef)(!1),v=(0,i.useRef)(!0),y=(0,i.useRef)(void 0),b=(0,i.useRef)(t);b.current=t;let x=(0,i.useCallback)(async(e,t,n)=>{if(_.current||a!==void 0&&a===y.current)return;_.current=!0;let r=!1;v.current&&(l(n?`loading`:`fetching-more`),d(null));try{let i=await b.current(e,t);if(r||!v.current)return;a!==void 0&&(y.current=a),g.current=i.nextCursor,s(e=>n?[i.data]:[...e,i.data]),p(i.hasMore),h(t),l(`success`)}catch(e){if(r||!v.current)return;d(e instanceof Error?e:Error(String(e))),l(`error`)}finally{r||(_.current=!1)}return()=>{r=!0}},[a]),S=(0,i.useCallback)(()=>{!f||_.current||x(g.current,m+1,!1)},[f,m,x]),C=(0,i.useCallback)(()=>{_.current=!1,y.current=void 0,g.current=n??null,s([]),l(`idle`),d(null),p(!1),h(0)},[n]);(0,i.useEffect)(()=>(v.current=!0,r&&x(n??null,0,!0),()=>{v.current=!1}),[r]);let w=o.flat();return{data:w,pages:o,status:c,error:u,hasMore:f,isFetchingMore:c===`fetching-more`,fetchMore:S,reset:C,pageIndex:m,totalLoaded:w.length}}exports.contrastRatio=e.h,exports.cssVar=e.E,exports.cx=t.t,exports.extractAtomicCSS=t.n,exports.extractCSS=e.D,exports.injectStyles=e.k,exports.meetsAA=e.b,exports.meetsAAA=e.x,exports.resetAtomicCSS=t.r,exports.resetStyles=e.j,exports.sanitizeProps=t.p,exports.sanitizeString=t.m,exports.tkxListPlugins=t.o,exports.tkxPlugin=t.s,exports.tkxRemovePlugin=t.c,exports.useAnnounce=n.t,exports.useClickOutside=n.n,exports.useControllable=d,exports.useDebounce=l,exports.useDisclosure=a,exports.useEscapeKey=n.r,exports.useFocusTrap=n.i,exports.useFormState=s,exports.useHighContrast=n.a,exports.useInfiniteQuery=_,exports.useIntersectionObserver=m,exports.useListSelection=c,exports.useLocalStorage=p,exports.useMediaQuery=f,exports.useReducedMotion=n.o,exports.useRovingTabIndex=o,exports.useSSE=g,exports.useThrottle=u,exports.useTkxForm=r.r,exports.useWebSocket=h;
package/dist/headless.js CHANGED
@@ -1,7 +1,8 @@
1
+ "use client";
1
2
  import { D as e, E as t, b as n, h as r, j as i, k as a, x as o } from "./themes-BbJanqiC.js";
2
- import { c as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m } from "./tkx-DQkvHdE5.js";
3
+ import { c as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m } from "./tkx-mOKMzvUK.js";
3
4
  import { a as h, i as g, n as _, o as v, r as y, t as b } from "./hooks-6pRsPOyG.js";
4
- import { r as x } from "./TkxForm-9-W3Nl6m.js";
5
+ import { r as x } from "./TkxForm-BaO4wvXt.js";
5
6
  import { useCallback as S, useEffect as C, useMemo as w, useRef as T, useState as E } from "react";
6
7
  //#region src/headless/useDisclosure.ts
7
8
  function D(e = !1) {