@alfalab/core-components-tabs 7.7.2 → 8.0.1
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/{cssm/Component-3e68f8db.d.ts → Component-4cd3936b.d.ts} +2 -2
- package/Component-5e1b8383.d.ts +99 -4
- package/Component-63dec22f.d.ts +167 -0
- package/Component-8b2c2707.d.ts +14 -0
- package/Component-9211a437.d.ts +38 -0
- package/Component-c76d6398.d.ts +5 -0
- package/Component.desktop-2e2b2125.d.ts +6 -0
- package/Component.desktop-785df74d.d.ts +6 -0
- package/Component.mobile-755fbaa3.d.ts +6 -0
- package/Component.mobile-d7e9f69d.d.ts +6 -0
- package/Component.mobile-ebda875c.d.ts +6 -0
- package/Component.responsive-785df74d.d.ts +26 -0
- package/collapsible.d.ts +7 -0
- package/collapsible.js +40 -0
- package/components/primary-tablist/Component.collapsible.d.ts +5 -0
- package/components/primary-tablist/Component.collapsible.desktop.d.ts +5 -0
- package/components/primary-tablist/Component.collapsible.desktop.js +32 -0
- package/components/primary-tablist/Component.collapsible.js +81 -0
- package/components/primary-tablist/Component.collapsible.mobile.d.ts +6 -0
- package/components/primary-tablist/Component.collapsible.mobile.js +35 -0
- package/components/primary-tablist/Component.collapsible.responsive.d.ts +5 -0
- package/components/primary-tablist/Component.collapsible.responsive.js +36 -0
- package/components/primary-tablist/Component.d.ts +1 -1
- package/components/primary-tablist/Component.desktop.js +2 -8
- package/components/primary-tablist/Component.js +8 -40
- package/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/components/primary-tablist/Component.mobile.js +4 -12
- package/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/components/primary-tablist/Component.responsive.js +7 -14
- package/components/primary-tablist/index.css +29 -29
- package/components/primary-tablist/mobile.css +40 -32
- package/components/scrollable-container/Component.js +1 -1
- package/components/scrollable-container/index.css +5 -5
- package/components/secondary-tablist/Component.d.ts +1 -1
- package/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/components/secondary-tablist/Component.desktop.js +4 -3
- package/components/secondary-tablist/Component.js +5 -3
- package/components/secondary-tablist/Component.mobile.js +5 -4
- package/components/secondary-tablist/Component.responsive.d.ts +1 -1
- package/components/secondary-tablist/Component.responsive.js +8 -9
- package/components/secondary-tablist/index.css +11 -11
- package/components/secondary-tablist/mobile.css +21 -13
- package/components/tab/Component.js +1 -1
- package/components/tab/index.css +3 -3
- package/components/tabs/Component.collabsible.desktop.d.ts +6 -0
- package/components/tabs/Component.collabsible.desktop.js +34 -0
- package/components/tabs/Component.collapsible.mobile.d.ts +6 -0
- package/components/tabs/Component.collapsible.mobile.js +35 -0
- package/components/tabs/Component.collapsible.responsive.d.ts +6 -0
- package/components/tabs/Component.collapsible.responsive.js +37 -0
- package/components/tabs/Component.d.ts +1 -1
- package/components/tabs/Component.desktop.d.ts +1 -1
- package/components/tabs/Component.desktop.js +4 -10
- package/components/tabs/Component.js +2 -2
- package/components/tabs/Component.mobile.d.ts +1 -1
- package/components/tabs/Component.mobile.js +5 -10
- package/components/tabs/Component.responsive.d.ts +1 -1
- package/components/tabs/Component.responsive.js +7 -10
- package/{esm/Component-3e68f8db.d.ts → cssm/Component-4cd3936b.d.ts} +2 -2
- package/cssm/Component-5e1b8383.d.ts +99 -4
- package/cssm/Component-63dec22f.d.ts +167 -0
- package/cssm/Component-8b2c2707.d.ts +14 -0
- package/cssm/Component-9211a437.d.ts +38 -0
- package/cssm/Component-c76d6398.d.ts +5 -0
- package/cssm/Component.desktop-2e2b2125.d.ts +6 -0
- package/cssm/Component.desktop-785df74d.d.ts +6 -0
- package/cssm/Component.mobile-755fbaa3.d.ts +6 -0
- package/cssm/Component.mobile-d7e9f69d.d.ts +6 -0
- package/cssm/Component.mobile-ebda875c.d.ts +6 -0
- package/cssm/Component.responsive-785df74d.d.ts +26 -0
- package/cssm/collapsible.d.ts +7 -0
- package/cssm/collapsible.js +41 -0
- package/cssm/components/primary-tablist/Component.collapsible.d.ts +5 -0
- package/cssm/components/primary-tablist/Component.collapsible.desktop.d.ts +5 -0
- package/cssm/components/primary-tablist/Component.collapsible.desktop.js +33 -0
- package/cssm/components/primary-tablist/Component.collapsible.js +81 -0
- package/cssm/components/primary-tablist/Component.collapsible.mobile.d.ts +6 -0
- package/cssm/components/primary-tablist/Component.collapsible.mobile.js +37 -0
- package/cssm/components/primary-tablist/Component.collapsible.responsive.d.ts +5 -0
- package/cssm/components/primary-tablist/Component.collapsible.responsive.js +36 -0
- package/cssm/components/primary-tablist/Component.d.ts +1 -1
- package/cssm/components/primary-tablist/Component.desktop.js +1 -7
- package/cssm/components/primary-tablist/Component.js +8 -40
- package/cssm/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/cssm/components/primary-tablist/Component.mobile.js +1 -7
- package/cssm/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/cssm/components/primary-tablist/Component.responsive.js +5 -13
- package/cssm/components/secondary-tablist/Component.d.ts +1 -1
- package/cssm/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/cssm/components/secondary-tablist/Component.desktop.js +3 -2
- package/cssm/components/secondary-tablist/Component.js +5 -3
- package/cssm/components/secondary-tablist/Component.mobile.js +3 -2
- package/cssm/components/secondary-tablist/Component.responsive.d.ts +1 -1
- package/cssm/components/secondary-tablist/Component.responsive.js +7 -8
- package/cssm/components/tabs/Component.collabsible.desktop.d.ts +6 -0
- package/cssm/components/tabs/Component.collabsible.desktop.js +34 -0
- package/cssm/components/tabs/Component.collapsible.mobile.d.ts +6 -0
- package/cssm/components/tabs/Component.collapsible.mobile.js +35 -0
- package/cssm/components/tabs/Component.collapsible.responsive.d.ts +6 -0
- package/cssm/components/tabs/Component.collapsible.responsive.js +37 -0
- package/cssm/components/tabs/Component.d.ts +1 -1
- package/cssm/components/tabs/Component.desktop.d.ts +1 -1
- package/cssm/components/tabs/Component.desktop.js +2 -8
- package/cssm/components/tabs/Component.js +2 -2
- package/cssm/components/tabs/Component.mobile.d.ts +1 -1
- package/cssm/components/tabs/Component.mobile.js +2 -8
- package/cssm/components/tabs/Component.responsive.d.ts +1 -1
- package/cssm/components/tabs/Component.responsive.js +4 -8
- package/cssm/desktop-2e2b2125.d.ts +2 -0
- package/cssm/desktop.d.ts +0 -4
- package/cssm/desktop.js +6 -15
- package/cssm/{hook-3e68f8db.d.ts → hook-9ea9e32c.d.ts} +10 -8
- package/cssm/hooks/use-collapsible-elements.js +9 -2
- package/cssm/hooks/use-tablist-titles.d.ts +2 -1
- package/cssm/hooks/use-tablist-titles.js +7 -5
- package/cssm/hooks/use-tabs.d.ts +1 -0
- package/cssm/hooks/use-tabs.js +3 -6
- package/cssm/index-8b2c2707.d.ts +6 -0
- package/cssm/index-c44170fe.d.ts +23 -0
- package/{esm/types-ebda875c.d.ts → cssm/index-c76d6398.d.ts} +42 -14
- package/cssm/index-ebda875c.d.ts +86 -18
- package/cssm/index-f12ee135.d.ts +307 -3
- package/cssm/index.d.ts +1 -4
- package/cssm/index.js +9 -15
- package/cssm/mobile-755fbaa3.d.ts +2 -0
- package/cssm/mobile-96988a65.d.ts +2 -0
- package/cssm/mobile.d.ts +0 -3
- package/cssm/mobile.js +6 -14
- package/{esm/index-3e68f8db.d.ts → cssm/shared-4cd3936b.d.ts} +48 -14
- package/cssm/shared.d.ts +4 -0
- package/cssm/shared.js +21 -0
- package/cssm/types-4480ac4f.d.ts +3 -0
- package/cssm/typings-5e1b8383.d.ts +2 -1
- package/cssm/typings-9211a437.d.ts +95 -0
- package/cssm/typings.d.ts +11 -10
- package/desktop-2e2b2125.d.ts +2 -0
- package/desktop.d.ts +0 -4
- package/desktop.js +7 -16
- package/{Component-3e68f8db.d.ts → esm/Component-4cd3936b.d.ts} +2 -2
- package/esm/Component-5e1b8383.d.ts +99 -4
- package/esm/Component-63dec22f.d.ts +167 -0
- package/esm/Component-8b2c2707.d.ts +14 -0
- package/esm/Component-9211a437.d.ts +38 -0
- package/esm/Component-c76d6398.d.ts +5 -0
- package/esm/Component.desktop-2e2b2125.d.ts +6 -0
- package/esm/Component.desktop-785df74d.d.ts +6 -0
- package/esm/Component.mobile-755fbaa3.d.ts +6 -0
- package/esm/Component.mobile-d7e9f69d.d.ts +6 -0
- package/esm/Component.mobile-ebda875c.d.ts +6 -0
- package/esm/Component.responsive-785df74d.d.ts +26 -0
- package/esm/collapsible.d.ts +7 -0
- package/esm/collapsible.js +26 -0
- package/esm/components/primary-tablist/Component.collapsible.d.ts +5 -0
- package/esm/components/primary-tablist/Component.collapsible.desktop.d.ts +5 -0
- package/esm/components/primary-tablist/Component.collapsible.desktop.js +24 -0
- package/esm/components/primary-tablist/Component.collapsible.js +72 -0
- package/esm/components/primary-tablist/Component.collapsible.mobile.d.ts +6 -0
- package/esm/components/primary-tablist/Component.collapsible.mobile.js +26 -0
- package/esm/components/primary-tablist/Component.collapsible.responsive.d.ts +5 -0
- package/esm/components/primary-tablist/Component.collapsible.responsive.js +28 -0
- package/esm/components/primary-tablist/Component.d.ts +1 -1
- package/esm/components/primary-tablist/Component.desktop.js +2 -8
- package/esm/components/primary-tablist/Component.js +10 -42
- package/esm/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/esm/components/primary-tablist/Component.mobile.js +3 -11
- package/esm/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/esm/components/primary-tablist/Component.responsive.js +7 -14
- package/esm/components/primary-tablist/index.css +29 -29
- package/esm/components/primary-tablist/mobile.css +40 -32
- package/esm/components/scrollable-container/Component.js +1 -1
- package/esm/components/scrollable-container/index.css +5 -5
- package/esm/components/secondary-tablist/Component.d.ts +1 -1
- package/esm/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/esm/components/secondary-tablist/Component.desktop.js +4 -3
- package/esm/components/secondary-tablist/Component.js +5 -3
- package/esm/components/secondary-tablist/Component.mobile.js +5 -4
- package/esm/components/secondary-tablist/Component.responsive.d.ts +1 -1
- package/esm/components/secondary-tablist/Component.responsive.js +8 -9
- package/esm/components/secondary-tablist/index.css +11 -11
- package/esm/components/secondary-tablist/mobile.css +21 -13
- package/esm/components/tab/Component.js +1 -1
- package/esm/components/tab/index.css +3 -3
- package/esm/components/tabs/Component.collabsible.desktop.d.ts +6 -0
- package/esm/components/tabs/Component.collabsible.desktop.js +26 -0
- package/esm/components/tabs/Component.collapsible.mobile.d.ts +6 -0
- package/esm/components/tabs/Component.collapsible.mobile.js +27 -0
- package/esm/components/tabs/Component.collapsible.responsive.d.ts +6 -0
- package/esm/components/tabs/Component.collapsible.responsive.js +29 -0
- package/esm/components/tabs/Component.d.ts +1 -1
- package/esm/components/tabs/Component.desktop.d.ts +1 -1
- package/esm/components/tabs/Component.desktop.js +4 -10
- package/esm/components/tabs/Component.js +2 -2
- package/esm/components/tabs/Component.mobile.d.ts +1 -1
- package/esm/components/tabs/Component.mobile.js +5 -10
- package/esm/components/tabs/Component.responsive.d.ts +1 -1
- package/esm/components/tabs/Component.responsive.js +7 -10
- package/esm/desktop-2e2b2125.d.ts +2 -0
- package/esm/desktop.d.ts +0 -4
- package/esm/desktop.js +7 -13
- package/{hook-3e68f8db.d.ts → esm/hook-9ea9e32c.d.ts} +10 -8
- package/esm/hooks/use-collapsible-elements.js +9 -2
- package/esm/hooks/use-tablist-titles.d.ts +2 -1
- package/esm/hooks/use-tablist-titles.js +7 -5
- package/esm/hooks/use-tabs.d.ts +1 -0
- package/esm/hooks/use-tabs.js +2 -5
- package/esm/index-8b2c2707.d.ts +6 -0
- package/esm/index-c44170fe.d.ts +23 -0
- package/{cssm/types-ebda875c.d.ts → esm/index-c76d6398.d.ts} +42 -14
- package/esm/index-ebda875c.d.ts +86 -18
- package/esm/index-f12ee135.d.ts +307 -3
- package/esm/index.d.ts +1 -4
- package/esm/index.js +11 -14
- package/esm/index.module-07ef4b36.js +4 -0
- package/esm/index.module-a9e566cd.js +4 -0
- package/esm/mobile-755fbaa3.d.ts +2 -0
- package/esm/mobile-96988a65.d.ts +2 -0
- package/esm/mobile.d.ts +0 -3
- package/esm/mobile.js +8 -13
- package/esm/mobile.module-a482a7ab.js +4 -0
- package/{index-3e68f8db.d.ts → esm/shared-4cd3936b.d.ts} +48 -14
- package/esm/shared.d.ts +4 -0
- package/esm/shared.js +10 -0
- package/esm/types-4480ac4f.d.ts +3 -0
- package/esm/typings-5e1b8383.d.ts +2 -1
- package/esm/typings-9211a437.d.ts +95 -0
- package/esm/typings.d.ts +11 -10
- package/{modern/hook-3e68f8db.d.ts → hook-9ea9e32c.d.ts} +10 -8
- package/hooks/use-collapsible-elements.js +9 -2
- package/hooks/use-tablist-titles.d.ts +2 -1
- package/hooks/use-tablist-titles.js +7 -5
- package/hooks/use-tabs.d.ts +1 -0
- package/hooks/use-tabs.js +3 -6
- package/index-8b2c2707.d.ts +6 -0
- package/index-c44170fe.d.ts +23 -0
- package/{modern/types-ebda875c.d.ts → index-c76d6398.d.ts} +42 -14
- package/index-ebda875c.d.ts +86 -18
- package/index-f12ee135.d.ts +307 -3
- package/index.d.ts +1 -4
- package/index.js +11 -16
- package/index.module-5dc2b717.js +6 -0
- package/index.module-d50828f5.js +6 -0
- package/mobile-755fbaa3.d.ts +2 -0
- package/mobile-96988a65.d.ts +2 -0
- package/mobile.d.ts +0 -3
- package/mobile.js +8 -15
- package/mobile.module-39c6dc63.js +6 -0
- package/modern/{Component-3e68f8db.d.ts → Component-4cd3936b.d.ts} +2 -2
- package/modern/Component-5e1b8383.d.ts +99 -4
- package/modern/Component-63dec22f.d.ts +167 -0
- package/modern/Component-8b2c2707.d.ts +14 -0
- package/modern/Component-9211a437.d.ts +38 -0
- package/modern/Component-c76d6398.d.ts +5 -0
- package/modern/Component.desktop-2e2b2125.d.ts +6 -0
- package/modern/Component.desktop-785df74d.d.ts +6 -0
- package/modern/Component.mobile-755fbaa3.d.ts +6 -0
- package/modern/Component.mobile-d7e9f69d.d.ts +6 -0
- package/modern/Component.mobile-ebda875c.d.ts +6 -0
- package/modern/Component.responsive-785df74d.d.ts +26 -0
- package/modern/collapsible.d.ts +7 -0
- package/modern/collapsible.js +25 -0
- package/modern/components/primary-tablist/Component.collapsible.d.ts +5 -0
- package/modern/components/primary-tablist/Component.collapsible.desktop.d.ts +5 -0
- package/modern/components/primary-tablist/Component.collapsible.desktop.js +20 -0
- package/modern/components/primary-tablist/Component.collapsible.js +61 -0
- package/modern/components/primary-tablist/Component.collapsible.mobile.d.ts +6 -0
- package/modern/components/primary-tablist/Component.collapsible.mobile.js +25 -0
- package/modern/components/primary-tablist/Component.collapsible.responsive.d.ts +5 -0
- package/modern/components/primary-tablist/Component.collapsible.responsive.js +26 -0
- package/modern/components/primary-tablist/Component.d.ts +1 -1
- package/modern/components/primary-tablist/Component.desktop.js +2 -8
- package/modern/components/primary-tablist/Component.js +8 -37
- package/modern/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/modern/components/primary-tablist/Component.mobile.js +3 -11
- package/modern/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/modern/components/primary-tablist/Component.responsive.js +7 -14
- package/modern/components/primary-tablist/index.css +29 -29
- package/modern/components/primary-tablist/mobile.css +40 -32
- package/modern/components/scrollable-container/Component.js +1 -1
- package/modern/components/scrollable-container/index.css +5 -5
- package/modern/components/secondary-tablist/Component.d.ts +1 -1
- package/modern/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/modern/components/secondary-tablist/Component.desktop.js +4 -3
- package/modern/components/secondary-tablist/Component.js +12 -8
- package/modern/components/secondary-tablist/Component.mobile.js +5 -4
- package/modern/components/secondary-tablist/Component.responsive.d.ts +1 -1
- package/modern/components/secondary-tablist/Component.responsive.js +8 -9
- package/modern/components/secondary-tablist/index.css +11 -11
- package/modern/components/secondary-tablist/mobile.css +21 -13
- package/modern/components/tab/Component.js +1 -1
- package/modern/components/tab/index.css +3 -3
- package/modern/components/tabs/Component.collabsible.desktop.d.ts +6 -0
- package/modern/components/tabs/Component.collabsible.desktop.js +22 -0
- package/modern/components/tabs/Component.collapsible.mobile.d.ts +6 -0
- package/modern/components/tabs/Component.collapsible.mobile.js +23 -0
- package/modern/components/tabs/Component.collapsible.responsive.d.ts +6 -0
- package/modern/components/tabs/Component.collapsible.responsive.js +25 -0
- package/modern/components/tabs/Component.d.ts +1 -1
- package/modern/components/tabs/Component.desktop.d.ts +1 -1
- package/modern/components/tabs/Component.desktop.js +4 -10
- package/modern/components/tabs/Component.js +2 -2
- package/modern/components/tabs/Component.mobile.d.ts +1 -1
- package/modern/components/tabs/Component.mobile.js +5 -10
- package/modern/components/tabs/Component.responsive.d.ts +1 -1
- package/modern/components/tabs/Component.responsive.js +7 -10
- package/modern/desktop-2e2b2125.d.ts +2 -0
- package/modern/desktop.d.ts +0 -4
- package/modern/desktop.js +7 -13
- package/{esm/hook-3e68f8db.d.ts → modern/hook-9ea9e32c.d.ts} +10 -8
- package/modern/hooks/use-collapsible-elements.js +9 -2
- package/modern/hooks/use-tablist-titles.d.ts +2 -1
- package/modern/hooks/use-tablist-titles.js +7 -5
- package/modern/hooks/use-tabs.d.ts +1 -0
- package/modern/hooks/use-tabs.js +2 -5
- package/modern/index-8b2c2707.d.ts +6 -0
- package/modern/index-c44170fe.d.ts +23 -0
- package/{types-ebda875c.d.ts → modern/index-c76d6398.d.ts} +42 -14
- package/modern/index-ebda875c.d.ts +86 -18
- package/modern/index-f12ee135.d.ts +307 -3
- package/modern/index.d.ts +1 -4
- package/modern/index.js +11 -14
- package/modern/index.module-2e9ff693.js +4 -0
- package/modern/index.module-79e3dc27.js +4 -0
- package/modern/mobile-755fbaa3.d.ts +2 -0
- package/modern/mobile-96988a65.d.ts +2 -0
- package/modern/mobile.d.ts +0 -3
- package/modern/mobile.js +8 -13
- package/modern/mobile.module-ba3f5e47.js +4 -0
- package/{cssm/index-3e68f8db.d.ts → modern/shared-4cd3936b.d.ts} +48 -14
- package/modern/shared.d.ts +4 -0
- package/modern/shared.js +9 -0
- package/modern/types-4480ac4f.d.ts +3 -0
- package/modern/typings-5e1b8383.d.ts +2 -1
- package/modern/typings-9211a437.d.ts +95 -0
- package/modern/typings.d.ts +11 -10
- package/package.json +36 -5
- package/{modern/index-3e68f8db.d.ts → shared-4cd3936b.d.ts} +48 -14
- package/shared.d.ts +4 -0
- package/shared.js +20 -0
- package/src/collapsible.ts +10 -0
- package/src/components/primary-tablist/Component.collapsible.desktop.tsx +11 -0
- package/src/components/primary-tablist/Component.collapsible.mobile.tsx +27 -0
- package/src/components/primary-tablist/Component.collapsible.responsive.tsx +34 -0
- package/src/components/primary-tablist/Component.collapsible.tsx +132 -0
- package/src/components/primary-tablist/Component.desktop.tsx +11 -0
- package/src/components/primary-tablist/Component.mobile.tsx +20 -0
- package/src/components/primary-tablist/Component.responsive.tsx +34 -0
- package/src/components/primary-tablist/Component.tsx +74 -0
- package/src/components/primary-tablist/index.module.css +181 -0
- package/src/components/primary-tablist/mobile.module.css +20 -0
- package/src/components/scrollable-container/Component.tsx +66 -0
- package/src/components/scrollable-container/index.module.css +26 -0
- package/src/components/scrollable-container/index.ts +1 -0
- package/src/components/secondary-tablist/Component.desktop.tsx +24 -0
- package/src/components/secondary-tablist/Component.mobile.tsx +31 -0
- package/src/components/secondary-tablist/Component.responsive.tsx +24 -0
- package/src/components/secondary-tablist/Component.tsx +70 -0
- package/src/components/secondary-tablist/index.module.css +49 -0
- package/src/components/secondary-tablist/mobile.module.css +11 -0
- package/src/components/tab/Component.tsx +25 -0
- package/src/components/tab/index.module.css +7 -0
- package/src/components/tab/index.ts +1 -0
- package/src/components/tabs/Component.collabsible.desktop.tsx +15 -0
- package/src/components/tabs/Component.collapsible.mobile.tsx +15 -0
- package/src/components/tabs/Component.collapsible.responsive.tsx +12 -0
- package/src/components/tabs/Component.desktop.tsx +26 -0
- package/src/components/tabs/Component.mobile.tsx +20 -0
- package/src/components/tabs/Component.responsive.tsx +20 -0
- package/src/components/tabs/Component.tsx +67 -0
- package/src/components/title/Component.tsx +51 -0
- package/src/components/title/index.ts +1 -0
- package/src/desktop.ts +4 -0
- package/src/hooks/use-collapsible-elements.ts +78 -0
- package/src/hooks/use-tablist-titles.ts +91 -0
- package/src/hooks/use-tabs.tsx +129 -0
- package/src/index.ts +7 -0
- package/src/mobile.ts +4 -0
- package/src/shared.ts +4 -0
- package/src/synthetic-events.ts +70 -0
- package/src/typings.ts +187 -0
- package/src/vars.css +68 -0
- package/types-4480ac4f.d.ts +3 -0
- package/typings-5e1b8383.d.ts +2 -1
- package/typings-9211a437.d.ts +95 -0
- package/typings.d.ts +11 -10
- package/Component-2aef4eba.d.ts +0 -50
- package/Component-3885b0d7.d.ts +0 -71
- package/Component-3ebe4754.d.ts +0 -176
- package/Component.mobile-b2c0420d.d.ts +0 -35
- package/Component.responsive-2aef4eba.d.ts +0 -30
- package/component-3885b0d7.d.ts +0 -43
- package/cssm/Component-2aef4eba.d.ts +0 -50
- package/cssm/Component-3885b0d7.d.ts +0 -71
- package/cssm/Component-3ebe4754.d.ts +0 -176
- package/cssm/Component.mobile-b2c0420d.d.ts +0 -35
- package/cssm/Component.responsive-2aef4eba.d.ts +0 -30
- package/cssm/component-3885b0d7.d.ts +0 -43
- package/cssm/index-2aef4eba.d.ts +0 -5
- package/cssm/index-3885b0d7.d.ts +0 -3
- package/cssm/index-3ebe4754.d.ts +0 -1
- package/cssm/index-701e77da.d.ts +0 -4
- package/cssm/index-e81c389f.d.ts +0 -3
- package/cssm/responsive.d.ts +0 -8
- package/cssm/responsive.js +0 -47
- package/cssm/types-3441be57.d.ts +0 -243
- package/cssm/utils-b64479aa.d.ts +0 -8
- package/esm/Component-2aef4eba.d.ts +0 -50
- package/esm/Component-3885b0d7.d.ts +0 -71
- package/esm/Component-3ebe4754.d.ts +0 -176
- package/esm/Component.mobile-b2c0420d.d.ts +0 -35
- package/esm/Component.responsive-2aef4eba.d.ts +0 -30
- package/esm/component-3885b0d7.d.ts +0 -43
- package/esm/index-2aef4eba.d.ts +0 -5
- package/esm/index-3885b0d7.d.ts +0 -3
- package/esm/index-3ebe4754.d.ts +0 -1
- package/esm/index-701e77da.d.ts +0 -4
- package/esm/index-e81c389f.d.ts +0 -3
- package/esm/index.module-635513a6.js +0 -4
- package/esm/index.module-e99388b2.js +0 -4
- package/esm/responsive.d.ts +0 -8
- package/esm/responsive.js +0 -29
- package/esm/types-3441be57.d.ts +0 -243
- package/esm/utils-b64479aa.d.ts +0 -8
- package/index-2aef4eba.d.ts +0 -5
- package/index-3885b0d7.d.ts +0 -3
- package/index-3ebe4754.d.ts +0 -1
- package/index-701e77da.d.ts +0 -4
- package/index-e81c389f.d.ts +0 -3
- package/index.module-0362701b.js +0 -6
- package/index.module-b8728ee4.js +0 -6
- package/modern/Component-2aef4eba.d.ts +0 -50
- package/modern/Component-3885b0d7.d.ts +0 -71
- package/modern/Component-3ebe4754.d.ts +0 -176
- package/modern/Component.mobile-b2c0420d.d.ts +0 -35
- package/modern/Component.responsive-2aef4eba.d.ts +0 -30
- package/modern/component-3885b0d7.d.ts +0 -43
- package/modern/index-2aef4eba.d.ts +0 -5
- package/modern/index-3885b0d7.d.ts +0 -3
- package/modern/index-3ebe4754.d.ts +0 -1
- package/modern/index-701e77da.d.ts +0 -4
- package/modern/index-e81c389f.d.ts +0 -3
- package/modern/index.module-34edbfd1.js +0 -4
- package/modern/index.module-f1cda2bf.js +0 -4
- package/modern/responsive.d.ts +0 -8
- package/modern/responsive.js +0 -28
- package/modern/types-3441be57.d.ts +0 -243
- package/modern/utils-b64479aa.d.ts +0 -8
- package/responsive.d.ts +0 -8
- package/responsive.js +0 -43
- package/types-3441be57.d.ts +0 -243
- package/utils-b64479aa.d.ts +0 -8
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { KeyboardEvent, MouseEvent, MutableRefObject, useCallback, useRef, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
4
|
+
|
|
5
|
+
import { TabListTitle, UseTabsProps } from '../typings';
|
|
6
|
+
|
|
7
|
+
export function useTabs({ titles = [], selectedId, onChange }: UseTabsProps) {
|
|
8
|
+
const [selectedTab, setSelectedTab] = useState<HTMLButtonElement | null>(null);
|
|
9
|
+
const [focusedTab, setFocusedTab] = useState<HTMLButtonElement | null>(null);
|
|
10
|
+
const itemRefs = useRef<HTMLButtonElement[]>([]);
|
|
11
|
+
|
|
12
|
+
const handleItemRef = useCallback(
|
|
13
|
+
(node: HTMLButtonElement, item: TabListTitle, index: number) => {
|
|
14
|
+
if (node && item.id === selectedId) setSelectedTab(node);
|
|
15
|
+
itemRefs.current[index] = node;
|
|
16
|
+
},
|
|
17
|
+
[selectedId],
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const handleItemClick = useCallback(
|
|
21
|
+
(event: MouseEvent, item: TabListTitle) => {
|
|
22
|
+
if (onChange && item.id !== selectedId) {
|
|
23
|
+
onChange(event, { selectedId: item.id });
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
[onChange, selectedId],
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const focusTab = useCallback(
|
|
30
|
+
(position: 'prev' | 'next' | 'start' | 'end') => {
|
|
31
|
+
const refs = itemRefs.current;
|
|
32
|
+
|
|
33
|
+
const tabAvailable = (ref: HTMLButtonElement) => ref && !ref.disabled;
|
|
34
|
+
|
|
35
|
+
if (refs.every((ref) => !tabAvailable(ref))) return;
|
|
36
|
+
|
|
37
|
+
let focusedTabIndex = refs.findIndex((node) => document.activeElement === node);
|
|
38
|
+
|
|
39
|
+
if (focusedTabIndex === -1) {
|
|
40
|
+
focusedTabIndex = refs.findIndex((node) => node === selectedTab);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
let newFocusIndex;
|
|
44
|
+
|
|
45
|
+
switch (position) {
|
|
46
|
+
case 'prev':
|
|
47
|
+
newFocusIndex = focusedTabIndex === 0 ? refs.length - 1 : focusedTabIndex - 1;
|
|
48
|
+
break;
|
|
49
|
+
case 'next':
|
|
50
|
+
newFocusIndex = focusedTabIndex === refs.length - 1 ? 0 : focusedTabIndex + 1;
|
|
51
|
+
break;
|
|
52
|
+
case 'start':
|
|
53
|
+
newFocusIndex = 0;
|
|
54
|
+
break;
|
|
55
|
+
case 'end':
|
|
56
|
+
newFocusIndex = refs.length - 1;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const shift = ['prev', 'end'].includes(position) ? -1 : 1;
|
|
61
|
+
|
|
62
|
+
while (!tabAvailable(refs[newFocusIndex])) {
|
|
63
|
+
newFocusIndex = (refs.length + newFocusIndex + shift) % refs.length;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
refs[newFocusIndex].focus();
|
|
67
|
+
|
|
68
|
+
setFocusedTab(refs[newFocusIndex]);
|
|
69
|
+
},
|
|
70
|
+
[selectedTab, itemRefs],
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
const handleKeyDown = useCallback(
|
|
74
|
+
(event: KeyboardEvent<HTMLButtonElement>) => {
|
|
75
|
+
switch (event.key) {
|
|
76
|
+
case 'ArrowLeft':
|
|
77
|
+
focusTab('prev');
|
|
78
|
+
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
break;
|
|
81
|
+
case 'ArrowRight':
|
|
82
|
+
focusTab('next');
|
|
83
|
+
|
|
84
|
+
event.preventDefault();
|
|
85
|
+
break;
|
|
86
|
+
case 'Home':
|
|
87
|
+
focusTab('start');
|
|
88
|
+
|
|
89
|
+
event.preventDefault();
|
|
90
|
+
break;
|
|
91
|
+
case 'End':
|
|
92
|
+
focusTab('end');
|
|
93
|
+
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
break;
|
|
96
|
+
default:
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
[focusTab],
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
const getTabListItemProps = (index: number, outerRef?: MutableRefObject<HTMLElement>) => {
|
|
104
|
+
const item = titles[index];
|
|
105
|
+
const itemSelected = item.id === selectedId;
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
role: 'tab',
|
|
109
|
+
tabIndex: itemSelected ? 0 : -1,
|
|
110
|
+
'aria-selected': itemSelected,
|
|
111
|
+
selected: itemSelected,
|
|
112
|
+
'data-test-id': getDataTestId(item.dataTestId, 'toggle'),
|
|
113
|
+
disabled: item.disabled,
|
|
114
|
+
ref: (node: HTMLButtonElement) => {
|
|
115
|
+
// eslint-disable-next-line no-param-reassign
|
|
116
|
+
if (outerRef) outerRef.current = node;
|
|
117
|
+
handleItemRef(node, item, index);
|
|
118
|
+
},
|
|
119
|
+
onKeyDown: handleKeyDown,
|
|
120
|
+
onClick: (event?: MouseEvent) => handleItemClick(event as MouseEvent, item),
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
return {
|
|
125
|
+
getTabListItemProps,
|
|
126
|
+
selectedTab,
|
|
127
|
+
focusedTab,
|
|
128
|
+
};
|
|
129
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './components/primary-tablist/Component.responsive';
|
|
2
|
+
export * from './components/secondary-tablist/Component.responsive';
|
|
3
|
+
export * from './components/tab';
|
|
4
|
+
export {
|
|
5
|
+
TabsResponsive as Tabs,
|
|
6
|
+
TabsResponsiveProps as TabsProps,
|
|
7
|
+
} from './components/tabs/Component.responsive';
|
package/src/mobile.ts
ADDED
package/src/shared.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
export const createSyntheticEvent = <T extends Element, E extends Event>(
|
|
4
|
+
event: E,
|
|
5
|
+
): React.SyntheticEvent<T, E> => {
|
|
6
|
+
let isDefaultPrevented = false;
|
|
7
|
+
let isPropagationStopped = false;
|
|
8
|
+
const preventDefault = () => {
|
|
9
|
+
isDefaultPrevented = true;
|
|
10
|
+
event.preventDefault();
|
|
11
|
+
};
|
|
12
|
+
const stopPropagation = () => {
|
|
13
|
+
isPropagationStopped = true;
|
|
14
|
+
event.stopPropagation();
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
nativeEvent: event,
|
|
19
|
+
currentTarget: event.currentTarget as EventTarget & T,
|
|
20
|
+
target: event.target as EventTarget & T,
|
|
21
|
+
bubbles: event.bubbles,
|
|
22
|
+
cancelable: event.cancelable,
|
|
23
|
+
defaultPrevented: event.defaultPrevented,
|
|
24
|
+
eventPhase: event.eventPhase,
|
|
25
|
+
isTrusted: event.isTrusted,
|
|
26
|
+
preventDefault,
|
|
27
|
+
isDefaultPrevented: () => isDefaultPrevented,
|
|
28
|
+
stopPropagation,
|
|
29
|
+
isPropagationStopped: () => isPropagationStopped,
|
|
30
|
+
persist: () => {},
|
|
31
|
+
timeStamp: event.timeStamp,
|
|
32
|
+
type: event.type,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const createUIEvent = <T extends Element, E extends Event>(
|
|
37
|
+
event: E,
|
|
38
|
+
): React.UIEvent<T, E> => ({
|
|
39
|
+
...createSyntheticEvent(event),
|
|
40
|
+
detail: 0,
|
|
41
|
+
view: {
|
|
42
|
+
styleMedia: {
|
|
43
|
+
type: '',
|
|
44
|
+
matchMedium: () => false,
|
|
45
|
+
},
|
|
46
|
+
document,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export const createSyntheticMouseEvent = <T extends Element>(
|
|
51
|
+
event: MouseEvent,
|
|
52
|
+
): React.MouseEvent<T, MouseEvent> => ({
|
|
53
|
+
...createUIEvent<T, MouseEvent>(event),
|
|
54
|
+
altKey: event.altKey,
|
|
55
|
+
button: event.button,
|
|
56
|
+
buttons: event.buttons,
|
|
57
|
+
clientX: event.clientX,
|
|
58
|
+
clientY: event.clientY,
|
|
59
|
+
ctrlKey: event.ctrlKey,
|
|
60
|
+
getModifierState: event.getModifierState,
|
|
61
|
+
metaKey: event.metaKey,
|
|
62
|
+
movementX: event.movementX,
|
|
63
|
+
movementY: event.movementY,
|
|
64
|
+
pageX: event.pageX,
|
|
65
|
+
pageY: event.pageY,
|
|
66
|
+
relatedTarget: event.relatedTarget,
|
|
67
|
+
screenX: event.screenX,
|
|
68
|
+
screenY: event.screenY,
|
|
69
|
+
shiftKey: event.shiftKey,
|
|
70
|
+
});
|
package/src/typings.ts
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { FC, MouseEvent, ReactElement, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
import { TagProps } from '@alfalab/core-components-tag';
|
|
4
|
+
|
|
5
|
+
export type SelectedId = string | number;
|
|
6
|
+
|
|
7
|
+
export type TabsProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Дополнительный класс
|
|
10
|
+
*/
|
|
11
|
+
className?: string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Дополнительный класс контейнера
|
|
15
|
+
*/
|
|
16
|
+
containerClassName?: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Id активного таба
|
|
20
|
+
*/
|
|
21
|
+
selectedId?: SelectedId;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Рендерить неактивные табы
|
|
25
|
+
*/
|
|
26
|
+
keepMounted?: boolean;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Внешний вид заголовков табов
|
|
30
|
+
*/
|
|
31
|
+
view?: 'primary' | 'secondary';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Высота заголовков табов
|
|
35
|
+
*/
|
|
36
|
+
size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Значение по-умолчанию для хука useMatchMedia
|
|
40
|
+
*/
|
|
41
|
+
defaultMatchMediaValue?: boolean | (() => boolean);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Мобильный вид
|
|
45
|
+
*/
|
|
46
|
+
mobile?: boolean;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Рендерить заголовки табов в контейнере со скроллом
|
|
50
|
+
*/
|
|
51
|
+
scrollable?: boolean;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Список табов, для контроля переноса вкладок в PickerButton
|
|
55
|
+
*/
|
|
56
|
+
collapsedTabsIds?: string[];
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* При скроле табы будут уходить в край экрана
|
|
60
|
+
*/
|
|
61
|
+
fullWidthScroll?: boolean;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Компоненты табов
|
|
65
|
+
*/
|
|
66
|
+
children: Array<ReactElement<TabProps>>;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Компонент заголовков табов
|
|
70
|
+
*/
|
|
71
|
+
TabList: FC<TabListProps>;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Обработчик переключения табов
|
|
75
|
+
*/
|
|
76
|
+
onChange?: (event: MouseEvent, payload: { selectedId: SelectedId }) => void;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Идентификатор для систем автоматизированного тестирования
|
|
80
|
+
*/
|
|
81
|
+
dataTestId?: string;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Контрольная точка для тега, с нее начинается desktop версия
|
|
85
|
+
* @default 1024
|
|
86
|
+
*/
|
|
87
|
+
breakpoint?: number;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export type TabProps = {
|
|
91
|
+
/**
|
|
92
|
+
* Id таба
|
|
93
|
+
*/
|
|
94
|
+
id: SelectedId;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Заголовок таба
|
|
98
|
+
*/
|
|
99
|
+
title: string;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Дополнительный класс для контейнера содержимого таба
|
|
103
|
+
*/
|
|
104
|
+
className?: string;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Дополнительный класс для кнопки таба
|
|
108
|
+
*/
|
|
109
|
+
toggleClassName?: string;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Блокирует таб
|
|
113
|
+
*/
|
|
114
|
+
disabled?: boolean;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Управление видимостью таба
|
|
118
|
+
*/
|
|
119
|
+
hidden?: boolean;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Рендерить таб, если он неактивен
|
|
123
|
+
*/
|
|
124
|
+
keepMounted?: boolean;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Контент таба
|
|
128
|
+
*/
|
|
129
|
+
children?: ReactNode;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Слот справа
|
|
133
|
+
*/
|
|
134
|
+
rightAddons?: ReactNode;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Идентификатор для систем автоматизированного тестирования
|
|
138
|
+
*/
|
|
139
|
+
dataTestId?: string;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export type TabListTitle = {
|
|
143
|
+
title: string;
|
|
144
|
+
id: SelectedId;
|
|
145
|
+
disabled?: boolean;
|
|
146
|
+
rightAddons?: ReactNode;
|
|
147
|
+
hidden?: boolean;
|
|
148
|
+
toggleClassName?: string;
|
|
149
|
+
selected?: boolean;
|
|
150
|
+
collapsed?: boolean;
|
|
151
|
+
dataTestId?: string;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export type TabListProps = Pick<
|
|
155
|
+
TabsProps,
|
|
156
|
+
| 'className'
|
|
157
|
+
| 'containerClassName'
|
|
158
|
+
| 'size'
|
|
159
|
+
| 'defaultMatchMediaValue'
|
|
160
|
+
| 'selectedId'
|
|
161
|
+
| 'scrollable'
|
|
162
|
+
| 'collapsedTabsIds'
|
|
163
|
+
| 'onChange'
|
|
164
|
+
| 'dataTestId'
|
|
165
|
+
| 'fullWidthScroll'
|
|
166
|
+
> & {
|
|
167
|
+
/**
|
|
168
|
+
* Заголовки табов
|
|
169
|
+
*/
|
|
170
|
+
titles?: TabListTitle[];
|
|
171
|
+
/**
|
|
172
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
173
|
+
* @default 1024
|
|
174
|
+
*/
|
|
175
|
+
breakpoint?: number;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
export type SecondaryTabListProps = TabListProps & {
|
|
179
|
+
tagSize?: TagProps['size'];
|
|
180
|
+
TagComponent?: FC<Omit<TagProps, 'breakpoint'>>;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
export type UseTabsProps = TabListProps;
|
|
184
|
+
|
|
185
|
+
export type Styles = {
|
|
186
|
+
styles?: { [key: string]: string };
|
|
187
|
+
};
|
package/src/vars.css
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@import '@alfalab/core-components-themes/src/default.css';
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--primary-tablist-color: var(--color-light-text-secondary);
|
|
5
|
+
--primary-tablist-hover-color: var(--color-light-text-primary);
|
|
6
|
+
--primary-tablist-selected-color: var(--color-light-text-primary);
|
|
7
|
+
--primary-tablist-disabled-color: var(--color-light-text-tertiary);
|
|
8
|
+
--primary-tablist-bottom-border-color: var(--color-light-border-primary);
|
|
9
|
+
--primary-tablist-line-color: var(--color-light-border-accent);
|
|
10
|
+
--primary-tablist-font-feature-settings: normal;
|
|
11
|
+
|
|
12
|
+
/* mobile */
|
|
13
|
+
--primary-tablist-mobile-gaps: var(--gap-xl);
|
|
14
|
+
--primary-tablist-mobile-font-size: 16px;
|
|
15
|
+
--primary-tablist-mobile-line-height: 24px;
|
|
16
|
+
--primary-tablist-mobile-font-weight: 400;
|
|
17
|
+
--primary-tablist-mobile-font-family: var(--font-family-system);
|
|
18
|
+
--primary-tablist-mobile-padding: 0 0 var(--gap-s);
|
|
19
|
+
|
|
20
|
+
/* size s */
|
|
21
|
+
--primary-tablist-s-gaps: var(--gap-2xl);
|
|
22
|
+
--primary-tablist-s-font-size: 18px;
|
|
23
|
+
--primary-tablist-s-font-weight: 400;
|
|
24
|
+
--primary-tablist-s-font-family: var(--font-family-system);
|
|
25
|
+
--primary-tablist-s-padding: 0 0 var(--gap-s);
|
|
26
|
+
|
|
27
|
+
/* size m */
|
|
28
|
+
--primary-tablist-m-gaps: var(--gap-2xl);
|
|
29
|
+
--primary-tablist-m-font-size: 18px;
|
|
30
|
+
--primary-tablist-m-font-weight: 400;
|
|
31
|
+
--primary-tablist-m-font-family: var(--font-family-system);
|
|
32
|
+
--primary-tablist-m-padding: 0 0 var(--gap-m);
|
|
33
|
+
|
|
34
|
+
/* size l */
|
|
35
|
+
--primary-tablist-l-gaps: var(--gap-2xl);
|
|
36
|
+
--primary-tablist-l-font-size: 18px;
|
|
37
|
+
--primary-tablist-l-font-weight: 400;
|
|
38
|
+
--primary-tablist-l-font-family: var(--font-family-system);
|
|
39
|
+
--primary-tablist-l-padding: 0 0 var(--gap-l);
|
|
40
|
+
|
|
41
|
+
/* size xl */
|
|
42
|
+
--primary-tablist-xl-gaps: var(--gap-2xl);
|
|
43
|
+
--primary-tablist-xl-font-size: 18px;
|
|
44
|
+
--primary-tablist-xl-font-weight: 400;
|
|
45
|
+
--primary-tablist-xl-font-family: var(--font-family-system);
|
|
46
|
+
--primary-tablist-xl-padding: 0 0 var(--gap-l);
|
|
47
|
+
|
|
48
|
+
/* mobile */
|
|
49
|
+
--secondary-tablist-mobile-gaps: var(--gap-xs);
|
|
50
|
+
|
|
51
|
+
/* size xxs */
|
|
52
|
+
--secondary-tablist-xxs-gaps: var(--gap-xs);
|
|
53
|
+
|
|
54
|
+
/* size xs */
|
|
55
|
+
--secondary-tablist-xs-gaps: var(--gap-xs);
|
|
56
|
+
|
|
57
|
+
/* size s */
|
|
58
|
+
--secondary-tablist-s-gaps: var(--gap-s);
|
|
59
|
+
|
|
60
|
+
/* size m */
|
|
61
|
+
--secondary-tablist-m-gaps: var(--gap-s);
|
|
62
|
+
|
|
63
|
+
/* size l */
|
|
64
|
+
--secondary-tablist-l-gaps: var(--gap-m);
|
|
65
|
+
|
|
66
|
+
/* size xl */
|
|
67
|
+
--secondary-tablist-xl-gaps: var(--gap-m);
|
|
68
|
+
}
|
package/typings-5e1b8383.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AriaAttributes, FC, FocusEvent, MouseEvent, ReactElement, ReactNode, RefAttributes, SVGProps } from 'react';
|
|
2
|
-
import { InputProps
|
|
2
|
+
import { InputProps } from "./index-c44170fe";
|
|
3
|
+
import { PopoverProps } from "./index-ebda875c";
|
|
3
4
|
type AnyObject = Record<string, any>;
|
|
4
5
|
type OptionShape = {
|
|
5
6
|
/**
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { AnchorHTMLAttributes, ButtonHTMLAttributes, ElementType, ReactNode } from 'react';
|
|
2
|
+
type StyleColors = {
|
|
3
|
+
default: {
|
|
4
|
+
[key: string]: string;
|
|
5
|
+
};
|
|
6
|
+
inverted: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
type ComponentProps = {
|
|
11
|
+
/**
|
|
12
|
+
* Тип кнопки
|
|
13
|
+
* @default secondary
|
|
14
|
+
*/
|
|
15
|
+
view?: 'accent' | 'primary' | 'secondary' | 'tertiary' | 'outlined' | 'filled' | 'transparent' | 'link' | 'ghost';
|
|
16
|
+
/**
|
|
17
|
+
* Слот слева
|
|
18
|
+
*/
|
|
19
|
+
leftAddons?: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Слот справа
|
|
22
|
+
*/
|
|
23
|
+
rightAddons?: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Размер компонента
|
|
26
|
+
* @default m
|
|
27
|
+
*/
|
|
28
|
+
size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
29
|
+
/**
|
|
30
|
+
* Растягивает компонент на ширину контейнера
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
block?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Дополнительный класс
|
|
36
|
+
*/
|
|
37
|
+
className?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Дополнительный класс для спиннера
|
|
40
|
+
*/
|
|
41
|
+
spinnerClassName?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Выводит ссылку в виде кнопки
|
|
44
|
+
*/
|
|
45
|
+
href?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Позволяет использовать кастомный компонент для кнопки (например Link из роутера)
|
|
48
|
+
*/
|
|
49
|
+
Component?: ElementType;
|
|
50
|
+
/**
|
|
51
|
+
* Идентификатор для систем автоматизированного тестирования
|
|
52
|
+
*/
|
|
53
|
+
dataTestId?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Показать лоадер
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
loading?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Не переносить текст кнопки на новую строку
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
nowrap?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Набор цветов для компонента
|
|
66
|
+
*/
|
|
67
|
+
colors?: 'default' | 'inverted';
|
|
68
|
+
/**
|
|
69
|
+
* Дочерние элементы.
|
|
70
|
+
*/
|
|
71
|
+
children?: ReactNode;
|
|
72
|
+
/**
|
|
73
|
+
* Основные стили компонента.
|
|
74
|
+
*/
|
|
75
|
+
styles: {
|
|
76
|
+
[key: string]: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Стили компонента для default и inverted режима.
|
|
80
|
+
*/
|
|
81
|
+
colorStylesMap: StyleColors;
|
|
82
|
+
};
|
|
83
|
+
type AnchorBaseButtonProps = ComponentProps & AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
84
|
+
type NativeBaseButtonProps = ComponentProps & ButtonHTMLAttributes<HTMLButtonElement>;
|
|
85
|
+
type BaseButtonProps = Partial<AnchorBaseButtonProps | NativeBaseButtonProps>;
|
|
86
|
+
type AnchorButtonProps = Omit<BaseButtonProps, 'styles' | 'colorStylesMap'> & AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
87
|
+
type NativeButtonProps = Omit<BaseButtonProps, 'styles' | 'colorStylesMap'> & ButtonHTMLAttributes<HTMLButtonElement>;
|
|
88
|
+
type ButtonProps = Partial<AnchorButtonProps | NativeButtonProps> & {
|
|
89
|
+
/**
|
|
90
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
91
|
+
* @default 1024
|
|
92
|
+
*/
|
|
93
|
+
breakpoint?: number;
|
|
94
|
+
};
|
|
95
|
+
export { StyleColors, ComponentProps, AnchorBaseButtonProps, NativeBaseButtonProps, BaseButtonProps, AnchorButtonProps, NativeButtonProps, ButtonProps };
|
package/typings.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FC, MouseEvent, ReactElement, ReactNode } from 'react';
|
|
2
2
|
import { TagProps } from "@alfalab/core-components-tag";
|
|
3
3
|
type SelectedId = string | number;
|
|
4
|
-
type TabsMatchMedia = 'desktop' | 'mobile';
|
|
5
4
|
type TabsProps = {
|
|
6
5
|
/**
|
|
7
6
|
* Дополнительный класс
|
|
@@ -28,9 +27,9 @@ type TabsProps = {
|
|
|
28
27
|
*/
|
|
29
28
|
size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
30
29
|
/**
|
|
31
|
-
*
|
|
30
|
+
* Значение по-умолчанию для хука useMatchMedia
|
|
32
31
|
*/
|
|
33
|
-
|
|
32
|
+
defaultMatchMediaValue?: boolean | (() => boolean);
|
|
34
33
|
/**
|
|
35
34
|
* Мобильный вид
|
|
36
35
|
*/
|
|
@@ -39,10 +38,6 @@ type TabsProps = {
|
|
|
39
38
|
* Рендерить заголовки табов в контейнере со скроллом
|
|
40
39
|
*/
|
|
41
40
|
scrollable?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Сворачивает не помещающиеся в окне табы в PickerButton
|
|
44
|
-
*/
|
|
45
|
-
collapsible?: boolean;
|
|
46
41
|
/**
|
|
47
42
|
* Список табов, для контроля переноса вкладок в PickerButton
|
|
48
43
|
*/
|
|
@@ -69,6 +64,11 @@ type TabsProps = {
|
|
|
69
64
|
* Идентификатор для систем автоматизированного тестирования
|
|
70
65
|
*/
|
|
71
66
|
dataTestId?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Контрольная точка для тега, с нее начинается desktop версия
|
|
69
|
+
* @default 1024
|
|
70
|
+
*/
|
|
71
|
+
breakpoint?: number;
|
|
72
72
|
};
|
|
73
73
|
type TabProps = {
|
|
74
74
|
/**
|
|
@@ -123,7 +123,7 @@ type TabListTitle = {
|
|
|
123
123
|
collapsed?: boolean;
|
|
124
124
|
dataTestId?: string;
|
|
125
125
|
};
|
|
126
|
-
type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | '
|
|
126
|
+
type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatchMediaValue' | 'selectedId' | 'scrollable' | 'collapsedTabsIds' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
|
|
127
127
|
/**
|
|
128
128
|
* Заголовки табов
|
|
129
129
|
*/
|
|
@@ -136,11 +136,12 @@ type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size'
|
|
|
136
136
|
};
|
|
137
137
|
type SecondaryTabListProps = TabListProps & {
|
|
138
138
|
tagSize?: TagProps['size'];
|
|
139
|
+
TagComponent?: FC<Omit<TagProps, 'breakpoint'>>;
|
|
139
140
|
};
|
|
140
141
|
type UseTabsProps = TabListProps;
|
|
141
142
|
type Styles = {
|
|
142
|
-
styles
|
|
143
|
+
styles?: {
|
|
143
144
|
[key: string]: string;
|
|
144
145
|
};
|
|
145
146
|
};
|
|
146
|
-
export { SelectedId,
|
|
147
|
+
export { SelectedId, TabsProps, TabProps, TabListTitle, TabListProps, SecondaryTabListProps, UseTabsProps, Styles };
|