tekivex-ui 2.5.13 → 2.5.14

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 (231) 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 +10 -10
  8. package/dist/index.js +953 -896
  9. package/dist/quantum.cjs +9 -9
  10. package/dist/quantum.js +160 -115
  11. package/dist/realtime.cjs +1 -1
  12. package/dist/realtime.js +1 -1
  13. package/dist/src/charts/TkxAreaChart.d.ts.map +1 -1
  14. package/dist/src/charts/TkxBarChart.d.ts.map +1 -1
  15. package/dist/src/charts/TkxDonutChart.d.ts.map +1 -1
  16. package/dist/src/charts/TkxLineChart.d.ts.map +1 -1
  17. package/dist/src/charts/TkxPieChart.d.ts.map +1 -1
  18. package/dist/src/charts/TkxRadarChart.d.ts.map +1 -1
  19. package/dist/src/charts/TkxScatterChart.d.ts.map +1 -1
  20. package/dist/src/charts/index.d.ts.map +1 -1
  21. package/dist/src/charts/shared.d.ts.map +1 -1
  22. package/dist/src/components/TkxAIChatBubble.d.ts.map +1 -1
  23. package/dist/src/components/TkxAIConfidenceBar.d.ts.map +1 -1
  24. package/dist/src/components/TkxAIThinking.d.ts.map +1 -1
  25. package/dist/src/components/TkxAccordion.d.ts.map +1 -1
  26. package/dist/src/components/TkxAffix.d.ts.map +1 -1
  27. package/dist/src/components/TkxAlert.d.ts.map +1 -1
  28. package/dist/src/components/TkxAnchor.d.ts.map +1 -1
  29. package/dist/src/components/TkxAppBar.d.ts.map +1 -1
  30. package/dist/src/components/TkxAutocomplete.d.ts.map +1 -1
  31. package/dist/src/components/TkxAvatar.d.ts.map +1 -1
  32. package/dist/src/components/TkxBadge.d.ts.map +1 -1
  33. package/dist/src/components/TkxBottomNav.d.ts.map +1 -1
  34. package/dist/src/components/TkxBreadcrumb.d.ts.map +1 -1
  35. package/dist/src/components/TkxButton.d.ts.map +1 -1
  36. package/dist/src/components/TkxCard.d.ts.map +1 -1
  37. package/dist/src/components/TkxCarousel.d.ts.map +1 -1
  38. package/dist/src/components/TkxCascader.d.ts.map +1 -1
  39. package/dist/src/components/TkxChat.d.ts.map +1 -1
  40. package/dist/src/components/TkxCheckbox.d.ts.map +1 -1
  41. package/dist/src/components/TkxClock.d.ts.map +1 -1
  42. package/dist/src/components/TkxColorPicker.d.ts.map +1 -1
  43. package/dist/src/components/TkxCommand.d.ts.map +1 -1
  44. package/dist/src/components/TkxConfigProvider.d.ts.map +1 -1
  45. package/dist/src/components/TkxDataGrid.d.ts.map +1 -1
  46. package/dist/src/components/TkxDatePicker.d.ts +1 -1
  47. package/dist/src/components/TkxDatePicker.d.ts.map +1 -1
  48. package/dist/src/components/TkxDivider.d.ts.map +1 -1
  49. package/dist/src/components/TkxDrawer.d.ts.map +1 -1
  50. package/dist/src/components/TkxDropdown.d.ts.map +1 -1
  51. package/dist/src/components/TkxEmpty.d.ts.map +1 -1
  52. package/dist/src/components/TkxFileUpload.d.ts.map +1 -1
  53. package/dist/src/components/TkxForm.d.ts.map +1 -1
  54. package/dist/src/components/TkxIcon.d.ts.map +1 -1
  55. package/dist/src/components/TkxImage.d.ts.map +1 -1
  56. package/dist/src/components/TkxInput.d.ts.map +1 -1
  57. package/dist/src/components/TkxLayout.d.ts.map +1 -1
  58. package/dist/src/components/TkxList.d.ts.map +1 -1
  59. package/dist/src/components/TkxLiveFeed.d.ts.map +1 -1
  60. package/dist/src/components/TkxLiveLog.d.ts.map +1 -1
  61. package/dist/src/components/TkxLiveMetrics.d.ts.map +1 -1
  62. package/dist/src/components/TkxLogo.d.ts.map +1 -1
  63. package/dist/src/components/TkxMasonry.d.ts.map +1 -1
  64. package/dist/src/components/TkxMentions.d.ts.map +1 -1
  65. package/dist/src/components/TkxMenu.d.ts.map +1 -1
  66. package/dist/src/components/TkxModal.d.ts.map +1 -1
  67. package/dist/src/components/TkxNumberInput.d.ts.map +1 -1
  68. package/dist/src/components/TkxOTP.d.ts.map +1 -1
  69. package/dist/src/components/TkxPagination.d.ts.map +1 -1
  70. package/dist/src/components/TkxPlayground.d.ts +15 -1
  71. package/dist/src/components/TkxPlayground.d.ts.map +1 -1
  72. package/dist/src/components/TkxPopover.d.ts.map +1 -1
  73. package/dist/src/components/TkxProgress.d.ts.map +1 -1
  74. package/dist/src/components/TkxQRCode.d.ts.map +1 -1
  75. package/dist/src/components/TkxQuantumForm.d.ts.map +1 -1
  76. package/dist/src/components/TkxRadio.d.ts.map +1 -1
  77. package/dist/src/components/TkxRating.d.ts.map +1 -1
  78. package/dist/src/components/TkxRealTimeChart.d.ts.map +1 -1
  79. package/dist/src/components/TkxResult.d.ts.map +1 -1
  80. package/dist/src/components/TkxRichTextDisplay.d.ts.map +1 -1
  81. package/dist/src/components/TkxSegmented.d.ts.map +1 -1
  82. package/dist/src/components/TkxSelect.d.ts.map +1 -1
  83. package/dist/src/components/TkxSkeleton.d.ts.map +1 -1
  84. package/dist/src/components/TkxSlider.d.ts.map +1 -1
  85. package/dist/src/components/TkxSnackbar.d.ts.map +1 -1
  86. package/dist/src/components/TkxSpeedDial.d.ts.map +1 -1
  87. package/dist/src/components/TkxSpin.d.ts.map +1 -1
  88. package/dist/src/components/TkxStatistic.d.ts.map +1 -1
  89. package/dist/src/components/TkxStepper.d.ts.map +1 -1
  90. package/dist/src/components/TkxTable.d.ts.map +1 -1
  91. package/dist/src/components/TkxTabs.d.ts.map +1 -1
  92. package/dist/src/components/TkxTag.d.ts.map +1 -1
  93. package/dist/src/components/TkxThemeBuilder.d.ts.map +1 -1
  94. package/dist/src/components/TkxTimeline.d.ts.map +1 -1
  95. package/dist/src/components/TkxToast.d.ts.map +1 -1
  96. package/dist/src/components/TkxToggle.d.ts.map +1 -1
  97. package/dist/src/components/TkxToolbar.d.ts.map +1 -1
  98. package/dist/src/components/TkxTooltip.d.ts.map +1 -1
  99. package/dist/src/components/TkxTour.d.ts.map +1 -1
  100. package/dist/src/components/TkxTransferList.d.ts.map +1 -1
  101. package/dist/src/components/TkxTreeView.d.ts.map +1 -1
  102. package/dist/src/components/TkxTypography.d.ts.map +1 -1
  103. package/dist/src/components/TkxVideoPlayer.d.ts.map +1 -1
  104. package/dist/src/components/TkxWatermark.d.ts.map +1 -1
  105. package/dist/src/engine/security.d.ts +8 -0
  106. package/dist/src/engine/security.d.ts.map +1 -1
  107. package/dist/src/headless/index.d.ts.map +1 -1
  108. package/dist/src/headless/useControllable.d.ts.map +1 -1
  109. package/dist/src/headless/useDebounce.d.ts.map +1 -1
  110. package/dist/src/headless/useDisclosure.d.ts.map +1 -1
  111. package/dist/src/headless/useFormState.d.ts.map +1 -1
  112. package/dist/src/headless/useInfiniteQuery.d.ts.map +1 -1
  113. package/dist/src/headless/useIntersectionObserver.d.ts.map +1 -1
  114. package/dist/src/headless/useListSelection.d.ts.map +1 -1
  115. package/dist/src/headless/useLocalStorage.d.ts.map +1 -1
  116. package/dist/src/headless/useMediaQuery.d.ts.map +1 -1
  117. package/dist/src/headless/useRovingTabIndex.d.ts.map +1 -1
  118. package/dist/src/headless/useSSE.d.ts.map +1 -1
  119. package/dist/src/headless/useThrottle.d.ts.map +1 -1
  120. package/dist/src/headless/useWebSocket.d.ts.map +1 -1
  121. package/dist/src/hooks/index.d.ts.map +1 -1
  122. package/dist/tkx-BoP5V5zy.cjs +4 -0
  123. package/dist/{tkx-DQkvHdE5.js → tkx-mOKMzvUK.js} +4 -2
  124. package/package.json +1 -1
  125. package/src/charts/TkxAreaChart.tsx +3 -1
  126. package/src/charts/TkxBarChart.tsx +3 -1
  127. package/src/charts/TkxDonutChart.tsx +3 -1
  128. package/src/charts/TkxLineChart.tsx +3 -1
  129. package/src/charts/TkxPieChart.tsx +3 -1
  130. package/src/charts/TkxRadarChart.tsx +3 -1
  131. package/src/charts/TkxScatterChart.tsx +3 -1
  132. package/src/charts/index.ts +3 -1
  133. package/src/charts/shared.ts +3 -1
  134. package/src/components/TkxAIChatBubble.tsx +55 -8
  135. package/src/components/TkxAIConfidenceBar.tsx +3 -1
  136. package/src/components/TkxAIThinking.tsx +3 -1
  137. package/src/components/TkxAccordion.tsx +3 -1
  138. package/src/components/TkxAffix.tsx +3 -1
  139. package/src/components/TkxAlert.tsx +3 -1
  140. package/src/components/TkxAnchor.tsx +3 -1
  141. package/src/components/TkxAppBar.tsx +3 -1
  142. package/src/components/TkxAutocomplete.tsx +3 -1
  143. package/src/components/TkxAvatar.tsx +3 -1
  144. package/src/components/TkxBadge.tsx +3 -1
  145. package/src/components/TkxBottomNav.tsx +3 -1
  146. package/src/components/TkxBreadcrumb.tsx +3 -1
  147. package/src/components/TkxButton.tsx +3 -1
  148. package/src/components/TkxCard.tsx +3 -1
  149. package/src/components/TkxCarousel.tsx +3 -1
  150. package/src/components/TkxCascader.tsx +3 -1
  151. package/src/components/TkxChat.tsx +3 -1
  152. package/src/components/TkxCheckbox.tsx +3 -1
  153. package/src/components/TkxClock.tsx +3 -1
  154. package/src/components/TkxColorPicker.tsx +3 -1
  155. package/src/components/TkxCommand.tsx +3 -1
  156. package/src/components/TkxConfigProvider.tsx +3 -1
  157. package/src/components/TkxDataGrid.tsx +3 -1
  158. package/src/components/TkxDatePicker.tsx +76 -18
  159. package/src/components/TkxDivider.tsx +3 -1
  160. package/src/components/TkxDrawer.tsx +3 -1
  161. package/src/components/TkxDropdown.tsx +3 -1
  162. package/src/components/TkxEmpty.tsx +3 -1
  163. package/src/components/TkxFileUpload.tsx +3 -1
  164. package/src/components/TkxForm.tsx +22 -3
  165. package/src/components/TkxIcon.tsx +3 -1
  166. package/src/components/TkxImage.tsx +3 -1
  167. package/src/components/TkxInput.tsx +3 -1
  168. package/src/components/TkxLayout.tsx +3 -1
  169. package/src/components/TkxList.tsx +3 -1
  170. package/src/components/TkxLiveFeed.tsx +3 -1
  171. package/src/components/TkxLiveLog.tsx +3 -1
  172. package/src/components/TkxLiveMetrics.tsx +3 -1
  173. package/src/components/TkxLogo.tsx +3 -1
  174. package/src/components/TkxMasonry.tsx +3 -1
  175. package/src/components/TkxMentions.tsx +3 -1
  176. package/src/components/TkxMenu.tsx +3 -1
  177. package/src/components/TkxModal.tsx +3 -1
  178. package/src/components/TkxNumberInput.tsx +3 -1
  179. package/src/components/TkxOTP.tsx +3 -1
  180. package/src/components/TkxPagination.tsx +3 -1
  181. package/src/components/TkxPlayground.tsx +77 -3
  182. package/src/components/TkxPopover.tsx +3 -1
  183. package/src/components/TkxProgress.tsx +3 -1
  184. package/src/components/TkxQRCode.tsx +3 -1
  185. package/src/components/TkxQuantumForm.tsx +3 -1
  186. package/src/components/TkxRadio.tsx +3 -1
  187. package/src/components/TkxRating.tsx +3 -1
  188. package/src/components/TkxRealTimeChart.tsx +3 -1
  189. package/src/components/TkxResult.tsx +3 -1
  190. package/src/components/TkxRichTextDisplay.tsx +3 -1
  191. package/src/components/TkxSegmented.tsx +3 -1
  192. package/src/components/TkxSelect.tsx +3 -1
  193. package/src/components/TkxSkeleton.tsx +3 -1
  194. package/src/components/TkxSlider.tsx +3 -1
  195. package/src/components/TkxSnackbar.tsx +3 -1
  196. package/src/components/TkxSpeedDial.tsx +3 -1
  197. package/src/components/TkxSpin.tsx +3 -1
  198. package/src/components/TkxStatistic.tsx +3 -1
  199. package/src/components/TkxStepper.tsx +3 -1
  200. package/src/components/TkxTable.tsx +3 -1
  201. package/src/components/TkxTabs.tsx +3 -1
  202. package/src/components/TkxTag.tsx +3 -1
  203. package/src/components/TkxThemeBuilder.tsx +3 -1
  204. package/src/components/TkxTimeline.tsx +3 -1
  205. package/src/components/TkxToast.tsx +3 -1
  206. package/src/components/TkxToggle.tsx +3 -1
  207. package/src/components/TkxToolbar.tsx +3 -1
  208. package/src/components/TkxTooltip.tsx +15 -2
  209. package/src/components/TkxTour.tsx +3 -1
  210. package/src/components/TkxTransferList.tsx +3 -1
  211. package/src/components/TkxTreeView.tsx +3 -1
  212. package/src/components/TkxTypography.tsx +3 -1
  213. package/src/components/TkxVideoPlayer.tsx +3 -1
  214. package/src/components/TkxWatermark.tsx +3 -1
  215. package/src/engine/security.ts +16 -1
  216. package/src/headless/index.ts +3 -1
  217. package/src/headless/useControllable.ts +3 -1
  218. package/src/headless/useDebounce.ts +3 -1
  219. package/src/headless/useDisclosure.ts +3 -1
  220. package/src/headless/useFormState.ts +3 -1
  221. package/src/headless/useInfiniteQuery.ts +3 -1
  222. package/src/headless/useIntersectionObserver.ts +3 -1
  223. package/src/headless/useListSelection.ts +3 -1
  224. package/src/headless/useLocalStorage.ts +3 -1
  225. package/src/headless/useMediaQuery.ts +3 -1
  226. package/src/headless/useRovingTabIndex.ts +3 -1
  227. package/src/headless/useSSE.ts +3 -1
  228. package/src/headless/useThrottle.ts +3 -1
  229. package/src/headless/useWebSocket.ts +3 -1
  230. package/src/hooks/index.ts +3 -1
  231. package/dist/tkx-0oAwZqgL.cjs +0 -4
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useCallback, useRef, type ReactNode } from 'react';
2
4
  import { createPortal } from 'react-dom';
3
5
  import { useTheme } from '../themes';
@@ -236,4 +238,4 @@ export function TkxTour({
236
238
  );
237
239
 
238
240
  return createPortal(overlay, document.body);
239
- }
241
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import {
2
4
  useState,
3
5
  useMemo,
@@ -484,4 +486,4 @@ export function TkxTransferList({
484
486
  );
485
487
  }
486
488
 
487
- export default TkxTransferList;
489
+ export default TkxTransferList;
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import {
2
4
  useState,
3
5
  useCallback,
@@ -418,4 +420,4 @@ export function TkxTreeView({
418
420
  );
419
421
  }
420
422
 
421
- export default TkxTreeView;
423
+ export default TkxTreeView;
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import React, {
2
4
  useState,
3
5
  useCallback,
@@ -262,4 +264,4 @@ export function TkxParagraph({
262
264
  safeChildren,
263
265
  copyable && createElement(CopyButton, { text: textContent }),
264
266
  );
265
- }
267
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import {
2
4
  useState,
3
5
  useEffect,
@@ -1010,4 +1012,4 @@ export function TkxVideoPlayer({
1010
1012
  );
1011
1013
  }
1012
1014
 
1013
- TkxVideoPlayer.displayName = 'TkxVideoPlayer';
1015
+ TkxVideoPlayer.displayName = 'TkxVideoPlayer';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { type ReactNode, useRef, useEffect, useMemo, useState, useCallback } from 'react';
2
4
  import { useTheme } from '../themes';
3
5
  import { sanitizeString } from '../engine/security';
@@ -140,4 +142,4 @@ export function TkxWatermark({
140
142
  />
141
143
  </div>
142
144
  );
143
- }
145
+ }
@@ -11,10 +11,25 @@ const HTML_ENTITIES: Record<string, string> = {
11
11
  '&': '&amp;',
12
12
  "'": '&#39;',
13
13
  '"': '&quot;',
14
+ // Backticks can break out of unquoted/template-literal contexts in HTML
15
+ // (legacy IE and some sinks). Escape defensively.
16
+ '`': '&#96;',
14
17
  };
15
18
 
19
+ /**
20
+ * Escape HTML-sensitive characters in a value so it is safe to render as text.
21
+ * Also strips NUL and most C0 control characters, which can be used to smuggle
22
+ * payloads past naïve filters, and normalizes newlines.
23
+ *
24
+ * This is a defense-in-depth helper — it does NOT allow-list HTML. For rich
25
+ * HTML input, use a dedicated sanitizer such as DOMPurify.
26
+ */
16
27
  export function sanitizeString(input: unknown): string {
17
- return String(input).replace(/[<>&'"]/g, (char) => HTML_ENTITIES[char] ?? char);
28
+ let s = String(input);
29
+ // Strip NUL + disallowed C0 controls (keep \t \n \r).
30
+ // eslint-disable-next-line no-control-regex
31
+ s = s.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g, '');
32
+ return s.replace(/[<>&'"`]/g, (char) => HTML_ENTITIES[char] ?? char);
18
33
  }
19
34
 
20
35
  export function sanitizeProps<T extends Record<string, unknown>>(props: T): T {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  // ── @tekivex/ui/headless ─────────────────────────────────────────────────────
2
4
  // Behavior-only primitives, hooks, and utilities — zero styles shipped.
3
5
  // Use these to build completely custom UI on top of TekiVex's battle-tested
@@ -47,4 +49,4 @@ export type { WebSocketOptions, WebSocketState } from './useWebSocket';
47
49
  export { useSSE } from './useSSE';
48
50
  export type { SSEOptions, SSEState } from './useSSE';
49
51
  export { useInfiniteQuery } from './useInfiniteQuery';
50
- export type { InfiniteQueryOptions, InfiniteQueryState } from './useInfiniteQuery';
52
+ export type { InfiniteQueryOptions, InfiniteQueryState } from './useInfiniteQuery';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useCallback, useRef } from 'react';
2
4
 
3
5
  /**
@@ -37,4 +39,4 @@ export function useControllable<T>({
37
39
  );
38
40
 
39
41
  return [isControlled ? value! : internalValue, setValue];
40
- }
42
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useCallback, useRef } from 'react';
2
4
 
3
5
  /**
@@ -32,4 +34,4 @@ export function useDebouncedCallback<T extends (...args: any[]) => any>(
32
34
  if (timerRef.current) clearTimeout(timerRef.current);
33
35
  timerRef.current = setTimeout(() => fnRef.current(...args), delay);
34
36
  }, [delay]);
35
- }
37
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useCallback } from 'react';
2
4
 
3
5
  export interface UseDisclosureReturn {
@@ -25,4 +27,4 @@ export function useDisclosure(initialState = false): UseDisclosureReturn {
25
27
  const close = useCallback(() => setIsOpen(false), []);
26
28
  const toggle = useCallback(() => setIsOpen(v => !v), []);
27
29
  return { isOpen, open, close, toggle };
28
- }
30
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useCallback, useRef } from 'react';
2
4
 
3
5
  export type FormFieldValue = string | number | boolean | string[] | null | undefined;
@@ -108,4 +110,4 @@ export function useFormState<T extends Record<string, FormFieldValue>>({
108
110
  );
109
111
 
110
112
  return { values, errors, touched, dirty, isValid, setValue, setValues, touchField, validate, reset, getFieldProps };
111
- }
113
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useCallback, useRef } from 'react';
2
4
 
3
5
  export interface InfiniteQueryOptions<T, C = unknown> {
@@ -150,4 +152,4 @@ export function useInfiniteQuery<T, C = unknown>(
150
152
  pageIndex,
151
153
  totalLoaded,
152
154
  };
153
- }
155
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useRef, type RefObject } from 'react';
2
4
 
3
5
  export interface UseIntersectionObserverOptions {
@@ -48,4 +50,4 @@ export function useIntersectionObserver({
48
50
  }, [threshold, rootMargin, root, once]);
49
51
 
50
52
  return { ref, isIntersecting: entry?.isIntersecting ?? false, entry };
51
- }
53
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useCallback, useMemo } from 'react';
2
4
 
3
5
  export interface UseListSelectionOptions {
@@ -98,4 +100,4 @@ export function useListSelection({
98
100
  selectedCount: selected.size,
99
101
  selectedArray,
100
102
  };
101
- }
103
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useCallback } from 'react';
2
4
 
3
5
  /**
@@ -43,4 +45,4 @@ export function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T
43
45
  }, [key, initialValue]);
44
46
 
45
47
  return [storedValue, setValue, removeValue];
46
- }
48
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect } from 'react';
2
4
 
3
5
  /**
@@ -34,4 +36,4 @@ export function useBreakpoint() {
34
36
  const xl = useMediaQuery('(min-width: 1280px)');
35
37
  const xxl = useMediaQuery('(min-width: 1536px)');
36
38
  return { sm, md, lg, xl, xxl, isMobile: !sm, isTablet: sm && !lg, isDesktop: lg };
37
- }
39
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useCallback, useRef, type KeyboardEvent } from 'react';
2
4
 
3
5
  export interface UseRovingTabIndexOptions {
@@ -81,4 +83,4 @@ export function useRovingTabIndex({
81
83
  );
82
84
 
83
85
  return { focusedIndex, setFocusedIndex, getItemProps };
84
- }
86
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useCallback, useRef } from 'react';
2
4
 
3
5
  export interface SSEOptions {
@@ -162,4 +164,4 @@ export function useSSE<T = unknown>(options: SSEOptions): SSEState<T> {
162
164
  disconnect,
163
165
  eventCount,
164
166
  };
165
- }
167
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useCallback, useRef } from 'react';
2
4
 
3
5
  /**
@@ -43,4 +45,4 @@ export function useThrottledCallback<T extends (...args: any[]) => any>(
43
45
  fnRef.current(...args);
44
46
  }
45
47
  }, [interval]);
46
- }
48
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useState, useEffect, useCallback, useRef } from 'react';
2
4
 
3
5
  export interface WebSocketOptions {
@@ -226,4 +228,4 @@ export function useWebSocket<T = unknown>(options: WebSocketOptions): WebSocketS
226
228
  }, []);
227
229
 
228
230
  return { status, lastMessage, messages, send, connect, disconnect, reconnectCount, latency };
229
- }
231
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import {
2
4
  useState,
3
5
  useEffect,
@@ -117,4 +119,4 @@ export function useClickOutside(
117
119
  document.addEventListener('pointerdown', listener);
118
120
  return () => document.removeEventListener('pointerdown', listener);
119
121
  }, [ref]);
120
- }
122
+ }
@@ -1,4 +0,0 @@
1
- const e=require(`./themes-CMq2vWXj.cjs`);var t={"<":`&lt;`,">":`&gt;`,"&":`&amp;`,"'":`&#39;`,'"':`&quot;`};function n(e){return String(e).replace(/[<>&'"]/g,e=>t[e]??e)}function r(e){let t={};for(let n of Object.keys(e))t[n]=i(e[n]);return t}function i(e){return typeof e==`string`?n(e):Array.isArray(e)?e.map(i):typeof e==`object`&&e&&!a(e)?r(e):e}function a(e){return typeof e==`object`&&!!e&&`$$typeof`in e}function o(e,t){let n=[];for(let[r,i]of Object.entries(t)){let t=e[r],a=t==null;if(i.required&&a){n.push(`prop '${r}' is required`);continue}if(!a){if(typeof t!==i.type){n.push(`prop '${r}' must be of type ${i.type}, got ${typeof t}`);continue}i.type===`number`&&typeof t==`number`&&(i.min!==void 0&&t<i.min&&n.push(`prop '${r}' must be >= ${i.min}`),i.max!==void 0&&t>i.max&&n.push(`prop '${r}' must be <= ${i.max}`)),i.type===`string`&&typeof t==`string`&&i.pattern&&!i.pattern.test(t)&&n.push(`prop '${r}' does not match pattern ${i.pattern}`),i.enum&&!i.enum.includes(t)&&n.push(`prop '${r}' must be one of: ${i.enum.join(`, `)}`)}}return{valid:n.length===0,errors:n}}var s=new Map;function c(e,t){let n={componentId:e,permissions:t,directives:{"default-src":[`'self'`],"style-src":t.allowInlineStyles?[`'self'`,`'unsafe-inline'`]:[`'self'`],"img-src":t.allowDataUrls?[`'self'`,`data:`]:t.allowExternalSrc?[`'self'`,`*`]:[`'self'`],"script-src":t.allowScripts?[`'self'`]:[`'none'`]}};return s.set(e,n),n}function l(e,t){return s.get(e)?.permissions[t]===!0}var u=[];function d(t,n,r){let i=e.I(JSON.stringify(r??{})),a=e.I((u.length>0?u[u.length-1].chainHash:`00000000`)+i+n+t),o=Object.freeze({timestamp:Date.now(),component:n,action:t,propsHash:i,chainHash:a});return u=Object.freeze([...u,o]),o}function f(e){let t=u;return e?.component&&(t=t.filter(t=>t.component===e.component)),e?.action&&(t=t.filter(t=>t.action===e.action)),e?.limit&&(t=t.slice(-e.limit)),t}function p(){let t=`00000000`;for(let n of u){if(e.I(t+n.propsHash+n.component+n.action)!==n.chainHash)return!1;t=n.chainHash}return!0}var m={sanitize:n,sanitizeProps:r,validateProps:o,createCSP:c,hasPermission:l,audit:d,getAuditLog:f,verifyAuditIntegrity:p},h={0:`0`,px:`1px`,"0.5":`2px`,1:`4px`,"1.5":`6px`,2:`8px`,"2.5":`10px`,3:`12px`,"3.5":`14px`,4:`16px`,5:`20px`,6:`24px`,7:`28px`,8:`32px`,9:`36px`,10:`40px`,11:`44px`,12:`48px`,14:`56px`,16:`64px`,20:`80px`,24:`96px`,28:`112px`,32:`128px`,36:`144px`,40:`160px`,44:`176px`,48:`192px`,52:`208px`,56:`224px`,60:`240px`,64:`256px`,72:`288px`,80:`320px`,96:`384px`,auto:`auto`,full:`100%`,screen:`100vw`,svh:`100svh`,dvh:`100dvh`,fit:`fit-content`,max:`max-content`,min:`min-content`},g={...h,screen:`100vh`},_={"1/2":`50%`,"1/3":`33.333333%`,"2/3":`66.666667%`,"1/4":`25%`,"2/4":`50%`,"3/4":`75%`,"1/5":`20%`,"2/5":`40%`,"3/5":`60%`,"4/5":`80%`,"1/6":`16.666667%`,"5/6":`83.333333%`,"1/12":`8.333333%`,"5/12":`41.666667%`,"7/12":`58.333333%`,"11/12":`91.666667%`},v={none:`0`,sm:`2px`,"":`4px`,md:`6px`,lg:`8px`,xl:`12px`,"2xl":`16px`,"3xl":`24px`,full:`9999px`},y={sm:`0 1px 2px 0 rgba(0,0,0,.05)`,"":`0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)`,md:`0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)`,lg:`0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)`,xl:`0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)`,"2xl":`0 25px 50px -12px rgba(0,0,0,.25)`,inner:`inset 0 2px 4px 0 rgba(0,0,0,.05)`,none:`none`},b={xs:[`0.75rem`,`1rem`],sm:[`0.875rem`,`1.25rem`],base:[`1rem`,`1.5rem`],lg:[`1.125rem`,`1.75rem`],xl:[`1.25rem`,`1.75rem`],"2xl":[`1.5rem`,`2rem`],"3xl":[`1.875rem`,`2.25rem`],"4xl":[`2.25rem`,`2.5rem`],"5xl":[`3rem`,`1`],"6xl":[`3.75rem`,`1`],"7xl":[`4.5rem`,`1`],"8xl":[`6rem`,`1`],"9xl":[`8rem`,`1`]},x={thin:`100`,extralight:`200`,light:`300`,normal:`400`,medium:`500`,semibold:`600`,bold:`700`,extrabold:`800`,black:`900`},S={none:`1`,tight:`1.25`,snug:`1.375`,normal:`1.5`,relaxed:`1.625`,loose:`2`,3:`0.75rem`,4:`1rem`,5:`1.25rem`,6:`1.5rem`,7:`1.75rem`,8:`2rem`,9:`2.25rem`,10:`2.5rem`},C={tighter:`-0.05em`,tight:`-0.025em`,normal:`0em`,wide:`0.025em`,wider:`0.05em`,widest:`0.1em`},w={none:`0`,sm:`4px`,"":`8px`,md:`12px`,lg:`16px`,xl:`24px`,"2xl":`40px`,"3xl":`64px`},T=Object.fromEntries([0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100].map(e=>[String(e),String(e/100)])),E=new Set([`bg`,`surface`,`surfaceAlt`,`border`,`text`,`textMuted`,`primary`,`secondary`,`danger`,`warning`,`success`,`info`]),D={sm:`640px`,md:`768px`,lg:`1024px`,xl:`1280px`,"2xl":`1536px`},O=/javascript\s*:|vbscript\s*:|data\s*:\s*text\/html|data\s*:\s*text\/javascript|expression\s*\(|[\r\n\x00]/i,k=new Set([`behavior`,`-moz-binding`,`-webkit-binding`,`src`]),A=new Set(`width.min-width.max-width.height.min-height.max-height.margin.margin-top.margin-right.margin-bottom.margin-left.padding.padding-top.padding-right.padding-bottom.padding-left.position.top.right.bottom.left.z-index.inset.flex.flex-grow.flex-shrink.flex-basis.flex-direction.flex-wrap.align-items.align-self.align-content.justify-content.justify-items.justify-self.gap.row-gap.column-gap.grid-template-columns.grid-template-rows.grid-column.grid-row.grid-area.grid-template-areas.font-size.font-weight.font-family.font-style.line-height.letter-spacing.text-align.text-decoration.text-transform.text-overflow.white-space.word-break.word-wrap.overflow-wrap.color.background.background-color.background-image.background-position.background-size.background-repeat.opacity.border.border-top.border-right.border-bottom.border-left.border-width.border-style.border-color.border-radius.outline.outline-offset.box-shadow.text-shadow.filter.backdrop-filter.transform.transition.animation.display.overflow.overflow-x.overflow-y.visibility.pointer-events.cursor.user-select.aspect-ratio.object-fit.object-position.list-style.vertical-align.float.clear.resize.scroll-behavior.content`.split(`.`));function j(e){return O.test(e)||e.includes(`}`)||e.includes(`{`)||e.includes(`<`)||e.includes(`>`)?null:e}function M(e){let t=e.toLowerCase().trim();return k.has(t)||!A.has(t)?null:t}function N(e){let t=e.match(/^\[(.+)]$/);return t?j(t[1]):null}function P(e){return E.has(e)?`var(--tkx-${e})`:e===`transparent`?`transparent`:e===`current`?`currentColor`:e===`white`?`#ffffff`:e===`black`?`#000000`:e===`inherit`?`inherit`:N(e)||(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(e),e)}function F(e){let t=e.match(/^\[([a-zA-Z-]+):(.+)]$/);if(t){let e=M(t[1]),n=j(t[2]);return e&&n?{[e]:n}:null}let n={flex:`flex`,"inline-flex":`inline-flex`,grid:`grid`,"inline-grid":`inline-grid`,block:`block`,"inline-block":`inline-block`,inline:`inline`,hidden:`none`,contents:`contents`,"flow-root":`flow-root`,table:`table`,"table-row":`table-row`,"table-cell":`table-cell`,"table-caption":`table-caption`,"list-item":`list-item`};if(n[e])return{display:n[e]};let r={"flex-row":`row`,"flex-col":`column`,"flex-row-reverse":`row-reverse`,"flex-col-reverse":`column-reverse`};if(r[e])return{"flex-direction":r[e]};let i={"flex-wrap":`wrap`,"flex-nowrap":`nowrap`,"flex-wrap-reverse":`wrap-reverse`};if(i[e])return{"flex-wrap":i[e]};let a={"flex-1":`1 1 0%`,"flex-auto":`1 1 auto`,"flex-none":`none`,"flex-initial":`0 1 auto`};if(a[e])return{flex:a[e]};if(e===`grow`||e===`flex-grow`)return{"flex-grow":`1`};if(e===`grow-0`)return{"flex-grow":`0`};if(e===`shrink`||e===`flex-shrink`)return{"flex-shrink":`1`};if(e===`shrink-0`||e===`flex-shrink-0`)return{"flex-shrink":`0`};let o={"items-start":`flex-start`,"items-end":`flex-end`,"items-center":`center`,"items-stretch":`stretch`,"items-baseline":`baseline`};if(o[e])return{"align-items":o[e]};let s={"justify-start":`flex-start`,"justify-end":`flex-end`,"justify-center":`center`,"justify-between":`space-between`,"justify-around":`space-around`,"justify-evenly":`space-evenly`,"justify-stretch":`stretch`,"justify-normal":`normal`};if(s[e])return{"justify-content":s[e]};let c={"self-auto":`auto`,"self-start":`flex-start`,"self-end":`flex-end`,"self-center":`center`,"self-stretch":`stretch`,"self-baseline":`baseline`};if(c[e])return{"align-self":c[e]};let l={"content-start":`flex-start`,"content-end":`flex-end`,"content-center":`center`,"content-between":`space-between`,"content-around":`space-around`,"content-evenly":`space-evenly`,"content-stretch":`stretch`};if(l[e])return{"align-content":l[e]};let u;if(u=e.match(/^grid-cols-(\d+|none|subgrid)$/))return{"grid-template-columns":u[1]===`none`?`none`:u[1]===`subgrid`?`subgrid`:`repeat(${u[1]},minmax(0,1fr))`};if(u=e.match(/^grid-rows-(\d+|none|subgrid)$/))return{"grid-template-rows":u[1]===`none`?`none`:u[1]===`subgrid`?`subgrid`:`repeat(${u[1]},minmax(0,1fr))`};if(u=e.match(/^col-span-(full|\d+)$/))return{"grid-column":u[1]===`full`?`1 / -1`:`span ${u[1]} / span ${u[1]}`};if(u=e.match(/^col-start-(\d+|auto)$/))return{"grid-column-start":u[1]};if(u=e.match(/^col-end-(\d+|auto)$/))return{"grid-column-end":u[1]};if(u=e.match(/^row-span-(full|\d+)$/))return{"grid-row":u[1]===`full`?`1 / -1`:`span ${u[1]} / span ${u[1]}`};if(u=e.match(/^row-start-(\d+|auto)$/))return{"grid-row-start":u[1]};if(u=e.match(/^row-end-(\d+|auto)$/))return{"grid-row-end":u[1]};if(e===`grid-flow-row`)return{"grid-auto-flow":`row`};if(e===`grid-flow-col`)return{"grid-auto-flow":`column`};if(e===`grid-flow-dense`)return{"grid-auto-flow":`dense`};if(e===`grid-flow-row-dense`)return{"grid-auto-flow":`row dense`};if(e===`grid-flow-col-dense`)return{"grid-auto-flow":`column dense`};if(u=e.match(/^p-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{padding:e}}if(u=e.match(/^px-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"padding-left":e,"padding-right":e}}if(u=e.match(/^py-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"padding-top":e,"padding-bottom":e}}if(u=e.match(/^pt-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"padding-top":e}}if(u=e.match(/^pr-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"padding-right":e}}if(u=e.match(/^pb-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"padding-bottom":e}}if(u=e.match(/^pl-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"padding-left":e}}if(u=e.match(/^-?m-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n)return{margin:t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?mx-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n){let e=t&&n!==`0`?`-${n}`:n;return{"margin-left":e,"margin-right":e}}}if(u=e.match(/^-?my-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n){let e=t&&n!==`0`?`-${n}`:n;return{"margin-top":e,"margin-bottom":e}}}if(u=e.match(/^-?mt-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n)return{"margin-top":t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?mr-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n)return{"margin-right":t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?mb-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n)return{"margin-bottom":t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?ml-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??N(u[1]);if(n)return{"margin-left":t&&n!==`0`?`-${n}`:n}}if(e===`mx-auto`)return{"margin-left":`auto`,"margin-right":`auto`};if(e===`my-auto`)return{"margin-top":`auto`,"margin-bottom":`auto`};if(u=e.match(/^gap-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{gap:e}}if(u=e.match(/^gap-x-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"column-gap":e}}if(u=e.match(/^gap-y-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"row-gap":e}}if(u=e.match(/^w-(.+)$/)){let e=u[1],t=h[e]??_[e]??N(e);if(t)return{width:t}}if(u=e.match(/^min-w-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"min-width":e}}if(u=e.match(/^max-w-(.+)$/)){let e={none:`none`,xs:`20rem`,sm:`24rem`,md:`28rem`,lg:`32rem`,xl:`36rem`,"2xl":`42rem`,"3xl":`48rem`,"4xl":`56rem`,"5xl":`64rem`,"6xl":`72rem`,"7xl":`80rem`,full:`100%`,screen:`100vw`,min:`min-content`,max:`max-content`,fit:`fit-content`}[u[1]]??h[u[1]]??N(u[1]);if(e)return{"max-width":e}}if(u=e.match(/^h-(.+)$/)){let e=u[1],t=g[e]??_[e]??N(e);if(t)return{height:t}}if(u=e.match(/^min-h-(.+)$/)){let e={0:`0`,full:`100%`,screen:`100vh`,svh:`100svh`,dvh:`100dvh`}[u[1]]??h[u[1]]??N(u[1]);if(e)return{"min-height":e}}if(u=e.match(/^max-h-(.+)$/)){let e=g[u[1]]??N(u[1]);if(e)return{"max-height":e}}if(u=e.match(/^size-(.+)$/)){let e=h[u[1]]??_[u[1]]??N(u[1]);if(e)return{width:e,height:e}}if(u=e.match(/^text-(xs|sm|base|lg|[2-9]xl|\d+xl)$/)){let[e,t]=b[u[1]]??[`1rem`,`1.5rem`];return{"font-size":e,"line-height":t}}if(u=e.match(/^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black|\d+)$/))return{"font-weight":x[u[1]]??u[1]};if(u=e.match(/^leading-(.+)$/)){let e=S[u[1]]??N(u[1]);if(e)return{"line-height":e}}if(u=e.match(/^tracking-(.+)$/)){let e=C[u[1]]??N(u[1]);if(e)return{"letter-spacing":e}}let d={"text-left":`left`,"text-center":`center`,"text-right":`right`,"text-justify":`justify`,"text-start":`start`,"text-end":`end`};if(d[e])return{"text-align":d[e]};if(e===`italic`)return{"font-style":`italic`};if(e===`not-italic`)return{"font-style":`normal`};if(e===`uppercase`)return{"text-transform":`uppercase`};if(e===`lowercase`)return{"text-transform":`lowercase`};if(e===`capitalize`)return{"text-transform":`capitalize`};if(e===`normal-case`)return{"text-transform":`none`};if(e===`underline`)return{"text-decoration-line":`underline`};if(e===`overline`)return{"text-decoration-line":`overline`};if(e===`line-through`)return{"text-decoration-line":`line-through`};if(e===`no-underline`)return{"text-decoration-line":`none`};if(e===`truncate`)return{overflow:`hidden`,"text-overflow":`ellipsis`,"white-space":`nowrap`};if(e===`text-ellipsis`)return{"text-overflow":`ellipsis`};if(e===`text-clip`)return{"text-overflow":`clip`};if(e===`whitespace-normal`)return{"white-space":`normal`};if(e===`whitespace-nowrap`)return{"white-space":`nowrap`};if(e===`whitespace-pre`)return{"white-space":`pre`};if(e===`whitespace-pre-wrap`)return{"white-space":`pre-wrap`};if(e===`whitespace-pre-line`)return{"white-space":`pre-line`};if(e===`break-words`)return{"overflow-wrap":`break-word`};if(e===`break-all`)return{"word-break":`break-all`};if(e===`break-keep`)return{"word-break":`keep-all`};if(e===`font-mono`)return{"font-family":`var(--tkx-font-mono,monospace)`};if(e===`font-sans`)return{"font-family":`var(--tkx-font-family,system-ui,sans-serif)`};if(e===`font-serif`)return{"font-family":`ui-serif,Georgia,serif`};if(e===`antialiased`)return{"-webkit-font-smoothing":`antialiased`,"-moz-osx-font-smoothing":`grayscale`};if(u=e.match(/^indent-(.+)$/)){let e=h[u[1]]??N(u[1]);if(e)return{"text-indent":e}}if(u=e.match(/^line-clamp-(\d+)$/))return{overflow:`hidden`,display:`-webkit-box`,"-webkit-line-clamp":u[1],"-webkit-box-orient":`vertical`};if(u=e.match(/^text-(.+)$/)){let[e,t]=u[1].split(`/`),n=P(e);if(![`left`,`center`,`right`,`justify`,`start`,`end`,`xs`,`sm`,`base`,`lg`,`xl`,`2xl`,`3xl`,`4xl`,`5xl`,`6xl`,`7xl`,`8xl`,`9xl`].includes(e)){if(t){let e=parseInt(t)/100;return{color:n,opacity:String(e)}}return{color:n}}}if(u=e.match(/^bg-(.+)$/)){let[e,t]=u[1].split(`/`),n=P(e);return t?{"background-color":n,opacity:String(parseInt(t)/100)}:e===`none`?{background:`none`}:{"background-color":n}}if(u=e.match(/^border-color-(.+)$/))return{"border-color":P(u[1])};if(u=e.match(/^fill-(.+)$/))return{fill:P(u[1])};if(u=e.match(/^stroke-(.+)$/))return{stroke:P(u[1])};if(u=e.match(/^shadow-color-(.+)$/))return{"--tkx-shadow-color":P(u[1])};if(u=e.match(/^ring-color-(.+)$/))return{"--tkx-ring-color":P(u[1])};if(u=e.match(/^accent-(.+)$/))return{"accent-color":P(u[1])};if(u=e.match(/^caret-(.+)$/))return{"caret-color":P(u[1])};if(u=e.match(/^outline-color-(.+)$/))return{"outline-color":P(u[1])};if(e===`border`)return{"border-width":`1px`};if(u=e.match(/^border-(\d+)$/))return{"border-width":`${u[1]}px`};if(e===`border-t`)return{"border-top-width":`1px`};if(u=e.match(/^border-t-(\d+)$/))return{"border-top-width":`${u[1]}px`};if(e===`border-r`)return{"border-right-width":`1px`};if(u=e.match(/^border-r-(\d+)$/))return{"border-right-width":`${u[1]}px`};if(e===`border-b`)return{"border-bottom-width":`1px`};if(u=e.match(/^border-b-(\d+)$/))return{"border-bottom-width":`${u[1]}px`};if(e===`border-l`)return{"border-left-width":`1px`};if(u=e.match(/^border-l-(\d+)$/))return{"border-left-width":`${u[1]}px`};if(e===`border-x`)return{"border-left-width":`1px`,"border-right-width":`1px`};if(e===`border-y`)return{"border-top-width":`1px`,"border-bottom-width":`1px`};if(e===`border-none`)return{"border-style":`none`};if(e===`border-solid`)return{"border-style":`solid`};if(e===`border-dashed`)return{"border-style":`dashed`};if(e===`border-dotted`)return{"border-style":`dotted`};if(e===`border-double`)return{"border-style":`double`};if((u=e.match(/^border-([a-zA-Z].*)$/))&&E.has(u[1]))return{"border-color":`var(--tkx-${u[1]})`};if(u=e.match(/^border-\[(.+)]$/))return{"border-color":u[1]};if(e===`border-0`)return{"border-width":`0`};if(e===`rounded`)return{"border-radius":v[``]};if(u=e.match(/^rounded-(none|sm|md|lg|xl|2xl|3xl|full|\[.+])$/))return{"border-radius":v[u[1]]??N(u[1])??u[1]};if(u=e.match(/^rounded-(t|r|b|l|tl|tr|br|bl)(?:-(none|sm|md|lg|xl|2xl|3xl|full))?$/)){let e=u[1],t=v[u[2]??``]??v[``];return{t:{"border-top-left-radius":t,"border-top-right-radius":t},r:{"border-top-right-radius":t,"border-bottom-right-radius":t},b:{"border-bottom-left-radius":t,"border-bottom-right-radius":t},l:{"border-top-left-radius":t,"border-bottom-left-radius":t},tl:{"border-top-left-radius":t},tr:{"border-top-right-radius":t},br:{"border-bottom-right-radius":t},bl:{"border-bottom-left-radius":t}}[e]??{}}let f={0:`0`,1:`1px`,2:`2px`,ring:`3px`,4:`4px`,8:`8px`};if(e===`ring`)return{"box-shadow":`0 0 0 3px var(--tkx-ring-color,var(--tkx-primary))`};if((u=e.match(/^ring-(\d+)$/))&&f[u[1]])return{"box-shadow":`0 0 0 ${f[u[1]]} var(--tkx-ring-color,var(--tkx-primary))`};if(e===`ring-inset`)return{"--tkx-ring-offset":`inset`};if(u=e.match(/^ring-offset-(\d+)$/))return{"--tkx-ring-offset-width":`${u[1]}px`,"box-shadow":`0 0 0 ${u[1]}px var(--tkx-bg)`};if(e===`shadow`)return{"box-shadow":y[``]};if(u=e.match(/^shadow-(sm|md|lg|xl|2xl|inner|none)$/))return{"box-shadow":y[u[1]]};if(u=e.match(/^opacity-(\d+)$/)){let e=T[u[1]];if(e!==void 0)return{opacity:e}}if(e===`bg-none`)return{background:`none`};let p={"bg-auto":`auto`,"bg-cover":`cover`,"bg-contain":`contain`};if(p[e])return{"background-size":p[e]};let m={"bg-center":`center`,"bg-top":`top`,"bg-bottom":`bottom`,"bg-left":`left`,"bg-right":`right`};if(m[e])return{"background-position":m[e]};let D={"bg-repeat":`repeat`,"bg-no-repeat":`no-repeat`,"bg-repeat-x":`repeat-x`,"bg-repeat-y":`repeat-y`};if(D[e])return{"background-repeat":D[e]};if(e===`backdrop-blur`)return{"backdrop-filter":`blur(${w[``]})`};if(u=e.match(/^backdrop-blur-(none|sm|md|lg|xl|2xl|3xl)$/))return{"backdrop-filter":`blur(${w[u[1]]})`};if(e===`blur`)return{filter:`blur(${w[``]})`};if(u=e.match(/^blur-(none|sm|md|lg|xl|2xl|3xl)$/))return{filter:`blur(${w[u[1]]})`};if(e===`grayscale`)return{filter:`grayscale(100%)`};if(e===`grayscale-0`)return{filter:`grayscale(0)`};if(e===`invert`)return{filter:`invert(100%)`};if(e===`invert-0`)return{filter:`invert(0)`};let O={static:`static`,relative:`relative`,absolute:`absolute`,fixed:`fixed`,sticky:`sticky`};if(O[e])return{position:O[e]};if(e===`inset-0`)return{top:`0`,right:`0`,bottom:`0`,left:`0`};if(e===`inset-auto`)return{top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};if(e===`inset-full`)return{top:`100%`,right:`100%`,bottom:`100%`,left:`100%`};if(e===`inset-x-0`)return{left:`0`,right:`0`};if(e===`inset-y-0`)return{top:`0`,bottom:`0`};if(u=e.match(/^-?top-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??_[u[1]]??N(u[1]);if(n)return{top:t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?right-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??_[u[1]]??N(u[1]);if(n)return{right:t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?bottom-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??_[u[1]]??N(u[1]);if(n)return{bottom:t&&n!==`0`?`-${n}`:n}}if(u=e.match(/^-?left-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??_[u[1]]??N(u[1]);if(n)return{left:t&&n!==`0`?`-${n}`:n}}let k={0:`0`,10:`10`,20:`20`,30:`30`,40:`40`,50:`50`,100:`100`,1e3:`1000`,9e3:`9000`,auto:`auto`};if(u=e.match(/^z-(.+)$/)){let e=k[u[1]]??N(u[1]);if(e)return{"z-index":e}}let A={"overflow-auto":`auto`,"overflow-hidden":`hidden`,"overflow-visible":`visible`,"overflow-scroll":`scroll`,"overflow-clip":`clip`};if(A[e])return{overflow:A[e]};if(u=e.match(/^overflow-(x|y)-(auto|hidden|visible|scroll|clip)$/))return{[`overflow-${u[1]}`]:u[2]};if(e===`scrollbar-hide`)return{"-ms-overflow-style":`none`,"scrollbar-width":`none`};if(e===`visible`)return{visibility:`visible`};if(e===`invisible`)return{visibility:`hidden`};if(e===`collapse`)return{visibility:`collapse`};let F={"cursor-auto":`auto`,"cursor-default":`default`,"cursor-pointer":`pointer`,"cursor-wait":`wait`,"cursor-text":`text`,"cursor-move":`move`,"cursor-help":`help`,"cursor-not-allowed":`not-allowed`,"cursor-none":`none`,"cursor-grab":`grab`,"cursor-grabbing":`grabbing`,"cursor-zoom-in":`zoom-in`,"cursor-zoom-out":`zoom-out`,"cursor-crosshair":`crosshair`};if(F[e])return{cursor:F[e]};if(e===`select-none`)return{"user-select":`none`};if(e===`select-text`)return{"user-select":`text`};if(e===`select-all`)return{"user-select":`all`};if(e===`select-auto`)return{"user-select":`auto`};if(e===`pointer-events-none`)return{"pointer-events":`none`};if(e===`pointer-events-auto`)return{"pointer-events":`auto`};let I={0:`0`,50:`.5`,75:`.75`,90:`.9`,95:`.95`,100:`1`,105:`1.05`,110:`1.1`,125:`1.25`,150:`1.5`};if(u=e.match(/^scale-(.+)$/)){let e=I[u[1]]??N(u[1]);if(e)return{transform:`scale(${e})`}}if(u=e.match(/^scale-x-(.+)$/)){let e=I[u[1]]??N(u[1]);if(e)return{transform:`scaleX(${e})`}}if(u=e.match(/^scale-y-(.+)$/)){let e=I[u[1]]??N(u[1]);if(e)return{transform:`scaleY(${e})`}}let L={0:`0deg`,1:`1deg`,2:`2deg`,3:`3deg`,6:`6deg`,12:`12deg`,45:`45deg`,90:`90deg`,180:`180deg`};if(u=e.match(/^-?rotate-(.+)$/)){let t=e.startsWith(`-`),n=L[u[1]]??N(u[1]);if(n)return{transform:t?`rotate(-${n})`:`rotate(${n})`}}if(u=e.match(/^-?translate-x-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??_[u[1]]??N(u[1]);if(n)return{transform:`translateX(${t&&n!==`0`?`-${n}`:n})`}}if(u=e.match(/^-?translate-y-(.+)$/)){let t=e.startsWith(`-`),n=h[u[1]]??_[u[1]]??N(u[1]);if(n)return{transform:`translateY(${t&&n!==`0`?`-${n}`:n})`}}if(u=e.match(/^-?skew-x-(.+)$/)){let t=e.startsWith(`-`),n=N(u[1])??`${u[1]}deg`;return{transform:t?`skewX(-${n})`:`skewX(${n})`}}if(u=e.match(/^-?skew-y-(.+)$/)){let t=e.startsWith(`-`),n=N(u[1])??`${u[1]}deg`;return{transform:t?`skewY(-${n})`:`skewY(${n})`}}let R={"origin-center":`center`,"origin-top":`top`,"origin-top-right":`top right`,"origin-right":`right`,"origin-bottom-right":`bottom right`,"origin-bottom":`bottom`,"origin-bottom-left":`bottom left`,"origin-left":`left`,"origin-top-left":`top left`};if(R[e])return{"transform-origin":R[e]};let z={transition:`color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter`,"transition-all":`all`,"transition-colors":`color,background-color,border-color,text-decoration-color,fill,stroke`,"transition-opacity":`opacity`,"transition-shadow":`box-shadow`,"transition-transform":`transform`,"transition-none":`none`};if(z[e])return{"transition-property":z[e],"transition-timing-function":`cubic-bezier(0.4,0,0.2,1)`,"transition-duration":`150ms`};let B={75:`75ms`,100:`100ms`,150:`150ms`,200:`200ms`,300:`300ms`,500:`500ms`,700:`700ms`,1e3:`1000ms`};if(u=e.match(/^duration-(.+)$/)){let e=B[u[1]]??N(u[1]);if(e)return{"transition-duration":e}}if(u=e.match(/^delay-(.+)$/)){let e=B[u[1]]??N(u[1]);if(e)return{"transition-delay":e}}let V={"ease-linear":`linear`,"ease-in":`cubic-bezier(0.4,0,1,1)`,"ease-out":`cubic-bezier(0,0,0.2,1)`,"ease-in-out":`cubic-bezier(0.4,0,0.2,1)`};if(V[e])return{"transition-timing-function":V[e]};let H={"animate-none":`none`,"animate-spin":`tkx-spin 1s linear infinite`,"animate-ping":`tkx-ping 1s cubic-bezier(0,0,0.2,1) infinite`,"animate-pulse":`tkx-pulse 2s cubic-bezier(0.4,0,0.6,1) infinite`,"animate-bounce":`tkx-bounce 1s infinite`,"animate-fade-in":`tkx-fade-in 200ms ease both`,"animate-slide-up":`tkx-slide-up 200ms ease both`,"animate-shimmer":`tkx-shimmer 1.5s infinite`};if(H[e])return{animation:H[e]};let U={"object-contain":`contain`,"object-cover":`cover`,"object-fill":`fill`,"object-none":`none`,"object-scale-down":`scale-down`};return U[e]?{"object-fit":U[e]}:e===`aspect-square`?{"aspect-ratio":`1 / 1`}:e===`aspect-video`?{"aspect-ratio":`16 / 9`}:e===`aspect-auto`?{"aspect-ratio":`auto`}:(u=e.match(/^aspect-\[(.+)]$/))?{"aspect-ratio":u[1]}:e===`list-none`?{"list-style-type":`none`}:e===`list-disc`?{"list-style-type":`disc`}:e===`list-decimal`?{"list-style-type":`decimal`}:e===`list-inside`?{"list-style-position":`inside`}:e===`list-outside`?{"list-style-position":`outside`}:(u=e.match(/^columns-(\d+)$/))?{columns:u[1]}:e===`resize`?{resize:`both`}:e===`resize-none`?{resize:`none`}:e===`resize-x`?{resize:`horizontal`}:e===`resize-y`?{resize:`vertical`}:e===`sr-only`?{position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0,0,0,0)`,"white-space":`nowrap`,border:`0`}:e===`not-sr-only`?{position:`static`,width:`auto`,height:`auto`,padding:`0`,margin:`0`,overflow:`visible`,clip:`auto`,"white-space":`normal`}:e===`focus-ring`?{outline:`2px solid var(--tkx-primary)`,"outline-offset":`2px`,"border-radius":`2px`}:e===`appearance-none`?{appearance:`none`}:e===`outline-none`?{outline:`none`}:e===`outline`?{outline:`2px solid currentColor`,"outline-offset":`2px`}:e===`float-left`?{float:`left`}:e===`float-right`?{float:`right`}:e===`float-none`?{float:`none`}:e===`clear-both`?{clear:`both`}:e===`isolate`?{isolation:`isolate`}:e===`isolation-auto`?{isolation:`auto`}:(u=e.match(/^will-change-(.+)$/))?{"will-change":u[1]}:e===`touch-manipulation`?{"touch-action":`manipulation`}:e===`touch-none`?{"touch-action":`none`}:e===`touch-pan-x`?{"touch-action":`pan-x`}:e===`touch-pan-y`?{"touch-action":`pan-y`}:e===`scroll-smooth`?{"scroll-behavior":`smooth`}:e===`scroll-auto`?{"scroll-behavior":`auto`}:(u=e.match(/^\[(--[a-zA-Z0-9-]+):(.+)]$/))?{[u[1]]:u[2]}:$(e)||null}function I(e){let t=0,n=-1;for(let r=0;r<e.length;r++)if(e[r]===`[`)t++;else if(e[r]===`]`)t--;else if(e[r]===`:`&&t===0){n=r;break}return n===-1?{variant:null,utility:e}:{variant:e.slice(0,n),utility:e.slice(n+1)}}function L(e,t){for(let[n,r]of Object.entries(t))e[n]=r}function R(e){return Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`;`)}var z=new Map,B=null,V=null;function H(){return(!B||!B.isConnected)&&(B=document.getElementById(`tkx-atomic`),B||(B=document.createElement(`style`),B.id=`tkx-atomic`,document.head.appendChild(B))),B}function U(){if(V)return V;try{let e=new CSSStyleSheet;return document.adoptedStyleSheets=[...document.adoptedStyleSheets,e],V=e,e}catch{return null}}function W(e,t){if(z.has(e)||(z.set(e,t),typeof document>`u`))return;let n=U();if(n){let e=G(t);for(let t of e)try{n.insertRule(t,n.cssRules.length)}catch{H().textContent+=t+`
2
- `}}else H().textContent+=t+`
3
- `}function G(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++)if(e[i]===`{`)n++;else if(e[i]===`}`&&(n--,n===0)){let n=e.slice(r,i+1).trim();n&&t.push(n),r=i+1}return t}function K(e){let t=[];for(let n of e)if(n){if(typeof n==`string`)t.push(...n.split(/\s+/).filter(Boolean));else if(Array.isArray(n))t.push(...K(n));else if(typeof n==`object`)for(let[e,r]of Object.entries(n))r&&t.push(e)}return t}function q(...t){let n=K(t);if(n.length===0)return``;let r={base:{},variants:{}};for(let e of n){let{variant:t,utility:n}=I(e),i=F(n);i&&(t?(r.variants[t]||(r.variants[t]={}),L(r.variants[t],i)):L(r.base,i))}let i=[],a=R(r.base),o=e.I([a,...Object.entries(r.variants).map(([e,t])=>`${e}{${R(t)}}`)].join(`|`)),s=`tkx-${o}`;a&&i.push(`.${s}{${a}}`);for(let[e,t]of Object.entries(r.variants)){let n=R(t);if(n)if(e.startsWith(`@`)){let t=D[e.slice(1)];t&&i.push(`@media(min-width:${t}){.${s}{${n}}}`)}else if(e===`motion-safe`)i.push(`@media(prefers-reduced-motion:no-preference){.${s}{${n}}}`);else if(e===`motion-reduce`)i.push(`@media(prefers-reduced-motion:reduce){.${s}{${n}}}`);else if(e===`contrast-more`)i.push(`@media(prefers-contrast:more){.${s}{${n}}}`);else if(e===`forced-colors`)i.push(`@media(forced-colors:active){.${s}{${n}}}`);else if(e===`dark`)i.push(`@media(prefers-color-scheme:dark){.${s}{${n}}}`);else if(e===`print`)i.push(`@media print{.${s}{${n}}}`);else if(e===`group-hover`)i.push(`.group:hover .${s}{${n}}`);else if(e===`group-focus`)i.push(`.group:focus-within .${s}{${n}}`);else if(e===`peer-hover`)i.push(`.peer:hover~.${s}{${n}}`);else{let t={hover:`:hover`,focus:`:focus`,"focus-visible":`:focus-visible`,"focus-within":`:focus-within`,active:`:active`,disabled:`:disabled`,checked:`:checked`,required:`:required`,valid:`:valid`,invalid:`:invalid`,first:`:first-child`,last:`:last-child`,odd:`:nth-child(odd)`,even:`:nth-child(even)`,"first-of-type":`:first-of-type`,"last-of-type":`:last-of-type`,"only-child":`:only-child`,"only-of-type":`:only-of-type`,empty:`:empty`,visited:`:visited`,target:`:target`,"placeholder-shown":`:placeholder-shown`,"read-only":`:read-only`,before:`::before`,after:`::after`,placeholder:`::placeholder`,selection:`::selection`,"file-selector":`::file-selector-button`,marker:`::marker`}[e]??`:${e}`;i.push(`.${s}${t}{${n}}`)}}return i.length>0&&W(o,i.join(``)),s}var J=q;function Y(){return Array.from(z.values()).join(`
4
- `)}function X(){z.clear(),B=null,V&&typeof document<`u`&&(document.adoptedStyleSheets=document.adoptedStyleSheets.filter(e=>e!==V),V=null)}function Z(...e){return e.filter(Boolean).join(` `)}var Q=new Map;function ee(e){Q.set(e.name,e.utilities)}function te(e){Q.delete(e)}function ne(){return Array.from(Q.keys())}function $(e){for(let t of Q.values())if(t[e])return t[e];return null}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return m}});