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.
- package/dist/{TkxForm-9-W3Nl6m.js → TkxForm-BaO4wvXt.js} +109 -103
- package/dist/{TkxForm-1KDzoniV.cjs → TkxForm-M6ttomry.cjs} +1 -1
- package/dist/charts.cjs +1 -1
- package/dist/charts.js +1 -0
- package/dist/headless.cjs +1 -1
- package/dist/headless.js +3 -2
- package/dist/index.cjs +10 -10
- package/dist/index.js +953 -896
- package/dist/quantum.cjs +9 -9
- package/dist/quantum.js +160 -115
- package/dist/realtime.cjs +1 -1
- package/dist/realtime.js +1 -1
- package/dist/src/charts/TkxAreaChart.d.ts.map +1 -1
- package/dist/src/charts/TkxBarChart.d.ts.map +1 -1
- package/dist/src/charts/TkxDonutChart.d.ts.map +1 -1
- package/dist/src/charts/TkxLineChart.d.ts.map +1 -1
- package/dist/src/charts/TkxPieChart.d.ts.map +1 -1
- package/dist/src/charts/TkxRadarChart.d.ts.map +1 -1
- package/dist/src/charts/TkxScatterChart.d.ts.map +1 -1
- package/dist/src/charts/index.d.ts.map +1 -1
- package/dist/src/charts/shared.d.ts.map +1 -1
- package/dist/src/components/TkxAIChatBubble.d.ts.map +1 -1
- package/dist/src/components/TkxAIConfidenceBar.d.ts.map +1 -1
- package/dist/src/components/TkxAIThinking.d.ts.map +1 -1
- package/dist/src/components/TkxAccordion.d.ts.map +1 -1
- package/dist/src/components/TkxAffix.d.ts.map +1 -1
- package/dist/src/components/TkxAlert.d.ts.map +1 -1
- package/dist/src/components/TkxAnchor.d.ts.map +1 -1
- package/dist/src/components/TkxAppBar.d.ts.map +1 -1
- package/dist/src/components/TkxAutocomplete.d.ts.map +1 -1
- package/dist/src/components/TkxAvatar.d.ts.map +1 -1
- package/dist/src/components/TkxBadge.d.ts.map +1 -1
- package/dist/src/components/TkxBottomNav.d.ts.map +1 -1
- package/dist/src/components/TkxBreadcrumb.d.ts.map +1 -1
- package/dist/src/components/TkxButton.d.ts.map +1 -1
- package/dist/src/components/TkxCard.d.ts.map +1 -1
- package/dist/src/components/TkxCarousel.d.ts.map +1 -1
- package/dist/src/components/TkxCascader.d.ts.map +1 -1
- package/dist/src/components/TkxChat.d.ts.map +1 -1
- package/dist/src/components/TkxCheckbox.d.ts.map +1 -1
- package/dist/src/components/TkxClock.d.ts.map +1 -1
- package/dist/src/components/TkxColorPicker.d.ts.map +1 -1
- package/dist/src/components/TkxCommand.d.ts.map +1 -1
- package/dist/src/components/TkxConfigProvider.d.ts.map +1 -1
- package/dist/src/components/TkxDataGrid.d.ts.map +1 -1
- package/dist/src/components/TkxDatePicker.d.ts +1 -1
- package/dist/src/components/TkxDatePicker.d.ts.map +1 -1
- package/dist/src/components/TkxDivider.d.ts.map +1 -1
- package/dist/src/components/TkxDrawer.d.ts.map +1 -1
- package/dist/src/components/TkxDropdown.d.ts.map +1 -1
- package/dist/src/components/TkxEmpty.d.ts.map +1 -1
- package/dist/src/components/TkxFileUpload.d.ts.map +1 -1
- package/dist/src/components/TkxForm.d.ts.map +1 -1
- package/dist/src/components/TkxIcon.d.ts.map +1 -1
- package/dist/src/components/TkxImage.d.ts.map +1 -1
- package/dist/src/components/TkxInput.d.ts.map +1 -1
- package/dist/src/components/TkxLayout.d.ts.map +1 -1
- package/dist/src/components/TkxList.d.ts.map +1 -1
- package/dist/src/components/TkxLiveFeed.d.ts.map +1 -1
- package/dist/src/components/TkxLiveLog.d.ts.map +1 -1
- package/dist/src/components/TkxLiveMetrics.d.ts.map +1 -1
- package/dist/src/components/TkxLogo.d.ts.map +1 -1
- package/dist/src/components/TkxMasonry.d.ts.map +1 -1
- package/dist/src/components/TkxMentions.d.ts.map +1 -1
- package/dist/src/components/TkxMenu.d.ts.map +1 -1
- package/dist/src/components/TkxModal.d.ts.map +1 -1
- package/dist/src/components/TkxNumberInput.d.ts.map +1 -1
- package/dist/src/components/TkxOTP.d.ts.map +1 -1
- package/dist/src/components/TkxPagination.d.ts.map +1 -1
- package/dist/src/components/TkxPlayground.d.ts +15 -1
- package/dist/src/components/TkxPlayground.d.ts.map +1 -1
- package/dist/src/components/TkxPopover.d.ts.map +1 -1
- package/dist/src/components/TkxProgress.d.ts.map +1 -1
- package/dist/src/components/TkxQRCode.d.ts.map +1 -1
- package/dist/src/components/TkxQuantumForm.d.ts.map +1 -1
- package/dist/src/components/TkxRadio.d.ts.map +1 -1
- package/dist/src/components/TkxRating.d.ts.map +1 -1
- package/dist/src/components/TkxRealTimeChart.d.ts.map +1 -1
- package/dist/src/components/TkxResult.d.ts.map +1 -1
- package/dist/src/components/TkxRichTextDisplay.d.ts.map +1 -1
- package/dist/src/components/TkxSegmented.d.ts.map +1 -1
- package/dist/src/components/TkxSelect.d.ts.map +1 -1
- package/dist/src/components/TkxSkeleton.d.ts.map +1 -1
- package/dist/src/components/TkxSlider.d.ts.map +1 -1
- package/dist/src/components/TkxSnackbar.d.ts.map +1 -1
- package/dist/src/components/TkxSpeedDial.d.ts.map +1 -1
- package/dist/src/components/TkxSpin.d.ts.map +1 -1
- package/dist/src/components/TkxStatistic.d.ts.map +1 -1
- package/dist/src/components/TkxStepper.d.ts.map +1 -1
- package/dist/src/components/TkxTable.d.ts.map +1 -1
- package/dist/src/components/TkxTabs.d.ts.map +1 -1
- package/dist/src/components/TkxTag.d.ts.map +1 -1
- package/dist/src/components/TkxThemeBuilder.d.ts.map +1 -1
- package/dist/src/components/TkxTimeline.d.ts.map +1 -1
- package/dist/src/components/TkxToast.d.ts.map +1 -1
- package/dist/src/components/TkxToggle.d.ts.map +1 -1
- package/dist/src/components/TkxToolbar.d.ts.map +1 -1
- package/dist/src/components/TkxTooltip.d.ts.map +1 -1
- package/dist/src/components/TkxTour.d.ts.map +1 -1
- package/dist/src/components/TkxTransferList.d.ts.map +1 -1
- package/dist/src/components/TkxTreeView.d.ts.map +1 -1
- package/dist/src/components/TkxTypography.d.ts.map +1 -1
- package/dist/src/components/TkxVideoPlayer.d.ts.map +1 -1
- package/dist/src/components/TkxWatermark.d.ts.map +1 -1
- package/dist/src/engine/security.d.ts +8 -0
- package/dist/src/engine/security.d.ts.map +1 -1
- package/dist/src/headless/index.d.ts.map +1 -1
- package/dist/src/headless/useControllable.d.ts.map +1 -1
- package/dist/src/headless/useDebounce.d.ts.map +1 -1
- package/dist/src/headless/useDisclosure.d.ts.map +1 -1
- package/dist/src/headless/useFormState.d.ts.map +1 -1
- package/dist/src/headless/useInfiniteQuery.d.ts.map +1 -1
- package/dist/src/headless/useIntersectionObserver.d.ts.map +1 -1
- package/dist/src/headless/useListSelection.d.ts.map +1 -1
- package/dist/src/headless/useLocalStorage.d.ts.map +1 -1
- package/dist/src/headless/useMediaQuery.d.ts.map +1 -1
- package/dist/src/headless/useRovingTabIndex.d.ts.map +1 -1
- package/dist/src/headless/useSSE.d.ts.map +1 -1
- package/dist/src/headless/useThrottle.d.ts.map +1 -1
- package/dist/src/headless/useWebSocket.d.ts.map +1 -1
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/tkx-BoP5V5zy.cjs +4 -0
- package/dist/{tkx-DQkvHdE5.js → tkx-mOKMzvUK.js} +4 -2
- package/package.json +1 -1
- package/src/charts/TkxAreaChart.tsx +3 -1
- package/src/charts/TkxBarChart.tsx +3 -1
- package/src/charts/TkxDonutChart.tsx +3 -1
- package/src/charts/TkxLineChart.tsx +3 -1
- package/src/charts/TkxPieChart.tsx +3 -1
- package/src/charts/TkxRadarChart.tsx +3 -1
- package/src/charts/TkxScatterChart.tsx +3 -1
- package/src/charts/index.ts +3 -1
- package/src/charts/shared.ts +3 -1
- package/src/components/TkxAIChatBubble.tsx +55 -8
- package/src/components/TkxAIConfidenceBar.tsx +3 -1
- package/src/components/TkxAIThinking.tsx +3 -1
- package/src/components/TkxAccordion.tsx +3 -1
- package/src/components/TkxAffix.tsx +3 -1
- package/src/components/TkxAlert.tsx +3 -1
- package/src/components/TkxAnchor.tsx +3 -1
- package/src/components/TkxAppBar.tsx +3 -1
- package/src/components/TkxAutocomplete.tsx +3 -1
- package/src/components/TkxAvatar.tsx +3 -1
- package/src/components/TkxBadge.tsx +3 -1
- package/src/components/TkxBottomNav.tsx +3 -1
- package/src/components/TkxBreadcrumb.tsx +3 -1
- package/src/components/TkxButton.tsx +3 -1
- package/src/components/TkxCard.tsx +3 -1
- package/src/components/TkxCarousel.tsx +3 -1
- package/src/components/TkxCascader.tsx +3 -1
- package/src/components/TkxChat.tsx +3 -1
- package/src/components/TkxCheckbox.tsx +3 -1
- package/src/components/TkxClock.tsx +3 -1
- package/src/components/TkxColorPicker.tsx +3 -1
- package/src/components/TkxCommand.tsx +3 -1
- package/src/components/TkxConfigProvider.tsx +3 -1
- package/src/components/TkxDataGrid.tsx +3 -1
- package/src/components/TkxDatePicker.tsx +76 -18
- package/src/components/TkxDivider.tsx +3 -1
- package/src/components/TkxDrawer.tsx +3 -1
- package/src/components/TkxDropdown.tsx +3 -1
- package/src/components/TkxEmpty.tsx +3 -1
- package/src/components/TkxFileUpload.tsx +3 -1
- package/src/components/TkxForm.tsx +22 -3
- package/src/components/TkxIcon.tsx +3 -1
- package/src/components/TkxImage.tsx +3 -1
- package/src/components/TkxInput.tsx +3 -1
- package/src/components/TkxLayout.tsx +3 -1
- package/src/components/TkxList.tsx +3 -1
- package/src/components/TkxLiveFeed.tsx +3 -1
- package/src/components/TkxLiveLog.tsx +3 -1
- package/src/components/TkxLiveMetrics.tsx +3 -1
- package/src/components/TkxLogo.tsx +3 -1
- package/src/components/TkxMasonry.tsx +3 -1
- package/src/components/TkxMentions.tsx +3 -1
- package/src/components/TkxMenu.tsx +3 -1
- package/src/components/TkxModal.tsx +3 -1
- package/src/components/TkxNumberInput.tsx +3 -1
- package/src/components/TkxOTP.tsx +3 -1
- package/src/components/TkxPagination.tsx +3 -1
- package/src/components/TkxPlayground.tsx +77 -3
- package/src/components/TkxPopover.tsx +3 -1
- package/src/components/TkxProgress.tsx +3 -1
- package/src/components/TkxQRCode.tsx +3 -1
- package/src/components/TkxQuantumForm.tsx +3 -1
- package/src/components/TkxRadio.tsx +3 -1
- package/src/components/TkxRating.tsx +3 -1
- package/src/components/TkxRealTimeChart.tsx +3 -1
- package/src/components/TkxResult.tsx +3 -1
- package/src/components/TkxRichTextDisplay.tsx +3 -1
- package/src/components/TkxSegmented.tsx +3 -1
- package/src/components/TkxSelect.tsx +3 -1
- package/src/components/TkxSkeleton.tsx +3 -1
- package/src/components/TkxSlider.tsx +3 -1
- package/src/components/TkxSnackbar.tsx +3 -1
- package/src/components/TkxSpeedDial.tsx +3 -1
- package/src/components/TkxSpin.tsx +3 -1
- package/src/components/TkxStatistic.tsx +3 -1
- package/src/components/TkxStepper.tsx +3 -1
- package/src/components/TkxTable.tsx +3 -1
- package/src/components/TkxTabs.tsx +3 -1
- package/src/components/TkxTag.tsx +3 -1
- package/src/components/TkxThemeBuilder.tsx +3 -1
- package/src/components/TkxTimeline.tsx +3 -1
- package/src/components/TkxToast.tsx +3 -1
- package/src/components/TkxToggle.tsx +3 -1
- package/src/components/TkxToolbar.tsx +3 -1
- package/src/components/TkxTooltip.tsx +15 -2
- package/src/components/TkxTour.tsx +3 -1
- package/src/components/TkxTransferList.tsx +3 -1
- package/src/components/TkxTreeView.tsx +3 -1
- package/src/components/TkxTypography.tsx +3 -1
- package/src/components/TkxVideoPlayer.tsx +3 -1
- package/src/components/TkxWatermark.tsx +3 -1
- package/src/engine/security.ts +16 -1
- package/src/headless/index.ts +3 -1
- package/src/headless/useControllable.ts +3 -1
- package/src/headless/useDebounce.ts +3 -1
- package/src/headless/useDisclosure.ts +3 -1
- package/src/headless/useFormState.ts +3 -1
- package/src/headless/useInfiniteQuery.ts +3 -1
- package/src/headless/useIntersectionObserver.ts +3 -1
- package/src/headless/useListSelection.ts +3 -1
- package/src/headless/useLocalStorage.ts +3 -1
- package/src/headless/useMediaQuery.ts +3 -1
- package/src/headless/useRovingTabIndex.ts +3 -1
- package/src/headless/useSSE.ts +3 -1
- package/src/headless/useThrottle.ts +3 -1
- package/src/headless/useWebSocket.ts +3 -1
- package/src/hooks/index.ts +3 -1
- 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 { 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
|
+
}
|
package/src/engine/security.ts
CHANGED
|
@@ -11,10 +11,25 @@ const HTML_ENTITIES: Record<string, string> = {
|
|
|
11
11
|
'&': '&',
|
|
12
12
|
"'": ''',
|
|
13
13
|
'"': '"',
|
|
14
|
+
// Backticks can break out of unquoted/template-literal contexts in HTML
|
|
15
|
+
// (legacy IE and some sinks). Escape defensively.
|
|
16
|
+
'`': '`',
|
|
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
|
-
|
|
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 {
|
package/src/headless/index.ts
CHANGED
|
@@ -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, 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 } 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
|
+
}
|
package/src/headless/useSSE.ts
CHANGED
|
@@ -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
|
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
|
+
}
|
package/src/hooks/index.ts
CHANGED
|
@@ -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
|
+
}
|
package/dist/tkx-0oAwZqgL.cjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const e=require(`./themes-CMq2vWXj.cjs`);var t={"<":`<`,">":`>`,"&":`&`,"'":`'`,'"':`"`};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}});
|