@stacksjs/components 0.2.3
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 +477 -0
- package/dist/Accordion-x2gjedap.stx +108 -0
- package/dist/Audio-0fk6p9tn.stx +50 -0
- package/dist/Avatar-5m0v0s4x.stx +88 -0
- package/dist/Badge-ynes82vv.stx +70 -0
- package/dist/Breadcrumb-h9n427sk.stx +79 -0
- package/dist/Button-7xtrzn14.stx +89 -0
- package/dist/Calendar-egvx1pma.stx +232 -0
- package/dist/Card-r9w7vy1a.stx +74 -0
- package/dist/Checkbox-m8v46pmx.stx +92 -0
- package/dist/Checkout-vcnnr176.stx +39 -0
- package/dist/CodeBlock-mwex82cm.stx +57 -0
- package/dist/Combobox-npb08vkp.stx +13 -0
- package/dist/ComboboxButton-vcdyq4zw.stx +13 -0
- package/dist/ComboboxInput-c9d2p02m.stx +25 -0
- package/dist/ComboboxOption-7d0h9ash.stx +52 -0
- package/dist/ComboboxOptions-4dtqc0qa.stx +12 -0
- package/dist/CommandPalette-ah00bf8v.stx +39 -0
- package/dist/CommandPaletteItem-2yx0gvtj.stx +32 -0
- package/dist/DefaultPaymentMethod-emw5fg8s.stx +62 -0
- package/dist/Dialog-1w4rz7x0.stx +19 -0
- package/dist/DialogBackdrop-qbm3y5ab.stx +9 -0
- package/dist/DialogDescription-01w5j74b.stx +11 -0
- package/dist/DialogPanel-brsszrrs.stx +16 -0
- package/dist/DialogTitle-3rxhwg21.stx +11 -0
- package/dist/Drawer-yfaz8q7f.stx +137 -0
- package/dist/Dropdown-ng7nx556.stx +24 -0
- package/dist/DropdownButton-vc4zpyrb.stx +23 -0
- package/dist/DropdownItem-z491y23c.stx +43 -0
- package/dist/DropdownItems-7ykf29sj.stx +18 -0
- package/dist/EmailInput-bfshpj92.stx +41 -0
- package/dist/Footer-xdaf02nr.stx +66 -0
- package/dist/Form-z4f7w6r1.stx +209 -0
- package/dist/Hero-9vvp7pxf.stx +25 -0
- package/dist/Image-ktk0451c.stx +197 -0
- package/dist/Installation-33bj4rm7.stx +39 -0
- package/dist/Listbox-xcejcmyc.stx +14 -0
- package/dist/ListboxButton-nx5kmw19.stx +17 -0
- package/dist/ListboxLabel-aky8a73n.stx +11 -0
- package/dist/ListboxOption-6h4hsdz5.stx +57 -0
- package/dist/ListboxOptions-2sacdtm5.stx +16 -0
- package/dist/Login-s2jkvd9y.stx +163 -0
- package/dist/Navigator-tqqdgdkw.stx +138 -0
- package/dist/Notification-sry8egea.stx +71 -0
- package/dist/NumberInput-zm93ddfw.stx +138 -0
- package/dist/Pagination-yza9v4qw.stx +183 -0
- package/dist/PasswordInput-4xnndp5y.stx +155 -0
- package/dist/PaymentMethods-jxba6kek.stx +113 -0
- package/dist/Popover-scbqatjq.stx +24 -0
- package/dist/PopoverButton-rbxhzj4k.stx +23 -0
- package/dist/PopoverPanel-9ng1rm6e.stx +23 -0
- package/dist/Portal-j111yvqp.stx +74 -0
- package/dist/Progress-gbmw3akr.stx +142 -0
- package/dist/Radio-1n9qamv1.stx +81 -0
- package/dist/RadioGroup-12dw2vhk.stx +13 -0
- package/dist/RadioGroupDescription-bjm3mdht.stx +11 -0
- package/dist/RadioGroupLabel-aky8a73n.stx +11 -0
- package/dist/RadioGroupOption-9pcxgwmd.stx +51 -0
- package/dist/SearchInput-g240e2nq.stx +63 -0
- package/dist/Select-p9f94b20.stx +89 -0
- package/dist/Sidebar-gwxw8q38.stx +288 -0
- package/dist/SidebarFooter-887kxret.stx +95 -0
- package/dist/SidebarHeader-qjeyx0hv.stx +100 -0
- package/dist/SidebarItem-4dpwtmb4.stx +118 -0
- package/dist/SidebarSection-kh92fk4m.stx +108 -0
- package/dist/Signup-3nxq5zag.stx +161 -0
- package/dist/Skeleton-g0nx1njm.stx +48 -0
- package/dist/Spinner-w4zj58xp.stx +109 -0
- package/dist/Stepper-rwc5actp.stx +17 -0
- package/dist/StepperStep-h0k657nm.stx +53 -0
- package/dist/SubscriptionCheckout-4cbxdg7w.stx +353 -0
- package/dist/Switch-kjq8qd2p.stx +74 -0
- package/dist/Table-59j9qwp0.stx +14 -0
- package/dist/TableBody-reka2gwv.stx +10 -0
- package/dist/TableCell-j7nh4sgr.stx +10 -0
- package/dist/TableHead-ecbrwpqm.stx +10 -0
- package/dist/TableHeader-jn2shwsv.stx +13 -0
- package/dist/TableRow-xz8rrxhc.stx +11 -0
- package/dist/Tabs-kb6ex6m7.stx +145 -0
- package/dist/Teleport-819cg9zm.stx +101 -0
- package/dist/TextInput-zx9kgr79.stx +146 -0
- package/dist/Textarea-5xvmrb0z.stx +119 -0
- package/dist/Tooltip-5ehqsy49.stx +76 -0
- package/dist/Transition-2j39s044.stx +174 -0
- package/dist/TwoFactorChallenge-2q4gg89m.stx +125 -0
- package/dist/Video-6aq4shh4.stx +45 -0
- package/dist/VirtualList-weh5qtm1.stx +83 -0
- package/dist/VirtualTable-59a1eskc.stx +113 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/composables/index.d.ts +4 -0
- package/dist/composables/index.js +3 -0
- package/dist/composables/useCopyCode.d.ts +19 -0
- package/dist/composables/useDarkMode.d.ts +25 -0
- package/dist/composables/useSEO.d.ts +36 -0
- package/dist/composables/utilities/index.d.ts +5 -0
- package/dist/composables/utilities/useClickOutside.d.ts +28 -0
- package/dist/composables/utilities/useFocusTrap.d.ts +34 -0
- package/dist/composables/utilities/useKeyboard.d.ts +55 -0
- package/dist/composables/utilities/useLocalStorage.d.ts +33 -0
- package/dist/composables/utilities/useMediaQuery.d.ts +64 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.js +19 -0
- package/dist/ui/accordion/index.d.ts +12 -0
- package/dist/ui/audio/index.d.ts +12 -0
- package/dist/ui/auth/index.d.ts +29 -0
- package/dist/ui/avatar/index.d.ts +11 -0
- package/dist/ui/badge/index.d.ts +9 -0
- package/dist/ui/breadcrumb/index.d.ts +13 -0
- package/dist/ui/button/index.d.ts +45 -0
- package/dist/ui/calendar/index.d.ts +13 -0
- package/dist/ui/card/index.d.ts +12 -0
- package/dist/ui/checkbox/index.d.ts +15 -0
- package/dist/ui/combobox/index.d.ts +35 -0
- package/dist/ui/command-palette/index.d.ts +13 -0
- package/dist/ui/dialog/index.d.ts +27 -0
- package/dist/ui/drawer/index.d.ts +8 -0
- package/dist/ui/dropdown/index.d.ts +25 -0
- package/dist/ui/form/index.d.ts +48 -0
- package/dist/ui/image/index.d.ts +21 -0
- package/dist/ui/input/index.d.ts +73 -0
- package/dist/ui/listbox/index.d.ts +34 -0
- package/dist/ui/navigator/index.d.ts +18 -0
- package/dist/ui/notification/index.d.ts +11 -0
- package/dist/ui/pagination/index.d.ts +10 -0
- package/dist/ui/payment/index.d.ts +53 -0
- package/dist/ui/popover/index.d.ts +19 -0
- package/dist/ui/portal/index.d.ts +5 -0
- package/dist/ui/progress/index.d.ts +11 -0
- package/dist/ui/radio/index.d.ts +14 -0
- package/dist/ui/radio-group/index.d.ts +26 -0
- package/dist/ui/select/index.d.ts +19 -0
- package/dist/ui/sidebar/index.d.ts +129 -0
- package/dist/ui/skeleton/index.d.ts +10 -0
- package/dist/ui/spinner/index.d.ts +8 -0
- package/dist/ui/stepper/index.d.ts +17 -0
- package/dist/ui/storage/index.d.ts +40 -0
- package/dist/ui/switch/index.d.ts +9 -0
- package/dist/ui/table/index.d.ts +29 -0
- package/dist/ui/tabs/index.d.ts +14 -0
- package/dist/ui/teleport/index.d.ts +6 -0
- package/dist/ui/textarea/index.d.ts +19 -0
- package/dist/ui/tooltip/index.d.ts +9 -0
- package/dist/ui/transition/index.d.ts +24 -0
- package/dist/ui/video/index.d.ts +15 -0
- package/dist/ui/virtual-list/index.d.ts +9 -0
- package/dist/ui/virtual-table/index.d.ts +19 -0
- package/dist/utils/accessibility.d.ts +285 -0
- package/dist/utils/animation/easing.d.ts +112 -0
- package/dist/utils/animation/helpers.d.ts +119 -0
- package/dist/utils/animation/index.d.ts +3 -0
- package/dist/utils/animation/keyframes.d.ts +334 -0
- package/dist/utils/error-handling.d.ts +182 -0
- package/dist/utils/highlighter.d.ts +27 -0
- package/dist/utils/highlighter.js +2 -0
- package/dist/utils/i18n.d.ts +245 -0
- package/dist/utils/keep-alive.d.ts +171 -0
- package/dist/utils/lazy-loading.d.ts +174 -0
- package/dist/utils/prop-validation.d.ts +106 -0
- package/dist/utils/theme.d.ts +234 -0
- package/package.json +69 -0
- package/src/components/CodeBlock.stx +57 -0
- package/src/components/Footer.stx +66 -0
- package/src/components/Hero.stx +25 -0
- package/src/components/Installation.stx +39 -0
- package/src/components/index.ts +4 -0
- package/src/composables/index.ts +4 -0
- package/src/composables/useCopyCode.ts +73 -0
- package/src/composables/useDarkMode.ts +100 -0
- package/src/composables/useSEO.ts +229 -0
- package/src/composables/utilities/index.ts +7 -0
- package/src/composables/utilities/useClickOutside.ts +72 -0
- package/src/composables/utilities/useFocusTrap.ts +159 -0
- package/src/composables/utilities/useKeyboard.ts +124 -0
- package/src/composables/utilities/useLocalStorage.ts +132 -0
- package/src/composables/utilities/useMediaQuery.ts +118 -0
- package/src/index.ts +99 -0
- package/src/stx.d.ts +4 -0
- package/src/ui/accordion/Accordion.stx +108 -0
- package/src/ui/accordion/index.ts +14 -0
- package/src/ui/audio/Audio.stx +50 -0
- package/src/ui/audio/README.md +42 -0
- package/src/ui/audio/index.ts +13 -0
- package/src/ui/auth/Login.stx +163 -0
- package/src/ui/auth/README.md +145 -0
- package/src/ui/auth/Signup.stx +161 -0
- package/src/ui/auth/TwoFactorChallenge.stx +125 -0
- package/src/ui/auth/index.ts +32 -0
- package/src/ui/avatar/Avatar.stx +88 -0
- package/src/ui/avatar/index.ts +12 -0
- package/src/ui/badge/Badge.stx +70 -0
- package/src/ui/badge/index.ts +10 -0
- package/src/ui/breadcrumb/Breadcrumb.stx +79 -0
- package/src/ui/breadcrumb/index.ts +15 -0
- package/src/ui/button/Button.stx +89 -0
- package/src/ui/button/README.md +100 -0
- package/src/ui/button/index.ts +85 -0
- package/src/ui/calendar/Calendar.stx +232 -0
- package/src/ui/calendar/README.md +254 -0
- package/src/ui/calendar/index.ts +14 -0
- package/src/ui/card/Card.stx +74 -0
- package/src/ui/card/index.ts +13 -0
- package/src/ui/checkbox/Checkbox.stx +92 -0
- package/src/ui/checkbox/index.ts +16 -0
- package/src/ui/combobox/Combobox.stx +13 -0
- package/src/ui/combobox/ComboboxButton.stx +13 -0
- package/src/ui/combobox/ComboboxInput.stx +25 -0
- package/src/ui/combobox/ComboboxOption.stx +52 -0
- package/src/ui/combobox/ComboboxOptions.stx +12 -0
- package/src/ui/combobox/README.md +154 -0
- package/src/ui/combobox/index.ts +40 -0
- package/src/ui/command-palette/CommandPalette.stx +39 -0
- package/src/ui/command-palette/CommandPaletteItem.stx +32 -0
- package/src/ui/command-palette/README.md +42 -0
- package/src/ui/command-palette/index.ts +15 -0
- package/src/ui/dialog/Dialog.stx +19 -0
- package/src/ui/dialog/DialogBackdrop.stx +9 -0
- package/src/ui/dialog/DialogDescription.stx +11 -0
- package/src/ui/dialog/DialogPanel.stx +16 -0
- package/src/ui/dialog/DialogTitle.stx +11 -0
- package/src/ui/dialog/README.md +133 -0
- package/src/ui/dialog/index.ts +32 -0
- package/src/ui/drawer/Drawer.stx +137 -0
- package/src/ui/drawer/README.md +110 -0
- package/src/ui/drawer/index.ts +9 -0
- package/src/ui/dropdown/Dropdown.stx +24 -0
- package/src/ui/dropdown/DropdownButton.stx +23 -0
- package/src/ui/dropdown/DropdownItem.stx +43 -0
- package/src/ui/dropdown/DropdownItems.stx +18 -0
- package/src/ui/dropdown/README.md +142 -0
- package/src/ui/dropdown/index.ts +29 -0
- package/src/ui/form/Form.stx +209 -0
- package/src/ui/form/index.ts +67 -0
- package/src/ui/heatmap/Heatmap.stx +315 -0
- package/src/ui/image/Image.stx +197 -0
- package/src/ui/image/README.md +171 -0
- package/src/ui/image/index.ts +22 -0
- package/src/ui/input/EmailInput.stx +41 -0
- package/src/ui/input/NumberInput.stx +138 -0
- package/src/ui/input/PasswordInput.stx +155 -0
- package/src/ui/input/SearchInput.stx +63 -0
- package/src/ui/input/TextInput.stx +146 -0
- package/src/ui/input/index.ts +180 -0
- package/src/ui/listbox/Listbox.stx +14 -0
- package/src/ui/listbox/ListboxButton.stx +17 -0
- package/src/ui/listbox/ListboxLabel.stx +11 -0
- package/src/ui/listbox/ListboxOption.stx +57 -0
- package/src/ui/listbox/ListboxOptions.stx +16 -0
- package/src/ui/listbox/README.md +143 -0
- package/src/ui/listbox/index.ts +39 -0
- package/src/ui/navigator/Navigator.stx +138 -0
- package/src/ui/navigator/README.md +352 -0
- package/src/ui/navigator/index.ts +20 -0
- package/src/ui/notification/Notification.stx +71 -0
- package/src/ui/notification/README.md +118 -0
- package/src/ui/notification/index.ts +12 -0
- package/src/ui/pagination/Pagination.stx +183 -0
- package/src/ui/pagination/index.ts +11 -0
- package/src/ui/payment/Checkout.stx +39 -0
- package/src/ui/payment/DefaultPaymentMethod.stx +62 -0
- package/src/ui/payment/PaymentMethods.stx +113 -0
- package/src/ui/payment/README.md +427 -0
- package/src/ui/payment/SubscriptionCheckout.stx +353 -0
- package/src/ui/payment/index.ts +59 -0
- package/src/ui/popover/Popover.stx +24 -0
- package/src/ui/popover/PopoverButton.stx +23 -0
- package/src/ui/popover/PopoverPanel.stx +23 -0
- package/src/ui/popover/README.md +95 -0
- package/src/ui/popover/index.ts +22 -0
- package/src/ui/portal/Portal.stx +74 -0
- package/src/ui/portal/index.ts +6 -0
- package/src/ui/progress/Progress.stx +142 -0
- package/src/ui/progress/index.ts +12 -0
- package/src/ui/radio/Radio.stx +81 -0
- package/src/ui/radio/index.ts +15 -0
- package/src/ui/radio-group/README.md +145 -0
- package/src/ui/radio-group/RadioGroup.stx +13 -0
- package/src/ui/radio-group/RadioGroupDescription.stx +11 -0
- package/src/ui/radio-group/RadioGroupLabel.stx +11 -0
- package/src/ui/radio-group/RadioGroupOption.stx +51 -0
- package/src/ui/radio-group/index.ts +30 -0
- package/src/ui/select/README.md +204 -0
- package/src/ui/select/Select.stx +89 -0
- package/src/ui/select/index.ts +21 -0
- package/src/ui/sidebar/Sidebar.stx +288 -0
- package/src/ui/sidebar/SidebarFooter.stx +95 -0
- package/src/ui/sidebar/SidebarHeader.stx +100 -0
- package/src/ui/sidebar/SidebarItem.stx +118 -0
- package/src/ui/sidebar/SidebarSection.stx +108 -0
- package/src/ui/sidebar/index.ts +175 -0
- package/src/ui/skeleton/Skeleton.stx +48 -0
- package/src/ui/skeleton/index.ts +11 -0
- package/src/ui/spinner/Spinner.stx +109 -0
- package/src/ui/spinner/index.ts +9 -0
- package/src/ui/stepper/README.md +36 -0
- package/src/ui/stepper/Stepper.stx +17 -0
- package/src/ui/stepper/StepperStep.stx +53 -0
- package/src/ui/stepper/index.ts +19 -0
- package/src/ui/storage/README.md +193 -0
- package/src/ui/storage/index.ts +347 -0
- package/src/ui/switch/README.md +133 -0
- package/src/ui/switch/Switch.stx +74 -0
- package/src/ui/switch/index.ts +10 -0
- package/src/ui/table/README.md +39 -0
- package/src/ui/table/Table.stx +14 -0
- package/src/ui/table/TableBody.stx +10 -0
- package/src/ui/table/TableCell.stx +10 -0
- package/src/ui/table/TableHead.stx +10 -0
- package/src/ui/table/TableHeader.stx +13 -0
- package/src/ui/table/TableRow.stx +11 -0
- package/src/ui/table/index.ts +35 -0
- package/src/ui/tabs/Tabs.stx +145 -0
- package/src/ui/tabs/index.ts +16 -0
- package/src/ui/teleport/Teleport.stx +101 -0
- package/src/ui/teleport/index.ts +7 -0
- package/src/ui/textarea/Textarea.stx +119 -0
- package/src/ui/textarea/index.ts +20 -0
- package/src/ui/tooltip/Tooltip.stx +76 -0
- package/src/ui/tooltip/index.ts +10 -0
- package/src/ui/transition/README.md +30 -0
- package/src/ui/transition/Transition.stx +174 -0
- package/src/ui/transition/index.ts +25 -0
- package/src/ui/video/README.md +48 -0
- package/src/ui/video/Video.stx +45 -0
- package/src/ui/video/index.ts +16 -0
- package/src/ui/virtual-list/VirtualList.stx +83 -0
- package/src/ui/virtual-list/index.ts +10 -0
- package/src/ui/virtual-table/VirtualTable.stx +113 -0
- package/src/ui/virtual-table/index.ts +21 -0
- package/src/utils/PROP_VALIDATION.md +458 -0
- package/src/utils/THEME_SYSTEM.md +702 -0
- package/src/utils/accessibility.ts +841 -0
- package/src/utils/animation/easing.ts +368 -0
- package/src/utils/animation/helpers.ts +223 -0
- package/src/utils/animation/index.ts +5 -0
- package/src/utils/animation/keyframes.ts +230 -0
- package/src/utils/error-handling.ts +473 -0
- package/src/utils/highlighter.ts +93 -0
- package/src/utils/i18n.ts +634 -0
- package/src/utils/keep-alive.ts +818 -0
- package/src/utils/lazy-loading.ts +530 -0
- package/src/utils/prop-validation.ts +478 -0
- package/src/utils/theme.ts +626 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a keyframe animation using Web Animations API
|
|
3
|
+
*
|
|
4
|
+
* @param element - Target HTML element
|
|
5
|
+
* @param keyframes - Array of keyframe definitions
|
|
6
|
+
* @param options - Animation options
|
|
7
|
+
* @returns Animation instance or null if not supported
|
|
8
|
+
*/
|
|
9
|
+
export declare function createKeyframeAnimation(element: HTMLElement, keyframes: readonly Keyframe[] | Keyframe[], options?: AnimationOptions): Animation | null;
|
|
10
|
+
/**
|
|
11
|
+
* Animate an element with a predefined animation
|
|
12
|
+
*
|
|
13
|
+
* @param element - Target HTML element
|
|
14
|
+
* @param animationName - Name of predefined animation
|
|
15
|
+
* @param options - Animation options
|
|
16
|
+
* @returns Animation instance or null if not supported
|
|
17
|
+
*/
|
|
18
|
+
export declare function animate(element: HTMLElement, animationName: KeyframeAnimationName, options?: AnimationOptions): Animation | null;
|
|
19
|
+
/**
|
|
20
|
+
* Predefined keyframe animation presets
|
|
21
|
+
*
|
|
22
|
+
* Available animations:
|
|
23
|
+
* - fadeIn/fadeOut
|
|
24
|
+
* - slideInUp/Down/Left/Right, slideOutUp/Down/Left/Right
|
|
25
|
+
* - zoomIn/Out
|
|
26
|
+
* - rotate, bounce, pulse, shake, swing
|
|
27
|
+
* - flip, rubberBand, heartbeat
|
|
28
|
+
*/
|
|
29
|
+
export declare const KeyframeAnimations: {
|
|
30
|
+
fadeIn: readonly [{
|
|
31
|
+
offset: 0;
|
|
32
|
+
opacity: 0
|
|
33
|
+
}, {
|
|
34
|
+
offset: 1;
|
|
35
|
+
opacity: 1
|
|
36
|
+
}];
|
|
37
|
+
fadeOut: readonly [{
|
|
38
|
+
offset: 0;
|
|
39
|
+
opacity: 1
|
|
40
|
+
}, {
|
|
41
|
+
offset: 1;
|
|
42
|
+
opacity: 0
|
|
43
|
+
}];
|
|
44
|
+
slideInUp: readonly [{
|
|
45
|
+
offset: 0;
|
|
46
|
+
transform: 'translateY(100%)';
|
|
47
|
+
opacity: 0
|
|
48
|
+
}, {
|
|
49
|
+
offset: 1;
|
|
50
|
+
transform: 'translateY(0)';
|
|
51
|
+
opacity: 1
|
|
52
|
+
}];
|
|
53
|
+
slideInDown: readonly [{
|
|
54
|
+
offset: 0;
|
|
55
|
+
transform: 'translateY(-100%)';
|
|
56
|
+
opacity: 0
|
|
57
|
+
}, {
|
|
58
|
+
offset: 1;
|
|
59
|
+
transform: 'translateY(0)';
|
|
60
|
+
opacity: 1
|
|
61
|
+
}];
|
|
62
|
+
slideInLeft: readonly [{
|
|
63
|
+
offset: 0;
|
|
64
|
+
transform: 'translateX(-100%)';
|
|
65
|
+
opacity: 0
|
|
66
|
+
}, {
|
|
67
|
+
offset: 1;
|
|
68
|
+
transform: 'translateX(0)';
|
|
69
|
+
opacity: 1
|
|
70
|
+
}];
|
|
71
|
+
slideInRight: readonly [{
|
|
72
|
+
offset: 0;
|
|
73
|
+
transform: 'translateX(100%)';
|
|
74
|
+
opacity: 0
|
|
75
|
+
}, {
|
|
76
|
+
offset: 1;
|
|
77
|
+
transform: 'translateX(0)';
|
|
78
|
+
opacity: 1
|
|
79
|
+
}];
|
|
80
|
+
slideOutUp: readonly [{
|
|
81
|
+
offset: 0;
|
|
82
|
+
transform: 'translateY(0)';
|
|
83
|
+
opacity: 1
|
|
84
|
+
}, {
|
|
85
|
+
offset: 1;
|
|
86
|
+
transform: 'translateY(-100%)';
|
|
87
|
+
opacity: 0
|
|
88
|
+
}];
|
|
89
|
+
slideOutDown: readonly [{
|
|
90
|
+
offset: 0;
|
|
91
|
+
transform: 'translateY(0)';
|
|
92
|
+
opacity: 1
|
|
93
|
+
}, {
|
|
94
|
+
offset: 1;
|
|
95
|
+
transform: 'translateY(100%)';
|
|
96
|
+
opacity: 0
|
|
97
|
+
}];
|
|
98
|
+
slideOutLeft: readonly [{
|
|
99
|
+
offset: 0;
|
|
100
|
+
transform: 'translateX(0)';
|
|
101
|
+
opacity: 1
|
|
102
|
+
}, {
|
|
103
|
+
offset: 1;
|
|
104
|
+
transform: 'translateX(-100%)';
|
|
105
|
+
opacity: 0
|
|
106
|
+
}];
|
|
107
|
+
slideOutRight: readonly [{
|
|
108
|
+
offset: 0;
|
|
109
|
+
transform: 'translateX(0)';
|
|
110
|
+
opacity: 1
|
|
111
|
+
}, {
|
|
112
|
+
offset: 1;
|
|
113
|
+
transform: 'translateX(100%)';
|
|
114
|
+
opacity: 0
|
|
115
|
+
}];
|
|
116
|
+
zoomIn: readonly [{
|
|
117
|
+
offset: 0;
|
|
118
|
+
transform: 'scale(0)';
|
|
119
|
+
opacity: 0
|
|
120
|
+
}, {
|
|
121
|
+
offset: 0.5;
|
|
122
|
+
opacity: 1
|
|
123
|
+
}, {
|
|
124
|
+
offset: 1;
|
|
125
|
+
transform: 'scale(1)'
|
|
126
|
+
}];
|
|
127
|
+
zoomOut: readonly [{
|
|
128
|
+
offset: 0;
|
|
129
|
+
transform: 'scale(1)';
|
|
130
|
+
opacity: 1
|
|
131
|
+
}, {
|
|
132
|
+
offset: 0.5;
|
|
133
|
+
opacity: 1
|
|
134
|
+
}, {
|
|
135
|
+
offset: 1;
|
|
136
|
+
transform: 'scale(0)';
|
|
137
|
+
opacity: 0
|
|
138
|
+
}];
|
|
139
|
+
rotate: readonly [{
|
|
140
|
+
offset: 0;
|
|
141
|
+
transform: 'rotate(0deg)'
|
|
142
|
+
}, {
|
|
143
|
+
offset: 1;
|
|
144
|
+
transform: 'rotate(360deg)'
|
|
145
|
+
}];
|
|
146
|
+
bounce: readonly [{
|
|
147
|
+
offset: 0;
|
|
148
|
+
transform: 'translateY(0)'
|
|
149
|
+
}, {
|
|
150
|
+
offset: 0.2;
|
|
151
|
+
transform: 'translateY(0)'
|
|
152
|
+
}, {
|
|
153
|
+
offset: 0.4;
|
|
154
|
+
transform: 'translateY(-30px)'
|
|
155
|
+
}, {
|
|
156
|
+
offset: 0.43;
|
|
157
|
+
transform: 'translateY(-30px)'
|
|
158
|
+
}, {
|
|
159
|
+
offset: 0.53;
|
|
160
|
+
transform: 'translateY(0)'
|
|
161
|
+
}, {
|
|
162
|
+
offset: 0.7;
|
|
163
|
+
transform: 'translateY(-15px)'
|
|
164
|
+
}, {
|
|
165
|
+
offset: 0.8;
|
|
166
|
+
transform: 'translateY(0)'
|
|
167
|
+
}, {
|
|
168
|
+
offset: 0.9;
|
|
169
|
+
transform: 'translateY(-4px)'
|
|
170
|
+
}, {
|
|
171
|
+
offset: 1;
|
|
172
|
+
transform: 'translateY(0)'
|
|
173
|
+
}];
|
|
174
|
+
pulse: readonly [{
|
|
175
|
+
offset: 0;
|
|
176
|
+
transform: 'scale(1)'
|
|
177
|
+
}, {
|
|
178
|
+
offset: 0.5;
|
|
179
|
+
transform: 'scale(1.05)'
|
|
180
|
+
}, {
|
|
181
|
+
offset: 1;
|
|
182
|
+
transform: 'scale(1)'
|
|
183
|
+
}];
|
|
184
|
+
shake: readonly [{
|
|
185
|
+
offset: 0;
|
|
186
|
+
transform: 'translateX(0)'
|
|
187
|
+
}, {
|
|
188
|
+
offset: 0.1;
|
|
189
|
+
transform: 'translateX(-10px)'
|
|
190
|
+
}, {
|
|
191
|
+
offset: 0.2;
|
|
192
|
+
transform: 'translateX(10px)'
|
|
193
|
+
}, {
|
|
194
|
+
offset: 0.3;
|
|
195
|
+
transform: 'translateX(-10px)'
|
|
196
|
+
}, {
|
|
197
|
+
offset: 0.4;
|
|
198
|
+
transform: 'translateX(10px)'
|
|
199
|
+
}, {
|
|
200
|
+
offset: 0.5;
|
|
201
|
+
transform: 'translateX(-10px)'
|
|
202
|
+
}, {
|
|
203
|
+
offset: 0.6;
|
|
204
|
+
transform: 'translateX(10px)'
|
|
205
|
+
}, {
|
|
206
|
+
offset: 0.7;
|
|
207
|
+
transform: 'translateX(-10px)'
|
|
208
|
+
}, {
|
|
209
|
+
offset: 0.8;
|
|
210
|
+
transform: 'translateX(10px)'
|
|
211
|
+
}, {
|
|
212
|
+
offset: 0.9;
|
|
213
|
+
transform: 'translateX(-10px)'
|
|
214
|
+
}, {
|
|
215
|
+
offset: 1;
|
|
216
|
+
transform: 'translateX(0)'
|
|
217
|
+
}];
|
|
218
|
+
swing: readonly [{
|
|
219
|
+
offset: 0;
|
|
220
|
+
transform: 'rotate(0deg)'
|
|
221
|
+
}, {
|
|
222
|
+
offset: 0.2;
|
|
223
|
+
transform: 'rotate(15deg)'
|
|
224
|
+
}, {
|
|
225
|
+
offset: 0.4;
|
|
226
|
+
transform: 'rotate(-10deg)'
|
|
227
|
+
}, {
|
|
228
|
+
offset: 0.6;
|
|
229
|
+
transform: 'rotate(5deg)'
|
|
230
|
+
}, {
|
|
231
|
+
offset: 0.8;
|
|
232
|
+
transform: 'rotate(-5deg)'
|
|
233
|
+
}, {
|
|
234
|
+
offset: 1;
|
|
235
|
+
transform: 'rotate(0deg)'
|
|
236
|
+
}];
|
|
237
|
+
flip: readonly [{
|
|
238
|
+
offset: 0;
|
|
239
|
+
transform: 'perspective(400px) rotateY(0)';
|
|
240
|
+
animationTimingFunction: 'ease-out'
|
|
241
|
+
}, {
|
|
242
|
+
offset: 0.4;
|
|
243
|
+
transform: 'perspective(400px) translateZ(150px) rotateY(170deg)';
|
|
244
|
+
animationTimingFunction: 'ease-out'
|
|
245
|
+
}, {
|
|
246
|
+
offset: 0.5;
|
|
247
|
+
transform: 'perspective(400px) translateZ(150px) rotateY(190deg)';
|
|
248
|
+
animationTimingFunction: 'ease-in'
|
|
249
|
+
}, {
|
|
250
|
+
offset: 0.8;
|
|
251
|
+
transform: 'perspective(400px) rotateY(360deg)';
|
|
252
|
+
animationTimingFunction: 'ease-in'
|
|
253
|
+
}, {
|
|
254
|
+
offset: 1;
|
|
255
|
+
transform: 'perspective(400px)';
|
|
256
|
+
animationTimingFunction: 'ease-in'
|
|
257
|
+
}];
|
|
258
|
+
rubberBand: readonly [{
|
|
259
|
+
offset: 0;
|
|
260
|
+
transform: 'scale(1)'
|
|
261
|
+
}, {
|
|
262
|
+
offset: 0.3;
|
|
263
|
+
transform: 'scaleX(1.25) scaleY(0.75)'
|
|
264
|
+
}, {
|
|
265
|
+
offset: 0.4;
|
|
266
|
+
transform: 'scaleX(0.75) scaleY(1.25)'
|
|
267
|
+
}, {
|
|
268
|
+
offset: 0.5;
|
|
269
|
+
transform: 'scaleX(1.15) scaleY(0.85)'
|
|
270
|
+
}, {
|
|
271
|
+
offset: 0.65;
|
|
272
|
+
transform: 'scaleX(0.95) scaleY(1.05)'
|
|
273
|
+
}, {
|
|
274
|
+
offset: 0.75;
|
|
275
|
+
transform: 'scaleX(1.05) scaleY(0.95)'
|
|
276
|
+
}, {
|
|
277
|
+
offset: 1;
|
|
278
|
+
transform: 'scale(1)'
|
|
279
|
+
}];
|
|
280
|
+
heartbeat: readonly [{
|
|
281
|
+
offset: 0;
|
|
282
|
+
transform: 'scale(1)'
|
|
283
|
+
}, {
|
|
284
|
+
offset: 0.14;
|
|
285
|
+
transform: 'scale(1.3)'
|
|
286
|
+
}, {
|
|
287
|
+
offset: 0.28;
|
|
288
|
+
transform: 'scale(1)'
|
|
289
|
+
}, {
|
|
290
|
+
offset: 0.42;
|
|
291
|
+
transform: 'scale(1.3)'
|
|
292
|
+
}, {
|
|
293
|
+
offset: 0.7;
|
|
294
|
+
transform: 'scale(1)'
|
|
295
|
+
}]
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Keyframe animation utilities using Web Animations API
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```ts
|
|
302
|
+
* import { animate, KeyframeAnimations } from '@stacksjs/components'
|
|
303
|
+
*
|
|
304
|
+
* // Use predefined animation
|
|
305
|
+
* animate(element, 'fadeIn', { duration: 500 })
|
|
306
|
+
*
|
|
307
|
+
* // Custom keyframes
|
|
308
|
+
* createKeyframeAnimation(element, [
|
|
309
|
+
* { offset: 0, opacity: 0, transform: 'scale(0.5)' },
|
|
310
|
+
* { offset: 1, opacity: 1, transform: 'scale(1)' }
|
|
311
|
+
* ], { duration: 300 })
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
/**
|
|
315
|
+
* Single keyframe definition
|
|
316
|
+
*/
|
|
317
|
+
export declare interface Keyframe {
|
|
318
|
+
offset: number
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Animation configuration options
|
|
322
|
+
*/
|
|
323
|
+
export declare interface AnimationOptions {
|
|
324
|
+
duration?: number
|
|
325
|
+
easing?: string
|
|
326
|
+
delay?: number
|
|
327
|
+
iterations?: number
|
|
328
|
+
direction?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'
|
|
329
|
+
fill?: 'none' | 'forwards' | 'backwards' | 'both'
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Type for predefined animation names
|
|
333
|
+
*/
|
|
334
|
+
export type KeyframeAnimationName = keyof typeof KeyframeAnimations
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Set global error handler
|
|
3
|
+
*
|
|
4
|
+
* @param handler - Error handler function
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* setErrorHandler((error) => {
|
|
9
|
+
* console.error('Component error:', error)
|
|
10
|
+
* // Send to error tracking service
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function setErrorHandler(handler: (error: Error) => void): void;
|
|
15
|
+
/**
|
|
16
|
+
* Clear the global error handler (useful for testing)
|
|
17
|
+
*/
|
|
18
|
+
export declare function clearErrorHandler(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Handle an error
|
|
21
|
+
*
|
|
22
|
+
* @param error - Error to handle
|
|
23
|
+
* @param options - Handling options
|
|
24
|
+
* @param options.throwError - Whether to re-throw the error after handling
|
|
25
|
+
* @param options.logError - Whether to log the error to console
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* try {
|
|
30
|
+
* // Component code
|
|
31
|
+
* } catch (error) {
|
|
32
|
+
* handleError(error, { throwError: false })
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function handleError(error: Error, options?: {
|
|
37
|
+
/** Whether to re-throw the error after handling */
|
|
38
|
+
throwError?: boolean
|
|
39
|
+
/** Whether to log the error to console */
|
|
40
|
+
logError?: boolean
|
|
41
|
+
}): void;
|
|
42
|
+
/**
|
|
43
|
+
* Create a wrapped function that catches and handles errors
|
|
44
|
+
*
|
|
45
|
+
* @param fn - Function to wrap
|
|
46
|
+
* @param component - Component name for error context
|
|
47
|
+
* @param eventName - Event name for error context
|
|
48
|
+
* @returns Wrapped function
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const safeHandler = wrapErrorHandler(
|
|
53
|
+
* () => { /* ... * / },
|
|
54
|
+
* 'Button',
|
|
55
|
+
* 'onClick'
|
|
56
|
+
* )
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
/* ... * / },
|
|
60
|
+
* 'Button',
|
|
61
|
+
* 'onClick'
|
|
62
|
+
* )
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function wrapErrorHandler<T extends (...args: any[]) => any>(fn: T, component: string, eventName: string): T;
|
|
66
|
+
/**
|
|
67
|
+
* Assert a condition with a custom error
|
|
68
|
+
*
|
|
69
|
+
* @param condition - Condition to check
|
|
70
|
+
* @param error - Error to throw if condition is false
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* assert(
|
|
75
|
+
* props.variant !== undefined,
|
|
76
|
+
* ErrorTypes.requiredProp('Button', 'variant')
|
|
77
|
+
* )
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function assert(condition: any, error: Error): asserts condition;
|
|
81
|
+
/**
|
|
82
|
+
* Warning message handler
|
|
83
|
+
*/
|
|
84
|
+
export declare function warn(component: string, message: string, context?: Partial<ErrorContext>): void;
|
|
85
|
+
/**
|
|
86
|
+
* Development-only assertion
|
|
87
|
+
*/
|
|
88
|
+
export declare function devAssert(condition: any, error: Error): asserts condition;
|
|
89
|
+
/**
|
|
90
|
+
* Create a debug logger for a component
|
|
91
|
+
*
|
|
92
|
+
* @param component - Component name
|
|
93
|
+
* @returns Debug logger functions
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* const debug = createDebugger('Button')
|
|
98
|
+
* debug.log('Button rendered')
|
|
99
|
+
* debug.error('Invalid prop')
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare function createDebugger(component: string): {
|
|
103
|
+
log: (...args: any[]) => void
|
|
104
|
+
warn: (message: string, context?: Partial<ErrorContext>) => void
|
|
105
|
+
error: (message: string, context?: ErrorContext) => void
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Error boundary helper for catching render errors
|
|
109
|
+
*
|
|
110
|
+
* @param component - Component name
|
|
111
|
+
* @param renderFn - Render function
|
|
112
|
+
* @param fallback - Fallback content on error
|
|
113
|
+
* @returns Rendered content or fallback
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* const content = errorBoundary(
|
|
118
|
+
* 'MyComponent',
|
|
119
|
+
* () => renderComponent(),
|
|
120
|
+
* '<div>Error loading component</div>'
|
|
121
|
+
* )
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare function errorBoundary<T>(component: string, renderFn: () => T, fallback: T): T;
|
|
125
|
+
/**
|
|
126
|
+
* Error types for common scenarios
|
|
127
|
+
*/
|
|
128
|
+
export declare const ErrorTypes: {
|
|
129
|
+
/**
|
|
130
|
+
* Invalid prop value error
|
|
131
|
+
*/
|
|
132
|
+
invalidProp(component: string, prop: string, received: any, expected: any): unknown;
|
|
133
|
+
/**
|
|
134
|
+
* Required prop missing error
|
|
135
|
+
*/
|
|
136
|
+
requiredProp(component: string, prop: string): unknown;
|
|
137
|
+
/**
|
|
138
|
+
* Invalid prop type error
|
|
139
|
+
*/
|
|
140
|
+
invalidType(component: string, prop: string, received: any, expected: string): unknown;
|
|
141
|
+
/**
|
|
142
|
+
* Component not found error
|
|
143
|
+
*/
|
|
144
|
+
componentNotFound(componentName: string): unknown;
|
|
145
|
+
/**
|
|
146
|
+
* Invalid children error
|
|
147
|
+
*/
|
|
148
|
+
invalidChildren(component: string, received: any, expected: string): unknown;
|
|
149
|
+
/**
|
|
150
|
+
* State update error
|
|
151
|
+
*/
|
|
152
|
+
stateUpdate(component: string, stateName: string, error: Error): unknown;
|
|
153
|
+
/**
|
|
154
|
+
* Event handler error
|
|
155
|
+
*/
|
|
156
|
+
eventHandler(component: string, eventName: string, error: Error): unknown;
|
|
157
|
+
/**
|
|
158
|
+
* Render error
|
|
159
|
+
*/
|
|
160
|
+
render(component: string, error: Error): unknown
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Error context information
|
|
164
|
+
*/
|
|
165
|
+
export declare interface ErrorContext {
|
|
166
|
+
component?: string
|
|
167
|
+
prop?: string
|
|
168
|
+
received?: any
|
|
169
|
+
expected?: any
|
|
170
|
+
details?: string
|
|
171
|
+
docsUrl?: string
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Custom error class for component errors
|
|
175
|
+
*/
|
|
176
|
+
export declare class ComponentError extends Error {
|
|
177
|
+
component: string;
|
|
178
|
+
context: ErrorContext;
|
|
179
|
+
constructor(component: string, message: string, context?: ErrorContext);
|
|
180
|
+
static formatMessage(component: string, message: string, context: ErrorContext): string;
|
|
181
|
+
toJSON(): { name: string, message: string, component: string, context: ErrorContext | undefined, stack: string | undefined };
|
|
182
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize or get the syntax highlighter instance
|
|
3
|
+
*/
|
|
4
|
+
export declare function getHighlighter(): Promise<TSHighlighter>;
|
|
5
|
+
/**
|
|
6
|
+
* Highlight code with syntax highlighting
|
|
7
|
+
*/
|
|
8
|
+
export declare function highlight(code: string, options?: HighlighterOptions): Promise<HighlightResult>;
|
|
9
|
+
/**
|
|
10
|
+
* Detect language from code content
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectLanguage(code: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Apply headwind utility classes to highlighted code
|
|
15
|
+
*/
|
|
16
|
+
export declare function applyHeadwindClasses(html: string, additionalClasses?: string): string;
|
|
17
|
+
export declare interface HighlighterOptions {
|
|
18
|
+
theme?: 'light' | 'dark' | 'auto'
|
|
19
|
+
language?: string
|
|
20
|
+
lineNumbers?: boolean
|
|
21
|
+
wrapLines?: boolean
|
|
22
|
+
}
|
|
23
|
+
export declare interface HighlightResult {
|
|
24
|
+
html: string
|
|
25
|
+
language: string
|
|
26
|
+
theme: string
|
|
27
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{createHighlighter as E}from"ts-syntax-highlighter";var A=null;async function F(){if(!A)A=await E({theme:"github-light"});return A}async function N(b,j={}){let{theme:k="auto",language:q="typescript",lineNumbers:G=!1,wrapLines:J=!0}=j,B=await F(),D=k==="auto"?globalThis.matchMedia?.("(prefers-color-scheme: dark)").matches?"github-dark":"github-light":k==="dark"?"github-dark":"github-light",z=await B.highlight(b,q);return{html:typeof z==="string"?z:String(z),language:q,theme:D}}function O(b){if(b.includes("<!DOCTYPE")||b.includes("<html"))return"html";if(b.includes("<?php"))return"php";if(b.includes("import")&&b.includes("from"))return"typescript";if(b.includes("function")||b.includes("const"))return"javascript";if(b.includes("{")&&b.includes("}"))return"json";if(b.includes("$")&&b.includes("|"))return"bash";if(b.includes("#")&&b.includes("##"))return"markdown";return"typescript"}function P(b,j){return`<div class="${j?`rounded-md overflow-auto text-sm leading-relaxed font-mono ${j}`:"rounded-md overflow-auto text-sm leading-relaxed font-mono"}">${b}</div>`}export{N as highlight,F as getHighlighter,O as detectLanguage,P as applyHeadwindClasses};
|