@refraction-ui/react 0.4.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/chunk-O4453CBF.js +137 -0
- package/dist/chunk-O4453CBF.js.map +1 -0
- package/dist/chunk-XWP763SH.js +76 -0
- package/dist/chunk-XWP763SH.js.map +1 -0
- package/dist/faro-engine-47HGRAQH-JKINJPMH.js +3 -0
- package/dist/faro-engine-47HGRAQH-JKINJPMH.js.map +1 -0
- package/dist/form.cjs +340 -0
- package/dist/form.cjs.map +1 -0
- package/dist/form.d.cts +1 -0
- package/dist/form.d.ts +1 -0
- package/dist/form.js +204 -0
- package/dist/form.js.map +1 -0
- package/dist/index.cjs +1438 -237
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +76 -76
- package/dist/index.d.ts +76 -76
- package/dist/index.js +1317 -312
- package/dist/index.js.map +1 -1
- package/dist/internal/analytics/index.d.cts +448 -0
- package/dist/internal/analytics/index.d.ts +448 -0
- package/dist/internal/animated-text/index.d.cts +47 -0
- package/dist/internal/animated-text/index.d.ts +47 -0
- package/dist/internal/app-shell/index.d.cts +128 -0
- package/dist/internal/app-shell/index.d.ts +128 -0
- package/dist/internal/auth/index.d.cts +74 -0
- package/dist/internal/auth/index.d.ts +74 -0
- package/dist/internal/avatar/index.d.cts +53 -0
- package/dist/internal/avatar/index.d.ts +53 -0
- package/dist/internal/avatar-group/index.d.cts +70 -0
- package/dist/internal/avatar-group/index.d.ts +70 -0
- package/dist/internal/badge/index.d.cts +26 -0
- package/dist/internal/badge/index.d.ts +26 -0
- package/dist/internal/bottom-nav/index.d.cts +29 -0
- package/dist/internal/bottom-nav/index.d.ts +29 -0
- package/dist/internal/breadcrumbs/index.d.cts +38 -0
- package/dist/internal/breadcrumbs/index.d.ts +38 -0
- package/dist/internal/button/index.d.cts +34 -0
- package/dist/internal/button/index.d.ts +34 -0
- package/dist/internal/calendar/index.d.cts +73 -0
- package/dist/internal/calendar/index.d.ts +73 -0
- package/dist/internal/card/index.d.cts +62 -0
- package/dist/internal/card/index.d.ts +62 -0
- package/dist/internal/card-grid/index.d.cts +10 -0
- package/dist/internal/card-grid/index.d.ts +10 -0
- package/dist/internal/checkbox/index.d.cts +40 -0
- package/dist/internal/checkbox/index.d.ts +40 -0
- package/dist/internal/code-editor/index.d.cts +47 -0
- package/dist/internal/code-editor/index.d.ts +47 -0
- package/dist/internal/collapsible/index.d.cts +43 -0
- package/dist/internal/collapsible/index.d.ts +43 -0
- package/dist/internal/command/index.d.cts +80 -0
- package/dist/internal/command/index.d.ts +80 -0
- package/dist/internal/content-protection/index.d.cts +47 -0
- package/dist/internal/content-protection/index.d.ts +47 -0
- package/dist/internal/data-table/index.d.cts +73 -0
- package/dist/internal/data-table/index.d.ts +73 -0
- package/dist/internal/date-picker/index.d.cts +98 -0
- package/dist/internal/date-picker/index.d.ts +98 -0
- package/dist/internal/device-frame/index.d.cts +40 -0
- package/dist/internal/device-frame/index.d.ts +40 -0
- package/dist/internal/dialog/index.d.cts +54 -0
- package/dist/internal/dialog/index.d.ts +54 -0
- package/dist/internal/dropdown-menu/index.d.cts +55 -0
- package/dist/internal/dropdown-menu/index.d.ts +55 -0
- package/dist/internal/emoji-picker/index.d.cts +77 -0
- package/dist/internal/emoji-picker/index.d.ts +77 -0
- package/dist/internal/feedback-dialog/index.d.cts +55 -0
- package/dist/internal/feedback-dialog/index.d.ts +55 -0
- package/dist/internal/file-upload/index.d.cts +91 -0
- package/dist/internal/file-upload/index.d.ts +91 -0
- package/dist/internal/footer/index.d.cts +30 -0
- package/dist/internal/footer/index.d.ts +30 -0
- package/dist/internal/inline-editor/index.d.cts +52 -0
- package/dist/internal/inline-editor/index.d.ts +52 -0
- package/dist/internal/input/index.d.cts +38 -0
- package/dist/internal/input/index.d.ts +38 -0
- package/dist/internal/input-group/index.d.cts +35 -0
- package/dist/internal/input-group/index.d.ts +35 -0
- package/dist/internal/install-prompt/index.d.cts +36 -0
- package/dist/internal/install-prompt/index.d.ts +36 -0
- package/dist/internal/keyboard-shortcut/index.d.cts +49 -0
- package/dist/internal/keyboard-shortcut/index.d.ts +49 -0
- package/dist/internal/language-selector/index.d.cts +63 -0
- package/dist/internal/language-selector/index.d.ts +63 -0
- package/dist/internal/logger/index.d.cts +229 -0
- package/dist/internal/logger/index.d.ts +229 -0
- package/dist/internal/markdown-renderer/index.d.cts +40 -0
- package/dist/internal/markdown-renderer/index.d.ts +40 -0
- package/dist/internal/mobile-nav/index.d.cts +45 -0
- package/dist/internal/mobile-nav/index.d.ts +45 -0
- package/dist/internal/navbar/index.d.cts +30 -0
- package/dist/internal/navbar/index.d.ts +30 -0
- package/dist/internal/otp-input/index.d.cts +66 -0
- package/dist/internal/otp-input/index.d.ts +66 -0
- package/dist/internal/payment/index.d.cts +9 -0
- package/dist/internal/payment/index.d.ts +9 -0
- package/dist/internal/popover/index.d.cts +46 -0
- package/dist/internal/popover/index.d.ts +46 -0
- package/dist/internal/presence-indicator/index.d.cts +38 -0
- package/dist/internal/presence-indicator/index.d.ts +38 -0
- package/dist/internal/progress-display/index.d.cts +60 -0
- package/dist/internal/progress-display/index.d.ts +60 -0
- package/dist/internal/radio/index.d.ts +43 -0
- package/dist/internal/react-accordion/index.d.ts +22 -0
- package/dist/internal/react-analytics/index.d.cts +44 -0
- package/dist/internal/react-analytics/index.d.ts +44 -0
- package/dist/internal/react-animated-text/index.d.cts +12 -0
- package/dist/internal/react-animated-text/index.d.ts +12 -0
- package/dist/internal/react-app-shell/index.d.cts +169 -0
- package/dist/internal/react-app-shell/index.d.ts +169 -0
- package/dist/internal/react-auth/index.d.cts +59 -0
- package/dist/internal/react-auth/index.d.ts +59 -0
- package/dist/internal/react-avatar/index.d.cts +20 -0
- package/dist/internal/react-avatar/index.d.ts +20 -0
- package/dist/internal/react-avatar-group/index.d.cts +33 -0
- package/dist/internal/react-avatar-group/index.d.ts +33 -0
- package/dist/internal/react-badge/index.d.cts +17 -0
- package/dist/internal/react-badge/index.d.ts +17 -0
- package/dist/internal/react-bottom-nav/index.d.cts +19 -0
- package/dist/internal/react-bottom-nav/index.d.ts +19 -0
- package/dist/internal/react-breadcrumbs/index.d.cts +24 -0
- package/dist/internal/react-breadcrumbs/index.d.ts +24 -0
- package/dist/internal/react-button/index.d.cts +21 -0
- package/dist/internal/react-button/index.d.ts +21 -0
- package/dist/internal/react-calendar/index.d.cts +44 -0
- package/dist/internal/react-calendar/index.d.ts +44 -0
- package/dist/internal/react-callout/index.d.cts +12 -0
- package/dist/internal/react-callout/index.d.ts +12 -0
- package/dist/internal/react-card/index.d.cts +29 -0
- package/dist/internal/react-card/index.d.ts +29 -0
- package/dist/internal/react-card-grid/index.d.cts +8 -0
- package/dist/internal/react-card-grid/index.d.ts +8 -0
- package/dist/internal/react-carousel/index.d.ts +22 -0
- package/dist/internal/react-checkbox/index.d.cts +18 -0
- package/dist/internal/react-checkbox/index.d.ts +18 -0
- package/dist/internal/react-code-block/index.d.cts +7 -0
- package/dist/internal/react-code-block/index.d.ts +7 -0
- package/dist/internal/react-code-editor/index.d.cts +28 -0
- package/dist/internal/react-code-editor/index.d.ts +28 -0
- package/dist/internal/react-collapsible/index.d.cts +29 -0
- package/dist/internal/react-collapsible/index.d.ts +29 -0
- package/dist/internal/react-combobox/index.d.cts +94 -0
- package/dist/internal/react-combobox/index.d.ts +94 -0
- package/dist/internal/react-command/index.d.cts +51 -0
- package/dist/internal/react-command/index.d.ts +51 -0
- package/dist/internal/react-content-protection/index.d.cts +22 -0
- package/dist/internal/react-content-protection/index.d.ts +22 -0
- package/dist/internal/react-data-table/index.d.cts +22 -0
- package/dist/internal/react-data-table/index.d.ts +22 -0
- package/dist/internal/react-date-picker/index.d.cts +23 -0
- package/dist/internal/react-date-picker/index.d.ts +23 -0
- package/dist/internal/react-device-frame/index.d.cts +37 -0
- package/dist/internal/react-device-frame/index.d.ts +37 -0
- package/dist/internal/react-dialog/index.d.cts +49 -0
- package/dist/internal/react-dialog/index.d.ts +49 -0
- package/dist/internal/react-dropdown-menu/index.d.cts +37 -0
- package/dist/internal/react-dropdown-menu/index.d.ts +37 -0
- package/dist/internal/react-emoji-picker/index.d.cts +32 -0
- package/dist/internal/react-emoji-picker/index.d.ts +32 -0
- package/dist/internal/react-feedback-dialog/index.d.cts +40 -0
- package/dist/internal/react-feedback-dialog/index.d.ts +40 -0
- package/dist/internal/react-file-tree/index.d.cts +5 -0
- package/dist/internal/react-file-tree/index.d.ts +5 -0
- package/dist/internal/react-file-upload/index.d.cts +22 -0
- package/dist/internal/react-file-upload/index.d.ts +22 -0
- package/dist/internal/react-footer/index.d.cts +20 -0
- package/dist/internal/react-footer/index.d.ts +20 -0
- package/dist/internal/react-form/index.d.cts +85 -0
- package/dist/internal/react-form/index.d.ts +85 -0
- package/dist/internal/react-icon-system/index.d.cts +5 -0
- package/dist/internal/react-icon-system/index.d.ts +5 -0
- package/dist/internal/react-inline-editor/index.d.cts +17 -0
- package/dist/internal/react-inline-editor/index.d.ts +17 -0
- package/dist/internal/react-input/index.d.cts +31 -0
- package/dist/internal/react-input/index.d.ts +31 -0
- package/dist/internal/react-input-group/index.d.cts +34 -0
- package/dist/internal/react-input-group/index.d.ts +34 -0
- package/dist/internal/react-install-prompt/index.d.cts +24 -0
- package/dist/internal/react-install-prompt/index.d.ts +24 -0
- package/dist/internal/react-keyboard-shortcut/index.d.cts +57 -0
- package/dist/internal/react-keyboard-shortcut/index.d.ts +57 -0
- package/dist/internal/react-language-selector/index.d.cts +26 -0
- package/dist/internal/react-language-selector/index.d.ts +26 -0
- package/dist/internal/react-link-card/index.d.cts +5 -0
- package/dist/internal/react-link-card/index.d.ts +5 -0
- package/dist/internal/react-logger/index.d.cts +107 -0
- package/dist/internal/react-logger/index.d.ts +107 -0
- package/dist/internal/react-markdown-renderer/index.d.cts +20 -0
- package/dist/internal/react-markdown-renderer/index.d.ts +20 -0
- package/dist/internal/react-mobile-nav/index.d.cts +33 -0
- package/dist/internal/react-mobile-nav/index.d.ts +33 -0
- package/dist/internal/react-navbar/index.d.cts +25 -0
- package/dist/internal/react-navbar/index.d.ts +25 -0
- package/dist/internal/react-otp-input/index.d.cts +21 -0
- package/dist/internal/react-otp-input/index.d.ts +21 -0
- package/dist/internal/react-pagination/index.d.ts +7 -0
- package/dist/internal/react-payment/index.d.cts +9 -0
- package/dist/internal/react-payment/index.d.ts +9 -0
- package/dist/internal/react-popover/index.d.cts +33 -0
- package/dist/internal/react-popover/index.d.ts +33 -0
- package/dist/internal/react-presence-indicator/index.d.cts +34 -0
- package/dist/internal/react-presence-indicator/index.d.ts +34 -0
- package/dist/internal/react-progress-display/index.d.cts +21 -0
- package/dist/internal/react-progress-display/index.d.ts +21 -0
- package/dist/internal/react-radio/index.d.ts +33 -0
- package/dist/internal/react-reaction-bar/index.d.cts +34 -0
- package/dist/internal/react-reaction-bar/index.d.ts +34 -0
- package/dist/internal/react-resizable-layout/index.d.cts +36 -0
- package/dist/internal/react-resizable-layout/index.d.ts +36 -0
- package/dist/internal/react-rich-editor/index.d.cts +2 -0
- package/dist/internal/react-rich-editor/index.d.ts +2 -0
- package/dist/internal/react-search-bar/index.d.cts +32 -0
- package/dist/internal/react-search-bar/index.d.ts +32 -0
- package/dist/internal/react-select/index.d.cts +30 -0
- package/dist/internal/react-select/index.d.ts +30 -0
- package/dist/internal/react-sheet/index.d.cts +67 -0
- package/dist/internal/react-sheet/index.d.ts +67 -0
- package/dist/internal/react-sidebar/index.d.cts +23 -0
- package/dist/internal/react-sidebar/index.d.ts +23 -0
- package/dist/internal/react-skeleton/index.d.cts +31 -0
- package/dist/internal/react-skeleton/index.d.ts +31 -0
- package/dist/internal/react-skip-to-content/index.d.cts +9 -0
- package/dist/internal/react-skip-to-content/index.d.ts +9 -0
- package/dist/internal/react-slide-viewer/index.d.cts +23 -0
- package/dist/internal/react-slide-viewer/index.d.ts +23 -0
- package/dist/internal/react-slider/index.d.cts +1 -0
- package/dist/internal/react-slider/index.d.ts +1 -0
- package/dist/internal/react-status-indicator/index.d.cts +34 -0
- package/dist/internal/react-status-indicator/index.d.ts +34 -0
- package/dist/internal/react-steps/index.d.cts +19 -0
- package/dist/internal/react-steps/index.d.ts +19 -0
- package/dist/internal/react-switch/index.d.cts +17 -0
- package/dist/internal/react-switch/index.d.ts +17 -0
- package/dist/internal/react-table-of-contents/index.d.ts +10 -0
- package/dist/internal/react-tabs/index.d.cts +31 -0
- package/dist/internal/react-tabs/index.d.ts +31 -0
- package/dist/internal/react-textarea/index.d.cts +16 -0
- package/dist/internal/react-textarea/index.d.ts +16 -0
- package/dist/internal/react-theme/index.d.cts +44 -0
- package/dist/internal/react-theme/index.d.ts +44 -0
- package/dist/internal/react-thread-view/index.d.cts +34 -0
- package/dist/internal/react-thread-view/index.d.ts +34 -0
- package/dist/internal/react-toast/index.d.cts +36 -0
- package/dist/internal/react-toast/index.d.ts +36 -0
- package/dist/internal/react-tooltip/index.d.cts +33 -0
- package/dist/internal/react-tooltip/index.d.ts +33 -0
- package/dist/internal/react-version-selector/index.d.cts +24 -0
- package/dist/internal/react-version-selector/index.d.ts +24 -0
- package/dist/internal/react-video-player/index.d.cts +9 -0
- package/dist/internal/react-video-player/index.d.ts +9 -0
- package/dist/internal/react-voice-pill/index.d.cts +10 -0
- package/dist/internal/react-voice-pill/index.d.ts +10 -0
- package/dist/internal/react-waveform/index.d.cts +9 -0
- package/dist/internal/react-waveform/index.d.ts +9 -0
- package/dist/internal/reaction-bar/index.d.cts +50 -0
- package/dist/internal/reaction-bar/index.d.ts +50 -0
- package/dist/internal/resizable-layout/index.d.cts +47 -0
- package/dist/internal/resizable-layout/index.d.ts +47 -0
- package/dist/internal/search-bar/index.d.cts +51 -0
- package/dist/internal/search-bar/index.d.ts +51 -0
- package/dist/internal/select/index.d.cts +69 -0
- package/dist/internal/select/index.d.ts +69 -0
- package/dist/internal/shared/index.d.cts +419 -0
- package/dist/internal/shared/index.d.ts +419 -0
- package/dist/internal/sidebar/index.d.cts +40 -0
- package/dist/internal/sidebar/index.d.ts +40 -0
- package/dist/internal/skeleton/index.d.cts +27 -0
- package/dist/internal/skeleton/index.d.ts +27 -0
- package/dist/internal/slide-viewer/index.d.cts +72 -0
- package/dist/internal/slide-viewer/index.d.ts +72 -0
- package/dist/internal/slider/index.d.cts +4 -0
- package/dist/internal/slider/index.d.ts +4 -0
- package/dist/internal/status-indicator/index.d.cts +42 -0
- package/dist/internal/status-indicator/index.d.ts +42 -0
- package/dist/internal/switch/index.d.cts +41 -0
- package/dist/internal/switch/index.d.ts +41 -0
- package/dist/internal/tabs/index.d.cts +45 -0
- package/dist/internal/tabs/index.d.ts +45 -0
- package/dist/internal/textarea/index.d.cts +28 -0
- package/dist/internal/textarea/index.d.ts +28 -0
- package/dist/internal/theme/index.d.cts +60 -0
- package/dist/internal/theme/index.d.ts +60 -0
- package/dist/internal/thread-view/index.d.cts +95 -0
- package/dist/internal/thread-view/index.d.ts +95 -0
- package/dist/internal/toast/index.d.cts +64 -0
- package/dist/internal/toast/index.d.ts +64 -0
- package/dist/internal/tooltip/index.d.cts +45 -0
- package/dist/internal/tooltip/index.d.ts +45 -0
- package/dist/internal/version-selector/index.d.cts +68 -0
- package/dist/internal/version-selector/index.d.ts +68 -0
- package/dist/internal/video-player/index.d.cts +50 -0
- package/dist/internal/video-player/index.d.ts +50 -0
- package/dist/internal/voice-pill/index.d.cts +86 -0
- package/dist/internal/voice-pill/index.d.ts +86 -0
- package/dist/internal/waveform/index.d.cts +83 -0
- package/dist/internal/waveform/index.d.ts +83 -0
- package/dist/theme.cjs +23 -0
- package/dist/theme.cjs.map +1 -1
- package/dist/theme.d.cts +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.js +5 -2
- package/dist/theme.js.map +1 -1
- package/package.json +10 -7
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
interface BreadcrumbItem {
|
|
2
|
+
label: string;
|
|
3
|
+
href?: string;
|
|
4
|
+
}
|
|
5
|
+
interface BreadcrumbsProps {
|
|
6
|
+
/** Current pathname to auto-generate from */
|
|
7
|
+
pathname?: string;
|
|
8
|
+
/** Manual items (overrides pathname) */
|
|
9
|
+
items?: BreadcrumbItem[];
|
|
10
|
+
/** Custom label map for pathname segments */
|
|
11
|
+
labels?: Record<string, string>;
|
|
12
|
+
/** Separator character */
|
|
13
|
+
separator?: string;
|
|
14
|
+
/** Max items to show before truncating */
|
|
15
|
+
maxItems?: number;
|
|
16
|
+
}
|
|
17
|
+
interface BreadcrumbsAPI {
|
|
18
|
+
items: BreadcrumbItem[];
|
|
19
|
+
ariaProps: Record<string, string>;
|
|
20
|
+
separator: string;
|
|
21
|
+
isLast: (index: number) => boolean;
|
|
22
|
+
itemAriaProps: (index: number) => Record<string, string>;
|
|
23
|
+
}
|
|
24
|
+
declare function createBreadcrumbs(props?: BreadcrumbsProps): BreadcrumbsAPI;
|
|
25
|
+
|
|
26
|
+
declare const breadcrumbsVariants: (props?: ({
|
|
27
|
+
[x: string]: string | undefined;
|
|
28
|
+
} & {
|
|
29
|
+
className?: string;
|
|
30
|
+
}) | undefined) => string;
|
|
31
|
+
declare const breadcrumbItemVariants: (props?: ({
|
|
32
|
+
active?: "true" | "false" | undefined;
|
|
33
|
+
} & {
|
|
34
|
+
className?: string;
|
|
35
|
+
}) | undefined) => string;
|
|
36
|
+
declare const breadcrumbSeparatorStyles = "text-muted-foreground/50 select-none";
|
|
37
|
+
|
|
38
|
+
export { type BreadcrumbItem, type BreadcrumbsAPI, type BreadcrumbsProps, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, createBreadcrumbs };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
|
|
4
|
+
type ButtonSize = 'xs' | 'sm' | 'default' | 'lg' | 'icon';
|
|
5
|
+
interface ButtonProps {
|
|
6
|
+
variant?: ButtonVariant;
|
|
7
|
+
size?: ButtonSize;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
type?: 'button' | 'submit' | 'reset';
|
|
12
|
+
}
|
|
13
|
+
interface ButtonAPI {
|
|
14
|
+
/** ARIA attributes to spread on the element */
|
|
15
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
16
|
+
/** Keyboard handlers to attach */
|
|
17
|
+
keyboardHandlers: KeyboardHandlerMap;
|
|
18
|
+
/** Whether interaction should be blocked */
|
|
19
|
+
isInteractive: boolean;
|
|
20
|
+
/** Data attributes for CSS styling hooks */
|
|
21
|
+
dataAttributes: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
declare function createButton(props?: ButtonProps): ButtonAPI;
|
|
24
|
+
declare function getButtonType(props: ButtonProps): string;
|
|
25
|
+
|
|
26
|
+
declare const buttonTokens: TokenContract;
|
|
27
|
+
declare const buttonVariants: (props?: ({
|
|
28
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | undefined;
|
|
29
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon" | undefined;
|
|
30
|
+
} & {
|
|
31
|
+
className?: string;
|
|
32
|
+
}) | undefined) => string;
|
|
33
|
+
|
|
34
|
+
export { type ButtonAPI, type ButtonProps, type ButtonSize, type ButtonVariant, buttonTokens, buttonVariants, createButton, getButtonType };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
|
|
4
|
+
type ButtonSize = 'xs' | 'sm' | 'default' | 'lg' | 'icon';
|
|
5
|
+
interface ButtonProps {
|
|
6
|
+
variant?: ButtonVariant;
|
|
7
|
+
size?: ButtonSize;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
type?: 'button' | 'submit' | 'reset';
|
|
12
|
+
}
|
|
13
|
+
interface ButtonAPI {
|
|
14
|
+
/** ARIA attributes to spread on the element */
|
|
15
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
16
|
+
/** Keyboard handlers to attach */
|
|
17
|
+
keyboardHandlers: KeyboardHandlerMap;
|
|
18
|
+
/** Whether interaction should be blocked */
|
|
19
|
+
isInteractive: boolean;
|
|
20
|
+
/** Data attributes for CSS styling hooks */
|
|
21
|
+
dataAttributes: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
declare function createButton(props?: ButtonProps): ButtonAPI;
|
|
24
|
+
declare function getButtonType(props: ButtonProps): string;
|
|
25
|
+
|
|
26
|
+
declare const buttonTokens: TokenContract;
|
|
27
|
+
declare const buttonVariants: (props?: ({
|
|
28
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | undefined;
|
|
29
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon" | undefined;
|
|
30
|
+
} & {
|
|
31
|
+
className?: string;
|
|
32
|
+
}) | undefined) => string;
|
|
33
|
+
|
|
34
|
+
export { type ButtonAPI, type ButtonProps, type ButtonSize, type ButtonVariant, buttonTokens, buttonVariants, createButton, getButtonType };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { AccessibilityProps } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
interface CalendarProps {
|
|
4
|
+
/** Selected date (controlled) */
|
|
5
|
+
value?: Date;
|
|
6
|
+
/** Default selected date (uncontrolled) */
|
|
7
|
+
defaultValue?: Date;
|
|
8
|
+
/** Callback when a date is selected */
|
|
9
|
+
onSelect?: (date: Date) => void;
|
|
10
|
+
/** Displayed month (controlled) */
|
|
11
|
+
month?: Date;
|
|
12
|
+
/** Callback when the displayed month changes */
|
|
13
|
+
onMonthChange?: (month: Date) => void;
|
|
14
|
+
/** Minimum selectable date */
|
|
15
|
+
minDate?: Date;
|
|
16
|
+
/** Maximum selectable date */
|
|
17
|
+
maxDate?: Date;
|
|
18
|
+
/** Specific dates to disable */
|
|
19
|
+
disabledDates?: Date[];
|
|
20
|
+
}
|
|
21
|
+
interface CalendarDay {
|
|
22
|
+
/** The date this cell represents */
|
|
23
|
+
date: Date;
|
|
24
|
+
/** Whether the date is today */
|
|
25
|
+
isToday: boolean;
|
|
26
|
+
/** Whether the date is currently selected */
|
|
27
|
+
isSelected: boolean;
|
|
28
|
+
/** Whether the date belongs to the currently displayed month */
|
|
29
|
+
isCurrentMonth: boolean;
|
|
30
|
+
/** Whether the date is disabled */
|
|
31
|
+
isDisabled: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface CalendarState {
|
|
34
|
+
/** The currently displayed month */
|
|
35
|
+
currentMonth: Date;
|
|
36
|
+
/** The currently selected date, if any */
|
|
37
|
+
selectedDate: Date | undefined;
|
|
38
|
+
}
|
|
39
|
+
interface CalendarAPI {
|
|
40
|
+
/** Current calendar state */
|
|
41
|
+
state: CalendarState;
|
|
42
|
+
/** Array of day objects for the current month grid (always 42: 6 weeks x 7 days) */
|
|
43
|
+
days: CalendarDay[];
|
|
44
|
+
/** Navigate to the previous month */
|
|
45
|
+
prevMonth(): void;
|
|
46
|
+
/** Navigate to the next month */
|
|
47
|
+
nextMonth(): void;
|
|
48
|
+
/** Select a date */
|
|
49
|
+
select(date: Date): void;
|
|
50
|
+
/** ARIA attributes for the calendar grid */
|
|
51
|
+
ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
|
|
52
|
+
/** Get ARIA attributes for a specific day cell */
|
|
53
|
+
getDayAriaProps(day: CalendarDay): Partial<AccessibilityProps> & Record<string, unknown>;
|
|
54
|
+
/** Generated IDs */
|
|
55
|
+
ids: {
|
|
56
|
+
grid: string;
|
|
57
|
+
label: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
declare function createCalendar(props?: CalendarProps): CalendarAPI;
|
|
61
|
+
|
|
62
|
+
declare const calendarVariants: (props?: ({
|
|
63
|
+
[x: string]: string | undefined;
|
|
64
|
+
} & {
|
|
65
|
+
className?: string;
|
|
66
|
+
}) | undefined) => string;
|
|
67
|
+
declare const dayVariants: (props?: ({
|
|
68
|
+
state?: "default" | "selected" | "today" | "disabled" | "outside" | undefined;
|
|
69
|
+
} & {
|
|
70
|
+
className?: string;
|
|
71
|
+
}) | undefined) => string;
|
|
72
|
+
|
|
73
|
+
export { type CalendarAPI, type CalendarDay, type CalendarProps, type CalendarState, calendarVariants, createCalendar, dayVariants };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { AccessibilityProps } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
interface CalendarProps {
|
|
4
|
+
/** Selected date (controlled) */
|
|
5
|
+
value?: Date;
|
|
6
|
+
/** Default selected date (uncontrolled) */
|
|
7
|
+
defaultValue?: Date;
|
|
8
|
+
/** Callback when a date is selected */
|
|
9
|
+
onSelect?: (date: Date) => void;
|
|
10
|
+
/** Displayed month (controlled) */
|
|
11
|
+
month?: Date;
|
|
12
|
+
/** Callback when the displayed month changes */
|
|
13
|
+
onMonthChange?: (month: Date) => void;
|
|
14
|
+
/** Minimum selectable date */
|
|
15
|
+
minDate?: Date;
|
|
16
|
+
/** Maximum selectable date */
|
|
17
|
+
maxDate?: Date;
|
|
18
|
+
/** Specific dates to disable */
|
|
19
|
+
disabledDates?: Date[];
|
|
20
|
+
}
|
|
21
|
+
interface CalendarDay {
|
|
22
|
+
/** The date this cell represents */
|
|
23
|
+
date: Date;
|
|
24
|
+
/** Whether the date is today */
|
|
25
|
+
isToday: boolean;
|
|
26
|
+
/** Whether the date is currently selected */
|
|
27
|
+
isSelected: boolean;
|
|
28
|
+
/** Whether the date belongs to the currently displayed month */
|
|
29
|
+
isCurrentMonth: boolean;
|
|
30
|
+
/** Whether the date is disabled */
|
|
31
|
+
isDisabled: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface CalendarState {
|
|
34
|
+
/** The currently displayed month */
|
|
35
|
+
currentMonth: Date;
|
|
36
|
+
/** The currently selected date, if any */
|
|
37
|
+
selectedDate: Date | undefined;
|
|
38
|
+
}
|
|
39
|
+
interface CalendarAPI {
|
|
40
|
+
/** Current calendar state */
|
|
41
|
+
state: CalendarState;
|
|
42
|
+
/** Array of day objects for the current month grid (always 42: 6 weeks x 7 days) */
|
|
43
|
+
days: CalendarDay[];
|
|
44
|
+
/** Navigate to the previous month */
|
|
45
|
+
prevMonth(): void;
|
|
46
|
+
/** Navigate to the next month */
|
|
47
|
+
nextMonth(): void;
|
|
48
|
+
/** Select a date */
|
|
49
|
+
select(date: Date): void;
|
|
50
|
+
/** ARIA attributes for the calendar grid */
|
|
51
|
+
ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
|
|
52
|
+
/** Get ARIA attributes for a specific day cell */
|
|
53
|
+
getDayAriaProps(day: CalendarDay): Partial<AccessibilityProps> & Record<string, unknown>;
|
|
54
|
+
/** Generated IDs */
|
|
55
|
+
ids: {
|
|
56
|
+
grid: string;
|
|
57
|
+
label: string;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
declare function createCalendar(props?: CalendarProps): CalendarAPI;
|
|
61
|
+
|
|
62
|
+
declare const calendarVariants: (props?: ({
|
|
63
|
+
[x: string]: string | undefined;
|
|
64
|
+
} & {
|
|
65
|
+
className?: string;
|
|
66
|
+
}) | undefined) => string;
|
|
67
|
+
declare const dayVariants: (props?: ({
|
|
68
|
+
state?: "default" | "selected" | "today" | "disabled" | "outside" | undefined;
|
|
69
|
+
} & {
|
|
70
|
+
className?: string;
|
|
71
|
+
}) | undefined) => string;
|
|
72
|
+
|
|
73
|
+
export { type CalendarAPI, type CalendarDay, type CalendarProps, type CalendarState, calendarVariants, createCalendar, dayVariants };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
interface CardProps {
|
|
4
|
+
/** Optional accessible role override */
|
|
5
|
+
role?: string;
|
|
6
|
+
}
|
|
7
|
+
interface CardAPI {
|
|
8
|
+
/** ARIA attributes to spread on the element */
|
|
9
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
10
|
+
/** Data attributes for CSS styling hooks */
|
|
11
|
+
dataAttributes: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
declare function createCard(props?: CardProps): CardAPI;
|
|
14
|
+
declare function createCardHeader(): {
|
|
15
|
+
dataAttributes: Record<string, string>;
|
|
16
|
+
};
|
|
17
|
+
declare function createCardTitle(): {
|
|
18
|
+
dataAttributes: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
declare function createCardDescription(): {
|
|
21
|
+
dataAttributes: Record<string, string>;
|
|
22
|
+
};
|
|
23
|
+
declare function createCardContent(): {
|
|
24
|
+
dataAttributes: Record<string, string>;
|
|
25
|
+
};
|
|
26
|
+
declare function createCardFooter(): {
|
|
27
|
+
dataAttributes: Record<string, string>;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare const cardTokens: TokenContract;
|
|
31
|
+
declare const cardVariants: (props?: ({
|
|
32
|
+
padding?: "none" | "default" | "compact" | undefined;
|
|
33
|
+
} & {
|
|
34
|
+
className?: string;
|
|
35
|
+
}) | undefined) => string;
|
|
36
|
+
declare const cardHeaderVariants: (props?: ({
|
|
37
|
+
[x: string]: string | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
className?: string;
|
|
40
|
+
}) | undefined) => string;
|
|
41
|
+
declare const cardTitleVariants: (props?: ({
|
|
42
|
+
size?: "default" | "sm" | "lg" | undefined;
|
|
43
|
+
} & {
|
|
44
|
+
className?: string;
|
|
45
|
+
}) | undefined) => string;
|
|
46
|
+
declare const cardDescriptionVariants: (props?: ({
|
|
47
|
+
[x: string]: string | undefined;
|
|
48
|
+
} & {
|
|
49
|
+
className?: string;
|
|
50
|
+
}) | undefined) => string;
|
|
51
|
+
declare const cardContentVariants: (props?: ({
|
|
52
|
+
[x: string]: string | undefined;
|
|
53
|
+
} & {
|
|
54
|
+
className?: string;
|
|
55
|
+
}) | undefined) => string;
|
|
56
|
+
declare const cardFooterVariants: (props?: ({
|
|
57
|
+
[x: string]: string | undefined;
|
|
58
|
+
} & {
|
|
59
|
+
className?: string;
|
|
60
|
+
}) | undefined) => string;
|
|
61
|
+
|
|
62
|
+
export { type CardAPI, type CardProps, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AccessibilityProps, TokenContract } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
interface CardProps {
|
|
4
|
+
/** Optional accessible role override */
|
|
5
|
+
role?: string;
|
|
6
|
+
}
|
|
7
|
+
interface CardAPI {
|
|
8
|
+
/** ARIA attributes to spread on the element */
|
|
9
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
10
|
+
/** Data attributes for CSS styling hooks */
|
|
11
|
+
dataAttributes: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
declare function createCard(props?: CardProps): CardAPI;
|
|
14
|
+
declare function createCardHeader(): {
|
|
15
|
+
dataAttributes: Record<string, string>;
|
|
16
|
+
};
|
|
17
|
+
declare function createCardTitle(): {
|
|
18
|
+
dataAttributes: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
declare function createCardDescription(): {
|
|
21
|
+
dataAttributes: Record<string, string>;
|
|
22
|
+
};
|
|
23
|
+
declare function createCardContent(): {
|
|
24
|
+
dataAttributes: Record<string, string>;
|
|
25
|
+
};
|
|
26
|
+
declare function createCardFooter(): {
|
|
27
|
+
dataAttributes: Record<string, string>;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare const cardTokens: TokenContract;
|
|
31
|
+
declare const cardVariants: (props?: ({
|
|
32
|
+
padding?: "none" | "default" | "compact" | undefined;
|
|
33
|
+
} & {
|
|
34
|
+
className?: string;
|
|
35
|
+
}) | undefined) => string;
|
|
36
|
+
declare const cardHeaderVariants: (props?: ({
|
|
37
|
+
[x: string]: string | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
className?: string;
|
|
40
|
+
}) | undefined) => string;
|
|
41
|
+
declare const cardTitleVariants: (props?: ({
|
|
42
|
+
size?: "default" | "sm" | "lg" | undefined;
|
|
43
|
+
} & {
|
|
44
|
+
className?: string;
|
|
45
|
+
}) | undefined) => string;
|
|
46
|
+
declare const cardDescriptionVariants: (props?: ({
|
|
47
|
+
[x: string]: string | undefined;
|
|
48
|
+
} & {
|
|
49
|
+
className?: string;
|
|
50
|
+
}) | undefined) => string;
|
|
51
|
+
declare const cardContentVariants: (props?: ({
|
|
52
|
+
[x: string]: string | undefined;
|
|
53
|
+
} & {
|
|
54
|
+
className?: string;
|
|
55
|
+
}) | undefined) => string;
|
|
56
|
+
declare const cardFooterVariants: (props?: ({
|
|
57
|
+
[x: string]: string | undefined;
|
|
58
|
+
} & {
|
|
59
|
+
className?: string;
|
|
60
|
+
}) | undefined) => string;
|
|
61
|
+
|
|
62
|
+
export { type CardAPI, type CardProps, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
type CheckedState = boolean | 'indeterminate';
|
|
4
|
+
interface CheckboxProps {
|
|
5
|
+
checked?: CheckedState;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
name?: string;
|
|
9
|
+
value?: string;
|
|
10
|
+
}
|
|
11
|
+
interface CheckboxAPI {
|
|
12
|
+
/** ARIA attributes to spread on the element */
|
|
13
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
14
|
+
/** Keyboard handlers to attach */
|
|
15
|
+
keyboardHandlers: KeyboardHandlerMap;
|
|
16
|
+
/** Whether interaction should be blocked */
|
|
17
|
+
isInteractive: boolean;
|
|
18
|
+
/** Data attributes for CSS styling hooks */
|
|
19
|
+
dataAttributes: Record<string, string>;
|
|
20
|
+
/** Current state */
|
|
21
|
+
state: {
|
|
22
|
+
checked: CheckedState;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
declare function createCheckbox(props?: CheckboxProps): CheckboxAPI;
|
|
27
|
+
/** SVG path data for the check icon */
|
|
28
|
+
declare const checkIconPath = "M20 6L9 17l-5-5";
|
|
29
|
+
/** SVG path data for the indeterminate/minus icon */
|
|
30
|
+
declare const indeterminateIconPath = "M5 12h14";
|
|
31
|
+
|
|
32
|
+
declare const checkboxTokens: TokenContract;
|
|
33
|
+
declare const checkboxVariants: (props?: ({
|
|
34
|
+
checked?: "indeterminate" | "true" | "false" | undefined;
|
|
35
|
+
size?: "sm" | "default" | "lg" | undefined;
|
|
36
|
+
} & {
|
|
37
|
+
className?: string;
|
|
38
|
+
}) | undefined) => string;
|
|
39
|
+
|
|
40
|
+
export { type CheckboxAPI, type CheckboxProps, type CheckedState, checkIconPath, checkboxTokens, checkboxVariants, createCheckbox, indeterminateIconPath };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
type CheckedState = boolean | 'indeterminate';
|
|
4
|
+
interface CheckboxProps {
|
|
5
|
+
checked?: CheckedState;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
name?: string;
|
|
9
|
+
value?: string;
|
|
10
|
+
}
|
|
11
|
+
interface CheckboxAPI {
|
|
12
|
+
/** ARIA attributes to spread on the element */
|
|
13
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
14
|
+
/** Keyboard handlers to attach */
|
|
15
|
+
keyboardHandlers: KeyboardHandlerMap;
|
|
16
|
+
/** Whether interaction should be blocked */
|
|
17
|
+
isInteractive: boolean;
|
|
18
|
+
/** Data attributes for CSS styling hooks */
|
|
19
|
+
dataAttributes: Record<string, string>;
|
|
20
|
+
/** Current state */
|
|
21
|
+
state: {
|
|
22
|
+
checked: CheckedState;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
declare function createCheckbox(props?: CheckboxProps): CheckboxAPI;
|
|
27
|
+
/** SVG path data for the check icon */
|
|
28
|
+
declare const checkIconPath = "M20 6L9 17l-5-5";
|
|
29
|
+
/** SVG path data for the indeterminate/minus icon */
|
|
30
|
+
declare const indeterminateIconPath = "M5 12h14";
|
|
31
|
+
|
|
32
|
+
declare const checkboxTokens: TokenContract;
|
|
33
|
+
declare const checkboxVariants: (props?: ({
|
|
34
|
+
checked?: "indeterminate" | "true" | "false" | undefined;
|
|
35
|
+
size?: "sm" | "default" | "lg" | undefined;
|
|
36
|
+
} & {
|
|
37
|
+
className?: string;
|
|
38
|
+
}) | undefined) => string;
|
|
39
|
+
|
|
40
|
+
export { type CheckboxAPI, type CheckboxProps, type CheckedState, checkIconPath, checkboxTokens, checkboxVariants, createCheckbox, indeterminateIconPath };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
type CodeEditorTheme = 'light' | 'dark';
|
|
4
|
+
interface CodeEditorProps {
|
|
5
|
+
value?: string;
|
|
6
|
+
onChange?: (value: string) => void;
|
|
7
|
+
language?: string;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
theme?: CodeEditorTheme;
|
|
10
|
+
}
|
|
11
|
+
interface CodeEditorState {
|
|
12
|
+
value: string;
|
|
13
|
+
language: string;
|
|
14
|
+
theme: CodeEditorTheme;
|
|
15
|
+
}
|
|
16
|
+
interface CodeEditorAPI {
|
|
17
|
+
/** Current editor state */
|
|
18
|
+
state: CodeEditorState;
|
|
19
|
+
/** ARIA attributes for the editor element */
|
|
20
|
+
ariaProps: Partial<AccessibilityProps> & {
|
|
21
|
+
'aria-multiline'?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/** Data attributes for CSS styling hooks */
|
|
24
|
+
dataAttributes: Record<string, string>;
|
|
25
|
+
/** Update the editor value */
|
|
26
|
+
setValue: (value: string) => void;
|
|
27
|
+
/** Get a human-readable label for the current language */
|
|
28
|
+
getLanguageLabel: () => string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a headless code editor API.
|
|
32
|
+
*
|
|
33
|
+
* This provides the headless interface for a code editor — state management,
|
|
34
|
+
* ARIA props, and data attributes. Actual rendering (Monaco, CodeMirror, or
|
|
35
|
+
* a simple textarea) is handled by framework-specific wrappers.
|
|
36
|
+
*/
|
|
37
|
+
declare function createCodeEditor(props?: CodeEditorProps): CodeEditorAPI;
|
|
38
|
+
|
|
39
|
+
declare const codeEditorTokens: TokenContract;
|
|
40
|
+
declare const codeEditorVariants: (props?: ({
|
|
41
|
+
theme?: "light" | "dark" | undefined;
|
|
42
|
+
size?: "sm" | "default" | "lg" | undefined;
|
|
43
|
+
} & {
|
|
44
|
+
className?: string;
|
|
45
|
+
}) | undefined) => string;
|
|
46
|
+
|
|
47
|
+
export { type CodeEditorAPI, type CodeEditorProps, type CodeEditorState, type CodeEditorTheme, codeEditorTokens, codeEditorVariants, createCodeEditor };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AccessibilityProps, TokenContract } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
type CodeEditorTheme = 'light' | 'dark';
|
|
4
|
+
interface CodeEditorProps {
|
|
5
|
+
value?: string;
|
|
6
|
+
onChange?: (value: string) => void;
|
|
7
|
+
language?: string;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
theme?: CodeEditorTheme;
|
|
10
|
+
}
|
|
11
|
+
interface CodeEditorState {
|
|
12
|
+
value: string;
|
|
13
|
+
language: string;
|
|
14
|
+
theme: CodeEditorTheme;
|
|
15
|
+
}
|
|
16
|
+
interface CodeEditorAPI {
|
|
17
|
+
/** Current editor state */
|
|
18
|
+
state: CodeEditorState;
|
|
19
|
+
/** ARIA attributes for the editor element */
|
|
20
|
+
ariaProps: Partial<AccessibilityProps> & {
|
|
21
|
+
'aria-multiline'?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/** Data attributes for CSS styling hooks */
|
|
24
|
+
dataAttributes: Record<string, string>;
|
|
25
|
+
/** Update the editor value */
|
|
26
|
+
setValue: (value: string) => void;
|
|
27
|
+
/** Get a human-readable label for the current language */
|
|
28
|
+
getLanguageLabel: () => string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a headless code editor API.
|
|
32
|
+
*
|
|
33
|
+
* This provides the headless interface for a code editor — state management,
|
|
34
|
+
* ARIA props, and data attributes. Actual rendering (Monaco, CodeMirror, or
|
|
35
|
+
* a simple textarea) is handled by framework-specific wrappers.
|
|
36
|
+
*/
|
|
37
|
+
declare function createCodeEditor(props?: CodeEditorProps): CodeEditorAPI;
|
|
38
|
+
|
|
39
|
+
declare const codeEditorTokens: TokenContract;
|
|
40
|
+
declare const codeEditorVariants: (props?: ({
|
|
41
|
+
theme?: "light" | "dark" | undefined;
|
|
42
|
+
size?: "sm" | "default" | "lg" | undefined;
|
|
43
|
+
} & {
|
|
44
|
+
className?: string;
|
|
45
|
+
}) | undefined) => string;
|
|
46
|
+
|
|
47
|
+
export { type CodeEditorAPI, type CodeEditorProps, type CodeEditorState, type CodeEditorTheme, codeEditorTokens, codeEditorVariants, createCodeEditor };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
interface CollapsibleProps {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
defaultOpen?: boolean;
|
|
4
|
+
onOpenChange?: (open: boolean) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface CollapsibleAPI {
|
|
8
|
+
/** Current open state */
|
|
9
|
+
state: {
|
|
10
|
+
open: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** Props to spread on the trigger element */
|
|
13
|
+
triggerProps: {
|
|
14
|
+
'aria-expanded': boolean;
|
|
15
|
+
'aria-controls': string;
|
|
16
|
+
'data-state': 'open' | 'closed';
|
|
17
|
+
'data-disabled': string | undefined;
|
|
18
|
+
};
|
|
19
|
+
/** Props to spread on the content element */
|
|
20
|
+
contentProps: {
|
|
21
|
+
id: string;
|
|
22
|
+
role: 'region';
|
|
23
|
+
'data-state': 'open' | 'closed';
|
|
24
|
+
hidden: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** Toggle the open state */
|
|
27
|
+
toggle: () => void;
|
|
28
|
+
/** Open the collapsible */
|
|
29
|
+
open: () => void;
|
|
30
|
+
/** Close the collapsible */
|
|
31
|
+
close: () => void;
|
|
32
|
+
/** Keyboard event handler for Enter/Space toggle */
|
|
33
|
+
keyboardHandler: (event: KeyboardEvent) => void;
|
|
34
|
+
}
|
|
35
|
+
declare function createCollapsible(props?: CollapsibleProps): CollapsibleAPI;
|
|
36
|
+
|
|
37
|
+
declare const collapsibleContentVariants: (props?: ({
|
|
38
|
+
state?: "open" | "closed" | undefined;
|
|
39
|
+
} & {
|
|
40
|
+
className?: string;
|
|
41
|
+
}) | undefined) => string;
|
|
42
|
+
|
|
43
|
+
export { type CollapsibleAPI, type CollapsibleProps, collapsibleContentVariants, createCollapsible };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
interface CollapsibleProps {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
defaultOpen?: boolean;
|
|
4
|
+
onOpenChange?: (open: boolean) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface CollapsibleAPI {
|
|
8
|
+
/** Current open state */
|
|
9
|
+
state: {
|
|
10
|
+
open: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** Props to spread on the trigger element */
|
|
13
|
+
triggerProps: {
|
|
14
|
+
'aria-expanded': boolean;
|
|
15
|
+
'aria-controls': string;
|
|
16
|
+
'data-state': 'open' | 'closed';
|
|
17
|
+
'data-disabled': string | undefined;
|
|
18
|
+
};
|
|
19
|
+
/** Props to spread on the content element */
|
|
20
|
+
contentProps: {
|
|
21
|
+
id: string;
|
|
22
|
+
role: 'region';
|
|
23
|
+
'data-state': 'open' | 'closed';
|
|
24
|
+
hidden: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** Toggle the open state */
|
|
27
|
+
toggle: () => void;
|
|
28
|
+
/** Open the collapsible */
|
|
29
|
+
open: () => void;
|
|
30
|
+
/** Close the collapsible */
|
|
31
|
+
close: () => void;
|
|
32
|
+
/** Keyboard event handler for Enter/Space toggle */
|
|
33
|
+
keyboardHandler: (event: KeyboardEvent) => void;
|
|
34
|
+
}
|
|
35
|
+
declare function createCollapsible(props?: CollapsibleProps): CollapsibleAPI;
|
|
36
|
+
|
|
37
|
+
declare const collapsibleContentVariants: (props?: ({
|
|
38
|
+
state?: "open" | "closed" | undefined;
|
|
39
|
+
} & {
|
|
40
|
+
className?: string;
|
|
41
|
+
}) | undefined) => string;
|
|
42
|
+
|
|
43
|
+
export { type CollapsibleAPI, type CollapsibleProps, collapsibleContentVariants, createCollapsible };
|